ovs-appctl time/warp 5000
ovs-appctl time/warp 5000
ovs-appctl time/warp 5000
- AT_CHECK([ovs-ofctl dump-flows br0 table=1 | ofctl_strip | sort], [0], [dnl
+sleep 1
+AT_CHECK([ovs-ofctl dump-flows br0 table=1 | ofctl_strip | sort], [0], [dnl
table=1, priority=0 actions=FLOOD
NXST_FLOW reply:
])
# (i % 3 == 0) below is somehow arbitrary but chosen to ensure
# that we update the flow's 'used' frequently enough to prevent
# idle_timeout.
- if [[ $i -eq 1 -or $((i % 3)) -eq 0 ]]; then
+ if [[ $i -eq 1 -o $((i % 3)) -eq 0 ]]; then
sleep 1
fi
done
# it's difficult to predict the exact timing of rule expiry
# because it's affected by flow dumper thread via udpif_dump_seq.
# hard_timeout value for this test was chosen to overcome the uncertainty.
- if [[ $i -eq 1 -o $i -eq 6 -o $i -eq 7 ]]; then
+ #
+ # receive #1 learn, install flow with hard_timeout=10
+ # sleep to ensure the flow installation
+ # (warp, timeout left 8s)
+ # receive #2 the learned flow
+ # (warp, timeout left 6s)
+ # receive #3
+ # (warp, timeout left 4s)
+ # receive #4
+ # (warp, timeout left 2s)
+ # receive #5
+ # (warp, timeout left 0s)
+ # NOTE: OVS does not consider this expired yet. cf. rule_expire()
+ # receive #6
+ # (warp, timeout left -2s)
+ # sleep to ensure flow expiration
+ # receive #7 learn, install flow with hard_timeout=10
+ # sleep to ensure the flow installation
+ # (warp, timeout left 8s)
+ # receive #8
+ # (warp, timeout left 6s)
+ # receive #9
+ # (warp, timeout left 4s)
+ # receive #10
+ # (warp, timeout left 2s)
+ if [[ $i -eq 1 -o $i -eq 7 ]]; then
sleep 1
fi
ovs-appctl time/warp 2000
+ if [[ $i -eq 6 ]]; then
+ sleep 1
+ fi
done
# Check that the first packet of each flow went out port 2 and the rest out