summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Phillips <jose@latinol.com>2026-05-07 11:40:42 -0500
committerJose Phillips <jose@latinol.com>2026-05-13 19:36:11 +0000
commit35d40d7f4d9d95e7754d41c3f97efd4ef20c0625 (patch)
tree5f732ec03c95446405c1df4aa6a3ae1bc2aa2a34
parentb1f920457dc8ac62c36fae492cc3aa3ec10d051d (diff)
downloadvyos-1x-35d40d7f4d9d95e7754d41c3f97efd4ef20c0625.tar.gz
vyos-1x-35d40d7f4d9d95e7754d41c3f97efd4ef20c0625.zip
T8823: validation of GE and LE according FRR instructions
-rwxr-xr-xsmoketest/scripts/cli/test_policy.py1
-rwxr-xr-xsrc/conf_mode/policy.py9
2 files changed, 7 insertions, 3 deletions
diff --git a/smoketest/scripts/cli/test_policy.py b/smoketest/scripts/cli/test_policy.py
index eee04eb9b..304bbdbc8 100755
--- a/smoketest/scripts/cli/test_policy.py
+++ b/smoketest/scripts/cli/test_policy.py
@@ -709,6 +709,7 @@ class TestPolicy(VyOSUnitTestSHIM.TestCase):
for rule in test_range:
tmp = f'ip prefix-list {prefix_list} seq {rule} permit {prefix} le {rule}'
self.assertIn(tmp, config)
+
def test_prefix_list_ge_le_validation(self):
# FRR requires mask_length <= ge <= le for prefix-list rules
base = base_path + ['prefix-list', 'getest', 'rule', '10']
diff --git a/src/conf_mode/policy.py b/src/conf_mode/policy.py
index 4da884e3e..c9398848a 100755
--- a/src/conf_mode/policy.py
+++ b/src/conf_mode/policy.py
@@ -174,15 +174,18 @@ def verify(config_dict):
if ge is not None and ge < mask_len:
raise ConfigError(
f'{policy_hr} {instance} rule {rule}: "ge" ({ge}) must be >= '
- f'prefix length ({mask_len})')
+ f'prefix length ({mask_len})'
+ )
if le is not None and le < mask_len:
raise ConfigError(
f'{policy_hr} {instance} rule {rule}: "le" ({le}) must be >= '
- f'prefix length ({mask_len})')
+ f'prefix length ({mask_len})'
+ )
if ge is not None and le is not None and ge > le:
raise ConfigError(
f'{policy_hr} {instance} rule {rule}: "ge" ({ge}) must be <= '
- f'"le" ({le})')
+ f'"le" ({le})'
+ )
if rule_config in entries:
raise ConfigError(