From: Peter Dawson <peted...@gmail.com> Date: Fri, 26 May 2017 06:35:18 +1000
> This fix addresses two problems in the way the DSCP field is formulated > on the encapsulating header of IPv6 tunnels. > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=195661 > > 1) The IPv6 tunneling code was manipulating the DSCP field of the > encapsulating packet using the 32b flowlabel. Since the flowlabel is > only the lower 20b it was incorrect to assume that the upper 12b > containing the DSCP and ECN fields would remain intact when formulating > the encapsulating header. This fix handles the 'inherit' and > 'fixed-value' DSCP cases explicitly using the extant dsfield u8 variable. > > 2) The use of INET_ECN_encapsulate(0, dsfield) in ip6_tnl_xmit was > incorrect and resulted in the DSCP value always being set to 0. > > Commit 90427ef5d2a4 ("ipv6: fix flow labels when the traffic class > is non-0") caused the regression by masking out the flowlabel > which exposed the incorrect handling of the DSCP portion of the > flowlabel in ip6_tunnel and ip6_gre. > > Fixes: 90427ef5d2a4 ("ipv6: fix flow labels when the traffic class is non-0") > Signed-off-by: Peter Dawson <peter.a.daw...@boeing.com> Applied, thanks.