mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-06-02 14:40:53 +00:00
tests: SRv6 SID Manager build topology
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
This commit is contained in:
parent
9edf6005f6
commit
eea0da439d
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user