summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEthan Jackson <ethan@nicira.com>2011-09-12 16:56:21 -0700
committerEthan Jackson <ethan@nicira.com>2011-09-13 16:16:58 -0700
commitc5e3adc986cd6e44d69170ad9a84c0970653665f (patch)
treee65b8fea6db878cade46ced6acffd1bffbd5ace7
parent7bbb970161407c4fbb386bcdc97f95eac5298ddd (diff)
downloadopenvswitch-c5e3adc986cd6e44d69170ad9a84c0970653665f.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>
-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 8a175dc9d..5ebf05772 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -3278,6 +3278,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;
if (process_special(ctx->ofproto, &ctx->flow, ctx->packet)) {
ctx->may_set_up_flow = false;