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