[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171019210221.kucy67evij65nctx@kafai-mbp.dhcp.thefacebook.com>
Date: Thu, 19 Oct 2017 14:02:21 -0700
From: Martin KaFai Lau <kafai@...com>
To: Paolo Abeni <pabeni@...hat.com>
CC: <netdev@...r.kernel.org>, "David S. Miller" <davem@...emloft.net>,
Wei Wang <weiwan@...gle.com>,
Eric Dumazet <edumazet@...gle.com>,
Hannes Frederic Sowa <hannes@...essinduktion.org>
Subject: Re: [PATCH net-next v3 2/2] ipv6: remove from fib tree aged out
RTF_CACHE dst
On Thu, Oct 19, 2017 at 02:07:11PM +0000, Paolo Abeni wrote:
> The commit 2b760fcf5cfb ("ipv6: hook up exception table to store
> dst cache") partially reverted the commit 1e2ea8ad37be ("ipv6: set
> dst.obsolete when a cached route has expired").
>
> As a result, RTF_CACHE dst referenced outside the fib tree will
> not be removed until the next sernum change; dst_check() does not
> fail on aged-out dst, and dst->__refcnt can't decrease: the aged
> out dst will stay valid for a potentially unlimited time after the
> timeout expiration.
>
> This change explicitly removes RTF_CACHE dst from the fib tree when
> aged out. The rt6_remove_exception() logic will then obsolete the
> dst and other entities will drop the related reference on next
> dst_check().
>
> pMTU exceptions are not aged-out, and are removed from the exception
> table only when the - usually considerably longer - ip6_rt_mtu_expires
> timeout expires.
>
> v1 -> v2:
> - do not touch dst.obsolete in rt6_remove_exception(), not needed
> v2 -> v3:
> - take care of pMTU exceptions, too
>
> Fixes: 2b760fcf5cfb ("ipv6: hook up exception table to store dst cache")
> Signed-off-by: Paolo Abeni <pabeni@...hat.com>
Acked-by: Martin KaFai Lau <kafai@...com>
Powered by blists - more mailing lists