From 7f6545b188b7ad00a2ba4bf2dc7281bca93f05bf Mon Sep 17 00:00:00 2001 From: Miaosen Wang Date: Mon, 23 Feb 2026 23:31:26 -0800 Subject: T8302: This PR adds Router Advertisement (RA) base-interface support for IPv6 wildcard prefix derivation and includes validation and smoketests. Included changes: - Add `base-interface` under: - `service router-advert interface prefix ::/64 base-interface ` - Render `Base6Interface ;` in `radvd.conf` when configured. - Add validation guard: - `base-interface` is only allowed with wildcard prefix `::/64`. - Extend smoketests: - Positive case: `::/64` + `base-interface` commits and renders correctly. - Negative case: non-`::/64` prefix with `base-interface` fails commit. --- smoketest/scripts/cli/test_service_router-advert.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'smoketest/scripts/cli') diff --git a/smoketest/scripts/cli/test_service_router-advert.py b/smoketest/scripts/cli/test_service_router-advert.py index 54133b5c7..52f0db4ab 100755 --- a/smoketest/scripts/cli/test_service_router-advert.py +++ b/smoketest/scripts/cli/test_service_router-advert.py @@ -376,5 +376,19 @@ class TestServiceRADVD(VyOSUnitTestSHIM.TestCase): tmp = f'autoignoreprefixes' + ' {' self.assertNotIn(tmp, config) + def test_base_interface(self): + self.cli_set(base_path + ['prefix', '::/64']) + self.cli_set(base_path + ['prefix', '::/64', 'base-interface', 'eth0']) + self.cli_commit() + + config = read_file(RADVD_CONF) + self.assertIn('Base6Interface eth0;', config) + + self.cli_set(base_path + ['prefix', '2001:db8:1234::/64']) + self.cli_set( + base_path + ['prefix', '2001:db8:1234::/64', 'base-interface', 'eth0'] + ) + with self.assertRaises(ConfigSessionError): + self.cli_commit() if __name__ == '__main__': unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on()) -- cgit v1.2.3