test adding and removing shared mcast dst tunnels
Adds and delete 2000 multicast vxlan tunnels sharing group address
to test mcast tunnel ref count code as part of the stability stage (before starting traffic tests)
@@ -86,9 +86,38 @@ class TestVxlan(BridgeDomain, VppTestCase):
cls.vapi.sw_interface_set_l2_bridge(r.sw_if_index, bd_id=vni)
@classmethod
- def add_del_mcast_load(cls, is_add):
+ def add_del_shared_mcast_dst_load(cls, is_add):
+ """
+ add or del tunnels sharing the same mcast dst
+ to test vxlan ref_count mechanism
+ """
+ n_shared_dst_tunnels = 2000
+ vni_start = 10000
+ vni_end = vni_start + n_shared_dst_tunnels
+ for vni in range(vni_start, vni_end):
+ cls.vapi.vxlan_add_del_tunnel(
+ src_addr=cls.pg0.local_ip4n,
+ dst_addr=cls.mcast_ip4n,
+ mcast_sw_if_index=1,
+ vni=vni,
+ is_add=is_add)
+
+ @classmethod
+ def add_shared_mcast_dst_load(cls):
+ cls.add_del_shared_mcast_dst_load(is_add=1)
+
+ @classmethod
+ def del_shared_mcast_dst_load(cls):
+ cls.add_del_shared_mcast_dst_load(is_add=0)
+
+ @classmethod
+ def add_del_mcast_tunnels_load(cls, is_add):
+ """
+ add or del tunnels to test vxlan stability
+ """
+ n_distinct_dst_tunnels = 200
ip_range_start = 10
- ip_range_end = 210
+ ip_range_end = ip_range_start + n_distinct_dst_tunnels
for dest_ip4n in ip4n_range(cls.mcast_ip4n, ip_range_start,
ip_range_end):
vni = bytearray(dest_ip4n)[3]
@@ -100,12 +129,12 @@ class TestVxlan(BridgeDomain, VppTestCase):
is_add=is_add)
@classmethod
- def add_mcast_load(cls):
- cls.add_del_mcast_load(is_add=1)
+ def add_mcast_tunnels_load(cls):
+ cls.add_del_mcast_tunnels_load(is_add=1)
@classmethod
- def del_mcast_load(cls):
- cls.add_del_mcast_load(is_add=0)
+ def del_mcast_tunnels_load(cls):
+ cls.add_del_mcast_tunnels_load(is_add=0)
# Class method to start the VXLAN test case.
# Overrides setUpClass method in VppTestCase class.
@@ -166,8 +195,10 @@ class TestVxlan(BridgeDomain, VppTestCase):
bd_id=cls.mcast_flood_bd)
# Add and delete mcast tunnels to check stability
- cls.add_mcast_load()
- cls.del_mcast_load()
+ cls.add_shared_mcast_dst_load()
+ cls.add_mcast_tunnels_load()
+ cls.del_shared_mcast_dst_load()
+ cls.del_mcast_tunnels_load()
# Setup vni 3 to test unicast flooding
cls.ucast_flood_bd = 3
