| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: Liam McBirnie <mcbirnie.l@gmail.com> |
| Date: Thu, 1 Jun 2017 15:36:01 +1000 |
| Subject: ip6_tunnel: fix traffic class routing for tunnels |
| |
| From: Liam McBirnie <mcbirnie.l@gmail.com> |
| |
| |
| [ Upstream commit 5f733ee68f9a4df94775299ac6a7ab260704f6ed ] |
| |
| 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> |
| Acked-by: Peter Dawson <peter.a.dawson@boeing.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/ipv6/ip6_tunnel.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/net/ipv6/ip6_tunnel.c |
| +++ b/net/ipv6/ip6_tunnel.c |
| @@ -1097,6 +1097,9 @@ int ip6_tnl_xmit(struct sk_buff *skb, st |
| |
| 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) |