diff mbox

[net] ip6_tunnel: fix traffic class routing for tunnels

Message ID 91e31c60-5994-6784-cfe8-6a18016c6524@gmail.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Liam McBirnie June 2, 2017, 5:12 a.m. UTC
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>
---
 net/ipv6/ip6_tunnel.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Peter Dawson June 2, 2017, 6:03 a.m. UTC | #1
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>
David Miller June 4, 2017, 11:50 p.m. UTC | #2
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 mbox

Patch

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)