On Tue, Apr 1, 2014 at 8:38 PM, YAMAMOTO Takashi <yamam...@valinux.co.jp> wrote:
>>> +ovs-appctl time/warp 4000
>>>  AT_CHECK([ovs-ofctl mod-flows br0 in_port=1,actions=drop])
>>> -sleep 2
>>> +# At this point the table would looks like:
>>> +#  in_port   seconds to expire
>>> +#     1            13
>>> +#     2            11
>> This seems to be 12s to expire. And I realize that I made a mistake
>> about warp 4000.
>> It should be warp 5000 or even bigger.
>> I'm so sorry to bother you so many times.  I probably need a rest.
>> Thanks for all your work.
>
> apparently this math is too difficult for us. :-)
>
> YAMAMOTO Takashi
>
> commit 06f0a9e0e4da144e0bdc3a3b49d5f2572f67c626
> Author: YAMAMOTO Takashi <yamam...@valinux.co.jp>
> Date:   Mon Mar 31 14:04:35 2014 +0900
>
>     ofproto.at: Fix races in rule eviciton tests
>
>     Bump timeout differences, because timeouts different by 1s might end up
>     to have the same position in the heap as rule_eviction_priority() uses
>     1024ms as a unit.
>
>     Also, use time/stop to avoid relying on how long an add-flow would take.
>
>     These tests were introduced by commit 6d56c1f1.
>     ("ofproto: Update rule's priority in eviction group.")
>
>     Signed-off-by: YAMAMOTO Takashi <yamam...@valinux.co.jp>
>     Cc: Kmindg G <kmi...@gmail.com>
>     Acked-by: Ben Pfaff <b...@nicira.com>
>
> diff --git a/tests/ofproto.at b/tests/ofproto.at
> index e98b526..de2d004 100644
> --- a/tests/ofproto.at
> +++ b/tests/ofproto.at
> @@ -1375,27 +1375,34 @@ AT_CHECK(
>     | ${PERL} $srcdir/uuidfilt.pl],
>    [0], [<0>
>  ])
> +ovs-appctl time/stop
>  # Add 4 flows.
>  for in_port in 4 3 2 1; do
> -    ovs-ofctl add-flow br0 
> hard_timeout=1${in_port},in_port=$in_port,actions=drop
> +    ovs-ofctl add-flow br0 hard_timeout=$((10 + in_port * 
> 3)),in_port=$in_port,actions=drop
>  done
>  AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl
> - hard_timeout=11, in_port=1 actions=drop
> - hard_timeout=12, in_port=2 actions=drop
> - hard_timeout=13, in_port=3 actions=drop
> - hard_timeout=14, in_port=4 actions=drop
> + hard_timeout=13, in_port=1 actions=drop
> + hard_timeout=16, in_port=2 actions=drop
> + hard_timeout=19, in_port=3 actions=drop
> + hard_timeout=22, in_port=4 actions=drop
>  NXST_FLOW reply:
>  ])
>  # Sleep and modify the one that expires soonest
> -sleep 2
> +ovs-appctl time/warp 5000
>  AT_CHECK([ovs-ofctl mod-flows br0 in_port=1,actions=drop])
> -sleep 2
> +# At this point the table would looks like:
> +#  in_port   seconds to expire
> +#     1            13
> +#     2            11
> +#     3            14
> +#     4            17
> +ovs-appctl time/warp 2000
>  # Adding another flow will cause the one that expires soonest to be evicted.
>  AT_CHECK([ovs-ofctl add-flow br0 in_port=5,actions=drop])
>  AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl
> - hard_timeout=11, in_port=1 actions=drop
> - hard_timeout=13, in_port=3 actions=drop
> - hard_timeout=14, in_port=4 actions=drop
> + hard_timeout=13, in_port=1 actions=drop
> + hard_timeout=19, in_port=3 actions=drop
> + hard_timeout=22, in_port=4 actions=drop
>   in_port=5 actions=drop
>  NXST_FLOW reply:
>  ])
> @@ -1414,26 +1421,33 @@ AT_CHECK(
>  ])
>  # Add 4 flows.
>  for in_port in 4 3 2 1; do
> -    ovs-ofctl add-flow br0 
> idle_timeout=1${in_port},in_port=$in_port,actions=drop
> +    ovs-ofctl add-flow br0 idle_timeout=$((10 + in_port * 
> 3)),in_port=$in_port,actions=drop
>  done
> +ovs-appctl time/stop
>  AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl
> - idle_timeout=11, in_port=1 actions=drop
> - idle_timeout=12, in_port=2 actions=drop
> - idle_timeout=13, in_port=3 actions=drop
> - idle_timeout=14, in_port=4 actions=drop
> + idle_timeout=13, in_port=1 actions=drop
> + idle_timeout=16, in_port=2 actions=drop
> + idle_timeout=19, in_port=3 actions=drop
> + idle_timeout=22, in_port=4 actions=drop
>  NXST_FLOW reply:
>  ])
>  # Sleep and receive on the flow that expires soonest
> -sleep 2
> +ovs-appctl time/warp 5000
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1)'])
> -sleep 2
> +# At this point the table would looks like:
> +#  in_port   seconds to expire
> +#     1            13
> +#     2            11
> +#     3            14
> +#     4            17
> +ovs-appctl time/warp 2000
>  # Adding another flow will cause the one that expires soonest to be evicted.
>  AT_CHECK([ovs-ofctl add-flow br0 in_port=5,actions=drop])
>  AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl
> - idle_timeout=13, in_port=3 actions=drop
> - idle_timeout=14, in_port=4 actions=drop
> + idle_timeout=19, in_port=3 actions=drop
> + idle_timeout=22, in_port=4 actions=drop
>   in_port=5 actions=drop
> - n_packets=1, n_bytes=60, idle_timeout=11, in_port=1 actions=drop
> + n_packets=1, n_bytes=60, idle_timeout=13, in_port=1 actions=drop
>  NXST_FLOW reply:
>  ])
>  OVS_VSWITCHD_STOP

Acked-by: Kmindg G <kmi...@gmail.com>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to