From: Daniel Borkmann <daniel@iogearbox.net>
To: Haishuang Yan <yanhaishuang@cmss.chinamobile.com>,
"David S. Miller" <davem@davemloft.net>,
Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>,
James Morris <jmorris@namei.org>,
Patrick McHardy <kaber@trash.net>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
peter.a.dawson@boeing.com, ast@fb.com
Subject: Re: [PATCH] ip6_tunnel: Correct tos value in collect_md mode
Date: Tue, 13 Jun 2017 11:57:20 +0200 [thread overview]
Message-ID: <593FB700.6020701@iogearbox.net> (raw)
In-Reply-To: <1497340529-18736-1-git-send-email-yanhaishuang@cmss.chinamobile.com>
On 06/13/2017 09:55 AM, Haishuang Yan wrote:
> Same as ip_gre, geneve and vxlan, use key->tos as tos value.
>
Please also add Fixes tag and Cc original authors.
Fixes: 0e9a709560db ("ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets")
> Signed-off-by: Haishuang Yan <yanhaishuang@cmss.chinamobile.com>
> ---
> net/ipv6/ip6_tunnel.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
> index ef99d59..5f4aff5 100644
> --- a/net/ipv6/ip6_tunnel.c
> +++ b/net/ipv6/ip6_tunnel.c
> @@ -1249,7 +1249,7 @@ int ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev, __u8 dsfield,
> fl6.flowi6_proto = IPPROTO_IPIP;
> fl6.daddr = key->u.ipv6.dst;
> fl6.flowlabel = key->label;
> - dsfield = ip6_tclass(key->label);
> + dsfield = key->tos;
Not exactly the same as vxlan / geneve. They do use key->tos
indeed, but they also set fl6.flowlabel differently:
[...]
prio = info->key.tos;
[...]
fl6->flowlabel = ip6_make_flowinfo(RT_TOS(prio),
info->key.label);
[...]
But looks like the latter is done later in ip6_tnl_xmit() eventually
before the route lookup as per 5f733ee68f9a ("ip6_tunnel: fix traffic
class routing for tunnels") fix. However, you still might want to
mask key->tos with RT_TOS().
> } else {
> if (!(t->parms.flags & IP6_TNL_F_IGN_ENCAP_LIMIT))
> encap_limit = t->parms.encap_limit;
> @@ -1320,7 +1320,7 @@ int ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev, __u8 dsfield,
> fl6.flowi6_proto = IPPROTO_IPV6;
> fl6.daddr = key->u.ipv6.dst;
> fl6.flowlabel = key->label;
> - dsfield = ip6_tclass(key->label);
> + dsfield = key->tos;
> } else {
> offset = ip6_tnl_parse_tlv_enc_lim(skb, skb_network_header(skb));
> /* ip6_tnl_parse_tlv_enc_lim() might have reallocated skb->head */
>
next prev parent reply other threads:[~2017-06-13 9:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-13 7:55 [PATCH] ip6_tunnel: Correct tos value in collect_md mode Haishuang Yan
2017-06-13 9:57 ` Daniel Borkmann [this message]
[not found] ` <0D379591-C5AA-496C-BC00-18005EAA7D21@cmss.chinamobile.com>
2017-06-13 15:37 ` Daniel Borkmann
-- strict thread matches above, loose matches on Subject: below --
2017-06-14 2:48 Haishuang Yan
2017-06-14 2:54 ` 严海双
2017-06-14 5:28 ` Peter Dawson
2017-06-15 0:58 ` 严海双
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=593FB700.6020701@iogearbox.net \
--to=daniel@iogearbox.net \
--cc=ast@fb.com \
--cc=davem@davemloft.net \
--cc=jmorris@namei.org \
--cc=kaber@trash.net \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=peter.a.dawson@boeing.com \
--cc=yanhaishuang@cmss.chinamobile.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.