diff options
author | Andrew Topp <andrewt@telekinetica.net> | 2024-06-01 23:42:57 +1000 |
---|---|---|
committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2024-06-09 06:25:36 +0000 |
commit | 083e15c224be61ba51e1a29efdb24921a5278da5 (patch) | |
tree | b17268c27799b4acbbf087b22415915cd9acb574 | |
parent | 07efcfc28cc2ba1420a470f9bb9cf3be68d8ff47 (diff) | |
download | vyos-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.py | 7 |
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}') |