Signed-off-by: Simon Horman <ho...@verge.net.au>

---
v2
* First post
---
 tests/ofproto.at | 346 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 346 insertions(+)

diff --git a/tests/ofproto.at b/tests/ofproto.at
index 4240b98..892ab93 100644
--- a/tests/ofproto.at
+++ b/tests/ofproto.at
@@ -2425,6 +2425,352 @@ NXT_FLOW_MONITOR_RESUMED:
 OVS_VSWITCHD_STOP
 AT_CLEANUP
 
+AT_SETUP([ofproto - flow monitoring (OpenFlow 1.3)])
+AT_KEYWORDS([monitor])
+OVS_VSWITCHD_START
+
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=123,actions=output:1
+
+# Start a monitor watching the flow table and check the initial reply.
+ovs-ofctl -OOpenFlow13 monitor br0 watch: --detach --no-chdir --pidfile 
>monitor.log 2>&1
+AT_CAPTURE_FILE([monitor.log])
+ovs-appctl -t ovs-ofctl ofctl/barrier
+AT_CHECK([sed 's/ (xid=0x[[1-9a-fA-F]][[0-9a-fA-F]]*)//' monitor.log], [0],
+  [ONFST_FLOW_MONITOR reply (OF1.3):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:1
+OFPT_BARRIER_REPLY (OF1.3):
+])
+
+# Add, delete, and modify some flows and check the updates.
+ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=124,actions=output:2
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=123,actions=output:5
+ovs-ofctl -OOpenFlow13 add-flow br0 
in_port=0,dl_vlan=123,dl_vlan_pcp=0,actions=output:6
+ovs-ofctl -OOpenFlow13 add-flow br0 
in_port=0,dl_vlan=123,dl_vlan_pcp=1,actions=output:7
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=123,actions=output:8
+ovs-ofctl -OOpenFlow13 add-flow br0 
in_port=0,dl_vlan=65535,dl_vlan_pcp=0,actions=output:9
+ovs-ofctl -OOpenFlow13 add-flow br0 
in_port=0,dl_vlan=65535,dl_vlan_pcp=1,actions=output:10
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=65535,actions=output:11
+ovs-ofctl -OOpenFlow13 add-flow br0 
in_port=0,dl_vlan=8191,dl_vlan_pcp=0,actions=output:12
+ovs-ofctl -OOpenFlow13 add-flow br0 
in_port=0,dl_vlan=8191,dl_vlan_pcp=1,actions=output:13
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=8191,actions=output:14
+ovs-ofctl -OOpenFlow13 add-flow br0 
in_port=0,dl_vlan=0,dl_vlan_pcp=0,actions=output:15
+ovs-ofctl -OOpenFlow13 add-flow br0 
in_port=0,dl_vlan=0,dl_vlan_pcp=1,actions=output:16
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=0,actions=output:17
+ovs-ofctl -OOpenFlow13 add-flow br0 
in_port=0,dl_vlan=0,dl_vlan_pcp=0,actions=output:18
+ovs-ofctl -OOpenFlow13 add-flow br0 
in_port=0,dl_vlan=0,dl_vlan_pcp=1,actions=output:19
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=0,actions=output:20
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan_pcp=0,actions=output:21
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan_pcp=1,actions=output:22
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,actions=output:23
+ovs-ofctl -OOpenFlow13 mod-flows br0 dl_vlan=123,actions=output:3
+ovs-ofctl -OOpenFlow13 del-flows br0 dl_vlan=123
+ovs-ofctl -OOpenFlow13 del-flows br0
+ovs-appctl -t ovs-ofctl ofctl/barrier
+AT_CHECK([sed 's/ (xid=0x[[1-9a-fA-F]][[0-9a-fA-F]]*)//' monitor.log | ${PERL} 
$srcdir/multiline-sort.pl], [0],
+[ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=124 actions=output:2
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:5
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123,dl_vlan_pcp=0 
actions=output:6
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123,dl_vlan_pcp=1 
actions=output:7
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:8
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=0 
actions=output:9
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=1 
actions=output:10
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,vlan_tci=0x0000/0x1fff 
actions=output:11
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=4095,dl_vlan_pcp=0 
actions=output:12
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=4095,dl_vlan_pcp=1 
actions=output:13
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=4095 actions=output:14
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=0 
actions=output:15
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=1 
actions=output:16
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0 actions=output:17
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=0 
actions=output:18
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=1 
actions=output:19
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0 actions=output:20
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan_pcp=0 actions=output:21
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan_pcp=1 actions=output:22
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=0 actions=output:23
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:3
+ event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123,dl_vlan_pcp=0 
actions=output:3
+ event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123,dl_vlan_pcp=1 
actions=output:3
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=123 
actions=output:3
+ event=DELETED reason=delete table=0 cookie=0 
in_port=0,dl_vlan=123,dl_vlan_pcp=0 actions=output:3
+ event=DELETED reason=delete table=0 cookie=0 
in_port=0,dl_vlan=123,dl_vlan_pcp=1 actions=output:3
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=DELETED reason=delete table=0 cookie=0 in_port=0 actions=output:23
+ event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=0 
actions=output:20
+ event=DELETED reason=delete table=0 cookie=0 
in_port=0,dl_vlan=0,dl_vlan_pcp=0 actions=output:18
+ event=DELETED reason=delete table=0 cookie=0 
in_port=0,dl_vlan=0,dl_vlan_pcp=1 actions=output:19
+ event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=124 
actions=output:2
+ event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=4095 
actions=output:14
+ event=DELETED reason=delete table=0 cookie=0 
in_port=0,dl_vlan=4095,dl_vlan_pcp=0 actions=output:12
+ event=DELETED reason=delete table=0 cookie=0 
in_port=0,dl_vlan=4095,dl_vlan_pcp=1 actions=output:13
+ event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan_pcp=0 
actions=output:21
+ event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan_pcp=1 
actions=output:22
+ event=DELETED reason=delete table=0 cookie=0 in_port=0,vlan_tci=0x0000/0x1fff 
actions=output:11
+OFPT_BARRIER_REPLY (OF1.3):
+])
+
+# Check that our own changes are reported as abbreviations.
+ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=1,actions=output:2
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=2,actions=output:1
+ovs-appctl -t ovs-ofctl ofctl/barrier
+AT_CHECK([ovs-appctl -t ovs-ofctl ofctl/send "\
+04 0e 00 38 12 34 56 78 00 00 00 00 00 00 00 00 \
+00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 \
+ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
+00 01 00 04 00 00 00 00 \
+"], [0], [sent
+])
+ovs-appctl -t ovs-ofctl ofctl/barrier
+AT_CHECK([ovs-ofctl -OOpenFlow13 dump-flows br0 | ofctl_strip], [0],
+[OFPST_FLOW reply (OF1.3):
+])
+AT_CHECK([sed 's/ (xid=0x[[1-9a-fA-F]][[0-9a-fA-F]]*)//' monitor.log], [0],
+[ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=1 actions=output:2
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=2 actions=output:1
+OFPT_BARRIER_REPLY (OF1.3):
+send: OFPT_FLOW_MOD (OF1.3): DEL priority=0 actions=drop
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ABBREV xid=0x12345678
+OFPT_BARRIER_REPLY (OF1.3):
+])
+
+ovs-appctl -t ovs-ofctl exit
+OVS_VSWITCHD_STOP
+AT_CLEANUP
+
+AT_SETUP([ofproto - flow monitoring with !own (OpenFlow 1.3)])
+AT_KEYWORDS([monitor])
+OVS_VSWITCHD_START
+
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=123,actions=output:1
+
+# Start a monitor watching the flow table and check the initial reply.
+ovs-ofctl -OOpenFlow13 monitor br0 watch:\!own --detach --no-chdir --pidfile 
>monitor.log 2>&1
+AT_CAPTURE_FILE([monitor.log])
+ovs-appctl -t ovs-ofctl ofctl/barrier
+AT_CHECK([sed 's/ (xid=0x[[1-9a-fA-F]][[0-9a-fA-F]]*)//' monitor.log], [0],
+  [ONFST_FLOW_MONITOR reply (OF1.3):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:1
+OFPT_BARRIER_REPLY (OF1.3):
+])
+
+# Check that our own changes are reported as full updates.
+ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=1,actions=output:2
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=2,actions=output:1
+ovs-appctl -t ovs-ofctl ofctl/barrier
+AT_CHECK([ovs-appctl -t ovs-ofctl ofctl/send "\
+04 0e 00 38 12 34 56 78 00 00 00 00 00 00 00 00 \
+00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 \
+ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
+00 01 00 04 00 00 00 00 \
+"], [0], [sent
+])
+ovs-appctl -t ovs-ofctl ofctl/barrier
+AT_CHECK([ovs-ofctl -OOpenFlow13 dump-flows br0 | ofctl_strip], [0],
+[OFPST_FLOW reply (OF1.3):
+])
+AT_CHECK([sed 's/ (xid=0x[[1-9a-fA-F]][[0-9a-fA-F]]*)//' monitor.log | ${PERL} 
$srcdir/multiline-sort.pl], [0],
+[ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=1 actions=output:2
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=ADDED table=0 cookie=0 in_port=2 actions=output:1
+OFPT_BARRIER_REPLY (OF1.3):
+send: OFPT_FLOW_MOD (OF1.3): DEL priority=0 actions=drop
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=123 
actions=output:1
+ event=DELETED reason=delete table=0 cookie=0 in_port=1 actions=output:2
+ event=DELETED reason=delete table=0 cookie=0 in_port=2 actions=output:1
+OFPT_BARRIER_REPLY (OF1.3):
+])
+
+ovs-appctl -t ovs-ofctl exit
+OVS_VSWITCHD_STOP
+AT_CLEANUP
+
+AT_SETUP([ofproto - flow monitoring with out_port (OpenFlow 1.3)])
+AT_KEYWORDS([monitor])
+OVS_VSWITCHD_START
+
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=121,actions=output:1
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=122,actions=output:1
+ovs-ofctl -OOpenFlow13 add-flow br0 in_port=0,dl_vlan=123,actions=output:2
+
+# Start a monitor watching the flow table and check the initial reply.
+ovs-ofctl -OOpenFlow13 monitor br0 watch:out_port=2 --detach --no-chdir 
--pidfile >monitor.log 2>&1
+AT_CAPTURE_FILE([monitor.log])
+ovs-appctl -t ovs-ofctl ofctl/barrier
+AT_CHECK([sed 's/ (xid=0x[[1-9a-fA-F]][[0-9a-fA-F]]*)//' monitor.log], [0],
+  [ONFST_FLOW_MONITOR reply (OF1.3):
+ event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:2
+OFPT_BARRIER_REPLY (OF1.3):
+])
+
+ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
+
+# Add, modify flows and check the updates.
+ovs-ofctl -OOpenFlow13 mod-flows br0 dl_vlan=121,actions=drop
+ovs-ofctl -OOpenFlow13 mod-flows br0 dl_vlan=122,actions=output:1,output:2
+ovs-appctl -t ovs-ofctl ofctl/barrier
+
+ovs-ofctl -OOpenFlow13 mod-flows br0 dl_vlan=123,actions=output:1,output:2
+ovs-appctl -t ovs-ofctl ofctl/barrier
+
+ovs-ofctl -OOpenFlow13 mod-flows br0 dl_vlan=122,actions=output:1
+ovs-appctl -t ovs-ofctl ofctl/barrier
+ovs-ofctl -OOpenFlow13 mod-flows br0 dl_vlan=123,actions=output:2
+ovs-appctl -t ovs-ofctl ofctl/barrier
+
+AT_CHECK([sed 's/ (xid=0x[[1-9a-fA-F]][[0-9a-fA-F]]*)//' monitor.log], [0],
+[ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=122 
actions=output:1,output:2
+OFPT_BARRIER_REPLY (OF1.3):
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123 
actions=output:1,output:2
+OFPT_BARRIER_REPLY (OF1.3):
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=122 actions=output:1
+OFPT_BARRIER_REPLY (OF1.3):
+ONFST_FLOW_MONITOR reply (OF1.3) (xid=0x0):
+ event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:2
+OFPT_BARRIER_REPLY (OF1.3):
+])
+
+ovs-appctl -t ovs-ofctl exit
+OVS_VSWITCHD_STOP
+AT_CLEANUP
+
+AT_SETUP([ofproto - flow monitoring pause and resume (OpenFlow 1.3)])
+AT_KEYWORDS([monitor])
+
+# The maximum socket receive buffer size is important for this test, which
+# tests behavior when the receive buffer overflows.
+if test -e /proc/sys/net/core/rmem_max; then
+    # Linux
+    rmem_max=`cat /proc/sys/net/core/rmem_max`
+elif rmem_max=`sysctl -n net.inet.tcp.recvbuf_max 2>/dev/null`; then
+    : # FreeBSD, NetBSD
+else
+    # Don't know how to get maximum socket receive buffer on this OS
+    AT_SKIP_IF([:])
+fi
+# Calculate the total amount of queuing: rmem_max in the kernel, 128 kB
+# in ofproto sending userspace (see ofmonitor_flush() in connmgr.c).
+queue_size=`expr $rmem_max + 128 \* 1024`
+echo rmem_max=$rmem_max queue_size=$queue_size
+
+# If there's too much queuing skip the test to avoid timing out.
+AT_SKIP_IF([test $rmem_max -gt 1048576])
+
+# Each flow update message takes up at least 48 bytes of space in queues
+# and in practice more than that.
+n_msgs=`expr $queue_size / 48`
+echo n_msgs=$n_msgs
+
+OVS_VSWITCHD_START
+
+# Start a monitor watching the flow table, then make it block.
+ON_EXIT([kill `cat ovs-ofctl.pid`])
+ovs-ofctl -OOpenFlow13 monitor br0 watch: --detach --no-chdir --pidfile 
>monitor.log 2>&1
+AT_CAPTURE_FILE([monitor.log])
+ovs-appctl -t ovs-ofctl ofctl/block
+
+# Add $n_msgs flows.
+(echo "in_port=2,cookie=2,actions=drop"
+${PERL} -e '
+    for ($i = 0; $i < '$n_msgs'; $i++) {
+        print "cookie=1,reg1=$i,actions=drop\n";
+    }
+') > flows.txt
+AT_CHECK([ovs-ofctl -OOpenFlow13 add-flows br0 flows.txt])
+AT_CHECK([ovs-ofctl -OOpenFlow13 add-flow br0 in_port=1,cookie=3,actions=drop])
+AT_CHECK([ovs-ofctl -OOpenFlow13 mod-flows br0 in_port=2,actions=output:2])
+AT_CHECK([ovs-ofctl -OOpenFlow13 del-flows br0 cookie=1/-1])
+
+ovs-appctl -t ovs-ofctl ofctl/unblock
+
+# Wait for the connection resumed.
+# A barrier doesn't work for this purpose.
+#    https://www.mail-archive.com/dev@openvswitch.org/msg27013.html
+#    https://www.mail-archive.com/dev@openvswitch.org/msg27675.html
+OVS_WAIT_UNTIL([grep ONF_FLOW_MONITOR_RESUMED monitor.log])
+
+ovs-appctl -t ovs-ofctl exit
+
+# Check that the flow monitor reported the same number of flows
+# added and deleted, but fewer than we actually added and deleted.
+adds=`grep -c 'ADDED.*reg1=' monitor.log`
+deletes=`grep -c 'DELETED.*reg1=' monitor.log`
+echo adds=$adds deletes=$deletes
+AT_CHECK([test $adds -gt 100 && test $adds -lt $n_msgs])
+AT_CHECK([test $adds = $deletes])
+
+# Check that the flow monitor reported everything in the expected order:
+#
+#     event=ADDED table=0 cookie=0x2 in_port=2
+#     event=ADDED table=0 cookie=0x1 reg1=0x22
+# ...
+#    ONF_FLOW_MONITOR_PAUSED:
+# ...
+#     event=DELETED reason=delete table=0 cookie=0x1 reg1=0x22
+# ...
+#     event=ADDED table=0 cookie=0x3 in_port=1
+#     event=MODIFIED table=0 cookie=0x2 in_port=2 actions=output:2
+#    ONF_FLOW_MONITOR_RESUMED:
+#
+# except that, between the PAUSED and RESUMED, the order of the ADDED
+# and MODIFIED lines lines depends on hash order, that is, it varies
+# as we change the hash function or change architecture.  Therefore,
+# we use a couple of tests below to accept both orders.
+AT_CHECK([ofctl_strip < monitor.log | sed -n -e '
+/reg1=0x22$/p
+/cookie=0x[[23]]/p
+/ONF_FLOW_MONITOR_PAUSED/p
+/ONF_FLOW_MONITOR_RESUMED/p
+' > monitor.log.subset])
+AT_CHECK([grep -v MODIFIED monitor.log.subset], [0], [dnl
+ event=ADDED table=0 cookie=0x2 in_port=2
+ event=ADDED table=0 cookie=0x1 reg1=0x22
+ONF_FLOW_MONITOR_PAUSED (OF1.3):
+ event=DELETED reason=delete table=0 cookie=0x1 reg1=0x22
+ event=ADDED table=0 cookie=0x3 in_port=1
+ONF_FLOW_MONITOR_RESUMED (OF1.3):
+])
+AT_CHECK([grep -v ADDED monitor.log.subset], [0], [dnl
+ONF_FLOW_MONITOR_PAUSED (OF1.3):
+ event=DELETED reason=delete table=0 cookie=0x1 reg1=0x22
+ event=MODIFIED table=0 cookie=0x2 in_port=2 actions=output:2
+ONF_FLOW_MONITOR_RESUMED (OF1.3):
+])
+
+OVS_VSWITCHD_STOP
+AT_CLEANUP
+
 AT_SETUP([ofproto - flow monitoring (OpenFlow 1.4)])
 AT_KEYWORDS([monitor])
 OVS_VSWITCHD_START
-- 
2.0.0.rc2

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to