summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2026-04-09 15:40:58 +0100
committerGitHub <noreply@github.com>2026-04-09 15:40:58 +0100
commit36c22d25b1f3e3685810a32248a88ee02fe06983 (patch)
treee6b7a8936fd2dc4337a5e46d6f50effec9ada2d1 /smoketest/scripts/cli
parent3b0fbd0266db5f701f63db00daba839702e9ee7e (diff)
parent48732ec28fc24fc54e719acb94b23abc3ddc18da (diff)
downloadvyos-1x-36c22d25b1f3e3685810a32248a88ee02fe06983.tar.gz
vyos-1x-36c22d25b1f3e3685810a32248a88ee02fe06983.zip
Merge pull request #5004 from jd82k/ndproxy
T8292: Fix ndp-proxy verify key mismatch for prefix rules
Diffstat (limited to 'smoketest/scripts/cli')
-rwxr-xr-xsmoketest/scripts/cli/test_service_ndp-proxy.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/smoketest/scripts/cli/test_service_ndp-proxy.py b/smoketest/scripts/cli/test_service_ndp-proxy.py
index d1c37bbe4..f89ea0fac 100755
--- a/smoketest/scripts/cli/test_service_ndp-proxy.py
+++ b/smoketest/scripts/cli/test_service_ndp-proxy.py
@@ -18,6 +18,7 @@ import unittest
from base_vyostest_shim import VyOSUnitTestSHIM
+from vyos.configsession import ConfigSessionError
from vyos.ifconfig import Section
from vyos.utils.process import cmd
from vyos.utils.process import process_named_running
@@ -66,5 +67,63 @@ class TestServiceNDPProxy(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'timeout 500', config) # default value
self.assertIn(f'ttl 30000', config) # default value
+ def test_prefix_mode_interface_requires_interface(self):
+ interface = Section.interfaces('ethernet')[0]
+ prefix_path = base_path + ['interface', interface, 'prefix', '2001:db8::/64']
+ self.cli_set(base_path + ['interface', interface])
+ self.cli_commit()
+
+ self.cli_set(prefix_path + ['mode', 'interface'])
+
+ with self.assertRaises(ConfigSessionError):
+ self.cli_commit()
+
+ def test_prefix_mode_interface_with_interface(self):
+ interface = Section.interfaces('ethernet')[0]
+ prefix_path = base_path + ['interface', interface, 'prefix', '2001:db8::/64']
+ self.cli_set(base_path + ['interface', interface])
+ self.cli_set(prefix_path + ['mode', 'interface'])
+ self.cli_set(prefix_path + ['interface', interface])
+ self.cli_commit()
+
+ config = getConfigSection(f'proxy {interface}')
+ self.assertIn('rule 2001:db8::/64 {', config)
+ self.assertIn(f'iface {interface}', config)
+
+ def test_prefix_mode_auto_rejects_interface(self):
+ interface = Section.interfaces('ethernet')[0]
+ prefix_path = base_path + ['interface', interface, 'prefix', '2001:db8::/64']
+ self.cli_set(base_path + ['interface', interface])
+ self.cli_commit()
+
+ self.cli_set(prefix_path + ['mode', 'auto'])
+ self.cli_set(prefix_path + ['interface', interface])
+
+ with self.assertRaises(ConfigSessionError):
+ self.cli_commit()
+
+ def test_disabled_prefix_skips_validation(self):
+ interface = Section.interfaces('ethernet')[0]
+ prefix_path = base_path + ['interface', interface, 'prefix', '2001:db8::/64']
+ self.cli_set(base_path + ['interface', interface])
+ self.cli_set(prefix_path + ['mode', 'interface'])
+ self.cli_set(prefix_path + ['disable'])
+
+ self.cli_commit()
+
+ config = getConfigSection(f'proxy {interface}')
+ self.assertNotIn('rule 2001:db8::/64 {', config)
+
+ def test_disabled_interface_skips_validation(self):
+ interface = Section.interfaces('ethernet')[0]
+ prefix_path = base_path + ['interface', interface, 'prefix', '2001:db8::/64']
+ self.cli_set(base_path + ['interface', interface, 'disable'])
+ self.cli_set(prefix_path + ['mode', 'interface'])
+
+ self.cli_commit()
+
+ config = cmd(f'cat {NDPPD_CONF}')
+ self.assertNotIn(f'proxy {interface} {{', config)
+
if __name__ == '__main__':
unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())