linux/net/mptcp
Paolo Abeni 2398e3991b mptcp: always include dack if possible.
Currently passive MPTCP socket can skip including the DACK
option - if the peer sends data before accept() completes.

The above happens because the msk 'can_ack' flag is set
only after the accept() call.

Such missing DACK option may cause - as per RFC spec -
unwanted fallback to TCP.

This change addresses the issue using the key material
available in the current subflow, if any, to create a suitable
dack option when msk ack seq is not yet available.

v1 -> v2:
 - adavance the generated ack after the initial MPC packet

Fixes: d22f4988ff ("mptcp: process MP_CAPABLE data option")
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-03-05 21:34:42 -08:00
..
crypto.c mptcp: move from sha1 (v0) to sha256 (v1) 2020-01-24 13:44:08 +01:00
ctrl.c mptcp: new sysctl to control the activation per NS 2020-01-24 13:44:08 +01:00
Kconfig mptcp: select CRYPTO 2020-02-16 19:37:16 -08:00
Makefile mptcp: new sysctl to control the activation per NS 2020-01-24 13:44:08 +01:00
options.c mptcp: always include dack if possible. 2020-03-05 21:34:42 -08:00
protocol.c mptcp: add dummy icsk_sync_mss() 2020-02-26 20:49:50 -08:00
protocol.h mptcp: fix bogus socket flag values 2020-02-18 12:05:53 -08:00
subflow.c mptcp: Fix undefined mptcp_handle_ipv6_mapped for modular IPV6 2020-01-30 10:55:54 +01:00
token.c mptcp: Add key generation and token tree 2020-01-24 13:44:07 +01:00