From 5836fac223621a38ac41e7885cef2995a6992c92 Mon Sep 17 00:00:00 2001 From: Rafael Zalamena Date: Fri, 15 Dec 2017 22:05:35 -0200 Subject: [PATCH] isis-topo1: add IPv6 ISIS topology test Configure IPv6 addresses and ISIS distribution, then test the topology for the newly configured addresses. This commit also adds support for parsing IPv6 data from the ISIS topology output while updating the routers topology JSON files. Signed-off-by: Rafael Zalamena --- tests/topotests/isis-topo1/r1/isisd.conf | 2 + .../topotests/isis-topo1/r1/r1_topology.json | 116 +++++-- tests/topotests/isis-topo1/r1/zebra.conf | 2 + tests/topotests/isis-topo1/r2/isisd.conf | 2 + .../topotests/isis-topo1/r2/r2_topology.json | 116 +++++-- tests/topotests/isis-topo1/r2/zebra.conf | 2 + tests/topotests/isis-topo1/r3/isisd.conf | 4 + .../topotests/isis-topo1/r3/r3_topology.json | 254 +++++++++++++--- tests/topotests/isis-topo1/r3/zebra.conf | 3 + tests/topotests/isis-topo1/r4/isisd.conf | 4 + .../topotests/isis-topo1/r4/r4_topology.json | 286 +++++++++++++++--- tests/topotests/isis-topo1/r4/zebra.conf | 3 + tests/topotests/isis-topo1/r5/isisd.conf | 3 + .../topotests/isis-topo1/r5/r5_topology.json | 202 ++++++++++--- tests/topotests/isis-topo1/r5/zebra.conf | 3 + .../topotests/isis-topo1/test_isis_topo1.dot | 18 +- .../topotests/isis-topo1/test_isis_topo1.jpg | Bin 51926 -> 74340 bytes tests/topotests/isis-topo1/test_isis_topo1.py | 35 ++- 18 files changed, 873 insertions(+), 182 deletions(-) diff --git a/tests/topotests/isis-topo1/r1/isisd.conf b/tests/topotests/isis-topo1/r1/isisd.conf index 00e9211740..990821d29d 100644 --- a/tests/topotests/isis-topo1/r1/isisd.conf +++ b/tests/topotests/isis-topo1/r1/isisd.conf @@ -1,10 +1,12 @@ hostname r1 interface r1-eth0 ip router isis 1 + ipv6 router isis 1 isis circuit-type level-2-only ! router isis 1 net 10.0000.0000.0000.0000.0000.0000.0000.0000.0000.00 metric-style wide redistribute ipv4 connected level-2 + redistribute ipv6 connected level-2 ! diff --git a/tests/topotests/isis-topo1/r1/r1_topology.json b/tests/topotests/isis-topo1/r1/r1_topology.json index 86849d1419..027f95607f 100644 --- a/tests/topotests/isis-topo1/r1/r1_topology.json +++ b/tests/topotests/isis-topo1/r1/r1_topology.json @@ -1,28 +1,96 @@ { "1": { - "level-1": [ - { - "vertex": "r1" - } - ], - "level-2": [ - { - "vertex": "r1" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP", - "vertex": "10.0.20.0/24" - }, - { - "interface": "r1-eth0", - "metric": "10", - "next-hop": "r3", - "parent": "r1(4)", - "type": "TE-IS", - "vertex": "r3" - } - ] + "level-1": { + "ipv4": [ + { + "vertex": "r1" + } + ], + "ipv6": [ + { + "vertex": "r1" + } + ] + }, + "level-2": { + "ipv4": [ + { + "vertex": "r1" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP", + "vertex": "10.0.20.0/24" + }, + { + "interface": "r1-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r1(4)", + "type": "TE-IS", + "vertex": "r3" + }, + { + "interface": "r3", + "metric": "TE", + "next-hop": "10", + "parent": "r1-eth0", + "type": "IP", + "vertex": "10.0.10.0/24" + }, + { + "interface": "r3", + "metric": "TE", + "next-hop": "10", + "parent": "r1-eth0", + "type": "IP", + "vertex": "10.0.20.0/24" + }, + { + "interface": "r3", + "metric": "TE", + "next-hop": "10", + "parent": "r1-eth0", + "type": "IP", + "vertex": "10.254.0.3/32" + } + ], + "ipv6": [ + { + "vertex": "r1" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP6", + "vertex": "2001:db8:1:1::/64" + }, + { + "interface": "r1-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r1(4)", + "type": "TE-IS", + "vertex": "r3" + }, + { + "interface": "r3", + "metric": "internal", + "next-hop": "10", + "parent": "r1-eth0", + "type": "IP6", + "vertex": "2001:db8:2:1::/64" + }, + { + "interface": "r3", + "metric": "internal", + "next-hop": "10", + "parent": "r1-eth0", + "type": "IP6", + "vertex": "2001:db8:f::3/128" + } + ] + } } } diff --git a/tests/topotests/isis-topo1/r1/zebra.conf b/tests/topotests/isis-topo1/r1/zebra.conf index 57ee2ef0d0..23cf6252a6 100644 --- a/tests/topotests/isis-topo1/r1/zebra.conf +++ b/tests/topotests/isis-topo1/r1/zebra.conf @@ -1,7 +1,9 @@ hostname r1 interface r1-eth0 ip address 10.0.20.2/24 + ipv6 address 2001:db8:1:1::2/64 ! interface lo ip address 10.254.0.1/32 + ipv6 address 2001:db8:F::1/128 ! diff --git a/tests/topotests/isis-topo1/r2/isisd.conf b/tests/topotests/isis-topo1/r2/isisd.conf index 6ddd15a105..bcccc08825 100644 --- a/tests/topotests/isis-topo1/r2/isisd.conf +++ b/tests/topotests/isis-topo1/r2/isisd.conf @@ -1,10 +1,12 @@ hostname r2 interface r2-eth0 ip router isis 1 + ipv6 router isis 1 isis circuit-type level-2-only ! router isis 1 net 10.0000.0000.0000.0000.0000.0000.0000.0000.0001.00 metric-style wide redistribute ipv4 connected level-2 + redistribute ipv6 connected level-2 ! diff --git a/tests/topotests/isis-topo1/r2/r2_topology.json b/tests/topotests/isis-topo1/r2/r2_topology.json index a6471b280f..5349aeb118 100644 --- a/tests/topotests/isis-topo1/r2/r2_topology.json +++ b/tests/topotests/isis-topo1/r2/r2_topology.json @@ -1,28 +1,96 @@ { "1": { - "level-1": [ - { - "vertex": "r2" - } - ], - "level-2": [ - { - "vertex": "r2" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP", - "vertex": "10.0.21.0/24" - }, - { - "interface": "r2-eth0", - "metric": "10", - "next-hop": "r4", - "parent": "r2(4)", - "type": "TE-IS", - "vertex": "r4" - } - ] + "level-1": { + "ipv4": [ + { + "vertex": "r2" + } + ], + "ipv6": [ + { + "vertex": "r2" + } + ] + }, + "level-2": { + "ipv4": [ + { + "vertex": "r2" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP", + "vertex": "10.0.21.0/24" + }, + { + "interface": "r2-eth0", + "metric": "10", + "next-hop": "r4", + "parent": "r2(4)", + "type": "TE-IS", + "vertex": "r4" + }, + { + "interface": "r4", + "metric": "TE", + "next-hop": "10", + "parent": "r2-eth0", + "type": "IP", + "vertex": "10.0.11.0/24" + }, + { + "interface": "r4", + "metric": "TE", + "next-hop": "10", + "parent": "r2-eth0", + "type": "IP", + "vertex": "10.0.21.0/24" + }, + { + "interface": "r4", + "metric": "TE", + "next-hop": "10", + "parent": "r2-eth0", + "type": "IP", + "vertex": "10.254.0.4/32" + } + ], + "ipv6": [ + { + "vertex": "r2" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP6", + "vertex": "2001:db8:1:2::/64" + }, + { + "interface": "r2-eth0", + "metric": "10", + "next-hop": "r4", + "parent": "r2(4)", + "type": "TE-IS", + "vertex": "r4" + }, + { + "interface": "r4", + "metric": "internal", + "next-hop": "10", + "parent": "r2-eth0", + "type": "IP6", + "vertex": "2001:db8:2:2::/64" + }, + { + "interface": "r4", + "metric": "internal", + "next-hop": "10", + "parent": "r2-eth0", + "type": "IP6", + "vertex": "2001:db8:f::4/128" + } + ] + } } } diff --git a/tests/topotests/isis-topo1/r2/zebra.conf b/tests/topotests/isis-topo1/r2/zebra.conf index 3e58360c51..cf6f8f67d4 100644 --- a/tests/topotests/isis-topo1/r2/zebra.conf +++ b/tests/topotests/isis-topo1/r2/zebra.conf @@ -1,7 +1,9 @@ hostname r2 interface r2-eth0 ip address 10.0.21.2/24 + ipv6 address 2001:db8:1:2::2/64 ! interface lo ip address 10.254.0.2/32 + ipv6 address 2001:db8:F::2/128 ! diff --git a/tests/topotests/isis-topo1/r3/isisd.conf b/tests/topotests/isis-topo1/r3/isisd.conf index 08fc51def0..c3c3e5001a 100644 --- a/tests/topotests/isis-topo1/r3/isisd.conf +++ b/tests/topotests/isis-topo1/r3/isisd.conf @@ -1,10 +1,12 @@ hostname r3 interface r3-eth0 ip router isis 1 + ipv6 router isis 1 isis circuit-type level-2-only ! interface r3-eth1 ip router isis 1 + ipv6 router isis 1 isis circuit-type level-1 ! router isis 1 @@ -12,4 +14,6 @@ router isis 1 metric-style wide redistribute ipv4 connected level-1 redistribute ipv4 connected level-2 + redistribute ipv6 connected level-1 + redistribute ipv6 connected level-2 ! diff --git a/tests/topotests/isis-topo1/r3/r3_topology.json b/tests/topotests/isis-topo1/r3/r3_topology.json index ebc0255526..5acaba4651 100644 --- a/tests/topotests/isis-topo1/r3/r3_topology.json +++ b/tests/topotests/isis-topo1/r3/r3_topology.json @@ -1,42 +1,220 @@ { "1": { - "level-1": [ - { - "vertex": "r3" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP", - "vertex": "10.0.10.0/24" - }, - { - "interface": "r3-eth1", - "metric": "10", - "next-hop": "r5", - "parent": "r3(4)", - "type": "TE-IS", - "vertex": "r5" - } - ], - "level-2": [ - { - "vertex": "r3" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP", - "vertex": "10.0.20.0/24" - }, - { - "interface": "r3-eth0", - "metric": "10", - "next-hop": "r1", - "parent": "r3(4)", - "type": "TE-IS", - "vertex": "r1" - } - ] + "level-1": { + "ipv4": [ + { + "vertex": "r3" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP", + "vertex": "10.0.10.0/24" + }, + { + "interface": "r3-eth1", + "metric": "10", + "next-hop": "r5", + "parent": "r3(4)", + "type": "TE-IS", + "vertex": "r5" + }, + { + "interface": "r5", + "metric": "TE", + "next-hop": "10", + "parent": "r3-eth1", + "type": "IP", + "vertex": "10.0.10.0/24" + }, + { + "interface": "r5", + "metric": "TE", + "next-hop": "10", + "parent": "r3-eth1", + "type": "IP", + "vertex": "10.0.11.0/24" + }, + { + "interface": "r5", + "metric": "TE", + "next-hop": "10", + "parent": "r3-eth1", + "type": "IP", + "vertex": "10.254.0.5/32" + }, + { + "interface": "r3-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r5(4)", + "type": "pseudo_TE-IS", + "vertex": "r5" + }, + { + "interface": "r3-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r5(2)", + "type": "TE-IS", + "vertex": "r4" + }, + { + "interface": "r5", + "metric": "TE", + "next-hop": "20", + "parent": "r3-eth1", + "type": "IP", + "vertex": "10.0.21.0/24" + }, + { + "interface": "r5", + "metric": "TE", + "next-hop": "20", + "parent": "r3-eth1", + "type": "IP", + "vertex": "10.254.0.4/32" + } + ], + "ipv6": [ + { + "vertex": "r3" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP6", + "vertex": "2001:db8:1:1::/64" + }, + { + "interface": "r3-eth1", + "metric": "10", + "next-hop": "r5", + "parent": "r3(4)", + "type": "TE-IS", + "vertex": "r5" + }, + { + "interface": "r5", + "metric": "internal", + "next-hop": "10", + "parent": "r3-eth1", + "type": "IP6", + "vertex": "2001:db8:1:2::/64" + }, + { + "interface": "r5", + "metric": "internal", + "next-hop": "10", + "parent": "r3-eth1", + "type": "IP6", + "vertex": "2001:db8:f::5/128" + }, + { + "interface": "r3-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r5(4)", + "type": "pseudo_TE-IS", + "vertex": "r5" + }, + { + "interface": "r3-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r5(2)", + "type": "TE-IS", + "vertex": "r4" + }, + { + "interface": "r5", + "metric": "internal", + "next-hop": "20", + "parent": "r3-eth1", + "type": "IP6", + "vertex": "2001:db8:2:2::/64" + }, + { + "interface": "r5", + "metric": "internal", + "next-hop": "20", + "parent": "r3-eth1", + "type": "IP6", + "vertex": "2001:db8:f::4/128" + } + ] + }, + "level-2": { + "ipv4": [ + { + "vertex": "r3" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP", + "vertex": "10.0.20.0/24" + }, + { + "interface": "r3-eth0", + "metric": "10", + "next-hop": "r1", + "parent": "r3(4)", + "type": "TE-IS", + "vertex": "r1" + }, + { + "interface": "r1", + "metric": "TE", + "next-hop": "10", + "parent": "r3-eth0", + "type": "IP", + "vertex": "10.0.20.0/24" + }, + { + "interface": "r1", + "metric": "TE", + "next-hop": "10", + "parent": "r3-eth0", + "type": "IP", + "vertex": "10.254.0.1/32" + } + ], + "ipv6": [ + { + "vertex": "r3" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP6", + "vertex": "2001:db8:2:1::/64" + }, + { + "interface": "r3-eth0", + "metric": "10", + "next-hop": "r1", + "parent": "r3(4)", + "type": "TE-IS", + "vertex": "r1" + }, + { + "interface": "r1", + "metric": "internal", + "next-hop": "10", + "parent": "r3-eth0", + "type": "IP6", + "vertex": "2001:db8:1:1::/64" + }, + { + "interface": "r1", + "metric": "internal", + "next-hop": "10", + "parent": "r3-eth0", + "type": "IP6", + "vertex": "2001:db8:f::1/128" + } + ] + } } } diff --git a/tests/topotests/isis-topo1/r3/zebra.conf b/tests/topotests/isis-topo1/r3/zebra.conf index 603488e90c..051a5cf565 100644 --- a/tests/topotests/isis-topo1/r3/zebra.conf +++ b/tests/topotests/isis-topo1/r3/zebra.conf @@ -1,10 +1,13 @@ hostname r3 interface r3-eth0 ip address 10.0.20.1/24 + ipv6 address 2001:db8:2:1::1/64 ! interface r3-eth1 ip address 10.0.10.2/24 + ipv6 address 2001:db8:1:1::2/64 ! interface lo ip address 10.254.0.3/32 + ipv6 address 2001:db8:F::3/128 ! diff --git a/tests/topotests/isis-topo1/r4/isisd.conf b/tests/topotests/isis-topo1/r4/isisd.conf index 7b561449b3..405802ed59 100644 --- a/tests/topotests/isis-topo1/r4/isisd.conf +++ b/tests/topotests/isis-topo1/r4/isisd.conf @@ -1,10 +1,12 @@ hostname r4 interface r4-eth0 ip router isis 1 + ipv6 router isis 1 isis circuit-type level-2-only ! interface r4-eth1 ip router isis 1 + ipv6 router isis 1 isis circuit-type level-1 ! router isis 1 @@ -12,4 +14,6 @@ router isis 1 metric-style wide redistribute ipv4 connected level-1 redistribute ipv4 connected level-2 + redistribute ipv6 connected level-1 + redistribute ipv6 connected level-2 ! diff --git a/tests/topotests/isis-topo1/r4/r4_topology.json b/tests/topotests/isis-topo1/r4/r4_topology.json index eaab35b69c..ad857fee1b 100644 --- a/tests/topotests/isis-topo1/r4/r4_topology.json +++ b/tests/topotests/isis-topo1/r4/r4_topology.json @@ -1,42 +1,252 @@ { "1": { - "level-1": [ - { - "vertex": "r4" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP", - "vertex": "10.0.11.0/24" - }, - { - "interface": "r4-eth1", - "metric": "10", - "next-hop": "r5", - "parent": "r4(4)", - "type": "TE-IS", - "vertex": "r5" - } - ], - "level-2": [ - { - "vertex": "r4" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP", - "vertex": "10.0.21.0/24" - }, - { - "interface": "r4-eth0", - "metric": "10", - "next-hop": "r2", - "parent": "r4(4)", - "type": "TE-IS", - "vertex": "r2" - } - ] + "level-1": { + "ipv4": [ + { + "vertex": "r4" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP", + "vertex": "10.0.11.0/24" + }, + { + "interface": "r4-eth1", + "metric": "10", + "next-hop": "r5", + "parent": "r4(4)", + "type": "TE-IS", + "vertex": "r5" + }, + { + "interface": "r5", + "metric": "TE", + "next-hop": "10", + "parent": "r4-eth1", + "type": "IP", + "vertex": "10.0.10.0/24" + }, + { + "interface": "r5", + "metric": "TE", + "next-hop": "10", + "parent": "r4-eth1", + "type": "IP", + "vertex": "10.0.11.0/24" + }, + { + "interface": "r5", + "metric": "TE", + "next-hop": "10", + "parent": "r4-eth1", + "type": "IP", + "vertex": "10.254.0.5/32" + }, + { + "interface": "r4-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r5(4)", + "type": "pseudo_TE-IS", + "vertex": "r3" + }, + { + "interface": "r4-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r5(4)", + "type": "pseudo_TE-IS", + "vertex": "r5" + }, + { + "interface": "r4-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r3(2)", + "type": "TE-IS", + "vertex": "r3" + }, + { + "interface": "r5", + "metric": "TE", + "next-hop": "20", + "parent": "r4-eth1", + "type": "IP", + "vertex": "10.0.20.0/24" + }, + { + "interface": "r5", + "metric": "TE", + "next-hop": "20", + "parent": "r4-eth1", + "type": "IP", + "vertex": "10.254.0.3/32" + } + ], + "ipv6": [ + { + "vertex": "r4" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP6", + "vertex": "2001:db8:2:2::/64" + }, + { + "interface": "r4-eth1", + "metric": "10", + "next-hop": "r5", + "parent": "r4(4)", + "type": "TE-IS", + "vertex": "r5" + }, + { + "interface": "r5", + "metric": "internal", + "next-hop": "10", + "parent": "r4-eth1", + "type": "IP6", + "vertex": "2001:db8:1:1::/64" + }, + { + "interface": "r5", + "metric": "internal", + "next-hop": "10", + "parent": "r4-eth1", + "type": "IP6", + "vertex": "2001:db8:1:2::/64" + }, + { + "interface": "r5", + "metric": "internal", + "next-hop": "10", + "parent": "r4-eth1", + "type": "IP6", + "vertex": "2001:db8:f::5/128" + }, + { + "interface": "r4-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r5(4)", + "type": "pseudo_TE-IS", + "vertex": "r3" + }, + { + "interface": "r4-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r5(4)", + "type": "pseudo_TE-IS", + "vertex": "r5" + }, + { + "interface": "r4-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r3(2)", + "type": "TE-IS", + "vertex": "r3" + }, + { + "interface": "r5", + "metric": "internal", + "next-hop": "20", + "parent": "r4-eth1", + "type": "IP6", + "vertex": "2001:db8:2:1::/64" + }, + { + "interface": "r5", + "metric": "internal", + "next-hop": "20", + "parent": "r4-eth1", + "type": "IP6", + "vertex": "2001:db8:f::3/128" + } + ] + }, + "level-2": { + "ipv4": [ + { + "vertex": "r4" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP", + "vertex": "10.0.21.0/24" + }, + { + "interface": "r4-eth0", + "metric": "10", + "next-hop": "r2", + "parent": "r4(4)", + "type": "TE-IS", + "vertex": "r2" + }, + { + "interface": "r2", + "metric": "TE", + "next-hop": "10", + "parent": "r4-eth0", + "type": "IP", + "vertex": "10.0.21.0/24" + }, + { + "interface": "r2", + "metric": "TE", + "next-hop": "10", + "parent": "r4-eth0", + "type": "IP", + "vertex": "10.254.0.2/32" + }, + { + "interface": "r4-eth0", + "metric": "20", + "next-hop": "r2", + "parent": "r2(4)", + "type": "pseudo_TE-IS", + "vertex": "r2" + } + ], + "ipv6": [ + { + "vertex": "r4" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP6", + "vertex": "2001:db8:1:2::/64" + }, + { + "interface": "r4-eth0", + "metric": "10", + "next-hop": "r2", + "parent": "r4(4)", + "type": "TE-IS", + "vertex": "r2" + }, + { + "interface": "r2", + "metric": "internal", + "next-hop": "10", + "parent": "r4-eth0", + "type": "IP6", + "vertex": "2001:db8:f::2/128" + }, + { + "interface": "r4-eth0", + "metric": "20", + "next-hop": "r2", + "parent": "r2(4)", + "type": "pseudo_TE-IS", + "vertex": "r2" + } + ] + } } } diff --git a/tests/topotests/isis-topo1/r4/zebra.conf b/tests/topotests/isis-topo1/r4/zebra.conf index 9aa9786220..5ca9a3db72 100644 --- a/tests/topotests/isis-topo1/r4/zebra.conf +++ b/tests/topotests/isis-topo1/r4/zebra.conf @@ -1,10 +1,13 @@ hostname r4 interface r4-eth0 ip address 10.0.21.1/24 + ipv6 address 2001:db8:1:2::1/64 ! interface r4-eth1 ip address 10.0.11.2/24 + ipv6 address 2001:db8:2:2::2/64 ! interface lo ip address 10.254.0.4/32 + ipv6 address 2001:db8:F::4/128 ! diff --git a/tests/topotests/isis-topo1/r5/isisd.conf b/tests/topotests/isis-topo1/r5/isisd.conf index 4bd0c0b6af..0a8f325331 100644 --- a/tests/topotests/isis-topo1/r5/isisd.conf +++ b/tests/topotests/isis-topo1/r5/isisd.conf @@ -1,10 +1,12 @@ hostname r5 interface r5-eth0 ip router isis 1 + ipv6 router isis 1 isis circuit-type level-1 ! interface r5-eth1 ip router isis 1 + ipv6 router isis 1 isis circuit-type level-1 ! router isis 1 @@ -12,4 +14,5 @@ router isis 1 metric-style wide is-type level-1 redistribute ipv4 connected level-1 + redistribute ipv6 connected level-1 ! diff --git a/tests/topotests/isis-topo1/r5/r5_topology.json b/tests/topotests/isis-topo1/r5/r5_topology.json index 5294340b1b..5a45d6f662 100644 --- a/tests/topotests/isis-topo1/r5/r5_topology.json +++ b/tests/topotests/isis-topo1/r5/r5_topology.json @@ -1,38 +1,172 @@ { "1": { - "level-1": [ - { - "vertex": "r5" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP", - "vertex": "10.0.10.0/24" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP", - "vertex": "10.0.11.0/24" - }, - { - "interface": "r5-eth0", - "metric": "10", - "next-hop": "r3", - "parent": "r5(4)", - "type": "TE-IS", - "vertex": "r3" - }, - { - "interface": "r5-eth1", - "metric": "10", - "next-hop": "r4", - "parent": "r5(4)", - "type": "TE-IS", - "vertex": "r4" - } - ], - "level-2": [] + "level-1": { + "ipv4": [ + { + "vertex": "r5" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP", + "vertex": "10.0.10.0/24" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP", + "vertex": "10.0.11.0/24" + }, + { + "interface": "r5-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r5(4)", + "type": "TE-IS", + "vertex": "r3" + }, + { + "interface": "r5-eth1", + "metric": "10", + "next-hop": "r4", + "parent": "r5(4)", + "type": "TE-IS", + "vertex": "r4" + }, + { + "interface": "r3", + "metric": "TE", + "next-hop": "10", + "parent": "r5-eth0", + "type": "IP", + "vertex": "10.0.10.0/24" + }, + { + "interface": "r3", + "metric": "TE", + "next-hop": "10", + "parent": "r5-eth0", + "type": "IP", + "vertex": "10.0.20.0/24" + }, + { + "interface": "r3", + "metric": "TE", + "next-hop": "10", + "parent": "r5-eth0", + "type": "IP", + "vertex": "10.254.0.3/32" + }, + { + "interface": "r4", + "metric": "TE", + "next-hop": "10", + "parent": "r5-eth1", + "type": "IP", + "vertex": "10.0.11.0/24" + }, + { + "interface": "r4", + "metric": "TE", + "next-hop": "10", + "parent": "r5-eth1", + "type": "IP", + "vertex": "10.0.21.0/24" + }, + { + "interface": "r4", + "metric": "TE", + "next-hop": "10", + "parent": "r5-eth1", + "type": "IP", + "vertex": "10.254.0.4/32" + }, + { + "interface": "r5-eth0", + "metric": "20", + "next-hop": "r3", + "parent": "r3(4)", + "type": "pseudo_TE-IS", + "vertex": "r3" + } + ], + "ipv6": [ + { + "vertex": "r5" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP6", + "vertex": "2001:db8:1:1::/64" + }, + { + "metric": "internal", + "parent": "0", + "type": "IP6", + "vertex": "2001:db8:1:2::/64" + }, + { + "interface": "r5-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r5(4)", + "type": "TE-IS", + "vertex": "r3" + }, + { + "interface": "r5-eth1", + "metric": "10", + "next-hop": "r4", + "parent": "r5(4)", + "type": "TE-IS", + "vertex": "r4" + }, + { + "interface": "r3", + "metric": "internal", + "next-hop": "10", + "parent": "r5-eth0", + "type": "IP6", + "vertex": "2001:db8:2:1::/64" + }, + { + "interface": "r3", + "metric": "internal", + "next-hop": "10", + "parent": "r5-eth0", + "type": "IP6", + "vertex": "2001:db8:f::3/128" + }, + { + "interface": "r4", + "metric": "internal", + "next-hop": "10", + "parent": "r5-eth1", + "type": "IP6", + "vertex": "2001:db8:2:2::/64" + }, + { + "interface": "r4", + "metric": "internal", + "next-hop": "10", + "parent": "r5-eth1", + "type": "IP6", + "vertex": "2001:db8:f::4/128" + }, + { + "interface": "r5-eth0", + "metric": "20", + "next-hop": "r3", + "parent": "r3(4)", + "type": "pseudo_TE-IS", + "vertex": "r3" + } + ] + }, + "level-2": { + "ipv4": [], + "ipv6": [] + } } } diff --git a/tests/topotests/isis-topo1/r5/zebra.conf b/tests/topotests/isis-topo1/r5/zebra.conf index 0992da78df..aecfc49229 100644 --- a/tests/topotests/isis-topo1/r5/zebra.conf +++ b/tests/topotests/isis-topo1/r5/zebra.conf @@ -1,10 +1,13 @@ hostname r5 interface r5-eth0 ip address 10.0.10.1/24 + ipv6 address 2001:db8:1:1::4/64 ! interface r5-eth1 ip address 10.0.11.1/24 + ipv6 address 2001:db8:1:2::4/64 ! interface lo ip address 10.254.0.5/32 + ipv6 address 2001:db8:F::5/128 ! diff --git a/tests/topotests/isis-topo1/test_isis_topo1.dot b/tests/topotests/isis-topo1/test_isis_topo1.dot index 544374c07f..01f9ba780f 100644 --- a/tests/topotests/isis-topo1/test_isis_topo1.dot +++ b/tests/topotests/isis-topo1/test_isis_topo1.dot @@ -18,31 +18,31 @@ graph template { # Routers r1 [ shape=doubleoctagon, - label="r1\n10.254.0.1", + label="r1\n10.254.0.1\n2001:DB8:F::1", fillcolor="#f08080", style=filled, ]; r2 [ shape=doubleoctagon - label="r2\n10.254.0.2", + label="r2\n10.254.0.2\n2001:DB8:F::2", fillcolor="#f08080", style=filled, ]; r3 [ shape=doubleoctagon - label="r3\n10.254.0.3", + label="r3\n10.254.0.3\n2001:DB8:F::3", fillcolor="#f08080", style=filled, ]; r4 [ shape=doubleoctagon - label="r4\n10.254.0.4", + label="r4\n10.254.0.4\n2001:DB8:F::4", fillcolor="#f08080", style=filled, ]; r5 [ shape=doubleoctagon - label="r5\n10.254.0.5", + label="r5\n10.254.0.5\n2001:DB8:F::5", fillcolor="#f08080", style=filled, ]; @@ -50,25 +50,25 @@ graph template { # Switches sw1 [ shape=oval, - label="sw1\n10.0.20.0/24", + label="sw1\n10.0.20.0/24\n2001:DB8:1:1::/64", fillcolor="#d0e0d0", style=filled, ]; sw2 [ shape=oval, - label="sw2\n10.0.21.0/24", + label="sw2\n10.0.21.0/24\n2001:DB8:1:2::/64", fillcolor="#d0e0d0", style=filled, ]; sw3 [ shape=oval, - label="sw3\n10.0.10.0/24", + label="sw3\n10.0.10.0/24\n2001:DB8:2:1::/64", fillcolor="#d0e0d0", style=filled, ]; sw4 [ shape=oval, - label="sw4\n10.0.11.0/24", + label="sw4\n10.0.11.0/24\n2001:DB8:2:2::/64", fillcolor="#d0e0d0", style=filled, ]; diff --git a/tests/topotests/isis-topo1/test_isis_topo1.jpg b/tests/topotests/isis-topo1/test_isis_topo1.jpg index a288ce0c857d4f0732644781619147cb0e7bd5bb..4ad730f2a08b66280530051b95f5deaf303ec34a 100644 GIT binary patch literal 74340 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 E3-H>x_5c6? literal 51926 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 z v!1l^ZVNJeGUGf`UTg(pNIYlfebx_ diff --git a/tests/topotests/isis-topo1/test_isis_topo1.py b/tests/topotests/isis-topo1/test_isis_topo1.py index d703459d91..01d019a31c 100644 --- a/tests/topotests/isis-topo1/test_isis_topo1.py +++ b/tests/topotests/isis-topo1/test_isis_topo1.py @@ -240,29 +240,36 @@ def parse_topology(lines, level): Parse the output of 'show isis topology level-X' into a Python dict. """ areas = {} - in_area = False area = None + ipv = None for line in lines: - if not in_area: - area_match = re.match(r"Area (.+):", line) - if not area_match: - continue - + area_match = re.match(r"Area (.+):", line) + if area_match: area = area_match.group(1) - areas[area] = {level: []} - in_area = True + if area not in areas: + areas[area] = { + level: { + 'ipv4': [], + 'ipv6': [] + } + } + ipv = None + continue + elif area is None: continue - if re.match(r"IS\-IS paths to", line): + if re.match(r"IS\-IS paths to level-. routers that speak IPv6", line): + ipv = 'ipv6' continue - if re.match(r"Vertex Type Metric Next\-Hop Interface Parent", line): + if re.match(r"IS\-IS paths to level-. routers that speak IP", line): + ipv = 'ipv4' continue item_match = re.match( r"([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)", line) if item_match is not None: - areas[area][level].append({ + areas[area][level][ipv].append({ 'vertex': item_match.group(1), 'type': item_match.group(2), 'metric': item_match.group(3), @@ -274,7 +281,7 @@ def parse_topology(lines, level): item_match = re.match(r"([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)", line) if item_match is not None: - areas[area][level].append({ + areas[area][level][ipv].append({ 'vertex': item_match.group(1), 'type': item_match.group(2), 'metric': item_match.group(3), @@ -284,11 +291,9 @@ def parse_topology(lines, level): item_match = re.match(r"([^ ]+)", line) if item_match is not None: - areas[area][level].append({'vertex': item_match.group(1)}) + areas[area][level][ipv].append({'vertex': item_match.group(1)}) continue - in_area = False - return areas -- 2.39.5