mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 10:04:18 +00:00
topotests: isis_topo1, use 'show isis topology json' command
Add the json support from ISIS vty command. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
This commit is contained in:
parent
f72a8eb4b5
commit
cd68ea3447
@ -1,96 +1,98 @@
|
|||||||
{
|
[
|
||||||
"1": {
|
{
|
||||||
"level-1": {
|
"area": "1",
|
||||||
"ipv4": [
|
"algorithm": 0,
|
||||||
{
|
"level-1": {
|
||||||
"vertex": "r1"
|
"ipv4-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipv6-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"level-2": {
|
||||||
|
"ipv4-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 0,
|
||||||
|
"Parent": "r1(4)",
|
||||||
|
"Type": "IP internal",
|
||||||
|
"Vertex": "10.0.20.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r1-eth0",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r3",
|
||||||
|
"Parent": "r1(4)",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r1-eth0",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r3",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.0.10.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r1-eth0",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r3",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.0.20.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r1-eth0",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r3",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.254.0.3/32"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipv6-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 0,
|
||||||
|
"Parent": "r1(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:1:1::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r1-eth0",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r3",
|
||||||
|
"Parent": "r1(4)",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r1-eth0",
|
||||||
|
"Next-Hop": "r3",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:2:1::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r1-eth0",
|
||||||
|
"Next-Hop": "r3",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:f::3/128"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"ipv6": [
|
|
||||||
{
|
|
||||||
"vertex": "r1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"level-2": {
|
|
||||||
"ipv4": [
|
|
||||||
{
|
|
||||||
"vertex": "r1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r1(4)",
|
|
||||||
"type": "IP internal",
|
|
||||||
"vertex": "10.0.20.0/24"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r1-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r3",
|
|
||||||
"parent": "r1(4)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r1-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r3",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP TE",
|
|
||||||
"vertex": "10.0.10.0/24"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r1-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r3",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP TE",
|
|
||||||
"vertex": "10.0.20.0/24"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r1-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r3",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP TE",
|
|
||||||
"vertex": "10.254.0.3/32"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ipv6": [
|
|
||||||
{
|
|
||||||
"vertex": "r1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r1(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:1:1::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r1-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r3",
|
|
||||||
"parent": "r1(4)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r1-eth0",
|
|
||||||
"next-hop": "r3",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:2:1::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r1-eth0",
|
|
||||||
"next-hop": "r3",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:f::3/128"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
]
|
||||||
}
|
|
||||||
|
@ -1,96 +1,98 @@
|
|||||||
{
|
[
|
||||||
"1": {
|
{
|
||||||
"level-1": {
|
"area": "1",
|
||||||
"ipv4": [
|
"algorithm": 0,
|
||||||
{
|
"level-1": {
|
||||||
"vertex": "r2"
|
"ipv4-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r2"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipv6-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"level-2": {
|
||||||
|
"ipv4-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 0,
|
||||||
|
"Parent": "r2(4)",
|
||||||
|
"Type": "IP internal",
|
||||||
|
"Vertex": "10.0.21.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r2-eth0",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r4",
|
||||||
|
"Parent": "r2(4)",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r2-eth0",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r4",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.0.11.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r2-eth0",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r4",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.0.21.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r2-eth0",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r4",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.254.0.4/32"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipv6-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 0,
|
||||||
|
"Parent": "r2(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:1:2::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r2-eth0",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r4",
|
||||||
|
"Parent": "r2(4)",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r2-eth0",
|
||||||
|
"Next-Hop": "r4",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:2:2::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r2-eth0",
|
||||||
|
"Next-Hop": "r4",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:f::4/128"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"ipv6": [
|
|
||||||
{
|
|
||||||
"vertex": "r2"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"level-2": {
|
|
||||||
"ipv4": [
|
|
||||||
{
|
|
||||||
"vertex": "r2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r2(4)",
|
|
||||||
"type": "IP internal",
|
|
||||||
"vertex": "10.0.21.0/24"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r2-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r4",
|
|
||||||
"parent": "r2(4)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r2-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r4",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP TE",
|
|
||||||
"vertex": "10.0.11.0/24"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r2-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r4",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP TE",
|
|
||||||
"vertex": "10.0.21.0/24"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r2-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r4",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP TE",
|
|
||||||
"vertex": "10.254.0.4/32"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ipv6": [
|
|
||||||
{
|
|
||||||
"vertex": "r2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r2(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:1:2::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r2-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r4",
|
|
||||||
"parent": "r2(4)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r2-eth0",
|
|
||||||
"next-hop": "r4",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:2:2::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r2-eth0",
|
|
||||||
"next-hop": "r4",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:f::4/128"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
]
|
||||||
}
|
|
||||||
|
@ -1,194 +1,196 @@
|
|||||||
{
|
[
|
||||||
"1": {
|
{
|
||||||
"level-1": {
|
"area": "1",
|
||||||
"ipv4": [
|
"algorithm": 0,
|
||||||
{
|
"level-1": {
|
||||||
"vertex": "r3"
|
"ipv4-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 0,
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP internal",
|
||||||
|
"Vertex": "10.0.10.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.0.10.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.0.11.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.254.0.5/32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Metric": 20,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Metric": 20,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.0.21.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Metric": 20,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.254.0.4/32"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipv6-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 0,
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:2:1::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:2:2::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:f::5/128"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Metric": 20,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 20,
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:1:2::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 20,
|
||||||
|
"Interface": "r3-eth1",
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:f::4/128"
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
"level-2": {
|
||||||
"metric": "0",
|
"ipv4-paths": [
|
||||||
"parent": "r3(4)",
|
{
|
||||||
"type": "IP internal",
|
"Vertex": "r3"
|
||||||
"vertex": "10.0.10.0/24"
|
},
|
||||||
},
|
{
|
||||||
{
|
"Metric": 0,
|
||||||
"interface": "r3-eth1",
|
"Parent": "r3(4)",
|
||||||
"metric": "10",
|
"Type": "IP internal",
|
||||||
"next-hop": "r5",
|
"Vertex": "10.0.20.0/24"
|
||||||
"parent": "r3(4)",
|
},
|
||||||
"type": "TE-IS",
|
{
|
||||||
"vertex": "r5"
|
"Interface": "r3-eth0",
|
||||||
},
|
"Metric": 10,
|
||||||
{
|
"Next-Hop": "r1",
|
||||||
"interface": "r3-eth1",
|
"Parent": "r3(4)",
|
||||||
"metric": "10",
|
"Type": "TE-IS",
|
||||||
"next-hop": "r5",
|
"Vertex": "r1"
|
||||||
"parent": "r5(4)",
|
},
|
||||||
"type": "IP TE",
|
{
|
||||||
"vertex": "10.0.10.0/24"
|
"Interface": "r3-eth0",
|
||||||
},
|
"Metric": 10,
|
||||||
{
|
"Next-Hop": "r1",
|
||||||
"interface": "r3-eth1",
|
"Parent": "r1(4)",
|
||||||
"metric": "10",
|
"Type": "IP TE",
|
||||||
"next-hop": "r5",
|
"Vertex": "10.0.20.0/24"
|
||||||
"parent": "r5(4)",
|
},
|
||||||
"type": "IP TE",
|
{
|
||||||
"vertex": "10.0.11.0/24"
|
"Interface": "r3-eth0",
|
||||||
},
|
"Metric": 10,
|
||||||
{
|
"Next-Hop": "r1",
|
||||||
"interface": "r3-eth1",
|
"Parent": "r1(4)",
|
||||||
"metric": "10",
|
"Type": "IP TE",
|
||||||
"next-hop": "r5",
|
"Vertex": "10.254.0.1/32"
|
||||||
"parent": "r5(4)",
|
}
|
||||||
"type": "IP TE",
|
],
|
||||||
"vertex": "10.254.0.5/32"
|
"ipv6-paths": [
|
||||||
},
|
{
|
||||||
{
|
"Vertex": "r3"
|
||||||
"interface": "r3-eth1",
|
},
|
||||||
"metric": "20",
|
{
|
||||||
"next-hop": "r5",
|
"Metric": 0,
|
||||||
"type": "TE-IS",
|
"Parent": "r3(4)",
|
||||||
"vertex": "r4"
|
"Type": "IP6 internal",
|
||||||
},
|
"Vertex": "2001:db8:1:1::/64"
|
||||||
{
|
},
|
||||||
"interface": "r3-eth1",
|
{
|
||||||
"metric": "20",
|
"Interface": "r3-eth0",
|
||||||
"next-hop": "r5",
|
"Metric": 10,
|
||||||
"parent": "r4(4)",
|
"Next-Hop": "r1",
|
||||||
"type": "IP TE",
|
"Parent": "r3(4)",
|
||||||
"vertex": "10.0.21.0/24"
|
"Type": "TE-IS",
|
||||||
},
|
"Vertex": "r1"
|
||||||
{
|
},
|
||||||
"interface": "r3-eth1",
|
{
|
||||||
"metric": "20",
|
"Metric": 10,
|
||||||
"next-hop": "r5",
|
"Interface": "r3-eth0",
|
||||||
"parent": "r4(4)",
|
"Next-Hop": "r1",
|
||||||
"type": "IP TE",
|
"Parent": "r1(4)",
|
||||||
"vertex": "10.254.0.4/32"
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:f::1/128"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"ipv6": [
|
|
||||||
{
|
|
||||||
"vertex": "r3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:2:1::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r3-eth1",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r3-eth1",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"parent": "r5(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:2:2::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r3-eth1",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"parent": "r5(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:f::5/128"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r3-eth1",
|
|
||||||
"metric": "20",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "20",
|
|
||||||
"interface": "r3-eth1",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:1:2::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "20",
|
|
||||||
"interface": "r3-eth1",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:f::4/128"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"level-2": {
|
|
||||||
"ipv4": [
|
|
||||||
{
|
|
||||||
"vertex": "r3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP internal",
|
|
||||||
"vertex": "10.0.20.0/24"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r3-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r1",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r3-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r1",
|
|
||||||
"parent": "r1(4)",
|
|
||||||
"type": "IP TE",
|
|
||||||
"vertex": "10.0.20.0/24"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r3-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r1",
|
|
||||||
"parent": "r1(4)",
|
|
||||||
"type": "IP TE",
|
|
||||||
"vertex": "10.254.0.1/32"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ipv6": [
|
|
||||||
{
|
|
||||||
"vertex": "r3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:1:1::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r3-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r1",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r3-eth0",
|
|
||||||
"next-hop": "r1",
|
|
||||||
"parent": "r1(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:f::1/128"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
]
|
||||||
}
|
|
||||||
|
@ -1,194 +1,196 @@
|
|||||||
{
|
[
|
||||||
"1": {
|
{
|
||||||
"level-1": {
|
"area": "1",
|
||||||
"ipv4": [
|
"algorithm": 0,
|
||||||
{
|
"level-1": {
|
||||||
"vertex": "r4"
|
"ipv4-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 0,
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP internal",
|
||||||
|
"Vertex": "10.0.11.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.0.10.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.0.11.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.254.0.5/32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Metric": 20,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Metric": 20,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.0.20.0/24"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Metric": 20,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.254.0.3/32"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipv6-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 0,
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:2:2::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Metric": 10,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:2:1::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:f::5/128"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Metric": 20,
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Type": "TE-IS",
|
||||||
|
"Vertex": "r3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 20,
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:1:1::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 20,
|
||||||
|
"Interface": "r4-eth1",
|
||||||
|
"Next-Hop": "r5",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:f::3/128"
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
"level-2": {
|
||||||
"metric": "0",
|
"ipv4-paths": [
|
||||||
"parent": "r4(4)",
|
{
|
||||||
"type": "IP internal",
|
"Vertex": "r4"
|
||||||
"vertex": "10.0.11.0/24"
|
},
|
||||||
},
|
{
|
||||||
{
|
"Metric": 0,
|
||||||
"interface": "r4-eth1",
|
"Parent": "r4(4)",
|
||||||
"metric": "10",
|
"Type": "IP internal",
|
||||||
"next-hop": "r5",
|
"Vertex": "10.0.21.0/24"
|
||||||
"parent": "r4(4)",
|
},
|
||||||
"type": "TE-IS",
|
{
|
||||||
"vertex": "r5"
|
"Interface": "r4-eth0",
|
||||||
},
|
"Metric": 10,
|
||||||
{
|
"Next-Hop": "r2",
|
||||||
"interface": "r4-eth1",
|
"Parent": "r4(4)",
|
||||||
"metric": "10",
|
"Type": "TE-IS",
|
||||||
"next-hop": "r5",
|
"Vertex": "r2"
|
||||||
"parent": "r5(4)",
|
},
|
||||||
"type": "IP TE",
|
{
|
||||||
"vertex": "10.0.10.0/24"
|
"Interface": "r4-eth0",
|
||||||
},
|
"Metric": 10,
|
||||||
{
|
"Next-Hop": "r2",
|
||||||
"interface": "r4-eth1",
|
"Parent": "r2(4)",
|
||||||
"metric": "10",
|
"Type": "IP TE",
|
||||||
"next-hop": "r5",
|
"Vertex": "10.0.21.0/24"
|
||||||
"parent": "r5(4)",
|
},
|
||||||
"type": "IP TE",
|
{
|
||||||
"vertex": "10.0.11.0/24"
|
"Interface": "r4-eth0",
|
||||||
},
|
"Metric": 10,
|
||||||
{
|
"Next-Hop": "r2",
|
||||||
"interface": "r4-eth1",
|
"Parent": "r2(4)",
|
||||||
"metric": "10",
|
"Type": "IP TE",
|
||||||
"next-hop": "r5",
|
"Vertex": "10.254.0.2/32"
|
||||||
"parent": "r5(4)",
|
}
|
||||||
"type": "IP TE",
|
],
|
||||||
"vertex": "10.254.0.5/32"
|
"ipv6-paths": [
|
||||||
},
|
{
|
||||||
{
|
"Vertex": "r4"
|
||||||
"interface": "r4-eth1",
|
},
|
||||||
"metric": "20",
|
{
|
||||||
"next-hop": "r5",
|
"Metric": 0,
|
||||||
"type": "TE-IS",
|
"Parent": "r4(4)",
|
||||||
"vertex": "r3"
|
"Type": "IP6 internal",
|
||||||
},
|
"Vertex": "2001:db8:1:2::/64"
|
||||||
{
|
},
|
||||||
"interface": "r4-eth1",
|
{
|
||||||
"metric": "20",
|
"Interface": "r4-eth0",
|
||||||
"next-hop": "r5",
|
"Metric": 10,
|
||||||
"parent": "r3(4)",
|
"Next-Hop": "r2",
|
||||||
"type": "IP TE",
|
"Parent": "r4(4)",
|
||||||
"vertex": "10.0.20.0/24"
|
"Type": "TE-IS",
|
||||||
},
|
"Vertex": "r2"
|
||||||
{
|
},
|
||||||
"interface": "r4-eth1",
|
{
|
||||||
"metric": "20",
|
"Metric": 10,
|
||||||
"next-hop": "r5",
|
"Interface": "r4-eth0",
|
||||||
"parent": "r3(4)",
|
"Next-Hop": "r2",
|
||||||
"type": "IP TE",
|
"Parent": "r2(4)",
|
||||||
"vertex": "10.254.0.3/32"
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:f::2/128"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"ipv6": [
|
|
||||||
{
|
|
||||||
"vertex": "r4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:2:2::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r4-eth1",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r4-eth1",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"parent": "r5(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:2:1::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r4-eth1",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"parent": "r5(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:f::5/128"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r4-eth1",
|
|
||||||
"metric": "20",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "20",
|
|
||||||
"interface": "r4-eth1",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:1:1::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "20",
|
|
||||||
"interface": "r4-eth1",
|
|
||||||
"next-hop": "r5",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:f::3/128"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"level-2": {
|
|
||||||
"ipv4": [
|
|
||||||
{
|
|
||||||
"vertex": "r4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP internal",
|
|
||||||
"vertex": "10.0.21.0/24"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r4-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r2",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r4-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r2",
|
|
||||||
"parent": "r2(4)",
|
|
||||||
"type": "IP TE",
|
|
||||||
"vertex": "10.0.21.0/24"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r4-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r2",
|
|
||||||
"parent": "r2(4)",
|
|
||||||
"type": "IP TE",
|
|
||||||
"vertex": "10.254.0.2/32"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ipv6": [
|
|
||||||
{
|
|
||||||
"vertex": "r4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:1:2::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"interface": "r4-eth0",
|
|
||||||
"metric": "10",
|
|
||||||
"next-hop": "r2",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "r2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r4-eth0",
|
|
||||||
"next-hop": "r2",
|
|
||||||
"parent": "r2(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:f::2/128"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
]
|
||||||
}
|
|
||||||
|
@ -1,156 +1,154 @@
|
|||||||
{
|
[
|
||||||
"1": {
|
{
|
||||||
"level-1": {
|
"area": "1",
|
||||||
"ipv4": [
|
"algorithm": 0,
|
||||||
{
|
"level-1": {
|
||||||
"vertex": "r5"
|
"ipv4-paths": [
|
||||||
},
|
{
|
||||||
{
|
"Vertex": "r5"
|
||||||
"metric": "0",
|
},
|
||||||
"parent": "r5(4)",
|
{
|
||||||
"type": "IP internal",
|
"Metric": 0,
|
||||||
"vertex": "10.0.10.0/24"
|
"Parent": "r5(4)",
|
||||||
},
|
"Type": "IP internal",
|
||||||
{
|
"Vertex": "10.0.10.0/24"
|
||||||
"metric": "0",
|
},
|
||||||
"parent": "r5(4)",
|
{
|
||||||
"type": "IP internal",
|
"Metric": 0,
|
||||||
"vertex": "10.0.11.0/24"
|
"Parent": "r5(4)",
|
||||||
},
|
"Type": "IP internal",
|
||||||
{
|
"Vertex": "10.0.11.0/24"
|
||||||
"interface": "r5-eth0",
|
},
|
||||||
"metric": "10",
|
{
|
||||||
"next-hop": "r3",
|
"Interface": "r5-eth0",
|
||||||
"parent": "r5(4)",
|
"Metric": 10,
|
||||||
"type": "TE-IS",
|
"Next-Hop": "r3",
|
||||||
"vertex": "r3"
|
"Parent": "r5(4)",
|
||||||
},
|
"Type": "TE-IS",
|
||||||
{
|
"Vertex": "r3"
|
||||||
"interface": "r5-eth1",
|
},
|
||||||
"metric": "10",
|
{
|
||||||
"next-hop": "r4",
|
"Interface": "r5-eth1",
|
||||||
"parent": "r5(4)",
|
"Metric": 10,
|
||||||
"type": "TE-IS",
|
"Next-Hop": "r4",
|
||||||
"vertex": "r4"
|
"Parent": "r5(4)",
|
||||||
},
|
"Type": "TE-IS",
|
||||||
{
|
"Vertex": "r4"
|
||||||
"interface": "r5-eth0",
|
},
|
||||||
"metric": "10",
|
{
|
||||||
"next-hop": "r3",
|
"Interface": "r5-eth0",
|
||||||
"parent": "r3(4)",
|
"Metric": 10,
|
||||||
"type": "IP TE",
|
"Next-Hop": "r3",
|
||||||
"vertex": "10.0.10.0/24"
|
"Parent": "r3(4)",
|
||||||
},
|
"Type": "IP TE",
|
||||||
{
|
"Vertex": "10.0.10.0/24"
|
||||||
"interface": "r5-eth0",
|
},
|
||||||
"metric": "10",
|
{
|
||||||
"next-hop": "r3",
|
"Interface": "r5-eth0",
|
||||||
"parent": "r3(4)",
|
"Metric": 10,
|
||||||
"type": "IP TE",
|
"Next-Hop": "r3",
|
||||||
"vertex": "10.0.20.0/24"
|
"Parent": "r3(4)",
|
||||||
},
|
"Type": "IP TE",
|
||||||
{
|
"Vertex": "10.0.20.0/24"
|
||||||
"interface": "r5-eth0",
|
},
|
||||||
"metric": "10",
|
{
|
||||||
"next-hop": "r3",
|
"Interface": "r5-eth0",
|
||||||
"parent": "r3(4)",
|
"Metric": 10,
|
||||||
"type": "IP TE",
|
"Next-Hop": "r3",
|
||||||
"vertex": "10.254.0.3/32"
|
"Parent": "r3(4)",
|
||||||
},
|
"Type": "IP TE",
|
||||||
{
|
"Vertex": "10.254.0.3/32"
|
||||||
"interface": "r5-eth1",
|
},
|
||||||
"metric": "10",
|
{
|
||||||
"next-hop": "r4",
|
"Interface": "r5-eth1",
|
||||||
"parent": "r4(4)",
|
"Metric": 10,
|
||||||
"type": "IP TE",
|
"Next-Hop": "r4",
|
||||||
"vertex": "10.0.11.0/24"
|
"Parent": "r4(4)",
|
||||||
},
|
"Type": "IP TE",
|
||||||
{
|
"Vertex": "10.0.11.0/24"
|
||||||
"interface": "r5-eth1",
|
},
|
||||||
"metric": "10",
|
{
|
||||||
"next-hop": "r4",
|
"Interface": "r5-eth1",
|
||||||
"parent": "r4(4)",
|
"Metric": 10,
|
||||||
"type": "IP TE",
|
"Next-Hop": "r4",
|
||||||
"vertex": "10.0.21.0/24"
|
"Parent": "r4(4)",
|
||||||
},
|
"Type": "IP TE",
|
||||||
{
|
"Vertex": "10.0.21.0/24"
|
||||||
"interface": "r5-eth1",
|
},
|
||||||
"metric": "10",
|
{
|
||||||
"next-hop": "r4",
|
"Interface": "r5-eth1",
|
||||||
"parent": "r4(4)",
|
"Metric": 10,
|
||||||
"type": "IP TE",
|
"Next-Hop": "r4",
|
||||||
"vertex": "10.254.0.4/32"
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP TE",
|
||||||
|
"Vertex": "10.254.0.4/32"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipv6-paths": [
|
||||||
|
{
|
||||||
|
"Vertex": "r5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 0,
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:2:1::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 0,
|
||||||
|
"Parent": "r5(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:2: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"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r5-eth0",
|
||||||
|
"Next-Hop": "r3",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:1:1::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r5-eth0",
|
||||||
|
"Next-Hop": "r3",
|
||||||
|
"Parent": "r3(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:f::3/128"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r5-eth1",
|
||||||
|
"Next-Hop": "r4",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:1:2::/64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Metric": 10,
|
||||||
|
"Interface": "r5-eth1",
|
||||||
|
"Next-Hop": "r4",
|
||||||
|
"Parent": "r4(4)",
|
||||||
|
"Type": "IP6 internal",
|
||||||
|
"Vertex": "2001:db8:f::4/128"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
|
||||||
"ipv6": [
|
|
||||||
{
|
|
||||||
"vertex": "r5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r5(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:2:1::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "0",
|
|
||||||
"parent": "r5(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:2: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"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r5-eth0",
|
|
||||||
"next-hop": "r3",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:1:1::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r5-eth0",
|
|
||||||
"next-hop": "r3",
|
|
||||||
"parent": "r3(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:f::3/128"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r5-eth1",
|
|
||||||
"next-hop": "r4",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:1:2::/64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metric": "10",
|
|
||||||
"interface": "r5-eth1",
|
|
||||||
"next-hop": "r4",
|
|
||||||
"parent": "r4(4)",
|
|
||||||
"type": "IP6 internal",
|
|
||||||
"vertex": "2001:db8:f::4/128"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"level-2": {
|
|
||||||
"ipv4": [],
|
|
||||||
"ipv6": []
|
|
||||||
}
|
}
|
||||||
}
|
]
|
||||||
}
|
|
||||||
|
@ -120,19 +120,13 @@ def test_isis_convergence():
|
|||||||
pytest.skip(tgen.errors)
|
pytest.skip(tgen.errors)
|
||||||
|
|
||||||
logger.info("waiting for ISIS protocol to converge")
|
logger.info("waiting for ISIS protocol to converge")
|
||||||
# Code to generate the json files.
|
|
||||||
# for rname, router in tgen.routers().items():
|
|
||||||
# open('/tmp/{}_topology.json'.format(rname), 'w').write(
|
|
||||||
# json.dumps(show_isis_topology(router), indent=2, sort_keys=True)
|
|
||||||
# )
|
|
||||||
|
|
||||||
for rname, router in tgen.routers().items():
|
for rname, router in tgen.routers().items():
|
||||||
filename = "{0}/{1}/{1}_topology.json".format(CWD, rname)
|
filename = "{0}/{1}/{1}_topology.json".format(CWD, rname)
|
||||||
expected = json.loads(open(filename).read())
|
expected = json.loads(open(filename).read())
|
||||||
|
|
||||||
def compare_isis_topology(router, expected):
|
def compare_isis_topology(router, expected):
|
||||||
"Helper function to test ISIS topology convergence."
|
"Helper function to test ISIS topology convergence."
|
||||||
actual = show_isis_topology(router)
|
actual = json.loads(router.vtysh_cmd("show isis topology json"))
|
||||||
return topotest.json_cmp(actual, expected)
|
return topotest.json_cmp(actual, expected)
|
||||||
|
|
||||||
test_func = functools.partial(compare_isis_topology, router, expected)
|
test_func = functools.partial(compare_isis_topology, router, expected)
|
||||||
@ -845,52 +839,3 @@ def parse_topology(lines, level):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
return areas
|
return areas
|
||||||
|
|
||||||
|
|
||||||
def show_isis_topology(router):
|
|
||||||
"""
|
|
||||||
Get the ISIS topology in a dictionary format.
|
|
||||||
|
|
||||||
Sample:
|
|
||||||
{
|
|
||||||
'area-name': {
|
|
||||||
'level-1': [
|
|
||||||
{
|
|
||||||
'vertex': 'r1'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
'level-2': [
|
|
||||||
{
|
|
||||||
'vertex': '10.0.0.1/24',
|
|
||||||
'type': 'IP',
|
|
||||||
'parent': '0',
|
|
||||||
'metric': 'internal'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
'area-name-2': {
|
|
||||||
'level-2': [
|
|
||||||
{
|
|
||||||
"interface": "rX-ethY",
|
|
||||||
"metric": "Z",
|
|
||||||
"next-hop": "rA",
|
|
||||||
"parent": "rC(B)",
|
|
||||||
"type": "TE-IS",
|
|
||||||
"vertex": "rD"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
l1out = topotest.normalize_text(
|
|
||||||
router.vtysh_cmd("show isis topology level-1")
|
|
||||||
).splitlines()
|
|
||||||
l2out = topotest.normalize_text(
|
|
||||||
router.vtysh_cmd("show isis topology level-2")
|
|
||||||
).splitlines()
|
|
||||||
|
|
||||||
l1 = parse_topology(l1out, "level-1")
|
|
||||||
l2 = parse_topology(l2out, "level-2")
|
|
||||||
|
|
||||||
dict_merge(l1, l2)
|
|
||||||
return l1
|
|
||||||
|
Loading…
Reference in New Issue
Block a user