frr/tests/topotests/bgp_ecmp_topo1/peer9/exa-send.py
Daniel Baumann 3124f89aed
Adding upstream version 10.1.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-02-05 10:03:58 +01:00

66 lines
1.9 KiB
Python
Executable file

#!/usr/bin/env python3
"""
exa-send.py: Send a few testroutes with ExaBGP
"""
from sys import stdout, argv
from time import sleep
sleep(5)
# 1st arg is peer number
# 2nd arg is number of routes to send
peer = int(argv[1])
numRoutes = int(argv[2])
if peer <= 10:
asnum = 99
else:
asnum = peer + 100
# Announce numRoutes equal routes per PE - different neighbor AS
for i in range(0, numRoutes):
stdout.write(
"announce route 10.201.%s.0/24 med 100 next-hop 10.0.%i.%i origin igp\n"
% (i, (((peer - 1) / 5) + 1), peer + 100)
)
stdout.flush()
# Announce numRoutes equal routes per PE - different neighbor AS, but same source AS
for i in range(0, numRoutes):
stdout.write(
"announce route 10.202.%s.0/24 med 100 next-hop 10.0.%i.%i origin igp as-path [ %i 200 ]\n"
% (i, (((peer - 1) / 5) + 1), peer + 100, asnum)
)
stdout.flush()
# Announce numRoutes equal routes with different med per PE and different neighbor AS
for i in range(0, numRoutes):
stdout.write(
"announce route 10.203.%s.0/24 med %i next-hop 10.0.%i.%i origin igp\n"
% (i, peer, (((peer - 1) / 5) + 1), peer + 100)
)
stdout.flush()
# Announce numRoutes equal routes with different med per PE and different neighbor AS, but same source AS
for i in range(0, numRoutes):
stdout.write(
"announce route 10.204.%s.0/24 med %i next-hop 10.0.%i.%i origin igp as-path [ %i 200 ]\n"
% (i, peer, (((peer - 1) / 5) + 1), peer + 100, asnum)
)
stdout.flush()
# Announce 2 different route per peer
stdout.write(
"announce route 10.205.%i.0/24 next-hop 10.0.%i.%i origin igp\n"
% (peer, (((peer - 1) / 5) + 1), peer + 100)
)
stdout.write(
"announce route 10.206.%i.0/24 next-hop 10.0.%i.%i origin igp as-path [ %i 200 ]\n"
% (peer, (((peer - 1) / 5) + 1), peer + 100, asnum)
)
stdout.flush()
# Loop endlessly to allow ExaBGP to continue running
while True:
sleep(1)