]> git.ipfire.org Git - people/ms/network.git/commitdiff
ip-tunnel: Add support for VTI interfaces
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 18 Sep 2018 12:01:12 +0000 (14:01 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 18 Sep 2018 12:01:12 +0000 (14:01 +0200)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/hooks/zones/ip-tunnel

index 3179052b46d005c35895e11e6ac55c8a7b1e69d5..43a9e712ab8e1f2f976e1145e19adb20a4956465 100644 (file)
@@ -21,9 +21,9 @@
 
 . /usr/lib/network/header-zone
 
-SUPPORTED_IP_TUNNEL_MODES="gre"
+SUPPORTED_IP_TUNNEL_MODES="gre vti"
 
-HOOK_SETTINGS="HOOK MODE PEER LOCAL_ADDRESS"
+HOOK_SETTINGS="HOOK MARK MODE PEER LOCAL_ADDRESS"
 
 # Default mode of the tunnel
 MODE="gre"
@@ -44,6 +44,11 @@ hook_check_settings() {
                assert ip_is_valid "${LOCAL_ADDRESS}"
                assert ip_protocol_match "${PEER}" "${LOCAL_ADDRESS}"
        fi
+
+       # Generate a random mark
+       if ! isset MARK; then
+               MARK="$(( ${RANDOM} & 0xffffffff ))"
+       fi
 }
 
 hook_parse_cmdline() {
@@ -119,7 +124,9 @@ hook_up() {
                ip_tunnel_add "${zone}" \
                        --mode="${MODE}" \
                        --remote-address="${PEER}" \
-                       --local-address="${LOCAL_ADDRESS}"
+                       --local-address="${LOCAL_ADDRESS}" \
+                       --ikey="${MARK}" \
+                       --okey="${MARK}"
        fi
 
        # Bring up the device