[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEfhGiyMC18_46PyxCQ2GTpaRZ2qbJwtZ0AGaSa3rj3HMO-P1A@mail.gmail.com>
Date: Fri, 13 Sep 2019 14:40:51 -0400
From: Craig Gallek <kraig@...gle.com>
To: Willem de Bruijn <willemdebruijn.kernel@...il.com>
Cc: netdev <netdev@...r.kernel.org>,
David Miller <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, zabele@...cast.net,
Paolo Abeni <pabeni@...hat.com>, mark.keaton@...theon.com,
Willem de Bruijn <willemb@...gle.com>
Subject: Re: [PATCH net] udp: correct reuseport selection with connected sockets
On Thu, Sep 12, 2019 at 9:16 PM Willem de Bruijn
<willemdebruijn.kernel@...il.com> wrote:
>
> From: Willem de Bruijn <willemb@...gle.com>
>
> UDP reuseport groups can hold a mix unconnected and connected sockets.
> Ensure that connections only receive all traffic to their 4-tuple.
>
> Fast reuseport returns on the first reuseport match on the assumption
> that all matches are equal. Only if connections are present, return to
> the previous behavior of scoring all sockets.
>
> Record if connections are present and if so (1) treat such connected
> sockets as an independent match from the group, (2) only return
> 2-tuple matches from reuseport and (3) do not return on the first
> 2-tuple reuseport match to allow for a higher scoring match later.
>
> New field has_conns is set without locks. No other fields in the
> bitmap are modified at runtime and the field is only ever set
> unconditionally, so an RMW cannot miss a change.
>
> Fixes: e32ea7e74727 ("soreuseport: fast reuseport UDP socket selection")
> Link: http://lkml.kernel.org/r/CA+FuTSfRP09aJNYRt04SS6qj22ViiOEWaWmLAwX0psk8-PGNxw@mail.gmail.com
> Signed-off-by: Willem de Bruijn <willemb@...gle.com>
Slick, no additional cost for the BPF case and just a single branch
for the unconnected udp, tcp listener case!
Acked-by: Craig Gallek <kraig@...gle.com>
Powered by blists - more mailing lists