Source code for runtimepy.commands.mtu
"""
An entry-point for the 'mtu' command.
"""
# built-in
import argparse
import socket
# third-party
from vcorelib.args import CommandFunction
# internal
from runtimepy.net.mtu import ETHERNET_MTU, UDP_DEFAULT_MTU, discover_mtu
[docs]
def mtu_cmd(args: argparse.Namespace) -> int:
"""Execute the mtu command."""
discover_mtu(
args.destination[0],
*(int(x) for x in args.destination[1:]),
probe_size=args.probe_size,
fallback=args.fallback,
kind=socket.SOCK_STREAM if args.tcp else socket.SOCK_DGRAM,
)
return 0
[docs]
def add_mtu_cmd(parser: argparse.ArgumentParser) -> CommandFunction:
"""Add mtu-command arguments to its parser."""
parser.add_argument(
"--probe-size",
type=int,
default=UDP_DEFAULT_MTU,
help="data payload size to use for probe (default: %(default)d)",
)
parser.add_argument(
"--fallback",
type=int,
default=ETHERNET_MTU,
help="fallback MTU value if probing doesn't succeed "
"(i.e. not on Linux, default: %(default)d)",
)
parser.add_argument(
"-t", "--tcp", action="store_true", help="use TCP instead of UDP"
)
parser.add_argument(
"destination",
nargs="+",
help="endpoint parameters (host, port[, flowinfo, scope_id])",
)
return mtu_cmd