summaryrefslogtreecommitdiff
path: root/templates/interfaces/tunnel/node.def
diff options
context:
space:
mode:
Diffstat (limited to 'templates/interfaces/tunnel/node.def')
-rw-r--r--templates/interfaces/tunnel/node.def122
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