summaryrefslogtreecommitdiff
path: root/ofproto
diff options
context:
space:
mode:
authorEthan Jackson <ethan@nicira.com>2011-09-12 16:56:21 -0700
committerEthan Jackson <ethan@nicira.com>2011-09-12 20:28:39 -0700
commitbf1e03710e905cd33765bf72b734020bf98d46ac (patch)
tree7314ef3003fb6aefac42ab6bed07095f8835a8a4 /ofproto
parent9b02078077b62e4277e84c7f39382ce09986cf6b (diff)
downloadopenvswitch-bf1e03710e905cd33765bf72b734020bf98d46ac.tar.gz
ofproto-dpif: Emit set_tunnel when required to.
ofproto-dpif assumed that the datapath initialized the tun_id of a flow on egress, to its tun_id on ingress. For this reason, if OpenFlow actions set the tun_id to a flow's ingress tun_id, ofproto-dpif would fail to emit a set_tunnel action. Reported-by: Igor Ganichev <iganichev@nicira.com> Reported-by: Pankaj Thakkar <thakkar@nicira.com>
Diffstat (limited to 'ofproto')
-rw-r--r--ofproto/ofproto-dpif.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index c632df64c..dfdaaa299 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -3354,6 +3354,7 @@ xlate_actions(struct action_xlate_ctx *ctx,
ctx->priority = 0;
ctx->base_priority = 0;
ctx->base_flow = ctx->flow;
+ ctx->base_flow.tun_id = 0;
ctx->table_id = 0;
if (process_special(ctx->ofproto, &ctx->flow, ctx->packet)) {