]> git.puffer.fish Git - mirror/frr.git/commitdiff
tests: Modify bgp_rr_ibgp to test RR server correctness 6104/head
authorDonald Sharp <sharpd@cumulusnetworks.com>
Sat, 28 Mar 2020 17:56:42 +0000 (13:56 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Sat, 28 Mar 2020 18:06:18 +0000 (14:06 -0400)
Fixup this basically unused test to ensure that a RR server
passes the nexthop through correctly.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
13 files changed:
tests/topotests/bgp_rr_ibgp/spine1/show_ip_route.json_ref
tests/topotests/bgp_rr_ibgp/spine2/bgpd.conf [deleted file]
tests/topotests/bgp_rr_ibgp/spine2/show_ip_route.json_ref [deleted file]
tests/topotests/bgp_rr_ibgp/spine2/staticd.conf [deleted file]
tests/topotests/bgp_rr_ibgp/spine2/zebra.conf [deleted file]
tests/topotests/bgp_rr_ibgp/test_bgp_rr_ibgp_topo1.py
tests/topotests/bgp_rr_ibgp/tor1/bgpd.conf
tests/topotests/bgp_rr_ibgp/tor1/show_ip_route.json_ref
tests/topotests/bgp_rr_ibgp/tor1/zebra.conf
tests/topotests/bgp_rr_ibgp/tor2/bgpd.conf
tests/topotests/bgp_rr_ibgp/tor2/show_ip_route.json_ref
tests/topotests/bgp_rr_ibgp/tor2/zebra.conf
tests/topotests/pytest.ini

index 552e96ddb9a52c9023b945fbfb25db303bbfd261..75ce1b149e1d4e50b090d21d8d7f0a518bc15968 100644 (file)
       "table":254,
       "internalStatus":16,
       "internalFlags":13,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "ip":"192.168.2.1",
           "afi":"ipv4",
-          "interfaceIndex":2,
           "interfaceName":"spine1-eth0",
           "active":true
         }
       "table":254,
       "internalStatus":16,
       "internalFlags":8,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "directlyConnected":true,
-          "interfaceIndex":2,
           "interfaceName":"spine1-eth0",
           "active":true
         }
       "table":254,
       "internalStatus":16,
       "internalFlags":13,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "ip":"192.168.4.2",
           "afi":"ipv4",
-          "interfaceIndex":3,
           "interfaceName":"spine1-eth1",
           "active":true
         }
       "table":254,
       "internalStatus":16,
       "internalFlags":8,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "directlyConnected":true,
-          "interfaceIndex":3,
           "interfaceName":"spine1-eth1",
           "active":true
         }
       ]
     }
   ],
-  "192.168.5.0\/24":[
+  "192.168.5.1\/32":[
     {
-      "prefix":"192.168.5.0\/24",
+      "prefix":"192.168.5.1\/32",
       "protocol":"bgp",
       "selected":true,
       "destSelected":true,
       "table":254,
       "internalStatus":16,
       "internalFlags":13,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "ip":"192.168.2.1",
           "afi":"ipv4",
-          "interfaceIndex":2,
           "interfaceName":"spine1-eth0",
           "active":true
         }
       ]
     }
   ],
-  "192.168.6.0\/24":[
+  "192.168.6.2\/32":[
     {
-      "prefix":"192.168.6.0\/24",
+      "prefix":"192.168.6.2\/32",
       "protocol":"bgp",
       "selected":true,
       "destSelected":true,
       "table":254,
       "internalStatus":16,
       "internalFlags":13,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "ip":"192.168.4.2",
           "afi":"ipv4",
-          "interfaceIndex":3,
           "interfaceName":"spine1-eth1",
           "active":true
         }
       ]
     }
   ]
-}
+}
\ No newline at end of file
diff --git a/tests/topotests/bgp_rr_ibgp/spine2/bgpd.conf b/tests/topotests/bgp_rr_ibgp/spine2/bgpd.conf
deleted file mode 100644 (file)
index a865b38..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-hostname spine2
-router bgp 99
-  neighbor 192.168.5.1 remote-as internal
-  neighbor 192.168.6.2 remote-as internal
-  address-family ipv4 uni
-       redistribute connected
-       neighbor 192.168.5.1 route-reflector-client
-       neighbor 192.168.6.2 route-reflector-client
diff --git a/tests/topotests/bgp_rr_ibgp/spine2/show_ip_route.json_ref b/tests/topotests/bgp_rr_ibgp/spine2/show_ip_route.json_ref
deleted file mode 100644 (file)
index c428a88..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-{
-  "192.168.1.0\/24":[
-    {
-      "prefix":"192.168.1.0\/24",
-      "protocol":"bgp",
-      "selected":true,
-      "destSelected":true,
-      "distance":200,
-      "metric":0,
-      "installed":true,
-      "table":254,
-      "internalStatus":16,
-      "internalFlags":13,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
-      "nexthops":[
-        {
-          "flags":3,
-          "fib":true,
-          "ip":"192.168.5.1",
-          "afi":"ipv4",
-          "interfaceIndex":2,
-          "interfaceName":"spine2-eth0",
-          "active":true
-        }
-      ]
-    }
-  ],
-  "192.168.2.0\/24":[
-    {
-      "prefix":"192.168.2.0\/24",
-      "protocol":"bgp",
-      "selected":true,
-      "destSelected":true,
-      "distance":200,
-      "metric":0,
-      "installed":true,
-      "table":254,
-      "internalStatus":16,
-      "internalFlags":13,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
-      "nexthops":[
-        {
-          "flags":3,
-          "fib":true,
-          "ip":"192.168.5.1",
-          "afi":"ipv4",
-          "interfaceIndex":2,
-          "interfaceName":"spine2-eth0",
-          "active":true
-        }
-      ]
-    }
-  ],
-  "192.168.3.0\/24":[
-    {
-      "prefix":"192.168.3.0\/24",
-      "protocol":"bgp",
-      "selected":true,
-      "destSelected":true,
-      "distance":200,
-      "metric":0,
-      "installed":true,
-      "table":254,
-      "internalStatus":16,
-      "internalFlags":13,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
-      "nexthops":[
-        {
-          "flags":3,
-          "fib":true,
-          "ip":"192.168.6.2",
-          "afi":"ipv4",
-          "interfaceIndex":3,
-          "interfaceName":"spine2-eth1",
-          "active":true
-        }
-      ]
-    }
-  ],
-  "192.168.4.0\/24":[
-    {
-      "prefix":"192.168.4.0\/24",
-      "protocol":"bgp",
-      "selected":true,
-      "destSelected":true,
-      "distance":200,
-      "metric":0,
-      "installed":true,
-      "table":254,
-      "internalStatus":16,
-      "internalFlags":13,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
-      "nexthops":[
-        {
-          "flags":3,
-          "fib":true,
-          "ip":"192.168.6.2",
-          "afi":"ipv4",
-          "interfaceIndex":3,
-          "interfaceName":"spine2-eth1",
-          "active":true
-        }
-      ]
-    }
-  ],
-  "192.168.5.0\/24":[
-    {
-      "prefix":"192.168.5.0\/24",
-      "protocol":"connected",
-      "selected":true,
-      "destSelected":true,
-      "distance":0,
-      "metric":0,
-      "installed":true,
-      "table":254,
-      "internalStatus":16,
-      "internalFlags":8,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
-      "nexthops":[
-        {
-          "flags":3,
-          "fib":true,
-          "directlyConnected":true,
-          "interfaceIndex":2,
-          "interfaceName":"spine2-eth0",
-          "active":true
-        }
-      ]
-    }
-  ],
-  "192.168.6.0\/24":[
-    {
-      "prefix":"192.168.6.0\/24",
-      "protocol":"connected",
-      "selected":true,
-      "destSelected":true,
-      "distance":0,
-      "metric":0,
-      "installed":true,
-      "table":254,
-      "internalStatus":16,
-      "internalFlags":8,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
-      "nexthops":[
-        {
-          "flags":3,
-          "fib":true,
-          "directlyConnected":true,
-          "interfaceIndex":3,
-          "interfaceName":"spine2-eth1",
-          "active":true
-        }
-      ]
-    }
-  ]
-}
diff --git a/tests/topotests/bgp_rr_ibgp/spine2/staticd.conf b/tests/topotests/bgp_rr_ibgp/spine2/staticd.conf
deleted file mode 100644 (file)
index 3ee14d2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-hostname spine2
diff --git a/tests/topotests/bgp_rr_ibgp/spine2/zebra.conf b/tests/topotests/bgp_rr_ibgp/spine2/zebra.conf
deleted file mode 100644 (file)
index a06681f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-hostname spine2
-ip forwarding
-ipv6 forwarding
-
-int spine2-eth0
-  ip addr 192.168.5.4/24
-
-int spine2-eth1
-  ip addr 192.168.6.4/24
index c28394a7a79febfff6779b18304033044ba52785..c7daa06b76d92ccda1ed0390812c9c413ceca8ae 100755 (executable)
 """
 test_bgp_rr_ibgp_topo1.py: Testing IBGP with RR and no IGP
 
-
-    In a leaf/spine topology with only IBGP connections, where
-    the same network is being redistributed at multiple points
-    in the network ( say a redistribute connected at both leaf and spines )
-    we end up in a state where zebra gets very confused.
-
-    eva# show ip route
-    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, f - OpenFabric,
-           > - selected route, * - FIB route, q - queued route, r - rejected route
-    
-    C>* 192.168.1.0/24 is directly connected, tor1-eth0, 00:00:30
-    C>* 192.168.2.0/24 is directly connected, tor1-eth1, 00:00:30
-    B   192.168.3.0/24 [200/0] via 192.168.4.2 inactive, 00:00:25
-                               via 192.168.6.2 inactive, 00:00:25
-    B>* 192.168.4.0/24 [200/0] via 192.168.2.3, tor1-eth1, 00:00:25
-      *                        via 192.168.6.2 inactive, 00:00:25
-    C>* 192.168.5.0/24 is directly connected, tor1-eth2, 00:00:30
-    B>* 192.168.6.0/24 [200/0] via 192.168.4.2 inactive, 00:00:25
-      *                        via 192.168.5.4, tor1-eth2, 00:00:25
-
-    Effectively we have ibgp routes recursing through ibgp routes
-    and there is no metric to discern whom to listen to.
-    
-    This draft:
-    https://tools.ietf.org/html/draft-ietf-idr-bgp-optimal-route-reflection-19
-    
-    appears to address this issue.  From looking at both cisco and arista
-    deployments they are handling this issue by having the route reflector
-    prefer the localy learned routes over from their clients.
-    
-    Add this topology, in a broken state, so that when we do fix this issue
-    it is a simple matter of touching this topology up and re-adding it
-    to the normal daily builds.  I also wanted to add this topology
-    since it is in a state of `doneness` and I wanted to move onto
-    my normal day job without having to remember about this test.
-    
-    This topology is not configured to be run as part of the normal
-    topotests.
+Ensure that a basic rr topology comes up and correctly passes
+routes around
 
 """
 
@@ -105,7 +66,6 @@ class NetworkTopo(Topo):
         tgen.add_router('tor1')
         tgen.add_router('tor2')
         tgen.add_router('spine1')
-        tgen.add_router('spine2')
 
         # First switch is for a dummy interface (for local network)
         # on tor1
@@ -128,15 +88,6 @@ class NetworkTopo(Topo):
         switch.add_link(tgen.gears['tor2'])
         switch.add_link(tgen.gears['spine1'])
 
-       # 192.168.5.0/24 - tor1 <-> spine2 connection
-        switch = tgen.add_switch('sw5')
-        switch.add_link(tgen.gears['tor1'])
-        switch.add_link(tgen.gears['spine2'])
-
-       # 192.168.6.0/24 - tor2 <-> spine2 connection
-        switch = tgen.add_switch('sw6')
-        switch.add_link(tgen.gears['tor2'])
-        switch.add_link(tgen.gears['spine2'])
 
 #####################################################
 ##
index 44a78dffd706d722141c5a92615a6366453c07ff..e8ec0f76807fa57a9e57cd7b1d105b04d0bc8553 100644 (file)
@@ -1,5 +1,4 @@
 hostname tor1
 router bgp 99
   neighbor 192.168.2.3 remote-as internal
-  neighbor 192.168.5.4 remote-as internal
   redistribute connected
index 223dcebbcaaded4b81fd78acca71eb5371096ede..6cfa02441f924b5dbf33d4c1316b73c6eea56a11 100644 (file)
       "table":254,
       "internalStatus":16,
       "internalFlags":8,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "directlyConnected":true,
-          "interfaceIndex":2,
           "interfaceName":"tor1-eth0",
           "active":true
         }
       "table":254,
       "internalStatus":16,
       "internalFlags":8,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "directlyConnected":true,
-          "interfaceIndex":3,
           "interfaceName":"tor1-eth1",
           "active":true
         }
     {
       "prefix":"192.168.3.0\/24",
       "protocol":"bgp",
+      "selected":true,
+      "destSelected":true,
       "distance":200,
       "metric":0,
+      "installed":true,
       "table":254,
-      "internalStatus":0,
-      "internalFlags":5,
-      "internalNextHopNum":2,
-      "internalNextHopActiveNum":0,
+      "internalStatus":16,
+      "internalFlags":13,
       "nexthops":[
         {
-          "flags":0,
+          "flags":5,
           "ip":"192.168.4.2",
-          "afi":"ipv4"
+          "afi":"ipv4",
+          "active":true,
+          "recursive":true
         },
         {
-          "flags":0,
-          "ip":"192.168.6.2",
-          "afi":"ipv4"
+          "flags":3,
+          "fib":true,
+          "ip":"192.168.2.3",
+          "afi":"ipv4",
+          "interfaceName":"tor1-eth1",
+          "active":true
         }
       ]
     }
       "table":254,
       "internalStatus":16,
       "internalFlags":13,
-      "internalNextHopNum":2,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "ip":"192.168.2.3",
           "afi":"ipv4",
-          "interfaceIndex":3,
           "interfaceName":"tor1-eth1",
           "active":true
-        },
-        {
-          "flags":0,
-          "ip":"192.168.6.2",
-          "afi":"ipv4"
         }
       ]
     }
   ],
-  "192.168.5.0\/24":[
+  "192.168.5.1\/32":[
     {
-      "prefix":"192.168.5.0\/24",
+      "prefix":"192.168.5.1\/32",
       "protocol":"connected",
       "selected":true,
       "destSelected":true,
       "table":254,
       "internalStatus":16,
       "internalFlags":8,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "directlyConnected":true,
-          "interfaceIndex":4,
-          "interfaceName":"tor1-eth2",
+          "interfaceName":"lo",
           "active":true
         }
       ]
     }
   ],
-  "192.168.6.0\/24":[
+  "192.168.6.2\/32":[
     {
-      "prefix":"192.168.6.0\/24",
+      "prefix":"192.168.6.2\/32",
       "protocol":"bgp",
       "selected":true,
       "destSelected":true,
       "table":254,
       "internalStatus":16,
       "internalFlags":13,
-      "internalNextHopNum":2,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
-          "flags":0,
+          "flags":5,
           "ip":"192.168.4.2",
-          "afi":"ipv4"
+          "afi":"ipv4",
+          "active":true,
+          "recursive":true
         },
         {
           "flags":3,
           "fib":true,
-          "ip":"192.168.5.4",
+          "ip":"192.168.2.3",
           "afi":"ipv4",
-          "interfaceIndex":4,
-          "interfaceName":"tor1-eth2",
+          "interfaceName":"tor1-eth1",
           "active":true
         }
       ]
index f2fa713507297880b655e23e82b1deed245e303f..25b4fcfd0fec8ba1f0788400b8b6aab238e15aa9 100644 (file)
@@ -8,5 +8,5 @@ int tor1-eth0
 int tor1-eth1
   ip addr 192.168.2.1/24
 
-int tor1-eth2
-  ip addr 192.168.5.1/24
+int lo
+  ip addr 192.168.5.1/32
index 5ef1de260e3608d541fb5a91b33fe713398820ba..b091c97ac34ef935b9dcbac181aadb3f0428e365 100644 (file)
@@ -1,5 +1,4 @@
 hostname tor2
 router bgp 99
   neighbor 192.168.4.3 remote-as internal
-  neighbor 192.168.6.4 remote-as internal
   redistribute connected
index 5f041b8c62a5dcca73f84e9a1c98a7da1dab9104..d9e9290e61e2a61b81c1f86007fe63c685c61811 100644 (file)
@@ -3,23 +3,29 @@
     {
       "prefix":"192.168.1.0\/24",
       "protocol":"bgp",
+      "selected":true,
+      "destSelected":true,
       "distance":200,
       "metric":0,
+      "installed":true,
       "table":254,
-      "internalStatus":0,
-      "internalFlags":5,
-      "internalNextHopNum":2,
-      "internalNextHopActiveNum":0,
+      "internalStatus":16,
+      "internalFlags":13,
       "nexthops":[
         {
-          "flags":0,
+          "flags":5,
           "ip":"192.168.2.1",
-          "afi":"ipv4"
+          "afi":"ipv4",
+          "active":true,
+          "recursive":true
         },
         {
-          "flags":0,
-          "ip":"192.168.5.1",
-          "afi":"ipv4"
+          "flags":3,
+          "fib":true,
+          "ip":"192.168.4.3",
+          "afi":"ipv4",
+          "interfaceName":"tor2-eth1",
+          "active":true
         }
       ]
     }
       "table":254,
       "internalStatus":16,
       "internalFlags":13,
-      "internalNextHopNum":2,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "ip":"192.168.4.3",
           "afi":"ipv4",
-          "interfaceIndex":3,
           "interfaceName":"tor2-eth1",
           "active":true
-        },
-        {
-          "flags":0,
-          "ip":"192.168.5.1",
-          "afi":"ipv4"
         }
       ]
     }
       "table":254,
       "internalStatus":16,
       "internalFlags":8,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "directlyConnected":true,
-          "interfaceIndex":2,
           "interfaceName":"tor2-eth0",
           "active":true
         }
       "table":254,
       "internalStatus":16,
       "internalFlags":8,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "directlyConnected":true,
-          "interfaceIndex":3,
           "interfaceName":"tor2-eth1",
           "active":true
         }
       ]
     }
   ],
-  "192.168.5.0\/24":[
+  "192.168.5.1\/32":[
     {
-      "prefix":"192.168.5.0\/24",
+      "prefix":"192.168.5.1\/32",
       "protocol":"bgp",
       "selected":true,
       "destSelected":true,
       "table":254,
       "internalStatus":16,
       "internalFlags":13,
-      "internalNextHopNum":2,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
-          "flags":0,
+          "flags":5,
           "ip":"192.168.2.1",
-          "afi":"ipv4"
+          "afi":"ipv4",
+          "active":true,
+          "recursive":true
         },
         {
           "flags":3,
           "fib":true,
-          "ip":"192.168.6.4",
+          "ip":"192.168.4.3",
           "afi":"ipv4",
-          "interfaceIndex":4,
-          "interfaceName":"tor2-eth2",
+          "interfaceName":"tor2-eth1",
           "active":true
         }
       ]
     }
   ],
-  "192.168.6.0\/24":[
+  "192.168.6.2\/32":[
     {
-      "prefix":"192.168.6.0\/24",
+      "prefix":"192.168.6.2\/32",
       "protocol":"connected",
       "selected":true,
       "destSelected":true,
       "table":254,
       "internalStatus":16,
       "internalFlags":8,
-      "internalNextHopNum":1,
-      "internalNextHopActiveNum":1,
       "nexthops":[
         {
           "flags":3,
           "fib":true,
           "directlyConnected":true,
-          "interfaceIndex":4,
-          "interfaceName":"tor2-eth2",
+          "interfaceName":"lo",
           "active":true
         }
       ]
index 3318cbb196cf2b20d6d7090c37f0b6ce77ea22e2..e1a06b14fc320d6e32060abac18dd3e6f3406b01 100644 (file)
@@ -9,5 +9,5 @@ int tor2-eth1
   ip addr 192.168.4.2/24
 
 
-int tor2-eth2
-  ip addr 192.168.6.2/24
+int lo
+  ip addr 192.168.6.2/32
index 62c825341f03b6df7a938e99a08eebbb396ee9a4..ade5bfd5010d661252620b87db3bfe32ee14064f 100644 (file)
@@ -1,6 +1,6 @@
 # Skip pytests example directory
 [pytest]
-norecursedirs = .git example-test example-topojson-test lib docker bgp_rr_ibgp
+norecursedirs = .git example-test example-topojson-test lib docker
 
 [topogen]
 # Default configuration values