mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 16:04:49 +00:00
Merge pull request #15679 from cscarpitta/test-srv6-sid-manager
tests: Add topotest to validate the sharing of an SRv6 locator among multiple protocols
This commit is contained in:
commit
80d3a2b120
8
tests/topotests/srv6_sid_manager/ce1/bgpd.conf
Normal file
8
tests/topotests/srv6_sid_manager/ce1/bgpd.conf
Normal file
@ -0,0 +1,8 @@
|
||||
frr defaults traditional
|
||||
!
|
||||
hostname ce1
|
||||
password zebra
|
||||
!
|
||||
log stdout notifications
|
||||
log commands
|
||||
log file bgpd.log
|
58
tests/topotests/srv6_sid_manager/ce1/ipv6_rib.json
Normal file
58
tests/topotests/srv6_sid_manager/ce1/ipv6_rib.json
Normal file
@ -0,0 +1,58 @@
|
||||
{
|
||||
"::/0": [
|
||||
{
|
||||
"prefix": "::/0",
|
||||
"protocol": "static",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 1,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 73,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"ip": "2001:1::1",
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-rt1",
|
||||
"active": true,
|
||||
"weight": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:1::/64": [
|
||||
{
|
||||
"prefix": "2001:1::/64",
|
||||
"protocol": "connected",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-rt1",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
14
tests/topotests/srv6_sid_manager/ce1/zebra.conf
Normal file
14
tests/topotests/srv6_sid_manager/ce1/zebra.conf
Normal file
@ -0,0 +1,14 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname ce1
|
||||
!
|
||||
interface eth-rt1
|
||||
ipv6 address 2001:1::2/64
|
||||
!
|
||||
ip forwarding
|
||||
ipv6 forwarding
|
||||
!
|
||||
ipv6 route ::/0 2001:1::1
|
||||
!
|
||||
line vty
|
||||
!
|
8
tests/topotests/srv6_sid_manager/ce2/bgpd.conf
Normal file
8
tests/topotests/srv6_sid_manager/ce2/bgpd.conf
Normal file
@ -0,0 +1,8 @@
|
||||
frr defaults traditional
|
||||
!
|
||||
hostname ce2
|
||||
password zebra
|
||||
!
|
||||
log stdout notifications
|
||||
log commands
|
||||
log file bgpd.log
|
58
tests/topotests/srv6_sid_manager/ce2/ipv6_rib.json
Normal file
58
tests/topotests/srv6_sid_manager/ce2/ipv6_rib.json
Normal file
@ -0,0 +1,58 @@
|
||||
{
|
||||
"::/0": [
|
||||
{
|
||||
"prefix": "::/0",
|
||||
"protocol": "static",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 1,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 73,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"ip": "2001:2::1",
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-rt6",
|
||||
"active": true,
|
||||
"weight": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:2::/64": [
|
||||
{
|
||||
"prefix": "2001:2::/64",
|
||||
"protocol": "connected",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-rt6",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
14
tests/topotests/srv6_sid_manager/ce2/zebra.conf
Normal file
14
tests/topotests/srv6_sid_manager/ce2/zebra.conf
Normal file
@ -0,0 +1,14 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname ce2
|
||||
!
|
||||
interface eth-rt6
|
||||
ipv6 address 2001:2::2/64
|
||||
!
|
||||
ip forwarding
|
||||
ipv6 forwarding
|
||||
!
|
||||
ipv6 route ::/0 2001:2::1
|
||||
!
|
||||
line vty
|
||||
!
|
8
tests/topotests/srv6_sid_manager/ce3/bgpd.conf
Normal file
8
tests/topotests/srv6_sid_manager/ce3/bgpd.conf
Normal file
@ -0,0 +1,8 @@
|
||||
frr defaults traditional
|
||||
!
|
||||
hostname ce3
|
||||
password zebra
|
||||
!
|
||||
log stdout notifications
|
||||
log commands
|
||||
log file bgpd.log
|
58
tests/topotests/srv6_sid_manager/ce3/ipv6_rib.json
Normal file
58
tests/topotests/srv6_sid_manager/ce3/ipv6_rib.json
Normal file
@ -0,0 +1,58 @@
|
||||
{
|
||||
"::/0": [
|
||||
{
|
||||
"prefix": "::/0",
|
||||
"protocol": "static",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 1,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 73,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"ip": "2001:3::1",
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-rt1",
|
||||
"active": true,
|
||||
"weight": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:3::/64": [
|
||||
{
|
||||
"prefix": "2001:3::/64",
|
||||
"protocol": "connected",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-rt1",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
14
tests/topotests/srv6_sid_manager/ce3/zebra.conf
Normal file
14
tests/topotests/srv6_sid_manager/ce3/zebra.conf
Normal file
@ -0,0 +1,14 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname ce3
|
||||
!
|
||||
interface eth-rt1
|
||||
ipv6 address 2001:3::2/64
|
||||
!
|
||||
ip forwarding
|
||||
ipv6 forwarding
|
||||
!
|
||||
ipv6 route ::/0 2001:3::1
|
||||
!
|
||||
line vty
|
||||
!
|
8
tests/topotests/srv6_sid_manager/ce4/bgpd.conf
Normal file
8
tests/topotests/srv6_sid_manager/ce4/bgpd.conf
Normal file
@ -0,0 +1,8 @@
|
||||
frr defaults traditional
|
||||
!
|
||||
hostname ce4
|
||||
password zebra
|
||||
!
|
||||
log stdout notifications
|
||||
log commands
|
||||
log file bgpd.log
|
58
tests/topotests/srv6_sid_manager/ce4/ipv6_rib.json
Normal file
58
tests/topotests/srv6_sid_manager/ce4/ipv6_rib.json
Normal file
@ -0,0 +1,58 @@
|
||||
{
|
||||
"::/0": [
|
||||
{
|
||||
"prefix": "::/0",
|
||||
"protocol": "static",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 1,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 73,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"ip": "2001:4::1",
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-rt6",
|
||||
"active": true,
|
||||
"weight": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:4::/64": [
|
||||
{
|
||||
"prefix": "2001:4::/64",
|
||||
"protocol": "connected",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-rt6",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
14
tests/topotests/srv6_sid_manager/ce4/zebra.conf
Normal file
14
tests/topotests/srv6_sid_manager/ce4/zebra.conf
Normal file
@ -0,0 +1,14 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname ce4
|
||||
!
|
||||
interface eth-rt6
|
||||
ipv6 address 2001:4::2/64
|
||||
!
|
||||
ip forwarding
|
||||
ipv6 forwarding
|
||||
!
|
||||
ipv6 route ::/0 2001:4::1
|
||||
!
|
||||
line vty
|
||||
!
|
8
tests/topotests/srv6_sid_manager/ce5/bgpd.conf
Normal file
8
tests/topotests/srv6_sid_manager/ce5/bgpd.conf
Normal file
@ -0,0 +1,8 @@
|
||||
frr defaults traditional
|
||||
!
|
||||
hostname ce5
|
||||
password zebra
|
||||
!
|
||||
log stdout notifications
|
||||
log commands
|
||||
log file bgpd.log
|
58
tests/topotests/srv6_sid_manager/ce5/ipv6_rib.json
Normal file
58
tests/topotests/srv6_sid_manager/ce5/ipv6_rib.json
Normal file
@ -0,0 +1,58 @@
|
||||
{
|
||||
"::/0": [
|
||||
{
|
||||
"prefix": "::/0",
|
||||
"protocol": "static",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 1,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 73,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"ip": "2001:5::1",
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-rt1",
|
||||
"active": true,
|
||||
"weight": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:5::/64": [
|
||||
{
|
||||
"prefix": "2001:5::/64",
|
||||
"protocol": "connected",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-rt1",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
14
tests/topotests/srv6_sid_manager/ce5/zebra.conf
Normal file
14
tests/topotests/srv6_sid_manager/ce5/zebra.conf
Normal file
@ -0,0 +1,14 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname ce5
|
||||
!
|
||||
interface eth-rt1
|
||||
ipv6 address 2001:5::2/64
|
||||
!
|
||||
ip forwarding
|
||||
ipv6 forwarding
|
||||
!
|
||||
ipv6 route ::/0 2001:5::1
|
||||
!
|
||||
line vty
|
||||
!
|
8
tests/topotests/srv6_sid_manager/ce6/bgpd.conf
Normal file
8
tests/topotests/srv6_sid_manager/ce6/bgpd.conf
Normal file
@ -0,0 +1,8 @@
|
||||
frr defaults traditional
|
||||
!
|
||||
hostname ce6
|
||||
password zebra
|
||||
!
|
||||
log stdout notifications
|
||||
log commands
|
||||
log file bgpd.log
|
58
tests/topotests/srv6_sid_manager/ce6/ipv6_rib.json
Normal file
58
tests/topotests/srv6_sid_manager/ce6/ipv6_rib.json
Normal file
@ -0,0 +1,58 @@
|
||||
{
|
||||
"::/0": [
|
||||
{
|
||||
"prefix": "::/0",
|
||||
"protocol": "static",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 1,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 73,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"ip": "2001:6::1",
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-rt6",
|
||||
"active": true,
|
||||
"weight": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:6::/64": [
|
||||
{
|
||||
"prefix": "2001:6::/64",
|
||||
"protocol": "connected",
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 254,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-rt6",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
14
tests/topotests/srv6_sid_manager/ce6/zebra.conf
Normal file
14
tests/topotests/srv6_sid_manager/ce6/zebra.conf
Normal file
@ -0,0 +1,14 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname ce6
|
||||
!
|
||||
interface eth-rt6
|
||||
ipv6 address 2001:6::2/64
|
||||
!
|
||||
ip forwarding
|
||||
ipv6 forwarding
|
||||
!
|
||||
ipv6 route ::/0 2001:6::1
|
||||
!
|
||||
line vty
|
||||
!
|
0
tests/topotests/srv6_sid_manager/dst/sharpd.conf
Normal file
0
tests/topotests/srv6_sid_manager/dst/sharpd.conf
Normal file
22
tests/topotests/srv6_sid_manager/dst/zebra.conf
Normal file
22
tests/topotests/srv6_sid_manager/dst/zebra.conf
Normal file
@ -0,0 +1,22 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname dst
|
||||
!
|
||||
! debug zebra kernel
|
||||
! debug zebra packet
|
||||
! debug zebra mpls
|
||||
!
|
||||
interface lo
|
||||
ip address 9.9.9.2/32
|
||||
ipv6 address fc00:0:9::1/128
|
||||
!
|
||||
interface eth-rt6
|
||||
ip address 10.0.10.2/24
|
||||
ipv6 address 2001:db8:10::2/64
|
||||
!
|
||||
ip forwarding
|
||||
!
|
||||
ip route 2001:db8:1::1 2001:db8:10::1
|
||||
!
|
||||
line vty
|
||||
!
|
67
tests/topotests/srv6_sid_manager/rt1/bgpd.conf
Normal file
67
tests/topotests/srv6_sid_manager/rt1/bgpd.conf
Normal file
@ -0,0 +1,67 @@
|
||||
frr defaults traditional
|
||||
!
|
||||
bgp send-extra-data zebra
|
||||
!
|
||||
hostname rt1
|
||||
password zebra
|
||||
!
|
||||
log stdout notifications
|
||||
log monitor notifications
|
||||
log commands
|
||||
!
|
||||
!debug bgp neighbor-events
|
||||
!debug bgp zebra
|
||||
!debug bgp vnc verbose
|
||||
!debug bgp update-groups
|
||||
!debug bgp updates in
|
||||
!debug bgp updates out
|
||||
!debug bgp vpn label
|
||||
!debug bgp vpn leak-from-vrf
|
||||
!debug bgp vpn leak-to-vrf
|
||||
!debug bgp vpn rmap-event
|
||||
!
|
||||
router bgp 1
|
||||
bgp router-id 1.1.1.1
|
||||
no bgp ebgp-requires-policy
|
||||
no bgp default ipv4-unicast
|
||||
neighbor fc00:0:6::1 remote-as 6
|
||||
neighbor fc00:0:6::1 timers 3 10
|
||||
neighbor fc00:0:6::1 timers connect 1
|
||||
neighbor fc00:0:6::1 ttl-security hops 20
|
||||
!
|
||||
address-family ipv6 vpn
|
||||
neighbor fc00:0:6::1 activate
|
||||
exit-address-family
|
||||
!
|
||||
segment-routing srv6
|
||||
locator loc1
|
||||
!
|
||||
!
|
||||
router bgp 1 vrf vrf10
|
||||
bgp router-id 1.1.1.1
|
||||
no bgp ebgp-requires-policy
|
||||
no bgp default ipv4-unicast
|
||||
!
|
||||
address-family ipv6 unicast
|
||||
sid vpn export 65024
|
||||
rd vpn export 1:10
|
||||
rt vpn both 99:99
|
||||
import vpn
|
||||
export vpn
|
||||
redistribute connected
|
||||
exit-address-family
|
||||
!
|
||||
router bgp 1 vrf vrf20
|
||||
bgp router-id 1.1.1.1
|
||||
no bgp ebgp-requires-policy
|
||||
no bgp default ipv4-unicast
|
||||
!
|
||||
address-family ipv6 unicast
|
||||
sid vpn export 65025
|
||||
rd vpn export 1:20
|
||||
rt vpn both 88:88
|
||||
import vpn
|
||||
export vpn
|
||||
redistribute connected
|
||||
exit-address-family
|
||||
!
|
35
tests/topotests/srv6_sid_manager/rt1/isisd.conf
Normal file
35
tests/topotests/srv6_sid_manager/rt1/isisd.conf
Normal file
@ -0,0 +1,35 @@
|
||||
password 1
|
||||
hostname rt1
|
||||
log file isisd.log
|
||||
!
|
||||
! debug isis events
|
||||
! debug isis route-events
|
||||
! debug isis spf-events
|
||||
! debug isis sr-events
|
||||
! debug isis lsp-gen
|
||||
!
|
||||
interface lo
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis passive
|
||||
!
|
||||
interface eth-sw1
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
router isis 1
|
||||
lsp-gen-interval 2
|
||||
net 49.0000.0000.0000.0001.00
|
||||
is-type level-1
|
||||
topology ipv6-unicast
|
||||
segment-routing srv6
|
||||
locator loc1
|
||||
node-msd
|
||||
max-segs-left 3
|
||||
max-end-pop 3
|
||||
max-h-encaps 2
|
||||
max-end-d 5
|
||||
interface sr0
|
||||
!
|
0
tests/topotests/srv6_sid_manager/rt1/sharpd.conf
Normal file
0
tests/topotests/srv6_sid_manager/rt1/sharpd.conf
Normal file
276
tests/topotests/srv6_sid_manager/rt1/show_ip_route.ref
Normal file
276
tests/topotests/srv6_sid_manager/rt1/show_ip_route.ref
Normal file
@ -0,0 +1,276 @@
|
||||
{
|
||||
"2.2.2.2\/32":[
|
||||
{
|
||||
"prefix":"2.2.2.2\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3.3.3.3\/32":[
|
||||
{
|
||||
"prefix":"3.3.3.3\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4.4.4.4\/32":[
|
||||
{
|
||||
"prefix":"4.4.4.4\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"5.5.5.5\/32":[
|
||||
{
|
||||
"prefix":"5.5.5.5\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"6.6.6.6\/32":[
|
||||
{
|
||||
"prefix":"6.6.6.6\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":40,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.1.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.1.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1"
|
||||
},
|
||||
{
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.2.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.2.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.3.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.3.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.4.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.4.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.5.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.5.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.6.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.6.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.7.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.7.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.8.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.8.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
314
tests/topotests/srv6_sid_manager/rt1/show_ipv6_route.ref
Normal file
314
tests/topotests/srv6_sid_manager/rt1/show_ipv6_route.ref
Normal file
@ -0,0 +1,314 @@
|
||||
{
|
||||
"fc00:0:2::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:2::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:3::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:4::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:5::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:6::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":40,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:2::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:3::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:4::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:5::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:6::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:1::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:1::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"sr0",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:1:e000::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:1:e000::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:1:e001::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:1:e001::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:1:fe00::\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:1:fe00::\/128",
|
||||
"protocol":"bgp",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":20,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"vrf10",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.DT6"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:1:fe01::\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:1:fe01::\/128",
|
||||
"protocol":"bgp",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":20,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"vrf20",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.DT6"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"locators":[
|
||||
{
|
||||
"name":"loc1",
|
||||
"prefix":"fc00:0:1::/48",
|
||||
"blockBitsLength":32,
|
||||
"nodeBitsLength":16,
|
||||
"functionBitsLength":16,
|
||||
"argumentBitsLength":0,
|
||||
"statusUp":true,
|
||||
"chunks":[
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
{
|
||||
"frr-interface:lib": {
|
||||
"interface": [
|
||||
{
|
||||
"name": "eth-sw1",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0003",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 64,
|
||||
"state": "up"
|
||||
},
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0002",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 64,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
169
tests/topotests/srv6_sid_manager/rt1/vpnv6_rib.ref
Normal file
169
tests/topotests/srv6_sid_manager/rt1/vpnv6_rib.ref
Normal file
@ -0,0 +1,169 @@
|
||||
{
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"routerId": "1.1.1.1",
|
||||
"defaultLocPrf": 100,
|
||||
"localAS": 1,
|
||||
"routes": {
|
||||
"routeDistinguishers": {
|
||||
"1:10": {
|
||||
"2001:1::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:1::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:1::/64",
|
||||
"metric": 0,
|
||||
"weight": 32768,
|
||||
"peerId": "(unspec)",
|
||||
"path": "",
|
||||
"origin": "incomplete",
|
||||
"announceNexthopSelf": true,
|
||||
"nhVrfName": "vrf10",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "::",
|
||||
"hostname": "rt1",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:3::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:3::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:3::/64",
|
||||
"metric": 0,
|
||||
"weight": 32768,
|
||||
"peerId": "(unspec)",
|
||||
"path": "",
|
||||
"origin": "incomplete",
|
||||
"announceNexthopSelf": true,
|
||||
"nhVrfName": "vrf10",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "::",
|
||||
"hostname": "rt1",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"1:20": {
|
||||
"2001:5::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:5::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:5::/64",
|
||||
"metric": 0,
|
||||
"weight": 32768,
|
||||
"peerId": "(unspec)",
|
||||
"path": "",
|
||||
"origin": "incomplete",
|
||||
"announceNexthopSelf": true,
|
||||
"nhVrfName": "vrf20",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "::",
|
||||
"hostname": "rt1",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"6:10": {
|
||||
"2001:2::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:2::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:2::/64",
|
||||
"metric": 0,
|
||||
"weight": 0,
|
||||
"peerId": "fc00:0:6::1",
|
||||
"path": "6",
|
||||
"origin": "incomplete",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "fc00:0:6::1",
|
||||
"hostname": "rt6",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"6:20": {
|
||||
"2001:4::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:4::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:4::/64",
|
||||
"metric": 0,
|
||||
"weight": 0,
|
||||
"peerId": "fc00:0:6::1",
|
||||
"path": "6",
|
||||
"origin": "incomplete",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "fc00:0:6::1",
|
||||
"hostname": "rt6",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:6::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:6::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:6::/64",
|
||||
"metric": 0,
|
||||
"weight": 0,
|
||||
"peerId": "fc00:0:6::1",
|
||||
"path": "6",
|
||||
"origin": "incomplete",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "fc00:0:6::1",
|
||||
"hostname": "rt6",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
86
tests/topotests/srv6_sid_manager/rt1/vrf10_rib.ref
Normal file
86
tests/topotests/srv6_sid_manager/rt1/vrf10_rib.ref
Normal file
@ -0,0 +1,86 @@
|
||||
{
|
||||
"2001:1::/64": [
|
||||
{
|
||||
"prefix": "2001:1::/64",
|
||||
"protocol": "connected",
|
||||
"vrfName": "vrf10",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 10,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-ce1",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:2::/64": [
|
||||
{
|
||||
"prefix": "2001:2::/64",
|
||||
"protocol": "bgp",
|
||||
"vrfName": "vrf10",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 20,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 10,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 9,
|
||||
"internalNextHopNum": 3,
|
||||
"internalNextHopActiveNum": 3,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-sw1",
|
||||
"vrf": "default",
|
||||
"active": true,
|
||||
"weight": 1,
|
||||
"seg6": {
|
||||
"segs": "fc00:0:6:fe00::"
|
||||
}
|
||||
}
|
||||
],
|
||||
"asPath": "6"
|
||||
}
|
||||
],
|
||||
"2001:3::/64": [
|
||||
{
|
||||
"prefix": "2001:3::/64",
|
||||
"protocol": "connected",
|
||||
"vrfName": "vrf10",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 10,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-ce3",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
92
tests/topotests/srv6_sid_manager/rt1/vrf20_rib.ref
Normal file
92
tests/topotests/srv6_sid_manager/rt1/vrf20_rib.ref
Normal file
@ -0,0 +1,92 @@
|
||||
{
|
||||
"2001:4::/64": [
|
||||
{
|
||||
"prefix": "2001:4::/64",
|
||||
"protocol": "bgp",
|
||||
"vrfName": "vrf20",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 20,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 20,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 9,
|
||||
"internalNextHopNum": 3,
|
||||
"internalNextHopActiveNum": 3,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-sw1",
|
||||
"vrf": "default",
|
||||
"active": true,
|
||||
"weight": 1,
|
||||
"seg6": {
|
||||
"segs": "fc00:0:6:fe01::"
|
||||
}
|
||||
}
|
||||
],
|
||||
"asPath": "6"
|
||||
}
|
||||
],
|
||||
"2001:5::/64": [
|
||||
{
|
||||
"prefix": "2001:5::/64",
|
||||
"protocol": "connected",
|
||||
"vrfName": "vrf20",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 20,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-ce5",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:6::/64": [
|
||||
{
|
||||
"prefix": "2001:6::/64",
|
||||
"protocol": "bgp",
|
||||
"vrfName": "vrf20",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 20,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 20,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 9,
|
||||
"internalNextHopNum": 3,
|
||||
"internalNextHopActiveNum": 3,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-sw1",
|
||||
"vrf": "default",
|
||||
"active": true,
|
||||
"weight": 1,
|
||||
"seg6": {
|
||||
"segs": "fc00:0:6:fe01::"
|
||||
}
|
||||
}
|
||||
],
|
||||
"asPath": "6"
|
||||
}
|
||||
]
|
||||
}
|
37
tests/topotests/srv6_sid_manager/rt1/zebra.conf
Normal file
37
tests/topotests/srv6_sid_manager/rt1/zebra.conf
Normal file
@ -0,0 +1,37 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname rt1
|
||||
!
|
||||
! debug zebra kernel
|
||||
! debug zebra packet
|
||||
!
|
||||
interface lo
|
||||
ip address 1.1.1.1/32
|
||||
ipv6 address fc00:0:1::1/128
|
||||
!
|
||||
interface eth-sw1
|
||||
ip address 10.0.1.1/24
|
||||
ipv6 address 2001:db8:1::1/64
|
||||
!
|
||||
interface eth-ce1 vrf vrf10
|
||||
ipv6 address 2001:1::1/64
|
||||
!
|
||||
interface eth-ce3 vrf vrf10
|
||||
ipv6 address 2001:3::1/64
|
||||
!
|
||||
interface eth-ce5 vrf vrf20
|
||||
ipv6 address 2001:5::1/64
|
||||
!
|
||||
segment-routing
|
||||
srv6
|
||||
locators
|
||||
locator loc1
|
||||
prefix fc00:0:1::/48
|
||||
format usid-f3216
|
||||
!
|
||||
!
|
||||
!
|
||||
ip forwarding
|
||||
!
|
||||
line vty
|
||||
!
|
48
tests/topotests/srv6_sid_manager/rt2/isisd.conf
Normal file
48
tests/topotests/srv6_sid_manager/rt2/isisd.conf
Normal file
@ -0,0 +1,48 @@
|
||||
hostname rt2
|
||||
log file isisd.log
|
||||
!
|
||||
! debug isis events
|
||||
! debug isis route-events
|
||||
! debug isis spf-events
|
||||
! debug isis sr-events
|
||||
! debug isis lsp-gen
|
||||
!
|
||||
interface lo
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis passive
|
||||
!
|
||||
interface eth-sw1
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt4-1
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt4-2
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
router isis 1
|
||||
lsp-gen-interval 2
|
||||
net 49.0000.0000.0000.0002.00
|
||||
is-type level-1
|
||||
topology ipv6-unicast
|
||||
segment-routing srv6
|
||||
locator loc1
|
||||
node-msd
|
||||
max-segs-left 3
|
||||
max-end-pop 3
|
||||
max-h-encaps 2
|
||||
max-end-d 5
|
||||
interface sr0
|
||||
!
|
320
tests/topotests/srv6_sid_manager/rt2/show_ip_route.ref
Normal file
320
tests/topotests/srv6_sid_manager/rt2/show_ip_route.ref
Normal file
@ -0,0 +1,320 @@
|
||||
{
|
||||
"1.1.1.1\/32":[
|
||||
{
|
||||
"prefix":"1.1.1.1\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.1",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3.3.3.3\/32":[
|
||||
{
|
||||
"prefix":"3.3.3.3\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4.4.4.4\/32":[
|
||||
{
|
||||
"prefix":"4.4.4.4\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.2.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.3.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"5.5.5.5\/32":[
|
||||
{
|
||||
"prefix":"5.5.5.5\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.2.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.3.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"6.6.6.6\/32":[
|
||||
{
|
||||
"prefix":"6.6.6.6\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.2.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.3.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.1.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.1.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.1.1",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1"
|
||||
},
|
||||
{
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.2.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.2.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.2.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-1"
|
||||
},
|
||||
{
|
||||
"ip":"10.0.3.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.3.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.3.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.2.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"ip":"10.0.3.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.4.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.4.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.5.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.5.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.6.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.6.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.2.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.3.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.7.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.7.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.2.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.3.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.8.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.8.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.2.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.3.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
346
tests/topotests/srv6_sid_manager/rt2/show_ipv6_route.ref
Normal file
346
tests/topotests/srv6_sid_manager/rt2/show_ipv6_route.ref
Normal file
@ -0,0 +1,346 @@
|
||||
{
|
||||
"fc00:0:1::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:1::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:3::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:4::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:5::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:6::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:1::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:1::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:3::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:4::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:5::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:6::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:2::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"sr0",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2:e000::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:2:e000::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2:e001::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:2:e001::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2:e002::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:2:e002::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2:e003::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:2:e003::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"locators":[
|
||||
{
|
||||
"name":"loc1",
|
||||
"prefix":"fc00:0:2::/48",
|
||||
"blockBitsLength":32,
|
||||
"nodeBitsLength":16,
|
||||
"functionBitsLength":16,
|
||||
"argumentBitsLength":0,
|
||||
"statusUp":true,
|
||||
"chunks":[
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
{
|
||||
"frr-interface:lib": {
|
||||
"interface": [
|
||||
{
|
||||
"name": "eth-rt4-1",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0004",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-rt4-2",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0004",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-sw1",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0003",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 64,
|
||||
"state": "up"
|
||||
},
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0001",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 64,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
34
tests/topotests/srv6_sid_manager/rt2/zebra.conf
Normal file
34
tests/topotests/srv6_sid_manager/rt2/zebra.conf
Normal file
@ -0,0 +1,34 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname rt2
|
||||
!
|
||||
! debug zebra kernel
|
||||
! debug zebra packet
|
||||
!
|
||||
interface lo
|
||||
ip address 2.2.2.2/32
|
||||
ipv6 address fc00:0:2::1/128
|
||||
!
|
||||
interface eth-sw1
|
||||
ip address 10.0.1.2/24
|
||||
ipv6 address 2001:db8:1::2/64
|
||||
!
|
||||
interface eth-rt4-1
|
||||
ip address 10.0.2.2/24
|
||||
!
|
||||
interface eth-rt4-2
|
||||
ip address 10.0.3.2/24
|
||||
!
|
||||
segment-routing
|
||||
srv6
|
||||
locators
|
||||
locator loc1
|
||||
prefix fc00:0:2::/48
|
||||
format usid-f3216
|
||||
!
|
||||
!
|
||||
!
|
||||
ip forwarding
|
||||
!
|
||||
line vty
|
||||
!
|
48
tests/topotests/srv6_sid_manager/rt3/isisd.conf
Normal file
48
tests/topotests/srv6_sid_manager/rt3/isisd.conf
Normal file
@ -0,0 +1,48 @@
|
||||
hostname rt3
|
||||
log file isisd.log
|
||||
!
|
||||
! debug isis events
|
||||
! debug isis route-events
|
||||
! debug isis spf-events
|
||||
! debug isis sr-events
|
||||
! debug isis lsp-gen
|
||||
!
|
||||
interface lo
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis passive
|
||||
!
|
||||
interface eth-sw1
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt5-1
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt5-2
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
router isis 1
|
||||
lsp-gen-interval 2
|
||||
net 49.0000.0000.0000.0003.00
|
||||
is-type level-1
|
||||
topology ipv6-unicast
|
||||
segment-routing srv6
|
||||
locator loc1
|
||||
node-msd
|
||||
max-segs-left 3
|
||||
max-end-pop 3
|
||||
max-h-encaps 2
|
||||
max-end-d 5
|
||||
interface sr0
|
||||
!
|
320
tests/topotests/srv6_sid_manager/rt3/show_ip_route.ref
Normal file
320
tests/topotests/srv6_sid_manager/rt3/show_ip_route.ref
Normal file
@ -0,0 +1,320 @@
|
||||
{
|
||||
"1.1.1.1\/32":[
|
||||
{
|
||||
"prefix":"1.1.1.1\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.1",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2.2.2.2\/32":[
|
||||
{
|
||||
"prefix":"2.2.2.2\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4.4.4.4\/32":[
|
||||
{
|
||||
"prefix":"4.4.4.4\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.4.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.5.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"5.5.5.5\/32":[
|
||||
{
|
||||
"prefix":"5.5.5.5\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.4.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.5.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"6.6.6.6\/32":[
|
||||
{
|
||||
"prefix":"6.6.6.6\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.4.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.5.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.1.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.1.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.1.1",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1"
|
||||
},
|
||||
{
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.2.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.2.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.3.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.3.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.4.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.4.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.4.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-1"
|
||||
},
|
||||
{
|
||||
"ip":"10.0.5.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.5.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.5.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.4.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"ip":"10.0.5.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.6.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.6.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.4.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.5.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.7.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.7.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.1.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.4.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.5.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.8.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.8.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.4.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.5.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
346
tests/topotests/srv6_sid_manager/rt3/show_ipv6_route.ref
Normal file
346
tests/topotests/srv6_sid_manager/rt3/show_ipv6_route.ref
Normal file
@ -0,0 +1,346 @@
|
||||
{
|
||||
"fc00:0:1::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:1::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:2::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:4::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:5::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:6::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:1::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:1::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:2::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:4::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-sw1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:5::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:6::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:3::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"sr0",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3:e000::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:3:e000::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3:e001::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:3:e001::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3:e002::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:3:e002::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3:e003::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:3:e003::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"locators":[
|
||||
{
|
||||
"name":"loc1",
|
||||
"prefix":"fc00:0:3::/48",
|
||||
"blockBitsLength":32,
|
||||
"nodeBitsLength":16,
|
||||
"functionBitsLength":16,
|
||||
"argumentBitsLength":0,
|
||||
"statusUp":true,
|
||||
"chunks":[
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
{
|
||||
"frr-interface:lib": {
|
||||
"interface": [
|
||||
{
|
||||
"name": "eth-rt5-1",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0005",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-rt5-2",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0005",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-sw1",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0001",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 64,
|
||||
"state": "up"
|
||||
},
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0002",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 64,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
33
tests/topotests/srv6_sid_manager/rt3/zebra.conf
Normal file
33
tests/topotests/srv6_sid_manager/rt3/zebra.conf
Normal file
@ -0,0 +1,33 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname rt3
|
||||
!
|
||||
! debug zebra kernel
|
||||
! debug zebra packet
|
||||
!
|
||||
interface lo
|
||||
ip address 3.3.3.3/32
|
||||
ipv6 address fc00:0:3::1/128
|
||||
!
|
||||
interface eth-sw1
|
||||
ip address 10.0.1.3/24
|
||||
!
|
||||
interface eth-rt5-1
|
||||
ip address 10.0.4.3/24
|
||||
!
|
||||
interface eth-rt5-2
|
||||
ip address 10.0.5.3/24
|
||||
!
|
||||
segment-routing
|
||||
srv6
|
||||
locators
|
||||
locator loc1
|
||||
prefix fc00:0:3::/48
|
||||
format usid-f3216
|
||||
!
|
||||
!
|
||||
!
|
||||
ip forwarding
|
||||
!
|
||||
line vty
|
||||
!
|
56
tests/topotests/srv6_sid_manager/rt4/isisd.conf
Normal file
56
tests/topotests/srv6_sid_manager/rt4/isisd.conf
Normal file
@ -0,0 +1,56 @@
|
||||
hostname rt4
|
||||
log file isisd.log
|
||||
!
|
||||
! debug isis events
|
||||
! debug isis route-events
|
||||
! debug isis spf-events
|
||||
! debug isis sr-events
|
||||
! debug isis lsp-gen
|
||||
!
|
||||
interface lo
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis passive
|
||||
!
|
||||
interface eth-rt2-1
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt2-2
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt5
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt6
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
router isis 1
|
||||
lsp-gen-interval 2
|
||||
net 49.0000.0000.0000.0004.00
|
||||
is-type level-1
|
||||
topology ipv6-unicast
|
||||
segment-routing srv6
|
||||
locator loc1
|
||||
node-msd
|
||||
max-segs-left 3
|
||||
max-end-pop 3
|
||||
max-h-encaps 2
|
||||
max-end-d 5
|
||||
interface sr0
|
||||
!
|
296
tests/topotests/srv6_sid_manager/rt4/show_ip_route.ref
Normal file
296
tests/topotests/srv6_sid_manager/rt4/show_ip_route.ref
Normal file
@ -0,0 +1,296 @@
|
||||
{
|
||||
"1.1.1.1\/32":[
|
||||
{
|
||||
"prefix":"1.1.1.1\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.2.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.3.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2.2.2.2\/32":[
|
||||
{
|
||||
"prefix":"2.2.2.2\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.2.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.3.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3.3.3.3\/32":[
|
||||
{
|
||||
"prefix":"3.3.3.3\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.2.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.3.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.6.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"5.5.5.5\/32":[
|
||||
{
|
||||
"prefix":"5.5.5.5\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.6.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"6.6.6.6\/32":[
|
||||
{
|
||||
"prefix":"6.6.6.6\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.7.6",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt6",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.1.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.1.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.2.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.3.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.2.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.2.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.2.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-1"
|
||||
},
|
||||
{
|
||||
"ip":"10.0.3.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.3.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.3.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.2.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"ip":"10.0.3.2",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt2-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.4.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.4.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.6.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.5.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.5.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.6.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.6.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.6.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.6.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.7.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.7.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.7.6",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt6"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.8.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.8.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.6.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.7.6",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt6",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
346
tests/topotests/srv6_sid_manager/rt4/show_ipv6_route.ref
Normal file
346
tests/topotests/srv6_sid_manager/rt4/show_ipv6_route.ref
Normal file
@ -0,0 +1,346 @@
|
||||
{
|
||||
"fc00:0:1::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:1::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:2::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:3::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:5::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:6::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt6",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:1::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:1::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:2::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:3::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt2-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:5::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:6::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt6",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:4::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"sr0",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4:e000::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:4:e000::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4:e001::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:4:e001::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4:e002::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:4:e002::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4:e003::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:4:e003::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"locators":[
|
||||
{
|
||||
"name":"loc1",
|
||||
"prefix":"fc00:0:4::/48",
|
||||
"blockBitsLength":32,
|
||||
"nodeBitsLength":16,
|
||||
"functionBitsLength":16,
|
||||
"argumentBitsLength":0,
|
||||
"statusUp":true,
|
||||
"chunks":[
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
{
|
||||
"frr-interface:lib": {
|
||||
"interface": [
|
||||
{
|
||||
"name": "eth-rt2-1",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0002",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-rt2-2",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0002",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-rt5",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0005",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-rt6",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0006",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
36
tests/topotests/srv6_sid_manager/rt4/zebra.conf
Normal file
36
tests/topotests/srv6_sid_manager/rt4/zebra.conf
Normal file
@ -0,0 +1,36 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname rt4
|
||||
!
|
||||
! debug zebra kernel
|
||||
! debug zebra packet
|
||||
!
|
||||
interface lo
|
||||
ip address 4.4.4.4/32
|
||||
ipv6 address fc00:0:4::1/128
|
||||
!
|
||||
interface eth-rt2-1
|
||||
ip address 10.0.2.4/24
|
||||
!
|
||||
interface eth-rt2-2
|
||||
ip address 10.0.3.4/24
|
||||
!
|
||||
interface eth-rt5
|
||||
ip address 10.0.6.4/24
|
||||
!
|
||||
interface eth-rt6
|
||||
ip address 10.0.7.4/24
|
||||
!
|
||||
segment-routing
|
||||
srv6
|
||||
locators
|
||||
locator loc1
|
||||
prefix fc00:0:4::/48
|
||||
format usid-f3216
|
||||
!
|
||||
!
|
||||
!
|
||||
ip forwarding
|
||||
!
|
||||
line vty
|
||||
!
|
56
tests/topotests/srv6_sid_manager/rt5/isisd.conf
Normal file
56
tests/topotests/srv6_sid_manager/rt5/isisd.conf
Normal file
@ -0,0 +1,56 @@
|
||||
hostname rt5
|
||||
log file isisd.log
|
||||
!
|
||||
! debug isis events
|
||||
! debug isis route-events
|
||||
! debug isis spf-events
|
||||
! debug isis sr-events
|
||||
! debug isis lsp-gen
|
||||
!
|
||||
interface lo
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis passive
|
||||
!
|
||||
interface eth-rt3-1
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt3-2
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt4
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt6
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
router isis 1
|
||||
lsp-gen-interval 2
|
||||
net 49.0000.0000.0000.0005.00
|
||||
is-type level-1
|
||||
topology ipv6-unicast
|
||||
segment-routing srv6
|
||||
locator loc1
|
||||
node-msd
|
||||
max-segs-left 3
|
||||
max-end-pop 3
|
||||
max-h-encaps 2
|
||||
max-end-d 5
|
||||
interface sr0
|
||||
!
|
296
tests/topotests/srv6_sid_manager/rt5/show_ip_route.ref
Normal file
296
tests/topotests/srv6_sid_manager/rt5/show_ip_route.ref
Normal file
@ -0,0 +1,296 @@
|
||||
{
|
||||
"1.1.1.1\/32":[
|
||||
{
|
||||
"prefix":"1.1.1.1\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.4.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.5.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2.2.2.2\/32":[
|
||||
{
|
||||
"prefix":"2.2.2.2\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.4.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.5.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.6.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3.3.3.3\/32":[
|
||||
{
|
||||
"prefix":"3.3.3.3\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.4.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.5.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4.4.4.4\/32":[
|
||||
{
|
||||
"prefix":"4.4.4.4\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.6.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"6.6.6.6\/32":[
|
||||
{
|
||||
"prefix":"6.6.6.6\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.8.6",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt6",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.1.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.1.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.4.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.5.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.2.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.2.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.6.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.3.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.3.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.6.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.4.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.4.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.4.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-1"
|
||||
},
|
||||
{
|
||||
"ip":"10.0.5.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.5.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.5.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.4.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"ip":"10.0.5.3",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt3-2"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.6.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.6.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.6.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.7.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.7.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.6.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.8.6",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt6",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.8.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.8.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.8.6",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt6"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
346
tests/topotests/srv6_sid_manager/rt5/show_ipv6_route.ref
Normal file
346
tests/topotests/srv6_sid_manager/rt5/show_ipv6_route.ref
Normal file
@ -0,0 +1,346 @@
|
||||
{
|
||||
"fc00:0:1::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:1::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:2::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:3::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:4::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:6::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt6",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:1::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:1::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:2::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:3::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-2",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt3-1",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:4::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:6::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt6",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:5::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"sr0",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5:e000::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:5:e000::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5:e001::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:5:e001::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5:e002::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:5:e002::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5:e003::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:5:e003::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"locators":[
|
||||
{
|
||||
"name":"loc1",
|
||||
"prefix":"fc00:0:5::/48",
|
||||
"blockBitsLength":32,
|
||||
"nodeBitsLength":16,
|
||||
"functionBitsLength":16,
|
||||
"argumentBitsLength":0,
|
||||
"statusUp":true,
|
||||
"chunks":[
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
{
|
||||
"frr-interface:lib": {
|
||||
"interface": [
|
||||
{
|
||||
"name": "eth-rt3-1",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0003",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-rt3-2",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0003",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-rt4",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0004",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-rt6",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0006",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
36
tests/topotests/srv6_sid_manager/rt5/zebra.conf
Normal file
36
tests/topotests/srv6_sid_manager/rt5/zebra.conf
Normal file
@ -0,0 +1,36 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname rt5
|
||||
!
|
||||
! debug zebra kernel
|
||||
! debug zebra packet
|
||||
!
|
||||
interface lo
|
||||
ip address 5.5.5.5/32
|
||||
ipv6 address fc00:0:5::1/128
|
||||
!
|
||||
interface eth-rt3-1
|
||||
ip address 10.0.4.5/24
|
||||
!
|
||||
interface eth-rt3-2
|
||||
ip address 10.0.5.5/24
|
||||
!
|
||||
interface eth-rt4
|
||||
ip address 10.0.6.5/24
|
||||
!
|
||||
interface eth-rt6
|
||||
ip address 10.0.8.5/24
|
||||
!
|
||||
segment-routing
|
||||
srv6
|
||||
locators
|
||||
locator loc1
|
||||
prefix fc00:0:5::/48
|
||||
format usid-f3216
|
||||
!
|
||||
!
|
||||
!
|
||||
ip forwarding
|
||||
!
|
||||
line vty
|
||||
!
|
68
tests/topotests/srv6_sid_manager/rt6/bgpd.conf
Normal file
68
tests/topotests/srv6_sid_manager/rt6/bgpd.conf
Normal file
@ -0,0 +1,68 @@
|
||||
frr defaults traditional
|
||||
!
|
||||
bgp send-extra-data zebra
|
||||
!
|
||||
hostname rt6
|
||||
password zebra
|
||||
!
|
||||
log stdout notifications
|
||||
log monitor notifications
|
||||
log commands
|
||||
!
|
||||
!debug bgp neighbor-events
|
||||
!debug bgp zebra
|
||||
!debug bgp vnc verbose
|
||||
!debug bgp update-groups
|
||||
!debug bgp updates in
|
||||
!debug bgp updates out
|
||||
!debug bgp updates
|
||||
!debug bgp vpn label
|
||||
!debug bgp vpn leak-from-vrf
|
||||
!debug bgp vpn leak-to-vrf
|
||||
!!debug bgp vpn rmap-event
|
||||
!
|
||||
router bgp 6
|
||||
bgp router-id 6.6.6.6
|
||||
no bgp ebgp-requires-policy
|
||||
no bgp default ipv4-unicast
|
||||
neighbor fc00:0:1::1 remote-as 1
|
||||
neighbor fc00:0:1::1 timers 3 10
|
||||
neighbor fc00:0:1::1 timers connect 1
|
||||
neighbor fc00:0:1::1 ttl-security hops 20
|
||||
!
|
||||
address-family ipv6 vpn
|
||||
neighbor fc00:0:1::1 activate
|
||||
exit-address-family
|
||||
!
|
||||
segment-routing srv6
|
||||
locator loc1
|
||||
!
|
||||
!
|
||||
router bgp 6 vrf vrf10
|
||||
bgp router-id 6.6.6.6
|
||||
no bgp ebgp-requires-policy
|
||||
no bgp default ipv4-unicast
|
||||
!
|
||||
address-family ipv6 unicast
|
||||
sid vpn export 65024
|
||||
rd vpn export 6:10
|
||||
rt vpn both 99:99
|
||||
import vpn
|
||||
export vpn
|
||||
redistribute connected
|
||||
exit-address-family
|
||||
!
|
||||
router bgp 6 vrf vrf20
|
||||
bgp router-id 6.6.6.6
|
||||
no bgp ebgp-requires-policy
|
||||
no bgp default ipv4-unicast
|
||||
!
|
||||
address-family ipv6 unicast
|
||||
sid vpn export 65025
|
||||
rd vpn export 6:20
|
||||
rt vpn both 88:88
|
||||
import vpn
|
||||
export vpn
|
||||
redistribute connected
|
||||
exit-address-family
|
||||
!
|
42
tests/topotests/srv6_sid_manager/rt6/isisd.conf
Normal file
42
tests/topotests/srv6_sid_manager/rt6/isisd.conf
Normal file
@ -0,0 +1,42 @@
|
||||
hostname rt6
|
||||
log file isisd.log
|
||||
!
|
||||
! debug isis events
|
||||
! debug isis route-events
|
||||
! debug isis spf-events
|
||||
! debug isis sr-events
|
||||
! debug isis lsp-gen
|
||||
!
|
||||
interface lo
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis passive
|
||||
!
|
||||
interface eth-rt4
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
interface eth-rt5
|
||||
ip router isis 1
|
||||
ipv6 router isis 1
|
||||
isis network point-to-point
|
||||
isis hello-interval 1
|
||||
isis hello-multiplier 10
|
||||
!
|
||||
router isis 1
|
||||
lsp-gen-interval 2
|
||||
net 49.0000.0000.0000.0006.00
|
||||
is-type level-1
|
||||
topology ipv6-unicast
|
||||
segment-routing srv6
|
||||
locator loc1
|
||||
node-msd
|
||||
max-segs-left 3
|
||||
max-end-pop 3
|
||||
max-h-encaps 2
|
||||
max-end-d 5
|
||||
interface sr0
|
||||
!
|
0
tests/topotests/srv6_sid_manager/rt6/sharpd.conf
Normal file
0
tests/topotests/srv6_sid_manager/rt6/sharpd.conf
Normal file
273
tests/topotests/srv6_sid_manager/rt6/show_ip_route.ref
Normal file
273
tests/topotests/srv6_sid_manager/rt6/show_ip_route.ref
Normal file
@ -0,0 +1,273 @@
|
||||
{
|
||||
"1.1.1.1\/32":[
|
||||
{
|
||||
"prefix":"1.1.1.1\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":40,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.7.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.8.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2.2.2.2\/32":[
|
||||
{
|
||||
"prefix":"2.2.2.2\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.7.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3.3.3.3\/32":[
|
||||
{
|
||||
"prefix":"3.3.3.3\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.8.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4.4.4.4\/32":[
|
||||
{
|
||||
"prefix":"4.4.4.4\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.7.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"5.5.5.5\/32":[
|
||||
{
|
||||
"prefix":"5.5.5.5\/32",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.8.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.1.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.1.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.7.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.8.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.2.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.2.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.7.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.3.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.3.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.7.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.4.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.4.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.8.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.5.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.5.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.8.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.6.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.6.0\/24",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.7.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"ip":"10.0.8.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.7.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.7.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.7.4",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"10.0.8.0\/24":[
|
||||
{
|
||||
"prefix":"10.0.8.0\/24",
|
||||
"protocol":"isis",
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"nexthops":[
|
||||
{
|
||||
"ip":"10.0.8.5",
|
||||
"afi":"ipv4",
|
||||
"interfaceName":"eth-rt5"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
312
tests/topotests/srv6_sid_manager/rt6/show_ipv6_route.ref
Normal file
312
tests/topotests/srv6_sid_manager/rt6/show_ipv6_route.ref
Normal file
@ -0,0 +1,312 @@
|
||||
{
|
||||
"fc00:0:1::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:1::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":40,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:2::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:3::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:4::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::1\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:5::1\/128",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:1::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:1::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":30,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
},
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:2::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:2::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:3::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:3::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":20,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:4::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:4::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt4",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:5::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:5::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":10,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"afi":"ipv6",
|
||||
"interfaceName":"eth-rt5",
|
||||
"active":true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6::\/48":[
|
||||
{
|
||||
"prefix":"fc00:0:6::\/48",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"sr0",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6:e000::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:6:e000::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6:e001::\/64":[
|
||||
{
|
||||
"prefix":"fc00:0:6:e001::\/64",
|
||||
"protocol":"isis",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":115,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.X"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6:fe00::\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:6:fe00::\/128",
|
||||
"protocol":"bgp",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":20,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"vrf10",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.DT6"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"fc00:0:6:fe01::\/128":[
|
||||
{
|
||||
"prefix":"fc00:0:6:fe01::\/128",
|
||||
"protocol":"bgp",
|
||||
"selected":true,
|
||||
"destSelected":true,
|
||||
"distance":20,
|
||||
"metric":0,
|
||||
"installed":true,
|
||||
"nexthops":[
|
||||
{
|
||||
"fib":true,
|
||||
"directlyConnected":true,
|
||||
"interfaceName":"vrf20",
|
||||
"active":true,
|
||||
"seg6local":{
|
||||
"action":"End.DT6"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"locators":[
|
||||
{
|
||||
"name":"loc1",
|
||||
"prefix":"fc00:0:6::/48",
|
||||
"blockBitsLength":32,
|
||||
"nodeBitsLength":16,
|
||||
"functionBitsLength":16,
|
||||
"argumentBitsLength":0,
|
||||
"statusUp":true,
|
||||
"chunks":[
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
{
|
||||
"frr-interface:lib": {
|
||||
"interface": [
|
||||
{
|
||||
"name": "eth-rt4",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0004",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eth-rt5",
|
||||
"vrf": "default",
|
||||
"state": {
|
||||
"frr-isisd:isis": {
|
||||
"adjacencies": {
|
||||
"adjacency": [
|
||||
{
|
||||
"neighbor-sys-type": "level-1",
|
||||
"neighbor-sysid": "0000.0000.0005",
|
||||
"hold-timer": 10,
|
||||
"neighbor-priority": 0,
|
||||
"state": "up"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
169
tests/topotests/srv6_sid_manager/rt6/vpnv6_rib.ref
Normal file
169
tests/topotests/srv6_sid_manager/rt6/vpnv6_rib.ref
Normal file
@ -0,0 +1,169 @@
|
||||
{
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"routerId": "6.6.6.6",
|
||||
"defaultLocPrf": 100,
|
||||
"localAS": 6,
|
||||
"routes": {
|
||||
"routeDistinguishers": {
|
||||
"1:10": {
|
||||
"2001:1::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:1::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:1::/64",
|
||||
"metric": 0,
|
||||
"weight": 0,
|
||||
"peerId": "fc00:0:1::1",
|
||||
"path": "1",
|
||||
"origin": "incomplete",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "fc00:0:1::1",
|
||||
"hostname": "rt1",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:3::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:3::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:3::/64",
|
||||
"metric": 0,
|
||||
"weight": 0,
|
||||
"peerId": "fc00:0:1::1",
|
||||
"path": "1",
|
||||
"origin": "incomplete",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "fc00:0:1::1",
|
||||
"hostname": "rt1",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"1:20": {
|
||||
"2001:5::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:5::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:5::/64",
|
||||
"metric": 0,
|
||||
"weight": 0,
|
||||
"peerId": "fc00:0:1::1",
|
||||
"path": "1",
|
||||
"origin": "incomplete",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "fc00:0:1::1",
|
||||
"hostname": "rt1",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"6:10": {
|
||||
"2001:2::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:2::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:2::/64",
|
||||
"metric": 0,
|
||||
"weight": 32768,
|
||||
"peerId": "(unspec)",
|
||||
"path": "",
|
||||
"origin": "incomplete",
|
||||
"announceNexthopSelf": true,
|
||||
"nhVrfName": "vrf10",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "::",
|
||||
"hostname": "rt6",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"6:20": {
|
||||
"2001:4::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:4::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:4::/64",
|
||||
"metric": 0,
|
||||
"weight": 32768,
|
||||
"peerId": "(unspec)",
|
||||
"path": "",
|
||||
"origin": "incomplete",
|
||||
"announceNexthopSelf": true,
|
||||
"nhVrfName": "vrf20",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "::",
|
||||
"hostname": "rt6",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:6::/64": [
|
||||
{
|
||||
"valid": true,
|
||||
"bestpath": true,
|
||||
"selectionReason": "First path received",
|
||||
"pathFrom": "external",
|
||||
"prefix": "2001:6::",
|
||||
"prefixLen": 64,
|
||||
"network": "2001:6::/64",
|
||||
"metric": 0,
|
||||
"weight": 32768,
|
||||
"peerId": "(unspec)",
|
||||
"path": "",
|
||||
"origin": "incomplete",
|
||||
"announceNexthopSelf": true,
|
||||
"nhVrfName": "vrf20",
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "::",
|
||||
"hostname": "rt6",
|
||||
"afi": "ipv6",
|
||||
"used": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
92
tests/topotests/srv6_sid_manager/rt6/vrf10_rib.ref
Normal file
92
tests/topotests/srv6_sid_manager/rt6/vrf10_rib.ref
Normal file
@ -0,0 +1,92 @@
|
||||
{
|
||||
"2001:1::/64": [
|
||||
{
|
||||
"prefix": "2001:1::/64",
|
||||
"protocol": "bgp",
|
||||
"vrfName": "vrf10",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 20,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 10,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 9,
|
||||
"internalNextHopNum": 3,
|
||||
"internalNextHopActiveNum": 3,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-rt5",
|
||||
"vrf": "default",
|
||||
"active": true,
|
||||
"weight": 1,
|
||||
"seg6": {
|
||||
"segs": "fc00:0:1:fe00::"
|
||||
}
|
||||
}
|
||||
],
|
||||
"asPath": "1"
|
||||
}
|
||||
],
|
||||
"2001:2::/64": [
|
||||
{
|
||||
"prefix": "2001:2::/64",
|
||||
"protocol": "connected",
|
||||
"vrfName": "vrf10",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 10,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-ce2",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:3::/64": [
|
||||
{
|
||||
"prefix": "2001:3::/64",
|
||||
"protocol": "bgp",
|
||||
"vrfName": "vrf10",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 20,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 10,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 9,
|
||||
"internalNextHopNum": 3,
|
||||
"internalNextHopActiveNum": 3,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-rt5",
|
||||
"vrf": "default",
|
||||
"active": true,
|
||||
"weight": 1,
|
||||
"seg6": {
|
||||
"segs": "fc00:0:1:fe00::"
|
||||
}
|
||||
}
|
||||
],
|
||||
"asPath": "1"
|
||||
}
|
||||
]
|
||||
}
|
86
tests/topotests/srv6_sid_manager/rt6/vrf20_rib.ref
Normal file
86
tests/topotests/srv6_sid_manager/rt6/vrf20_rib.ref
Normal file
@ -0,0 +1,86 @@
|
||||
{
|
||||
"2001:4::/64": [
|
||||
{
|
||||
"prefix": "2001:4::/64",
|
||||
"protocol": "connected",
|
||||
"vrfName": "vrf20",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 20,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-ce4",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2001:5::/64": [
|
||||
{
|
||||
"prefix": "2001:5::/64",
|
||||
"protocol": "bgp",
|
||||
"vrfName": "vrf20",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 20,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 20,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 9,
|
||||
"internalNextHopNum": 3,
|
||||
"internalNextHopActiveNum": 3,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"afi": "ipv6",
|
||||
"interfaceName": "eth-rt5",
|
||||
"vrf": "default",
|
||||
"active": true,
|
||||
"weight": 1,
|
||||
"seg6": {
|
||||
"segs": "fc00:0:1:fe01::"
|
||||
}
|
||||
}
|
||||
],
|
||||
"asPath": "1"
|
||||
}
|
||||
],
|
||||
"2001:6::/64": [
|
||||
{
|
||||
"prefix": "2001:6::/64",
|
||||
"protocol": "connected",
|
||||
"vrfName": "vrf20",
|
||||
"selected": true,
|
||||
"destSelected": true,
|
||||
"distance": 0,
|
||||
"metric": 0,
|
||||
"installed": true,
|
||||
"table": 20,
|
||||
"internalStatus": 16,
|
||||
"internalFlags": 8,
|
||||
"internalNextHopNum": 1,
|
||||
"internalNextHopActiveNum": 1,
|
||||
"nexthops": [
|
||||
{
|
||||
"flags": 3,
|
||||
"fib": true,
|
||||
"directlyConnected": true,
|
||||
"interfaceName": "eth-ce6",
|
||||
"active": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
45
tests/topotests/srv6_sid_manager/rt6/zebra.conf
Normal file
45
tests/topotests/srv6_sid_manager/rt6/zebra.conf
Normal file
@ -0,0 +1,45 @@
|
||||
log file zebra.log
|
||||
!
|
||||
hostname rt6
|
||||
!
|
||||
! debug zebra kernel
|
||||
! debug zebra packet
|
||||
!
|
||||
interface lo
|
||||
ip address 6.6.6.6/32
|
||||
ipv6 address fc00:0:6::1/128
|
||||
!
|
||||
interface eth-rt4
|
||||
ip address 10.0.7.6/24
|
||||
!
|
||||
interface eth-rt5
|
||||
ip address 10.0.8.6/24
|
||||
!
|
||||
interface eth-dst
|
||||
ip address 10.0.10.1/24
|
||||
ip address 2001:db8:10::1/64
|
||||
!
|
||||
interface eth-ce2 vrf vrf10
|
||||
ipv6 address 2001:2::1/64
|
||||
!
|
||||
interface eth-ce4 vrf vrf20
|
||||
ipv6 address 2001:4::1/64
|
||||
!
|
||||
interface eth-ce6 vrf vrf20
|
||||
ipv6 address 2001:6::1/64
|
||||
!
|
||||
segment-routing
|
||||
srv6
|
||||
locators
|
||||
locator loc1
|
||||
prefix fc00:0:6::/48
|
||||
format usid-f3216
|
||||
!
|
||||
!
|
||||
!
|
||||
ip forwarding
|
||||
!
|
||||
ipv6 route fc00:0:9::1/128 2001:db8:10::2 vrf vrf10
|
||||
!
|
||||
line vty
|
||||
!
|
421
tests/topotests/srv6_sid_manager/test_srv6_sid_manager.py
Normal file
421
tests/topotests/srv6_sid_manager/test_srv6_sid_manager.py
Normal file
@ -0,0 +1,421 @@
|
||||
#!/usr/bin/env python
|
||||
# SPDX-License-Identifier: ISC
|
||||
|
||||
#
|
||||
# Copyright (c) 2023 by Carmine Scarpitta <cscarpit@cisco.com>
|
||||
#
|
||||
|
||||
"""
|
||||
test_srv6_sid_manager.py:
|
||||
|
||||
+---------+
|
||||
| |
|
||||
| RT1 |
|
||||
| 1.1.1.1 |
|
||||
| |
|
||||
+---------+
|
||||
|eth-sw1
|
||||
|
|
||||
|
|
||||
|
|
||||
+---------+ | +---------+
|
||||
| | | | |
|
||||
| RT2 |eth-sw1 | eth-sw1| RT3 |
|
||||
| 2.2.2.2 +----------+----------+ 3.3.3.3 |
|
||||
| | 10.0.1.0/24 | |
|
||||
+---------+ +---------+
|
||||
eth-rt4-1| |eth-rt4-2 eth-rt5-1| |eth-rt5-2
|
||||
| | | |
|
||||
10.0.2.0/24| |10.0.3.0/24 10.0.4.0/24| |10.0.5.0/24
|
||||
| | | |
|
||||
eth-rt2-1| |eth-rt2-2 eth-rt3-1| |eth-rt3-2
|
||||
+---------+ +---------+
|
||||
| | | |
|
||||
| RT4 | 10.0.6.0/24 | RT5 |
|
||||
| 4.4.4.4 +---------------------+ 5.5.5.5 |
|
||||
| |eth-rt5 eth-rt4| |
|
||||
+---------+ +---------+
|
||||
eth-rt6| |eth-rt6
|
||||
| |
|
||||
10.0.7.0/24| |10.0.8.0/24
|
||||
| +---------+ |
|
||||
| | | |
|
||||
| | RT6 | |
|
||||
+----------+ 6.6.6.6 +-----------+
|
||||
eth-rt4| |eth-rt5
|
||||
+---------+
|
||||
|eth-dst (.1)
|
||||
|
|
||||
|10.0.10.0/24
|
||||
|
|
||||
|eth-rt6 (.2)
|
||||
+---------+
|
||||
| |
|
||||
| DST |
|
||||
| 9.9.9.2 |
|
||||
| |
|
||||
+---------+
|
||||
|
||||
"""
|
||||
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import json
|
||||
import functools
|
||||
import pytest
|
||||
|
||||
CWD = os.path.dirname(os.path.realpath(__file__))
|
||||
sys.path.append(os.path.join(CWD, "../"))
|
||||
|
||||
# pylint: disable=C0413
|
||||
# Import topogen and topotest helpers
|
||||
from lib import topotest
|
||||
from lib.topogen import Topogen, TopoRouter, get_topogen
|
||||
from lib.topolog import logger
|
||||
from lib.common_config import (
|
||||
required_linux_kernel_version,
|
||||
create_interface_in_kernel,
|
||||
)
|
||||
from lib.checkping import check_ping
|
||||
|
||||
pytestmark = [pytest.mark.isisd, pytest.mark.sharpd]
|
||||
|
||||
|
||||
def build_topo(tgen):
|
||||
"""Build function"""
|
||||
|
||||
# Define FRR Routers
|
||||
tgen.add_router("rt1")
|
||||
tgen.add_router("rt2")
|
||||
tgen.add_router("rt3")
|
||||
tgen.add_router("rt4")
|
||||
tgen.add_router("rt5")
|
||||
tgen.add_router("rt6")
|
||||
tgen.add_router("dst")
|
||||
tgen.add_router("ce1")
|
||||
tgen.add_router("ce2")
|
||||
tgen.add_router("ce3")
|
||||
tgen.add_router("ce4")
|
||||
tgen.add_router("ce5")
|
||||
tgen.add_router("ce6")
|
||||
|
||||
# Define connections
|
||||
switch = tgen.add_switch("s1")
|
||||
switch.add_link(tgen.gears["rt1"], nodeif="eth-sw1")
|
||||
switch.add_link(tgen.gears["rt2"], nodeif="eth-sw1")
|
||||
switch.add_link(tgen.gears["rt3"], nodeif="eth-sw1")
|
||||
|
||||
switch = tgen.add_switch("s2")
|
||||
switch.add_link(tgen.gears["rt2"], nodeif="eth-rt4-1")
|
||||
switch.add_link(tgen.gears["rt4"], nodeif="eth-rt2-1")
|
||||
|
||||
switch = tgen.add_switch("s3")
|
||||
switch.add_link(tgen.gears["rt2"], nodeif="eth-rt4-2")
|
||||
switch.add_link(tgen.gears["rt4"], nodeif="eth-rt2-2")
|
||||
|
||||
switch = tgen.add_switch("s4")
|
||||
switch.add_link(tgen.gears["rt3"], nodeif="eth-rt5-1")
|
||||
switch.add_link(tgen.gears["rt5"], nodeif="eth-rt3-1")
|
||||
|
||||
switch = tgen.add_switch("s5")
|
||||
switch.add_link(tgen.gears["rt3"], nodeif="eth-rt5-2")
|
||||
switch.add_link(tgen.gears["rt5"], nodeif="eth-rt3-2")
|
||||
|
||||
switch = tgen.add_switch("s6")
|
||||
switch.add_link(tgen.gears["rt4"], nodeif="eth-rt5")
|
||||
switch.add_link(tgen.gears["rt5"], nodeif="eth-rt4")
|
||||
|
||||
switch = tgen.add_switch("s7")
|
||||
switch.add_link(tgen.gears["rt4"], nodeif="eth-rt6")
|
||||
switch.add_link(tgen.gears["rt6"], nodeif="eth-rt4")
|
||||
|
||||
switch = tgen.add_switch("s8")
|
||||
switch.add_link(tgen.gears["rt5"], nodeif="eth-rt6")
|
||||
switch.add_link(tgen.gears["rt6"], nodeif="eth-rt5")
|
||||
|
||||
switch = tgen.add_switch("s9")
|
||||
switch.add_link(tgen.gears["rt6"], nodeif="eth-dst")
|
||||
switch.add_link(tgen.gears["dst"], nodeif="eth-rt6")
|
||||
|
||||
tgen.add_link(tgen.gears["ce1"], tgen.gears["rt1"], "eth-rt1", "eth-ce1")
|
||||
tgen.add_link(tgen.gears["ce2"], tgen.gears["rt6"], "eth-rt6", "eth-ce2")
|
||||
tgen.add_link(tgen.gears["ce3"], tgen.gears["rt1"], "eth-rt1", "eth-ce3")
|
||||
tgen.add_link(tgen.gears["ce4"], tgen.gears["rt6"], "eth-rt6", "eth-ce4")
|
||||
tgen.add_link(tgen.gears["ce5"], tgen.gears["rt1"], "eth-rt1", "eth-ce5")
|
||||
tgen.add_link(tgen.gears["ce6"], tgen.gears["rt6"], "eth-rt6", "eth-ce6")
|
||||
|
||||
tgen.gears["rt1"].run("ip link add vrf10 type vrf table 10")
|
||||
tgen.gears["rt1"].run("ip link set vrf10 up")
|
||||
tgen.gears["rt1"].run("ip link add vrf20 type vrf table 20")
|
||||
tgen.gears["rt1"].run("ip link set vrf20 up")
|
||||
tgen.gears["rt1"].run("ip link set eth-ce1 master vrf10")
|
||||
tgen.gears["rt1"].run("ip link set eth-ce3 master vrf10")
|
||||
tgen.gears["rt1"].run("ip link set eth-ce5 master vrf20")
|
||||
|
||||
tgen.gears["rt6"].run("ip link add vrf10 type vrf table 10")
|
||||
tgen.gears["rt6"].run("ip link set vrf10 up")
|
||||
tgen.gears["rt6"].run("ip link add vrf20 type vrf table 20")
|
||||
tgen.gears["rt6"].run("ip link set vrf20 up")
|
||||
tgen.gears["rt6"].run("ip link set eth-ce2 master vrf10")
|
||||
tgen.gears["rt6"].run("ip link set eth-ce4 master vrf20")
|
||||
tgen.gears["rt6"].run("ip link set eth-ce6 master vrf20")
|
||||
|
||||
# Add dummy interface for SRv6
|
||||
create_interface_in_kernel(
|
||||
tgen,
|
||||
"rt1",
|
||||
"sr0",
|
||||
"2001:db8::1",
|
||||
netmask="128",
|
||||
create=True,
|
||||
)
|
||||
create_interface_in_kernel(
|
||||
tgen,
|
||||
"rt2",
|
||||
"sr0",
|
||||
"2001:db8::2",
|
||||
netmask="128",
|
||||
create=True,
|
||||
)
|
||||
create_interface_in_kernel(
|
||||
tgen,
|
||||
"rt3",
|
||||
"sr0",
|
||||
"2001:db8::3",
|
||||
netmask="128",
|
||||
create=True,
|
||||
)
|
||||
create_interface_in_kernel(
|
||||
tgen,
|
||||
"rt4",
|
||||
"sr0",
|
||||
"2001:db8::4",
|
||||
netmask="128",
|
||||
create=True,
|
||||
)
|
||||
create_interface_in_kernel(
|
||||
tgen,
|
||||
"rt5",
|
||||
"sr0",
|
||||
"2001:db8::5",
|
||||
netmask="128",
|
||||
create=True,
|
||||
)
|
||||
create_interface_in_kernel(
|
||||
tgen,
|
||||
"rt6",
|
||||
"sr0",
|
||||
"2001:db8::6",
|
||||
netmask="128",
|
||||
create=True,
|
||||
)
|
||||
|
||||
|
||||
def setup_module(mod):
|
||||
"""Sets up the pytest environment"""
|
||||
|
||||
# Verify if kernel requirements are satisfied
|
||||
result = required_linux_kernel_version("4.10")
|
||||
if result is not True:
|
||||
pytest.skip("Kernel requirements are not met")
|
||||
|
||||
# Build the topology
|
||||
tgen = Topogen(build_topo, mod.__name__)
|
||||
tgen.start_topology()
|
||||
|
||||
# For all registered routers, load the zebra and isis configuration files
|
||||
for rname, router in tgen.routers().items():
|
||||
router.load_config(TopoRouter.RD_ZEBRA,
|
||||
os.path.join(CWD, '{}/zebra.conf'.format(rname)))
|
||||
router.load_config(TopoRouter.RD_ISIS,
|
||||
os.path.join(CWD, '{}/isisd.conf'.format(rname)))
|
||||
router.load_config(TopoRouter.RD_BGP,
|
||||
os.path.join(CWD, '{}/bgpd.conf'.format(rname)))
|
||||
if (os.path.exists('{}/sharpd.conf'.format(rname))):
|
||||
router.load_config(TopoRouter.RD_SHARP,
|
||||
os.path.join(CWD, '{}/sharpd.conf'.format(rname)))
|
||||
|
||||
# Start routers
|
||||
tgen.start_router()
|
||||
|
||||
|
||||
def teardown_module(mod):
|
||||
"Teardown the pytest environment"
|
||||
|
||||
# Teardown the topology
|
||||
tgen = get_topogen()
|
||||
tgen.stop_topology()
|
||||
|
||||
|
||||
def router_compare_json_output(rname, command, reference):
|
||||
"Compare router JSON output"
|
||||
|
||||
logger.info('Comparing router "%s" "%s" output', rname, command)
|
||||
|
||||
tgen = get_topogen()
|
||||
filename = "{}/{}/{}".format(CWD, rname, reference)
|
||||
expected = json.loads(open(filename).read())
|
||||
|
||||
# Run test function until we get an result. Wait at most 60 seconds.
|
||||
test_func = functools.partial(topotest.router_json_cmp, tgen.gears[rname], command, expected)
|
||||
_, diff = topotest.run_and_expect(test_func, None, count=120, wait=0.5)
|
||||
assertmsg = '"{}" JSON output mismatches the expected result'.format(rname)
|
||||
assert diff is None, assertmsg
|
||||
|
||||
|
||||
def check_ping6(name, dest_addr, expect_connected):
|
||||
def _check(name, dest_addr, match):
|
||||
tgen = get_topogen()
|
||||
output = tgen.gears[name].run("ping6 {} -c 1 -w 1".format(dest_addr))
|
||||
logger.info(output)
|
||||
if match not in output:
|
||||
return "ping fail"
|
||||
|
||||
match = "{} packet loss".format("0%" if expect_connected else "100%")
|
||||
logger.info("[+] check {} {} {}".format(name, dest_addr, match))
|
||||
tgen = get_topogen()
|
||||
func = functools.partial(_check, name, dest_addr, match)
|
||||
success, result = topotest.run_and_expect(func, None, count=10, wait=1)
|
||||
assert result is None, "Failed"
|
||||
|
||||
|
||||
def open_json_file(filename):
|
||||
try:
|
||||
with open(filename, "r") as f:
|
||||
return json.load(f)
|
||||
except IOError:
|
||||
assert False, "Could not read file {}".format(filename)
|
||||
|
||||
|
||||
def check_rib(name, cmd, expected_file):
|
||||
def _check(name, cmd, expected_file):
|
||||
logger.info("polling")
|
||||
tgen = get_topogen()
|
||||
router = tgen.gears[name]
|
||||
output = json.loads(router.vtysh_cmd(cmd))
|
||||
expected = open_json_file("{}/{}".format(CWD, expected_file))
|
||||
return topotest.json_cmp(output, expected)
|
||||
|
||||
logger.info('[+] check {} "{}" {}'.format(name, cmd, expected_file))
|
||||
tgen = get_topogen()
|
||||
func = functools.partial(_check, name, cmd, expected_file)
|
||||
success, result = topotest.run_and_expect(func, None, count=10, wait=0.5)
|
||||
assert result is None, "Failed"
|
||||
|
||||
|
||||
#
|
||||
# Step 1
|
||||
#
|
||||
# Test initial network convergence
|
||||
#
|
||||
def test_isis_adjacencies():
|
||||
logger.info("Test: check IS-IS adjacencies")
|
||||
tgen = get_topogen()
|
||||
|
||||
# Skip if previous fatal error condition is raised
|
||||
if tgen.routers_have_failure():
|
||||
pytest.skip(tgen.errors)
|
||||
|
||||
for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]:
|
||||
router_compare_json_output(
|
||||
rname,
|
||||
"show yang operational-data /frr-interface:lib isisd",
|
||||
"show_yang_interface_isis_adjacencies.ref",
|
||||
)
|
||||
|
||||
|
||||
def test_rib_ipv4():
|
||||
logger.info("Test: verify IPv4 RIB")
|
||||
tgen = get_topogen()
|
||||
|
||||
# Skip if previous fatal error condition is raised
|
||||
if tgen.routers_have_failure():
|
||||
pytest.skip(tgen.errors)
|
||||
|
||||
for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]:
|
||||
router_compare_json_output(
|
||||
rname, "show ip route isis json", "show_ip_route.ref"
|
||||
)
|
||||
|
||||
|
||||
def test_rib_ipv6():
|
||||
logger.info("Test: verify IPv6 RIB")
|
||||
tgen = get_topogen()
|
||||
|
||||
# Skip if previous fatal error condition is raised
|
||||
if tgen.routers_have_failure():
|
||||
pytest.skip(tgen.errors)
|
||||
|
||||
for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]:
|
||||
router_compare_json_output(
|
||||
rname, "show ipv6 route json", "show_ipv6_route.ref"
|
||||
)
|
||||
|
||||
|
||||
def test_srv6_locator():
|
||||
logger.info("Test: verify SRv6 Locator")
|
||||
tgen = get_topogen()
|
||||
|
||||
# Skip if previous fatal error condition is raised
|
||||
if tgen.routers_have_failure():
|
||||
pytest.skip(tgen.errors)
|
||||
|
||||
for rname in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6"]:
|
||||
router_compare_json_output(
|
||||
rname, "show segment-routing srv6 locator json", "show_srv6_locator_table.ref"
|
||||
)
|
||||
|
||||
|
||||
def test_vpn_rib():
|
||||
check_rib("rt1", "show bgp ipv6 vpn json", "rt1/vpnv6_rib.ref")
|
||||
check_rib("rt6", "show bgp ipv6 vpn json", "rt6/vpnv6_rib.ref")
|
||||
check_rib("rt1", "show ipv6 route vrf vrf10 json", "rt1/vrf10_rib.ref")
|
||||
check_rib("rt1", "show ipv6 route vrf vrf20 json", "rt1/vrf20_rib.ref")
|
||||
check_rib("rt6", "show ipv6 route vrf vrf10 json", "rt6/vrf10_rib.ref")
|
||||
check_rib("rt6", "show ipv6 route vrf vrf20 json", "rt6/vrf20_rib.ref")
|
||||
check_rib("ce1", "show ipv6 route json", "ce1/ipv6_rib.json")
|
||||
check_rib("ce2", "show ipv6 route json", "ce2/ipv6_rib.json")
|
||||
check_rib("ce3", "show ipv6 route json", "ce3/ipv6_rib.json")
|
||||
check_rib("ce4", "show ipv6 route json", "ce4/ipv6_rib.json")
|
||||
check_rib("ce5", "show ipv6 route json", "ce5/ipv6_rib.json")
|
||||
check_rib("ce6", "show ipv6 route json", "ce6/ipv6_rib.json")
|
||||
|
||||
|
||||
def test_ping():
|
||||
logger.info("Test: verify ping")
|
||||
tgen = get_topogen()
|
||||
|
||||
# Required linux kernel version for this suite to run.
|
||||
result = required_linux_kernel_version("6.1")
|
||||
if result is not True:
|
||||
pytest.skip("Kernel requirements are not met, kernel version should be >=6.1")
|
||||
|
||||
# Skip if previous fatal error condition is raised
|
||||
if tgen.routers_have_failure():
|
||||
pytest.skip(tgen.errors)
|
||||
|
||||
# Setup encap route on rt1, decap route on rt2
|
||||
# tgen.gears["rt1"].vtysh_cmd("sharp install seg6-routes fc00:0:9::1 nexthop-seg6 2001:db8:1::2 encap fc00:0:2:6:fe00:: 1")
|
||||
tgen.gears["rt1"].cmd("ip -6 r a fc00:0:9::1/128 encap seg6 mode encap segs fc00:0:2:6:fe00:: via 2001:db8:1::2")
|
||||
# tgen.gears["rt6"].vtysh_cmd("sharp install seg6local-routes fc00:0:f00d:: nexthop-seg6local eth-dst End_DT6 254 1")
|
||||
tgen.gears["rt6"].cmd("ip -6 r a fc00:0:9::1/128 via 2001:db8:10::2 vrf vrf10")
|
||||
tgen.gears["dst"].cmd("ip -6 r a 2001:db8:1::1/128 via 2001:db8:10::1")
|
||||
|
||||
# Try to ping dst from rt1
|
||||
check_ping("rt1", "fc00:0:9::1", True, 10, 1)
|
||||
|
||||
|
||||
# Memory leak test template
|
||||
def test_memory_leak():
|
||||
"Run the memory leak test and report results."
|
||||
tgen = get_topogen()
|
||||
if not tgen.is_memleak_enabled():
|
||||
pytest.skip("Memory leak test/report is disabled")
|
||||
|
||||
tgen.report_memory_leaks()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = ["-s"] + sys.argv[1:]
|
||||
sys.exit(pytest.main(args))
|
Loading…
Reference in New Issue
Block a user