Re: [PATCH v5 bpf-next 02/11] tcp: Add num_closed_socks to struct sock_reuseport.

From: Kuniyuki Iwashima
Date: Sat May 15 2021 - 00:04:17 EST


From: Martin KaFai Lau <kafai@xxxxxx>
Date: Fri, 14 May 2021 17:49:18 -0700
> On Mon, May 10, 2021 at 12:44:24PM +0900, Kuniyuki Iwashima wrote:
> > As noted in the following commit, a closed listener has to hold the
> > reference to the reuseport group for socket migration. This patch adds a
> > field (num_closed_socks) to struct sock_reuseport to manage closed sockets
> > within the same reuseport group. Moreover, this and the following commits
> > introduce some helper functions to split socks[] into two sections and keep
> > TCP_LISTEN and TCP_CLOSE sockets in each section. Like a double-ended
> > queue, we will place TCP_LISTEN sockets from the front and TCP_CLOSE
> > sockets from the end.
> >
> > TCP_LISTEN----------> <-------TCP_CLOSE
> > +---+---+ --- +---+ --- +---+ --- +---+
> > | 0 | 1 | ... | i | ... | j | ... | k |
> > +---+---+ --- +---+ --- +---+ --- +---+
> >
> > i = num_socks - 1
> > j = max_socks - num_closed_socks
> > k = max_socks - 1
> >
> > This patch also extends reuseport_add_sock() and reuseport_grow() to
> > support num_closed_socks.
> Acked-by: Martin KaFai Lau <kafai@xxxxxx>

Thank you!