net/ipv6: Remove expired routes with a separated list of routes.
authorKui-Feng Lee <thinker.li@gmail.com>
Tue, 15 Aug 2023 18:07:05 +0000 (11:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Aug 2023 11:26:43 +0000 (12:26 +0100)
commit3dec89b14d37ee635e772636dad3f09f78f1ab87
treea5d4c70bd3dc5e7eff770b068e7c20f083033ac0
parentd147085183ea1b0efd2c18fca76e4dee873b1e4e
net/ipv6: Remove expired routes with a separated list of routes.

FIB6 GC walks trees of fib6_tables to remove expired routes. Walking a tree
can be expensive if the number of routes in a table is big, even if most of
them are permanent. Checking routes in a separated list of routes having
expiration will avoid this potential issue.

Signed-off-by: Kui-Feng Lee <thinker.li@gmail.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip6_fib.h
net/ipv6/ip6_fib.c
net/ipv6/route.c