diff options
author | Andrew Topp <andrewt@telekinetica.net> | 2024-06-01 23:42:57 +1000 |
---|---|---|
committer | Andrew Topp <andrewt@telekinetica.net> | 2024-06-01 23:42:57 +1000 |
commit | ac7ee2b36df23c3a4dd2be393132631556b6ef40 (patch) | |
tree | e41f88ff67100e2dd680aa1cbcc54741fe86aeb9 /python | |
parent | d150067ef254a266aef2758e8e92b43c1f22956b (diff) | |
download | vyos-1x-ac7ee2b36df23c3a4dd2be393132631556b6ef40.tar.gz vyos-1x-ac7ee2b36df23c3a4dd2be393132631556b6ef40.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.
Diffstat (limited to 'python')
-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}') |