[PATCH v6 mptcp-next 0/7] mptcp: improve subflow creation on errors

Paolo Abeni posted 7 patches 2 years, 4 months ago
Failed in applying to current master (apply log)
net/mptcp/options.c                           |  44 ++--
net/mptcp/pm.c                                |  24 ++-
net/mptcp/pm_netlink.c                        | 188 +++++++++++-------
net/mptcp/protocol.c                          | 158 +++++++--------
net/mptcp/protocol.h                          |  46 +++--
net/mptcp/sockopt.c                           |  24 +--
net/mptcp/subflow.c                           |   9 +-
tools/testing/selftests/net/mptcp/config      |   1 +
.../testing/selftests/net/mptcp/mptcp_join.sh |  83 +++++++-
9 files changed, 350 insertions(+), 227 deletions(-)
[PATCH v6 mptcp-next 0/7] mptcp: improve subflow creation on errors
Posted by Paolo Abeni 2 years, 4 months ago
This iteration tries to add address the feedback on v5, namely
test counter update and locking in write_options. The latter
required quite significant changes in patch 5/7.

Additionally the series now includes the pending cleanup, as
they depends on the previous patches. No changes there WRT the
previous iteration.

Currently when a subflow connection fails - either the TCP
connection is reset by the peer, or the MPJ handshake never
completes - the in kernel PM don't perform any further action.
Notably no additional subflow creation is attempted.

This series is aimed at improving the in-kernel path manager
behavior in the above scenario:
- each endpoint is used only once per connection (patch 2/4)
- on failure we try to move to the next subflow, if any
  (patch 3/4)

The first patch is minor cleanup, and the last patch adds
specific self-tests.

This should address/close:
https://github.com/multipath-tcp/mptcp_net-next/issues/235
https://github.com/multipath-tcp/mptcp_net-next/issues/242

Paolo Abeni (7):
  mptcp: fix per socket endpoint accounting.
  mptcp: clean-up MPJ option writing.
  mptcp: keep track of local endpoint still available for each msk
  mptcp: do not block subflows creation on errors
  selftests: mptcp: add tests for subflow creation failure
  mptcp: cleanup MPJ subflow list handling
  mptcp: avoid atomic bit manipulation when possible

 net/mptcp/options.c                           |  44 ++--
 net/mptcp/pm.c                                |  24 ++-
 net/mptcp/pm_netlink.c                        | 188 +++++++++++-------
 net/mptcp/protocol.c                          | 158 +++++++--------
 net/mptcp/protocol.h                          |  46 +++--
 net/mptcp/sockopt.c                           |  24 +--
 net/mptcp/subflow.c                           |   9 +-
 tools/testing/selftests/net/mptcp/config      |   1 +
 .../testing/selftests/net/mptcp/mptcp_join.sh |  83 +++++++-
 9 files changed, 350 insertions(+), 227 deletions(-)

-- 
2.33.1


Re: [PATCH v6 mptcp-next 0/7] mptcp: improve subflow creation on errors
Posted by Mat Martineau 2 years, 4 months ago
On Tue, 14 Dec 2021, Paolo Abeni wrote:

> This iteration tries to add address the feedback on v5, namely
> test counter update and locking in write_options. The latter
> required quite significant changes in patch 5/7.
>
> Additionally the series now includes the pending cleanup, as
> they depends on the previous patches. No changes there WRT the
> previous iteration.
>
> Currently when a subflow connection fails - either the TCP
> connection is reset by the peer, or the MPJ handshake never
> completes - the in kernel PM don't perform any further action.
> Notably no additional subflow creation is attempted.
>
> This series is aimed at improving the in-kernel path manager
> behavior in the above scenario:
> - each endpoint is used only once per connection (patch 2/4)
> - on failure we try to move to the next subflow, if any
>  (patch 3/4)
>
> The first patch is minor cleanup, and the last patch adds
> specific self-tests.
>
> This should address/close:
> https://github.com/multipath-tcp/mptcp_net-next/issues/235
> https://github.com/multipath-tcp/mptcp_net-next/issues/242
>

Hi Paolo -

Thanks for the changes, I think the "start all the subflows in a loop" 
works out better.

Looks good for wider testing on the export branch, with the one selftest 
fix noted in patch 5 (Matthieu, let us know how you prefer to proceed on 
that).

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>


> Paolo Abeni (7):
>  mptcp: fix per socket endpoint accounting.
>  mptcp: clean-up MPJ option writing.
>  mptcp: keep track of local endpoint still available for each msk
>  mptcp: do not block subflows creation on errors
>  selftests: mptcp: add tests for subflow creation failure
>  mptcp: cleanup MPJ subflow list handling
>  mptcp: avoid atomic bit manipulation when possible
>
> net/mptcp/options.c                           |  44 ++--
> net/mptcp/pm.c                                |  24 ++-
> net/mptcp/pm_netlink.c                        | 188 +++++++++++-------
> net/mptcp/protocol.c                          | 158 +++++++--------
> net/mptcp/protocol.h                          |  46 +++--
> net/mptcp/sockopt.c                           |  24 +--
> net/mptcp/subflow.c                           |   9 +-
> tools/testing/selftests/net/mptcp/config      |   1 +
> .../testing/selftests/net/mptcp/mptcp_join.sh |  83 +++++++-
> 9 files changed, 350 insertions(+), 227 deletions(-)
>
> -- 
> 2.33.1
>
>
>

--
Mat Martineau
Intel

Re: [PATCH v6 mptcp-next 0/7] mptcp: improve subflow creation on errors
Posted by Matthieu Baerts 2 years, 4 months ago
Hi Paolo,

On 14/12/2021 17:58, Paolo Abeni wrote:
> This iteration tries to add address the feedback on v5, namely
> test counter update and locking in write_options. The latter
> required quite significant changes in patch 5/7.
> 
> Additionally the series now includes the pending cleanup, as
> they depends on the previous patches. No changes there WRT the
> previous iteration.
> 
> Currently when a subflow connection fails - either the TCP
> connection is reset by the peer, or the MPJ handshake never
> completes - the in kernel PM don't perform any further action.
> Notably no additional subflow creation is attempted.
> 
> This series is aimed at improving the in-kernel path manager
> behavior in the above scenario:
> - each endpoint is used only once per connection (patch 2/4)
> - on failure we try to move to the next subflow, if any
>   (patch 3/4)
> 
> The first patch is minor cleanup, and the last patch adds
> specific self-tests.
> 
> This should address/close:
> https://github.com/multipath-tcp/mptcp_net-next/issues/235
> https://github.com/multipath-tcp/mptcp_net-next/issues/242

Is it OK to close these two issues now or do you prefer to do that when
patch 7/7 will be applied?

Cheers,
Matt
-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net