summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--interface-definitions/protocols-rpki.xml.in123
-rw-r--r--smoketest/scripts/cli/base_interfaces_test.py9
3 files changed, 126 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 66b1e8bb7..2ff72cb21 100644
--- a/Makefile
+++ b/Makefile
@@ -47,6 +47,7 @@ interface_definitions: $(config_xml_obj)
rm -f $(TMPL_DIR)/vpn/node.def
rm -f $(TMPL_DIR)/vpn/ipsec/node.def
rm -rf $(TMPL_DIR)/vpn/nipsec
+ rm -rf $(TMPL_DIR)/protocols/nrpki
# XXX: required until OSPF and RIP is migrated from vyatta-cfg-quagga to vyos-1x
mkdir $(TMPL_DIR)/interfaces/loopback/node.tag/ipv6
diff --git a/interface-definitions/protocols-rpki.xml.in b/interface-definitions/protocols-rpki.xml.in
new file mode 100644
index 000000000..b8db49e36
--- /dev/null
+++ b/interface-definitions/protocols-rpki.xml.in
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Protocol RPKI configuration -->
+<interfaceDefinition>
+ <node name="protocols">
+ <children>
+ <node name="nrpki" owner="${vyos_conf_scripts_dir}/protocols_rpki.py">
+ <properties>
+ <help>BGP prefix origin validation</help>
+ </properties>
+ <children>
+ <tagNode name="cache">
+ <properties>
+ <help>RPKI cache server instance</help>
+ </properties>
+ <children>
+ <leafNode name="address">
+ <properties>
+ <help>RPKI cache server address</help>
+ </properties>
+ </leafNode>
+ <leafNode name="port">
+ <properties>
+ <help>TCP port number</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>TCP port number</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <node name="ssh">
+ <properties>
+ <help>RPKI SSH connection settings</help>
+ </properties>
+ <children>
+ <leafNode name="known-hosts-file">
+ <properties>
+ <help>RPKI SSH known hosts file</help>
+ <constraint>
+ <validator name="file-exists"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="private-key-file">
+ <properties>
+ <help>RPKI SSH private key file</help>
+ <constraint>
+ <validator name="file-exists"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="public-key-file">
+ <properties>
+ <help>RPKI SSH public key file path</help>
+ <constraint>
+ <validator name="file-exists"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="username">
+ <properties>
+ <help>RPKI SSH username</help>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+ </tagNode>
+ <leafNode name="initial-synchronization-timeout">
+ <properties>
+ <help>Initial RPKI cache synchronization timeout</help>
+ <valueHelp>
+ <format>u32:0-4294967295</format>
+ <description>Initial RPKI cache synchronization timeout</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="polling-period">
+ <properties>
+ <help>RPKI cache polling period</help>
+ <valueHelp>
+ <format>u32:1-1300</format>
+ <description>Polling period</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-1300"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="preference">
+ <properties>
+ <help>RPKI cache preference</help>
+ <valueHelp>
+ <format>u32:0-4294967295</format>
+ <description>RPKI cache preference</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="timeout">
+ <properties>
+ <help>RPKI cache reply timeout</help>
+ <valueHelp>
+ <format>u32:0-4294967295</format>
+ <description>RPKI cache reply timeout</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/smoketest/scripts/cli/base_interfaces_test.py b/smoketest/scripts/cli/base_interfaces_test.py
index 1426e80c2..8f21ec70e 100644
--- a/smoketest/scripts/cli/base_interfaces_test.py
+++ b/smoketest/scripts/cli/base_interfaces_test.py
@@ -402,13 +402,12 @@ class BasicInterfaceTest:
tmp = read_file(f'/proc/sys/net/ipv6/conf/{interface}/dad_transmits')
self.assertEqual(dad_transmits, tmp)
- def test_dhcpv6_clinet_options(self):
+ def test_dhcpv6_client_options(self):
if not self._test_ipv6_dhcpc6:
self.skipTest('not supported')
- duid_base = 10
+ duid = '00:01:00:01:27:71:db:f0:00:50:00:00:00:10'
for interface in self._interfaces:
- duid = '00:01:00:01:27:71:db:f0:00:50:00:00:00:{}'.format(duid_base)
path = self._base_path + [interface]
for option in self._options.get(interface, []):
self.session.set(path + option.split())
@@ -418,13 +417,10 @@ class BasicInterfaceTest:
self.session.set(path + ['dhcpv6-options', 'rapid-commit'])
self.session.set(path + ['dhcpv6-options', 'parameters-only'])
self.session.set(path + ['dhcpv6-options', 'duid', duid])
- duid_base += 1
self.session.commit()
- duid_base = 10
for interface in self._interfaces:
- duid = '00:01:00:01:27:71:db:f0:00:50:00:00:00:{}'.format(duid_base)
dhcpc6_config = read_file(f'/run/dhcp6c/dhcp6c.{interface}.conf')
self.assertIn(f'interface {interface} ' + '{', dhcpc6_config)
self.assertIn(f' request domain-name-servers;', dhcpc6_config)
@@ -434,7 +430,6 @@ class BasicInterfaceTest:
self.assertIn(f' send rapid-commit;', dhcpc6_config)
self.assertIn(f' send client-id {duid};', dhcpc6_config)
self.assertIn('};', dhcpc6_config)
- duid_base += 1
# Check for running process
self.assertTrue(process_named_running('dhcp6c'))