diff options
author | Christian Breunig <christian@breunig.cc> | 2024-02-07 17:54:50 +0100 |
---|---|---|
committer | Christian Breunig <christian@breunig.cc> | 2024-02-07 20:57:03 +0100 |
commit | 17894f6f5d97df7d3ac1cf37ce0e1a96b8fa8e8b (patch) | |
tree | 562519f436a95d59555a4f1e3303680cc0640196 | |
parent | 9d74ae52092e97aa0ef285df4d44a5eb7ae93fbf (diff) | |
download | vyos-1x-17894f6f5d97df7d3ac1cf37ce0e1a96b8fa8e8b.tar.gz vyos-1x-17894f6f5d97df7d3ac1cf37ce0e1a96b8fa8e8b.zip |
rpki: T6023: add support for CLI knobs expire-interval and retry-interval
-rw-r--r-- | data/templates/frr/rpki.frr.j2 | 6 | ||||
-rw-r--r-- | interface-definitions/protocols_rpki.xml.in | 30 | ||||
-rwxr-xr-x | 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 @@ </node> </children> </tagNode> + <leafNode name="expire-interval"> + <properties> + <help>Interval to wait before expiring the cache</help> + <valueHelp> + <format>u32:600-172800</format> + <description>Interval in seconds</description> + </valueHelp> + <constraint> + <validator name="numeric" argument="--range 600-172800"/> + </constraint> + </properties> + <defaultValue>7200</defaultValue> + </leafNode> <leafNode name="polling-period"> <properties> - <help>RPKI cache polling period</help> + <help>Cache polling interval</help> <valueHelp> <format>u32:1-86400</format> - <description>Polling period in seconds</description> + <description>Interval in seconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-86400"/> @@ -80,6 +93,19 @@ </properties> <defaultValue>300</defaultValue> </leafNode> + <leafNode name="retry-interval"> + <properties> + <help>Retry interval to connect to the cache server</help> + <valueHelp> + <format>u32:1-7200</format> + <description>Interval in seconds</description> + </valueHelp> + <constraint> + <validator name="numeric" argument="--range 1-7200"/> + </constraint> + </properties> + <defaultValue>600</defaultValue> + </leafNode> </children> </node> </children> 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'] |