aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEyal Bari <ebari@cisco.com>2017-01-16 12:02:46 +0200
committerJohn Lo <loj@cisco.com>2017-01-25 15:17:18 +0000
commit4bce290f3ee6e85c1dc6fb1d0d8d2c0e2650f670 (patch)
tree76283209067b69428f3ffe443a743da188b4f6c5
parent36532bda926f5255a323c9cac3144dd758a05667 (diff)
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) Change-Id: Ic50cedf80471e14431feb493104eff5ea7d5d429 Signed-off-by: Eyal Bari <ebari@cisco.com>
-rw-r--r--test/test_vxlan.py47
1 files changed, 39 insertions, 8 deletions
diff --git a/test/test_vxlan.py b/test/test_vxlan.py
index 9dccaf50..35a0aa08 100644
--- a/test/test_vxlan.py
+++ b/test/test_vxlan.py
@@ -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