[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220517180212.92597-1-mathew.j.martineau@linux.intel.com>
Date: Tue, 17 May 2022 11:02:10 -0700
From: Mat Martineau <mathew.j.martineau@...ux.intel.com>
To: netdev@...r.kernel.org
Cc: Mat Martineau <mathew.j.martineau@...ux.intel.com>,
davem@...emloft.net, kuba@...nel.org, pabeni@...hat.com,
edumazet@...gle.com, matthieu.baerts@...sares.net,
mptcp@...ts.linux.dev
Subject: [PATCH net 0/2] mptcp: Fix checksum byte order on little-endian
These patches address a bug in the byte ordering of MPTCP checksums on
little-endian architectures. The __sum16 type is always big endian, but
was being cast to u16 and then byte-swapped (on little-endian archs)
when reading/writing the checksum field in MPTCP option headers.
MPTCP checksums are off by default, but are enabled if one or both peers
request it in the SYN/SYNACK handshake.
The corrected code is verified to interoperate between big-endian and
little-endian machines.
Patch 1 fixes the checksum byte order, patch 2 partially mitigates
interoperation with peers sending bad checksums by falling back to TCP
instead of resetting the connection.
Mat Martineau (1):
mptcp: Do TCP fallback on early DSS checksum failure
Paolo Abeni (1):
mptcp: fix checksum byte order
net/mptcp/options.c | 36 ++++++++++++++++++++++++------------
net/mptcp/protocol.h | 5 +++--
net/mptcp/subflow.c | 23 +++++++++++++++++++----
3 files changed, 46 insertions(+), 18 deletions(-)
base-commit: edf410cb74dc612fd47ef5be319c5a0bcd6e6ccd
--
2.36.1
Powered by blists - more mailing lists