These patches focus on the Initiator and partially on Listener side.
The next options in userspace are available:
a) sendto(..., ..., ..., MSG_FASTOPEN, ..., ...);
b) setsockopt(..., SOL_TCP, TCP_FASTOPEN, ..., ...);
These patches implement Appendix-B of RFC8684 (MPTFO).
We would like to credit Paulo Abeni, Mat Martineau, Matthieu Baerts and
Benjamin Hesmans for advices and ideas that improved these patches.
Signed-off-by: Dmytro Shytyi <dmytro@shytyi.net>
---
v13 -> v14:
- rebase on top of Paolo's patch: mptcp: factor out mptcp_connect().
- add IPv6 only check for subflow_v6_send_synack().
- new helper for sockopt (first subflow only) is used.
- integrate selftests.
- modify treq.
---
Dmytro Shytyi (5):
mptcp: introduce MSG_FASTOPEN flag.
mptcp: implement delayed seq generation for passive fastopen
mptcp: add subflow_v(4,6)_send_synack()
mptcp: add TCP_FASTOPEN sock option
selftests: mptcp: mptfo Initiator/Listener
net/mptcp/Makefile | 2 +-
net/mptcp/fastopen.c | 97 ++++++++++++
net/mptcp/options.c | 5 +
net/mptcp/protocol.c | 11 +-
net/mptcp/protocol.h | 9 ++
net/mptcp/sockopt.c | 5 +-
net/mptcp/subflow.c | 42 ++++++
.../selftests/net/mptcp/mptcp_connect.c | 140 +++++++++++++-----
.../selftests/net/mptcp/mptcp_connect.sh | 77 ++++++++++
9 files changed, 346 insertions(+), 42 deletions(-)
create mode 100644 net/mptcp/fastopen.c
--
2.34.1