History

mptcp: Implement MPTCP receive path

Parses incoming DSS options and populates outgoing MPTCP ACK fields. MPTCP fields are parsed from the TCP option header and placed in an skb extension, allowing the upper MPTCP layer to access MPTCP options after the skb has gone through the TCP stack. The subflow implements its own data_ready() ops, which ensures that the pending data is in sequence - according to MPTCP seq number - dropping out-of-seq skbs. The DATA_READY bit flag is set if this is the case. This allows the MPTCP socket layer to determine if more data is available without having to consult the individual subflows. It additionally validates the current mapping and propagates EoF events to the connection socket.

Mat Martineau committed 6 years ago

Commit 648ef4b1 parent 6d0060f7 files · +609 −5Browse files

Showing the changes to include/linux (1 of 7 files). Show all

Unified · Split

include/linux/tcp.h+10−0
@@ -82,9 +82,19 @@ struct tcp_sack_block { · 81 unmodified lines
8282 struct mptcp_options_received {
8383 u64 sndr_key;
8484 u64 rcvr_key;
85+ u64 data_ack;
86+ u64 data_seq;
87+ u32 subflow_seq;
88+ u16 data_len;
8589 u8 mp_capable : 1,
8690 mp_join : 1,
8791 dss : 1;
92+ u8 use_map:1,
93+ dsn64:1,
94+ data_fin:1,
95+ use_ack:1,
96+ ack64:1,
97+ __unused:3;
8898 };
8999 #endif
90100

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t