mptcp: more DATA FIN fixes
authorPaolo Abeni <pabeni@redhat.com>
Mon, 5 Oct 2020 10:01:06 +0000 (12:01 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 6 Oct 2020 13:06:59 +0000 (06:06 -0700)
commit017512a07e15b66472946cf5e6f4b4511e7cf898
treeb2dce58e4aca37bec8b52681ebc7671f149fba95
parentc88c5ed75fab918742ef6cc62db88655573be0ef
mptcp: more DATA FIN fixes

Currently data fin on data packet are not handled properly:
the 'rcv_data_fin_seq' field is interpreted as the last
sequence number carrying a valid data, but for data fin
packet with valid maps we currently store map_seq + map_len,
that is, the next value.

The 'write_seq' fields carries instead the value subseguent
to the last valid byte, so in mptcp_write_data_fin() we
never detect correctly the last DSS map.

Fixes: 7279da6145bb ("mptcp: Use MPTCP-level flag for sending DATA_FIN")
Fixes: 1a49b2c2a501 ("mptcp: Handle incoming 32-bit DATA_FIN values")
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mptcp/options.c
net/mptcp/subflow.c