I found this by inspection, but how about something like the following? -=-=-=-=-=-=-=-=-=- 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. -=-=-=-=-=-=-=-=-=- --Justin On Jun 25, 2013, at 8:49 PM, Ben Pfaff <[email protected]> wrote: > The change log could use some explanation of why, e.g. a description of what > bug this fixes. > > On Jun 25, 2013 6:29 PM, "Justin Pettit" <[email protected]> wrote: > Signed-off-by: Justin Pettit <[email protected]> > --- > ofproto/tunnel.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/ofproto/tunnel.c b/ofproto/tunnel.c > index dedfca8..1a39aea 100644 > --- a/ofproto/tunnel.c > +++ b/ofproto/tunnel.c > @@ -253,11 +253,14 @@ tnl_port_send(const struct tnl_port *tnl_port, struct > flow *flow, > 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 { > -- > 1.7.9.5 > > _______________________________________________ > dev mailing list > [email protected] > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
