All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mat Martineau <mathew.j.martineau@linux.intel.com>
To: Florian Westphal <fw@strlen.de>
Cc: mptcp@lists.linux.dev
Subject: Re: [PATCH mptcp-next v3 0/4] mptcp: replace per-addr listener sockets
Date: Wed, 23 Feb 2022 16:48:10 -0800 (PST)	[thread overview]
Message-ID: <2cb7a320-78bb-e14-26cb-a815daab7021@linux.intel.com> (raw)
In-Reply-To: <20220223110832.29357-1-fw@strlen.de>

On Wed, 23 Feb 2022, Florian Westphal wrote:

> Changes since v2:
> - drop first patch again, no longer needed
> - move announce list check to the new join hook (Paolo)
> - add joinhook for timewait sockets
> - hide join6 member for !ipv6 build
>
> Changes since v2:
> - avoid unneeded sk refcount inc/dec pair
> - use more descriptive name for function name
> - fix typo in rfc number (Mathieu)
> - don't increment listner refcount, caller assumes noref
>

Hi Florian -

Thanks for the v3, I think that covers the review comments on v2 for the 
functionality covered in the previous revs.

My main questions have to do with:

> Not changed:
> - hook location, plain tcp sockets take precedence.
> - per-netns listener
>

Do you have plans for either or both of these? Not sure if you have 
work-in-process or if we (the community) need to figure out a more 
detailed plan for TCP/MPTCP precedence and the degree of TCP changes that 
make sense upstream. Since this week's meeting is happening real soon, we 
can definitely sort it out there.

With the upstream kernel at 5.17-rc5 we should also try to figure out how 
much of the listener and userspace PM changes we want to merge to 
net-next now vs. in the next cycle.

-Mat


> Global listener means other namespaces are affected in case
> of backlog overflow. Pernet listeners avoid that, so I don't see
> a strong argument for tcp refactoring that would allow global sk.
>
> This series introduces a hidden per-netns pseudo "listener" socket to
> handle mptcp join requests with a valid token but that do not match an
> existing listening socket.
>
> First patch is a minor preparation patch: MPTCP Join requests packets
> that fail to find a suitable socket by means of standard address/port
> demultiplexing will be steered to a pseudo-listener, similar to TPROXY
> interception.
>
> This pseudo listener isn't bound to an address or port (all zero), so we
> need to fetch the port number from the tcp header and not the listener sk.
>
> Patch two adds a stub to the tcp demux code.
> This has no functionality, its extra to make tcp datapath change stand out.
>
> Third patch is the bulk work, it adds per netns listener and implements
> token-based socket demultiplexing.
>
> Last patch zaps the per-address sockets from mptcp, they are not needed
> anymore.
>
> Florian Westphal (4):
>  mptcp: prefer ip address in syn skb instead of listen sk bound address
>  tcp: add mptcp join demultiplex hooks
>  mptcp: handle join requests via pernet listen socket
>  mptcp: remove per-address listening sockets
>
> include/net/mptcp.h    |  15 +++
> net/ipv4/tcp_ipv4.c    |   7 ++
> net/ipv6/tcp_ipv6.c    |  26 +++--
> net/mptcp/ctrl.c       | 229 ++++++++++++++++++++++++++++++++++++++++-
> net/mptcp/pm_netlink.c |  82 +++------------
> net/mptcp/protocol.c   |   2 +-
> net/mptcp/protocol.h   |   4 +-
> net/mptcp/subflow.c    |   9 +-
> 8 files changed, 287 insertions(+), 87 deletions(-)
>
> -- 
> 2.34.1
>
>
>

--
Mat Martineau
Intel

      parent reply	other threads:[~2022-02-24  0:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-23 11:08 [PATCH mptcp-next v3 0/4] mptcp: replace per-addr listener sockets Florian Westphal
2022-02-23 11:08 ` [PATCH 1/4] mptcp: prefer ip address in syn skb instead of listen sk bound address Florian Westphal
2022-02-23 11:08 ` [PATCH 2/4] tcp: add mptcp join demultiplex hooks Florian Westphal
2022-02-23 11:08 ` [PATCH 3/4] mptcp: handle join requests via pernet listen socket Florian Westphal
2022-02-24  1:26   ` Mat Martineau
2022-02-24  8:36     ` Paolo Abeni
2022-02-24  7:09   ` kernel test robot
2022-02-23 11:08 ` [PATCH 4/4] mptcp: remove per-address listening sockets Florian Westphal
2022-02-23 12:15   ` mptcp: remove per-address listening sockets: Tests Results MPTCP CI
2022-02-24  0:48 ` Mat Martineau [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2cb7a320-78bb-e14-26cb-a815daab7021@linux.intel.com \
    --to=mathew.j.martineau@linux.intel.com \
    --cc=fw@strlen.de \
    --cc=mptcp@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.