summaryrefslogtreecommitdiffstats
path: root/tests/topotests/bgp_set_aspath_exclude
diff options
context:
space:
mode:
Diffstat (limited to 'tests/topotests/bgp_set_aspath_exclude')
-rw-r--r--tests/topotests/bgp_set_aspath_exclude/r1/bgpd.conf9
-rw-r--r--tests/topotests/bgp_set_aspath_exclude/r3/zebra.conf1
-rw-r--r--tests/topotests/bgp_set_aspath_exclude/test_bgp_set_aspath_exclude.py70
3 files changed, 67 insertions, 13 deletions
diff --git a/tests/topotests/bgp_set_aspath_exclude/r1/bgpd.conf b/tests/topotests/bgp_set_aspath_exclude/r1/bgpd.conf
index 9bef24f..c70b493 100644
--- a/tests/topotests/bgp_set_aspath_exclude/r1/bgpd.conf
+++ b/tests/topotests/bgp_set_aspath_exclude/r1/bgpd.conf
@@ -8,10 +8,19 @@ router bgp 65001
exit-address-family
!
ip prefix-list p1 seq 5 permit 172.16.255.31/32
+ip prefix-list p2 seq 5 permit 172.16.255.32/32
+ip prefix-list p3 seq 5 permit 172.16.255.30/32
!
+bgp as-path access-list FIRST permit ^65
+bgp as-path access-list SECOND permit 2$
+
+route-map r2 permit 6
+ match ip address prefix-list p2
+ set as-path exclude as-path-access-list SECOND
route-map r2 permit 10
match ip address prefix-list p1
set as-path exclude 65003
route-map r2 permit 20
+ match ip address prefix-list p3
set as-path exclude all
!
diff --git a/tests/topotests/bgp_set_aspath_exclude/r3/zebra.conf b/tests/topotests/bgp_set_aspath_exclude/r3/zebra.conf
index 3fa6c64..5689315 100644
--- a/tests/topotests/bgp_set_aspath_exclude/r3/zebra.conf
+++ b/tests/topotests/bgp_set_aspath_exclude/r3/zebra.conf
@@ -1,5 +1,6 @@
!
int lo
+ ip address 172.16.255.30/32
ip address 172.16.255.31/32
ip address 172.16.255.32/32
!
diff --git a/tests/topotests/bgp_set_aspath_exclude/test_bgp_set_aspath_exclude.py b/tests/topotests/bgp_set_aspath_exclude/test_bgp_set_aspath_exclude.py
index d373a74..85e7b96 100644
--- a/tests/topotests/bgp_set_aspath_exclude/test_bgp_set_aspath_exclude.py
+++ b/tests/topotests/bgp_set_aspath_exclude/test_bgp_set_aspath_exclude.py
@@ -64,29 +64,33 @@ def teardown_module(mod):
expected_1 = {
"routes": {
+ "172.16.255.30/32": [{"path": ""}],
"172.16.255.31/32": [{"path": "65002"}],
- "172.16.255.32/32": [{"path": ""}],
+ "172.16.255.32/32": [{"path": "65003"}],
}
}
expected_2 = {
"routes": {
- "172.16.255.31/32": [{"path": ""}],
+ "172.16.255.30/32": [{"path": ""}],
+ "172.16.255.31/32": [{"path": "65002"}],
"172.16.255.32/32": [{"path": ""}],
}
}
expected_3 = {
"routes": {
- "172.16.255.31/32": [{"path": "65003"}],
- "172.16.255.32/32": [{"path": "65003"}],
+ "172.16.255.30/32": [{"path": ""}],
+ "172.16.255.31/32": [{"path": "65002"}],
+ "172.16.255.32/32": [{"path": "65002 65003"}],
}
}
expected_4 = {
"routes": {
- "172.16.255.31/32": [{"path": "65002 65003"}],
- "172.16.255.32/32": [{"path": "65002 65003"}],
+ "172.16.255.30/32": [{"path": ""}],
+ "172.16.255.31/32": [{"path": "65002"}],
+ "172.16.255.32/32": [{"path": "65002"}],
}
}
@@ -117,34 +121,42 @@ def test_bgp_set_aspath_exclude_access_list():
rname = "r1"
r1 = tgen.gears[rname]
+ # tgen.mininet_cli()
r1.vtysh_cmd(
"""
conf
bgp as-path access-list FIRST permit ^65
route-map r2 permit 6
+ no set as-path exclude as-path-access-list SECOND
set as-path exclude as-path-access-list FIRST
"""
)
+ # tgen.mininet_cli()
+ r1.vtysh_cmd(
+ """
+clear bgp *
+ """
+ )
test_func = functools.partial(bgp_converge, tgen.gears["r1"], expected_2)
_, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
- assert result is None, "Failed overriding incoming AS-PATH with regex 1 route-map"
+ assert result is None, "Failed change of exclude rule in route map"
r1.vtysh_cmd(
"""
conf
- bgp as-path access-list SECOND permit 2
route-map r2 permit 6
+ no set as-path exclude as-path-access-list FIRST
set as-path exclude as-path-access-list SECOND
"""
)
# tgen.mininet_cli()
- test_func = functools.partial(bgp_converge, tgen.gears["r1"], expected_3)
+ test_func = functools.partial(bgp_converge, tgen.gears["r1"], expected_1)
_, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
- assert result is None, "Failed overriding incoming AS-PATH with regex 2 route-map"
+ assert result is None, "Failed reverting exclude rule in route map"
def test_no_bgp_set_aspath_exclude_access_list():
@@ -159,15 +171,28 @@ def test_no_bgp_set_aspath_exclude_access_list():
r1.vtysh_cmd(
"""
conf
- no bgp as-path access-list SECOND permit 2
+ no bgp as-path access-list SECOND permit 2$
+ """
+ )
+
+ r1.vtysh_cmd(
+ """
+clear bgp *
"""
)
test_func = functools.partial(bgp_converge, tgen.gears["r1"], expected_3)
_, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
- assert result is None, "Failed removing bgp as-path access-list"
+ assert result is None, "Failed to removing current accesslist"
+ # tgen.mininet_cli()
+ r1.vtysh_cmd(
+ """
+conf
+ bgp as-path access-list SECOND permit 3$
+ """
+ )
r1.vtysh_cmd(
"""
clear bgp *
@@ -177,7 +202,26 @@ clear bgp *
test_func = functools.partial(bgp_converge, tgen.gears["r1"], expected_4)
_, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
- assert result is None, "Failed to renegotiate with peers"
+ assert result is None, "Failed to renegotiate with peers 2"
+
+ r1.vtysh_cmd(
+ """
+conf
+ route-map r2 permit 6
+ no set as-path exclude as-path-access-list SECOND
+ """
+ )
+
+ r1.vtysh_cmd(
+ """
+clear bgp *
+ """
+ )
+
+ test_func = functools.partial(bgp_converge, tgen.gears["r1"], expected_3)
+ _, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
+
+ assert result is None, "Failed to renegotiate with peers 2"
if __name__ == "__main__":