]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: Reduce some pim test timings to more manageable levels
authorDonald Sharp <sharpd@nvidia.com>
Fri, 1 Apr 2022 12:47:38 +0000 (08:47 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Fri, 1 Apr 2022 13:01:38 +0000 (09:01 -0400)
a) Remove the retry mechanism to continue looking for 75%
of the time for pim code.

   This alone saves a bunch of time in tests that use lib/pim.py
   Effectively all the times given for retry are already long
   enough.  Additionally some tests are gathering data with
   the expectation that they will not find data so the entire
   time is being taken up in retry's.  Extending the retry
   mechanism makes this even worse.  This is especially bad
   for pim in that keep alive timers are counting down and
   state can be removed due to excessive time waiting.

b) Reduce verify verify_multicast_traffic from 40 seconds
to 20 seconds to gather traffic data.

   A bunch of tests are doing this:
   a) gather pre test start traffic data( taking about 70
   seconds to run, because a bunch of time it was looking
   for data that does not exist yet)
   b) run a change to introduce a different traffic flow
   c) gather post test traffic data ( taking about 70
   seconds to run )

   Why does this matter?  Tests were iterating through
   all the different routers looking for traffic flow
   as well as different mroute state.  This is against
   the keepalive timer of 210 seconds.  It does not take
   long before the stream can be removed and the test is
   still looking for data that is no longer there due
   to state timeout.

   The multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py
   test reduced run time from 398 seconds to 297 seconds.
   Greatly reducing keepalive timeout problems.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests/topotests/lib/pim.py

index 1f723eab93f63bf11b6e3c3d48b732952d210d73..b4a6358389cbaedb13b29d7b67c0882d3e1781fc 100644 (file)
@@ -602,7 +602,7 @@ def verify_pim_neighbors(tgen, topo, dut=None, iface=None, nbr_ip=None, expected
     return True
 
 
-@retry(retry_timeout=40)
+@retry(retry_timeout=40, diag_pct=0)
 def verify_igmp_groups(tgen, dut, interface, group_addresses, expected=True):
     """
     Verify IGMP groups are received from an intended interface
@@ -676,7 +676,7 @@ def verify_igmp_groups(tgen, dut, interface, group_addresses, expected=True):
     return True
 
 
-@retry(retry_timeout=60)
+@retry(retry_timeout=60, diag_pct=0)
 def verify_upstream_iif(
     tgen,
     dut,
@@ -959,7 +959,7 @@ def verify_join_state_and_timer(
     return True
 
 
-@retry(retry_timeout=120)
+@retry(retry_timeout=120, diag_pct=0)
 def verify_ip_mroutes(
     tgen,
     dut,
@@ -1164,7 +1164,7 @@ def verify_ip_mroutes(
     return True if return_uptime == False else uptime_dict
 
 
-@retry(retry_timeout=60)
+@retry(retry_timeout=60, diag_pct=0)
 def verify_pim_rp_info(
     tgen,
     topo,
@@ -1329,7 +1329,7 @@ def verify_pim_rp_info(
     return True
 
 
-@retry(retry_timeout=60)
+@retry(retry_timeout=60, diag_pct=0)
 def verify_pim_state(
     tgen,
     dut,
@@ -1516,7 +1516,7 @@ def get_pim_interface_traffic(tgen, input_dict):
     return output_dict
 
 
-@retry(retry_timeout=40)
+@retry(retry_timeout=40, diag_pct=0)
 def verify_pim_interface(
     tgen, topo, dut, interface=None, interface_ip=None, expected=True
 ):
@@ -2295,7 +2295,7 @@ def verify_pim_grp_rp_source(
     return errormsg
 
 
-@retry(retry_timeout=60)
+@retry(retry_timeout=60, diag_pct=0)
 def verify_pim_bsr(tgen, topo, dut, bsr_ip, expected=True):
     """
     Verify all PIM interface are up and running, config is verified
@@ -2351,7 +2351,7 @@ def verify_pim_bsr(tgen, topo, dut, bsr_ip, expected=True):
     return True
 
 
-@retry(retry_timeout=60)
+@retry(retry_timeout=60, diag_pct=0)
 def verify_ip_pim_upstream_rpf(
     tgen, topo, dut, interface, group_addresses, rp=None, expected=True
 ):
@@ -2551,7 +2551,7 @@ def enable_disable_pim_bsm(tgen, router, intf, enable=True):
     return result
 
 
-@retry(retry_timeout=60)
+@retry(retry_timeout=60, diag_pct=0)
 def verify_ip_pim_join(
     tgen, topo, dut, interface, group_addresses, src_address=None, expected=True
 ):
@@ -2644,7 +2644,7 @@ def verify_ip_pim_join(
     return True
 
 
-@retry(retry_timeout=60)
+@retry(retry_timeout=60, diag_pct=0)
 def verify_igmp_config(tgen, input_dict, stats_return=False, expected=True):
     """
     Verify igmp interface details, verifying following configs:
@@ -2934,7 +2934,7 @@ def verify_igmp_config(tgen, input_dict, stats_return=False, expected=True):
     return True if stats_return == False else igmp_stats
 
 
-@retry(retry_timeout=60)
+@retry(retry_timeout=60, diag_pct=0)
 def verify_pim_config(tgen, input_dict, expected=True):
     """
     Verify pim interface details, verifying following configs:
@@ -3060,7 +3060,7 @@ def verify_pim_config(tgen, input_dict, expected=True):
     return True
 
 
-@retry(retry_timeout=40)
+@retry(retry_timeout=20, diag_pct=0)
 def verify_multicast_traffic(tgen, input_dict, return_traffic=False, expected=True):
     """
     Verify multicast traffic by running
@@ -3303,7 +3303,7 @@ def get_refCount_for_mroute(tgen, dut, iif, src_address, group_addresses):
     return refCount
 
 
-@retry(retry_timeout=40)
+@retry(retry_timeout=40, diag_pct=0)
 def verify_multicast_flag_state(
     tgen, dut, src_address, group_addresses, flag, expected=True
 ):
@@ -3400,7 +3400,7 @@ def verify_multicast_flag_state(
     return True
 
 
-@retry(retry_timeout=40)
+@retry(retry_timeout=40, diag_pct=0)
 def verify_igmp_interface(tgen, topo, dut, igmp_iface, interface_ip, expected=True):
     """
     Verify all IGMP interface are up and running, config is verified