diff options
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | interface-definitions/protocols-rpki.xml.in | 123 | ||||
-rw-r--r-- | smoketest/scripts/cli/base_interfaces_test.py | 9 |
3 files changed, 126 insertions, 7 deletions
@@ -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')) |