* [PATCH net] net: always reevalulate autoflowlabel setting for reset packet
@ 2017-12-19 2:58 Shaohua Li
2017-12-19 19:15 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Shaohua Li @ 2017-12-19 2:58 UTC (permalink / raw)
To: netdev, davem; +Cc: Kernel Team, Shaohua Li, Martin KaFai Lau
From: Shaohua Li <shli@fb.com>
ipv6_pinfo.autoflowlabel is set in sock creation. Later if we change
sysctl.ip6.auto_flowlabels, the ipv6_pinfo.autoflowlabel isn't changed,
so the sock will keep the old behavior in terms of auto flowlabel. Reset
packet is suffering from this problem, because reset packset is sent
from a special control socket, which is created at boot time. Since
sysctl.ipv6.auto_flowlabels is 2 by default, the control socket will
always have its ipv6_pinfo.autoflowlabel set, even after user set
sysctl.ipv6.auto_flowlabels to 1, so reset packset will always have
flowlabel.
To fix this, we always reevaluate autoflowlabel setting for reset
packet. Normal sock has the same issue too, but since the
sysctl.ipv6.auto_flowlabels is usually set at host startup, this isn't a
big issue for normal sock.
Cc: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Shaohua Li <shli@fb.com>
---
net/ipv6/tcp_ipv6.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 7178476..fc35233 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -789,7 +789,9 @@ static void tcp_v6_send_response(const struct sock *sk, struct sk_buff *skb, u32
unsigned int tot_len = sizeof(struct tcphdr);
struct dst_entry *dst;
__be32 *topt;
+ struct ipv6_pinfo *np = inet6_sk(ctl_sk);
+ np->autoflowlabel = ip6_default_np_autolabel(net);
if (tsecr)
tot_len += TCPOLEN_TSTAMP_ALIGNED;
#ifdef CONFIG_TCP_MD5SIG
--
2.9.5
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH net] net: always reevalulate autoflowlabel setting for reset packet
2017-12-19 2:58 [PATCH net] net: always reevalulate autoflowlabel setting for reset packet Shaohua Li
@ 2017-12-19 19:15 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2017-12-19 19:15 UTC (permalink / raw)
To: shli; +Cc: netdev, Kernel-team, shli, kafai
From: Shaohua Li <shli@kernel.org>
Date: Mon, 18 Dec 2017 18:58:25 -0800
> @@ -789,7 +789,9 @@ static void tcp_v6_send_response(const struct sock *sk, struct sk_buff *skb, u32
> unsigned int tot_len = sizeof(struct tcphdr);
> struct dst_entry *dst;
> __be32 *topt;
> + struct ipv6_pinfo *np = inet6_sk(ctl_sk);
>
> + np->autoflowlabel = ip6_default_np_autolabel(net);
Please put the 'np' variable declaration a few lines up in order to preserve
the reverse christmas tree ordering of local variables (longest to
shortest line).
THank you.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-12-19 19:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-19 2:58 [PATCH net] net: always reevalulate autoflowlabel setting for reset packet Shaohua Li
2017-12-19 19:15 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox