This iteration addresses the issue catched by the pktdrill
test-cases - namely an underflow on pm->subflows counter.
Additionally includes a related fix on pm counters accounting.
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 (5):
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
net/mptcp/options.c | 65 +++++++++------
net/mptcp/pm.c | 24 +++++-
net/mptcp/pm_netlink.c | 83 ++++++++++---------
net/mptcp/protocol.c | 6 ++
net/mptcp/protocol.h | 8 +-
net/mptcp/subflow.c | 5 +-
tools/testing/selftests/net/mptcp/config | 1 +
.../testing/selftests/net/mptcp/mptcp_join.sh | 65 ++++++++++++++-
8 files changed, 187 insertions(+), 70 deletions(-)
--
2.33.1