summaryrefslogtreecommitdiff
path: root/src/conf_mode/interfaces_bridge.py
diff options
context:
space:
mode:
authorNataliia S. <81954790+natali-rs1985@users.noreply.github.com>2025-11-13 16:46:19 +0200
committerGitHub <noreply@github.com>2025-11-13 16:46:19 +0200
commit23e61833f4ac2a0dce040520c1324bab8c025209 (patch)
treec89d6f2d0e86740379f2be7dd122d42d8f83896d /src/conf_mode/interfaces_bridge.py
parent99274f653d9973d83e56b158305d359ae2b74826 (diff)
parentccf4972f8dd9ddf370fe6376480c1244a138c4bd (diff)
downloadvyos-1x-23e61833f4ac2a0dce040520c1324bab8c025209.tar.gz
vyos-1x-23e61833f4ac2a0dce040520c1324bab8c025209.zip
Merge pull request #4835 from natali-rs1985/T7731
T7731: Static ARP entries are missing after an interface status change
Diffstat (limited to 'src/conf_mode/interfaces_bridge.py')
-rwxr-xr-xsrc/conf_mode/interfaces_bridge.py24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/conf_mode/interfaces_bridge.py b/src/conf_mode/interfaces_bridge.py
index 8cb0c515a..c6792404b 100755
--- a/src/conf_mode/interfaces_bridge.py
+++ b/src/conf_mode/interfaces_bridge.py
@@ -124,6 +124,10 @@ def get_config(config=None):
if len(bridge['member']) == 0:
del bridge['member']
+ # Protocols static arp dependency
+ if 'static_arp' in bridge:
+ set_dependents('static_arp', conf)
+
return bridge
def verify(bridge):
@@ -213,12 +217,20 @@ def apply(bridge):
if 'interface' in bridge['member']:
tmp.extend(bridge['member']['interface'])
- for interface in tmp:
- if interface.startswith(tuple(['vxlan', 'wlan'])) and interface_exists(interface):
- try:
- call_dependents()
- except ConfigError:
- raise ConfigError(f'Error updating member interface {interface} configuration after changing bridge!')
+ # collect member interfaces that require dependent updates
+ interfaces_need_update = [
+ iface
+ for iface in tmp
+ if iface.startswith(('vxlan', 'wlan')) and interface_exists(iface)
+ ]
+
+ if interfaces_need_update or 'static_arp' in bridge:
+ try:
+ call_dependents()
+ except ConfigError:
+ raise ConfigError(
+ 'Error updating member interface configuration after changing bridge!'
+ )
return None