diff options
Diffstat (limited to 'templates/interfaces/tunnel/node.def')
| -rw-r--r-- | templates/interfaces/tunnel/node.def | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/templates/interfaces/tunnel/node.def b/templates/interfaces/tunnel/node.def deleted file mode 100644 index d42f6560..00000000 --- a/templates/interfaces/tunnel/node.def +++ /dev/null @@ -1,122 +0,0 @@ -tag: -priority: 380 -type: txt -help: Tunnel interface -val_help: <tunN>; Tunnel interface name -syntax:expression: pattern $VAR(@) "^tun[0-9]+$" \ - ; "tunnel must be (tun0-tun999)" - -commit:expression: $VAR(./local-ip/) != "" || $VAR(./dhcp-interface/) != ""; \ - "Must configure either local-ip or dhcp-interface for tunnel $VAR(@)" -commit:expression: $VAR(./local-ip/) == "" || $VAR(./dhcp-interface/) == ""; \ - "Must configure only one of local-ip or dhcp-interface for tunnel $VAR(@)" -commit:expression: $VAR(./encapsulation/) != "" ; \ - "Must configure the tunnel encapsulation for $VAR(@)" -commit:expression: -exec " - if [ $VAR(./encapsulation/@) = gre ] && [ ! -n \"$VAR(./remote-ip/)\" ]; then \ - echo \"No remote-ip configured for $VAR(@), tunnel can only be used for mGRE.\"; \ - fi; \ - if [ -n \"$VAR(./6rd-prefix/)\" ]; then \ - if [ $VAR(./encapsulation/@) != sit ]; then \ - echo \"6rd-prefix can only be set for SIT tunnels\"; \ - exit 1; \ - fi \ - fi; \ - if [ $VAR(./encapsulation/@) != gre ] && [ ! -n \"$VAR(./remote-ip/)\" ]; then \ - echo \"Must configure the tunnel remote-ip for $VAR(@)\"; \ - exit 1; \ - fi; - - exit 0" -commit:expression: (!(pattern $VAR(./local-ip/@) ".*:.*") && $VAR(./encapsulation/@) == "gre" && $VAR(./remote-ip/) == "") || \ - $VAR(./encapsulation/@) != "gre" || ($VAR(./encapsulation/@) == "gre" && $VAR(./remote-ip/) != ""); "IPv6 local-ip ($VAR(./local-ip/@)) is forbidden for mGRE tunnels." - -commit:expression: (!(pattern $VAR(./address/@@) ".*:.*") && $VAR(./encapsulation/@) == "gre" && $VAR(./remote-ip/) == "") || \ - $VAR(./encapsulation/@) != "gre" || ($VAR(./encapsulation/@) == "gre" && $VAR(./remote-ip/) != ""); "IPv6 addresses ($VAR(./address/@@)) are forbidden for mGRE tunnels." - -commit:expression: !($VAR(./encapsulation/@) == "gre" && ((pattern $VAR(./local-ip/@@) ".*:.*") || (pattern $VAR(./remote-ip/@@) ".*:.*"))); \ - "Using IPv6 address in local-ip or remote-ip is not possible with \"encapsulation gre\". Use \"encapsulation ip6gre\" instead." - -create: - if [ $VAR(./encapsulation/@) == gre ] && [ -z $VAR(./remote-ip/) ]; then - sudo invoke-rc.d opennhrp.init start; - fi - if [ x$VAR(./multicast/@) == xenable ]; then - MC="multicast on allmulticast on"; - fi - if [ -n "$VAR(./local-ip/@)" ]; then - LIP=$VAR(./local-ip/@) - else - LIP=$(/opt/vyatta/sbin/vyatta-dhcp-helper.pl --interface=$VAR(./dhcp-interface/@) --want=local) - fi - case "$VAR(./encapsulation/@)" in - "gre" | "ipip" | "sit" | "ip6gre") - if [ -n "$VAR(./parameters/ip/bridge-group/)" ] ; then - echo "interfaces tunnel $VAR(@): Tunnel encapsulation type must be gre-bridge if a bridge group is defined"; - exit 1; - fi - if [ -n "$VAR(./parameters/ip/tos/@)" ]; then - TOS="tos $VAR(./parameters/ip/tos/@)" - else - TOS="tos inherit" - fi - if [ -n "$VAR(./parameters/ip/ttl/@)" ]; then - TTL="ttl $VAR(./parameters/ip/ttl/@)" - else - TTL="ttl 255" - fi - if [ -n "$VAR(./parameters/ip/key/@)" ]; then - KEY="key $VAR(./parameters/ip/key/@)" - fi - if [ "$VAR(./encapsulation/@)" == "gre" ] && [ -z $VAR(./remote-ip/) ]; then - sudo ip tunnel add $VAR(@) local $LIP mode gre $KEY $TTL $TOS - elif [ "$VAR(./encapsulation/@)" == "ip6gre" ] && [ -z $VAR(./remote-ip/) ]; then - sudo ip tunnel add $VAR(@) local $LIP mode ip6gre $KEY $TTL $TOS - elif [ "$VAR(./encapsulation/@)" == "sit" ] && [ -n "$VAR(./6rd-prefix/@)" ]; then - if [ -n "$VAR(./6rd-relay-prefix/@)" ]; then - RP="6rd-relay_prefix $VAR(./6rd-relay-prefix/@)" - fi - sudo ip tunnel add $VAR(@) remote $VAR(./remote-ip/@) mode sit - sudo ip tunnel 6rd dev $VAR(@) 6rd-prefix $VAR(./6rd-prefix/@) $RP - else - sudo ip tunnel add $VAR(@) local $LIP remote $VAR(./remote-ip/@) mode $VAR(./encapsulation/@) $KEY $TTL $TOS - fi - if [ -z "`ip tunnel show | grep $VAR(@)`" ] && [ -z "`ip -6 tunnel show | grep $VAR(@)`" ]; then - echo interfaces tunnel $VAR(@): error creating tunnel interface - exit 1 - fi - ;; - "gre-bridge") - sudo ip link add $VAR(@) type gretap local $LIP remote $VAR(./remote-ip/@) || - echo "interfaces tunnel $VAR(@): error creating tunnel interface" - ;; - "ipip6" | "ip6ip6") - sudo ip -6 tunnel add $VAR(@) local $LIP remote $VAR(./remote-ip/@) mode $VAR(./encapsulation/@) || - echo "interfaces tunnel $VAR(@): error creating tunnel interface" - ;; - esac - sudo ip link set $VAR(@) $MC up || - echo "interfaces tunnel $VAR(@): error setting tunnel interface active" - -delete: - /opt/vyatta/sbin/vyos-update-nhrp.pl --checkref --tun $VAR(@) - sudo ip link set $VAR(@) down - case "$VAR(./encapsulation/@)" in - "gre" | "ipip" | "sit") - if [ -z $VAR(./remote-ip/) ]; then - sudo ip tunnel del $VAR(@) mode gre - else - sudo ip tunnel del $VAR(@) mode $VAR(./encapsulation/@) - fi;; - "gre-bridge") - sudo ip link delete $VAR(@) ;; - "ipip6" | "ip6ip6") - sudo ip -6 tunnel del $VAR(@) mode $VAR(./encapsulation/@);; - esac - - -end: - if [ "${COMMIT_ACTION}" == DELETE ]; then - /opt/vyatta/sbin/vyatta-tunnel-cleanup $VAR(@) - fi |
