From b6ec827fe0edb5478ac0f580eaa0597b1166a0fb Mon Sep 17 00:00:00 2001 From: Joe Stringer Date: Wed, 20 May 2015 13:30:55 -0700 Subject: [PATCH] tests: Check that ofproto/trace accepts dpctl output. Signed-off-by: Joe Stringer Acked-by: Ben Pfaff --- tests/ofproto-dpif.at | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at index f3a660b95..b5a9ad917 100644 --- a/tests/ofproto-dpif.at +++ b/tests/ofproto-dpif.at @@ -4402,6 +4402,54 @@ ovs-appctl: ovs-vswitchd: server returned an error OVS_VSWITCHD_STOP AT_CLEANUP +# The third test checks that the output of "ovs-dpctl -m" is valid to trace. +AT_SETUP([ofproto-dpif - ofproto/trace from dpctl output]) +OVS_VSWITCHD_START([dnl + set Open_vSwitch . other_config:max-idle=10000 \ + -- add-port br0 p1 -- set Interface p1 type=dummy]) + +AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) +ovs-appctl revalidator/wait +AT_CHECK([ovs-appctl dpif/dump-flows -m br0 | sed 's/, packets.*$//' > dp_flows1.txt]) + +odp_flow=`cat dp_flows1.txt` +AT_CHECK([ovs-appctl ofproto/trace "$odp_flow" | sed 's/\([[Ff]]low:\).*/\1 /'], [0], [dnl +Bridge: br0 +Flow: +No match, packets dropped because OFPPC_NO_PACKET_IN is set on in_port. + +Rule: table=254 cookie=0 priority=0,reg0=0x2 +OpenFlow actions=drop + +Final flow: +Megaflow: +Datapath actions: drop +]) + +dnl Now, try again without megaflows: +ovs-appctl upcall/disable-megaflows + +AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) +ovs-appctl revalidator/wait +AT_CHECK([ovs-appctl dpif/dump-flows -m br0 | sed 's/, packets.*$//' > dp_flows2.txt]) + +odp_flow=`cat dp_flows2.txt` +AT_CHECK([ovs-appctl ofproto/trace "$odp_flow" | sed 's/\([[Ff]]low:\).*/\1 /'], [0], [dnl +Bridge: br0 +Flow: +No match, packets dropped because OFPPC_NO_PACKET_IN is set on in_port. + +Rule: table=254 cookie=0 priority=0,reg0=0x2 +OpenFlow actions=drop + +Final flow: +Megaflow: +Datapath actions: drop +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + AT_SETUP([ofproto-dpif - ofproto/trace-packet-out]) OVS_VSWITCHD_START ADD_OF_PORTS([br0], 1, 2, 3) -- 2.20.1