[ovs-dev] [PATCH] tests/stp: Use long warps instead of multiple calls.

Ben Pfaff blp at ovn.org
Wed Oct 25 04:02:24 UTC 2017


Thanks, I applied this to master and branch-2.8.

On Wed, Sep 13, 2017 at 11:46:18AM +0300, Ilya Maximets wrote:
> This change fixes constant test failure on RHEL 7 system with
> CFLAGS='-march=native':
> >---------------------------------------------------------------<
>  2222: STP - flush the fdb and mdb when topology changed  FAILED
>  ...
>  ./stp.at:609: ovs-appctl fdb/show br0
>  --- -
>  +++ ./tests/testsuite.dir/at-groups/2222/stdout
>  @@ -1,2 +1,3 @@
>    port  VLAN  MAC                Age
>    +LOCAL     1  00:0c:29:a0:27:d1   33
> >---------------------------------------------------------------<
> 
> Long warps takes threads a chance to perform some work on each
> step unlike multiple appctl calls. Also, code looks cleaner and
> works faster.
> 
> CC: Tonghao Zhang <xiangxia.m.yue at gmail.com>
> Fixes: 427e9751f300 ("tests: Add and improve stp tests.")
> Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
> ---
>  tests/stp.at | 54 +++++++-----------------------------------------------
>  1 file changed, 7 insertions(+), 47 deletions(-)
> 
> diff --git a/tests/stp.at b/tests/stp.at
> index e27600e..9550f72 100644
> --- a/tests/stp.at
> +++ b/tests/stp.at
> @@ -429,9 +429,7 @@ AT_CHECK([ovs-ofctl add-flow br1 "in_port=8 icmp actions=2"])
>  AT_CHECK([ovs-ofctl add-flow br1 "in_port=2 icmp actions=8"])
>  
>  # give time for STP to move initially
> -
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> +ovs-appctl time/warp 6000 3000
>  
>  AT_CHECK([cat ovs-vswitchd.log | FILTER_STP_TOPOLOGY_LISTENING], [0], [dnl
>  port <>: STP state changed from disabled to listening
> @@ -446,17 +444,7 @@ AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(8),eth(src=50:54:00:00:00:
>  ])
>  
>  # give time for STP to synchronize
> -
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> +ovs-appctl time/warp 30000 3000
>  
>  AT_CHECK([cat ovs-vswitchd.log | FILTER_STP_TOPOLOGY], [0], [dnl
>  port <>: STP state changed from disabled to listening
> @@ -524,8 +512,7 @@ ovs-appctl netdev-dummy/set-admin-state up
>  ovs-appctl time/stop
>  
>  # give time for STP to move initially
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> +ovs-appctl time/warp 6000 3000
>  
>  AT_CHECK([cat ovs-vswitchd.log | FILTER_STP_TOPOLOGY_LISTENING], [0], [dnl
>  port <>: STP state changed from disabled to listening
> @@ -537,17 +524,7 @@ port <>: STP state changed from disabled to listening
>  ])
>  
>  # give time for STP to synchronize
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> +ovs-appctl time/warp 30000 3000
>  
>  AT_CHECK([cat ovs-vswitchd.log | FILTER_STP_TOPOLOGY_FORWARDING], [0], [dnl
>  port <>: STP state changed from learning to forwarding
> @@ -566,9 +543,7 @@ port <>: STP state changed from learning to forwarding
>  # of stp ports will stop after 1s. So the root bridge can send quickly
>  # topology change ack (other bridges may send TCN BPDU to root bridge) for
>  # avoiding root brdige to flush fdb and mdb frequently.
> -for i in $(seq 0 35); do
> -    ovs-appctl time/warp 1000
> -done
> +ovs-appctl time/warp 36000 1000
>  
>  # root bridge sends query packet
>  # we don't want to lose that message, so send it twice
> @@ -591,20 +566,7 @@ OVS_WAIT_UNTIL([ovs-appctl mdb/show br2 | grep 'querier'])
>  AT_CHECK([ovs-vsctl del-port br0 p2])
>  
>  # give time for STP to synchronize
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> -
> -ovs-appctl time/warp 3000
> -ovs-appctl time/warp 3000
> +ovs-appctl time/warp 36000 3000
>  
>  # check fdb and mdb
>  AT_CHECK([ovs-appctl fdb/show br0], [0], [dnl
> @@ -652,9 +614,7 @@ ovs-appctl netdev-dummy/set-admin-state up
>  ovs-appctl time/stop
>  
>  # give time for STP to move initially
> -for i in $(seq 0 30); do
> -    ovs-appctl time/warp 1000
> -done
> +ovs-appctl time/warp 31000 1000
>  
>  AT_CHECK([ovs-appctl stp/show br0 | grep p1], [0], [dnl
>  	p1         designated forwarding 19    128.1
> -- 
> 2.7.4
> 


More information about the dev mailing list