summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorDavide Caratti <dcaratti@redhat.com>2021-10-27 23:38:55 +0300
committerJakub Kicinski <kuba@kernel.org>2021-10-28 18:19:06 +0300
commitf7cc8890f30d3ddc785e2b2ddc647da5b4b3c3ec (patch)
tree83248bc42bc8855b00261f9ddd5f02eee2e6924f /include/net
parent27de809a3d83a6199664479ebb19712533d6fd9b (diff)
downloadlinux-f7cc8890f30d3ddc785e2b2ddc647da5b4b3c3ec.tar.xz
mptcp: fix corrupt receiver key in MPC + data + checksum
using packetdrill it's possible to observe that the receiver key contains random values when clients transmit MP_CAPABLE with data and checksum (as specified in RFC8684 ยง3.1). Fix the layout of mptcp_out_options, to avoid using the skb extension copy when writing the MP_CAPABLE sub-option. Fixes: d7b269083786 ("mptcp: shrink mptcp_out_options struct") Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/233 Reported-by: Poorva Sonparote <psonparo@redhat.com> Signed-off-by: Davide Caratti <dcaratti@redhat.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Link: https://lore.kernel.org/r/20211027203855.264600-1-mathew.j.martineau@linux.intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/mptcp.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/net/mptcp.h b/include/net/mptcp.h
index 6026bbefbffd..3214848402ec 100644
--- a/include/net/mptcp.h
+++ b/include/net/mptcp.h
@@ -69,6 +69,10 @@ struct mptcp_out_options {
struct {
u64 sndr_key;
u64 rcvr_key;
+ u64 data_seq;
+ u32 subflow_seq;
+ u16 data_len;
+ __sum16 csum;
};
struct {
struct mptcp_addr_info addr;