tcp: propagate MPTCP skb extensions on xmit splits
authorPaolo Abeni <pabeni@redhat.com>
Tue, 3 Nov 2020 19:05:05 +0000 (11:05 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 5 Nov 2020 01:45:53 +0000 (17:45 -0800)
commit5a369ca64364b49caff424d2f988901bc7658b6d
tree4af5d3c6d1086f2d64adde122e2b780eb326011f
parent65f49fe72f9e4063b96c78de62f3ff9a3384164e
tcp: propagate MPTCP skb extensions on xmit splits

When the TCP stack splits a packet on the write queue, the tail
half currently lose the associated skb extensions, and will not
carry the DSM on the wire.

The above does not cause functional problems and is allowed by
the RFC, but interact badly with GRO and RX coalescing, as possible
candidates for aggregation will carry different TCP options.

This change tries to improve the MPTCP behavior, propagating the
skb extensions on split.

Additionally, we must prevent the MPTCP stack from updating the
mapping after the split occur: that will both violate the RFC and
fool the reader.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/mptcp.h
net/ipv4/tcp_output.c
net/mptcp/protocol.c