tag: priority: 460 type: txt help: Virtual eXtensible LAN interface val_help: ; VXLAN interface name syntax:expression: pattern $VAR(@) "vxlan[0-9]+$" commit:expression: $VAR(./vni/) != ""; \ "Must configure vxlan vni for $VAR(@)" begin: [ -d /sys/module/vxlan ] || sudo modprobe vxlan create: if [ -e /sys/class/net/$VAR(@) ]; then echo "VXLAN interface \"$VAR(@)\" already exists." exit 1 fi VXLAN_GROUP="" VXLAN_VNI="id $VAR(./vni/@)" VXLAN_TTL="ttl 16" VXLAN_PORT="dstport 0" if [ ! $VAR(./link/) == "" ]; then VXLAN_DEV="dev $VAR(./link/@)" fi if [ ! $VAR(./group/) == "" ]; then VXLAN_GROUP="group $VAR(./group/@)" if [ -z "$VXLAN_DEV" ]; then echo "For multicast VXLAN, link (network interface) must be configured" exit 1 fi fi if [ ! $VAR(./remote/) == "" ]; then VXLAN_GROUP="remote $VAR(./remote/@)" fi if [ -z "$VXLAN_GROUP" ]; then echo "group or remote must be configured." exit 1 fi 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." else sudo ip link del dev $VAR(@) fi end: if [ -e /tmp/vxlan-$VAR(@)-create ]; then rm /tmp/vxlan-$VAR(@)-create fi