diff options
Diffstat (limited to 'src/conf_mode/vpp_interfaces_loopback.py')
| -rw-r--r-- | src/conf_mode/vpp_interfaces_loopback.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/conf_mode/vpp_interfaces_loopback.py b/src/conf_mode/vpp_interfaces_loopback.py index 2f7b59354..c1046fdca 100644 --- a/src/conf_mode/vpp_interfaces_loopback.py +++ b/src/conf_mode/vpp_interfaces_loopback.py @@ -24,6 +24,8 @@ from vyos.configdep import set_dependents, call_dependents from vyos.utils.process import is_systemd_service_active from vyos.ifconfig.vpp import VPPLoopbackInterface +from vyos.vpp.config_deps import deps_bridge_dict +from vyos.vpp.config_verify import verify_vpp_remove_bridge_interface def get_config(config=None) -> dict: @@ -55,6 +57,12 @@ def get_config(config=None) -> dict: no_tag_node_value_mangle=True, ) + # Bridge dependency - reattach as BVI after this loopback is recreated + config['bridge_members'] = deps_bridge_dict(conf) + if ifname in config['bridge_members']: + for bridge_iface in config['bridge_members'][ifname]: + set_dependents('vpp_interfaces_bridge', conf, bridge_iface) + # NAT dependency if conf.exists(['vpp', 'nat', 'nat44']): set_dependents('vpp_nat_nat44', conf) @@ -73,6 +81,8 @@ def verify(config): if 'remove_vpp' in config: return None + verify_vpp_remove_bridge_interface(config) + if not is_systemd_service_active('vpp.service'): raise ConfigError( 'Cannot configure VPP loopback interface: vpp.service is not running' |
