mbox series

[net-next,0/4] ipv6: remove addrconf reliance on loopback

Message ID 20220210214231.2420942-1-eric.dumazet@gmail.com (mailing list archive)
Headers show
Series ipv6: remove addrconf reliance on loopback | expand

Message

Eric Dumazet Feb. 10, 2022, 9:42 p.m. UTC
From: Eric Dumazet <edumazet@google.com>

Second patch in this series removes IPv6 requirement about the netns
loopback device being the last device being dismantled.

This was needed because rt6_uncached_list_flush_dev()
and ip6_dst_ifdown() had to switch dst dev to a known
device (loopback).

Instead of loopback, we can use the (hidden) blackhole_netdev
which is also always there.

This will allow future simplfications of netdev_run_to()
and other parts of the stack like default_device_exit_batch().

Last two patches are optimizations for both IP families.

Eric Dumazet (4):
  ipv6: get rid of net->ipv6.rt6_stats->fib_rt_uncache
  ipv6: give an IPv6 dev to blackhole_netdev
  ipv6: add (struct uncached_list)->quarantine list
  ipv4: add (struct uncached_list)->quarantine list

 include/net/ip6_fib.h   |  3 +-
 net/ipv4/route.c        | 12 +++++--
 net/ipv6/addrconf.c     | 78 +++++++++++++++++------------------------
 net/ipv6/route.c        | 42 +++++++++++-----------
 net/ipv6/xfrm6_policy.c |  1 -
 5 files changed, 64 insertions(+), 72 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Feb. 11, 2022, noon UTC | #1
Hello:

This series was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Thu, 10 Feb 2022 13:42:27 -0800 you wrote:
> From: Eric Dumazet <edumazet@google.com>
> 
> Second patch in this series removes IPv6 requirement about the netns
> loopback device being the last device being dismantled.
> 
> This was needed because rt6_uncached_list_flush_dev()
> and ip6_dst_ifdown() had to switch dst dev to a known
> device (loopback).
> 
> [...]

Here is the summary with links:
  - [net-next,1/4] ipv6: get rid of net->ipv6.rt6_stats->fib_rt_uncache
    https://git.kernel.org/netdev/net-next/c/2d4feb2c1ba7
  - [net-next,2/4] ipv6: give an IPv6 dev to blackhole_netdev
    https://git.kernel.org/netdev/net-next/c/e5f80fcf869a
  - [net-next,3/4] ipv6: add (struct uncached_list)->quarantine list
    https://git.kernel.org/netdev/net-next/c/ba55ef81637c
  - [net-next,4/4] ipv4: add (struct uncached_list)->quarantine list
    https://git.kernel.org/netdev/net-next/c/29e5375d7fcb

You are awesome, thank you!
Jakub Kicinski Feb. 11, 2022, 11:57 p.m. UTC | #2
On Thu, 10 Feb 2022 13:42:27 -0800 Eric Dumazet wrote:
> Second patch in this series removes IPv6 requirement about the netns
> loopback device being the last device being dismantled.

Great!

> This was needed because rt6_uncached_list_flush_dev()
> and ip6_dst_ifdown() had to switch dst dev to a known
> device (loopback).
> 
> Instead of loopback, we can use the (hidden) blackhole_netdev
> which is also always there.
> 
> This will allow future simplfications of netdev_run_to()

Should I take a stab at it, or is it on your todo list, anyway?

> and other parts of the stack like default_device_exit_batch().
> 
> Last two patches are optimizations for both IP families.
Eric Dumazet Feb. 12, 2022, 2:38 a.m. UTC | #3
On Fri, Feb 11, 2022 at 3:57 PM Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Thu, 10 Feb 2022 13:42:27 -0800 Eric Dumazet wrote:
> > Second patch in this series removes IPv6 requirement about the netns
> > loopback device being the last device being dismantled.
>
> Great!
>
> > This was needed because rt6_uncached_list_flush_dev()
> > and ip6_dst_ifdown() had to switch dst dev to a known
> > device (loopback).
> >
> > Instead of loopback, we can use the (hidden) blackhole_netdev
> > which is also always there.
> >
> > This will allow future simplfications of netdev_run_to()
>
> Should I take a stab at it, or is it on your todo list, anyway?

I have not started this yet, I will be happy to review your patches, thanks !