Skip to content

Commit 1f98f42

Browse files
authored
Merge pull request #12437 from proelbtn/proelbtn-fix-srv6-tests
bgpd, tests: Fix topotests for SRv6 L3VPN and misuse of sid_unregister
2 parents 153cc5a + 4915b5f commit 1f98f42

File tree

4 files changed

+53
-33
lines changed

4 files changed

+53
-33
lines changed

bgpd/bgp_mplsvpn.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -888,7 +888,7 @@ void delete_vrf_tovpn_sid_per_af(struct bgp *bgp_vpn, struct bgp *bgp_vrf,
888888
srv6_locator_chunk_free(&bgp_vrf->vpn_policy[afi].tovpn_sid_locator);
889889

890890
if (bgp_vrf->vpn_policy[afi].tovpn_sid) {
891-
sid_unregister(bgp_vrf, bgp_vrf->vpn_policy[afi].tovpn_sid);
891+
sid_unregister(bgp_vpn, bgp_vrf->vpn_policy[afi].tovpn_sid);
892892
XFREE(MTYPE_BGP_SRV6_SID, bgp_vrf->vpn_policy[afi].tovpn_sid);
893893
}
894894
bgp_vrf->vpn_policy[afi].tovpn_sid_transpose_label = 0;
@@ -915,7 +915,7 @@ void delete_vrf_tovpn_sid_per_vrf(struct bgp *bgp_vpn, struct bgp *bgp_vrf)
915915
srv6_locator_chunk_free(&bgp_vrf->tovpn_sid_locator);
916916

917917
if (bgp_vrf->tovpn_sid) {
918-
sid_unregister(bgp_vrf, bgp_vrf->tovpn_sid);
918+
sid_unregister(bgp_vpn, bgp_vrf->tovpn_sid);
919919
XFREE(MTYPE_BGP_SRV6_SID, bgp_vrf->tovpn_sid);
920920
}
921921
bgp_vrf->tovpn_sid_transpose_label = 0;

tests/topotests/bgp_srv6l3vpn_to_bgp_vrf/test_bgp_srv6l3vpn_to_bgp_vrf.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def _check(name, dest_addr, match):
155155
if match not in output:
156156
return "ping fail"
157157

158-
match = "{} packet loss".format("0%" if expect_connected else "100%")
158+
match = ", {} packet loss".format("0%" if expect_connected else "100%")
159159
logger.info("[+] check {} {} {}".format(name, dest_addr, match))
160160
tgen = get_topogen()
161161
func = functools.partial(_check, name, dest_addr, match)

tests/topotests/bgp_srv6l3vpn_to_bgp_vrf2/test_bgp_srv6l3vpn_to_bgp_vrf2.py

+18-16
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,12 @@ def setup_module(mod):
6969
tgen.start_topology()
7070
for rname, router in tgen.routers().items():
7171
router.run("/bin/bash {}/{}/setup.sh".format(CWD, rname))
72-
router.load_config(TopoRouter.RD_ZEBRA,
73-
os.path.join(CWD, '{}/zebra.conf'.format(rname)))
74-
router.load_config(TopoRouter.RD_BGP,
75-
os.path.join(CWD, '{}/bgpd.conf'.format(rname)))
72+
router.load_config(
73+
TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))
74+
)
75+
router.load_config(
76+
TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname))
77+
)
7678

7779
tgen.gears["r1"].run("sysctl net.vrf.strict_mode=1")
7880
tgen.gears["r1"].run("ip link add vrf10 type vrf table 10")
@@ -114,7 +116,7 @@ def _check(name, dest_addr, match):
114116
logger.info(output)
115117
assert match in output, "ping fail"
116118

117-
match = "{} packet loss".format("0%" if expect_connected else "100%")
119+
match = ", {} packet loss".format("0%" if expect_connected else "100%")
118120
logger.info("[+] check {} {} {}".format(name, dest_addr, match))
119121
tgen = get_topogen()
120122
func = functools.partial(_check, name, dest_addr, match)
@@ -131,7 +133,7 @@ def _check(name, dest_addr, match):
131133
expected = open_json_file("{}/{}".format(CWD, expected_file))
132134
return topotest.json_cmp(output, expected)
133135

134-
logger.info("[+] check {} \"{}\" {}".format(name, cmd, expected_file))
136+
logger.info('[+] check {} "{}" {}'.format(name, cmd, expected_file))
135137
tgen = get_topogen()
136138
func = functools.partial(_check, name, cmd, expected_file)
137139
success, result = topotest.run_and_expect(func, None, count=10, wait=0.5)
@@ -154,16 +156,16 @@ def test_rib():
154156

155157

156158
def test_ping():
157-
check_ping("ce1", "192.168.2.2", " 0% packet loss")
158-
check_ping("ce1", "192.168.3.2", " 0% packet loss")
159-
check_ping("ce1", "192.168.4.2", " 100% packet loss")
160-
check_ping("ce1", "192.168.5.2", " 100% packet loss")
161-
check_ping("ce1", "192.168.6.2", " 100% packet loss")
162-
check_ping("ce4", "192.168.1.2", " 100% packet loss")
163-
check_ping("ce4", "192.168.2.2", " 100% packet loss")
164-
check_ping("ce4", "192.168.3.2", " 100% packet loss")
165-
check_ping("ce4", "192.168.5.2", " 0% packet loss")
166-
check_ping("ce4", "192.168.6.2", " 0% packet loss")
159+
check_ping("ce1", "192.168.2.2", True)
160+
check_ping("ce1", "192.168.3.2", True)
161+
check_ping("ce1", "192.168.4.2", False)
162+
check_ping("ce1", "192.168.5.2", False)
163+
check_ping("ce1", "192.168.6.2", False)
164+
check_ping("ce4", "192.168.1.2", False)
165+
check_ping("ce4", "192.168.2.2", False)
166+
check_ping("ce4", "192.168.3.2", False)
167+
check_ping("ce4", "192.168.5.2", True)
168+
check_ping("ce4", "192.168.6.2", True)
167169

168170

169171
if __name__ == "__main__":

tests/topotests/bgp_srv6l3vpn_to_bgp_vrf3/test_bgp_srv6l3vpn_to_bgp_vrf3.py

+32-14
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,12 @@ def setup_module(mod):
6666
tgen.start_topology()
6767
for rname, router in tgen.routers().items():
6868
router.run("/bin/bash {}/{}/setup.sh".format(CWD, rname))
69-
router.load_config(TopoRouter.RD_ZEBRA,
70-
os.path.join(CWD, '{}/zebra.conf'.format(rname)))
71-
router.load_config(TopoRouter.RD_BGP,
72-
os.path.join(CWD, '{}/bgpd.conf'.format(rname)))
69+
router.load_config(
70+
TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))
71+
)
72+
router.load_config(
73+
TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname))
74+
)
7375

7476
tgen.gears["r1"].run("sysctl net.vrf.strict_mode=1")
7577
tgen.gears["r1"].run("ip link add vrf10 type vrf table 10")
@@ -111,7 +113,7 @@ def _check(name, dest_addr, match):
111113
logger.info(output)
112114
assert match in output, "ping fail"
113115

114-
match = "{} packet loss".format("0%" if expect_connected else "100%")
116+
match = ", {} packet loss".format("0%" if expect_connected else "100%")
115117
logger.info("[+] check {} {} {}".format(name, dest_addr, match))
116118
tgen = get_topogen()
117119
func = functools.partial(_check, name, dest_addr, match)
@@ -144,7 +146,7 @@ def _check(name, dest_addr, match):
144146
expected = open_json_file("{}/{}".format(CWD, expected_file))
145147
return topotest.json_cmp(output, expected)
146148

147-
logger.info("[+] check {} \"{}\" {}".format(name, cmd, expected_file))
149+
logger.info('[+] check {} "{}" {}'.format(name, cmd, expected_file))
148150
tgen = get_topogen()
149151
func = functools.partial(_check, name, cmd, expected_file)
150152
success, result = topotest.run_and_expect(func, None, count=10, wait=0.5)
@@ -214,10 +216,18 @@ def test_bgp_sid_vpn_export_disable():
214216
no sid vpn per-vrf export
215217
"""
216218
)
217-
check_rib("r1", "show bgp ipv4 vpn json", "r1/vpnv4_rib_sid_vpn_export_disabled.json")
218-
check_rib("r2", "show bgp ipv4 vpn json", "r2/vpnv4_rib_sid_vpn_export_disabled.json")
219-
check_rib("r1", "show bgp ipv6 vpn json", "r1/vpnv6_rib_sid_vpn_export_disabled.json")
220-
check_rib("r2", "show bgp ipv6 vpn json", "r2/vpnv6_rib_sid_vpn_export_disabled.json")
219+
check_rib(
220+
"r1", "show bgp ipv4 vpn json", "r1/vpnv4_rib_sid_vpn_export_disabled.json"
221+
)
222+
check_rib(
223+
"r2", "show bgp ipv4 vpn json", "r2/vpnv4_rib_sid_vpn_export_disabled.json"
224+
)
225+
check_rib(
226+
"r1", "show bgp ipv6 vpn json", "r1/vpnv6_rib_sid_vpn_export_disabled.json"
227+
)
228+
check_rib(
229+
"r2", "show bgp ipv6 vpn json", "r2/vpnv6_rib_sid_vpn_export_disabled.json"
230+
)
221231
check_ping4("ce1", "192.168.2.2", False)
222232
check_ping6("ce1", "2001:2::2", False)
223233

@@ -233,10 +243,18 @@ def test_bgp_sid_vpn_export_reenable():
233243
sid vpn per-vrf export auto
234244
"""
235245
)
236-
check_rib("r1", "show bgp ipv4 vpn json", "r1/vpnv4_rib_sid_vpn_export_reenabled.json")
237-
check_rib("r2", "show bgp ipv4 vpn json", "r2/vpnv4_rib_sid_vpn_export_reenabled.json")
238-
check_rib("r1", "show bgp ipv6 vpn json", "r1/vpnv6_rib_sid_vpn_export_reenabled.json")
239-
check_rib("r2", "show bgp ipv6 vpn json", "r2/vpnv6_rib_sid_vpn_export_reenabled.json")
246+
check_rib(
247+
"r1", "show bgp ipv4 vpn json", "r1/vpnv4_rib_sid_vpn_export_reenabled.json"
248+
)
249+
check_rib(
250+
"r2", "show bgp ipv4 vpn json", "r2/vpnv4_rib_sid_vpn_export_reenabled.json"
251+
)
252+
check_rib(
253+
"r1", "show bgp ipv6 vpn json", "r1/vpnv6_rib_sid_vpn_export_reenabled.json"
254+
)
255+
check_rib(
256+
"r2", "show bgp ipv6 vpn json", "r2/vpnv6_rib_sid_vpn_export_reenabled.json"
257+
)
240258
check_ping4("ce1", "192.168.2.2", True)
241259
check_ping6("ce1", "2001:2::2", True)
242260

0 commit comments

Comments
 (0)