lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <m2d22itxe2.wl@sfc.wide.ad.jp>
Date:	Sun, 03 May 2015 07:41:57 +0900
From:	Hajime Tazaki <tazaki@....wide.ad.jp>
To:	kafai@...com
Cc:	netdev@...r.kernel.org, hannes@...essinduktion.org,
	steffen.klassert@...unet.com, davem@...emloft.net,
	yangyingliang@...wei.com, shengyong1@...wei.com, Kernel-team@...com
Subject: Re: [PATCH net-next 3/5] ipv6: Stop /128 route from disappearing after pmtu update


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

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ