diff options
author | Aaron Rosen <arosen@clemson.edu> | 2012-02-08 10:59:41 -0800 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2012-02-08 11:11:39 -0800 |
commit | 2b186a31d24cff01fe33893d20d73f80edb73b99 (patch) | |
tree | cb7f7bb32cecb17947a6914582478f64190d66ad | |
parent | 36fada16f091ac67be25f51f42a7f4e3072e6db8 (diff) |
ofproto-dpif: Don't output to in_port even if in_port is OFPP_LOCAL.
Signed-off-by: Aaron Rosen <arosen@clemson.edu>
[Ben Pfaff added the test.]
Signed-off-by: Ben Pfaff <blp@nicira.com>
-rw-r--r-- | AUTHORS | 2 | ||||
-rw-r--r-- | ofproto/ofproto-dpif.c | 4 | ||||
-rw-r--r-- | tests/ofproto-dpif.at | 11 |
3 files changed, 13 insertions, 4 deletions
@@ -1,6 +1,7 @@ The following people, in alphabetical order, have either authored or signed off on commits in the Open vSwitch version control repository. +Aaron Rosen arosen@clemson.edu Alexey I. Froloff raorn@altlinux.org Andrew Evans aevans@nicira.com Andrew Lambeth wal@nicira.com @@ -58,7 +59,6 @@ The following additional people are mentioned in commit logs as having provided helpful bug reports or suggestions. Aaron M. Ucko ucko@debian.org -Aaron Rosen arosen@clemson.edu Ahmed Bilal numan252@gmail.com Alban Browaeys prahal@yahoo.com Alex Yip alex@nicira.com diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index cd27528c..ae3c12eb 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -4385,11 +4385,9 @@ xlate_output_action__(struct action_xlate_ctx *ctx, case OFPP_CONTROLLER: execute_controller_action(ctx, max_len); break; - case OFPP_LOCAL: - compose_output_action(ctx, OFPP_LOCAL); - break; case OFPP_NONE: break; + case OFPP_LOCAL: default: if (port != ctx->flow.in_port) { compose_output_action(ctx, port); diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at index 2c4e7c4b..87818fb8 100644 --- a/tests/ofproto-dpif.at +++ b/tests/ofproto-dpif.at @@ -119,6 +119,7 @@ OVS_VSWITCHD_START([dnl add-port br0 p7 -- set Interface p7 type=dummy ]) AT_DATA([flows.txt], [dnl +in_port=local actions=local,flood in_port=1 actions=flood in_port=2 actions=all in_port=3 actions=output:65534,output:1,output:2,output:3,output:4,output:5,output:6,output:7 @@ -128,6 +129,16 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) AT_CHECK([ovs-ofctl mod-port br0 5 noforward]) AT_CHECK([ovs-ofctl mod-port br0 6 noflood]) +AT_CHECK([ovs-appctl ofproto/trace br0 'in_port(0),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'], [0], [stdout]) +AT_CHECK([tail -1 stdout \ +| sed -e 's/Datapath actions: //' | tr ',' '\n' | sort], [0], [dnl +1 +2 +3 +4 +7 +]) + AT_CHECK([ovs-appctl ofproto/trace br0 'in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'], [0], [stdout]) AT_CHECK([tail -1 stdout \ | sed -e 's/Datapath actions: //' | tr ',' '\n' | sort], [0], [dnl |