}, {
MFF_IP_DSCP, "nw_tos", NULL,
MF_FIELD_SIZES(u8),
- MFM_NONE, 0,
+ MFM_NONE, FWW_NW_DSCP,
MFS_DECIMAL,
MFP_IP_ANY,
NXM_OF_IP_TOS,
}, {
MFF_IP_ECN, "nw_ecn", NULL,
1, 2,
- MFM_NONE, 0,
+ MFM_NONE, FWW_NW_ECN,
MFS_DECIMAL,
MFP_IP_ANY,
NXM_NX_IP_ECN,
case MFF_ETH_SRC:
case MFF_ETH_TYPE:
case MFF_IP_PROTO:
+ case MFF_IP_DSCP:
+ case MFF_IP_ECN:
case MFF_IP_TTL:
case MFF_IPV6_LABEL:
case MFF_ARP_OP:
case MFF_IPV6_DST:
return ipv6_mask_is_any(&wc->ipv6_dst_mask);
- case MFF_IP_DSCP:
- return !(wc->nw_tos_mask & IP_DSCP_MASK);
- case MFF_IP_ECN:
- return !(wc->nw_tos_mask & IP_ECN_MASK);
case MFF_IP_FRAG:
return !(wc->nw_frag_mask & FLOW_NW_FRAG_MASK);
case MFF_ETH_SRC:
case MFF_ETH_TYPE:
case MFF_IP_PROTO:
+ case MFF_IP_DSCP:
+ case MFF_IP_ECN:
case MFF_IP_TTL:
case MFF_IPV6_LABEL:
case MFF_ARP_OP:
mask->ipv6 = wc->ipv6_dst_mask;
break;
- case MFF_IP_DSCP:
- mask->u8 = wc->nw_tos_mask & IP_DSCP_MASK;
- break;
- case MFF_IP_ECN:
- mask->u8 = wc->nw_tos_mask & IP_ECN_MASK;
- break;
case MFF_IP_FRAG:
mask->u8 = wc->nw_frag_mask & FLOW_NW_FRAG_MASK;
break;
break;
case MFF_IP_DSCP:
- rule->wc.nw_tos_mask |= IP_DSCP_MASK;
+ rule->wc.wildcards |= FWW_NW_DSCP;
rule->flow.nw_tos &= ~IP_DSCP_MASK;
break;
case MFF_IP_ECN:
- rule->wc.nw_tos_mask |= IP_ECN_MASK;
+ rule->wc.wildcards |= FWW_NW_ECN;
rule->flow.nw_tos &= ~IP_ECN_MASK;
break;