mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 17:40:04 +00:00
tests: fix isis-topo1 topologies
parse_topology function doesn't correctly process vertex types with spaces. Therefore the reference topology files are completely messed up, we have values in incorrect fields - types in metrics, metrics in parents, etc. This commit fixes the parsing function and the reference files. The same fix was done for isis-topo1-vrf in #8365. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
This commit is contained in:
parent
98d742c6f7
commit
3adfae9613
@ -18,9 +18,9 @@
|
||||
"vertex": "r1"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP",
|
||||
"metric": "0",
|
||||
"parent": "r1(4)",
|
||||
"type": "IP internal",
|
||||
"vertex": "10.0.20.0/24"
|
||||
},
|
||||
{
|
||||
@ -32,27 +32,27 @@
|
||||
"vertex": "r3"
|
||||
},
|
||||
{
|
||||
"interface": "r3",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r1-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r1-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r3",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.10.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r3",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r1-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r1-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r3",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.20.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r3",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r1-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r1-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r3",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.254.0.3/32"
|
||||
}
|
||||
],
|
||||
@ -61,9 +61,9 @@
|
||||
"vertex": "r1"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP6",
|
||||
"metric": "0",
|
||||
"parent": "r1(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:1:1::/64"
|
||||
},
|
||||
{
|
||||
@ -75,17 +75,19 @@
|
||||
"vertex": "r3"
|
||||
},
|
||||
{
|
||||
"interface": "r3",
|
||||
"next-hop": "10",
|
||||
"parent": "r1-eth0",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r1-eth0",
|
||||
"next-hop": "r3",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:2:1::/64"
|
||||
},
|
||||
{
|
||||
"interface": "r3",
|
||||
"next-hop": "10",
|
||||
"parent": "r1-eth0",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r1-eth0",
|
||||
"next-hop": "r3",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:f::3/128"
|
||||
}
|
||||
]
|
||||
|
@ -18,9 +18,9 @@
|
||||
"vertex": "r2"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP",
|
||||
"metric": "0",
|
||||
"parent": "r2(4)",
|
||||
"type": "IP internal",
|
||||
"vertex": "10.0.21.0/24"
|
||||
},
|
||||
{
|
||||
@ -32,27 +32,27 @@
|
||||
"vertex": "r4"
|
||||
},
|
||||
{
|
||||
"interface": "r4",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r2-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r2-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r4",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.11.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r4",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r2-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r2-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r4",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.21.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r4",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r2-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r2-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r4",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.254.0.4/32"
|
||||
}
|
||||
],
|
||||
@ -61,9 +61,9 @@
|
||||
"vertex": "r2"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP6",
|
||||
"metric": "0",
|
||||
"parent": "r2(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:1:2::/64"
|
||||
},
|
||||
{
|
||||
@ -75,17 +75,19 @@
|
||||
"vertex": "r4"
|
||||
},
|
||||
{
|
||||
"interface": "r4",
|
||||
"next-hop": "10",
|
||||
"parent": "r2-eth0",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r2-eth0",
|
||||
"next-hop": "r4",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:2:2::/64"
|
||||
},
|
||||
{
|
||||
"interface": "r4",
|
||||
"next-hop": "10",
|
||||
"parent": "r2-eth0",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r2-eth0",
|
||||
"next-hop": "r4",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:f::4/128"
|
||||
}
|
||||
]
|
||||
|
@ -6,9 +6,9 @@
|
||||
"vertex": "r3"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP",
|
||||
"metric": "0",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP internal",
|
||||
"vertex": "10.0.10.0/24"
|
||||
},
|
||||
{
|
||||
@ -20,27 +20,27 @@
|
||||
"vertex": "r5"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r3-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r3-eth1",
|
||||
"metric": "10",
|
||||
"next-hop": "r5",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.10.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r3-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r3-eth1",
|
||||
"metric": "10",
|
||||
"next-hop": "r5",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.11.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r3-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r3-eth1",
|
||||
"metric": "10",
|
||||
"next-hop": "r5",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.254.0.5/32"
|
||||
},
|
||||
{
|
||||
@ -51,19 +51,19 @@
|
||||
"vertex": "r4"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"metric": "TE",
|
||||
"next-hop": "20",
|
||||
"parent": "r3-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r3-eth1",
|
||||
"metric": "20",
|
||||
"next-hop": "r5",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.21.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"metric": "TE",
|
||||
"next-hop": "20",
|
||||
"parent": "r3-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r3-eth1",
|
||||
"metric": "20",
|
||||
"next-hop": "r5",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.254.0.4/32"
|
||||
}
|
||||
],
|
||||
@ -72,9 +72,9 @@
|
||||
"vertex": "r3"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP6",
|
||||
"metric": "0",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:2:1::/64"
|
||||
},
|
||||
{
|
||||
@ -86,17 +86,19 @@
|
||||
"vertex": "r5"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"next-hop": "10",
|
||||
"parent": "r3-eth1",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r3-eth1",
|
||||
"next-hop": "r5",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:2:2::/64"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"next-hop": "10",
|
||||
"parent": "r3-eth1",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r3-eth1",
|
||||
"next-hop": "r5",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:f::5/128"
|
||||
},
|
||||
{
|
||||
@ -107,17 +109,19 @@
|
||||
"vertex": "r4"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"next-hop": "20",
|
||||
"parent": "r3-eth1",
|
||||
"type": "IP6",
|
||||
"metric": "20",
|
||||
"interface": "r3-eth1",
|
||||
"next-hop": "r5",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:1:2::/64"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"next-hop": "20",
|
||||
"parent": "r3-eth1",
|
||||
"type": "IP6",
|
||||
"metric": "20",
|
||||
"interface": "r3-eth1",
|
||||
"next-hop": "r5",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:f::4/128"
|
||||
}
|
||||
]
|
||||
@ -128,9 +132,9 @@
|
||||
"vertex": "r3"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP",
|
||||
"metric": "0",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP internal",
|
||||
"vertex": "10.0.20.0/24"
|
||||
},
|
||||
{
|
||||
@ -142,19 +146,19 @@
|
||||
"vertex": "r1"
|
||||
},
|
||||
{
|
||||
"interface": "r1",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r3-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r3-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r1",
|
||||
"parent": "r1(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.20.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r1",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r3-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r3-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r1",
|
||||
"parent": "r1(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.254.0.1/32"
|
||||
}
|
||||
],
|
||||
@ -163,9 +167,9 @@
|
||||
"vertex": "r3"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP6",
|
||||
"metric": "0",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:1:1::/64"
|
||||
},
|
||||
{
|
||||
@ -177,10 +181,11 @@
|
||||
"vertex": "r1"
|
||||
},
|
||||
{
|
||||
"interface": "r1",
|
||||
"next-hop": "10",
|
||||
"parent": "r3-eth0",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r3-eth0",
|
||||
"next-hop": "r1",
|
||||
"parent": "r1(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:f::1/128"
|
||||
}
|
||||
]
|
||||
|
@ -6,9 +6,9 @@
|
||||
"vertex": "r4"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP",
|
||||
"metric": "0",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP internal",
|
||||
"vertex": "10.0.11.0/24"
|
||||
},
|
||||
{
|
||||
@ -20,27 +20,27 @@
|
||||
"vertex": "r5"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r4-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r4-eth1",
|
||||
"metric": "10",
|
||||
"next-hop": "r5",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.10.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r4-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r4-eth1",
|
||||
"metric": "10",
|
||||
"next-hop": "r5",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.11.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r4-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r4-eth1",
|
||||
"metric": "10",
|
||||
"next-hop": "r5",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.254.0.5/32"
|
||||
},
|
||||
{
|
||||
@ -51,19 +51,19 @@
|
||||
"vertex": "r3"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"metric": "TE",
|
||||
"next-hop": "20",
|
||||
"parent": "r4-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r4-eth1",
|
||||
"metric": "20",
|
||||
"next-hop": "r5",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.20.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"metric": "TE",
|
||||
"next-hop": "20",
|
||||
"parent": "r4-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r4-eth1",
|
||||
"metric": "20",
|
||||
"next-hop": "r5",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.254.0.3/32"
|
||||
}
|
||||
],
|
||||
@ -72,9 +72,9 @@
|
||||
"vertex": "r4"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP6",
|
||||
"metric": "0",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:2:2::/64"
|
||||
},
|
||||
{
|
||||
@ -86,17 +86,19 @@
|
||||
"vertex": "r5"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"next-hop": "10",
|
||||
"parent": "r4-eth1",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r4-eth1",
|
||||
"next-hop": "r5",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:2:1::/64"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"next-hop": "10",
|
||||
"parent": "r4-eth1",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r4-eth1",
|
||||
"next-hop": "r5",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:f::5/128"
|
||||
},
|
||||
{
|
||||
@ -107,17 +109,19 @@
|
||||
"vertex": "r3"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"next-hop": "20",
|
||||
"parent": "r4-eth1",
|
||||
"type": "IP6",
|
||||
"metric": "20",
|
||||
"interface": "r4-eth1",
|
||||
"next-hop": "r5",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:1:1::/64"
|
||||
},
|
||||
{
|
||||
"interface": "r5",
|
||||
"next-hop": "20",
|
||||
"parent": "r4-eth1",
|
||||
"type": "IP6",
|
||||
"metric": "20",
|
||||
"interface": "r4-eth1",
|
||||
"next-hop": "r5",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:f::3/128"
|
||||
}
|
||||
]
|
||||
@ -128,9 +132,9 @@
|
||||
"vertex": "r4"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP",
|
||||
"metric": "0",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP internal",
|
||||
"vertex": "10.0.21.0/24"
|
||||
},
|
||||
{
|
||||
@ -142,19 +146,19 @@
|
||||
"vertex": "r2"
|
||||
},
|
||||
{
|
||||
"interface": "r2",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r4-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r4-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r2",
|
||||
"parent": "r2(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.21.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r2",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r4-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r4-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r2",
|
||||
"parent": "r2(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.254.0.2/32"
|
||||
}
|
||||
],
|
||||
@ -163,9 +167,9 @@
|
||||
"vertex": "r4"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP6",
|
||||
"metric": "0",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:1:2::/64"
|
||||
},
|
||||
{
|
||||
@ -177,10 +181,11 @@
|
||||
"vertex": "r2"
|
||||
},
|
||||
{
|
||||
"interface": "r2",
|
||||
"next-hop": "10",
|
||||
"parent": "r4-eth0",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r4-eth0",
|
||||
"next-hop": "r2",
|
||||
"parent": "r2(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:f::2/128"
|
||||
}
|
||||
]
|
||||
|
@ -6,15 +6,15 @@
|
||||
"vertex": "r5"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP",
|
||||
"metric": "0",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP internal",
|
||||
"vertex": "10.0.10.0/24"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP",
|
||||
"metric": "0",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP internal",
|
||||
"vertex": "10.0.11.0/24"
|
||||
},
|
||||
{
|
||||
@ -34,51 +34,51 @@
|
||||
"vertex": "r4"
|
||||
},
|
||||
{
|
||||
"interface": "r3",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r5-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r5-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r3",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.10.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r3",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r5-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r5-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r3",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.20.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r3",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r5-eth0",
|
||||
"type": "IP",
|
||||
"interface": "r5-eth0",
|
||||
"metric": "10",
|
||||
"next-hop": "r3",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.254.0.3/32"
|
||||
},
|
||||
{
|
||||
"interface": "r4",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r5-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r5-eth1",
|
||||
"metric": "10",
|
||||
"next-hop": "r4",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.11.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r4",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r5-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r5-eth1",
|
||||
"metric": "10",
|
||||
"next-hop": "r4",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.0.21.0/24"
|
||||
},
|
||||
{
|
||||
"interface": "r4",
|
||||
"metric": "TE",
|
||||
"next-hop": "10",
|
||||
"parent": "r5-eth1",
|
||||
"type": "IP",
|
||||
"interface": "r5-eth1",
|
||||
"metric": "10",
|
||||
"next-hop": "r4",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP TE",
|
||||
"vertex": "10.254.0.4/32"
|
||||
}
|
||||
],
|
||||
@ -87,15 +87,15 @@
|
||||
"vertex": "r5"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP6",
|
||||
"metric": "0",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:2:1::/64"
|
||||
},
|
||||
{
|
||||
"metric": "internal",
|
||||
"parent": "0",
|
||||
"type": "IP6",
|
||||
"metric": "0",
|
||||
"parent": "r5(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:2:2::/64"
|
||||
},
|
||||
{
|
||||
@ -115,31 +115,35 @@
|
||||
"vertex": "r4"
|
||||
},
|
||||
{
|
||||
"interface": "r3",
|
||||
"next-hop": "10",
|
||||
"parent": "r5-eth0",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r5-eth0",
|
||||
"next-hop": "r3",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:1:1::/64"
|
||||
},
|
||||
{
|
||||
"interface": "r3",
|
||||
"next-hop": "10",
|
||||
"parent": "r5-eth0",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r5-eth0",
|
||||
"next-hop": "r3",
|
||||
"parent": "r3(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:f::3/128"
|
||||
},
|
||||
{
|
||||
"interface": "r4",
|
||||
"next-hop": "10",
|
||||
"parent": "r5-eth1",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r5-eth1",
|
||||
"next-hop": "r4",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:1:2::/64"
|
||||
},
|
||||
{
|
||||
"interface": "r4",
|
||||
"next-hop": "10",
|
||||
"parent": "r5-eth1",
|
||||
"type": "IP6",
|
||||
"metric": "10",
|
||||
"interface": "r5-eth1",
|
||||
"next-hop": "r4",
|
||||
"parent": "r4(4)",
|
||||
"type": "IP6 internal",
|
||||
"vertex": "2001:db8:f::4/128"
|
||||
}
|
||||
]
|
||||
|
@ -47,6 +47,20 @@ from mininet.topo import Topo
|
||||
|
||||
pytestmark = [pytest.mark.isisd]
|
||||
|
||||
VERTEX_TYPE_LIST = [
|
||||
"pseudo_IS",
|
||||
"pseudo_TE-IS",
|
||||
"IS",
|
||||
"TE-IS",
|
||||
"ES",
|
||||
"IP internal",
|
||||
"IP external",
|
||||
"IP TE",
|
||||
"IP6 internal",
|
||||
"IP6 external",
|
||||
"UNKNOWN",
|
||||
]
|
||||
|
||||
|
||||
class ISISTopo1(Topo):
|
||||
"Simple two layer ISIS topology"
|
||||
@ -263,6 +277,7 @@ def parse_topology(lines, level):
|
||||
areas = {}
|
||||
area = None
|
||||
ipv = None
|
||||
vertex_type_regex = "|".join(VERTEX_TYPE_LIST)
|
||||
|
||||
for line in lines:
|
||||
area_match = re.match(r"Area (.+):", line)
|
||||
@ -282,44 +297,57 @@ def parse_topology(lines, level):
|
||||
ipv = "ipv4"
|
||||
continue
|
||||
|
||||
item_match = re.match(r"([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)", line)
|
||||
if item_match is not None:
|
||||
item_match = re.match(
|
||||
r"([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+)", line
|
||||
)
|
||||
if (
|
||||
item_match is not None
|
||||
and item_match.group(1) == "Vertex"
|
||||
and item_match.group(2) == "Type"
|
||||
and item_match.group(3) == "Metric"
|
||||
and item_match.group(4) == "Next-Hop"
|
||||
and item_match.group(5) == "Interface"
|
||||
and item_match.group(6) == "Parent"
|
||||
):
|
||||
# Skip header
|
||||
if (
|
||||
item_match.group(1) == "Vertex"
|
||||
and item_match.group(2) == "Type"
|
||||
and item_match.group(3) == "Metric"
|
||||
and item_match.group(4) == "Next-Hop"
|
||||
and item_match.group(5) == "Interface"
|
||||
and item_match.group(6) == "Parent"
|
||||
):
|
||||
continue
|
||||
|
||||
areas[area][level][ipv].append(
|
||||
{
|
||||
"vertex": item_match.group(1),
|
||||
"type": item_match.group(2),
|
||||
"metric": item_match.group(3),
|
||||
"next-hop": item_match.group(4),
|
||||
"interface": item_match.group(5),
|
||||
"parent": item_match.group(6),
|
||||
}
|
||||
)
|
||||
continue
|
||||
|
||||
item_match = re.match(r"([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)", line)
|
||||
item_match = re.match(
|
||||
r"([^\s]+) ({}) ([0]|([1-9][0-9]*)) ([^\s]+) ([^\s]+) ([^\s]+)".format(
|
||||
vertex_type_regex
|
||||
),
|
||||
line,
|
||||
)
|
||||
if item_match is not None:
|
||||
areas[area][level][ipv].append(
|
||||
{
|
||||
"vertex": item_match.group(1),
|
||||
"type": item_match.group(2),
|
||||
"metric": item_match.group(3),
|
||||
"parent": item_match.group(4),
|
||||
"next-hop": item_match.group(5),
|
||||
"interface": item_match.group(6),
|
||||
"parent": item_match.group(7),
|
||||
}
|
||||
)
|
||||
continue
|
||||
|
||||
item_match = re.match(r"([^ ]+)", line)
|
||||
item_match = re.match(
|
||||
r"([^\s]+) ({}) ([0]|([1-9][0-9]*)) ([^\s]+)".format(vertex_type_regex),
|
||||
line,
|
||||
)
|
||||
|
||||
if item_match is not None:
|
||||
areas[area][level][ipv].append(
|
||||
{
|
||||
"vertex": item_match.group(1),
|
||||
"type": item_match.group(2),
|
||||
"metric": item_match.group(3),
|
||||
"parent": item_match.group(5),
|
||||
}
|
||||
)
|
||||
continue
|
||||
|
||||
item_match = re.match(r"([^\s]+)", line)
|
||||
if item_match is not None:
|
||||
areas[area][level][ipv].append({"vertex": item_match.group(1)})
|
||||
continue
|
||||
|
Loading…
Reference in New Issue
Block a user