From nobody Thu Mar 28 15:16:41 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:32da:0:0:0:0:0 with SMTP id f26csp343699uao; Thu, 8 Sep 2022 06:38:52 -0700 (PDT) X-Google-Smtp-Source: AA6agR72u2acgSqEuOrEcywKDy8HuRNNJFUrD57VJDXkZtzk+49Oiv7I+E6aYFx6atfwwOoV7Bxw X-Received: by 2002:a05:620a:1233:b0:6cb:df37:a16a with SMTP id v19-20020a05620a123300b006cbdf37a16amr1020603qkj.331.1662644331918; Thu, 08 Sep 2022 06:38:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662644331; cv=none; d=google.com; s=arc-20160816; b=Nmq+FIaYM15nKigLefRBWefhm67XpuNxjRUVCrGWsKnfcIz7Mzu4B4lAkdorfDDDdg HiFE1jhPerDg/QR+HZphGTJYXeGUVIyewbCiVei+tGR9TkIlBL0fDnkXsLqWp+JNdjZi ryn16onLoQqNGBDo/mWZJ2wfZ0EKVkDHB4J1hNEUxezLNE7wDZne7txYZP47GCeRhHZq Urx8B6L+ItPKh67y2/Fk6BSHBrBCGyg2G73j2n56AX3QH+0qehp9k9DfcnHFT+O2Sm1a aIIrmt8fKbTd2Zf4i3s4qMX5tR5x0h3Rfq9GFl9l7QQrlc4aec4kK1fMOSVhcB7oGgZj M+Yw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=MucUSLBYQgaqEZzouRlEu+Sv92psSBaTorLTjbyK/Es=; b=YxhInqjQ6G4/bhBAHVOHXM5SPVlzpHSfQ6hOWwOrSzdqHn3MIdba9nyCdeWCdZKluT ZCim5pIohV7oF2CeviIZP2wJL+sSVJk7j2AnoqvYSMVsi6uhYg0ZViQZWVVUlSAIpxla kD2gVhFAFlyaM0dC1lGybhT0LmfXqwHkqQdifXS3awhlXcDjegKuM+CYT4Lgbd2gGx6S kPWKllZqq1QBwWJfOwqQv14luWQdk2JtiZr6CMNRECJ9i/pJOALcCGu+U3PKuKpZOunJ QHh64dVhvQly+cw5/2tf1rPLs6VSgPkO+x2WCva3Knv+kShYx6KVQdUYJZOKHNGTcDy1 xZTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=xia2diYJ; spf=pass (google.com: domain of mptcp+bounces-6216-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6216-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id z10-20020ae9c10a000000b006bbbce31b99si9035951qki.248.2022.09.08.06.38.51 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Sep 2022 06:38:51 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6216-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=xia2diYJ; spf=pass (google.com: domain of mptcp+bounces-6216-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6216-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 2EEBF1C20995 for ; Thu, 8 Sep 2022 13:38:51 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B1DAC3233; Thu, 8 Sep 2022 13:38:49 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DAD503224 for ; Thu, 8 Sep 2022 13:38:47 +0000 (UTC) Received: by mail-wm1-f46.google.com with SMTP id n17-20020a05600c501100b003a84bf9b68bso1784796wmr.3 for ; Thu, 08 Sep 2022 06:38:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date; bh=MucUSLBYQgaqEZzouRlEu+Sv92psSBaTorLTjbyK/Es=; b=xia2diYJogSLaVTYPb1jhYGSjxhCukqA+D2iVEdKqm7nCM1nw2mQ41NtZix2OdRnbj XNnU0JAR777bg3j2o60umI3KguMidw4sRCTgQMx2UFTq2JE1ZgO9uA1XDzwb8rD+QU/r muooXU4BEbkZQhF28nJEGWJM+fJQ0yyigB66FVWZq96TL7Blq6u5n7RHlQi8guLx8LPt ZWSZ8gpdi7cMJOc46Gmrf2su+tez92jKcnTh6eoDKjTHWJHDjy6uF2y32hSxBgu7Bm30 pj/r0LjGUk7IsfPK67JHULSNZ4rgDrWJbH8fyZXwTCRl2/5pLfriowCbPV5tHNOSQ+CL r9dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date; bh=MucUSLBYQgaqEZzouRlEu+Sv92psSBaTorLTjbyK/Es=; b=FL9STHrWW7TWvxirEgqFopuoJbUpwB7Fv47A7Yr5r2OPsXPF8CbVyQ3pIi4tCiamKj BmqgD4LAJ7rb1ZjuNIyvW21zZ65z3Ir9qKx5zwRtnXhFhBTyD39BRmkjg8M5Ru9f/HKJ a8+Ab7GdGAkCuMm5h0riu4RSd4h2DlsAVg9EdwcIxm+2ELRpgmRF+LtkSaCQy8b2dSoO ppwulyXsC/1JwF5jNa2F0ArKo6pV8o4aGfnXWt33BeBmMEbbMP7NEDmzPi4Td18teBtB lmwdZcnpq+mXdkXUsbW8/ha7H1FaDBxSMBjw6zyR8ZBkJ8xxJqxJrhIbY3a9ALTRC+4c rU0Q== X-Gm-Message-State: ACgBeo0yQ5CwNYIBr9Rkoh4InYfvkE7xIm+XWf6gae0WH5xLTdEfePVo 0fgc0A6lhtqjT6b30qZI8G52vf4GXVPULuZWkOvGP/4/ZXkJ/CMqpkTaPnNyCyK05hIIALTW4yi K45AID7bsqRVfRJPcZ+Chtg== X-Received: by 2002:a7b:c451:0:b0:3a6:829a:6102 with SMTP id l17-20020a7bc451000000b003a6829a6102mr2358465wmi.12.1662644325996; Thu, 08 Sep 2022 06:38:45 -0700 (PDT) Received: from vdi02.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id fc15-20020a05600c524f00b003a5260b8392sm3100822wmb.23.2022.09.08.06.38.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 06:38:45 -0700 (PDT) From: Benjamin Hesmans To: mptcp@lists.linux.dev Cc: Benjamin Hesmans Subject: [PATCH RFC mptcp-next 01/10] mptcp: add TCP_FASTOPEN_CONNECT socket option Date: Thu, 8 Sep 2022 15:38:20 +0200 Message-Id: <20220908133829.3410092-2-benjamin.hesmans@tessares.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> References: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Set the option for the first subflow only. For the other subflows TFO can't be used because a mapping would be needed to cover the data in the SYN. Signed-off-by: Benjamin Hesmans --- Notes: This patch only consider TCP_FASTOPEN_CONNECT, for TCP_FASTOPEN, Dmytro= SHYTYI has proposed a different set of patches. net/mptcp/sockopt.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index 423d3826ca1e..03bd57aef987 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -559,6 +559,7 @@ static bool mptcp_supported_sockopt(int level, int optn= ame) case TCP_NOTSENT_LOWAT: case TCP_TX_DELAY: case TCP_INQ: + case TCP_FASTOPEN_CONNECT: return true; } =20 @@ -567,7 +568,7 @@ static bool mptcp_supported_sockopt(int level, int optn= ame) /* TCP_REPAIR, TCP_REPAIR_QUEUE, TCP_QUEUE_SEQ, TCP_REPAIR_OPTIONS, * TCP_REPAIR_WINDOW are not supported, better avoid this mess */ - /* TCP_FASTOPEN_KEY, TCP_FASTOPEN TCP_FASTOPEN_CONNECT, TCP_FASTOPEN_NO_= COOKIE, + /* TCP_FASTOPEN_KEY, TCP_FASTOPEN, TCP_FASTOPEN_NO_COOKIE, * are not supported fastopen is currently unsupported */ } @@ -768,6 +769,19 @@ static int mptcp_setsockopt_sol_tcp_defer(struct mptcp= _sock *msk, sockptr_t optv return tcp_setsockopt(listener->sk, SOL_TCP, TCP_DEFER_ACCEPT, optval, op= tlen); } =20 +static int mptcp_setsockopt_sol_tcp_fastopen_connect(struct mptcp_sock *ms= k, sockptr_t optval, + unsigned int optlen) +{ + struct socket *sock; + + /* Limit to first subflow, maybe msk->first could be used here? */ + sock =3D __mptcp_nmpc_socket(msk); + if (!sock) + return -EINVAL; + + return tcp_setsockopt(sock->sk, SOL_TCP, TCP_FASTOPEN_CONNECT, optval, op= tlen); +} + static int mptcp_setsockopt_sol_tcp(struct mptcp_sock *msk, int optname, sockptr_t optval, unsigned int optlen) { @@ -796,6 +810,8 @@ static int mptcp_setsockopt_sol_tcp(struct mptcp_sock *= msk, int optname, return mptcp_setsockopt_sol_tcp_nodelay(msk, optval, optlen); case TCP_DEFER_ACCEPT: return mptcp_setsockopt_sol_tcp_defer(msk, optval, optlen); + case TCP_FASTOPEN_CONNECT: + return mptcp_setsockopt_sol_tcp_fastopen_connect(msk, optval, optlen); } =20 return -EOPNOTSUPP; --=20 2.25.1 --=20 Disclaimer: https://www.tessares.net/mail-disclaimer/=20 From nobody Thu Mar 28 15:16:41 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:32da:0:0:0:0:0 with SMTP id f26csp343714uao; Thu, 8 Sep 2022 06:38:53 -0700 (PDT) X-Google-Smtp-Source: AA6agR7vmr/hQXNqz3oRRLPsNc1Pk8/WszSajfAswBTKy7+urozSOoEea87+xtel1jPwkBdKee6Z X-Received: by 2002:a17:903:120d:b0:171:4fa0:7b4a with SMTP id l13-20020a170903120d00b001714fa07b4amr8835538plh.45.1662644333728; Thu, 08 Sep 2022 06:38:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662644333; cv=none; d=google.com; s=arc-20160816; b=k8xUyU3Bgh3Gev3rcIPEWqwXviwkbheZWkzIHFsTt8PPpRhtL6hXXc54FOQzjYWRVf 6st6iJTr63ju/2TzbJXzuu/K7FtHslyaz0DMhJ6qkrvPt8WpqUdlQ+U+NzdW85YKXkuK t8LzOtODhNuJ+G3tjih1rkVvN1LeMO9ETn0ZUSD5RJS04KPGvBAx2mTNPCTZX5VHpviy bfC0iZD6oc2Qhf5cpYm6mBbCk+bhV58wK1s8FqMsUkDuZXZDdrar5vgjNBG3OVCVxOny S9zGki+8kCQQASs6fJM1HmqRAYdciHwVhn14qNREtN4AxIW4psmCR/aO8vMSganByl1S NrNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=AlZcDGKD3h8w7SVOoMAnBwdJWd5RHVKmHHHEnH8yp/k=; b=Xhr6uP73mZaTm3xvCK4pceRJ7h8qbRDqg6lnMAPB0bhgB7REqvrRxsPrTkjxrgcyIe /ct3AsYPcidZlGGD4+wM2FKTERwfwDqrIUSaWq0mxaBlU6prc2DmevQq9mfHyB39dZc5 Q13HSiCLqPmwEYn+3+hLoJY7h+wcROMkkH87DcyD0Qy/PBde2BIzLS/0B/uADq8ZAd8D scFP0Ib/Fp01mkRHrlhWL9Lj57XBxxsbfFi5QP/QWQtY/lbBoCI7CaBT8BlmAegCjIZO y2PvnLGjnrBwbG/PG+E8me4tNWEvVODUx9aG7rpeyMMuuigs1MbPkytggi9gvhdtHpCI Esxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=Bvl6RAXs; spf=pass (google.com: domain of mptcp+bounces-6218-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6218-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id mi7-20020a17090b4b4700b001fb3503ff97si2492952pjb.8.2022.09.08.06.38.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Sep 2022 06:38:53 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6218-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=Bvl6RAXs; spf=pass (google.com: domain of mptcp+bounces-6218-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6218-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 24D93280CA8 for ; Thu, 8 Sep 2022 13:38:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6F8933222; Thu, 8 Sep 2022 13:38:51 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CAF8C322A for ; Thu, 8 Sep 2022 13:38:48 +0000 (UTC) Received: by mail-wm1-f43.google.com with SMTP id m17-20020a7bce11000000b003a5bedec07bso1744679wmc.0 for ; Thu, 08 Sep 2022 06:38:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date; bh=AlZcDGKD3h8w7SVOoMAnBwdJWd5RHVKmHHHEnH8yp/k=; b=Bvl6RAXsAu8Mq1ZJua5X9G++evk/VWchcl3Wu+5tMKhl7azXl2XM1hMEph1tHWDT5o XCGRmSSSUE1Zl2BkI9KYwNLDvweSccuH/fkm70iREAqQVViaueKfVUvs1LAdKhArHnAr 2zXpfsKfhU3ioR6LySyppv91MBWeib9sT0waDDAuwJRT2RXdTnrnI4cIl8fKXF1qg02I DffsT/WCjZge8haBXL3dRLG//2i2qCmuawxCjtD/Sz8ymvncz3jgY8rqpjkT4WRrAG5o NXaMwLY7yci2AyCevp1HlC8ycrNGxEXh9ua1sPel72dwW+BjIABrTnX3DsYZBuSo614c xx1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date; bh=AlZcDGKD3h8w7SVOoMAnBwdJWd5RHVKmHHHEnH8yp/k=; b=a46pAQZYvUHjjztnSaZSh6iFbmj/ThUhqTLGzJvS2LqIVLZ8Jbpmqq8fr1J03ZM2Kw fERIZ7TZSu50YSPhQqxb6I1C7TfcL3pYtRRsarHG/AxB2PiyfphniEHlBlVoluBFZt9/ eYNjh7PpY7vkDQnkb2dGPTjkRoxWmY6VhA6oKH89x09pl2u3deLz0dppUhgFMpYOPEep FvvBGB40vl2yNPS9fmeR348DVZjFYYRPtzkE4H9jZBOpKoXXWxKTlqL9Epb4U3PYOn5o FOuWBW+2Q7UuApsfeWnjlhdo3pByK2cNXrJ6exjDB/9IXuEjouKLqygf1rJcQhFDvn3j R7GQ== X-Gm-Message-State: ACgBeo2KBTNU67f9LXYtP7rp9vRk35cbcf7ZiszX+VfR+7AoG8AgxiaS h6PAmYeNFPG70uuzCTxJM0ilfDSD4fzhoNTfKIDyt6vEQxNKXvCGIpN7V0LS3a3F5il9km2J0qh 76jj9Ge4BvsmLeEpeJ0ZI1Q== X-Received: by 2002:a05:600c:3d93:b0:3a5:eb9b:b495 with SMTP id bi19-20020a05600c3d9300b003a5eb9bb495mr2279123wmb.91.1662644326688; Thu, 08 Sep 2022 06:38:46 -0700 (PDT) Received: from vdi02.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id fc15-20020a05600c524f00b003a5260b8392sm3100822wmb.23.2022.09.08.06.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 06:38:46 -0700 (PDT) From: Benjamin Hesmans To: mptcp@lists.linux.dev Cc: Benjamin Hesmans Subject: [PATCH RFC mptcp-next 02/10] tcp: export tcp_sendmsg_fastopen Date: Thu, 8 Sep 2022 15:38:21 +0200 Message-Id: <20220908133829.3410092-3-benjamin.hesmans@tessares.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> References: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It will be used to support TCP FastOpen with MPTCP in a following commit. Signed-off-by: Benjamin Hesmans --- include/net/tcp.h | 2 ++ net/ipv4/tcp.c | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/include/net/tcp.h b/include/net/tcp.h index d10962b9f0d0..9a073b58dc4b 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -327,6 +327,8 @@ void tcp_remove_empty_skb(struct sock *sk); int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw); int tcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t size); int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size); +int tcp_sendmsg_fastopen(struct sock *sk, struct msghdr *msg, int *copied, + size_t size, struct ubuf_info *uarg); int tcp_sendpage(struct sock *sk, struct page *page, int offset, size_t si= ze, int flags); int tcp_sendpage_locked(struct sock *sk, struct page *page, int offset, diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 44bc885bb2db..999db6b28008 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1162,9 +1162,8 @@ void tcp_free_fastopen_req(struct tcp_sock *tp) } } =20 -static int tcp_sendmsg_fastopen(struct sock *sk, struct msghdr *msg, - int *copied, size_t size, - struct ubuf_info *uarg) +int tcp_sendmsg_fastopen(struct sock *sk, struct msghdr *msg, int *copied, + size_t size, struct ubuf_info *uarg) { struct tcp_sock *tp =3D tcp_sk(sk); struct inet_sock *inet =3D inet_sk(sk); --=20 2.25.1 --=20 Disclaimer: https://www.tessares.net/mail-disclaimer/=20 From nobody Thu Mar 28 15:16:41 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:32da:0:0:0:0:0 with SMTP id f26csp343743uao; Thu, 8 Sep 2022 06:38:59 -0700 (PDT) X-Google-Smtp-Source: AA6agR5roljFyfNnQDg8sTckN+/CHbvTgCzNFufuxLp1i+TaBZX6SvuSBVtd2f7PI+r6YP5uGCWZ X-Received: by 2002:a05:622a:138b:b0:344:540b:d10b with SMTP id o11-20020a05622a138b00b00344540bd10bmr7975179qtk.331.1662644334689; Thu, 08 Sep 2022 06:38:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662644334; cv=none; d=google.com; s=arc-20160816; b=LoOL2YJv6E4hyH2HoYtIVgGAJsXmARjKI0VEbkTn5u454PhkX10woo3+z54UrcWSQN /zMDp4bqdeQwh7vngUIXidV3hVG5zQxQEDrhmzJzwnOFOHhI5v/eKtTAZvEjMIZxbOjo 6BADYXNyzJvZwVawsLIN/tClJr7Ez/pDieS3yo71+dGa07ZMl36gxA3WyZTC4hhPHKMc Pwy34WBMhxXFqZbCczzmP2dPl3H9Ftl8QGnWFai2fFUYpy6IgQkjTnotv7ZfWoXDkmi4 DxULO47oi9uC9KvTt5gLTQYROm1IUxpu4EQG3W4KtNfDTA1STAxtZHu9KU6g3jRXKhbu GuwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IyhqBXZcntykYwHoMAqYkJIjhx7GOIDvM+xBrS8J4cM=; b=heNe5Dm6/kUN8+QWYmTKNgbf88MFCI+7pE+xwGwIh8/O6nX09IGADpSm7F8tNQS0ap d0j8oOkvvAaPZUKDMonCsa1oSV2PcagyTTkHEPQ5AtOUDOqUL7cUhVVsbX6jrSUjBkY2 y8L+PCnRvEFRn8eIR9ebhY7K/eANUn84XsNv6YbHLO/FdDsg28NE7mpZnTZCvRMh9wur aaZwh/LdLbNrvM2qdDHbOIvqz0WIF+qtgwLGctirwITCUFtrHI/gDo8oyS95ajfLQtKW DC4gVQCZnmRD8pPi6j77hlssMh0ZyFtWIfvTxG2kHfGE5ciBDC5SLQj2j1UtVo2wtNR0 HlRw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=ntZZjI3b; spf=pass (google.com: domain of mptcp+bounces-6219-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6219-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id z10-20020ae9c10a000000b006bbbce31b99si9035951qki.248.2022.09.08.06.38.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Sep 2022 06:38:54 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6219-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=ntZZjI3b; spf=pass (google.com: domain of mptcp+bounces-6219-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6219-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 69EAF1C209B3 for ; Thu, 8 Sep 2022 13:38:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A3BF6322A; Thu, 8 Sep 2022 13:38:51 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A18A1322B for ; Thu, 8 Sep 2022 13:38:49 +0000 (UTC) Received: by mail-wr1-f42.google.com with SMTP id k9so26157067wri.0 for ; Thu, 08 Sep 2022 06:38:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date; bh=IyhqBXZcntykYwHoMAqYkJIjhx7GOIDvM+xBrS8J4cM=; b=ntZZjI3bQQdA9jsHOYDCRDLeeAuAD52tKQ7hOu0mlH8lAuamjVqZoq4LONH5vHbsu9 ytvhQmDrEtoqplT1ywzrerLkNXpG0OgkAcN1InoJUcO4Myg33NJUiJ16QZn3nBhD/Ey+ Mq5eT4gzicWkmoAk332xElLWTRGtafm/Ke2Fphau3LP+6LU5G3T6CNIGP2BgqmV446v9 qbhFR9d3866b36C8Y/ltS4FMNn8vEC+97Z2cZh5atmBSn1uZSmOGlWhy/0tiLLq/S3ik vhf3SPrWj3DahlsszqzUUFdMBoU3BcU0BI1gBVFXMEiei+jFT6d70EQi5IUHXxH62I+O E1YQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date; bh=IyhqBXZcntykYwHoMAqYkJIjhx7GOIDvM+xBrS8J4cM=; b=i4AaQtjAS/VuqRcvMPpvJUN6PSU4LDu9oz7rTUMNQrYhAvPceuqOtfH7VwQrvffHfZ 0h8pW6DfLmTQEKO/JJ4D1n99ykywEVu8dPtkuo09Nj/v/T8kY/BIv9eDpLjQV7nYcxKn nbt3MqazK41H9KFOGJ2p3vlrVHXgT5RHgW+r1RWahUvvgjfUtr2oXmKXV4FVo6xKT1fS ELQ/dlYvXLYOmgAvioLNrXzTQwDSjH5E9NevvgLV88LIBy05lcVO4wpVNEP3i3Krk5eU obZMOrBC/ICUsy/kjK43PVoXUw60L/1mS5ef8Lsf3cyOuWjWF2wGguxLLzHlaklr44zA n88A== X-Gm-Message-State: ACgBeo0+PqFl1gVfCH1eHH0ICrSZRaXRMiCj9Sr6EOxda3kejLPh4OAX 0OdM5R48EG/IqqxYQX617WY/b8RS8HGvl9Ho72G264KW5t9nfuERh3DJ6C9ULezvvwvCv5uWd5D o0SzHxdy0/UmM0badrnYmEQ== X-Received: by 2002:adf:8b07:0:b0:228:da7c:80ee with SMTP id n7-20020adf8b07000000b00228da7c80eemr5121248wra.25.1662644327388; Thu, 08 Sep 2022 06:38:47 -0700 (PDT) Received: from vdi02.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id fc15-20020a05600c524f00b003a5260b8392sm3100822wmb.23.2022.09.08.06.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 06:38:47 -0700 (PDT) From: Benjamin Hesmans To: mptcp@lists.linux.dev Cc: Benjamin Hesmans Subject: [PATCH RFC mptcp-next 03/10] mptcp: handle defer connect in mptcp_sendmsg Date: Thu, 8 Sep 2022 15:38:22 +0200 Message-Id: <20220908133829.3410092-4-benjamin.hesmans@tessares.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> References: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When TCP_FASTOPEN_CONNECT has been set on the socket before a connect, the defer flag is set and must be handled when sendmsg is called. This is similar to what is done in tcp_sendmsg_locked() Signed-off-by: Benjamin Hesmans --- Notes: The error case is probably not correctly handled. To be checked. net/mptcp/protocol.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 55442df8fb97..ad81824bdbfe 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1668,6 +1668,7 @@ static int mptcp_sendmsg(struct sock *sk, struct msgh= dr *msg, size_t len) { struct mptcp_sock *msk =3D mptcp_sk(sk); struct page_frag *pfrag; + struct socket *ssock; size_t copied =3D 0; int ret =3D 0; long timeo; @@ -1681,6 +1682,24 @@ static int mptcp_sendmsg(struct sock *sk, struct msg= hdr *msg, size_t len) =20 lock_sock(sk); =20 + ssock =3D __mptcp_nmpc_socket(msk); + if (ssock && inet_sk(ssock->sk)->defer_connect) { + int copied_syn =3D 0; + + lock_sock(ssock->sk); + + ret =3D tcp_sendmsg_fastopen(ssock->sk, msg, &copied_syn, len, NULL); + copied +=3D copied_syn; + if (ret =3D=3D -EINPROGRESS && copied_syn > 0) { + release_sock(ssock->sk); + goto out; + } else if (ret) { + /* The error case is probably not correctly handled. To be checked. */ + release_sock(ssock->sk); + goto out; + } + } + timeo =3D sock_sndtimeo(sk, msg->msg_flags & MSG_DONTWAIT); =20 if ((1 << sk->sk_state) & ~(TCPF_ESTABLISHED | TCPF_CLOSE_WAIT)) { --=20 2.25.1 --=20 Disclaimer: https://www.tessares.net/mail-disclaimer/=20 From nobody Thu Mar 28 15:16:41 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:32da:0:0:0:0:0 with SMTP id f26csp343729uao; Thu, 8 Sep 2022 06:38:56 -0700 (PDT) X-Google-Smtp-Source: AA6agR7Rl7qL024+9ul14dIOwoCP/21mJZctBPfpdSKKisPjHvi+oWOqj+7T1wM+W4d27qmjnpJn X-Received: by 2002:a17:90b:38c1:b0:200:8f03:63d8 with SMTP id nn1-20020a17090b38c100b002008f0363d8mr4250265pjb.148.1662644335984; Thu, 08 Sep 2022 06:38:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662644335; cv=none; d=google.com; s=arc-20160816; b=apRmDKsI36cgHpeqBATCMEwC5z2Ylg9oMnArhUsx5qSght9UsJSAaw+QHrB6mbpxp7 z4nvlVrtA1Ix5dyzRWc8nIFokMhyrJ0cgvPuv6FZoDyaMQCg9YyiNUHDfU9kBW4D6olT dvvv12zQm7zs+yyaxRVowystolN5c9VaVkPAQj1cjnGJ69doOT6AlvzGtQRqt/3NJrch a8zJfwqs+IXDAqz3DYoxFLwXhNPlMhGuguEbI/KjqZpUGXZS5jH8dPwuXSJGxK7jycJn WICOn3KE+m/Vq5LnbUCndIcjAM6tTTgUsCgp/9C1Yf5u/ix3m3/1YtDCBcCCO4/czkqa xHhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=SJaJNNWvXr+uUW+7FUU0Qt2mEuzYS6yLzpvutRM90+8=; b=sjD6/6yF+C1qvdVMV7aR7We9CHgeySpvxbnvBXBuNMos4Yh1IuVLIqkabmE4sL9vf/ GvI7tpeFBWIbOyv/AS2ysj/aHDOwoUcmTkzzNmfVdql57u4g0iHw/WfLdLkwgt7EKiRE qJ3kVf/utEMR3V/ju+lEoEt7i3KEJob4dnWRCZfZozjFDw19zNBfLFmp73mPGKxxLJso MlIyL80+RjUxqw8JO4vEAAVsZfnfUD/w+e5kDm23lHJbXMenXoIFI9Di1H9s78MW4/c4 apHlN4cRFC2v1Nm3OyOdwJHXy9BKYNoOpuUd9UZ6ZWz0OEyJwJTBOgXTfoEZeXUzfCQa FOJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=bsff2HIz; spf=pass (google.com: domain of mptcp+bounces-6220-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-6220-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id v12-20020a056a00148c00b005252be33906si19959305pfu.224.2022.09.08.06.38.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Sep 2022 06:38:55 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6220-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=bsff2HIz; spf=pass (google.com: domain of mptcp+bounces-6220-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-6220-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 5FC9C280CD6 for ; Thu, 8 Sep 2022 13:38:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9770033C7; Thu, 8 Sep 2022 13:38:52 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1131F3224 for ; Thu, 8 Sep 2022 13:38:49 +0000 (UTC) Received: by mail-wr1-f44.google.com with SMTP id bq9so13217293wrb.4 for ; Thu, 08 Sep 2022 06:38:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date; bh=SJaJNNWvXr+uUW+7FUU0Qt2mEuzYS6yLzpvutRM90+8=; b=bsff2HIzkMqrJTSioYGXpqTHtUJWtNn1U3M1AAUop3iFLyULHmOOX0EQ0HfOhGhtXV z7otAnQwTKiRseReAb+Cw/kPlOs5WnfhW+9c9WDoQRG/BPdD8iad5fTtirYnLosknmLr ovm8ahYNT8s1W9joRrZltuQBZUhy/cLbMp2ZzOcIaxbo4hPBoo1b6rr+ouTmQwRtsuqz qsbrGPqz9lVnJJMfpSJrShS31PA8JBtqsUBuFCviXuAAhFWzpYvBkQQh7GptU+UByXEq O04tV1MBeLkV3fkKi+MjA7FJcB8usdLoFQbuzALrZfLwZ/bFlQJ8ZG7zCwG+E1m0QdXJ 4MUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date; bh=SJaJNNWvXr+uUW+7FUU0Qt2mEuzYS6yLzpvutRM90+8=; b=MH3d4F4wnu/UG+FNwoa6bPM4crk8lcJrYSz1Uv1fXxQRXwQKF7s/mr3EdIWcEEfkPh 6+sMCa5xjU393U950tAsO4e/jVoOSczd4xX1DOiFsxfyPz6c86U7Z0i8Xq+TVp8r1kOD Y5MDmIwUKUlBKRl1jXs++pQoSgPnnm3/RHGUgJFJqqa1nvuaLydJbOdpXJ+YtQrMt8R6 KqmcSuD8phn0Y4tjhPo5TfVyu2iMir/8ZzWYsN2nw6JK25ZD3fdhCzwLrWTbgY21jndW XqmvIZ6+py8CpxxxS69xiCKGEsIyVyBcsrPLOyuxItarlNV5zvrN7D5IQx6BvSDA9kvJ w/3w== X-Gm-Message-State: ACgBeo3mhOdc/XlNLGg6YO/scu7kZ8O/T8QwzGwG2ABgYVWBWwtPNCPf 21J27ljDVkn8LtqWp1fYfrNYinSgfrvo/gGh68PumcPzZp7DWTinVX+HZtcj7AYDE+2Fl9GwQKk Bm/cHCQ9ouJyYqkXnQKyXkg== X-Received: by 2002:a05:6000:1867:b0:21f:f2cf:74a8 with SMTP id d7-20020a056000186700b0021ff2cf74a8mr5200108wri.344.1662644328101; Thu, 08 Sep 2022 06:38:48 -0700 (PDT) Received: from vdi02.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id fc15-20020a05600c524f00b003a5260b8392sm3100822wmb.23.2022.09.08.06.38.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 06:38:47 -0700 (PDT) From: Benjamin Hesmans To: mptcp@lists.linux.dev Cc: Benjamin Hesmans Subject: [PATCH RFC mptcp-next 04/10] mptcp: poll allow write call before actual connect Date: Thu, 8 Sep 2022 15:38:23 +0200 Message-Id: <20220908133829.3410092-5-benjamin.hesmans@tessares.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> References: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If fastopen is used, poll must allow a first write that will trigger the SYN+data Similar to what is done in tcp_poll(). Signed-off-by: Benjamin Hesmans --- net/mptcp/protocol.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index ad81824bdbfe..c249ce632c5f 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -3676,10 +3676,12 @@ static __poll_t mptcp_poll(struct file *file, struc= t socket *sock, { struct sock *sk =3D sock->sk; struct mptcp_sock *msk; + struct socket *ssock; __poll_t mask =3D 0; int state; =20 msk =3D mptcp_sk(sk); + ssock =3D __mptcp_nmpc_socket(msk); sock_poll_wait(file, sock, wait); =20 state =3D inet_sk_state_load(sk); @@ -3694,6 +3696,9 @@ static __poll_t mptcp_poll(struct file *file, struct = socket *sock, if (state !=3D TCP_SYN_SENT && state !=3D TCP_SYN_RECV) { mask |=3D mptcp_check_readable(msk); mask |=3D mptcp_check_writeable(msk); + } else if (ssock && state =3D=3D TCP_SYN_SENT && inet_sk(ssock->sk)->defe= r_connect) { + /* cf tcp_poll() note about TFO */ + mask |=3D EPOLLOUT | EPOLLWRNORM; } if (sk->sk_shutdown =3D=3D SHUTDOWN_MASK || state =3D=3D TCP_CLOSE) mask |=3D EPOLLHUP; --=20 2.25.1 --=20 Disclaimer: https://www.tessares.net/mail-disclaimer/=20 From nobody Thu Mar 28 15:16:41 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:32da:0:0:0:0:0 with SMTP id f26csp343736uao; Thu, 8 Sep 2022 06:38:58 -0700 (PDT) X-Google-Smtp-Source: AA6agR6BAfl4G1DkJVu4CTvCUcYWxvTMVz9+0UOCJ8rqHrOtE53flzmYGGanxrPnu7YAPffPQi5d X-Received: by 2002:a17:903:2285:b0:177:ab99:9e5 with SMTP id b5-20020a170903228500b00177ab9909e5mr7146150plh.121.1662644337958; Thu, 08 Sep 2022 06:38:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662644337; cv=none; d=google.com; s=arc-20160816; b=c5HW2LWAnoFqeRqbZUdCboJE16ta6ejrqT0T5RZJVhBfuB3yMGrw0aD/hwyuw+UWI2 TIqACpoduME5BV+fCvwhDrJS4iLcLwqeIWpQ7QEeQLdxEyFE93FDn5Zg3e/N0xvbkhYt Hr1AC6FHAjQFoAa1u9NmlGwpDr60EIBdNY+nkiqKvCDfxIzrPX0XYwsNmJw7Yg4Ue7By UOxpPIoi3bRCEODBI8Lr1EVNgeqt1dZ4LM0Rh3/dFA0yFDgiSyWj6PCQApDLn0GugVWL 4SFT1spkE9j6KnwQtrspCmcJiBJ9dd0gI9jtDmDUcSrnoABXJRm3UOle9QAx1Iab9d4F tJyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=t2/YaAxgyy/OOZOJQPeEbBb47g9kLxiWAoD8s2+msRM=; b=zWHWMbECLW3REaWP14X55ZVjZvyhO362Z0uodyLIF+qx1dOVlUDhnFiPxVwtH1iZmT KmVvtFdXk5c2frKeIFGqfgNY4AG3xS5kaQ3/digGTvgtwXZaFq+bGtk8hORkYCkfqe9d lwg7vwfe1bU814DfWfi96iaO8BRv/o2slKbYleskVvxuXs+rvad/Lzqv0Kt5MvVGh2WH 8P2Raunsvu8aZHgF3nwzE4iWqko1+XVgxdAI14ceQoAFV8uqkdkIy/vta9vMBbITDWdG cUuczSdH62w0sjSQ0+Wpzrx8wtdEimC8ZYX6ybq5OfoCAhoQURvS+eFMexnTMQtJ1Xqg AsIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=Z7nlX548; spf=pass (google.com: domain of mptcp+bounces-6222-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-6222-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id h6-20020a632106000000b0041ce0347bc3si20270339pgh.354.2022.09.08.06.38.57 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Sep 2022 06:38:57 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6222-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=Z7nlX548; spf=pass (google.com: domain of mptcp+bounces-6222-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-6222-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 5C92D280CE4 for ; Thu, 8 Sep 2022 13:38:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E7DB033C6; Thu, 8 Sep 2022 13:38:53 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A0B693236 for ; Thu, 8 Sep 2022 13:38:50 +0000 (UTC) Received: by mail-wm1-f47.google.com with SMTP id ay12so10871171wmb.1 for ; Thu, 08 Sep 2022 06:38:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date; bh=t2/YaAxgyy/OOZOJQPeEbBb47g9kLxiWAoD8s2+msRM=; b=Z7nlX548AX1G6qLtSntbec+ub3PGcVAIjvO0umIa8e+M7eD4powsPkVdH1Wz4NoG5f 1zSNgj6GZXtB1HqjFjyXWUgQ/4ELi1Q3d68Usw+Tjsu3Dta/Jk2eFVEUhYQ1veDXr75Q 5563TjQwmGtiBqupxvMCFRodHW98ZsU0DYfYyWSmpup6lTG4emruC82laF1ppdDoo8Kj WHQV+jbeYRa7wR1gnaNE65RZ8Df1qMpsvpbiUZDmwqSIcNKb4tIOk7bT0fH+n/nuCXSG 4uYPevUQMExCGhtRloWS/hVWFc2eMRYbDfiLATeX0XDWKcdnubjAakoUNRJQZm3SMjip vbZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date; bh=t2/YaAxgyy/OOZOJQPeEbBb47g9kLxiWAoD8s2+msRM=; b=OiUUkJUsLNf9AcF3b1oPuTT/W3EAgoJn6jgp46DssgzmlQLJw9h+OP+BiYPJsqpEW6 l7A0GP5DmLsOc8H7oiscgMAaR9QNPbgY4Vgv02zSpBhzhDiO3UNmUyyVb2eOLVG4XdbD kW17tsL8usnFdCEnc8GoyANfj6dnLFUdPxyzJYbBlXF65vHFIuUkbSph1Gq+WsIeSRWu q5llK5BQJbaSZrTpXdcIqvWdnP7J2hbpAuZSJC2xx2SVzkOLAL4Fw8YEIiR+rRLx2i71 bm1G8WjujdjXdpkA0/YuCtqw8ME5eWvXhfydXznR+4aVpF3rOiqvZ136RT1Ay9Ss9hkc H8lA== X-Gm-Message-State: ACgBeo0sY/jX9RWLiIYTkZ6lscwG3WVF+SNT0tcWhjvHJ9p/pqbaEFYO Q83tImjhGZxJNQg7fQbrtmNUiSMSNtIRoyueoUPxwWMhU4cTvhNJFtruqEHxn1/2gXlGJkWf4Dc QiASe5MZofzJMqYQf8acm9Q== X-Received: by 2002:a1c:790b:0:b0:3a7:b69a:da24 with SMTP id l11-20020a1c790b000000b003a7b69ada24mr2317946wme.135.1662644328884; Thu, 08 Sep 2022 06:38:48 -0700 (PDT) Received: from vdi02.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id fc15-20020a05600c524f00b003a5260b8392sm3100822wmb.23.2022.09.08.06.38.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 06:38:48 -0700 (PDT) From: Benjamin Hesmans To: mptcp@lists.linux.dev Cc: Benjamin Hesmans Subject: [PATCH RFC mptcp-next 05/10] mptcp: delay mptcp data_ack calculation Date: Thu, 8 Sep 2022 15:38:24 +0200 Message-Id: <20220908133829.3410092-6-benjamin.hesmans@tessares.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> References: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" On the listener side, with TFO (and mptcp v1), the socket is created earlier when the stack does not have the remote key yet. If the full socket is created when SYN+data is received, avoid this calculation that would be incorrect. Signed-off-by: Benjamin Hesmans --- net/mptcp/options.c | 1 + net/mptcp/protocol.c | 2 +- net/mptcp/protocol.h | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 30d289044e71..79f83236aa6f 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -91,6 +91,7 @@ static void mptcp_parse_option(const struct sk_buff *skb, ptr +=3D 8; } if (opsize >=3D TCPOLEN_MPTCP_MPC_ACK) { + mp_opt->mpc_ack =3D 1; mp_opt->rcvr_key =3D get_unaligned_be64(ptr); ptr +=3D 8; } diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index c249ce632c5f..f5a0dd589ad5 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2975,7 +2975,7 @@ struct sock *mptcp_sk_clone(const struct sock *sk, msk->setsockopt_seq =3D mptcp_sk(sk)->setsockopt_seq; mptcp_init_sched(msk, mptcp_sk(sk)->sched); =20 - if (mp_opt->suboptions & OPTIONS_MPTCP_MPC) { + if (mp_opt->suboptions & OPTIONS_MPTCP_MPC && !mp_opt->mpc_ack) { msk->can_ack =3D true; msk->remote_key =3D mp_opt->sndr_key; mptcp_crypto_key_sha(msk->remote_key, NULL, &ack_seq); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 1bc9f6e77ddd..afb2f0ce9311 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -155,7 +155,8 @@ struct mptcp_options_received { echo:1, backup:1, deny_join_id0:1, - __unused:2; + mpc_ack:1, + __unused:1; u8 join_id; u64 thmac; u8 hmac[MPTCPOPT_HMAC_LEN]; --=20 2.25.1 --=20 Disclaimer: https://www.tessares.net/mail-disclaimer/=20 From nobody Thu Mar 28 15:16:41 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:32da:0:0:0:0:0 with SMTP id f26csp343732uao; Thu, 8 Sep 2022 06:38:57 -0700 (PDT) X-Google-Smtp-Source: AA6agR5hIqB1k3IOIRyDZQUUWbg1auyZaUOgF846fHizsmw15x/jWhyUswoxNfG7zBdAhAJzfWUx X-Received: by 2002:a05:622a:120d:b0:342:f643:3d6e with SMTP id y13-20020a05622a120d00b00342f6433d6emr7913801qtx.263.1662644336866; Thu, 08 Sep 2022 06:38:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662644336; cv=none; d=google.com; s=arc-20160816; b=ODrIB0H+htPNe+X3C+wJiidMYQJg9UA25mB29XZ4mKfBoqWp+rOzFBipEGbH0ipWdB 4IJ5Ks+ivV9Oz4KrdA26axJNxmZnZsQQhk4o8QuutztUsD/t0eS0ZEP6Q2ju6ZS0Lsh0 W32loEIB8O+QwZ5DdyXsisLXLm5yTlNYBiwiwMBpDvcd0mvngwQcQjSX6wekdAHnPHGb UWKmvHwd6op0HRUybduF6pdKkX9NOXwgOn+CovN6ny8pdTzSI+1RUA1lmxKQNHqVbtG9 th3LzCQwUSOTgxPeuFgUYFN+g2GU2XiqQQ9uD+MHsX3aiOds8gYU5fDdOD8LijYxYMU8 VhPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6ykXe/0MxatednbYAUEMGbPSg8zIainLw6EfHjLUbL8=; b=GAgvwGfm3aBAi9KTk3MlY2R81jEEKGrVJM2JkkOguEnQ+H9uB6MNAPUa4PSpkV5jtp rzodv3hhbpEWc8rOJRSL8SJGo5RtSkrR0GzuVA7whbKJfPNbhtdy+6lV+KBq4jDn4Wza u44lmmrakgJFH51rMgnfIcyK1dbtAOGqelaSCQRPt+NSahZ4u0F7WvLjqoc6o6hSzwiW AbWGHkXa0p15DB8gVkBXR87bkH8R8c7n7HCaH3xFUNggwH182IPbCNHFkrNPNZdvLILQ jPa4oFvibVYLpYB6pMExWcN1lJaY7gmsLHqijFj4K414csGWHHGnyuPwSHlDL7+34qAe vDWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=vArLvU3u; spf=pass (google.com: domain of mptcp+bounces-6221-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.199.223 as permitted sender) smtp.mailfrom="mptcp+bounces-6221-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id fb15-20020a05622a480f00b00341348235dfsi11693817qtb.683.2022.09.08.06.38.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Sep 2022 06:38:56 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6221-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=vArLvU3u; spf=pass (google.com: domain of mptcp+bounces-6221-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.199.223 as permitted sender) smtp.mailfrom="mptcp+bounces-6221-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 9FA981C209BC for ; Thu, 8 Sep 2022 13:38:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 422493224; Thu, 8 Sep 2022 13:38:53 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BEE7D322B for ; Thu, 8 Sep 2022 13:38:51 +0000 (UTC) Received: by mail-wr1-f50.google.com with SMTP id bq9so13217436wrb.4 for ; Thu, 08 Sep 2022 06:38:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date; bh=6ykXe/0MxatednbYAUEMGbPSg8zIainLw6EfHjLUbL8=; b=vArLvU3u/IaXAJHoghlHJfyCqWYql2nt34EbVPuAKXEOCDQnrho4sp1zyesi/V4N0B L0TimMjERvT9gc+TFm1REbf2T8qjgdjn80HIjN9RUw/1maL4QodNcLhfHNTxgfB6LDsS qVEQNA2wBio21aPta1YzcK9CJsENGMxkBF+V6LMsBYeIoBP5X4xfdq9D9vcaZrrnuaqW cP11/rcM7cBiQlluvD2kXmLKHZbNhWxNIpnlh1RVK3fiC3xRxrw6zy3FQ+XxIPBXtepX cPj1XCgqGOvzMH4NJnJa7BiZm40S2S4iMCGn8sw142WWRqycD/p1YpiFZa0RZXKHLxbB VL1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date; bh=6ykXe/0MxatednbYAUEMGbPSg8zIainLw6EfHjLUbL8=; b=lCiAbFcX8iWOzzcghwjkUjIp2zX0lYKLT2ERV8oK2ecowNHabEgmFTEPJFVG3M1Ghj RqEYgl5YZOqdYM6EyucURhQFBLOSlOoo2LG8/GTJtLBtAv9ixMTrgY5ReS7cuKeNZzr4 Rpx5emRwXIeeVAulj+8XlfavHp2m57awk5LYwiMmk0Akzi5AJaRkNDZ/sxVFDNiyW5Yo UcnP7g31+qPXOBivrYvAipGpE1eaw/YD6cBGrpFNf1ZieU+etoDnPnyuCa/crDo3KGJ2 2fK9YwRrHlcnRikcc2S6Pc0aXpMnZxwtARVSjk+2dOIBmzJVbbRzz1roXFmZcfKVukhY qHiA== X-Gm-Message-State: ACgBeo3778WkSQLet0Ak5AwFOHsSGiELnUuJFUR2W0RHzWPLWV7JgkIk RwFAJQ7j4MlGCE1A7Xkl7CB7NmOOULHAe80F11hyLfP2prkIrhoDRbQBJ8TIa6WY6pElmI6AdXD qeRFhfpbMT1COJDrgNlHXkQ== X-Received: by 2002:a5d:588d:0:b0:225:9818:668d with SMTP id n13-20020a5d588d000000b002259818668dmr4937992wrf.100.1662644329517; Thu, 08 Sep 2022 06:38:49 -0700 (PDT) Received: from vdi02.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id fc15-20020a05600c524f00b003a5260b8392sm3100822wmb.23.2022.09.08.06.38.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 06:38:49 -0700 (PDT) From: Benjamin Hesmans To: mptcp@lists.linux.dev Cc: Benjamin Hesmans Subject: [PATCH RFC mptcp-next 06/10] mptcp: allow delayed data_ack calculation Date: Thu, 8 Sep 2022 15:38:25 +0200 Message-Id: <20220908133829.3410092-7-benjamin.hesmans@tessares.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> References: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" /!\ Starting from this patch, this is early prototype. On the listener side, this function is usually called upon third-ack when the full socket is created, with TFO, the socket is already created, but at this point with have the material to calculate the data_ack It may not be the right place to do that. Any guidance for this patch would be appreciated =3DD For the include, this is just to make it work, but i didn't want to go too far, if it's not the correct way to things anyway. Signed-off-by: Benjamin Hesmans --- net/ipv4/tcp_minisocks.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index cb95d88497ae..b31b6a22d278 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c @@ -23,6 +23,10 @@ #include #include =20 +/* temp: new MPTCP specific code should be defined in net/mptcp/fastopen.c + * and only one function should be called from there */ +#include "../../net/mptcp/protocol.h" + static bool tcp_in_window(u32 seq, u32 end_seq, u32 s_win, u32 e_win) { if (seq =3D=3D s_win) @@ -571,6 +575,13 @@ struct sock *tcp_check_req(struct sock *sk, struct sk_= buff *skb, bool paws_reject =3D false; bool own_req; =20 + struct mptcp_options_received mp_opt; + struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); + struct mptcp_sock *msk; + u64 ack_seq; + + mp_opt.suboptions =3D 0; + tmp_opt.saw_tstamp =3D 0; if (th->doff > (sizeof(struct tcphdr)>>2)) { tcp_parse_options(sock_net(sk), skb, &tmp_opt, 0, NULL); @@ -744,8 +755,24 @@ struct sock *tcp_check_req(struct sock *sk, struct sk_= buff *skb, /* For Fast Open no more processing is needed (sk is the * child socket). */ - if (fastopen) + if (fastopen) { + if (!subflow) + return sk; + + msk =3D mptcp_sk(subflow->conn); + pr_debug("%s (%i): fastopen case, update the isn master based on the key= \n", __func__, __LINE__); + mptcp_get_options(skb, &mp_opt); + if (mp_opt.suboptions & OPTIONS_MPTCP_MPC && mp_opt.mpc_ack) { + msk->can_ack =3D true; + msk->remote_key =3D mp_opt.sndr_key; + mptcp_crypto_key_sha(msk->remote_key, NULL, &ack_seq); + ack_seq++; + WRITE_ONCE(msk->ack_seq, ack_seq); + pr_debug("%s (%i) [%llu]\n", __func__, __LINE__, msk->ack_seq); + atomic64_set(&msk->rcv_wnd_sent, ack_seq); + } return sk; + } =20 /* While TCP_DEFER_ACCEPT is active, drop bare ACK. */ if (req->num_timeout < inet_csk(sk)->icsk_accept_queue.rskq_defer_accept = && --=20 2.25.1 --=20 Disclaimer: https://www.tessares.net/mail-disclaimer/=20 From nobody Thu Mar 28 15:16:41 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:32da:0:0:0:0:0 with SMTP id f26csp343744uao; Thu, 8 Sep 2022 06:38:59 -0700 (PDT) X-Google-Smtp-Source: AA6agR5tjsIOSLQ/0VdDTtkCTpfqjz0b0WeWMI1qRWWC3b2Wy8CAmgSTG8bmftHyIOz1WfaCrwa+ X-Received: by 2002:a05:6214:c42:b0:499:b2a1:8d4 with SMTP id r2-20020a0562140c4200b00499b2a108d4mr7199043qvj.81.1662644338992; Thu, 08 Sep 2022 06:38:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662644338; cv=none; d=google.com; s=arc-20160816; b=JMnu7U6wz/aarvpH4oSlF1+I3BgPOT49a4QgNekEwXkxmWEEv0CRKu+YIaP2OKoYO7 36LazEm30p0nliLJa8P5WDr8wzIGXxr1X8j5byqpcX4HGpmhG8aNEPd/FKLgQnoZvrKO yPdo5kHK0MNPz/lDnTDDu+XUlWP0HtzVq47Im+T+ZRtCj8OHwTJ9xxQZpS1Rcs+0WsDI fJJGOD12zQ0NE4Q4V1fxqYEGjrg/mMx48AtWriN3Re55X69jdtzBmuuCv+7MSiZ1N8qo jYJvw6CjQ6iFcW8raCITWB756Ypx9R/j5lXa+GvUGPkds1UAvSFPEkCYGr76t1ajrS1d u3iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=se5gaMpcKM25jMOs3a3vW1g+Gsv2qMzh5/kD+TSXIFc=; b=sxWBlhMMdnxWXWqjKy2DVekfYPnCG0s9Jto65E0PiJWy1tnn1O66IZFnmZ+tUEJ4NE 9HBYuSExal6ucpCxnZT3qlZLxzN7DO0rQE8Z0YVta7m4BTCwIafGLl0G//4Ek4T2Kev9 I4xTZWBteqL6QMz1eOq7gvW5FZ8sPHDl+CmwMQDcSwDkE9gFs/HdBrhqIroQIhVbn4Ad aajVdSkcAxhmYmC8dqegNuZZM7k14W0M3+33x8HzgxwhZYevih+uAHF5M2sY6hDHtlFY emv6DCLdTzmdQx+qRoB/Z1SFQ56wqq6bnnFSpzFDo9NTjpVpVYtlin04z0NDyR321e8S uktw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=zbqqnYmr; spf=pass (google.com: domain of mptcp+bounces-6223-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6223-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id b2-20020a05620a118200b006bc5e44e829si8878036qkk.269.2022.09.08.06.38.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Sep 2022 06:38:58 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6223-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=zbqqnYmr; spf=pass (google.com: domain of mptcp+bounces-6223-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6223-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id CD69F1C209AC for ; Thu, 8 Sep 2022 13:38:58 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 74ED63236; Thu, 8 Sep 2022 13:38:54 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68BDF3233 for ; Thu, 8 Sep 2022 13:38:52 +0000 (UTC) Received: by mail-wr1-f44.google.com with SMTP id e20so26094274wri.13 for ; Thu, 08 Sep 2022 06:38:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date; bh=se5gaMpcKM25jMOs3a3vW1g+Gsv2qMzh5/kD+TSXIFc=; b=zbqqnYmrzx4ppQd0ONY77vST8YtVSEBOsDJDRbpZmTlZLj6Uf1PPF4flb7kjocY0eh 32oeeYOp/fhsJSSIsMw/hhXA7cOCuBHeyp2UA5HXxnPRrgWsJ7knJfpzTzLUWrny/XFW q/gKWRBXvJbdPChQOv/dS/wjMST5Ts3xI/vxq8sjeFfE6IKj4vJ5Onm+g3UOQPQ+djR8 Ww/txrBOL75nZsE8cZ+XRREb2XlOQv5EfB/C7ZajKMzi6IWoaeRxdoPN3ch5kouIdACe WXiXvHdMlqPsDKQQ7dHU0yncvZSik0Aw1uZ0x+PVRMmPvcNhVsAehsXWi/iC6ujNz3dr 6Fxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date; bh=se5gaMpcKM25jMOs3a3vW1g+Gsv2qMzh5/kD+TSXIFc=; b=gGYEix5u3zW9sbrZPwoWllZlu1yZo97zbgglIQ+AHFrygOZudcqhXHyhh33BdM4AN1 IMKaKdgucPqH+KjGflExFORItXmeqGrWr0wKBPWV5e4s8qNvJ0M5pSdOvV+6xRjf1d5B t64M8sfs/KFdzM7F4Gpc5ssjz59/IG1YTVD+6eixssCKTGBi98JDRi3vMWw4V4bWPmut v7zxF4IWbgc8yIeI7x+I33ZkzVt9YfCtBD9fjoUvZGyyg4I6rb3XeRlyp1ExF6LMQtyM Xs7W/71e1YTqaMWJ4NCbZJiC/2sorxyWSdw6jJ7wc9SlqI4uaYvj/3b52MIw0CK6VKdu crFA== X-Gm-Message-State: ACgBeo2uCOO68dJLlDUd9Q2v60uLAkkgwDmEuVYQRgzU//+pg9N8Hrus 9q8VJ2KZoZHV4JkTLqns70Sde4eRUFpA3xED04ZlXzISm7i/Ysf7k8WaTZzvnGzkt0mRZBhp3GY fvIhuDbhPeRMWEtFhUW9cSg== X-Received: by 2002:adf:e510:0:b0:228:d6be:23b0 with SMTP id j16-20020adfe510000000b00228d6be23b0mr5179866wrm.588.1662644330585; Thu, 08 Sep 2022 06:38:50 -0700 (PDT) Received: from vdi02.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id fc15-20020a05600c524f00b003a5260b8392sm3100822wmb.23.2022.09.08.06.38.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 06:38:50 -0700 (PDT) From: Benjamin Hesmans To: mptcp@lists.linux.dev Cc: Benjamin Hesmans Subject: [PATCH RFC mptcp-next 07/10] mptcp: TFO receive: bypass mapping check Date: Thu, 8 Sep 2022 15:38:26 +0200 Message-Id: <20220908133829.3410092-8-benjamin.hesmans@tessares.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> References: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" With TFO, there is no mapping, the stack can bypass any check related to the mapping. =3D> I'm not fully convinced this is the correct way to do this. I made this into a small isolated patch to ease the reviews. Maybe we could MPTCP SKB extension for this? (I didn't check yet) Signed-off-by: Benjamin Hesmans --- include/net/tcp.h | 3 ++- net/ipv4/tcp_fastopen.c | 2 ++ net/mptcp/protocol.c | 6 ++++++ net/mptcp/subflow.c | 5 +++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/include/net/tcp.h b/include/net/tcp.h index 9a073b58dc4b..0c7996e7ad3f 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -881,7 +881,8 @@ struct tcp_skb_cb { __u8 txstamp_ack:1, /* Record TX timestamp for ack? */ eor:1, /* Is skb MSG_EOR marked? */ has_rxtstamp:1, /* SKB has a RX timestamp */ - unused:5; + is_tfo:1, + unused:4; __u32 ack_seq; /* Sequence number ACK'd */ union { struct { diff --git a/net/ipv4/tcp_fastopen.c b/net/ipv4/tcp_fastopen.c index 45cc7f1ca296..1b2d045604e3 100644 --- a/net/ipv4/tcp_fastopen.c +++ b/net/ipv4/tcp_fastopen.c @@ -193,6 +193,8 @@ void tcp_fastopen_add_skb(struct sock *sk, struct sk_bu= ff *skb) TCP_SKB_CB(skb)->seq++; TCP_SKB_CB(skb)->tcp_flags &=3D ~TCPHDR_SYN; =20 + TCP_SKB_CB(skb)->is_tfo =3D 1; + tp->rcv_nxt =3D TCP_SKB_CB(skb)->end_seq; __skb_queue_tail(&sk->sk_receive_queue, skb); tp->syn_data_acked =3D 1; diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index f5a0dd589ad5..765c50bd6bb3 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -362,6 +362,12 @@ static bool __mptcp_move_skb(struct mptcp_sock *msk, s= truct sock *ssk, =20 has_rxtstamp =3D TCP_SKB_CB(skb)->has_rxtstamp; =20 + if (TCP_SKB_CB(skb)->is_tfo) { + mptcp_set_owner_r(skb, sk); + __skb_queue_tail(&sk->sk_receive_queue, skb); + return true; + } + /* the skb map_seq accounts for the skb offset: * mptcp_subflow_get_mapped_dsn() is based on the current tp->copied_seq * value diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index c7d49fb6e7bd..c2d1ba21c8c2 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -984,6 +984,11 @@ static enum mapping_status get_mapping_status(struct s= ock *ssk, if (mptcp_check_fallback(ssk)) return MAPPING_DUMMY; =20 + if (TCP_SKB_CB(skb)->is_tfo) { + /* subflow->map_valid =3D 1; */ + return MAPPING_OK; /* or DUMMY ? */ + } + mpext =3D mptcp_get_ext(skb); if (!mpext || !mpext->use_map) { if (!subflow->map_valid && !skb->len) { --=20 2.25.1 --=20 Disclaimer: https://www.tessares.net/mail-disclaimer/=20 From nobody Thu Mar 28 15:16:41 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:32da:0:0:0:0:0 with SMTP id f26csp343754uao; Thu, 8 Sep 2022 06:39:00 -0700 (PDT) X-Google-Smtp-Source: AA6agR6MvYeGqriajWQ7hZoARfD8s//w13P8WQnD1QVZLcdxvhvBlp2rPtfFPq5HATo6gJ7pyc1c X-Received: by 2002:a05:6214:262d:b0:4aa:1756:a3c6 with SMTP id gv13-20020a056214262d00b004aa1756a3c6mr7403504qvb.42.1662644340169; Thu, 08 Sep 2022 06:39:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662644340; cv=none; d=google.com; s=arc-20160816; b=efp6qWCABjJQzz2DQ7q4tIpGBFjIffsDum3TiSf4b4iLLwjUaEJ7EMpjYjare61hYn IdWNsYs80V+XURguoqQvAXHzgMXrneVNzIOuGk9d4H5m8AaacTwzdcOvBYZGaQKaLBHG WH5KO2pddca2+04AUIRXHxA273ni+2FDv1X6aM7jIOUDv5Ha/0bN1TVk3FVpZEvILgZT OePrQp2yZjv1sDcqd71SPz0zRo+br8f54EtLoQdgZhd/amDeragAM+vcnfnq3soXjXar RUlV9bWgSwNo5yNtaXgPxAWp4776whHcxXwb8ZGeRhIxst9mzVGU0kKsT35jyMv/yvmp f+6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=fQErWLix5lykv/59ThKYcc1uUrv70Mw0NixnLuT+mRE=; b=fdhvsMtgq3Bbr+2poc8lbIutfbd5JAtwAm/3cocsolOa5kzjsyqLuhb22f/LAQn/Yk zlBpvJ0Lib6TONyQzcEwn2/1k7XHibJfQLsI8ihPhNDCDufXANcmXQ3CLHb8DCcfcfn6 e9K4mPhjErwgwSKBW2YifY3WbK0UiUph+oHIhNFWETHl7AIT9jZTGlz6vEeBDPFyQ4n+ JB8zyYohnO72/Lf780lhki9tO+KGLLi7W2YmYn2UGEHRfE3Qbq766ACYXJjFtRmB3dRZ Km/1sHTO3PZuJH0zvK8MK3e4tyuxTkboqFgxorjUomiN/4Vlm/dA37iSG9Kwa4eOMo1w XEtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=eK3GJsTf; spf=pass (google.com: domain of mptcp+bounces-6224-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6224-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id z10-20020ae9c10a000000b006bbbce31b99si9035951qki.248.2022.09.08.06.39.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Sep 2022 06:39:00 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6224-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=eK3GJsTf; spf=pass (google.com: domain of mptcp+bounces-6224-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6224-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id E85201C209D0 for ; Thu, 8 Sep 2022 13:38:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3C5103233; Thu, 8 Sep 2022 13:38:55 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD5F4322B for ; Thu, 8 Sep 2022 13:38:53 +0000 (UTC) Received: by mail-wm1-f52.google.com with SMTP id n17-20020a05600c3b9100b003b3235574dbso1344321wms.2 for ; Thu, 08 Sep 2022 06:38:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date; bh=fQErWLix5lykv/59ThKYcc1uUrv70Mw0NixnLuT+mRE=; b=eK3GJsTfiwpr9RquTeRCoJ9y8eOyqhMdI9Ljgn/u1S0PGI1FFDr/mGvmy6i7Q2/6u7 c8dOCJfQXiMCUb0I6bNh2i1MqsMdD/NMECdiesTXF1mILQ7S2qgU9DycS2fH0KtcLOpU G4rxUk9zs2iDScP2dhmTQtkeEgXerryIjDYlJQeDMH5em+9nNsA/Hv7gxZHuxEDHSoaT rVyos51aT11uN9IFS3eibEeD3eSPDYRnWPdVb+/NRpNrW0MvxVdi3h6d2Rh5/Fw3HC9P i+a4JLUQaxV8xt2gFKTQN21S0vEFaGuBPX2z4wlIqk8sPrDP+eUa2D1pjMIX9PbS+vbT ZoYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date; bh=fQErWLix5lykv/59ThKYcc1uUrv70Mw0NixnLuT+mRE=; b=isPW3QLmwBbS86HIi7KZKAIoEqgkt3t1R2I1fu1+ey4wso56coRn/TijT8jyRM2yDE P51QkGnOIcqIWYOSAwL9tRUb1r+9chxqB8HPxIv9EU2wN4vm+u2Krw6UoPIDYeecpv8K 0d5vH3NfpToOUGccq65wxDvn4NG9VROd0X1jOD3YAuBb5ubAERbAz1DYUI0vkergrn83 SXVU/usP2f8xdj5G629qaIHi8S2HcsZ4uaPyyUW4ruyM37DOi6cdnRS89EWwLU/06kIt QvbCeLcxispqeQZYcU7FApXatP8x4Bdg8NISE28eJK2oBzwaXMFdVbyStLiQV/dQxOeC gFvA== X-Gm-Message-State: ACgBeo08dkwWJlVXXcULHRZ3ctRhwWFSNEKUhmg6K63PQdQ1RGBS44ko MU3hEHD3edsk4UR5EvpZYGXyI1tKejfJMbRzbwAYJnTU3HXuTAKSTlUZ/jtlqptQtyA8h7ILuMu LstZe69/CiqngyTESHLyL3Q== X-Received: by 2002:a05:600c:601f:b0:3a6:28e:be81 with SMTP id az31-20020a05600c601f00b003a6028ebe81mr2312754wmb.35.1662644331959; Thu, 08 Sep 2022 06:38:51 -0700 (PDT) Received: from vdi02.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id fc15-20020a05600c524f00b003a5260b8392sm3100822wmb.23.2022.09.08.06.38.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 06:38:51 -0700 (PDT) From: Benjamin Hesmans To: mptcp@lists.linux.dev Cc: Benjamin Hesmans Subject: [PATCH RFC mptcp-next 08/10] mptcp: allow data that can not be DATA_ACKed Date: Thu, 8 Sep 2022 15:38:27 +0200 Message-Id: <20220908133829.3410092-9-benjamin.hesmans@tessares.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> References: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" With TFO, this first bytes are out of the regular MTPCP seq numbers, hence they can't be DATA_ACKed. The data ack validation can then be skipped in this case. Signed-off-by: Benjamin Hesmans --- net/mptcp/subflow.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index c2d1ba21c8c2..ca5b9853eca3 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1221,6 +1221,14 @@ static bool subflow_check_data_avail(struct sock *ss= k) if (WARN_ON_ONCE(!skb)) goto no_data; =20 + /* with TFO, we can have data, but we don't not yet the data ack + * because its not part of the MTPCP seq number. + */ + if (unlikely(!READ_ONCE(msk->can_ack)) && TCP_SKB_CB(skb)->is_tfo) { + pr_err("%s (%i): can't ack yet, but already got data\n", __func__, __LI= NE__); + goto valid_data; + } + /* if msk lacks the remote key, this subflow must provide an * MP_CAPABLE-based mapping */ @@ -1240,7 +1248,7 @@ static bool subflow_check_data_avail(struct sock *ssk) mptcp_subflow_discard_data(ssk, skb, old_ack - ack_seq); continue; } - +valid_data: WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_DATA_AVAIL); break; } --=20 2.25.1 --=20 Disclaimer: https://www.tessares.net/mail-disclaimer/=20 From nobody Thu Mar 28 15:16:41 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:32da:0:0:0:0:0 with SMTP id f26csp343765uao; Thu, 8 Sep 2022 06:39:01 -0700 (PDT) X-Google-Smtp-Source: AA6agR7FmTycFs+6mKPklLFizIFSeBikimpxXCsR9fXBUBgL0y4ZYaAFdpi0YGjrgqyfZoUMlEB6 X-Received: by 2002:ac8:7f50:0:b0:359:9007:caef with SMTP id g16-20020ac87f50000000b003599007caefmr6556212qtk.553.1662644341394; Thu, 08 Sep 2022 06:39:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662644341; cv=none; d=google.com; s=arc-20160816; b=OWUljPKX/5Vzy40Krreg+rwkqD4G/E4Ri4NZpHypYY+3WaJ/NRld7jWJFd3AzLBcsB MuSAKHuO7UaV1cXyVXwFQ/dpCcrMALsTABmbaTZivTVl6vZXJJBQYb121WB4+RRzUIDL 3wCxpDmmOoQpg73hTJBdN/bZBZ0U0YtzCLRgmuGtLoF3pR1qBPJK10eq4cF0BdZpJlFA 3vDEnkszZjdyW0A0oFfI9oCO9F+G8rn1CUoFgtlF7IROau/yjGQOq5ux82baUXIYKAFD MmqoUAmTVn4XRhs6cXBiVRCTvoFJ+KjhscCXAWlEq1HccrXJI1l7iyNUCzEGy/X02RhV 1TDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=YwUEl+xf68vtGx2rsqgDyXqNzb0Ot4Y8cFM3ErpHR9A=; b=d1dHLQ4jmgYlAupClDojt9hdtgtHUzQm4qD+cm2d0YpBllI5ZN917fkBzxJPj1nEVR hpnpW477yCg/h1/xc0LfITQHl1QvipwpVruoNEaUUL+E/082QWgRkRH7Xsnkp0gHmW30 Rb38V0/x9NortKdhtMcFa2MidDalBZs2QiNdObcIRxo+7YN1jZsM21xP4C08ahqURtBU TTTAFw2WpUXMHMkBzPh+rRMmF+FmXujYBb+xXfirgv5iDsBDtP02EbLcBCL53dX+n62V 6hgGP42yYZSSGC3MTf9b4S7FILaWxPdXU99sTxUuflznPSMNrRjoUT7S1ZXf90IiHKey Z1Zw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=TgPwd3ir; spf=pass (google.com: domain of mptcp+bounces-6225-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.199.223 as permitted sender) smtp.mailfrom="mptcp+bounces-6225-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id d20-20020ac86694000000b003434e2d6e37si587893qtp.279.2022.09.08.06.39.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Sep 2022 06:39:01 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6225-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=TgPwd3ir; spf=pass (google.com: domain of mptcp+bounces-6225-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.199.223 as permitted sender) smtp.mailfrom="mptcp+bounces-6225-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 1582F1C209DD for ; Thu, 8 Sep 2022 13:39:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5DB31322B; Thu, 8 Sep 2022 13:38:56 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70F043222 for ; Thu, 8 Sep 2022 13:38:54 +0000 (UTC) Received: by mail-wm1-f53.google.com with SMTP id k6-20020a05600c1c8600b003a54ecc62f6so1781485wms.5 for ; Thu, 08 Sep 2022 06:38:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date; bh=YwUEl+xf68vtGx2rsqgDyXqNzb0Ot4Y8cFM3ErpHR9A=; b=TgPwd3irX9CWDlpQtOiElxRWTlsLM2OWHhGBlAuOkNHRLjc+4RI87e3zE9Hs1+FrUY UxuBU1eF4CXtQOzFlX4+kBNnceds5VbVGe/u0xFYAJ5MGGNxhktRQkDPxIwfC3C7EiRp cyOoSR9uF99FgCxiBaEznj+7ZqhmTgMGc5bDXsKFnIJahdYRFFWPNxF+wpbmQytjv6pK FwRDYDXlnriFU9pmycV/EP3XH77BJgMqPf0adG+xUqRs2ZqtpdofJSYfzirmIHybSfbX I1H6wsVfYOv/ELl2MRckl9QJx1wGChO9eoexIdejYwHS2k/zy1VefyLolM7fkgNM5I2A xEZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date; bh=YwUEl+xf68vtGx2rsqgDyXqNzb0Ot4Y8cFM3ErpHR9A=; b=zRAiLhkgl6MWeJUVhmkpAVhRTkQcjhikhTbWu3QJHZjF+g4sg9XG5aymZmuk5OlkcG 5/Tz8firYbfvaf8QAhgFV/oRokA//4NOZd83xmbaY1zwu0tl0ztu81JGxSg0FnUHCdcM HL1fNBLx9VGXqx4neSUJkeKgpCItP1ykgsspW2p+zsLcwCgmHdjyQNDQuFCzQ23t3WR/ iYQ+LwAtXx4vgO9GvjcyuzU1KT0rKHfG/QZz8ZvX2iE9ZWL563LRsUADq8T0/mnCPudt FLapuwE/+/NZSpIe34dwXeK5uSEVaV1qr3gnCSJHnn/TQz4dDGILjm044RJrkANUtZeH o4cQ== X-Gm-Message-State: ACgBeo0UvmqXm+1abnAKHToJxNiah2RIMJwJ2jXirfI7O3qt+TAWmASk CF7jygTo3BWAQiJJc6pVbBVr2Zl0U4rXAfB2ekwFIUgNYnfSNmfG+OVPgPA3QQGAmisIiKE2dT1 BmKo9SLw+c6W+4WLl60D41Q== X-Received: by 2002:a05:600c:444b:b0:3a6:6b99:239a with SMTP id v11-20020a05600c444b00b003a66b99239amr2363252wmn.41.1662644332604; Thu, 08 Sep 2022 06:38:52 -0700 (PDT) Received: from vdi02.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id fc15-20020a05600c524f00b003a5260b8392sm3100822wmb.23.2022.09.08.06.38.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 06:38:52 -0700 (PDT) From: Benjamin Hesmans To: mptcp@lists.linux.dev Cc: Benjamin Hesmans Subject: [PATCH RFC mptcp-next 09/10] mptcp: force data_ready Date: Thu, 8 Sep 2022 15:38:28 +0200 Message-Id: <20220908133829.3410092-10-benjamin.hesmans@tessares.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> References: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" I'm really not sure about why this is needed, but put that in the review to be complete. Without this, the user application can hang forever Signed-off-by: Benjamin Hesmans --- net/ipv4/tcp_fastopen.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/ipv4/tcp_fastopen.c b/net/ipv4/tcp_fastopen.c index 1b2d045604e3..9ef357ae0921 100644 --- a/net/ipv4/tcp_fastopen.c +++ b/net/ipv4/tcp_fastopen.c @@ -197,6 +197,8 @@ void tcp_fastopen_add_skb(struct sock *sk, struct sk_bu= ff *skb) =20 tp->rcv_nxt =3D TCP_SKB_CB(skb)->end_seq; __skb_queue_tail(&sk->sk_receive_queue, skb); + pr_debug("%s (%i): is it needed ?\n", __func__, __LINE__); + tcp_data_ready(sk); tp->syn_data_acked =3D 1; =20 /* u64_stats_update_begin(&tp->syncp) not needed here, --=20 2.25.1 --=20 Disclaimer: https://www.tessares.net/mail-disclaimer/=20 From nobody Thu Mar 28 15:16:41 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:32da:0:0:0:0:0 with SMTP id f26csp343779uao; Thu, 8 Sep 2022 06:39:02 -0700 (PDT) X-Google-Smtp-Source: AA6agR68SuUMHSX07Ndgscy/+M6FvBFGoGaPSahcwjUkvPAzV+MlISLHcxg6V8Ysr4rbMFewz+Oz X-Received: by 2002:a05:6214:240a:b0:4a7:b7b9:392a with SMTP id fv10-20020a056214240a00b004a7b7b9392amr7778273qvb.58.1662644342473; Thu, 08 Sep 2022 06:39:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662644342; cv=none; d=google.com; s=arc-20160816; b=PZ9QD1tjkdMWukkT1Gkbk3Bsn/xeIx9G9P4woGOcw62zEFtHr4synICi5KBMZhfkJQ rIYJYntPNKJkc3VNNC6cu7v0RR9GH6JAiaARExGupU5TjQwCxbd2VVKV8Bg6P8pM6W9g GZMYi8q2otSOOvIughjevFhDoiHbtfo8LlsYgVYA09x1uT9f0tk4gSE56TgUkbgB9lZF 4EEdvOOXC4fzDSWTEhuGeFSa8LFwniJkS5wWQ0l4MzR17xHpFCPLiy0K1S4xjHRGC6CW +OogGJ5Z5uwk5zWAldGqOXqqF1+EczApnh4dMzvvTLuiNZTkswZvJf+9D9i0+jLoa1Xg 4gpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=OUHDi113WkPzxKJeQlkeeITX3f75nt9KZZbA6x6lXo0=; b=O9JbEWntb1itbj6pYQfEoWGqx4G7VgjfK1oRkAcjXeA/3OJxAzjJjj8AdOLxxxa6v9 u9wxSZ0BWibLqkX+OqKcso4SQrK4YThtITDiKOwacgwse8dluJ4rDH/bVbd91Kh3P7Co 22QzeHR6EDTyp5eV1cqPel5QOdTzeYChNtdgQYiopYzgaIKmojK9XAF0XE9Vf+77AZlg J+FMXjYh4MHIVHv/MC3HQhoI4d8Dz80KVkakXqIvPofuX30JHM9BVOMDufP9re8/rHL5 I/7w7g3nYF5IdVscmvBoUwZtoIje43brUv8+EsGhTF7cZ6Lx5cNygj/NF9oxXkpRh6BV YkAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=IVihL0gs; spf=pass (google.com: domain of mptcp+bounces-6226-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6226-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id 2-20020a05621420c200b004a9b7a746dbsi7401038qve.327.2022.09.08.06.39.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Sep 2022 06:39:02 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-6226-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=IVihL0gs; spf=pass (google.com: domain of mptcp+bounces-6226-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-6226-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 35B981C209B8 for ; Thu, 8 Sep 2022 13:39:02 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B303B3222; Thu, 8 Sep 2022 13:38:56 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2F863322A for ; Thu, 8 Sep 2022 13:38:55 +0000 (UTC) Received: by mail-wr1-f52.google.com with SMTP id b17so12785476wrq.3 for ; Thu, 08 Sep 2022 06:38:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date; bh=OUHDi113WkPzxKJeQlkeeITX3f75nt9KZZbA6x6lXo0=; b=IVihL0gs112uVfTDcOhrk+USq3GzzytxpbZ+QWTj79DX6MOSs10n9y2a1Dg9aYuP/3 Xd/ScES4F/XwWCZnj0tolx0HOz1LIUVmg7lfdOCYBGuQ6TagVWV0NvSK1Cc0ztMM1rIc Fy5vIlJtvkC3HLF7aE1uxPqwV6timKxsfMZGCwUKlJ/uXt2GJ4i64MLV2bjV3idfwV4M HPipwm2CGIYCikyr0foLwAQqPJAPBrvR/cDzIGC3H1y17UrO9EExrWGgmrFbFauCo3iw nd5DEQCymUZVZeJ0iXAQVGpylmY9wequt4mPzaw0UidoW0+/ZyhGv1lNu/A0si/9BhwM 5N9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date; bh=OUHDi113WkPzxKJeQlkeeITX3f75nt9KZZbA6x6lXo0=; b=HCm0C0WbdQjwwiAhtjF/bR+ABL0Kb11dJsXD7Z36ax7epGKPj8aK7ZOumyrRumzBt9 B5Mu7L1MSHeKMVNUsW2HpLFOqa/0vCES0NVIhIU4DsuJt0CNAPShgJuVgeSJXeCvWa1x P2858C4+ga0Da8g1ruxeJbRKFHyUdCw6KGgrih4empe8Tc3AmVPb2yFIJNZoBFEFFFjD PSYjIjnghyw7Ly2d2JD/dnu7OterDVDg08XTHC3rCf+tEAugkmdBcNVoNu66yWZDZPmr erFLAa2YsROwSAFU5XeqBw2CC3Qx4IWnNo6IOJW9XgbFjmiyjVXqechwpctQBAEIF8gm BDLw== X-Gm-Message-State: ACgBeo1UBQz8WQ5XHZHhehRgsqoR/KHQJnUUbN/VLDo6ItUVW4dj/QgC /UGv3bSzK4yXmWjYo1BqhY6qg7S4wPuIHhF0h7aKs9Etjod1yitXy62E4EB2meUYgNOijrrexMt xljjH3HmV/aCPb8YvYCGfwA== X-Received: by 2002:a5d:6f0b:0:b0:226:458c:269 with SMTP id ay11-20020a5d6f0b000000b00226458c0269mr5127986wrb.223.1662644333356; Thu, 08 Sep 2022 06:38:53 -0700 (PDT) Received: from vdi02.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id fc15-20020a05600c524f00b003a5260b8392sm3100822wmb.23.2022.09.08.06.38.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Sep 2022 06:38:53 -0700 (PDT) From: Benjamin Hesmans To: mptcp@lists.linux.dev Cc: Benjamin Hesmans Subject: [PATCH RFC mptcp-next 10/10] mptcp: test TFO Date: Thu, 8 Sep 2022 15:38:29 +0200 Message-Id: <20220908133829.3410092-11-benjamin.hesmans@tessares.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> References: <20220908133829.3410092-1-benjamin.hesmans@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Work in progress for a future self test. Just for documentation, not intended to be included as-is. Signed-off-by: Benjamin Hesmans --- tools/testing/selftests/net/mptcp/tfo.sh | 55 ++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 tools/testing/selftests/net/mptcp/tfo.sh diff --git a/tools/testing/selftests/net/mptcp/tfo.sh b/tools/testing/selft= ests/net/mptcp/tfo.sh new file mode 100755 index 000000000000..43440f80f92f --- /dev/null +++ b/tools/testing/selftests/net/mptcp/tfo.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +set -x + +DO_CLEANUP=3D"${DO_CLEANUP:-1}" +DO_MPTCPIZE=3D"${DO_MPTCPIZE:-1}" + +cleanup() { + if [ "${DO_CLEANUP}" =3D=3D "0" ]; then + return + fi + + pkill tcpdump + pkill python + + ip netns delete client + ip netns delete server +} + +netns() { + ns=3D"$1" + shift + ip netns exec "$ns" "$@" +} + + +trap cleanup EXIT + +ip netns add client +ip netns add server + +netns client sysctl net.ipv4.tcp_fastopen=3D0x5 +netns server sysctl net.ipv4.tcp_fastopen=3D0x602 + +netns client ip link add eth0 type veth peer eth0 netns server +netns client ip addr add 6.6.6.1/24 dev eth0 +netns server ip addr add 6.6.6.6/24 dev eth0 +netns client ip link set eth0 up +netns server ip link set eth0 up + +netns client tcpdump -i eth0 -w ./client.pcap & +sleep 1 + +if [ "${DO_MPTCPIZE}" =3D=3D "0" ]; then + LD_PRELOAD=3D +else + LD_PRELOAD=3D"$PWD/mptcpize/libmptcpwrap.so" +fi + +LD_PRELOAD=3D${LD_PRELOAD} netns server python3 -m http.server 666 & +sleep 3 + +LD_PRELOAD=3D${LD_PRELOAD} netns client curl --tcp-fastopen -o out.txt htt= p://6.6.6.6:666/tfo.sh +sleep 3 + --=20 2.25.1 --=20 Disclaimer: https://www.tessares.net/mail-disclaimer/=20