nxm_put_8(b, NXM_OF_IP_TOS, flow->tos & IP_DSCP_MASK);
}
+ if (cr->wc.tos_mask & IP_ECN_MASK) {
+ nxm_put_8(b, NXM_NX_IP_ECN, flow->tos & IP_ECN_MASK);
+ }
+
if (!(wc & FWW_NW_PROTO)) {
nxm_put_8(b, NXM_OF_IP_PROTO, flow->nw_proto);
switch (flow->nw_proto) {
nxm_put_8(b, NXM_OF_IP_TOS, flow->tos & IP_DSCP_MASK);
}
+ if (cr->wc.tos_mask & IP_ECN_MASK) {
+ nxm_put_8(b, NXM_NX_IP_ECN, flow->tos & IP_ECN_MASK);
+ }
+
if (!(wc & FWW_NW_PROTO)) {
nxm_put_8(b, NXM_OF_IP_PROTO, flow->nw_proto);
switch (flow->nw_proto) {
case NFI_NXM_OF_IP_TOS:
return flow->tos & IP_DSCP_MASK;
+ case NFI_NXM_NX_IP_ECN:
+ return flow->tos & IP_ECN_MASK;
+
case NFI_NXM_NX_IP_FRAG:
return flow->frag;
flow->tos |= new_value & IP_DSCP_MASK;
break;
+ case NFI_NXM_NX_IP_ECN:
+ flow->tos &= ~IP_ECN_MASK;
+ flow->tos |= new_value & IP_ECN_MASK;
+ break;
+
case NFI_NXM_NX_IP_FRAG:
flow->frag = new_value;
break;