looks good to me,

Acked-by: Alex Wang <al...@nicira.com>

On Wed, Dec 3, 2014 at 11:07 AM, Joe Stringer <joestrin...@nicira.com>
wrote:

> We have previously used a combination of time/warp and revalidator/wait
> to try to synchronize the datapath flow statistics and status up to the
> ofproto layer, so that tests may confirm their expected behaviours using
> OpenFlow or other protocols operating at that layer of vswitchd (eg LACP).
>
> This patch switches these tests over to using revalidator/purge, which
> tells the ofproto-dpif to flush the datapath, causing these statistics
> to be updated. In local testing this appears to improve the success rate
> of these tests considerably.
>
> Signed-off-by: Joe Stringer <joestrin...@nicira.com>
> ---
>  tests/ofproto-dpif.at |   77
> +++++++++++++++----------------------------------
>  1 file changed, 24 insertions(+), 53 deletions(-)
>
> diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at
> index fbf35c6..9d3da4a 100644
> --- a/tests/ofproto-dpif.at
> +++ b/tests/ofproto-dpif.at
> @@ -347,8 +347,7 @@ for i in `seq 0 2`;
>      AT_CHECK([ovs-appctl netdev-dummy/receive p1 $pkt])
>      done
>  )
> -ovs-appctl time/warp 100
> -ovs-appctl revalidator/wait
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -O OpenFlow12 -vwarn dump-group-stats br0], [0],
> [stdout])
>  AT_CHECK([STRIP_XIDS stdout | sort], [0], [dnl
>
> group_id=1234,ref_count=0,packet_count=3,byte_count=180,bucket0:packet_count=3,byte_count=180,bucket1:packet_count=0,byte_count=0
> @@ -369,8 +368,7 @@ for i in `seq 0 2`;
>      AT_CHECK([ovs-appctl netdev-dummy/receive p1 $pkt])
>      done
>  )
> -ovs-appctl time/warp 100
> -ovs-appctl revalidator/wait
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -O OpenFlow12 -vwarn dump-group-stats br0], [0],
> [stdout])
>  AT_CHECK([STRIP_XIDS stdout | sort], [0], [dnl
>
> group_id=1234,ref_count=0,packet_count=3,byte_count=180,bucket0:packet_count=3,byte_count=180,bucket1:packet_count=3,byte_count=180
> @@ -850,8 +848,7 @@ OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=1 (via
> no_match) data_len=60 (unb
>  
> tcp,in_port=0,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=rst|urg
> tcp_csum:0
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -ovs-appctl revalidator/wait
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   n_packets=3, n_bytes=180, actions=goto_table:1
>  OFPST_FLOW reply (OF1.2):
> @@ -879,8 +876,7 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit])
>  AT_CHECK([cat ofctl_monitor.log], [0], [dnl
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -ovs-appctl revalidator/wait
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   n_packets=3, n_bytes=180, actions=resubmit(1,1)
>  OFPST_FLOW reply (OF1.2):
> @@ -939,8 +935,7 @@ NXT_PACKET_IN (xid=0x0): table_id=253 cookie=0x0
> total_len=60 in_port=1 (via no_
>  
> tcp,in_port=0,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack
> tcp_csum:0
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -ovs-appctl revalidator/wait
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   table=1, n_packets=3, n_bytes=180, dl_src=10:11:11:11:11:11
> actions=CONTROLLER:65535
>  OFPST_FLOW reply (OF1.2):
> @@ -1003,8 +998,7 @@ NXT_PACKET_IN (xid=0x0): table_id=253 cookie=0x0
> total_len=60 in_port=1 (via no_
>  
> tcp,in_port=0,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack
> tcp_csum:0
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -ovs-appctl revalidator/wait
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   n_packets=6, n_bytes=360, actions=goto_table:1
>   table=2, n_packets=3, n_bytes=180, dl_src=10:11:11:11:11:11
> actions=CONTROLLER:65535
> @@ -1050,8 +1044,7 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit])
>  AT_CHECK([cat ofctl_monitor.log], [0], [dnl
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -ovs-appctl revalidator/wait
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   n_packets=6, n_bytes=360, actions=resubmit(1,1)
>   table=2, dl_src=10:11:11:11:11:11 actions=CONTROLLER:65535
> @@ -1111,8 +1104,7 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit])
>  AT_CHECK([cat ofctl_monitor.log], [0], [dnl
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -ovs-appctl revalidator/wait
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   n_packets=3, n_bytes=180, actions=goto_table:1
>  OFPST_FLOW reply (OF1.2):
> @@ -1143,8 +1135,7 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit])
>  AT_CHECK([cat ofctl_monitor.log], [0], [dnl
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -ovs-appctl revalidator/wait
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   n_packets=3, n_bytes=180, actions=resubmit(1,1)
>  OFPST_FLOW reply (OF1.2):
> @@ -2421,9 +2412,7 @@ NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=62
> in_port=1 (via action) data_len
>
>  
> mpls,in_port=0,vlan_tci=0x0000,dl_src=60:66:66:66:05:10,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=31,mpls_bos=1
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -AT_CHECK([ovs-appctl revalidator/wait], [0], [ignore])
> -
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl
>   cookie=0xa, n_packets=3, n_bytes=180, dl_src=40:44:44:44:44:42
> actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[[]],load:0x3->OXM_OF_MPLS_TC[[]],CONTROLLER:65535
>   cookie=0xa, n_packets=3, n_bytes=180, dl_src=40:44:44:44:44:43
> actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[[]],load:0x3->OXM_OF_MPLS_TC[[]],CONTROLLER:65535
> @@ -2508,8 +2497,7 @@ OFPT_PACKET_IN (OF1.2) (xid=0x0): table_id=1
> total_len=58 in_port=1 (via action)
>  
> tcp,in_port=0,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=50:54:00:00:00:01,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=32,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0
> tcp_csum:7744
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   n_packets=3, n_bytes=186, mplsm actions=pop_mpls:0x0800,goto_table:1
>   table=1, n_packets=3, n_bytes=174, ip,nw_tos=32 actions=CONTROLLER:65535
> @@ -2558,8 +2546,7 @@ OFPT_PACKET_IN (OF1.2) (xid=0x0): table_id=254
> total_len=58 in_port=1 (via actio
>  
> tcp,in_port=0,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=50:54:00:00:00:01,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=32,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0
> tcp_csum:7744
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   n_packets=3, n_bytes=186, mplsm
> actions=pop_mpls:0x0800,write_actions(dec_ttl,CONTROLLER:65535)
>  OFPST_FLOW reply (OF1.2):
> @@ -2598,9 +2585,7 @@ OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=1
> (via action) data_len=60 (unbuf
>  
> tcp,in_port=0,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn
> tcp_csum:0
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -AT_CHECK([ovs-appctl revalidator/wait], [0], [ignore])
> -
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl --protocols=OpenFlow10 dump-flows br0 | ofctl_strip |
> sort], [0], [dnl
>   n_packets=3, n_bytes=180, priority=0 actions=CONTROLLER:65535
>  NXST_FLOW reply:
> @@ -2642,8 +2627,7 @@ OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0
> total_len=60 in_port=1 (via no_matc
>  
> tcp,in_port=0,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn
> tcp_csum:0
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl --protocols=OpenFlow13 dump-flows br0 | ofctl_strip |
> sort], [0], [dnl
>   n_packets=3, n_bytes=180, priority=0 actions=CONTROLLER:65535
>  OFPST_FLOW reply (OF1.3):
> @@ -2677,8 +2661,7 @@ done
>  OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6])
>  ovs-appctl -t ovs-ofctl exit
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([cat ofctl_monitor.log], [0], [dnl
>  send: OFPT_ROLE_REQUEST (OF1.3) (xid=0x2): role=slave generation_id=1
>  OFPT_ROLE_REPLY (OF1.3) (xid=0x2): role=slave generation_id=1
> @@ -2734,8 +2717,7 @@ done
>  OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6])
>  ovs-appctl -t ovs-ofctl exit
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([cat ofctl_monitor.log], [0], [dnl
>  OFPT_PACKET_IN (OF1.4) (xid=0x0): cookie=0x0 total_len=60 in_port=1 (via
> no_match) data_len=60 (unbuffered)
>  
> tcp,in_port=0,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn
> tcp_csum:0
> @@ -3411,8 +3393,7 @@
> mpls,in_port=0,dl_vlan=99,dl_vlan_pcp=1,dl_src=40:44:44:44:54:59,dl_dst=50:54:00
>  00000030  00 00 00 00 00 00 50 00-00 00 00 00 00 00 00 00
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -AT_CHECK([ovs-appctl revalidator/wait], [0], [ignore])
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl --protocols=OpenFlow12 dump-flows br0 | ofctl_strip |
> sort], [0], [dnl
>   cookie=0xa, n_packets=3, n_bytes=180, dl_src=40:44:44:44:54:50
> actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[[]],push_vlan:0x8100,set_field:4195->vlan_vid,set_field:1->vlan_pcp,CONTROLLER:65535
>   cookie=0xa, n_packets=3, n_bytes=180, dl_src=40:44:44:44:54:51
> actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[[]],push_vlan:0x8100,set_field:4195->vlan_vid,set_field:1->vlan_pcp,CONTROLLER:65535
> @@ -3516,7 +3497,6 @@
> recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=later),
> packets:0, b
>
>  mode=drop
>
> -ovs-appctl revalidator/wait
>  AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl set-frags br0 $mode])
>  for type in no first later; do
> @@ -3534,7 +3514,6 @@
> recirc_id(0),in_port(90),eth_type(0x0800),ipv4(frag=later), packets:0,
> bytes:0,
>
>  mode=nx-match
>
> -ovs-appctl revalidator/wait
>  AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl set-frags br0 $mode])
>  for type in no first later; do
> @@ -3621,7 +3600,6 @@
> recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=33419
>  recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=later),
> packets:1, bytes:74, used:0.001s, actions:1
>  ])
>
> -ovs-appctl revalidator/wait
>  AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl set-frags br0 $mode])
>  for frag in 4000 6000 6008 4010; do
> @@ -3636,7 +3614,6 @@
> recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=0),
> p
>  recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=later),
> packets:1, bytes:60, used:0.001s, actions:1
>  ])
>
> -ovs-appctl revalidator/wait
>  AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl set-frags br0 $mode])
>  for frag in 4000 6000 6001 4002; do
> @@ -4688,9 +4665,8 @@ ovs-vsctl \
>        header=128 sampling=1 polling=1
>
>  dnl sleep long enough to get the sFlow datagram flushed out (may be
> delayed for up to 1 second)
> -for i in `seq 1 30`; do
> -    ovs-appctl time/warp 100
> -done
> +AT_CHECK([ovs-appctl time/warp 2000 100], [0], [ignore])
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  OVS_VSWITCHD_STOP
>  ovs-appctl -t test-sflow exit
>  AT_CHECK([[sort sflow.log | $EGREP 'LACPCOUNTERS|ERROR' | head -n 1 | sed
> 's/ /\
> @@ -4861,9 +4837,8 @@ for i in `seq 1 10`; do
>      ovs-appctl netdev-dummy/receive br0
> 'in_port(0),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no)'
>  done
>
> -ovs-appctl time/warp 1000
> -ovs-appctl revalidator/wait
> -
> +AT_CHECK([ovs-appctl time/warp 1000], [0], [ignore])
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl dump-flows br0], [0], [stdout])
>  AT_CHECK([STRIP_XIDS stdout | sed -n
> 's/duration=[[0-9]]*\.[[0-9]]*s/duration=0.0s/p' | sort], [0], [dnl
>   cookie=0x0, duration=0.0s, table=0, n_packets=0, n_bytes=0, idle_age=1,
> icmp actions=NORMAL
> @@ -5002,7 +4977,7 @@ AT_CHECK([ovs-appctl netdev-dummy/receive br0
> 0021853763af0026b98cb0f90800450000
>  AT_CHECK([ovs-appctl time/warp 1000 && ovs-appctl time/warp 1000], [0],
> [warped
>  warped
>  ])
> -ovs-appctl revalidator/wait
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0],
>  [NXST_FLOW reply:
>   n_packets=1, n_bytes=74, idle_timeout=60,
> actions=fin_timeout(idle_timeout=5)
> @@ -6120,9 +6095,7 @@ NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0
> total_len=60 in_port=1 (via actio
>
>  
> in_port=0,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -AT_CHECK([ovs-appctl revalidator/wait], [0], [ignore])
> -
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -O OpenFlow13 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   n_packets=3, n_bytes=180, dl_dst=50:54:00:00:00:0a actions=goto_table:1
>   table=1, n_packets=3, n_bytes=180, dl_dst=50:54:00:00:00:0a
> actions=CONTROLLER:65535
> @@ -6175,9 +6148,7 @@ NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0
> total_len=60 in_port=1 (via actio
>
>  
> in_port=0,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
>  ])
>
> -AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
> -AT_CHECK([ovs-appctl revalidator/wait], [0], [ignore])
> -
> +AT_CHECK([ovs-appctl revalidator/purge], [0])
>  AT_CHECK([ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort],
> [0], [dnl
>   table=1, n_packets=3, n_bytes=180, dl_dst=50:54:00:00:00:0a
> actions=CONTROLLER:65535
>  OFPST_FLOW reply (OF1.1):
> --
> 1.7.10.4
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to