Re: [PATCH] ip6_tunnel: Correct tos value in collect_md mode

From: äæå
Date: Wed Jun 14 2017 - 20:59:00 EST



> On 14 Jun 2017, at 1:28 PM, Peter Dawson <petedaws@xxxxxxxxx> wrote:
>
> On Wed, 14 Jun 2017 10:54:31 +0800
> äæå <yanhaishuang@xxxxxxxxxxxxxxxxxxxx> wrote:
>
>
>>> Changes since v2:
>>> * mask key->tos with RT_TOS() suggested by Daniel
>
> Can you help me understand the rationale for this change? Is there are bug introduced by dsfield = ip6_tclass(key->label); ?
>
> The RT_TOS masks out 4bits of the 8bit tos field in accordance with RFC1349 (obsoleted by RFC2474). IPv6 does not have a TOS field. So it dosen't make sense to apply a TOS value to the outer header of an IPv6 tunnel.
>
>

Hi, Peter

Here the tos also means Traffic Class in IPv6, see the define in struct ip_tunnel_key:

u8 tos; /* TOS for IPv4, TC for IPv6 */

RT_TOS mask is suggested by Daniel, please refer to the implement in vxlan or geneve code:

fl6.flowlabel = ip6_make_flowinfo(RT_TOS(tos), label);

Thanks.