summaryrefslogtreecommitdiff
path: root/src/conf_mode/vpp_interfaces_loopback.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/conf_mode/vpp_interfaces_loopback.py')
-rw-r--r--src/conf_mode/vpp_interfaces_loopback.py10
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'