diff options
| author | Nataliia S. <81954790+natali-rs1985@users.noreply.github.com> | 2025-11-13 16:46:19 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-13 16:46:19 +0200 |
| commit | 23e61833f4ac2a0dce040520c1324bab8c025209 (patch) | |
| tree | c89d6f2d0e86740379f2be7dd122d42d8f83896d /src/conf_mode/interfaces_bridge.py | |
| parent | 99274f653d9973d83e56b158305d359ae2b74826 (diff) | |
| parent | ccf4972f8dd9ddf370fe6376480c1244a138c4bd (diff) | |
| download | vyos-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-x | src/conf_mode/interfaces_bridge.py | 24 |
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 |
