From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hajime Tazaki Subject: Re: [PATCH net-next 3/5] ipv6: Stop /128 route from disappearing after pmtu update Date: Sun, 03 May 2015 07:41:57 +0900 Message-ID: References: <1430251387-2942539-1-git-send-email-kafai@fb.com> <1430251387-2942539-4-git-send-email-kafai@fb.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Cc: netdev@vger.kernel.org, hannes@stressinduktion.org, steffen.klassert@secunet.com, davem@davemloft.net, yangyingliang@huawei.com, shengyong1@huawei.com, Kernel-team@fb.com To: kafai@fb.com Return-path: Received: from shonan.sfc.wide.ad.jp ([203.178.142.130]:40285 "EHLO mail.sfc.wide.ad.jp" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752925AbbEBWmC (ORCPT ); Sat, 2 May 2015 18:42:02 -0400 In-Reply-To: <1430251387-2942539-4-git-send-email-kafai@fb.com> Sender: netdev-owner@vger.kernel.org List-ID: Hi Martin, Dave, # I'm not a policeman though.. a regression is detected by my nightly test (below) and quick bisecting with LibOS (ns-3/DCE) gave me this commit. http://ns-3-dce.cloud.wide.ad.jp/jenkins/job/daily-net-next-sim/878/ At Tue, 28 Apr 2015 13:03:05 -0700, Martin KaFai Lau wrote: > --- > net/ipv6/route.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/net/ipv6/route.c b/net/ipv6/route.c > index 07562a2..aa4cfdd 100644 > --- a/net/ipv6/route.c > +++ b/net/ipv6/route.c > @@ -977,7 +977,7 @@ redo_rt6_select: > > if (!(rt->rt6i_flags & (RTF_NONEXTHOP | RTF_GATEWAY))) > nrt = rt6_alloc_cow(rt, &fl6->daddr, &fl6->saddr); > - else if (!(rt->dst.flags & DST_HOST)) > + else if (!(rt->dst.flags & DST_HOST) || !(rt->dst.flags & RTF_LOCAL)) > nrt = rt6_alloc_clone(rt, &fl6->daddr); > else > goto out2; > @@ -1172,7 +1172,7 @@ static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk, > struct rt6_info *rt6 = (struct rt6_info *)dst; > > dst_confirm(dst); > - if (mtu < dst_mtu(dst) && rt6->rt6i_dst.plen == 128) { > + if (mtu < dst_mtu(dst) && (rt6->rt6i_flags & RTF_CACHE)) { > struct net *net = dev_net(dst->dev); > > rt6->rt6i_flags |= RTF_MODIFIED; - how to reproduce it the test is simply sending an IPv6 packet to a node on the same subnet to verify the connectivity (e.g., ping6 2001:1::2 from 2001:1::1) and echo packets didn't get back. reverting this commit fixes the issue. please take a look at it: I'm glad to know if this only happens in my local environment. -- Hajime