summaryrefslogtreecommitdiff
path: root/tests/topotests/bgp_features/test_bgp_features.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/topotests/bgp_features/test_bgp_features.py')
-rw-r--r--tests/topotests/bgp_features/test_bgp_features.py78
1 files changed, 43 insertions, 35 deletions
diff --git a/tests/topotests/bgp_features/test_bgp_features.py b/tests/topotests/bgp_features/test_bgp_features.py
index 54f61f92e5..f2e09fb010 100644
--- a/tests/topotests/bgp_features/test_bgp_features.py
+++ b/tests/topotests/bgp_features/test_bgp_features.py
@@ -56,40 +56,48 @@ pytestmark = [pytest.mark.bgpd, pytest.mark.ospfd]
#####################################################
-class BGPFeaturesTopo1(Topo):
- "BGP Features Topology 1"
-
- def build(self, **_opts):
- tgen = get_topogen(self)
-
- # Create the routers
- for rtrNum in range(1, 6):
- tgen.add_router("r{}".format(rtrNum))
-
- # Setup Switches and connections
- for swNum in range(1, 11):
- tgen.add_switch("sw{}".format(swNum))
-
- # Add connections to stub switches
- tgen.gears["r1"].add_link(tgen.gears["sw6"])
- tgen.gears["r2"].add_link(tgen.gears["sw7"])
- tgen.gears["r3"].add_link(tgen.gears["sw8"])
- tgen.gears["r4"].add_link(tgen.gears["sw9"])
- tgen.gears["r5"].add_link(tgen.gears["sw10"])
-
- # Add connections to R1-R2-R3 core
- tgen.gears["r1"].add_link(tgen.gears["sw1"])
- tgen.gears["r1"].add_link(tgen.gears["sw3"])
- tgen.gears["r2"].add_link(tgen.gears["sw1"])
- tgen.gears["r2"].add_link(tgen.gears["sw2"])
- tgen.gears["r3"].add_link(tgen.gears["sw2"])
- tgen.gears["r3"].add_link(tgen.gears["sw3"])
-
- # Add connections to external R4/R5 Routers
- tgen.gears["r1"].add_link(tgen.gears["sw4"])
- tgen.gears["r4"].add_link(tgen.gears["sw4"])
- tgen.gears["r2"].add_link(tgen.gears["sw5"])
- tgen.gears["r5"].add_link(tgen.gears["sw5"])
+def build_topo(tgen):
+ for rtrNum in range(1, 6):
+ tgen.add_router("r{}".format(rtrNum))
+
+ # create ExaBGP peers
+ for peer_num in range(1, 5):
+ tgen.add_exabgp_peer(
+ "peer{}".format(peer_num),
+ ip="192.168.101.{}".format(peer_num + 2),
+ defaultRoute="via 192.168.101.1",
+ )
+
+ # Setup Switches and connections
+ for swNum in range(1, 11):
+ tgen.add_switch("sw{}".format(swNum))
+
+ # Add connections to stub switches
+ tgen.gears["r1"].add_link(tgen.gears["sw6"])
+ tgen.gears["r2"].add_link(tgen.gears["sw7"])
+ tgen.gears["r3"].add_link(tgen.gears["sw8"])
+ tgen.gears["r4"].add_link(tgen.gears["sw9"])
+ tgen.gears["r5"].add_link(tgen.gears["sw10"])
+
+ # Add connections to R1-R2-R3 core
+ tgen.gears["r1"].add_link(tgen.gears["sw1"])
+ tgen.gears["r1"].add_link(tgen.gears["sw3"])
+ tgen.gears["r2"].add_link(tgen.gears["sw1"])
+ tgen.gears["r2"].add_link(tgen.gears["sw2"])
+ tgen.gears["r3"].add_link(tgen.gears["sw2"])
+ tgen.gears["r3"].add_link(tgen.gears["sw3"])
+
+ # Add connections to external R4/R5 Routers
+ tgen.gears["r1"].add_link(tgen.gears["sw4"])
+ tgen.gears["r4"].add_link(tgen.gears["sw4"])
+ tgen.gears["r2"].add_link(tgen.gears["sw5"])
+ tgen.gears["r5"].add_link(tgen.gears["sw5"])
+
+ # Add ExaBGP peers to sw4
+ tgen.gears["peer1"].add_link(tgen.gears["sw4"])
+ tgen.gears["peer2"].add_link(tgen.gears["sw4"])
+ tgen.gears["peer3"].add_link(tgen.gears["sw4"])
+ tgen.gears["peer4"].add_link(tgen.gears["sw4"])
#####################################################
@@ -100,7 +108,7 @@ class BGPFeaturesTopo1(Topo):
def setup_module(module):
- tgen = Topogen(BGPFeaturesTopo1, module.__name__)
+ tgen = Topogen(build_topo, module.__name__)
tgen.start_topology()
# Starting Routers