ofproto-dpif: Ignore ECN bits in OFPAT_SET_NW_TOS actions.
authorBen Pfaff <blp@nicira.com>
Mon, 18 Jul 2011 22:17:57 +0000 (15:17 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 28 Jul 2011 18:22:00 +0000 (11:22 -0700)
OpenFlow 1.0 doesn't say that the ECN bits in OFPAT_SET_NW_TOS actions must
be zero, but Open vSwitch ODP implementations do require that, so mask off
those bits before storing the nw_tos into the flow.

ofproto/ofproto.c

index 737b86b..8720ae7 100644 (file)
@@ -2394,8 +2394,8 @@ do_xlate_actions(const union ofp_action *in, size_t n_in,
 
         case OFPAT_SET_NW_TOS:
             nl_msg_put_u8(ctx->odp_actions, ODP_ACTION_ATTR_SET_NW_TOS,
-                          ia->nw_tos.nw_tos);
-            ctx->flow.nw_tos = ia->nw_tos.nw_tos;
+                          ia->nw_tos.nw_tos & IP_DSCP_MASK);
+            ctx->flow.nw_tos = ia->nw_tos.nw_tos & IP_DSCP_MASK;
             break;
 
         case OFPAT_SET_TP_SRC: