diff options
Diffstat (limited to 'src/migration-scripts')
| -rw-r--r-- | src/migration-scripts/vpp/5-to-6 | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/migration-scripts/vpp/5-to-6 b/src/migration-scripts/vpp/5-to-6 index 18f0f70d2..23b2d4eaa 100644 --- a/src/migration-scripts/vpp/5-to-6 +++ b/src/migration-scripts/vpp/5-to-6 @@ -43,6 +43,8 @@ # # Move ipip interface from vpp section to 'interfaces vpp ipip' (T8314) # +# Migrate loopback interface from vpp section to 'interfaces vpp loopback' (T8324) +# from vyos.configtree import ConfigTree @@ -437,6 +439,30 @@ def _migrate_vpp_ipip_interface(config: ConfigTree) -> None: config.delete(['vpp', 'interfaces']) +def _migrate_vpp_loopback_interface(config: ConfigTree) -> None: + base = ['vpp', 'interfaces', 'loopback'] + new_base = ['interfaces', 'vpp', 'loopback'] + kernel_interface_base = ['vpp', 'kernel-interfaces'] + + if not config.exists(base): + return + + config.set(new_base) + + for ifname in config.list_nodes(base): + _migrate_interface(config, 'loopback', ifname) + + _migrate_members_bridge(config, ifname) + + config.delete(base) + + if config.exists(kernel_interface_base) and len(config.list_nodes(kernel_interface_base)) == 0: + config.delete(['vpp', 'kernel-interfaces']) + + if len(config.list_nodes(['vpp', 'interfaces'])) == 0: + config.delete(['vpp', 'interfaces']) + + def migrate(config: ConfigTree) -> None: if not config.exists(['vpp']): # Nothing to do @@ -455,3 +481,4 @@ def migrate(config: ConfigTree) -> None: _migrate_vpp_bonding_interface(config) _migrate_vpp_vxlan_interface(config) _migrate_vpp_ipip_interface(config) + _migrate_vpp_loopback_interface(config) |
