From 17894f6f5d97df7d3ac1cf37ce0e1a96b8fa8e8b Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Wed, 7 Feb 2024 17:54:50 +0100 Subject: rpki: T6023: add support for CLI knobs expire-interval and retry-interval --- data/templates/frr/rpki.frr.j2 | 6 ++++++ interface-definitions/protocols_rpki.xml.in | 30 ++++++++++++++++++++++++++-- smoketest/scripts/cli/test_protocols_rpki.py | 25 +++++++++++++---------- 3 files changed, 48 insertions(+), 13 deletions(-) diff --git a/data/templates/frr/rpki.frr.j2 b/data/templates/frr/rpki.frr.j2 index 384cbbe52..59724102c 100644 --- a/data/templates/frr/rpki.frr.j2 +++ b/data/templates/frr/rpki.frr.j2 @@ -11,8 +11,14 @@ rpki {% endif %} {% endfor %} {% endif %} +{% if expire_interval is vyos_defined %} + rpki expire_interval {{ expire_interval }} +{% endif %} {% if polling_period is vyos_defined %} rpki polling_period {{ polling_period }} {% endif %} +{% if retry_interval is vyos_defined %} + rpki retry_interval {{ retry_interval }} +{% endif %} exit ! diff --git a/interface-definitions/protocols_rpki.xml.in b/interface-definitions/protocols_rpki.xml.in index 6a38b2961..a2a0a2799 100644 --- a/interface-definitions/protocols_rpki.xml.in +++ b/interface-definitions/protocols_rpki.xml.in @@ -67,12 +67,25 @@ + + + Interval to wait before expiring the cache + + u32:600-172800 + Interval in seconds + + + + + + 7200 + - RPKI cache polling period + Cache polling interval u32:1-86400 - Polling period in seconds + Interval in seconds @@ -80,6 +93,19 @@ 300 + + + Retry interval to connect to the cache server + + u32:1-7200 + Interval in seconds + + + + + + 600 + diff --git a/smoketest/scripts/cli/test_protocols_rpki.py b/smoketest/scripts/cli/test_protocols_rpki.py index b43c626c4..c52c0dd76 100755 --- a/smoketest/scripts/cli/test_protocols_rpki.py +++ b/smoketest/scripts/cli/test_protocols_rpki.py @@ -52,27 +52,28 @@ class TestProtocolsRPKI(VyOSUnitTestSHIM.TestCase): self.assertEqual(self.daemon_pid, process_named_running(PROCESS_NAME)) def test_rpki(self): - polling = '7200' + expire_interval = '3600' + polling_period = '600' + retry_interval = '300' cache = { '192.0.2.1' : { 'port' : '8080', - 'preference' : '1' - }, - '192.0.2.2' : { - 'port' : '9090', - 'preference' : '2' + 'preference' : '10' }, '2001:db8::1' : { 'port' : '1234', - 'preference' : '3' + 'preference' : '30' }, - '2001:db8::2' : { + 'rpki.vyos.net' : { 'port' : '5678', - 'preference' : '4' + 'preference' : '40' }, } - self.cli_set(base_path + ['polling-period', polling]) + self.cli_set(base_path + ['expire-interval', expire_interval]) + self.cli_set(base_path + ['polling-period', polling_period]) + self.cli_set(base_path + ['retry-interval', retry_interval]) + for peer, peer_config in cache.items(): self.cli_set(base_path + ['cache', peer, 'port', peer_config['port']]) self.cli_set(base_path + ['cache', peer, 'preference', peer_config['preference']]) @@ -82,7 +83,9 @@ class TestProtocolsRPKI(VyOSUnitTestSHIM.TestCase): # Verify FRR configuration frrconfig = self.getFRRconfig('rpki') - self.assertIn(f'rpki polling_period {polling}', frrconfig) + self.assertIn(f'rpki expire_interval {expire_interval}', frrconfig) + self.assertIn(f'rpki polling_period {polling_period}', frrconfig) + self.assertIn(f'rpki retry_interval {retry_interval}', frrconfig) for peer, peer_config in cache.items(): port = peer_config['port'] -- cgit v1.2.3