diff options
| author | Christian Breunig <christian@breunig.cc> | 2025-10-29 16:10:13 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-29 16:10:13 +0100 |
| commit | 449f3d4dbf1f55a7cfcd8ecf450f9ebc93188d97 (patch) | |
| tree | b4b8bf596da9a1694408ee2e20623efd3befa1a2 | |
| parent | 4fbb3c6c9e70d6302ebe11d8a56e221a614449aa (diff) | |
| parent | c5ef4f4ebf38a249998498ebe443f3cc733b64fd (diff) | |
| download | vyos-1x-449f3d4dbf1f55a7cfcd8ecf450f9ebc93188d97.tar.gz vyos-1x-449f3d4dbf1f55a7cfcd8ecf450f9ebc93188d97.zip | |
Merge pull request #4817 from c-po/dhcpv6-migrator-fix
dhcpv6: T7967: fix migration script for automatic SLAAC selection
| -rw-r--r-- | smoketest/config-tests/basic-ipv6 | 6 | ||||
| -rw-r--r-- | smoketest/configs/basic-ipv6 | 3 | ||||
| -rw-r--r-- | src/migration-scripts/interfaces/32-to-33 | 31 |
3 files changed, 25 insertions, 15 deletions
diff --git a/smoketest/config-tests/basic-ipv6 b/smoketest/config-tests/basic-ipv6 index f217b5289..232a42a07 100644 --- a/smoketest/config-tests/basic-ipv6 +++ b/smoketest/config-tests/basic-ipv6 @@ -6,9 +6,11 @@ set interfaces ethernet eth0 vif-s 10 vif-c 20 address 'dhcpv6' set interfaces ethernet eth0 vif-s 10 vif-c 20 ipv6 address autoconf set interfaces ethernet eth1 duplex 'auto' set interfaces ethernet eth1 speed 'auto' -set interfaces ethernet eth1 vif 50 -set interfaces ethernet eth1 vif-s 60 vif-c 70 +set interfaces ethernet eth1 vif 50 address '1.2.3.4/31' +set interfaces ethernet eth1 vif-s 60 vif-c 70 address '2.3.4.5/31' +set interfaces ethernet eth2 address 'dhcpv6' set interfaces ethernet eth2 duplex 'auto' +set interfaces ethernet eth2 ipv6 address autoconf set interfaces ethernet eth2 speed 'auto' set interfaces loopback lo set interfaces pppoe pppoe0 authentication password 'vyos' diff --git a/smoketest/configs/basic-ipv6 b/smoketest/configs/basic-ipv6 index c1b87733e..997842aed 100644 --- a/smoketest/configs/basic-ipv6 +++ b/smoketest/configs/basic-ipv6 @@ -22,13 +22,16 @@ interfaces { duplex auto speed auto vif 50 { + address 1.2.3.4/31 } vif-s 60 { vif-c 70 { + address 2.3.4.5/31 } } } ethernet eth2 { + address dhcpv6 duplex auto speed auto } diff --git a/src/migration-scripts/interfaces/32-to-33 b/src/migration-scripts/interfaces/32-to-33 index af7b7f497..11b7aa58b 100644 --- a/src/migration-scripts/interfaces/32-to-33 +++ b/src/migration-scripts/interfaces/32-to-33 @@ -23,31 +23,36 @@ def migrate(config: ConfigTree) -> None: for type in config.list_nodes(['interfaces']): for interface in config.list_nodes(['interfaces', type]): iface_base_path = ['interfaces', type, interface] - dhcpv6_addr_path = iface_base_path + ['address', 'dhcpv6'] - autoconf_path = iface_base_path + ['ipv6', 'address', 'autoconf'] - if config.exists(dhcpv6_addr_path) and not config.exists(autoconf_path): - config.set(autoconf_path) + dhcpv6_addr_path = iface_base_path + ['address'] + + if config.exists(dhcpv6_addr_path) and 'dhcpv6' in config.return_values(dhcpv6_addr_path): + autoconf_path = iface_base_path + ['ipv6', 'address', 'autoconf'] + if not config.exists(autoconf_path): + config.set(autoconf_path) vif_path = iface_base_path + ['vif'] if config.exists(vif_path): for vif in config.list_nodes(vif_path): vif_dhcpv6_addr_path = vif_path + [vif, 'address'] - vif_autoconf_path = vif_path + [vif, 'ipv6', 'address', 'autoconf'] - if config.exists(vif_dhcpv6_addr_path) and not config.exists(vif_autoconf_path): - config.set(vif_autoconf_path) + if config.exists(vif_dhcpv6_addr_path) and 'dhcpv6' in config.return_values(vif_dhcpv6_addr_path): + vif_autoconf_path = vif_path + [vif, 'ipv6', 'address', 'autoconf'] + if not config.exists(vif_autoconf_path): + config.set(vif_autoconf_path) vif_s_path = iface_base_path + ['vif-s'] if config.exists(vif_s_path): for vif_s in config.list_nodes(vif_s_path): vif_s_dhcpv6_addr_path = vif_s_path + [vif_s, 'address'] - vif_s_autoconf_path = vif_s_path + [vif_s, 'ipv6', 'address', 'autoconf'] - if config.exists(vif_s_dhcpv6_addr_path) and not config.exists(vif_s_autoconf_path): - config.set(vif_s_autoconf_path) + if config.exists(vif_s_dhcpv6_addr_path) and 'dhcpv6' in config.return_values(vif_s_dhcpv6_addr_path): + vif_s_autoconf_path = vif_s_path + [vif_s, 'ipv6', 'address', 'autoconf'] + if not config.exists(vif_s_autoconf_path): + config.set(vif_s_autoconf_path) vif_c_path = iface_base_path + ['vif-s', vif_s, 'vif-c'] if config.exists(vif_c_path): for vif_c in config.list_nodes(vif_c_path): vif_c_dhcpv6_addr_path = vif_c_path + [vif_c, 'address'] - vif_c_autoconf_path = vif_c_path + [vif_c, 'ipv6', 'address', 'autoconf'] - if config.exists(vif_c_dhcpv6_addr_path) and not config.exists(vif_c_autoconf_path): - config.set(vif_c_autoconf_path) + if config.exists(vif_c_dhcpv6_addr_path) and 'dhcpv6' in config.return_values(vif_c_dhcpv6_addr_path): + vif_c_autoconf_path = vif_c_path + [vif_c, 'ipv6', 'address', 'autoconf'] + if not config.exists(vif_c_autoconf_path): + config.set(vif_c_autoconf_path) |
