xfrm6: Fix IPv6 ECN decapsulation
authorThomas Egerer <thomas.egerer@secunet.com>
Mon, 27 Jul 2015 08:50:19 +0000 (10:50 +0200)
committerSteffen Klassert <steffen.klassert@secunet.com>
Tue, 11 Aug 2015 10:41:34 +0000 (12:41 +0200)
commiteae8dee992af622fd992cb2370cd596ac80ef141
tree4ca6b7ccfd2daf53b25670f7643d6bbb91993053
parent07a51cd3794960548627a27aae68c1446341db32
xfrm6: Fix IPv6 ECN decapsulation

Using ipv6_get_dsfield on the outer IP header implies that inner and
outer header are of the the same address family. For interfamily
tunnels, particularly 646, the code reading the DSCP field obtains the
wrong values (IHL and the upper four bits of the DSCP field).
This can cause the code to detect a congestion encoutered state in the
outer header and enable the corresponding bits in the inner header, too.

Since the DSCP field is stored in the xfrm mode common buffer
independently from the IP version of the outer header, it's safe (and
correct) to take this value from there.

Signed-off-by: Thomas Egerer <thomas.egerer@secunet.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/ipv6/xfrm6_mode_tunnel.c
This page took 0.02462 seconds and 5 git commands to generate.