X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=blobdiff_plain;f=tests%2Fovs-vswitchd.at;h=a90477d8629e5b9548853dc6d348157fa2c45c82;hp=c55274164119cb44f85f651537889dbd27845872;hb=12eb035b810ff9d537d6ff9f1eb8ad5564c1f644;hpb=6d308b28c023e864925b1a6775b3b91d215e89bf diff --git a/tests/ovs-vswitchd.at b/tests/ovs-vswitchd.at index c55274164..a90477d86 100644 --- a/tests/ovs-vswitchd.at +++ b/tests/ovs-vswitchd.at @@ -25,3 +25,44 @@ AT_CAPTURE_FILE([ovs-vswitchd.log]) dnl ovs-vswitchd detached OK or we wouldn't have made it this far. Success. AT_CLEANUP + + +dnl ---------------------------------------------------------------------- +m4_define([OVS_VSCTL_CHECK_RX_PKT], [ +AT_CHECK([ovs-vsctl list int $1 | grep statistics | sed -n 's/^.*\(rx_packets=[[0-9]]\+\).*$/\1/p'],[0], +[dnl +rx_packets=$2 +]) +]) + +AT_SETUP([ovs-vswitchd -- stats-update-interval]) +OVS_VSWITCHD_START([add-port br0 p1 -- set int p1 type=internal]) +ovs-appctl time/stop + +dnl at the beginning, the udpate of rx_packets should happen every 5 seconds. +for i in `seq 0 10`; do ovs-appctl time/warp 1000; done +OVS_VSCTL_CHECK_RX_PKT([p1], [0]) +AT_CHECK([ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) +for i in `seq 0 10`; do ovs-appctl time/warp 1000; done +OVS_VSCTL_CHECK_RX_PKT([p1], [1]) + +dnl set the stats update interval to 100K ms, the following 'recv' should not be updated. +AT_CHECK([ovs-vsctl set O . other_config:stats-update-interval=100000]) +for i in `seq 0 50`; do ovs-appctl time/warp 1000; done +for i in `seq 1 5`; do + AT_CHECK([ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) +done + +OVS_VSCTL_CHECK_RX_PKT([p1], [1]) +dnl advance the clock by 100K ms, the previous 'recv' should be updated. +for i in `seq 0 99`; do ovs-appctl time/warp 1000; done +OVS_VSCTL_CHECK_RX_PKT([p1], [6]) + +dnl now remove the configuration. 'recv' one packet. there should be an update after 5000 ms. +AT_CHECK([ovs-vsctl clear O . other_config]) +AT_CHECK([ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) +for i in `seq 0 10`; do ovs-appctl time/warp 1000; done +OVS_VSCTL_CHECK_RX_PKT([p1], [7]) + +OVS_VSWITCHD_STOP +AT_CLEANUP \ No newline at end of file