MPTCP Fast Open in linux kernel

This set of patches will bring “Fast Open” Option support to MPTCP in linux kernel. The aim of Fast Open Mechanism is to eliminate one round trip time from a MPTCP conversation by allowing data to be included as part of the SYN segment that initiates the connection.

IETF RFC 8684: Appendix B. TCP Fast Open and MPTCP. IETF RFC LINK

[PATCH v2] includes “client-server” partial support for :
1. MPTCP cookie request from client.
2. MPTCP cookie offering from server.
3. MPTCP SYN+DATA+COOKIE from client.
4. subsequent write + read on the opened socket.

This patch is Work In Progress and an early draft.

The patch is build against 5.16.0-rc8 net-next.

The patch is located in the next mailing list: https://patchew.org/MPTCP/[email protected]/

The pcap dump:

Userspace programs:

Server specifics:
Create socket for listening in C with IPPROTO_MPTCP:

Set socket option “TCP_FASTOPEN” implemented by the patch.

Client specifics:
Set IPPROTO_MPTCP with MSG_FASTOPEN option on the client side.