From 25babb28327ab6eae25a514046a595df90ae1053 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Tue, 4 Dec 2018 18:38:16 +0100 Subject: T1067: support setting VXLAN remote port --- templates/interfaces/vxlan/node.def | 10 +++++++--- templates/interfaces/vxlan/node.tag/remote-port/node.def | 11 +++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 templates/interfaces/vxlan/node.tag/remote-port/node.def diff --git a/templates/interfaces/vxlan/node.def b/templates/interfaces/vxlan/node.def index 0a3db8cc..e8b625e1 100644 --- a/templates/interfaces/vxlan/node.def +++ b/templates/interfaces/vxlan/node.def @@ -21,6 +21,7 @@ create: VXLAN_GROUP="" VXLAN_VNI="id $VAR(./vni/@)" VXLAN_TTL="ttl 16" + VXLAN_PORT="" if [ ! $VAR(./link/) == "" ]; then VXLAN_DEV="dev $VAR(./link/@)" @@ -39,13 +40,16 @@ create: exit 1 fi - sudo ip link add name $VAR(@) type vxlan \ - $VXLAN_VNI $VXLAN_GROUP $VXLAN_TTL $VXLAN_DEV + if [ ! $VAR(./remote-port/) == "" ]; then + VXLAN_PORT="dstport $VAR(./remote-port/@)" + fi + + sudo ip link add name $VAR(@) type vxlan \ + $VXLAN_VNI $VXLAN_GROUP $VXLAN_TTL $VXLAN_DEV $VXLAN_PORT sudo ip link set $VAR(@) up touch /tmp/vxlan-$VAR(@)-create - delete: if [ ! -e /sys/class/net/$VAR(@) ]; then echo "VXLAN interface \"$VAR(@)\" does not exist." diff --git a/templates/interfaces/vxlan/node.tag/remote-port/node.def b/templates/interfaces/vxlan/node.tag/remote-port/node.def new file mode 100644 index 00000000..c1b4f672 --- /dev/null +++ b/templates/interfaces/vxlan/node.tag/remote-port/node.def @@ -0,0 +1,11 @@ +type: u32 +help: Remote port for this VXLAN tunnel +val_help: u32:1-65535; Numeric IP port +syntax:expression: $VAR(@) > 0 && $VAR(@) < 65536; + "Port must be between 1 and 65535" + +update: + if [ ! -e /tmp/vxlan-$VAR(../@)-create ]; then + echo "Changing remote port requires delete/create this vxlan interface" + exit 1 + fi -- cgit v1.2.3