summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Topp <andrewt@telekinetica.net>2024-06-01 23:42:57 +1000
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2024-06-09 06:25:36 +0000
commit083e15c224be61ba51e1a29efdb24921a5278da5 (patch)
treeb17268c27799b4acbbf087b22415915cd9acb574
parent07efcfc28cc2ba1420a470f9bb9cf3be68d8ff47 (diff)
downloadvyos-1x-083e15c224be61ba51e1a29efdb24921a5278da5.tar.gz
vyos-1x-083e15c224be61ba51e1a29efdb24921a5278da5.zip
vxlan: T6401: Avoid calling get_vxlan_vni_filter() unless we need it
`bridge vni show dev vxlanX` will exit with an error if no VNI filters are installed, but the getter is used even when we haven't installed any. This fix avoids fetching a list of VNI filters unless we know we've created some. (cherry picked from commit ac7ee2b36df23c3a4dd2be393132631556b6ef40)
-rw-r--r--python/vyos/ifconfig/vxlan.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/python/vyos/ifconfig/vxlan.py b/python/vyos/ifconfig/vxlan.py
index bdb48e303..918aea202 100644
--- a/python/vyos/ifconfig/vxlan.py
+++ b/python/vyos/ifconfig/vxlan.py
@@ -138,10 +138,13 @@ class VXLANIf(Interface):
raise ValueError('Value out of range')
if 'vlan_to_vni_removed' in self.config:
- cur_vni_filter = get_vxlan_vni_filter(self.ifname)
+ cur_vni_filter = None
+ if dict_search('parameters.vni_filter', self.config) != None:
+ cur_vni_filter = get_vxlan_vni_filter(self.ifname)
+
for vlan, vlan_config in self.config['vlan_to_vni_removed'].items():
# If VNI filtering is enabled, remove matching VNI filter
- if dict_search('parameters.vni_filter', self.config) != None:
+ if cur_vni_filter != None:
vni = vlan_config['vni']
if vni in cur_vni_filter:
self._cmd(f'bridge vni delete dev {self.ifname} vni {vni}')