aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Rosen <arosen@clemson.edu>2012-02-08 10:59:41 -0800
committerBen Pfaff <blp@nicira.com>2012-02-08 11:11:39 -0800
commit2b186a31d24cff01fe33893d20d73f80edb73b99 (patch)
treecb7f7bb32cecb17947a6914582478f64190d66ad
parent36fada16f091ac67be25f51f42a7f4e3072e6db8 (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--AUTHORS2
-rw-r--r--ofproto/ofproto-dpif.c4
-rw-r--r--tests/ofproto-dpif.at11
3 files changed, 13 insertions, 4 deletions
diff --git a/AUTHORS b/AUTHORS
index 57ccc3e2..25b3f71b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -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