summaryrefslogtreecommitdiff
path: root/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py')
-rw-r--r--tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py71
1 files changed, 33 insertions, 38 deletions
diff --git a/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py b/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py
index 708464864a..56a98c1ef8 100644
--- a/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py
+++ b/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py
@@ -35,7 +35,7 @@ import pytest
import functools
CWD = os.path.dirname(os.path.realpath(__file__))
-sys.path.append(os.path.join(CWD, '../'))
+sys.path.append(os.path.join(CWD, "../"))
# pylint: disable=C0413
from lib import topotest
@@ -43,20 +43,22 @@ from lib.topogen import Topogen, TopoRouter, get_topogen
from lib.topolog import logger
from mininet.topo import Topo
+
class TemplateTopo(Topo):
def build(self, *_args, **_opts):
tgen = get_topogen(self)
for routern in range(1, 4):
- tgen.add_router('r{}'.format(routern))
+ tgen.add_router("r{}".format(routern))
+
+ switch = tgen.add_switch("s1")
+ switch.add_link(tgen.gears["r1"])
+ switch.add_link(tgen.gears["r2"])
- switch = tgen.add_switch('s1')
- switch.add_link(tgen.gears['r1'])
- switch.add_link(tgen.gears['r2'])
+ switch = tgen.add_switch("s2")
+ switch.add_link(tgen.gears["r2"])
+ switch.add_link(tgen.gears["r3"])
- switch = tgen.add_switch('s2')
- switch.add_link(tgen.gears['r2'])
- switch.add_link(tgen.gears['r3'])
def setup_module(mod):
tgen = Topogen(TemplateTopo, mod.__name__)
@@ -66,38 +68,34 @@ def setup_module(mod):
for i, (rname, router) in enumerate(router_list.iteritems(), 1):
router.load_config(
- TopoRouter.RD_ZEBRA,
- os.path.join(CWD, '{}/zebra.conf'.format(rname))
+ TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))
)
router.load_config(
- TopoRouter.RD_BGP,
- os.path.join(CWD, '{}/bgpd.conf'.format(rname))
+ TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname))
)
tgen.start_router()
+
def teardown_module(mod):
tgen = get_topogen()
tgen.stop_topology()
+
def test_bgp_sender_as_path_loop_detection():
tgen = get_topogen()
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
- router = tgen.gears['r2']
+ router = tgen.gears["r2"]
def _bgp_converge(router):
output = json.loads(router.vtysh_cmd("show ip bgp neighbor 192.168.255.2 json"))
expected = {
- '192.168.255.2': {
- 'bgpState': 'Established',
- 'addressFamilyInfo': {
- 'ipv4Unicast': {
- 'acceptedPrefixCounter': 2
- }
- }
+ "192.168.255.2": {
+ "bgpState": "Established",
+ "addressFamilyInfo": {"ipv4Unicast": {"acceptedPrefixCounter": 2}},
}
}
return topotest.json_cmp(output, expected)
@@ -105,19 +103,11 @@ def test_bgp_sender_as_path_loop_detection():
def _bgp_has_route_from_r1(router):
output = json.loads(router.vtysh_cmd("show ip bgp 172.16.255.254/32 json"))
expected = {
- 'paths': [
+ "paths": [
{
- 'aspath': {
- 'segments': [
- {
- 'type': 'as-sequence',
- 'list': [
- 65001,
- 65003
- ]
- }
- ],
- 'length': 2
+ "aspath": {
+ "segments": [{"type": "as-sequence", "list": [65001, 65003]}],
+ "length": 2,
}
}
]
@@ -125,10 +115,12 @@ def test_bgp_sender_as_path_loop_detection():
return topotest.json_cmp(output, expected)
def _bgp_suppress_route_to_r3(router):
- output = json.loads(router.vtysh_cmd("show ip bgp neighbor 192.168.254.2 advertised-routes json"))
- expected = {
- 'totalPrefixCounter': 0
- }
+ output = json.loads(
+ router.vtysh_cmd(
+ "show ip bgp neighbor 192.168.254.2 advertised-routes json"
+ )
+ )
+ expected = {"totalPrefixCounter": 0}
return topotest.json_cmp(output, expected)
test_func = functools.partial(_bgp_converge, router)
@@ -144,8 +136,11 @@ def test_bgp_sender_as_path_loop_detection():
test_func = functools.partial(_bgp_suppress_route_to_r3, router)
success, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
- assert result is None, 'Route 172.16.255.254/32 should not be sent to r3 "{}"'.format(router)
+ assert (
+ result is None
+ ), 'Route 172.16.255.254/32 should not be sent to r3 "{}"'.format(router)
+
-if __name__ == '__main__':
+if __name__ == "__main__":
args = ["-s"] + sys.argv[1:]
sys.exit(pytest.main(args))