tag: priority: 380 type: txt help: Tunnel interface val_help: ; Tunnel interface name syntax:expression: pattern $VAR(@) "^tun[0-9]+$" \ ; "tunnel must be (tun0-tun999)" commit:expression: $VAR(./local-ip/) != "" ; \ "Must configure the tunnel local-ip for $VAR(@)" commit:expression: $VAR(./remote-ip/) != "" ; \ "Must configure the tunnel remote-ip for $VAR(@)" commit:expression: $VAR(./encapsulation/) != "" ; \ "Must configure the tunnel encapsulation for $VAR(@)" create:if [ -n "$VAR(./key/@)" ]; then KEY="key $VAR(./key/@)"; fi if [ x$VAR(./multicast/@) == xenable ]; then MC="multicast on allmulticast on"; fi if [ -n "$VAR(./bridge-group/)" ] && [ "$VAR(./encapsulation/@)" != "gre-bridge" ]; then echo "interfaces tunnel $VAR(@): Tunnel encapsulation type must be gre-bridge if a bridge group is defined"; exit 1; fi if [ "$VAR(./encapsulation/@)" == "gre-bridge" ]; then ip link add $VAR(@) type gretap local $VAR(./local-ip/@) remote $VAR(./remote-ip/@) || echo "interfaces tunnel $VAR(@): error creating tunnel interface" else ip tunnel add $VAR(@) local $VAR(./local-ip/@) remote $VAR(./remote-ip/@) mode $VAR(./encapsulation/@) $KEY || echo "interfaces tunnel $VAR(@): error creating tunnel interface" fi ip link set $VAR(@) $MC up || echo "interfaces tunnel $VAR(@): error setting tunnel interface active" delete: ip link set $VAR(@) down if [ "$VAR(./encapsulation/@)" == "gre-bridge" ]; then ip link delete $VAR(@) else ip tunnel del $VAR(@) mode $VAR(./encapsulation/@) fi end: if [ ${COMMIT_ACTION} = "DELETE" ]; then /opt/vyatta/sbin/vyatta-tunnel-cleanup fi