-- --id=@t0 create Flow_Table name=main \
-- --id=@t1 create Flow_Table flow-limit=1024 \
-- set bridge br0 'flow_tables={1=@t1,0=@t0}' \
- | perl $srcdir/uuidfilt.pl],
+ | ${PERL} $srcdir/uuidfilt.pl],
[0], [<0>
<1>
])
-- --id=@t0 create Flow_Table name=main \
-- --id=@t1 create Flow_Table flow-limit=1024 \
-- set bridge br0 'flow_tables={1=@t1,0=@t0}' \
- | perl $srcdir/uuidfilt.pl],
+ | ${PERL} $srcdir/uuidfilt.pl],
[0], [<0>
<1>
])
[ovs-vsctl \
-- --id=@t0 create Flow_Table flow-limit=4 \
-- set bridge br0 flow_tables:0=@t0 \
- | perl $srcdir/uuidfilt.pl],
+ | ${PERL} $srcdir/uuidfilt.pl],
[0], [<0>
])
# Add 4 flows.
[ovs-vsctl \
-- --id=@t0 create Flow_Table flow-limit=4 \
-- set bridge br0 flow_tables:0=@t0 \
- | perl $srcdir/uuidfilt.pl],
+ | ${PERL} $srcdir/uuidfilt.pl],
[0], [<0>
])
# Add 4 flows.
[ovs-vsctl \
-- --id=@t0 create Flow_Table flow-limit=4 overflow-policy=evict \
-- set bridge br0 flow_tables:0=@t0 \
- | perl $srcdir/uuidfilt.pl],
+ | ${PERL} $srcdir/uuidfilt.pl],
[0], [<0>
])
# Add 4 flows.
[ovs-vsctl \
-- --id=@t0 create Flow_Table flow-limit=4 overflow-policy=evict \
-- set bridge br0 flow_tables:0=@t0 \
- | perl $srcdir/uuidfilt.pl],
+ | ${PERL} $srcdir/uuidfilt.pl],
[0], [<0>
])
# Add 4 flows.
overflow-policy=evict \
groups='"NXM_OF_IN_PORT[[]]"' \
-- set bridge br0 flow_tables:0=@t0 \
- | perl $srcdir/uuidfilt.pl],
+ | ${PERL} $srcdir/uuidfilt.pl],
[0], [<0>
])
# Add 4 flows.
overflow-policy=evict \
groups='"NXM_OF_IN_PORT[[]]"' \
-- set bridge br0 flow_tables:0=@t0 \
- | perl $srcdir/uuidfilt.pl],
+ | ${PERL} $srcdir/uuidfilt.pl],
[0], [<0>
])
# Add 4 flows.
# Become slave (generation_id is initially undefined, so 2^63+2 should not be stale)
ovs-appctl -t ovs-ofctl ofctl/send 031800180000000300000003000000008000000000000002
echo >>expout "send: OFPT_ROLE_REQUEST (OF1.2) (xid=0x3): role=slave generation_id=9223372036854775810"
-echo >>expout "OFPT_ROLE_REPLY (OF1.2) (xid=0x3): role=slave"
+echo >>expout "OFPT_ROLE_REPLY (OF1.2) (xid=0x3): role=slave generation_id=9223372036854775810"
# Try to become the master using a stale generation ID
ovs-appctl -t ovs-ofctl ofctl/send 031800180000000400000002000000000000000000000002
# Become master using a valid generation ID
ovs-appctl -t ovs-ofctl ofctl/send 031800180000000500000002000000000000000000000001
echo >>expout "send: OFPT_ROLE_REQUEST (OF1.2) (xid=0x5): role=master generation_id=1"
-echo >>expout "OFPT_ROLE_REPLY (OF1.2) (xid=0x5): role=master"
+echo >>expout "OFPT_ROLE_REPLY (OF1.2) (xid=0x5): role=master generation_id=1"
ovs-appctl -t ovs-ofctl ofctl/barrier
echo >>expout "OFPT_BARRIER_REPLY (OF1.2) (xid=0x3):"
OVS_VSWITCHD_STOP
AT_CLEANUP
+dnl This test checks that tunnel metadata is encoded in packet_in structures.
+AT_SETUP([ofproto - packet-out with tunnel metadata (OpenFlow 1.2)])
+OVS_VSWITCHD_START
+
+# Start a monitor listening for packet-ins.
+AT_CHECK([ovs-ofctl -O OpenFlow12 monitor br0 --detach --no-chdir --pidfile])
+ovs-appctl -t ovs-ofctl ofctl/send 0309000c0123456700000080
+ovs-appctl -t ovs-ofctl ofctl/barrier
+ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
+AT_CAPTURE_FILE([monitor.log])
+
+# Send a packet-out with set field actions to set some tunnel metadata, and forward to controller
+AT_CHECK([ovs-ofctl -O OpenFlow12 packet-out br0 none 'set_field:127.0.0.1->tun_src,set_field:0x01020304->tun_id,set_field:192.168.0.1->tun_dst, controller' '0001020304050010203040501234'])
+
+# Stop the monitor and check its output.
+ovs-appctl -t ovs-ofctl ofctl/barrier
+ovs-appctl -t ovs-ofctl exit
+
+AT_CHECK([sed 's/ (xid=0x[[0-9a-fA-F]]*)//' monitor.log], [0], [dnl
+OFPT_PACKET_IN (OF1.2): total_len=14 in_port=ANY tun_id=0x1020304 tun_src=127.0.0.1 tun_dst=192.168.0.1 (via action) data_len=14 (unbuffered)
+metadata=0,in_port=0,vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
+OFPT_BARRIER_REPLY (OF1.2):
+])
+
+OVS_VSWITCHD_STOP
+AT_CLEANUP
+
AT_SETUP([ofproto - flow monitoring])
AT_KEYWORDS([monitor])
OVS_VSWITCHD_START
}
print $_ foreach sort(@buffer);
'
-AT_CHECK([sed 's/ (xid=0x[[1-9a-fA-F]][[0-9a-fA-F]]*)//' monitor.log | perl -e "$sort"], [0],
+AT_CHECK([sed 's/ (xid=0x[[1-9a-fA-F]][[0-9a-fA-F]]*)//' monitor.log | ${PERL} -e "$sort"], [0],
[NXST_FLOW_MONITOR reply (xid=0x0):
event=ADDED table=0 cookie=0 in_port=0,dl_vlan=124 actions=output:2
NXST_FLOW_MONITOR reply (xid=0x0):
# Add $n_msgs flows.
(echo "in_port=2,actions=output:2"
-perl -e '
+${PERL} -e '
for ($i = 0; $i < '$n_msgs'; $i++) {
print "cookie=1,reg1=$i,actions=drop\n";
}