summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSIN3R6Y <alex@triadic.us>2020-06-22 15:21:27 -0400
committerSIN3R6Y <alex@triadic.us>2020-06-22 15:21:27 -0400
commit93909887097aac4a0595f7065f087a937dfe0130 (patch)
tree903dbe72b89f15ea44e33c8f48af2a4ffe003b03
parent7945c491fb7ed2ba7462dd2e12051ad8ce9b7e56 (diff)
downloadvyos-1x-93909887097aac4a0595f7065f087a937dfe0130.tar.gz
vyos-1x-93909887097aac4a0595f7065f087a937dfe0130.zip
vxlan: T2629: fix multiple configuration issues
-rw-r--r--python/vyos/ifconfig/vxlan.py28
1 files changed, 15 insertions, 13 deletions
diff --git a/python/vyos/ifconfig/vxlan.py b/python/vyos/ifconfig/vxlan.py
index f9f2e38e9..cd9026bf8 100644
--- a/python/vyos/ifconfig/vxlan.py
+++ b/python/vyos/ifconfig/vxlan.py
@@ -66,24 +66,26 @@ class VXLANIf(Interface):
'ifname': 'add',
'vni': 'id',
'port': 'dstport',
- 'src_address': 'nolearning local',
+ 'src_address': 'local',
+ 'src_interface': 'dev',
}
def _create(self):
- cmdline = set()
- if self.config['remote']:
- cmdline = ('ifname', 'type', 'remote', 'src_interface', 'vni', 'port')
-
- elif self.config['src_address']:
- cmdline = ('ifname', 'type', 'src_address', 'vni', 'port')
+ cmdline = ['ifname', 'type', 'vni', 'port']
- elif self.config['group'] and self.config['src_interface']:
- cmdline = ('ifname', 'type', 'group', 'src_interface', 'vni', 'port')
+ if self.config['src_address']:
+ cmdline.append('src_address')
- else:
- ifname = self.config['ifname']
- raise ConfigError(
- f'VXLAN "{ifname}" is missing mandatory underlay interface for a multicast network.')
+ if self.config['remote']:
+ cmdline.append('remote')
+
+ if self.config['group'] or self.config['src_interface']:
+ if self.config['group'] and self.config['src_interface']:
+ cmdline.append('group', 'src_interface')
+ else:
+ ifname = self.config['ifname']
+ raise ConfigError(
+ f'VXLAN "{ifname}" is missing mandatory underlay multicast group or source interface for a multicast network.')
cmd = 'ip link'
for key in cmdline: