root@sc2-hs2-potdarp-dhcp-234:~/topotests/bgp_l3vpn_to_bgp_vrf# ./test_bgp_l3vpn_to_bgp_vrf.py 2018-10-08 10:22:18,985 INFO: Running environment diagnostics ========================================================================= test session starts ========================================================================= platform linux2 -- Python 2.7.12, pytest-3.6.3, py-1.5.4, pluggy-0.6.0 rootdir: /root/topotests, inifile: pytest.ini collected 5 items test_bgp_l3vpn_to_bgp_vrf.py 2018-10-08 10:22:19,175 INFO: LTemplate: bgp_l3vpn_to_bgp_vrf 2018-10-08 10:22:21,078 INFO: loading topology: bgp_l3vpn_to_bgp_vrf.test_bgp_l3vpn_to_bgp_vrf 2018-10-08 10:22:21,079 INFO: starting topology: bgp_l3vpn_to_bgp_vrf.test_bgp_l3vpn_to_bgp_vrf 2018-10-08 10:22:21,127 INFO: Topology started 2018-10-08 10:22:21,127 INFO: pre router-start hook, kernel=4.9.0-040900-generic 2018-10-08 10:22:21,147 INFO: setup r1 vrf r1-cust1, r1-eth4. enabled mpls input. 2018-10-08 10:22:21,157 INFO: setup r3 vrf r3-cust1, r3-eth4. enabled mpls input. 2018-10-08 10:22:21,165 INFO: setup r4 vrf r4-cust1, r4-eth4. enabled mpls input. 2018-10-08 10:22:21,174 INFO: setup r4 vrf r4-cust2, r4-eth5. enabled mpls input. 2018-10-08 10:22:21,174 INFO: VRF config successful! Setting up r4 Setting up r1 Setting up r2 Setting up r3 Setting up ce4 Setting up ce3 Setting up ce2 Setting up ce1 2018-10-08 10:22:21,292 INFO: Starting routers 2018-10-08 10:22:21,300 INFO: r4: waiting for zebra to start (1 seconds) 2018-10-08 10:22:22,755 INFO: r1: waiting for zebra to start (1 seconds) 2018-10-08 10:22:24,205 INFO: r2: waiting for zebra to start (1 seconds) 2018-10-08 10:22:25,658 INFO: r3: waiting for zebra to start (1 seconds) 2018-10-08 10:22:27,113 INFO: ce4: waiting for zebra to start (1 seconds) 2018-10-08 10:22:28,335 INFO: ce3: waiting for zebra to start (1 seconds) 2018-10-08 10:22:29,560 INFO: ce2: waiting for zebra to start (1 seconds) 2018-10-08 10:22:30,784 INFO: ce1: waiting for zebra to start (1 seconds) 2018-10-08 10:22:32,001 INFO: post router-start hook 2018-10-08 10:22:32,002 INFO: Starting template test: scripts/check_linux_vrf.py 2018-10-08 10:22:32,075 INFO: Have iproute2 version=4.3.0 2018-10-08 10:22:32,076 INFO: assert skipped at "bgp_l3vpn_to_bgp_vrf.test_bgp_l3vpn_to_bgp_vrf/test_check_linux_vrf": Check function 'ltemplateVersionCheck('4.1', iproute2='4.9')' returned: Skipping tests, old iproute2 (4.3.0 < 4.9) s2018-10-08 10:22:32,079 INFO: Starting template test: scripts/adjacencies.py FILE: scripts/adjacencies.py luInclude: execfile /root/topotests/bgp_l3vpn_to_bgp_vrf/scripts/adjacencies.py scripts/adjacencies.py:0 WAIT:ce1:vtysh -c "show bgp summary": 00:0:wait:Adjacencies up:180: (#1) scripts/adjacencies.py:0 COMMAND:ce1:vtysh -c "show bgp summary": 00:0:wait:Adjacencies up: COMMAND OUTPUT: IPv4 Unicast Summary: BGP router identifier 99.0.0.1, local AS number 5227 vrf-id 0 BGP table version 1 RIB entries 5, using 760 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.1 4 5227 0 0 0 0 0 never Idle Total number of neighbors 1: Done after 2 loops, time=0.683089017868, Found= 00:0 (#1) scripts/adjacencies.py:1 COMMAND:ce1:vtysh -c "show bgp summary": 00:0:pass:Adjacencies up +0.68 secs: COMMAND OUTPUT: IPv4 Unicast Summary: BGP router identifier 99.0.0.1, local AS number 5227 vrf-id 0 BGP table version 1 RIB entries 5, using 760 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.1 4 5227 2 2 0 0 0 00:00:00 0 Total number of neighbors 1: found: 00:0: R:1 ce1 Adjacencies up +0.68 secs 1 0 scripts/adjacencies.py:1 WAIT:ce2:vtysh -c "show bgp summary": 00:0:wait:Adjacencies up:10: (#2) scripts/adjacencies.py:1 COMMAND:ce2:vtysh -c "show bgp summary": 00:0:wait:Adjacencies up: COMMAND OUTPUT: IPv4 Unicast Summary: BGP router identifier 99.0.0.2, local AS number 5227 vrf-id 0 BGP table version 1 RIB entries 5, using 760 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.1 4 5227 3 4 0 0 0 00:00:02 0 Total number of neighbors 1: found: 00:0: Done after 1 loops, time=0.0923988819122, Found= 00:0 (#2) scripts/adjacencies.py:2 COMMAND:ce2:vtysh -c "show bgp summary": 00:0:pass:Adjacencies up +0.09 secs: COMMAND OUTPUT: IPv4 Unicast Summary: BGP router identifier 99.0.0.2, local AS number 5227 vrf-id 0 BGP table version 1 RIB entries 5, using 760 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.1 4 5227 3 4 0 0 0 00:00:02 0 Total number of neighbors 1: found: 00:0: R:2 ce2 Adjacencies up +0.09 secs 1 0 scripts/adjacencies.py:2 WAIT:ce3:vtysh -c "show bgp summary": 00:0:wait:Adjacencies up:10: (#3) scripts/adjacencies.py:2 COMMAND:ce3:vtysh -c "show bgp summary": 00:0:wait:Adjacencies up: COMMAND OUTPUT: IPv4 Unicast Summary: BGP router identifier 99.0.0.3, local AS number 5227 vrf-id 0 BGP table version 2 RIB entries 7, using 1064 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.1 4 5227 4 4 0 0 0 00:00:03 1 Total number of neighbors 1: found: 00:0: Done after 1 loops, time=0.0689010620117, Found= 00:0 (#3) scripts/adjacencies.py:3 COMMAND:ce3:vtysh -c "show bgp summary": 00:0:pass:Adjacencies up +0.07 secs: COMMAND OUTPUT: IPv4 Unicast Summary: BGP router identifier 99.0.0.3, local AS number 5227 vrf-id 0 BGP table version 2 RIB entries 11, using 1672 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.1 4 5227 5 4 0 0 0 00:00:03 3 Total number of neighbors 1: found: 00:0: R:3 ce3 Adjacencies up +0.07 secs 1 0 scripts/adjacencies.py:3 WAIT:ce4:vtysh -c "show bgp summary": 00:0:wait:Adjacencies up:10: (#4) scripts/adjacencies.py:3 COMMAND:ce4:vtysh -c "show bgp summary": 00:0:wait:Adjacencies up: COMMAND OUTPUT: IPv4 Unicast Summary: BGP router identifier 99.0.0.4, local AS number 5228 vrf-id 0 BGP table version 4 RIB entries 7, using 1064 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.2.1 4 5228 4 5 0 0 0 00:00:04 1 Total number of neighbors 1: found: 00:0: Done after 1 loops, time=0.0953869819641, Found= 00:0 (#4) scripts/adjacencies.py:4 COMMAND:ce4:vtysh -c "show bgp summary": 00:0:pass:Adjacencies up +0.10 secs: COMMAND OUTPUT: IPv4 Unicast Summary: BGP router identifier 99.0.0.4, local AS number 5228 vrf-id 0 BGP table version 4 RIB entries 7, using 1064 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.2.1 4 5228 4 5 0 0 0 00:00:04 1 Total number of neighbors 1: found: 00:0: R:4 ce4 Adjacencies up +0.10 secs 1 0 scripts/adjacencies.py:4 WAIT:r1:ping 2.2.2.2 -c 1: 0. packet loss:wait:PE->P2 (loopback) ping:60: (#5) scripts/adjacencies.py:4 COMMAND:r1:ping 2.2.2.2 -c 1: 0. packet loss:wait:PE->P2 (loopback) ping: COMMAND OUTPUT:connect: Network is unreachable: Done after 68 loops, time=33.665831089, Found= 0% packet loss (#5) scripts/adjacencies.py:5 COMMAND:r1:ping 2.2.2.2 -c 1: 0. packet loss:pass:PE->P2 (loopback) ping +33.67 secs: COMMAND OUTPUT:PING 2.2.2.2 (2.2.2.2) 56(84) bytes of data. 64 bytes from 2.2.2.2: icmp_seq=1 ttl=64 time=0.034 ms --- 2.2.2.2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.034/0.034/0.034/0.000 ms: found: 0% packet loss: R:5 r1 PE->P2 (loopback) ping +33.67 secs 1 0 scripts/adjacencies.py:5 WAIT:r3:ping 2.2.2.2 -c 1: 0. packet loss:wait:PE->P2 (loopback) ping:60: (#6) scripts/adjacencies.py:5 COMMAND:r3:ping 2.2.2.2 -c 1: 0. packet loss:wait:PE->P2 (loopback) ping: COMMAND OUTPUT:connect: Network is unreachable: Done after 12 loops, time=5.52872204781, Found= 0% packet loss (#6) scripts/adjacencies.py:6 COMMAND:r3:ping 2.2.2.2 -c 1: 0. packet loss:pass:PE->P2 (loopback) ping +5.53 secs: COMMAND OUTPUT:PING 2.2.2.2 (2.2.2.2) 56(84) bytes of data. 64 bytes from 2.2.2.2: icmp_seq=1 ttl=64 time=0.047 ms --- 2.2.2.2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.047/0.047/0.047/0.000 ms: found: 0% packet loss: R:6 r3 PE->P2 (loopback) ping +5.53 secs 1 0 scripts/adjacencies.py:6 WAIT:r4:ping 2.2.2.2 -c 1: 0. packet loss:wait:PE->P2 (loopback) ping:60: (#7) scripts/adjacencies.py:6 COMMAND:r4:ping 2.2.2.2 -c 1: 0. packet loss:wait:PE->P2 (loopback) ping: COMMAND OUTPUT:PING 2.2.2.2 (2.2.2.2) 56(84) bytes of data. 64 bytes from 2.2.2.2: icmp_seq=1 ttl=64 time=0.033 ms --- 2.2.2.2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.033/0.033/0.033/0.000 ms: found: 0% packet loss: Done after 1 loops, time=0.00223588943481, Found= 0% packet loss (#7) scripts/adjacencies.py:7 COMMAND:r4:ping 2.2.2.2 -c 1: 0. packet loss:pass:PE->P2 (loopback) ping +0.00 secs: COMMAND OUTPUT:PING 2.2.2.2 (2.2.2.2) 56(84) bytes of data. 64 bytes from 2.2.2.2: icmp_seq=1 ttl=64 time=0.028 ms --- 2.2.2.2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.028/0.028/0.028/0.000 ms: found: 0% packet loss: R:7 r4 PE->P2 (loopback) ping +0.00 secs 1 0 scripts/adjacencies.py:7 WAIT:r2:vtysh -c "show bgp summary": 00:0.* 00:0.* 00:0:wait:Core adjacencies up:90: (#8) scripts/adjacencies.py:7 COMMAND:r2:vtysh -c "show bgp summary": 00:0.* 00:0.* 00:0:wait:Core adjacencies up: COMMAND OUTPUT: IPv4 VPN Summary: BGP router identifier 2.2.2.2, local AS number 5226 vrf-id 0 BGP table version 0 RIB entries 0, using 0 bytes of memory Peers 3, using 62 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 5226 0 0 0 0 0 never Active 3.3.3.3 4 5226 2 2 0 0 0 00:00:00 0 4.4.4.4 4 5226 2 2 0 0 0 00:00:00 0 Total number of neighbors 3: Done after 6 loops, time=2.94112896919, Found= 00:00:00 0 3.3.3.3 4 5226 5 7 0 0 0 00:00:03 3 4.4.4.4 4 5226 5 7 0 0 0 00:0 (#8) scripts/adjacencies.py:8 COMMAND:r2:vtysh -c "show bgp summary": 00:0.* 00:0.* 00:0:pass:Core adjacencies up +2.94 secs: COMMAND OUTPUT: IPv4 VPN Summary: BGP router identifier 2.2.2.2, local AS number 5226 vrf-id 0 BGP table version 0 RIB entries 5, using 760 bytes of memory Peers 3, using 62 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 5226 2 2 0 0 0 00:00:00 0 3.3.3.3 4 5226 5 7 0 0 0 00:00:03 3 4.4.4.4 4 5226 5 7 0 0 0 00:00:03 6 Total number of neighbors 3: found: 00:00:00 0 3.3.3.3 4 5226 5 7 0 0 0 00:00:03 3 4.4.4.4 4 5226 5 7 0 0 0 00:0: R:8 r2 Core adjacencies up +2.94 secs 1 0 (#9) scripts/adjacencies.py:9 COMMAND:r1:vtysh -c "show bgp summary": 00:0:pass:Core adjacencies up: COMMAND OUTPUT: IPv4 VPN Summary: BGP router identifier 1.1.1.1, local AS number 5226 vrf-id 0 BGP table version 0 RIB entries 1, using 152 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 5226 2 2 0 0 0 00:00:00 0 Total number of neighbors 1: found: 00:0: R:9 r1 Core adjacencies up 1 0 (#10) scripts/adjacencies.py:10 COMMAND:r3:vtysh -c "show bgp summary": 00:0:pass:Core adjacencies up: COMMAND OUTPUT: IPv4 VPN Summary: BGP router identifier 3.3.3.3, local AS number 5226 vrf-id 0 BGP table version 0 RIB entries 5, using 760 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 5226 7 5 0 0 0 00:00:04 6 Total number of neighbors 1: found: 00:0: R:10 r3 Core adjacencies up 1 0 (#11) scripts/adjacencies.py:11 COMMAND:r4:vtysh -c "show bgp summary": 00:0:pass:Core adjacencies up: COMMAND OUTPUT: IPv4 VPN Summary: BGP router identifier 4.4.4.4, local AS number 5226 vrf-id 0 BGP table version 0 RIB entries 5, using 760 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 5226 7 5 0 0 0 00:00:04 3 Total number of neighbors 1: found: 00:0: R:11 r4 Core adjacencies up 1 0 (#12) scripts/adjacencies.py:12 COMMAND:r1:vtysh -c "show bgp vrf all summary": 00:0.* 00:0:pass:All adjacencies up: COMMAND OUTPUT: Instance Default: IPv4 VPN Summary: BGP router identifier 1.1.1.1, local AS number 5226 vrf-id 0 BGP table version 0 RIB entries 1, using 152 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 5226 2 2 0 0 0 00:00:01 0 Total number of neighbors 1 Instance r1-cust1: IPv4 Unicast Summary: BGP router identifier 192.168.1.1, local AS number 5227 vrf-id 4 BGP table version 3 RIB entries 5, using 760 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.2 4 5227 5 3 0 0 0 00:00:43 3 Total number of neighbors 1: found: 00:00:01 0 Total number of neighbors 1 Instance r1-cust1: IPv4 Unicast Summary: BGP router identifier 192.168.1.1, local AS number 5227 vrf-id 4 BGP table version 3 RIB entries 5, using 760 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.2 4 5227 5 3 0 0 0 00:0: R:12 r1 All adjacencies up 1 0 (#13) scripts/adjacencies.py:13 COMMAND:r3:vtysh -c "show bgp vrf all summary": 00:0.* 00:0:pass:All adjacencies up: COMMAND OUTPUT: Instance Default: IPv4 VPN Summary: BGP router identifier 3.3.3.3, local AS number 5226 vrf-id 0 BGP table version 0 RIB entries 5, using 760 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 5226 7 5 0 0 0 00:00:04 6 Total number of neighbors 1 Instance r3-cust1: IPv4 Unicast Summary: BGP router identifier 192.168.1.1, local AS number 5227 vrf-id 5 BGP table version 3 RIB entries 17, using 2584 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.2 4 5227 5 3 0 0 0 00:00:45 3 Total number of neighbors 1: found: 00:00:04 6 Total number of neighbors 1 Instance r3-cust1: IPv4 Unicast Summary: BGP router identifier 192.168.1.1, local AS number 5227 vrf-id 5 BGP table version 3 RIB entries 17, using 2584 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.2 4 5227 5 3 0 0 0 00:0: R:13 r3 All adjacencies up 1 0 (#14) scripts/adjacencies.py:14 COMMAND:r4:vtysh -c "show bgp vrf all summary": 00:0.* 00:0.* 00:0:pass:All adjacencies up: COMMAND OUTPUT: Instance Default: IPv4 VPN Summary: BGP router identifier 4.4.4.4, local AS number 5226 vrf-id 0 BGP table version 0 RIB entries 5, using 760 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 5226 7 5 0 0 0 00:00:04 3 Total number of neighbors 1 Instance r4-cust1: IPv4 Unicast Summary: BGP router identifier 192.168.1.1, local AS number 5227 vrf-id 5 BGP table version 9 RIB entries 17, using 2584 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.2 4 5227 5 7 0 0 0 00:00:46 3 Total number of neighbors 1 Instance r4-cust2: IPv4 Unicast Summary: BGP router identifier 192.168.2.1, local AS number 5228 vrf-id 6 BGP table version 9 RIB entries 17, using 2584 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.2.2 4 5228 5 7 0 0 0 00:00:47 3 Total number of neighbors 1: found: 00:00:04 3 Total number of neighbors 1 Instance r4-cust1: IPv4 Unicast Summary: BGP router identifier 192.168.1.1, local AS number 5227 vrf-id 5 BGP table version 9 RIB entries 17, using 2584 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.1.2 4 5227 5 7 0 0 0 00:00:46 3 Total number of neighbors 1 Instance r4-cust2: IPv4 Unicast Summary: BGP router identifier 192.168.2.1, local AS number 5228 vrf-id 6 BGP table version 9 RIB entries 17, using 2584 bytes of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.2.2 4 5228 5 7 0 0 0 00:0: R:14 r4 All adjacencies up 1 0 scripts/adjacencies.py:14 WAIT:r1:ping 3.3.3.3 -c 1: 0. packet loss:wait:PE->PE3 (loopback) ping:10: (#15) scripts/adjacencies.py:14 COMMAND:r1:ping 3.3.3.3 -c 1: 0. packet loss:wait:PE->PE3 (loopback) ping: COMMAND OUTPUT:PING 3.3.3.3 (3.3.3.3) 56(84) bytes of data. 64 bytes from 3.3.3.3: icmp_seq=1 ttl=63 time=0.074 ms --- 3.3.3.3 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.074/0.074/0.074/0.000 ms: found: 0% packet loss: Done after 1 loops, time=0.0025429725647, Found= 0% packet loss (#15) scripts/adjacencies.py:15 COMMAND:r1:ping 3.3.3.3 -c 1: 0. packet loss:pass:PE->PE3 (loopback) ping +0.00 secs: COMMAND OUTPUT:PING 3.3.3.3 (3.3.3.3) 56(84) bytes of data. 64 bytes from 3.3.3.3: icmp_seq=1 ttl=63 time=0.060 ms --- 3.3.3.3 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.060/0.060/0.060/0.000 ms: found: 0% packet loss: R:15 r1 PE->PE3 (loopback) ping +0.00 secs 1 0 scripts/adjacencies.py:15 WAIT:r1:ping 4.4.4.4 -c 1: 0. packet loss:wait:PE->PE4 (loopback) ping:10: (#16) scripts/adjacencies.py:15 COMMAND:r1:ping 4.4.4.4 -c 1: 0. packet loss:wait:PE->PE4 (loopback) ping: COMMAND OUTPUT:PING 4.4.4.4 (4.4.4.4) 56(84) bytes of data. 64 bytes from 4.4.4.4: icmp_seq=1 ttl=63 time=0.040 ms --- 4.4.4.4 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.040/0.040/0.040/0.000 ms: found: 0% packet loss: Done after 1 loops, time=0.00181293487549, Found= 0% packet loss (#16) scripts/adjacencies.py:16 COMMAND:r1:ping 4.4.4.4 -c 1: 0. packet loss:pass:PE->PE4 (loopback) ping +0.00 secs: COMMAND OUTPUT:PING 4.4.4.4 (4.4.4.4) 56(84) bytes of data. 64 bytes from 4.4.4.4: icmp_seq=1 ttl=63 time=0.049 ms --- 4.4.4.4 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.049/0.049/0.049/0.000 ms: found: 0% packet loss: R:16 r1 PE->PE4 (loopback) ping +0.00 secs 1 0 scripts/adjacencies.py:16 WAIT:r4:ping 3.3.3.3 -c 1: 0. packet loss:wait:PE->PE3 (loopback) ping:10: (#17) scripts/adjacencies.py:16 COMMAND:r4:ping 3.3.3.3 -c 1: 0. packet loss:wait:PE->PE3 (loopback) ping: COMMAND OUTPUT:PING 3.3.3.3 (3.3.3.3) 56(84) bytes of data. --- 3.3.3.3 ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms: Done after 1 loops, time=10.00258708, Found=False (#17) scripts/adjacencies.py:17 COMMAND:r4:ping 3.3.3.3 -c 1: 0. packet loss:pass:PE->PE3 (loopback) ping +10.00 secs: COMMAND OUTPUT:PING 3.3.3.3 (3.3.3.3) 56(84) bytes of data. 64 bytes from 3.3.3.3: icmp_seq=1 ttl=64 time=0.046 ms --- 3.3.3.3 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.046/0.046/0.046/0.000 ms: found: 0% packet loss: R:17 r4 PE->PE3 (loopback) ping +10.00 secs 1 0 .2018-10-08 10:23:26,144 INFO: Starting template test: scripts/check_routes.py FILE: scripts/check_routes.py luInclude: execfile /root/topotests/bgp_l3vpn_to_bgp_vrf/scripts/check_routes.py (#18) scripts/check_routes.py:18 COMMAND:ce1:vtysh -c "show bgp ipv4 unicast":.:None:Get ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 10, local router ID is 99.0.0.1, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 5.1.0.0/24 99.0.0.1 98 123 32768 i *> 5.1.1.0/24 99.0.0.1 98 123 32768 i *>i5.1.2.0/24 192.168.1.1 200 50 0 i *>i5.1.3.0/24 192.168.1.1 200 50 0 i *>i5.4.2.0/24 192.168.1.1 200 50 0 i *>i5.4.3.0/24 192.168.1.1 200 50 0 i *> 99.0.0.1/32 0.0.0.0 0 32768 i *>i99.0.0.2/32 192.168.1.1 0 100 0 i *>i99.0.0.3/32 192.168.1.1 0 100 0 i *>i99.0.0.4/32 192.168.1.1 0 100 0 i Displayed 10 routes and 10 total paths: found:B: (#18) scripts/check_routes.py:19 COMMAND:ce1:vtysh -c "show bgp ipv4 unicast json":.*:None:Get ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 10, "routerId": "99.0.0.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 10, "routerId": "99.0.0.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: R:18 ce1 Cust 1 routes in ce1 1 0 (#19) scripts/check_routes.py:20 COMMAND:ce2:vtysh -c "show bgp ipv4 unicast":.:None:Get ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 10, local router ID is 99.0.0.2, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * i5.1.0.0/24 192.168.1.1 98 123 0 i *> 99.0.0.2 100 100 32768 i * i5.1.1.0/24 192.168.1.1 98 123 0 i *> 99.0.0.2 100 100 32768 i *>i5.1.2.0/24 192.168.1.1 200 50 0 i *>i5.1.3.0/24 192.168.1.1 200 50 0 i *>i5.4.2.0/24 192.168.1.1 200 50 0 i *>i5.4.3.0/24 192.168.1.1 200 50 0 i *>i99.0.0.1/32 192.168.1.1 0 100 0 i *> 99.0.0.2/32 0.0.0.0 0 32768 i *>i99.0.0.3/32 192.168.1.1 0 100 0 i *>i99.0.0.4/32 192.168.1.1 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#19) scripts/check_routes.py:21 COMMAND:ce2:vtysh -c "show bgp ipv4 unicast json":.*:None:Get ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 10, "routerId": "99.0.0.2", "routes": { "5.1.0.0/24": [ { "valid": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 10, "routerId": "99.0.0.2", "routes": { "5.1.0.0/24": [ { "valid": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: R:19 ce2 Cust 2 routes in ce1 1 0 (#20) scripts/check_routes.py:22 COMMAND:ce3:vtysh -c "show bgp ipv4 unicast":.:None:Get ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 14, local router ID is 99.0.0.3, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i5.1.0.0/24 192.168.1.1 98 123 0 i *>i5.1.1.0/24 192.168.1.1 98 123 0 i *> 5.1.2.0/24 99.0.0.3 200 50 32768 i *> 5.1.3.0/24 99.0.0.3 200 50 32768 i *>i5.4.2.0/24 192.168.1.1 200 50 0 i *>i5.4.3.0/24 192.168.1.1 200 50 0 i *>i99.0.0.1/32 192.168.1.1 0 100 0 i *>i99.0.0.2/32 192.168.1.1 0 100 0 i *> 99.0.0.3/32 0.0.0.0 0 32768 i *>i99.0.0.4/32 192.168.1.1 0 100 0 i Displayed 10 routes and 10 total paths: found:B: (#20) scripts/check_routes.py:23 COMMAND:ce3:vtysh -c "show bgp ipv4 unicast json":.*:None:Get ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 14, "routerId": "99.0.0.3", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 14, "routerId": "99.0.0.3", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: R:20 ce3 Cust 3 routes in ce1 1 0 (#21) scripts/check_routes.py:24 COMMAND:ce4:vtysh -c "show bgp ipv4 unicast":.:None:Get ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 14, local router ID is 99.0.0.4, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i5.1.0.0/24 192.168.2.1 98 123 0 i *>i5.1.1.0/24 192.168.2.1 98 123 0 i *>i5.1.2.0/24 192.168.2.1 200 50 0 i *>i5.1.3.0/24 192.168.2.1 200 50 0 i *> 5.4.2.0/24 99.0.0.4 200 50 32768 i *> 5.4.3.0/24 99.0.0.4 200 50 32768 i *>i99.0.0.1/32 192.168.2.1 0 100 0 i *>i99.0.0.2/32 192.168.2.1 0 100 0 i *>i99.0.0.3/32 192.168.2.1 0 100 0 i *> 99.0.0.4/32 0.0.0.0 0 32768 i Displayed 10 routes and 10 total paths: found:B: (#21) scripts/check_routes.py:25 COMMAND:ce4:vtysh -c "show bgp ipv4 unicast json":.*:None:Get ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 14, "routerId": "99.0.0.4", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 14, "routerId": "99.0.0.4", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ] } }: R:21 ce4 Cust 4 routes in ce1 1 0 (#22) scripts/check_routes.py:26 COMMAND:r1:vtysh -c "show bgp vrf r1-cust1 ipv4 unicast":.:None:Get vrf r1-cust1 ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 10, local router ID is 192.168.1.1, vrf id 4 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 5.1.0.0/24 3.3.3.3@0< 100 100 0 i *>i 99.0.0.1 98 123 0 i * 5.1.1.0/24 3.3.3.3@0< 100 100 0 i *>i 99.0.0.1 98 123 0 i *> 5.1.2.0/24 4.4.4.4@0< 200 50 0 i *> 5.1.3.0/24 4.4.4.4@0< 200 50 0 i *> 5.4.2.0/24 4.4.4.4@0< 200 50 0 i *> 5.4.3.0/24 4.4.4.4@0< 200 50 0 i *>i99.0.0.1/32 192.168.1.2 0 100 0 i *> 99.0.0.2/32 3.3.3.3@0< 0 100 0 i *> 99.0.0.3/32 4.4.4.4@0< 0 100 0 i *> 99.0.0.4/32 4.4.4.4@0< 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#22) scripts/check_routes.py:27 COMMAND:r1:vtysh -c "show bgp vrf r1-cust1 ipv4 unicast json":.*:None:Get vrf r1-cust1 ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 4, "vrfName": "r1-cust1", "tableVersion": 10, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 4, "vrfName": "r1-cust1", "tableVersion": 10, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ] } }: R:22 r1 Customer 1 routes in r1 vrf 1 0 (#23) scripts/check_routes.py:28 COMMAND:r3:vtysh -c "show bgp vrf r3-cust1 ipv4 unicast":.:None:Get vrf r3-cust1 ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 12, local router ID is 192.168.1.1, vrf id 5 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 5.1.0.0/24 1.1.1.1@0< 98 123 0 i * i 99.0.0.2 100 100 0 i *> 5.1.1.0/24 1.1.1.1@0< 98 123 0 i * i 99.0.0.2 100 100 0 i *> 5.1.2.0/24 4.4.4.4@0< 200 50 0 i *> 5.1.3.0/24 4.4.4.4@0< 200 50 0 i *> 5.4.2.0/24 4.4.4.4@0< 200 50 0 i *> 5.4.3.0/24 4.4.4.4@0< 200 50 0 i *> 99.0.0.1/32 1.1.1.1@0< 0 100 0 i *>i99.0.0.2/32 192.168.1.2 0 100 0 i *> 99.0.0.3/32 4.4.4.4@0< 0 100 0 i *> 99.0.0.4/32 4.4.4.4@0< 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#23) scripts/check_routes.py:29 COMMAND:r3:vtysh -c "show bgp vrf r3-cust1 ipv4 unicast json":.*:None:Get vrf r3-cust1 ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 5, "vrfName": "r3-cust1", "tableVersion": 12, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 5, "vrfName": "r3-cust1", "tableVersion": 12, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ] } }: R:23 r3 Customer 1 routes in r3 vrf 1 0 (#24) scripts/check_routes.py:30 COMMAND:r4:vtysh -c "show bgp vrf r4-cust1 ipv4 unicast":.:None:Get vrf r4-cust1 ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 14, local router ID is 192.168.1.1, vrf id 5 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 5.1.0.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *> 5.1.1.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *>i5.1.2.0/24 99.0.0.3 200 50 0 i *>i5.1.3.0/24 99.0.0.3 200 50 0 i *> 5.4.2.0/24 99.0.0.4@6< 200 50 0 i *> 5.4.3.0/24 99.0.0.4@6< 200 50 0 i *> 99.0.0.1/32 1.1.1.1@0< 0 100 0 i *> 99.0.0.2/32 3.3.3.3@0< 0 100 0 i *>i99.0.0.3/32 192.168.1.2 0 100 0 i *> 99.0.0.4/32 192.168.2.2@6< 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#24) scripts/check_routes.py:31 COMMAND:r4:vtysh -c "show bgp vrf r4-cust1 ipv4 unicast json":.*:None:Get vrf r4-cust1 ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 5, "vrfName": "r4-cust1", "tableVersion": 14, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "192.168.2.2", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 5, "vrfName": "r4-cust1", "tableVersion": 14, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "192.168.2.2", "afi": "ipv4", "used": true } ] } ] } }: R:24 r4 Customer 1 routes in r4 vrf 1 0 (#25) scripts/check_routes.py:32 COMMAND:r4:vtysh -c "show bgp vrf r4-cust2 ipv4 unicast":.:None:Get vrf r4-cust2 ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 14, local router ID is 192.168.2.1, vrf id 6 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 5.1.0.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *> 5.1.1.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *> 5.1.2.0/24 99.0.0.3@5< 200 50 0 i *> 5.1.3.0/24 99.0.0.3@5< 200 50 0 i *>i5.4.2.0/24 99.0.0.4 200 50 0 i *>i5.4.3.0/24 99.0.0.4 200 50 0 i *> 99.0.0.1/32 1.1.1.1@0< 0 100 0 i *> 99.0.0.2/32 3.3.3.3@0< 0 100 0 i *> 99.0.0.3/32 192.168.1.2@5< 0 100 0 i *>i99.0.0.4/32 192.168.2.2 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#25) scripts/check_routes.py:33 COMMAND:r4:vtysh -c "show bgp vrf r4-cust2 ipv4 unicast json":.*:None:Get vrf r4-cust2 ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 6, "vrfName": "r4-cust2", "tableVersion": 14, "routerId": "192.168.2.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.2", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 6, "vrfName": "r4-cust2", "tableVersion": 14, "routerId": "192.168.2.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.2", "afi": "ipv4", "used": true } ] } ] } }: R:25 r4 Customer 2 routes in r4 vrf 1 0 (#26) scripts/check_routes.py:34 COMMAND:r1:vtysh -c "show bgp ipv4 uni":No BGP prefixes displayed:pass:Core Unicast SAFI clean: COMMAND OUTPUT:No BGP prefixes displayed, 0 exist: found:No BGP prefixes displayed: R:26 r1 Core Unicast SAFI clean 1 0 (#27) scripts/check_routes.py:35 COMMAND:r2:vtysh -c "show bgp ipv4 uni":No BGP prefixes displayed:pass:Core Unicast SAFI clean: COMMAND OUTPUT:No BGP prefixes displayed, 0 exist: found:No BGP prefixes displayed: R:27 r2 Core Unicast SAFI clean 1 0 (#28) scripts/check_routes.py:36 COMMAND:r3:vtysh -c "show bgp ipv4 uni":No BGP prefixes displayed:pass:Core Unicast SAFI clean: COMMAND OUTPUT:No BGP prefixes displayed, 0 exist: found:No BGP prefixes displayed: R:28 r3 Core Unicast SAFI clean 1 0 (#29) scripts/check_routes.py:37 COMMAND:r4:vtysh -c "show bgp ipv4 uni":No BGP prefixes displayed:pass:Core Unicast SAFI clean: COMMAND OUTPUT:No BGP prefixes displayed, 0 exist: found:No BGP prefixes displayed: R:29 r4 Core Unicast SAFI clean 1 0 (#30) scripts/check_routes.py:38 COMMAND:r1:vtysh -c "show bgp ipv4 vpn":Distinguisher: *10:1.*5.1.0.0/24 *99.0.0.1\b.*5.1.1.0/24 *99.0.0.1\b.*99.0.0.1/32 *192.168.1.2\b:pass:vrf->vpn routes: COMMAND OUTPUT:BGP table version is 3, local router ID is 1.1.1.1, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 10:1 *> 5.1.0.0/24 99.0.0.1@4< 98 123 0 i UN=99.0.0.1 EC{89:123 52:100} label=101 type=bgp, subtype=5 *> 5.1.1.0/24 99.0.0.1@4< 98 123 0 i UN=99.0.0.1 EC{89:123 52:100} label=101 type=bgp, subtype=5 *> 99.0.0.1/32 192.168.1.2@4< 0 100 0 i UN=192.168.1.2 EC{52:100} label=101 type=bgp, subtype=5 Route Distinguisher: 10:3 *>i5.1.0.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i5.1.1.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i99.0.0.2/32 3.3.3.3 0 100 0 i UN=3.3.3.3 EC{52:100} label=103 type=bgp, subtype=0 Route Distinguisher: 10:41 *>i5.1.2.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1041 type=bgp, subtype=0 *>i5.1.3.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1041 type=bgp, subtype=0 *>i99.0.0.3/32 4.4.4.4 0 100 0 i UN=4.4.4.4 EC{52:100} label=1041 type=bgp, subtype=0 Route Distinguisher: 10:42 *>i5.4.2.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1042 type=bgp, subtype=0 *>i5.4.3.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1042 type=bgp, subtype=0 *>i99.0.0.4/32 4.4.4.4 0 100 0 i UN=4.4.4.4 EC{52:100} label=1042 type=bgp, subtype=0 Displayed 12 routes and 12 total paths: found:Distinguisher: 10:1 *> 5.1.0.0/24 99.0.0.1@4< 98 123 0 i UN=99.0.0.1 EC{89:123 52:100} label=101 type=bgp, subtype=5 *> 5.1.1.0/24 99.0.0.1@4< 98 123 0 i UN=99.0.0.1 EC{89:123 52:100} label=101 type=bgp, subtype=5 *> 99.0.0.1/32 192.168.1.2: R:30 r1 vrf->vpn routes 1 0 (#31) scripts/check_routes.py:39 COMMAND:r3:vtysh -c "show bgp ipv4 vpn":Distinguisher: *10:3.*5.1.0.0/24 *99.0.0.2\b.*5.1.1.0/24 *99.0.0.2\b.*99.0.0.2/32 *192.168.1.2\b:pass:vrf->vpn routes: COMMAND OUTPUT:BGP table version is 3, local router ID is 3.3.3.3, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 10:1 *>i5.1.0.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i5.1.1.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i99.0.0.1/32 1.1.1.1 0 100 0 i UN=1.1.1.1 EC{52:100} label=101 type=bgp, subtype=0 Route Distinguisher: 10:3 *> 5.1.0.0/24 99.0.0.2@5< 100 100 0 i UN=99.0.0.2 EC{89:123 52:100} label=103 type=bgp, subtype=5 *> 5.1.1.0/24 99.0.0.2@5< 100 100 0 i UN=99.0.0.2 EC{89:123 52:100} label=103 type=bgp, subtype=5 *> 99.0.0.2/32 192.168.1.2@5< 0 100 0 i UN=192.168.1.2 EC{52:100} label=103 type=bgp, subtype=5 Route Distinguisher: 10:41 *>i5.1.2.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1041 type=bgp, subtype=0 *>i5.1.3.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1041 type=bgp, subtype=0 *>i99.0.0.3/32 4.4.4.4 0 100 0 i UN=4.4.4.4 EC{52:100} label=1041 type=bgp, subtype=0 Route Distinguisher: 10:42 *>i5.4.2.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1042 type=bgp, subtype=0 *>i5.4.3.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1042 type=bgp, subtype=0 *>i99.0.0.4/32 4.4.4.4 0 100 0 i UN=4.4.4.4 EC{52:100} label=1042 type=bgp, subtype=0 Displayed 12 routes and 12 total paths: found:Distinguisher: 10:3 *> 5.1.0.0/24 99.0.0.2@5< 100 100 0 i UN=99.0.0.2 EC{89:123 52:100} label=103 type=bgp, subtype=5 *> 5.1.1.0/24 99.0.0.2@5< 100 100 0 i UN=99.0.0.2 EC{89:123 52:100} label=103 type=bgp, subtype=5 *> 99.0.0.2/32 192.168.1.2: R:31 r3 vrf->vpn routes 1 0 (#32) scripts/check_routes.py:40 COMMAND:r4:vtysh -c "show bgp ipv4 vpn":.:None:Get VPN RIB (non-json): COMMAND OUTPUT:BGP table version is 3, local router ID is 4.4.4.4, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 10:1 *>i5.1.0.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i5.1.1.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i99.0.0.1/32 1.1.1.1 0 100 0 i UN=1.1.1.1 EC{52:100} label=101 type=bgp, subtype=0 Route Distinguisher: 10:3 *>i5.1.0.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i5.1.1.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i99.0.0.2/32 3.3.3.3 0 100 0 i UN=3.3.3.3 EC{52:100} label=103 type=bgp, subtype=0 Route Distinguisher: 10:41 *> 5.1.2.0/24 99.0.0.3@5< 200 50 0 i UN=99.0.0.3 EC{89:123 52:100} label=1041 type=bgp, subtype=5 *> 5.1.3.0/24 99.0.0.3@5< 200 50 0 i UN=99.0.0.3 EC{89:123 52:100} label=1041 type=bgp, subtype=5 *> 99.0.0.3/32 192.168.1.2@5< 0 100 0 i UN=192.168.1.2 EC{52:100} label=1041 type=bgp, subtype=5 Route Distinguisher: 10:42 *> 5.4.2.0/24 99.0.0.4@6< 200 50 0 i UN=99.0.0.4 EC{89:123 52:100} label=1042 type=bgp, subtype=5 *> 5.4.3.0/24 99.0.0.4@6< 200 50 0 i UN=99.0.0.4 EC{89:123 52:100} label=1042 type=bgp, subtype=5 *> 99.0.0.4/32 192.168.2.2@6< 0 100 0 i UN=192.168.2.2 EC{52:100} label=1042 type=bgp, subtype=5 Displayed 12 routes and 12 total paths: found:B: (#32) scripts/check_routes.py:41 COMMAND:r4:vtysh -c "show bgp ipv4 vpn json":.*:None:Get VPN RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 3, "routerId": "4.4.4.4", "routes": { "routeDistinguishers" : { "10:1" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ] }, "10:3" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ] }, "10:41" : { "5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.3", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.3", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "192.168.1.2", "used": true } ] } ] }, "10:42" : { "5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "99.0.0.4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "99.0.0.4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "192.168.2.2", "used": true } ] } ] } } } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 3, "routerId": "4.4.4.4", "routes": { "routeDistinguishers" : { "10:1" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ] }, "10:3" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ] }, "10:41" : { "5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.3", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.3", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "192.168.1.2", "used": true } ] } ] }, "10:42" : { "5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "99.0.0.4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "99.0.0.4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "192.168.2.2", "used": true } ] } ] } } } }: R:32 r4 vrf->vpn routes 1 0 (#33) scripts/check_routes.py:42 COMMAND:r1:vtysh -c "show mpls table": 101 *BGP *r1-cust1:pass:vrf labels: COMMAND OUTPUT: Inbound Outbound Label Type Nexthop Label -------- ------- --------------- -------- 16 LDP 10.0.1.2 implicit-null 17 LDP 10.0.1.2 implicit-null 18 LDP 10.0.1.2 implicit-null 19 LDP 10.0.1.2 17 20 LDP 10.0.1.2 16 101 BGP r1-cust1: found: 101 BGP r1-cust1: R:33 r1 vrf labels 1 0 (#34) scripts/check_routes.py:43 COMMAND:r3:vtysh -c "show mpls table": 103 *BGP *r3-cust1:pass:vrf labels: COMMAND OUTPUT: Inbound Outbound Label Type Nexthop Label -------- ------- --------------- -------- 16 LDP 10.0.2.2 implicit-null 16 LDP 10.0.3.2 implicit-null 17 LDP 10.0.2.2 implicit-null 17 LDP 10.0.3.2 implicit-null 18 LDP 10.0.2.4 implicit-null 19 LDP 10.0.2.2 18 19 LDP 10.0.3.2 18 103 BGP r3-cust1: found: 103 BGP r3-cust1: R:34 r3 vrf labels 1 0 (#35) scripts/check_routes.py:44 COMMAND:r4:vtysh -c "show mpls table": 1041 *BGP *r4-cust1 .*1042 *BGP *r4-cust2:pass:vrf labels: COMMAND OUTPUT: Inbound Outbound Label Type Nexthop Label -------- ------- --------------- -------- 16 LDP 10.0.2.2 implicit-null 17 LDP 10.0.2.3 implicit-null 18 LDP 10.0.2.2 implicit-null 19 LDP 10.0.2.3 implicit-null 19 LDP 10.0.2.2 implicit-null 20 LDP 10.0.2.2 18 1041 BGP r4-cust1 1042 BGP r4-cust2: found: 1041 BGP r4-cust1 1042 BGP r4-cust2: DOTALL experiment: strings differ dotall=[None] orig=[ 1041 BGP r4-cust1 1042 BGP r4-cust2] R:35 r4 vrf labels 1 0 (#36) scripts/check_routes.py:45 COMMAND:r2:vtysh -c "show bgp ipv4 vpn":.:None:Get VPN RIB (non-json): COMMAND OUTPUT:BGP table version is 3, local router ID is 2.2.2.2, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 10:1 *>i5.1.0.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i5.1.1.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i99.0.0.1/32 1.1.1.1 0 100 0 i UN=1.1.1.1 EC{52:100} label=101 type=bgp, subtype=0 Route Distinguisher: 10:3 *>i5.1.0.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i5.1.1.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i99.0.0.2/32 3.3.3.3 0 100 0 i UN=3.3.3.3 EC{52:100} label=103 type=bgp, subtype=0 Route Distinguisher: 10:41 *>i5.1.2.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1041 type=bgp, subtype=0 *>i5.1.3.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1041 type=bgp, subtype=0 *>i99.0.0.3/32 4.4.4.4 0 100 0 i UN=4.4.4.4 EC{52:100} label=1041 type=bgp, subtype=0 Route Distinguisher: 10:42 *>i5.4.2.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1042 type=bgp, subtype=0 *>i5.4.3.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1042 type=bgp, subtype=0 *>i99.0.0.4/32 4.4.4.4 0 100 0 i UN=4.4.4.4 EC{52:100} label=1042 type=bgp, subtype=0 Displayed 12 routes and 12 total paths: found:B: (#36) scripts/check_routes.py:46 COMMAND:r2:vtysh -c "show bgp ipv4 vpn json":.*:None:Get VPN RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 3, "routerId": "2.2.2.2", "routes": { "routeDistinguishers" : { "10:1" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "1.1.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "1.1.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "1.1.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ] }, "10:3" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "3.3.3.3", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "3.3.3.3", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "3.3.3.3", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ] }, "10:41" : { "5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] }, "10:42" : { "5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] } } } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 3, "routerId": "2.2.2.2", "routes": { "routeDistinguishers" : { "10:1" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "1.1.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "1.1.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "1.1.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ] }, "10:3" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "3.3.3.3", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "3.3.3.3", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "3.3.3.3", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ] }, "10:41" : { "5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] }, "10:42" : { "5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "4.4.4.4", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] } } } }: R:36 r2 Customer routes in provider vpn core 1 0 (#37) scripts/check_routes.py:47 COMMAND:r1:vtysh -c "show bgp ipv4 vpn":.:None:Get VPN RIB (non-json): COMMAND OUTPUT:BGP table version is 3, local router ID is 1.1.1.1, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 10:1 *> 5.1.0.0/24 99.0.0.1@4< 98 123 0 i UN=99.0.0.1 EC{89:123 52:100} label=101 type=bgp, subtype=5 *> 5.1.1.0/24 99.0.0.1@4< 98 123 0 i UN=99.0.0.1 EC{89:123 52:100} label=101 type=bgp, subtype=5 *> 99.0.0.1/32 192.168.1.2@4< 0 100 0 i UN=192.168.1.2 EC{52:100} label=101 type=bgp, subtype=5 Route Distinguisher: 10:3 *>i5.1.0.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i5.1.1.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i99.0.0.2/32 3.3.3.3 0 100 0 i UN=3.3.3.3 EC{52:100} label=103 type=bgp, subtype=0 Route Distinguisher: 10:41 *>i5.1.2.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1041 type=bgp, subtype=0 *>i5.1.3.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1041 type=bgp, subtype=0 *>i99.0.0.3/32 4.4.4.4 0 100 0 i UN=4.4.4.4 EC{52:100} label=1041 type=bgp, subtype=0 Route Distinguisher: 10:42 *>i5.4.2.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1042 type=bgp, subtype=0 *>i5.4.3.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1042 type=bgp, subtype=0 *>i99.0.0.4/32 4.4.4.4 0 100 0 i UN=4.4.4.4 EC{52:100} label=1042 type=bgp, subtype=0 Displayed 12 routes and 12 total paths: found:B: (#37) scripts/check_routes.py:48 COMMAND:r1:vtysh -c "show bgp ipv4 vpn json":.*:None:Get VPN RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 3, "routerId": "1.1.1.1", "routes": { "routeDistinguishers" : { "10:1" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r1-cust1", "nhVrfId": 4, "nexthops": [ { "afi": "ip", "ip": "99.0.0.1", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r1-cust1", "nhVrfId": 4, "nexthops": [ { "afi": "ip", "ip": "99.0.0.1", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r1-cust1", "nhVrfId": 4, "nexthops": [ { "afi": "ip", "ip": "192.168.1.2", "used": true } ] } ] }, "10:3" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ] }, "10:41" : { "5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] }, "10:42" : { "5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] } } } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 3, "routerId": "1.1.1.1", "routes": { "routeDistinguishers" : { "10:1" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r1-cust1", "nhVrfId": 4, "nexthops": [ { "afi": "ip", "ip": "99.0.0.1", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r1-cust1", "nhVrfId": 4, "nexthops": [ { "afi": "ip", "ip": "99.0.0.1", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r1-cust1", "nhVrfId": 4, "nexthops": [ { "afi": "ip", "ip": "192.168.1.2", "used": true } ] } ] }, "10:3" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ] }, "10:41" : { "5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] }, "10:42" : { "5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] } } } }: R:37 r1 Remote Customer routes in R1 vpn 1 0 (#38) scripts/check_routes.py:49 COMMAND:r3:vtysh -c "show bgp ipv4 vpn":.:None:Get VPN RIB (non-json): COMMAND OUTPUT:BGP table version is 3, local router ID is 3.3.3.3, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 10:1 *>i5.1.0.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i5.1.1.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i99.0.0.1/32 1.1.1.1 0 100 0 i UN=1.1.1.1 EC{52:100} label=101 type=bgp, subtype=0 Route Distinguisher: 10:3 *> 5.1.0.0/24 99.0.0.2@5< 100 100 0 i UN=99.0.0.2 EC{89:123 52:100} label=103 type=bgp, subtype=5 *> 5.1.1.0/24 99.0.0.2@5< 100 100 0 i UN=99.0.0.2 EC{89:123 52:100} label=103 type=bgp, subtype=5 *> 99.0.0.2/32 192.168.1.2@5< 0 100 0 i UN=192.168.1.2 EC{52:100} label=103 type=bgp, subtype=5 Route Distinguisher: 10:41 *>i5.1.2.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1041 type=bgp, subtype=0 *>i5.1.3.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1041 type=bgp, subtype=0 *>i99.0.0.3/32 4.4.4.4 0 100 0 i UN=4.4.4.4 EC{52:100} label=1041 type=bgp, subtype=0 Route Distinguisher: 10:42 *>i5.4.2.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1042 type=bgp, subtype=0 *>i5.4.3.0/24 4.4.4.4 200 50 0 i UN=4.4.4.4 EC{52:100 89:123} label=1042 type=bgp, subtype=0 *>i99.0.0.4/32 4.4.4.4 0 100 0 i UN=4.4.4.4 EC{52:100} label=1042 type=bgp, subtype=0 Displayed 12 routes and 12 total paths: found:B: (#38) scripts/check_routes.py:50 COMMAND:r3:vtysh -c "show bgp ipv4 vpn json":.*:None:Get VPN RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 3, "routerId": "3.3.3.3", "routes": { "routeDistinguishers" : { "10:1" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ] }, "10:3" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r3-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.2", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r3-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.2", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r3-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "192.168.1.2", "used": true } ] } ] }, "10:41" : { "5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] }, "10:42" : { "5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] } } } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 3, "routerId": "3.3.3.3", "routes": { "routeDistinguishers" : { "10:1" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ] }, "10:3" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r3-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.2", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r3-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.2", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r3-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "192.168.1.2", "used": true } ] } ] }, "10:41" : { "5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] }, "10:42" : { "5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "4.4.4.4", "used": true } ] } ] } } } }: R:38 r3 Remote Customer routes in R3 vpn 1 0 (#39) scripts/check_routes.py:51 COMMAND:r4:vtysh -c "show bgp ipv4 vpn":.:None:Get VPN RIB (non-json): COMMAND OUTPUT:BGP table version is 3, local router ID is 4.4.4.4, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 10:1 *>i5.1.0.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i5.1.1.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i99.0.0.1/32 1.1.1.1 0 100 0 i UN=1.1.1.1 EC{52:100} label=101 type=bgp, subtype=0 Route Distinguisher: 10:3 *>i5.1.0.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i5.1.1.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i99.0.0.2/32 3.3.3.3 0 100 0 i UN=3.3.3.3 EC{52:100} label=103 type=bgp, subtype=0 Route Distinguisher: 10:41 *> 5.1.2.0/24 99.0.0.3@5< 200 50 0 i UN=99.0.0.3 EC{89:123 52:100} label=1041 type=bgp, subtype=5 *> 5.1.3.0/24 99.0.0.3@5< 200 50 0 i UN=99.0.0.3 EC{89:123 52:100} label=1041 type=bgp, subtype=5 *> 99.0.0.3/32 192.168.1.2@5< 0 100 0 i UN=192.168.1.2 EC{52:100} label=1041 type=bgp, subtype=5 Route Distinguisher: 10:42 *> 5.4.2.0/24 99.0.0.4@6< 200 50 0 i UN=99.0.0.4 EC{89:123 52:100} label=1042 type=bgp, subtype=5 *> 5.4.3.0/24 99.0.0.4@6< 200 50 0 i UN=99.0.0.4 EC{89:123 52:100} label=1042 type=bgp, subtype=5 *> 99.0.0.4/32 192.168.2.2@6< 0 100 0 i UN=192.168.2.2 EC{52:100} label=1042 type=bgp, subtype=5 Displayed 12 routes and 12 total paths: found:B: (#39) scripts/check_routes.py:52 COMMAND:r4:vtysh -c "show bgp ipv4 vpn json":.*:None:Get VPN RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 3, "routerId": "4.4.4.4", "routes": { "routeDistinguishers" : { "10:1" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ] }, "10:3" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ] }, "10:41" : { "5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.3", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.3", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "192.168.1.2", "used": true } ] } ] }, "10:42" : { "5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "99.0.0.4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "99.0.0.4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "192.168.2.2", "used": true } ] } ] } } } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 3, "routerId": "4.4.4.4", "routes": { "routeDistinguishers" : { "10:1" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "1.1.1.1", "used": true } ] } ] }, "10:3" : { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "2.2.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "afi": "ip", "ip": "3.3.3.3", "used": true } ] } ] }, "10:41" : { "5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.3", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "99.0.0.3", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "afi": "ip", "ip": "192.168.1.2", "used": true } ] } ] }, "10:42" : { "5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "99.0.0.4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "99.0.0.4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "afi": "ip", "ip": "192.168.2.2", "used": true } ] } ] } } } }: R:39 r4 Remote Customer routes in R4 vpn 1 0 (#40) scripts/check_routes.py:53 COMMAND:r1:vtysh -c "show bgp vrf r1-cust1 ipv4 unicast":.:None:Get vrf r1-cust1 ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 10, local router ID is 192.168.1.1, vrf id 4 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 5.1.0.0/24 3.3.3.3@0< 100 100 0 i *>i 99.0.0.1 98 123 0 i * 5.1.1.0/24 3.3.3.3@0< 100 100 0 i *>i 99.0.0.1 98 123 0 i *> 5.1.2.0/24 4.4.4.4@0< 200 50 0 i *> 5.1.3.0/24 4.4.4.4@0< 200 50 0 i *> 5.4.2.0/24 4.4.4.4@0< 200 50 0 i *> 5.4.3.0/24 4.4.4.4@0< 200 50 0 i *>i99.0.0.1/32 192.168.1.2 0 100 0 i *> 99.0.0.2/32 3.3.3.3@0< 0 100 0 i *> 99.0.0.3/32 4.4.4.4@0< 0 100 0 i *> 99.0.0.4/32 4.4.4.4@0< 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#40) scripts/check_routes.py:54 COMMAND:r1:vtysh -c "show bgp vrf r1-cust1 ipv4 unicast json":.*:None:Get vrf r1-cust1 ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 4, "vrfName": "r1-cust1", "tableVersion": 10, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 4, "vrfName": "r1-cust1", "tableVersion": 10, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ] } }: R:40 r1 Customer 1 routes in r1 vrf 1 0 (#41) scripts/check_routes.py:55 COMMAND:r3:vtysh -c "show bgp vrf r3-cust1 ipv4 unicast":.:None:Get vrf r3-cust1 ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 12, local router ID is 192.168.1.1, vrf id 5 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 5.1.0.0/24 1.1.1.1@0< 98 123 0 i * i 99.0.0.2 100 100 0 i *> 5.1.1.0/24 1.1.1.1@0< 98 123 0 i * i 99.0.0.2 100 100 0 i *> 5.1.2.0/24 4.4.4.4@0< 200 50 0 i *> 5.1.3.0/24 4.4.4.4@0< 200 50 0 i *> 5.4.2.0/24 4.4.4.4@0< 200 50 0 i *> 5.4.3.0/24 4.4.4.4@0< 200 50 0 i *> 99.0.0.1/32 1.1.1.1@0< 0 100 0 i *>i99.0.0.2/32 192.168.1.2 0 100 0 i *> 99.0.0.3/32 4.4.4.4@0< 0 100 0 i *> 99.0.0.4/32 4.4.4.4@0< 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#41) scripts/check_routes.py:56 COMMAND:r3:vtysh -c "show bgp vrf r3-cust1 ipv4 unicast json":.*:None:Get vrf r3-cust1 ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 5, "vrfName": "r3-cust1", "tableVersion": 12, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 5, "vrfName": "r3-cust1", "tableVersion": 12, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "4.4.4.4", "afi": "ipv4", "used": true } ] } ] } }: R:41 r3 Customer 1 routes in r3 vrf 1 0 (#42) scripts/check_routes.py:57 COMMAND:r4:vtysh -c "show bgp vrf r4-cust1 ipv4 unicast":.:None:Get vrf r4-cust1 ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 14, local router ID is 192.168.1.1, vrf id 5 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 5.1.0.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *> 5.1.1.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *>i5.1.2.0/24 99.0.0.3 200 50 0 i *>i5.1.3.0/24 99.0.0.3 200 50 0 i *> 5.4.2.0/24 99.0.0.4@6< 200 50 0 i *> 5.4.3.0/24 99.0.0.4@6< 200 50 0 i *> 99.0.0.1/32 1.1.1.1@0< 0 100 0 i *> 99.0.0.2/32 3.3.3.3@0< 0 100 0 i *>i99.0.0.3/32 192.168.1.2 0 100 0 i *> 99.0.0.4/32 192.168.2.2@6< 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#42) scripts/check_routes.py:58 COMMAND:r4:vtysh -c "show bgp vrf r4-cust1 ipv4 unicast json":.*:None:Get vrf r4-cust1 ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 5, "vrfName": "r4-cust1", "tableVersion": 14, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "192.168.2.2", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 5, "vrfName": "r4-cust1", "tableVersion": 14, "routerId": "192.168.1.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust2", "nhVrfId": 6, "nexthops": [ { "ip": "192.168.2.2", "afi": "ipv4", "used": true } ] } ] } }: R:42 r4 Customer 1 routes in r4 vrf 1 0 (#43) scripts/check_routes.py:59 COMMAND:r4:vtysh -c "show bgp vrf r4-cust2 ipv4 unicast":.:None:Get vrf r4-cust2 ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 14, local router ID is 192.168.2.1, vrf id 6 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 5.1.0.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *> 5.1.1.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *> 5.1.2.0/24 99.0.0.3@5< 200 50 0 i *> 5.1.3.0/24 99.0.0.3@5< 200 50 0 i *>i5.4.2.0/24 99.0.0.4 200 50 0 i *>i5.4.3.0/24 99.0.0.4 200 50 0 i *> 99.0.0.1/32 1.1.1.1@0< 0 100 0 i *> 99.0.0.2/32 3.3.3.3@0< 0 100 0 i *> 99.0.0.3/32 192.168.1.2@5< 0 100 0 i *>i99.0.0.4/32 192.168.2.2 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#43) scripts/check_routes.py:60 COMMAND:r4:vtysh -c "show bgp vrf r4-cust2 ipv4 unicast json":.*:None:Get vrf r4-cust2 ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 6, "vrfName": "r4-cust2", "tableVersion": 14, "routerId": "192.168.2.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.2", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 6, "vrfName": "r4-cust2", "tableVersion": 14, "routerId": "192.168.2.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "1.1.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "Default", "nhVrfId": 0, "nexthops": [ { "ip": "3.3.3.3", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "announceNexthopSelf": true, "nhVrfName": "r4-cust1", "nhVrfId": 5, "nexthops": [ { "ip": "192.168.1.2", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.2", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.2", "afi": "ipv4", "used": true } ] } ] } }: R:43 r4 Customer 2 routes in r4 vrf 1 0 (#44) scripts/check_routes.py:61 COMMAND:ce1:vtysh -c "show bgp ipv4 unicast":.:None:Get ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 10, local router ID is 99.0.0.1, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 5.1.0.0/24 99.0.0.1 98 123 32768 i *> 5.1.1.0/24 99.0.0.1 98 123 32768 i *>i5.1.2.0/24 192.168.1.1 200 50 0 i *>i5.1.3.0/24 192.168.1.1 200 50 0 i *>i5.4.2.0/24 192.168.1.1 200 50 0 i *>i5.4.3.0/24 192.168.1.1 200 50 0 i *> 99.0.0.1/32 0.0.0.0 0 32768 i *>i99.0.0.2/32 192.168.1.1 0 100 0 i *>i99.0.0.3/32 192.168.1.1 0 100 0 i *>i99.0.0.4/32 192.168.1.1 0 100 0 i Displayed 10 routes and 10 total paths: found:B: (#44) scripts/check_routes.py:62 COMMAND:ce1:vtysh -c "show bgp ipv4 unicast json":.*:None:Get ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 10, "routerId": "99.0.0.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 10, "routerId": "99.0.0.1", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: R:44 ce1 Cust 1 routes from remote 1 0 (#45) scripts/check_routes.py:63 COMMAND:ce2:vtysh -c "show bgp ipv4 unicast":.:None:Get ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 10, local router ID is 99.0.0.2, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * i5.1.0.0/24 192.168.1.1 98 123 0 i *> 99.0.0.2 100 100 32768 i * i5.1.1.0/24 192.168.1.1 98 123 0 i *> 99.0.0.2 100 100 32768 i *>i5.1.2.0/24 192.168.1.1 200 50 0 i *>i5.1.3.0/24 192.168.1.1 200 50 0 i *>i5.4.2.0/24 192.168.1.1 200 50 0 i *>i5.4.3.0/24 192.168.1.1 200 50 0 i *>i99.0.0.1/32 192.168.1.1 0 100 0 i *> 99.0.0.2/32 0.0.0.0 0 32768 i *>i99.0.0.3/32 192.168.1.1 0 100 0 i *>i99.0.0.4/32 192.168.1.1 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#45) scripts/check_routes.py:64 COMMAND:ce2:vtysh -c "show bgp ipv4 unicast json":.*:None:Get ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 10, "routerId": "99.0.0.2", "routes": { "5.1.0.0/24": [ { "valid": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 10, "routerId": "99.0.0.2", "routes": { "5.1.0.0/24": [ { "valid": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.0.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] }, { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.1.0", "prefixLen": 24, "med": 100, "localpref": 100, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.2", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: R:45 ce2 Cust 1 routes from remote 1 0 (#46) scripts/check_routes.py:65 COMMAND:r4:vtysh -c "show bgp vrf r4-cust1 ipv4 uni":.:none:: COMMAND OUTPUT:BGP table version is 14, local router ID is 192.168.1.1, vrf id 5 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 5.1.0.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *> 5.1.1.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *>i5.1.2.0/24 99.0.0.3 200 50 0 i *>i5.1.3.0/24 99.0.0.3 200 50 0 i *> 5.4.2.0/24 99.0.0.4@6< 200 50 0 i *> 5.4.3.0/24 99.0.0.4@6< 200 50 0 i *> 99.0.0.1/32 1.1.1.1@0< 0 100 0 i *> 99.0.0.2/32 3.3.3.3@0< 0 100 0 i *>i99.0.0.3/32 192.168.1.2 0 100 0 i *> 99.0.0.4/32 192.168.2.2@6< 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#46) scripts/check_routes.py:66 COMMAND:r4:vtysh -c "show bgp vrf r4-cust2 ipv4 uni":.:none:: COMMAND OUTPUT:BGP table version is 14, local router ID is 192.168.2.1, vrf id 6 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 5.1.0.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *> 5.1.1.0/24 1.1.1.1@0< 98 123 0 i * 3.3.3.3@0< 100 100 0 i *> 5.1.2.0/24 99.0.0.3@5< 200 50 0 i *> 5.1.3.0/24 99.0.0.3@5< 200 50 0 i *>i5.4.2.0/24 99.0.0.4 200 50 0 i *>i5.4.3.0/24 99.0.0.4 200 50 0 i *> 99.0.0.1/32 1.1.1.1@0< 0 100 0 i *> 99.0.0.2/32 3.3.3.3@0< 0 100 0 i *> 99.0.0.3/32 192.168.1.2@5< 0 100 0 i *>i99.0.0.4/32 192.168.2.2 0 100 0 i Displayed 10 routes and 12 total paths: found:B: (#46) scripts/check_routes.py:67 COMMAND:r4:vtysh -c "show bgp ipv4 vpn":.:none:: COMMAND OUTPUT:BGP table version is 3, local router ID is 4.4.4.4, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 10:1 *>i5.1.0.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i5.1.1.0/24 1.1.1.1 98 123 0 i UN=1.1.1.1 EC{52:100 89:123} label=101 type=bgp, subtype=0 *>i99.0.0.1/32 1.1.1.1 0 100 0 i UN=1.1.1.1 EC{52:100} label=101 type=bgp, subtype=0 Route Distinguisher: 10:3 *>i5.1.0.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i5.1.1.0/24 3.3.3.3 100 100 0 i UN=3.3.3.3 EC{52:100 89:123} label=103 type=bgp, subtype=0 *>i99.0.0.2/32 3.3.3.3 0 100 0 i UN=3.3.3.3 EC{52:100} label=103 type=bgp, subtype=0 Route Distinguisher: 10:41 *> 5.1.2.0/24 99.0.0.3@5< 200 50 0 i UN=99.0.0.3 EC{89:123 52:100} label=1041 type=bgp, subtype=5 *> 5.1.3.0/24 99.0.0.3@5< 200 50 0 i UN=99.0.0.3 EC{89:123 52:100} label=1041 type=bgp, subtype=5 *> 99.0.0.3/32 192.168.1.2@5< 0 100 0 i UN=192.168.1.2 EC{52:100} label=1041 type=bgp, subtype=5 Route Distinguisher: 10:42 *> 5.4.2.0/24 99.0.0.4@6< 200 50 0 i UN=99.0.0.4 EC{89:123 52:100} label=1042 type=bgp, subtype=5 *> 5.4.3.0/24 99.0.0.4@6< 200 50 0 i UN=99.0.0.4 EC{89:123 52:100} label=1042 type=bgp, subtype=5 *> 99.0.0.4/32 192.168.2.2@6< 0 100 0 i UN=192.168.2.2 EC{52:100} label=1042 type=bgp, subtype=5 Displayed 12 routes and 12 total paths: found:B: (#46) scripts/check_routes.py:68 COMMAND:r4:vtysh -c "show ip route vrf r4-cust1":.:none:: COMMAND OUTPUT:Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, > - selected route, * - FIB route VRF r4-cust1: B> 5.1.0.0/24 [200/98] via 1.1.1.1(vrf Default-IP-Routing-Table) (recursive), label 101, 00:00:14 * via 10.0.2.2, r4-eth0(vrf Default-IP-Routing-Table), label 18, 00:00:14 B> 5.1.1.0/24 [200/98] via 1.1.1.1(vrf Default-IP-Routing-Table) (recursive), label 101, 00:00:14 * via 10.0.2.2, r4-eth0(vrf Default-IP-Routing-Table), label 18, 00:00:14 B> 5.1.2.0/24 [200/200] via 99.0.0.3 (recursive), 00:00:56 * via 192.168.1.2, r4-eth4, 00:00:56 B> 5.1.3.0/24 [200/200] via 99.0.0.3 (recursive), 00:00:56 * via 192.168.1.2, r4-eth4, 00:00:56 B 5.4.2.0/24 [200/200] via 99.0.0.4(vrf r4-cust2) inactive, 00:00:57 B 5.4.3.0/24 [200/200] via 99.0.0.4(vrf r4-cust2) inactive, 00:00:57 B> 99.0.0.1/32 [200/0] via 1.1.1.1(vrf Default-IP-Routing-Table) (recursive), label 101, 00:00:14 * via 10.0.2.2, r4-eth0(vrf Default-IP-Routing-Table), label 18, 00:00:14 B> 99.0.0.2/32 [200/0] via 3.3.3.3(vrf Default-IP-Routing-Table) (recursive), label 103, 00:00:08 * via 10.0.2.3, r4-eth0(vrf Default-IP-Routing-Table), label implicit-null, 00:00:08 B>* 99.0.0.3/32 [200/0] via 192.168.1.2, r4-eth4, 00:00:59 B>* 99.0.0.4/32 [200/0] via 192.168.2.2, r4-eth5(vrf r4-cust2), 00:01:00 C>* 192.168.1.0/24 is directly connected, r4-eth4, 00:01:09: found:C: (#46) scripts/check_routes.py:69 COMMAND:r4:vtysh -c "show ip route vrf r4-cust2":.:none:: COMMAND OUTPUT:Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, > - selected route, * - FIB route VRF r4-cust2: B> 5.1.0.0/24 [200/98] via 1.1.1.1(vrf Default-IP-Routing-Table) (recursive), label 101, 00:00:14 * via 10.0.2.2, r4-eth0(vrf Default-IP-Routing-Table), label 18, 00:00:14 B> 5.1.1.0/24 [200/98] via 1.1.1.1(vrf Default-IP-Routing-Table) (recursive), label 101, 00:00:14 * via 10.0.2.2, r4-eth0(vrf Default-IP-Routing-Table), label 18, 00:00:14 B 5.1.2.0/24 [200/200] via 99.0.0.3(vrf r4-cust1) inactive, 00:00:56 B 5.1.3.0/24 [200/200] via 99.0.0.3(vrf r4-cust1) inactive, 00:00:56 B> 5.4.2.0/24 [200/200] via 99.0.0.4 (recursive), 00:00:57 * via 192.168.2.2, r4-eth5, 00:00:57 B> 5.4.3.0/24 [200/200] via 99.0.0.4 (recursive), 00:00:57 * via 192.168.2.2, r4-eth5, 00:00:57 B> 99.0.0.1/32 [200/0] via 1.1.1.1(vrf Default-IP-Routing-Table) (recursive), label 101, 00:00:14 * via 10.0.2.2, r4-eth0(vrf Default-IP-Routing-Table), label 18, 00:00:14 B> 99.0.0.2/32 [200/0] via 3.3.3.3(vrf Default-IP-Routing-Table) (recursive), label 103, 00:00:08 * via 10.0.2.3, r4-eth0(vrf Default-IP-Routing-Table), label implicit-null, 00:00:08 B>* 99.0.0.3/32 [200/0] via 192.168.1.2, r4-eth4(vrf r4-cust1), 00:00:59 B>* 99.0.0.4/32 [200/0] via 192.168.2.2, r4-eth5, 00:01:00 C>* 192.168.2.0/24 is directly connected, r4-eth5, 00:01:09: found:C: (#46) scripts/check_routes.py:70 COMMAND:ce3:vtysh -c "show bgp ipv4 unicast":.:None:Get ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 14, local router ID is 99.0.0.3, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i5.1.0.0/24 192.168.1.1 98 123 0 i *>i5.1.1.0/24 192.168.1.1 98 123 0 i *> 5.1.2.0/24 99.0.0.3 200 50 32768 i *> 5.1.3.0/24 99.0.0.3 200 50 32768 i *>i5.4.2.0/24 192.168.1.1 200 50 0 i *>i5.4.3.0/24 192.168.1.1 200 50 0 i *>i99.0.0.1/32 192.168.1.1 0 100 0 i *>i99.0.0.2/32 192.168.1.1 0 100 0 i *> 99.0.0.3/32 0.0.0.0 0 32768 i *>i99.0.0.4/32 192.168.1.1 0 100 0 i Displayed 10 routes and 10 total paths: found:B: (#46) scripts/check_routes.py:71 COMMAND:ce3:vtysh -c "show bgp ipv4 unicast json":.*:None:Get ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 14, "routerId": "99.0.0.3", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 14, "routerId": "99.0.0.3", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.3", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.1.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.1.1", "afi": "ipv4", "used": true } ] } ] } }: R:46 ce3 Cust 1 routes from remote 1 0 (#47) scripts/check_routes.py:72 COMMAND:ce4:vtysh -c "show bgp ipv4 unicast":.:None:Get ipv4 RIB (non-json): COMMAND OUTPUT:BGP table version is 14, local router ID is 99.0.0.4, vrf id 0 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i5.1.0.0/24 192.168.2.1 98 123 0 i *>i5.1.1.0/24 192.168.2.1 98 123 0 i *>i5.1.2.0/24 192.168.2.1 200 50 0 i *>i5.1.3.0/24 192.168.2.1 200 50 0 i *> 5.4.2.0/24 99.0.0.4 200 50 32768 i *> 5.4.3.0/24 99.0.0.4 200 50 32768 i *>i99.0.0.1/32 192.168.2.1 0 100 0 i *>i99.0.0.2/32 192.168.2.1 0 100 0 i *>i99.0.0.3/32 192.168.2.1 0 100 0 i *> 99.0.0.4/32 0.0.0.0 0 32768 i Displayed 10 routes and 10 total paths: found:B: (#47) scripts/check_routes.py:73 COMMAND:ce4:vtysh -c "show bgp ipv4 unicast json":.*:None:Get ipv4 RIB (json): COMMAND OUTPUT:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 14, "routerId": "99.0.0.4", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ] } }: found:{ "vrfId": 0, "vrfName": "Default", "tableVersion": 14, "routerId": "99.0.0.4", "routes": { "5.1.0.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.0.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.1.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.1.0", "prefixLen": 24, "med": 98, "localpref": 123, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.1.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "5.1.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"5.4.2.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.2.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"5.4.3.0/24": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "5.4.3.0", "prefixLen": 24, "med": 200, "localpref": 50, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "99.0.0.4", "afi": "ipv4", "used": true } ] } ],"99.0.0.1/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.1", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.2/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.2", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.3/32": [ { "valid": true, "bestpath": true, "pathFrom": "internal", "prefix": "99.0.0.3", "prefixLen": 32, "med": 0, "localpref": 100, "weight": 0, "peerId": "192.168.2.1", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "192.168.2.1", "afi": "ipv4", "used": true } ] } ],"99.0.0.4/32": [ { "valid": true, "bestpath": true, "pathFrom": "external", "prefix": "99.0.0.4", "prefixLen": 32, "med": 0, "weight": 32768, "peerId": "(unspec)", "aspath": "", "origin": "IGP", "nexthops": [ { "ip": "0.0.0.0", "afi": "ipv4", "used": true } ] } ] } }: R:47 ce4 Cust 2 routes from remote 1 0 .2018-10-08 10:23:30,516 INFO: Starting template test: scripts/check_linux_mpls.py 2018-10-08 10:23:30,567 INFO: Have iproute2 version=4.3.0 2018-10-08 10:23:30,568 INFO: assert skipped at "bgp_l3vpn_to_bgp_vrf.test_bgp_l3vpn_to_bgp_vrf/test_check_linux_mpls": Check function 'ltemplateVersionCheck('4.1', iproute2='4.9')' returned: Skipping tests, old iproute2 (4.3.0 < 4.9) s2018-10-08 10:23:31,172 INFO: assert skipped at "bgp_l3vpn_to_bgp_vrf.test_bgp_l3vpn_to_bgp_vrf/test_memory_leak": Memory leak test/report is disabled s****************************************************************************** Total 47 47 0 ****************************************************************************** 2018-10-08 10:23:31,173 INFO: stopping topology: bgp_l3vpn_to_bgp_vrf.test_bgp_l3vpn_to_bgp_vrf 2018-10-08 10:23:31,176 INFO: r4: stopping bgpd 2018-10-08 10:23:31,178 INFO: r4: stopping ldpd 2018-10-08 10:23:31,185 INFO: r4: stopping ospfd 2018-10-08 10:23:31,186 INFO: r4: stopping zebra 2018-10-08 10:23:31,194 INFO: r1: stopping bgpd 2018-10-08 10:23:31,197 INFO: r1: stopping ldpd 2018-10-08 10:23:31,199 INFO: r1: stopping ospfd 2018-10-08 10:23:31,201 INFO: r1: stopping zebra 2018-10-08 10:23:31,209 INFO: r2: stopping bgpd 2018-10-08 10:23:31,220 INFO: r2: stopping ldpd 2018-10-08 10:23:31,221 INFO: r2: stopping ospfd 2018-10-08 10:23:31,223 INFO: r2: stopping zebra 2018-10-08 10:23:31,229 INFO: r3: stopping bgpd 2018-10-08 10:23:31,230 INFO: r3: stopping ldpd 2018-10-08 10:23:31,233 INFO: r3: stopping ospfd 2018-10-08 10:23:31,235 INFO: r3: stopping zebra 2018-10-08 10:23:31,238 INFO: ce4: stopping bgpd 2018-10-08 10:23:31,239 INFO: ce4: stopping zebra 2018-10-08 10:23:31,242 INFO: ce3: stopping bgpd 2018-10-08 10:23:31,253 INFO: ce3: stopping zebra 2018-10-08 10:23:31,255 INFO: ce2: stopping bgpd 2018-10-08 10:23:31,257 INFO: ce2: stopping zebra 2018-10-08 10:23:31,266 INFO: ce1: stopping bgpd 2018-10-08 10:23:31,267 INFO: ce1: stopping zebra 2018-10-08 10:23:31,273 INFO: stopping "sw1" 2018-10-08 10:23:31,274 INFO: stopping "sw0" 2018-10-08 10:23:31,274 INFO: stopping "sw2" r4: bgpd crashed. Core file found - Backtrace follows: [New LWP 29595] [New LWP 29599] [New LWP 29600] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/lib/frr/bgpd'. Program terminated with signal SIGABRT, Aborted. #0 0x00007fc04182c428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 [Current thread is 1 (Thread 0x7fc04291e880 (LWP 29595))] #0 0x00007fc04182c428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 #1 0x00007fc04182e02a in __GI_abort () at abort.c:89 #2 0x00007fc04254bc8a in core_handler (signo=11, siginfo=0x7fff6763ff70, context=0x7fff6763fe40) at lib/sigevent.c:249 #3 #4 0x00005646811585d6 in sendmsg_zebra_rnh (bnc=0x5646853e5840, command=24) at bgp_nht.c:570 #5 0x00005646811587a1 in unregister_zebra_rnh (is_bgp_import_route=, bnc=0x5646853e5840) at bgp_nht.c:641 #6 bgp_unlink_nexthop_check (bnc=0x5646853e5840) at bgp_nht.c:97 #7 0x00005646811588d0 in bgp_unlink_nexthop_check (bnc=) at bgp_nht.c:116 #8 bgp_unlink_nexthop (path=path@entry=0x5646853e6d20) at bgp_nht.c:115 #9 0x0000564681109f00 in bgp_info_free (binfo=0x5646853e6d20) at bgp_route.c:211 #10 bgp_info_unlock (binfo=0x5646853e6d20) at bgp_route.c:236 #11 0x000056468110a009 in bgp_info_reap (rn=rn@entry=0x5646853e6c50, ri=0x5646853e6d20) at bgp_route.c:280 #12 0x000056468110a0e6 in bgp_clear_route_table (peer=peer@entry=0x564682c8bd50, afi=afi@entry=AFI_IP, safi=safi@entry=SAFI_UNICAST, table=, table@entry=0x0) at bgp_route.c:3879 #13 0x000056468110f2fb in bgp_clear_route (peer=peer@entry=0x564682c8bd50, afi=afi@entry=AFI_IP, safi=safi@entry=SAFI_UNICAST) at bgp_route.c:3927 #14 0x000056468110f4a0 in bgp_clear_route_all (peer=peer@entry=0x564682c8bd50) at bgp_route.c:3945 #15 0x00005646810fc888 in bgp_fsm_change_status (peer=peer@entry=0x564682c8bd50, status=status@entry=8) at bgp_fsm.c:924 #16 0x00005646810ee1bd in peer_delete (peer=0x564682c8bd50) at bgpd.c:2224 #17 0x00005646810f2f49 in bgp_delete (bgp=0x564682c8aad0) at bgpd.c:3314 #18 0x00005646810e6708 in bgp_exit (status=0) at bgp_main.c:185 #19 sigint () at bgp_main.c:151 #20 0x00007fc04254bd28 in quagga_sigevent_process () at lib/sigevent.c:103 #21 0x00007fc04255822d in thread_fetch (m=m@entry=0x56468254f630, fetch=fetch@entry=0x7fff676407f0) at lib/thread.c:1359 #22 0x00007fc0425340f3 in frr_run (master=0x56468254f630) at lib/libfrr.c:878 #23 0x00005646810e44be in main (argc=1, argv=0x7fff67640a48) at bgp_main.c:425 r3: bgpd crashed. Core file found - Backtrace follows: [New LWP 29785] [New LWP 29795] [New LWP 29796] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/lib/frr/bgpd'. Program terminated with signal SIGABRT, Aborted. #0 0x00007f0d1502f428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 [Current thread is 1 (Thread 0x7f0d16121880 (LWP 29785))] #0 0x00007f0d1502f428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 #1 0x00007f0d1503102a in __GI_abort () at abort.c:89 #2 0x00007f0d15d4ec8a in core_handler (signo=11, siginfo=0x7ffc44bf3a70, context=0x7ffc44bf3940) at lib/sigevent.c:249 #3 #4 0x000055d49df715d6 in sendmsg_zebra_rnh (bnc=0x55d4a2aac420, command=24) at bgp_nht.c:570 #5 0x000055d49df717a1 in unregister_zebra_rnh (is_bgp_import_route=, bnc=0x55d4a2aac420) at bgp_nht.c:641 #6 bgp_unlink_nexthop_check (bnc=0x55d4a2aac420) at bgp_nht.c:97 #7 0x000055d49df718d0 in bgp_unlink_nexthop_check (bnc=) at bgp_nht.c:116 #8 bgp_unlink_nexthop (path=path@entry=0x55d4a2ac1550) at bgp_nht.c:115 #9 0x000055d49df22f00 in bgp_info_free (binfo=0x55d4a2ac1550) at bgp_route.c:211 #10 bgp_info_unlock (binfo=0x55d4a2ac1550) at bgp_route.c:236 #11 0x000055d49df23009 in bgp_info_reap (rn=rn@entry=0x55d4a2ac1480, ri=0x55d4a2ac1550) at bgp_route.c:280 #12 0x000055d49df230e6 in bgp_clear_route_table (peer=peer@entry=0x55d4a0350670, afi=afi@entry=AFI_IP, safi=safi@entry=SAFI_UNICAST, table=, table@entry=0x0) at bgp_route.c:3879 #13 0x000055d49df282fb in bgp_clear_route (peer=peer@entry=0x55d4a0350670, afi=afi@entry=AFI_IP, safi=safi@entry=SAFI_UNICAST) at bgp_route.c:3927 #14 0x000055d49df284a0 in bgp_clear_route_all (peer=peer@entry=0x55d4a0350670) at bgp_route.c:3945 #15 0x000055d49df15888 in bgp_fsm_change_status (peer=peer@entry=0x55d4a0350670, status=status@entry=8) at bgp_fsm.c:924 #16 0x000055d49df071bd in peer_delete (peer=0x55d4a0350670) at bgpd.c:2224 #17 0x000055d49df0bf49 in bgp_delete (bgp=0x55d4a034f3f0) at bgpd.c:3314 #18 0x000055d49deff708 in bgp_exit (status=0) at bgp_main.c:185 #19 sigint () at bgp_main.c:151 #20 0x00007f0d15d4ed28 in quagga_sigevent_process () at lib/sigevent.c:103 #21 0x00007f0d15d5b22d in thread_fetch (m=m@entry=0x55d49fc6d630, fetch=fetch@entry=0x7ffc44bf42e0) at lib/thread.c:1359 #22 0x00007f0d15d370f3 in frr_run (master=0x55d49fc6d630) at lib/libfrr.c:878 #23 0x000055d49defd4be in main (argc=1, argv=0x7ffc44bf4538) at bgp_main.c:425 2018-10-08 10:23:32,129 INFO: stopping "sw1" 2018-10-08 10:23:32,129 INFO: stopping "sw0" 2018-10-08 10:23:32,129 INFO: stopping "sw2" ================================================================ 2 passed, 3 skipped in 74.58 seconds ================================================================= root@sc2-hs2-potdarp-dhcp-234:~/topotests/bgp_l3vpn_to_bgp_vrf#