With tunnels carrying IP packets, ECN bits are always inherited by
the encapsulating tunnel. However, it doesn't make sense to
unwildcard the inner packet's TOS fields if the packet is not IP.
Found by inspection.
Signed-off-by: Justin Pettit <jpettit@nicira.com>
wc->masks.nw_tos = 0xff;
flow->tunnel.ip_tos = flow->nw_tos & IP_DSCP_MASK;
} else {
- /* ECN fields are always inherited. */
- wc->masks.nw_tos |= IP_ECN_MASK;
flow->tunnel.ip_tos = cfg->tos;
}
+ /* ECN fields are always inherited. */
+ if (is_ip_any(flow)) {
+ wc->masks.nw_tos |= IP_ECN_MASK;
+ }
+
if ((flow->nw_tos & IP_ECN_MASK) == IP_ECN_CE) {
flow->tunnel.ip_tos |= IP_ECN_ECT_0;
} else {