diff options
author | Eyal Bari <ebari@cisco.com> | 2017-01-16 12:02:46 +0200 |
---|---|---|
committer | John Lo <loj@cisco.com> | 2017-01-25 15:17:18 +0000 |
commit | 4bce290f3ee6e85c1dc6fb1d0d8d2c0e2650f670 (patch) | |
tree | 76283209067b69428f3ffe443a743da188b4f6c5 | |
parent | 36532bda926f5255a323c9cac3144dd758a05667 (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.py | 47 |
1 files changed, 39 insertions, 8 deletions
diff --git a/test/test_vxlan.py b/test/test_vxlan.py index 9dccaf50fb1..35a0aa08211 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 |