]> git.baikalelectronics.ru Git - kernel.git/commit
mptcp: Use 32-bit DATA_ACK when possible
authorChristoph Paasch <cpaasch@apple.com>
Thu, 14 May 2020 15:53:03 +0000 (08:53 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 16 May 2020 20:51:10 +0000 (13:51 -0700)
commit58e89daf155011adf69414b1ec1b694feaeb8e81
tree9e6c4e1406a00559b1dd4ef04cf502d65e5cb3e7
parentef2e13fcfb5e7f8584a9c3a22318e4430071a0d9
mptcp: Use 32-bit DATA_ACK when possible

RFC8684 allows to send 32-bit DATA_ACKs as long as the peer is not
sending 64-bit data-sequence numbers. The 64-bit DSN is only there for
extreme scenarios when a very high throughput subflow is combined with a
long-RTT subflow such that the high-throughput subflow wraps around the
32-bit sequence number space within an RTT of the high-RTT subflow.

It is thus a rare scenario and we should try to use the 32-bit DATA_ACK
instead as long as possible. It allows to reduce the TCP-option overhead
by 4 bytes, thus makes space for an additional SACK-block. It also makes
tcpdumps much easier to read when the DSN and DATA_ACK are both either
32 or 64-bit.

Signed-off-by: Christoph Paasch <cpaasch@apple.com>
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/mptcp.h
net/mptcp/options.c
net/mptcp/protocol.h
net/mptcp/subflow.c