[RFC PATCH mptcp-next v6 0/9] mptcp: Fast Open Mechanism

Dmytro Shytyi posted 9 patches 1 year, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/20220915235604.26018-1-dmytro@shytyi.net
Maintainers: "David S. Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org>, Mat Martineau <mathew.j.martineau@linux.intel.com>, Shuah Khan <shuah@kernel.org>, Matthieu Baerts <matthieu.baerts@tessares.net>, Paolo Abeni <pabeni@redhat.com>, Eric Dumazet <edumazet@google.com>
There is a newer version of this series
net/mptcp/Makefile                            |   2 +-
net/mptcp/fastopen.c                          | 553 ++++++++++++++++++
net/mptcp/options.c                           |   3 +
net/mptcp/protocol.c                          |  12 +-
net/mptcp/protocol.h                          |  63 +-
net/mptcp/sockopt.c                           |   3 +
net/mptcp/subflow.c                           |   8 +-
tools/testing/selftests/net/mptcp/mptfo.sh    |  13 +
.../selftests/net/mptcp/mptfo_initiator.c     |  41 ++
.../selftests/net/mptcp/mptfo_listener.c      |  98 ++++
10 files changed, 785 insertions(+), 11 deletions(-)
create mode 100644 net/mptcp/fastopen.c
create mode 100644 tools/testing/selftests/net/mptcp/mptfo.sh
create mode 100644 tools/testing/selftests/net/mptcp/mptfo_initiator.c
create mode 100644 tools/testing/selftests/net/mptcp/mptfo_listener.c
[RFC PATCH mptcp-next v6 0/9] mptcp: Fast Open Mechanism
Posted by Dmytro Shytyi 1 year, 6 months ago
[PATCH v6] includes "client-server" partial support for:
1. MPTCP cookie request from client (seems OK).
2. MPTCP cookie offering from server (seems OK).
3. MPTCP SYN+DATA+COOKIE from client (seems OK).
4. subsequent write + read on the opened socket (seems OK).

===Changes between v4 and v6
- All data sent by the initiator received by listener in userspace.
- No more infinite re-transmissions of the same packet in the
end of the second connection.
- ”WARNING in sk stream kill queues”, when skb is added to
msk queue - is fixed.
- Fix the second (discarded) packet that is re-transmitted in the
end of 2nd session.
- We have (in the v4 it is not present) the FIN in the end of the
2nd (TFO data+cookie+syn) session.
- All comments from the mailing list are implemented.
- Properly remove the TS from TCP options.

===Pros/Cons of v6:
- NO modifications of existing TCP code in linux kernel.
- Increased size of the patch.
===Future work:
-Adress the appearance of "MPTCP FIN" as duplicated acks.

Signed-off-by: Dmytro Shytyi <dmytro@shytyi.net>

Dmytro Shytyi (9):
  Add separate fastopen.c file.
  Initiator: MSG_FASTOPEN sendto(). request cookie
  rfree(), rmem_uncharge() prototypes to protocol.h
  Initiator: add locks() to mptcp_sendmsg_fastopen.
  Fix unxpctd val of subflow->map_seq(dscrd packet)
  mptfo variables for msk, options. Fix loop retrans
  Listener: Add received skb to msk
  mptcp_fastopen_add_skb() helpers (skb to msk)
  selftests: mptfo initiator/listener

 net/mptcp/Makefile                            |   2 +-
 net/mptcp/fastopen.c                          | 553 ++++++++++++++++++
 net/mptcp/options.c                           |   3 +
 net/mptcp/protocol.c                          |  12 +-
 net/mptcp/protocol.h                          |  63 +-
 net/mptcp/sockopt.c                           |   3 +
 net/mptcp/subflow.c                           |   8 +-
 tools/testing/selftests/net/mptcp/mptfo.sh    |  13 +
 .../selftests/net/mptcp/mptfo_initiator.c     |  41 ++
 .../selftests/net/mptcp/mptfo_listener.c      |  98 ++++
 10 files changed, 785 insertions(+), 11 deletions(-)
 create mode 100644 net/mptcp/fastopen.c
 create mode 100644 tools/testing/selftests/net/mptcp/mptfo.sh
 create mode 100644 tools/testing/selftests/net/mptcp/mptfo_initiator.c
 create mode 100644 tools/testing/selftests/net/mptcp/mptfo_listener.c

-- 
2.25.1