X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Fofproto-dpif.at;h=a306c112b7eaaf180bb35ca074c78877f97cea20;hb=67e96a5dca90225358936b1392bba8b3207805b1;hp=f5c1358e7ceae36175103054c1a7580f35487ae9;hpb=f27f21341ab42ad0e898d6c0e1bd4e98af82afda;p=openvswitch diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at index f5c1358e..a306c112 100644 --- a/tests/ofproto-dpif.at +++ b/tests/ofproto-dpif.at @@ -151,6 +151,7 @@ OVS_VSWITCHD_START([dnl add-port br0 p7 -- set Interface p7 type=dummy ]) AT_DATA([flows.txt], [dnl +in_port=local actions=local,flood in_port=1 actions=flood in_port=2 actions=all in_port=3 actions=output:65534,output:1,output:2,output:3,output:4,output:5,output:6,output:7 @@ -160,6 +161,16 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) AT_CHECK([ovs-ofctl mod-port br0 5 noforward]) AT_CHECK([ovs-ofctl mod-port br0 6 noflood]) +AT_CHECK([ovs-appctl ofproto/trace br0 'in_port(0),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'], [0], [stdout]) +AT_CHECK([tail -1 stdout \ +| sed -e 's/Datapath actions: //' | tr ',' '\n' | sort], [0], [dnl +1 +2 +3 +4 +7 +]) + AT_CHECK([ovs-appctl ofproto/trace br0 'in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'], [0], [stdout]) AT_CHECK([tail -1 stdout \ | sed -e 's/Datapath actions: //' | tr ',' '\n' | sort], [0], [dnl @@ -972,6 +983,7 @@ OVS_VSWITCHD_START( AT_CHECK([test-netflow --detach --pidfile $NETFLOW_PORT:127.0.0.1 > netflow.log])AT_CAPTURE_FILE([netflow.log]) +AT_CHECK([ovs-appctl time/stop]) n=1 while test $n -le 60; do n=`expr $n + 1` @@ -1125,3 +1137,40 @@ AT_CHECK([test $hard4 -lt $duration4]) OVS_VSWITCHD_STOP AT_CLEANUP + +AT_SETUP([ofproto-dpif - fin_timeout]) +OVS_VSWITCHD_START +AT_DATA([flows.txt], [dnl +in_port=1 actions=output:2 +in_port=2 actions=mod_vlan_vid:17,output:1 +]) +AT_CHECK([ovs-ofctl add-flow br0 'idle_timeout=60,actions=fin_timeout(idle_timeout=5)']) +AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0], +[NXST_FLOW reply: + idle_timeout=60, actions=fin_timeout(idle_timeout=5) +]) +# Check that a TCP SYN packet does not change the timeout. (Because +# flow stats updates are mainly what implements the fin_timeout +# feature, we warp forward a couple of times to ensure that flow stats +# run before re-checking the flow table.) +AT_CHECK([ovs-appctl netdev-dummy/receive br0 0021853763af0026b98cb0f908004500003c2e2440004006465dac11370dac11370b828b0016751e267b00000000a00216d017360000020405b40402080a2d25085f0000000001030307], [0], [success +]) +AT_CHECK([ovs-appctl time/warp 1000 && ovs-appctl time/warp 1000], [0], [warped +warped +]) +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) +]) +# Check that a TCP FIN packet does change the timeout. +AT_CHECK([ovs-appctl netdev-dummy/receive br0 0021853763af0026b98cb0f90800451000342e3e40004006463bac11370dac11370b828b0016751e319dfc96399b801100717ae800000101080a2d250a9408579588], [0], [success +]) +AT_CHECK([ovs-appctl time/warp 1000 && ovs-appctl time/warp 1000], [0], [warped +warped +]) +AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0], +[NXST_FLOW reply: + n_packets=2, n_bytes=140, idle_timeout=5, actions=fin_timeout(idle_timeout=5) +]) +OVS_VSWITCHD_STOP +AT_CLEANUP