From: Michael Tremer Date: Sun, 23 Jun 2019 11:57:17 +0000 (+0000) Subject: ip-tunnel: Support setting MTU on tunnels X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9515b03940a0fac2db3fff105638f49a53f85e7d;p=network.git ip-tunnel: Support setting MTU on tunnels Signed-off-by: Michael Tremer --- diff --git a/src/hooks/zones/ip-tunnel b/src/hooks/zones/ip-tunnel index c4a4fb40..3c885cbd 100644 --- a/src/hooks/zones/ip-tunnel +++ b/src/hooks/zones/ip-tunnel @@ -26,6 +26,7 @@ SUPPORTED_IP_TUNNEL_MODES="gre sit vti" HOOK_SETTINGS=( "MARK" "MODE" + "MTU" "PEER" "LOCAL_ADDRESS" ) @@ -33,6 +34,9 @@ HOOK_SETTINGS=( # Default mode of the tunnel DEFAULT_MODE="gre" +# Default MTU +DEFAULT_MTU="1480" + hook_check_settings() { assert isset MODE && assert isoneof MODE ${SUPPORTED_IP_TUNNEL_MODES} @@ -67,6 +71,16 @@ hook_parse_cmdline() { fi ;; + --mtu=*) + MTU="$(cli_get_val "${1}")" + + # Validate MTU + if ! mtu_is_valid "ipv6" "${MTU}"; then + error "Invalid MTU: ${MTU}" + return ${EXIT_ERROR} + fi + ;; + --peer=*) PEER="$(cli_get_val "${1}")" ;; @@ -116,6 +130,7 @@ hook_up() { if ! device_exists "${zone}"; then ip_tunnel_add "${zone}" \ --mode="${MODE}" \ + --mtu="${MTU}" \ --remote-address="${PEER}" \ --local-address="${LOCAL_ADDRESS}" \ --ikey="${MARK}" \