summaryrefslogtreecommitdiff
path: root/tests/topotests/srv6_sid_manager/test_srv6_sid_manager.py
diff options
context:
space:
mode:
authorCarmine Scarpitta <cscarpit@cisco.com>2024-09-06 23:22:39 +0200
committerCarmine Scarpitta <cscarpit@cisco.com>2024-09-06 23:22:39 +0200
commiteea0da439d59c1ac03d9dc54ba0868f43e8558ef (patch)
treed85dd12a7ba21de3971595b30e9682bcf151d583 /tests/topotests/srv6_sid_manager/test_srv6_sid_manager.py
parent9edf6005f692b389b68c58a70ecff295a4cb1c41 (diff)
tests: SRv6 SID Manager build topology
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
Diffstat (limited to 'tests/topotests/srv6_sid_manager/test_srv6_sid_manager.py')
-rw-r--r--tests/topotests/srv6_sid_manager/test_srv6_sid_manager.py130
1 files changed, 130 insertions, 0 deletions
diff --git a/tests/topotests/srv6_sid_manager/test_srv6_sid_manager.py b/tests/topotests/srv6_sid_manager/test_srv6_sid_manager.py
index 886563cbb7..1e6a43195d 100644
--- a/tests/topotests/srv6_sid_manager/test_srv6_sid_manager.py
+++ b/tests/topotests/srv6_sid_manager/test_srv6_sid_manager.py
@@ -82,6 +82,136 @@ from lib.checkping import check_ping
pytestmark = [pytest.mark.isisd, pytest.mark.sharpd]
+def build_topo(tgen):
+ """Build function"""
+
+ # Define FRR Routers
+ tgen.add_router("rt1")
+ tgen.add_router("rt2")
+ tgen.add_router("rt3")
+ tgen.add_router("rt4")
+ tgen.add_router("rt5")
+ tgen.add_router("rt6")
+ tgen.add_router("dst")
+ tgen.add_router("ce1")
+ tgen.add_router("ce2")
+ tgen.add_router("ce3")
+ tgen.add_router("ce4")
+ tgen.add_router("ce5")
+ tgen.add_router("ce6")
+
+ # Define connections
+ switch = tgen.add_switch("s1")
+ switch.add_link(tgen.gears["rt1"], nodeif="eth-sw1")
+ switch.add_link(tgen.gears["rt2"], nodeif="eth-sw1")
+ switch.add_link(tgen.gears["rt3"], nodeif="eth-sw1")
+
+ switch = tgen.add_switch("s2")
+ switch.add_link(tgen.gears["rt2"], nodeif="eth-rt4-1")
+ switch.add_link(tgen.gears["rt4"], nodeif="eth-rt2-1")
+
+ switch = tgen.add_switch("s3")
+ switch.add_link(tgen.gears["rt2"], nodeif="eth-rt4-2")
+ switch.add_link(tgen.gears["rt4"], nodeif="eth-rt2-2")
+
+ switch = tgen.add_switch("s4")
+ switch.add_link(tgen.gears["rt3"], nodeif="eth-rt5-1")
+ switch.add_link(tgen.gears["rt5"], nodeif="eth-rt3-1")
+
+ switch = tgen.add_switch("s5")
+ switch.add_link(tgen.gears["rt3"], nodeif="eth-rt5-2")
+ switch.add_link(tgen.gears["rt5"], nodeif="eth-rt3-2")
+
+ switch = tgen.add_switch("s6")
+ switch.add_link(tgen.gears["rt4"], nodeif="eth-rt5")
+ switch.add_link(tgen.gears["rt5"], nodeif="eth-rt4")
+
+ switch = tgen.add_switch("s7")
+ switch.add_link(tgen.gears["rt4"], nodeif="eth-rt6")
+ switch.add_link(tgen.gears["rt6"], nodeif="eth-rt4")
+
+ switch = tgen.add_switch("s8")
+ switch.add_link(tgen.gears["rt5"], nodeif="eth-rt6")
+ switch.add_link(tgen.gears["rt6"], nodeif="eth-rt5")
+
+ switch = tgen.add_switch("s9")
+ switch.add_link(tgen.gears["rt6"], nodeif="eth-dst")
+ switch.add_link(tgen.gears["dst"], nodeif="eth-rt6")
+
+ tgen.add_link(tgen.gears["ce1"], tgen.gears["rt1"], "eth-rt1", "eth-ce1")
+ tgen.add_link(tgen.gears["ce2"], tgen.gears["rt6"], "eth-rt6", "eth-ce2")
+ tgen.add_link(tgen.gears["ce3"], tgen.gears["rt1"], "eth-rt1", "eth-ce3")
+ tgen.add_link(tgen.gears["ce4"], tgen.gears["rt6"], "eth-rt6", "eth-ce4")
+ tgen.add_link(tgen.gears["ce5"], tgen.gears["rt1"], "eth-rt1", "eth-ce5")
+ tgen.add_link(tgen.gears["ce6"], tgen.gears["rt6"], "eth-rt6", "eth-ce6")
+
+ tgen.gears["rt1"].run("ip link add vrf10 type vrf table 10")
+ tgen.gears["rt1"].run("ip link set vrf10 up")
+ tgen.gears["rt1"].run("ip link add vrf20 type vrf table 20")
+ tgen.gears["rt1"].run("ip link set vrf20 up")
+ tgen.gears["rt1"].run("ip link set eth-ce1 master vrf10")
+ tgen.gears["rt1"].run("ip link set eth-ce3 master vrf10")
+ tgen.gears["rt1"].run("ip link set eth-ce5 master vrf20")
+
+ tgen.gears["rt6"].run("ip link add vrf10 type vrf table 10")
+ tgen.gears["rt6"].run("ip link set vrf10 up")
+ tgen.gears["rt6"].run("ip link add vrf20 type vrf table 20")
+ tgen.gears["rt6"].run("ip link set vrf20 up")
+ tgen.gears["rt6"].run("ip link set eth-ce2 master vrf10")
+ tgen.gears["rt6"].run("ip link set eth-ce4 master vrf20")
+ tgen.gears["rt6"].run("ip link set eth-ce6 master vrf20")
+
+ # Add dummy interface for SRv6
+ create_interface_in_kernel(
+ tgen,
+ "rt1",
+ "sr0",
+ "2001:db8::1",
+ netmask="128",
+ create=True,
+ )
+ create_interface_in_kernel(
+ tgen,
+ "rt2",
+ "sr0",
+ "2001:db8::2",
+ netmask="128",
+ create=True,
+ )
+ create_interface_in_kernel(
+ tgen,
+ "rt3",
+ "sr0",
+ "2001:db8::3",
+ netmask="128",
+ create=True,
+ )
+ create_interface_in_kernel(
+ tgen,
+ "rt4",
+ "sr0",
+ "2001:db8::4",
+ netmask="128",
+ create=True,
+ )
+ create_interface_in_kernel(
+ tgen,
+ "rt5",
+ "sr0",
+ "2001:db8::5",
+ netmask="128",
+ create=True,
+ )
+ create_interface_in_kernel(
+ tgen,
+ "rt6",
+ "sr0",
+ "2001:db8::6",
+ netmask="128",
+ create=True,
+ )
+
+
if __name__ == "__main__":
args = ["-s"] + sys.argv[1:]
sys.exit(pytest.main(args))