diff options
-rw-r--r-- | data/templates/frr/isisd.frr.j2 | 5 | ||||
-rw-r--r-- | interface-definitions/include/isis/protocol-common-config.xml.i | 35 | ||||
-rwxr-xr-x | smoketest/scripts/cli/test_protocols_isis.py | 15 |
3 files changed, 54 insertions, 1 deletions
diff --git a/data/templates/frr/isisd.frr.j2 b/data/templates/frr/isisd.frr.j2 index 1e1cc3c27..5570caaa7 100644 --- a/data/templates/frr/isisd.frr.j2 +++ b/data/templates/frr/isisd.frr.j2 @@ -178,7 +178,7 @@ advertise-passive-only {% for priority, priority_limit_options in fast_reroute.lfa.local.priority_limit.items() %} {% for level in priority_limit_options %} fast-reroute priority-limit {{ priority }} {{ level | replace('_', '-') }} -{% endfor %} +{% endfor %} {% endfor %} {% endif %} {% if fast_reroute.lfa.local.tiebreaker is vyos_defined %} @@ -233,6 +233,9 @@ fast-reroute remote-lfa prefix-list {{ prefix_list }} {% endfor %} {% endfor %} {% endif %} +{% if topology is vyos_defined %} +topology {{ topology }} +{% endif %} {% if level is vyos_defined('level-2') %} is-type level-2-only {% elif level is vyos_defined %} diff --git a/interface-definitions/include/isis/protocol-common-config.xml.i b/interface-definitions/include/isis/protocol-common-config.xml.i index 404f03cb5..0e79ca5f2 100644 --- a/interface-definitions/include/isis/protocol-common-config.xml.i +++ b/interface-definitions/include/isis/protocol-common-config.xml.i @@ -165,6 +165,41 @@ </properties> </leafNode> #include <include/isis/ldp-sync-protocol.xml.i> +<leafNode name="topology"> + <properties> + <help>Configure IS-IS topologies</help> + <completionHelp> + <list>ipv4-multicast ipv4-mgmt ipv6-unicast ipv6-multicast ipv6-mgmt ipv6-dstsrc</list> + </completionHelp> + <valueHelp> + <format>ipv4-multicast</format> + <description>Use IPv4 multicast topology</description> + </valueHelp> + <valueHelp> + <format>ipv4-mgmt</format> + <description>Use IPv4 management topology</description> + </valueHelp> + <valueHelp> + <format>ipv6-unicast</format> + <description>Use IPv6 unicast topology</description> + </valueHelp> + <valueHelp> + <format>ipv6-multicast</format> + <description>Use IPv6 multicast topology</description> + </valueHelp> + <valueHelp> + <format>ipv6-mgmt</format> + <description>Use IPv6 management topology</description> + </valueHelp> + <valueHelp> + <format>ipv6-dstsrc</format> + <description>Use IPv6 dst-src topology</description> + </valueHelp> + <constraint> + <regex>(ipv4-multicast|ipv4-mgmt|ipv6-unicast|ipv6-multicast|ipv6-mgmt|ipv6-dstsrc)</regex> + </constraint> + </properties> +</leafNode> <node name="fast-reroute"> <properties> <help>IS-IS fast reroute configuration</help> diff --git a/smoketest/scripts/cli/test_protocols_isis.py b/smoketest/scripts/cli/test_protocols_isis.py index 0fd18a6da..9c57f2020 100755 --- a/smoketest/scripts/cli/test_protocols_isis.py +++ b/smoketest/scripts/cli/test_protocols_isis.py @@ -395,5 +395,20 @@ class TestProtocolsISIS(VyOSUnitTestSHIM.TestCase): self.cli_delete(['policy', 'prefix-list', prefix_list]) self.cli_commit() + def test_isis_10_topology(self): + topologies = ['ipv4-multicast', 'ipv4-mgmt', 'ipv6-unicast', 'ipv6-multicast', 'ipv6-mgmt'] + interface = 'lo' + + # Set a basic IS-IS config + self.cli_set(base_path + ['net', net]) + + self.cli_set(base_path + ['interface', interface]) + for topology in topologies: + self.cli_set(base_path + ['topology', topology]) + self.cli_commit() + tmp = self.getFRRconfig(f'router isis {domain}', daemon='isisd') + self.assertIn(f' net {net}', tmp) + self.assertIn(f' topology {topology}', tmp) + if __name__ == '__main__': unittest.main(verbosity=2) |