Message ID | 91e31c60-5994-6784-cfe8-6a18016c6524@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Fri, 2 Jun 2017 15:12:26 +1000 Liam McBirnie <mcbirnie.l@gmail.com> wrote: > The traffic class is added here because only route lookup needs the > flowlabel to contain the traffic class. > > Fixes: 0e9a709560db ("ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets") > Signed-off-by: Liam McBirnie <liam.mcbirnie@boeing.com> Concur with this patch. Testing that I performed on Commit: 0e9a709560db ("ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets") did not cover the case were DSCP-based routing policy is applied to the tunneled packets. Acked-by: Peter Dawson <peter.a.dawson@boeing.com>
From: Liam McBirnie <mcbirnie.l@gmail.com> Date: Fri, 2 Jun 2017 15:12:26 +1000 > From: Liam McBirnie <mcbirnie.l@gmail.com> > Date: Thu, 1 Jun 2017 15:36:01 +1000 > Subject: [PATCH net] ip6_tunnel: fix traffic class routing for tunnels > > ip6_route_output() requires that the flowlabel contains the traffic > class for policy routing. > > Commit 0e9a709560db ("ip6_tunnel, ip6_gre: fix setting of DSCP on > encapsulated packets") removed the code which previously added the > traffic class to the flowlabel. > > The traffic class is added here because only route lookup needs the > flowlabel to contain the traffic class. > > Fixes: 0e9a709560db ("ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets") > Signed-off-by: Liam McBirnie <liam.mcbirnie@boeing.com> Applied and queued up for -stable, thanks.
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 7ae6c50..9b37f97 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -1095,6 +1095,9 @@ int ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev, __u8 dsfield, if (!dst) { route_lookup: + /* add dsfield to flowlabel for route lookup */ + fl6->flowlabel = ip6_make_flowinfo(dsfield, fl6->flowlabel); + dst = ip6_route_output(net, NULL, fl6); if (dst->error)