From 64b4a93d81b5ed7d25a20cc506fdeb4bc0645ea5 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Fri, 22 Sep 2023 15:20:22 +0300 Subject: [PATCH 1/2] tests: Use frr.conf for bgp_dynamic_capabily tests Signed-off-by: Donatas Abraitis --- .../bgp_dynamic_capability/r1/{bgpd.conf => frr.conf} | 3 +++ tests/topotests/bgp_dynamic_capability/r1/zebra.conf | 4 ---- .../bgp_dynamic_capability/r2/{bgpd.conf => frr.conf} | 3 +++ tests/topotests/bgp_dynamic_capability/r2/zebra.conf | 4 ---- .../test_bgp_dynamic_capability_graceful_restart.py | 9 ++------- .../test_bgp_dynamic_capability_role.py | 9 ++------- .../test_bgp_dynamic_capability_software_version.py | 9 ++------- 7 files changed, 12 insertions(+), 29 deletions(-) rename tests/topotests/bgp_dynamic_capability/r1/{bgpd.conf => frr.conf} (87%) delete mode 100644 tests/topotests/bgp_dynamic_capability/r1/zebra.conf rename tests/topotests/bgp_dynamic_capability/r2/{bgpd.conf => frr.conf} (87%) delete mode 100644 tests/topotests/bgp_dynamic_capability/r2/zebra.conf diff --git a/tests/topotests/bgp_dynamic_capability/r1/bgpd.conf b/tests/topotests/bgp_dynamic_capability/r1/frr.conf similarity index 87% rename from tests/topotests/bgp_dynamic_capability/r1/bgpd.conf rename to tests/topotests/bgp_dynamic_capability/r1/frr.conf index 3d2c611775..50280a9126 100644 --- a/tests/topotests/bgp_dynamic_capability/r1/bgpd.conf +++ b/tests/topotests/bgp_dynamic_capability/r1/frr.conf @@ -1,6 +1,9 @@ ! !debug bgp neighbor ! +int r1-eth0 + ip address 192.168.1.1/24 +! router bgp 65001 no bgp ebgp-requires-policy bgp graceful-restart diff --git a/tests/topotests/bgp_dynamic_capability/r1/zebra.conf b/tests/topotests/bgp_dynamic_capability/r1/zebra.conf deleted file mode 100644 index b29940f46a..0000000000 --- a/tests/topotests/bgp_dynamic_capability/r1/zebra.conf +++ /dev/null @@ -1,4 +0,0 @@ -! -int r1-eth0 - ip address 192.168.1.1/24 -! diff --git a/tests/topotests/bgp_dynamic_capability/r2/bgpd.conf b/tests/topotests/bgp_dynamic_capability/r2/frr.conf similarity index 87% rename from tests/topotests/bgp_dynamic_capability/r2/bgpd.conf rename to tests/topotests/bgp_dynamic_capability/r2/frr.conf index 46f0b21a14..2bef9177d7 100644 --- a/tests/topotests/bgp_dynamic_capability/r2/bgpd.conf +++ b/tests/topotests/bgp_dynamic_capability/r2/frr.conf @@ -1,6 +1,9 @@ ! !debug bgp neighbor ! +int r2-eth0 + ip address 192.168.1.2/24 +! router bgp 65002 bgp graceful-restart bgp long-lived stale-time 20 diff --git a/tests/topotests/bgp_dynamic_capability/r2/zebra.conf b/tests/topotests/bgp_dynamic_capability/r2/zebra.conf deleted file mode 100644 index cffe827363..0000000000 --- a/tests/topotests/bgp_dynamic_capability/r2/zebra.conf +++ /dev/null @@ -1,4 +0,0 @@ -! -int r2-eth0 - ip address 192.168.1.2/24 -! diff --git a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_graceful_restart.py b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_graceful_restart.py index 846a68ea27..c6c5bb17f2 100644 --- a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_graceful_restart.py +++ b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_graceful_restart.py @@ -38,13 +38,8 @@ def setup_module(mod): router_list = tgen.routers() - for i, (rname, router) in enumerate(router_list.items(), 1): - router.load_config( - 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)) - ) + for _, (rname, router) in enumerate(router_list.items(), 1): + router.load_frr_config(os.path.join(CWD, "{}/frr.conf".format(rname))) tgen.start_router() diff --git a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_role.py b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_role.py index 9f37440566..9d14388d56 100644 --- a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_role.py +++ b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_role.py @@ -36,13 +36,8 @@ def setup_module(mod): router_list = tgen.routers() - for i, (rname, router) in enumerate(router_list.items(), 1): - router.load_config( - 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)) - ) + for _, (rname, router) in enumerate(router_list.items(), 1): + router.load_frr_config(os.path.join(CWD, "{}/frr.conf".format(rname))) tgen.start_router() diff --git a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_software_version.py b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_software_version.py index eb81ffeb69..6e2fa51443 100644 --- a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_software_version.py +++ b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_software_version.py @@ -36,13 +36,8 @@ def setup_module(mod): router_list = tgen.routers() - for i, (rname, router) in enumerate(router_list.items(), 1): - router.load_config( - 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)) - ) + for _, (rname, router) in enumerate(router_list.items(), 1): + router.load_frr_config(os.path.join(CWD, "{}/frr.conf".format(rname))) tgen.start_router() From fa5783bbabfbaebedd534eb20b599ec78458178c Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Fri, 22 Sep 2023 15:50:27 +0300 Subject: [PATCH 2/2] tests: Check notification/capability received message stats instead of reset/established Signed-off-by: Donatas Abraitis --- .../bgp_dynamic_capability/r2/frr.conf | 7 +++++++ ...bgp_dynamic_capability_graceful_restart.py | 20 +++++++++++++------ .../test_bgp_dynamic_capability_role.py | 11 ++++++---- ...bgp_dynamic_capability_software_version.py | 11 ++++++---- 4 files changed, 35 insertions(+), 14 deletions(-) diff --git a/tests/topotests/bgp_dynamic_capability/r2/frr.conf b/tests/topotests/bgp_dynamic_capability/r2/frr.conf index 2bef9177d7..16b83a5c58 100644 --- a/tests/topotests/bgp_dynamic_capability/r2/frr.conf +++ b/tests/topotests/bgp_dynamic_capability/r2/frr.conf @@ -1,6 +1,9 @@ ! !debug bgp neighbor ! +int lo + ip address 10.10.10.10/32 +! int r2-eth0 ip address 192.168.1.2/24 ! @@ -12,4 +15,8 @@ router bgp 65002 neighbor 192.168.1.1 timers 1 3 neighbor 192.168.1.1 timers connect 1 neighbor 192.168.1.1 capability dynamic + ! + address-family ipv4 unicast + redistribute connected + exit-address-family ! diff --git a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_graceful_restart.py b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_graceful_restart.py index c6c5bb17f2..db1eb2723b 100644 --- a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_graceful_restart.py +++ b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_graceful_restart.py @@ -80,8 +80,6 @@ def test_bgp_dynamic_capability_graceful_restart(): } }, }, - "connectionsEstablished": 1, - "connectionsDropped": 0, } } return topotest.json_cmp(output, expected) @@ -96,6 +94,9 @@ def test_bgp_dynamic_capability_graceful_restart(): "Change Graceful-Restart restart-time, LLGR stale-time and check if they changed dynamically" ) + # Clear message stats to check if we receive a notification or not after we + # change the settings fo LLGR. + r1.vtysh_cmd("clear bgp 192.168.1.2 message-stats") r2.vtysh_cmd( """ configure terminal @@ -127,8 +128,10 @@ def test_bgp_dynamic_capability_graceful_restart(): } }, }, - "connectionsEstablished": 1, - "connectionsDropped": 0, + "messageStats": { + "notificationsRecv": 0, + "capabilityRecv": 2, + }, } } return topotest.json_cmp(output, expected) @@ -145,6 +148,9 @@ def test_bgp_dynamic_capability_graceful_restart(): "Disable Graceful-Restart notification support, and check if it's changed dynamically" ) + # Clear message stats to check if we receive a notification or not after we + # change the settings fo LLGR. + r1.vtysh_cmd("clear bgp 192.168.1.2 message-stats") r2.vtysh_cmd( """ configure terminal @@ -175,8 +181,10 @@ def test_bgp_dynamic_capability_graceful_restart(): } }, }, - "connectionsEstablished": 1, - "connectionsDropped": 0, + "messageStats": { + "notificationsRecv": 0, + "capabilityRecv": 1, + }, } } return topotest.json_cmp(output, expected) diff --git a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_role.py b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_role.py index 9d14388d56..da45110e39 100644 --- a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_role.py +++ b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_role.py @@ -66,8 +66,6 @@ def test_bgp_dynamic_capability_role(): "neighborCapabilities": { "dynamic": "advertisedAndReceived", }, - "connectionsEstablished": 1, - "connectionsDropped": 0, } } return topotest.json_cmp(output, expected) @@ -80,6 +78,9 @@ def test_bgp_dynamic_capability_role(): step("Set local-role and check if it's exchanged dynamically") + # Clear message stats to check if we receive a notification or not after we + # change the settings fo LLGR. + r1.vtysh_cmd("clear bgp 192.168.1.2 message-stats") r1.vtysh_cmd( """ configure terminal @@ -107,8 +108,10 @@ def test_bgp_dynamic_capability_role(): "dynamic": "advertisedAndReceived", "role": "advertisedAndReceived", }, - "connectionsEstablished": 1, - "connectionsDropped": 0, + "messageStats": { + "notificationsRecv": 0, + "capabilityRecv": 1, + }, } } return topotest.json_cmp(output, expected) diff --git a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_software_version.py b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_software_version.py index 6e2fa51443..d1069a876b 100644 --- a/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_software_version.py +++ b/tests/topotests/bgp_dynamic_capability/test_bgp_dynamic_capability_software_version.py @@ -68,8 +68,6 @@ def test_bgp_dynamic_capability_software_version(): "receivedSoftwareVersion": None, }, }, - "connectionsEstablished": 1, - "connectionsDropped": 0, } } return topotest.json_cmp(output, expected) @@ -82,6 +80,9 @@ def test_bgp_dynamic_capability_software_version(): step("Enable software version capability and check if it's exchanged dynamically") + # Clear message stats to check if we receive a notification or not after we + # change the settings fo LLGR. + r1.vtysh_cmd("clear bgp 192.168.1.2 message-stats") r1.vtysh_cmd( """ configure terminal @@ -128,8 +129,10 @@ def test_bgp_dynamic_capability_software_version(): "receivedSoftwareVersion": rcv, }, }, - "connectionsEstablished": 1, - "connectionsDropped": 0, + "messageStats": { + "notificationsRecv": 0, + "capabilityRecv": 1, + }, } } return topotest.json_cmp(output, expected)