[PATCH net] ip6_tunnel: fix traffic class routing for tunnels

Subsystems: networking [general], networking [ipv4/ipv6], the rest

STALE3424d

3 messages, 3 authors, 2017-06-04 · open the first message on its own page

[PATCH net] ip6_tunnel: fix traffic class routing for tunnels

From: Liam McBirnie <hidden>
Date: 2017-06-02 05:12:27

From: Liam McBirnie <redacted>
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 <redacted>
---
 net/ipv6/ip6_tunnel.c | 3 +++
 1 file changed, 3 insertions(+)
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)
-- 
2.9.3

Re: [PATCH net] ip6_tunnel: fix traffic class routing for tunnels

From: Peter Dawson <hidden>
Date: 2017-06-02 06:04:01

On Fri, 2 Jun 2017 15:12:26 +1000
Liam McBirnie [off-list ref] 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 <redacted>
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 <redacted>

Re: [PATCH net] ip6_tunnel: fix traffic class routing for tunnels

From: David Miller <davem@davemloft.net>
Date: 2017-06-04 23:50:22

From: Liam McBirnie <redacted>
Date: Fri, 2 Jun 2017 15:12:26 +1000
From: Liam McBirnie <redacted>
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 <redacted>
Applied and queued up for -stable, thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help