All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steffen Klassert <steffen.klassert@secunet.com>
To: Martin Lau <kafai@fb.com>
Cc: Yang Yingliang <yangyingliang@huawei.com>,
	netdev <netdev@vger.kernel.org>,
	Hannes Frederic Sowa <hannes@stressinduktion.org>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH RFC 1/2] ipv6: Fix after pmtu events dissapearing host routes
Date: Mon, 9 Feb 2015 11:26:21 +0100	[thread overview]
Message-ID: <20150209102620.GC13046@secunet.com> (raw)
In-Reply-To: <20150205235628.GA1916791@devbig242.prn2.facebook.com>

On Thu, Feb 05, 2015 at 03:56:29PM -0800, Martin Lau wrote:
> On Wed, Jan 28, 2015 at 01:11:51PM +0100, Steffen Klassert wrote:
> > We currently don't clone host routes before we use them.
> > If a pmtu event is received on such a route, it gets
> > an expires value. As soon as the expiration time is
> > elapsed, the route is deleted. As a result, the host
> > is not reachable any more.
> > 
> > We fix this by cloning host routes if they are gatewayed,
> > i.e. if pmtu events can happen.
> > 
> > Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
> > ---
> >  net/ipv6/route.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/net/ipv6/route.c b/net/ipv6/route.c
> > index c910831..3e864e7 100644
> > --- a/net/ipv6/route.c
> > +++ b/net/ipv6/route.c
> > @@ -961,7 +961,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->rt6i_flags & RTF_GATEWAY))
> >  		nrt = rt6_alloc_clone(rt, &fl6->daddr);
> The del path may also require changes.  I am thinking:
> 1. Create a /128 via gateway route
> 2. Send some traffic and RTF_CACHE rt is created
> 3. Delete the /128 route by ip route del.  I suspect the RTF_CACHE route may be
>    deleted and the route added in (1) stays.

Good point.

Both routes are on the same fib node. The cached one has the better
metric, so I guess this one will be found and deleted.

I'll check this. Thanks for the hint!

  reply	other threads:[~2015-02-09 10:26 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-27 12:58 A problem about ICMP packet-too-big message handler Yang Yingliang
2015-01-28  5:19 ` Martin Lau
2015-01-28  6:46   ` Yang Yingliang
2015-01-28 12:45     ` Eric Dumazet
2015-01-29  1:04       ` Yang Yingliang
2015-01-28  8:42 ` Hannes Frederic Sowa
2015-01-28 10:07   ` Yang Yingliang
2015-01-28 12:10 ` Steffen Klassert
2015-01-28 12:11   ` [PATCH RFC 1/2] ipv6: Fix after pmtu events dissapearing host routes Steffen Klassert
2015-01-29 10:26     ` Hannes Frederic Sowa
2015-01-29 10:44       ` Steffen Klassert
2015-02-05 23:56     ` Martin Lau
2015-02-09 10:26       ` Steffen Klassert [this message]
2015-03-09  9:00         ` Steffen Klassert
2015-01-28 12:12   ` [PATCH RFC 2/2] ipv6: Extend the route lookups to low priority metrics Steffen Klassert
2015-01-29  3:16   ` A problem about ICMP packet-too-big message handler Yang Yingliang

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=20150209102620.GC13046@secunet.com \
    --to=steffen.klassert@secunet.com \
    --cc=davem@davemloft.net \
    --cc=hannes@stressinduktion.org \
    --cc=kafai@fb.com \
    --cc=netdev@vger.kernel.org \
    --cc=yangyingliang@huawei.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.