ofproto-dpif: Check for MPLS depth at the flow.
authorJarno Rajahalme <jarno.rajahalme@nsn.com>
Fri, 31 May 2013 11:35:11 +0000 (14:35 +0300)
committerBen Pfaff <blp@nicira.com>
Wed, 12 Jun 2013 21:22:17 +0000 (14:22 -0700)
The earlier check on base_flow.mpls_depth seemed wrong, as multiple
MPLS push actions would have resulted in the flow.mpls_depth being
set to 1 each time.

Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
ofproto/ofproto-dpif-xlate.c

index e4b1fd3..9682158 100644 (file)
@@ -1116,7 +1116,7 @@ execute_mpls_push_action(struct xlate_ctx *ctx, ovs_be16 eth_type)
     memset(&ctx->xout->wc.masks.mpls_depth, 0xff,
                sizeof ctx->xout->wc.masks.mpls_depth);
 
-    if (ctx->base_flow.mpls_depth) {
+    if (ctx->xin->flow.mpls_depth) {
         ctx->xin->flow.mpls_lse &= ~htonl(MPLS_BOS_MASK);
         ctx->xin->flow.mpls_depth++;
     } else {