From: Ben Pfaff <blp@nicira.com>
Date: Mon, 18 Jul 2011 22:17:57 +0000 (-0700)
Subject: ofproto-dpif: Ignore ECN bits in OFPAT_SET_NW_TOS actions.
X-Git-Tag: v1.1.2~1
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=4927c517cc2373b4957e75328d6d347ba844d23d;p=sliver-openvswitch.git

ofproto-dpif: Ignore ECN bits in OFPAT_SET_NW_TOS actions.

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.
---

diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index 737b86b50..8720ae7e8 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -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: