From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (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 9D06B10FD for ; Wed, 28 Dec 2022 10:18:09 +0000 (UTC) Received: by mail-ej1-f49.google.com with SMTP id x22so37371023ejs.11 for ; Wed, 28 Dec 2022 02:18:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Iq3E4HRxn6yxKUsEwffezaIZxNXLvcYcDLjRAQfS+5Q=; b=oNeLYjIK46oTeG3rS6zH+aQjCv+f9hacF5P33sSuQ0oHwwcXGMZ+Yhk26/vQt0+0TU YVt0J3ALAmj1xkApBQgUdxkzFBrZxfpHX2b0NuR3sVxJorUIuralrzfLbSPY6l+S2OF/ WhywOp1lhgZFW9Xd1OUMMSxQHR9KXlktQe53DmHnyb4vd1FbV/OkSL1KiMpfSWoPSG3O RdsQKa8tYP3GUlkG2/o42x3yxa+fZN8S81XgAbXmuSwHvrZQN9s46FSx+4s7DlczYv7U n4M+p4MVQD4CezrKe3fqYHtGrTw2wQsNvRUvsYSY3nkeeUDbaxe7drbrc5qGBhNlVlZe MLqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Iq3E4HRxn6yxKUsEwffezaIZxNXLvcYcDLjRAQfS+5Q=; b=nOPfcsENBWB8kr6CKJUWKIwzQzJi3k8Hja28bNKNp+K51mXIiwi2TBHJIHA5OI35Ke w1nlj/A32b8rqzJfkhYqaHbgqgHQ1f4sRFc9f1i+hmXKXhlTm0+0dTJ5R5T2m26jPa5a QiNlzwqOmnGpapgUpgEB2sj0oE+6BaXITb7l/aCNKtWQRqLRmWvjIi9oDBEplDlyQa9Q ewxAo9+UzGTHjsPVY3lWhJ3BIK+S00QBV8wua9mJMBAGJaLvNZ6pD9IKUpoP+vaWFEoQ jy0O4HwUAr6sbIR48wac3NebWTGfJ7f2JKQYBY/Xo+9Si1nv981bD+uQ1EDlTqA5Iy12 pAoQ== X-Gm-Message-State: AFqh2koTAa31O0yzfeffrvP8tu/bqM7rWFBCjf2rsp8ubI7NnQ1diLeU fAR6Z9FGITdJCVvRBGKxJcRVB7lShwdCzwv6Ad1rYw== X-Google-Smtp-Source: AMrXdXs9KJWrId+AeHlF8dsjLHzRgPuGVLmPqd4aFplo5cDg00FE9UWqxZrytDzd3BCxKO+C6/tbcQ== X-Received: by 2002:a17:906:9be4:b0:7c0:e99a:e353 with SMTP id de36-20020a1709069be400b007c0e99ae353mr18733737ejc.56.1672222687338; Wed, 28 Dec 2022 02:18:07 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:06 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Paolo Abeni , Matthieu Baerts Subject: [PATCH mptcp-net v4 01/12] mptcp: explicitly specify sock family at subflow creation time Date: Wed, 28 Dec 2022 11:17:37 +0100 Message-Id: <20221228101748.2518303-2-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3944; i=matthieu.baerts@tessares.net; h=from:subject; bh=2d3UcZEI4VmYmUKskWW4hroBAzI3yr+/Q0t9Liyx5So=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe+c1hsPJ40uIi91KDLtfepM+0LFk36Wa3QODeH bs3zbKuJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvgAKCRD2t4JPQmmgc647EA DQSgPvTrDqSUSQVGBUtGlyyD71Y42VOuq2uP6nwk2EVUACEnZRzBF/mNB/9qhDeOYmBMp5dtkyKkVA vB/wcCyu+aMnW9FW1lKP4+lIT6pX3QIh6bssFoSahXtJNdIIqxHEapuG34/duTqrmuqmIIYpa5nHEI Q5oKxCFPHeaxG4cWXdw2hUWZrxond5UqXSEzVt50YvXNDcL3E+zgF1l1N3nATQmtKJ7UReeTg/fLK0 eu+hhp6Mz4L25OsUkxSfnLDdgxc2bv0Kro+a6au2fAfvCZ4ogxe9bZ3x1BUXcmKERq1rOKdszRd+QA 9rfcwNSii4HRx6aJAW3dfhuEDseYrn14wznTXdZyflpo4H2uNXVswIDk7Yde0jje6R/U7iWkwwcIJR 0gsoHhjNfmElUwwuL0zc6eWUl/aewO8I7GQ6uAsxSSjmr0M/1L3wc376/LE64l8tSvA62nmHSCeQW6 U2oTMlsKoiUU7KGJoD4lFWwsCpk8YfG0UPFRp4DuhAmHxdJwV1zrmpEpxq0AR2U80LA1jiQslgMM7C mHwVmp9NAZ8Qm2cyPS6pPALYMl5QS1YxWFoSwFdhgNZkaseWwTq3jO5GOK5UzU+9i89LIGRbufyVXo 7bCibhtfs4PO6hmRQtAuVMKVCnVnFqvSBRwL+xs0pX3keFCZZiwH27/96O8g== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Paolo Abeni Let the caller specify the to-be-created subflow family. For a given MPTCP socket created with the AF_INET6 family, the current userspace PM can already ask the kernel to create subflows in v4 and v6. If "plain" IPv4 addresses are passed to the kernel, they are automatically mapped in v6 addresses "by accident". This can be problematic because the userspace will need to pass different addresses, now the v4-mapped-v6 addresses to destroy this new subflow. On the other hand, if the MPTCP socket has been created with the AF_INET family, the command to create a subflow in v6 will be accepted but the result will not be the one as expected as new subflow will be created in IPv4 using part of the v6 addresses passed to the kernel: not creating the expected subflow then. No functional change intended for the in-kernel PM where an explicit enforcement is currently in place. This arbitrary enforcement will be leveraged by other patches in a future version. Fixes: 702c2f646d42 ("mptcp: netlink: allow userspace-driven subflow establ= ishment") Co-developed-by: Matthieu Baerts Signed-off-by: Matthieu Baerts Signed-off-by: Paolo Abeni --- Notes: v2->v3: - Update the commit message because the behaviour is modified for the userspace PM and needed not to create subflows from/to wrong IP addresses. net/mptcp/protocol.c | 2 +- net/mptcp/protocol.h | 3 ++- net/mptcp/subflow.c | 9 +++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index aaafdae73b6a..003b44a79fce 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -98,7 +98,7 @@ static int __mptcp_socket_create(struct mptcp_sock *msk) struct socket *ssock; int err; =20 - err =3D mptcp_subflow_create_socket(sk, &ssock); + err =3D mptcp_subflow_create_socket(sk, sk->sk_family, &ssock); if (err) return err; =20 diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 5b92906cb91f..b2b56a80e817 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -643,7 +643,8 @@ bool mptcp_addresses_equal(const struct mptcp_addr_info= *a, /* called with sk socket lock held */ int __mptcp_subflow_connect(struct sock *sk, const struct mptcp_addr_info = *loc, const struct mptcp_addr_info *remote); -int mptcp_subflow_create_socket(struct sock *sk, struct socket **new_sock); +int mptcp_subflow_create_socket(struct sock *sk, unsigned short family, + struct socket **new_sock); void mptcp_info2sockaddr(const struct mptcp_addr_info *info, struct sockaddr_storage *addr, unsigned short family); diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index bd387d4b5a38..ec54413fb31f 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1547,7 +1547,7 @@ int __mptcp_subflow_connect(struct sock *sk, const st= ruct mptcp_addr_info *loc, if (!mptcp_is_fully_established(sk)) goto err_out; =20 - err =3D mptcp_subflow_create_socket(sk, &sf); + err =3D mptcp_subflow_create_socket(sk, loc->family, &sf); if (err) goto err_out; =20 @@ -1660,7 +1660,9 @@ static void mptcp_subflow_ops_undo_override(struct so= ck *ssk) #endif ssk->sk_prot =3D &tcp_prot; } -int mptcp_subflow_create_socket(struct sock *sk, struct socket **new_sock) + +int mptcp_subflow_create_socket(struct sock *sk, unsigned short family, + struct socket **new_sock) { struct mptcp_subflow_context *subflow; struct net *net =3D sock_net(sk); @@ -1673,8 +1675,7 @@ int mptcp_subflow_create_socket(struct sock *sk, stru= ct socket **new_sock) if (unlikely(!sk->sk_socket)) return -EINVAL; =20 - err =3D sock_create_kern(net, sk->sk_family, SOCK_STREAM, IPPROTO_TCP, - &sf); + err =3D sock_create_kern(net, family, SOCK_STREAM, IPPROTO_TCP, &sf); if (err) return err; =20 --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.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 4B65210FE for ; Wed, 28 Dec 2022 10:18:09 +0000 (UTC) Received: by mail-ej1-f42.google.com with SMTP id u19so37367515ejm.8 for ; Wed, 28 Dec 2022 02:18:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UmkiOWACWTt0hLZDqv1AI1TNAWCah4XFf8P7MvVQ+Fc=; b=yLYATEIr2wRsUMXziTg/1z9yMMC4t3ynLX/ekuvOFLNZp4Ulp0TGRFVTDnOruHmZzS VpCPKY10m5O94Fv5kqBJ5LAcFprzQpchmsF8JZoNjsqKIkfuT+tB03/gwae+s8taPIuY 9nrPG4N9NQIrPYP4dpU08QGKYkJVoa1UVb/aPDzLsAseRU/M1tyuefxJ9JbQm6C5McQP MTJGmONL7pVa+ul6jEIAxjDD+Guzl0sVnwdJpGKfNzeXFJ4rzeMiFXknrgMGvghjsOys ENN3cfGNfUDaeaZnYc8stX7zBCQAfb9MCNDGbCd8wOxTSgByLKmIYiOhGIWWDIPeIPsF Ob1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UmkiOWACWTt0hLZDqv1AI1TNAWCah4XFf8P7MvVQ+Fc=; b=IB6DPooPG/yddzqkd3Q4nug3ipAAm7ICIZwvDA8Jt+6IQ0bz3QnkrJ3xlsMUfNHcWx ZS3ublomL3HCMrnAbPPu9wSCgT7dHCHTRF6zNQd2MWA0qbxDcIYhTnJx8o/u+DhITKBs ZGfzq56flcqv/i4Rk985SGbQG9yPOui23KeW0MZN1/MJlqK/ec847Uk3s2Ji0k041FdY MK7R/9rgQdyslV8k4UwPEIL+/HpKbbEJjTQk/mzWBwdeN1Tl9oHx8k2aTIxSKSeMcSRm N+gshaLpJ04M4p/CmOQcS6JM6t8CXSeJhWpWqmGog+nZFlhvhg2UWO/uqfmqOKuxKn6T ee5w== X-Gm-Message-State: AFqh2kperr2663OyE1OZMNTCNx0knElyCCMU2hlH7hlFihl/h6OVABvT /fDkbu5IaVgJwlNsL3fnRnLpFGs6O2ZU5Ht5HtW0Xg== X-Google-Smtp-Source: AMrXdXtNbOg16qbDevJcj51fHqiMpXWCMV3s5IAqdH2qEi/ekg8AuokXVHV+UuCrnMRP9OtwYCnHFw== X-Received: by 2002:a17:907:d08d:b0:7aa:76a:fb3 with SMTP id vc13-20020a170907d08d00b007aa076a0fb3mr23393350ejc.66.1672222688026; Wed, 28 Dec 2022 02:18:08 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:07 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-net v4 02/12] mptcp: netlink: respect v4/v6-only sockets Date: Wed, 28 Dec 2022 11:17:38 +0100 Message-Id: <20221228101748.2518303-3-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3621; i=matthieu.baerts@tessares.net; h=from:subject; bh=5vHj++yOudegJpdjUjRNe8ThnfAp9dTH9plU+MPMpWM=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe+67GABS4DEB4IbEEHE7Fz+I5PCP29ZUvcwrFW aZHmcsyJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvgAKCRD2t4JPQmmgc5LnEA Db6/Ja2dFSI6X5Wih9CWKh1eyTACEYLt+kw/3T0J2RciHGSivGw2z5XuySU6XRPnzTE0tOMt55FxNg FhxgMfB08iHaknsZVqyPFBtRHMCQeT2jFty8c56KwOpr41KAGJgrkRFSqI9sct9DLv7d6VkR91b1pj +SYNpP/yNjfCB2zAvsWuy50oD6PNFsRblRRZaaYF0bCtCENUYF6ydkDRSSL0ifQlnlVSFxoBZeAWvm WPtE3gliBu9Eh5sDXn/GT5mcM5lkmwAJcsLwH6RCHsd6G4NCxKfb6D9dvuEWxE2Pl1sSwr97A6/pGC KfMgiaYdkvlglUx7VugJCtBe+DYjnyiYm8pwLTll1JvJNBaW7DTanrvbH8R45Cfs5DX7PfriHIx4YF uvfeggtKdq82BW35uQP7ojit16dYKL1CZJkDkWn20TTJkRCjSQg0Pb0oB28ip2cFWr3JYcLIeivLZv iPANOLDPV6YxjB6t5TcQ8XPnU6eZhz6BYjmKUKhDvjisHdG1QXImAJLVIOIFogk7Y53C1JWN646zs9 H80hatqYlIPcQ4ysNlGYKVkfA5lvIZE/6lpMfw0Bykk0mWY5lj12+E+3o9Y4C429CEXpmNCwX/vRW2 7Px2qeptvVqCF5eME6hTkhXRf7sgbyAJNW2grZCbNt/1hiwp8R97yZ8gc0gQ== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If an MPTCP socket has been created with AF_INET6 and the IPV6_V6ONLY option has been set, the userspace PM would allow creating subflows using IPv4 addresses, e.g. mapped in v6. The userspace PM will also accept creating subflows with local and remote addresses having different families resulting in the creation of non expected subflows. It is then required to check the given families can be accepted. This is done by using a new helper for addresses family matching, taking care of IPv4 vs IPv4-mapped-IPv6 addresses. This helper will be re-used later by the in-kernel path-manager to use mixed IPv4 and IPv6 addresses. While at it, a clear error message is now reported if there are some conflicts with the families that have been passed by the userspace. Fixes: 702c2f646d42 ("mptcp: netlink: allow userspace-driven subflow establ= ishment") Signed-off-by: Matthieu Baerts --- net/mptcp/pm.c | 25 +++++++++++++++++++++++++ net/mptcp/pm_userspace.c | 7 +++++++ net/mptcp/protocol.h | 3 +++ 3 files changed, 35 insertions(+) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index cdeb7280ac76..083f3f8322c0 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -413,6 +413,31 @@ void mptcp_pm_subflow_chk_stale(const struct mptcp_soc= k *msk, struct sock *ssk) } } =20 +/* if sk is ipv4 or ipv6_only allows only same-family local and remote add= resses, + * otherwise allow any matching local/remote pair + */ +bool mptcp_pm_addr_families_match(const struct sock *sk, + const struct mptcp_addr_info *loc, + const struct mptcp_addr_info *rem) +{ + bool mptcp_is_v4 =3D sk->sk_family =3D=3D AF_INET; + +#if IS_ENABLED(CONFIG_MPTCP_IPV6) + bool loc_is_v4 =3D loc->family =3D=3D AF_INET || ipv6_addr_v4mapped(&loc-= >addr6); + bool rem_is_v4 =3D rem->family =3D=3D AF_INET || ipv6_addr_v4mapped(&rem-= >addr6); + + if (mptcp_is_v4) + return loc_is_v4 && rem_is_v4; + + if (ipv6_only_sock(sk)) + return !loc_is_v4 && !rem_is_v4; + + return loc_is_v4 =3D=3D rem_is_v4; +#else + return mptcp_is_v4 && loc->family =3D=3D AF_INET && rem->family && AF_INE= T; +#endif +} + void mptcp_pm_data_reset(struct mptcp_sock *msk) { u8 pm_type =3D mptcp_get_pm_type(sock_net((struct sock *)msk)); diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index 65dcc55a8ad8..ea6ad9da7493 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -294,6 +294,13 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct= genl_info *info) } =20 sk =3D (struct sock *)msk; + + if (!mptcp_pm_addr_families_match(sk, &addr_l, &addr_r)) { + GENL_SET_ERR_MSG(info, "families mismatch"); + err =3D -EINVAL; + goto create_err; + } + lock_sock(sk); =20 err =3D __mptcp_subflow_connect(sk, &addr_l, &addr_r); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index b2b56a80e817..871ec3e93314 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -793,6 +793,9 @@ int mptcp_pm_parse_addr(struct nlattr *attr, struct gen= l_info *info, int mptcp_pm_parse_entry(struct nlattr *attr, struct genl_info *info, bool require_family, struct mptcp_pm_addr_entry *entry); +bool mptcp_pm_addr_families_match(const struct sock *sk, + const struct mptcp_addr_info *loc, + const struct mptcp_addr_info *rem); void mptcp_pm_subflow_chk_stale(const struct mptcp_sock *msk, struct sock = *ssk); void mptcp_pm_nl_subflow_chk_stale(const struct mptcp_sock *msk, struct so= ck *ssk); void mptcp_pm_new_connection(struct mptcp_sock *msk, const struct sock *ss= k, int server_side); --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.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 884DA1103 for ; Wed, 28 Dec 2022 10:18:10 +0000 (UTC) Received: by mail-ej1-f43.google.com with SMTP id ud5so37417433ejc.4 for ; Wed, 28 Dec 2022 02:18:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=09g6QqktahkBKWabGA7JntIoRRWNFTXK9Wy8Tqe6jNM=; b=wm1QC5Z3Ta1OJtYazVxRWP5yS8ve4HKo+t3KcAZLHNIbxn+jitprWGmTScZivgBd17 o9krbxAZBOtp2KSl5yjd62E/7+KZiKU/p2qWRpuFQK2DijruhAbEJlqP/bWd3TABDeio YY2G0LnXm6jo+0dti1dkhlJPgLsoEZdEI942eFBNAXSf21NTzgk+fIqFg1NGCVVSiaf8 urtsNXksJe0MPmQE2uY/MuOXMEEtNCiaF3j8XAiJ2TIQz2I6yLlLILD4oMmMYhbbEzFE +RlexAnjEofnVPh9h2PEs0rbpPKnMTu9MKcYrW6zmZb1shlQ6wJoYosJ/GeAUonMXYBB rIEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=09g6QqktahkBKWabGA7JntIoRRWNFTXK9Wy8Tqe6jNM=; b=QHrjPjexNuGv1YBDQO+Nb0rP/CES724iff/7PhWbtepRN2+bgMaoAiVRFqMivBPd/A eX2bpfGwVoJdft++rLNr5VJ9Ak7VSwCT1Uii3sWEZkgA40ZeWf/nsq6doMTg/HQGJrAH K8M1ff4nPJc6D6mhXYbT5pdyNPBEXJD+vv+MrkfYcdH+tnz1E/jUpGzpf3n+1DR09zv+ s6mGv85KZ8eZ1gdghDGreJppoGTHU/7sF/qGWfgp0m+7qVy9TMlbYiudlF0AdWZpseBo fcBMSUBAMenIutez6K83Fo1lJd4KENlF/BGi5M9TXh+3A9LPxLV4K3hxxkeOTohgfkkE QHdg== X-Gm-Message-State: AFqh2kolNP29udgg6OxSB5rPCxQoFZh5qAsVJ9NJjo7kSQyUgYk2/bc3 4Qe//IEzWWfsvozCYIGVBCY43RMy04lyZwiE0F8/AA== X-Google-Smtp-Source: AMrXdXvkpk14FMAmsig2OnV3M0+deiC0vrDPg8E9YddVzEn42xBTj8Zl2Myx87wzLDS6uQJwQOjtiw== X-Received: by 2002:a17:907:a0d0:b0:7c1:55aa:2e84 with SMTP id hw16-20020a170907a0d000b007c155aa2e84mr19226512ejc.1.1672222688661; Wed, 28 Dec 2022 02:18:08 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:08 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-net v4 03/12] selftests: mptcp: userspace: validate v4-v6 subflows mix Date: Wed, 28 Dec 2022 11:17:39 +0100 Message-Id: <20221228101748.2518303-4-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2908; i=matthieu.baerts@tessares.net; h=from:subject; bh=m9HnWTWgGp3tGRqYrsvJ05oHQXHp33ZFVgSd1l16S0k=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe+qeU9rN6zHcQ7Q7UWA7LRvHLxLx6pOBXUAjBi Ydw4d26JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvgAKCRD2t4JPQmmgc1xjD/ wMaaOGVi8IUK5UZTTVbjg8hWQrH33GBpJvvt1pLwEVwf6Vip9yJcVXmVOH0uVafgt+CCL4vMj/zQeN XXbzsuamxYfpMhCMZqW2leEp0rhvhgujU2kT5Cq+LVKic2m/draB9cj+RPF5BQO5cVsY7kpmbBYTXO 64J1PUGehGOtFlqOFGztvvo3nFugbHtpkkabv9LAelFUDEdyG3CgFTsbMCQ1QpJigVlbOpGuEGG3Gk eJMhz0bv39gln4iqq4oaMWEJgL0oI0hsk1DRaxuTK1YvRMLeX1kx39n1cokPHQx5ftNy9ejsH+hAje +vkh0IXKCNfgO+Jee0vX6eQiGBq51WdSr3epqDAGgTwmoQqsRDSB04S8PLhvER7FJBPPV72SAynnVD 4AGJ3BAXVhGdmPGURNvtMlff8+WeV42UPH+YrH6tPPNO0i47UQmahVJ14y3hlZ9wJh1IC/g3L0hb06 LZ79+wLVxv9Q+YI0AtrsUPU13SErXx5rmu6EX9Wg7ayCQRquwlEbFkfb02o0Jo86sRPL8ToiiyinoI JMGG95xwOP2nRa1w3+iP5RQyJBVDyhfgZ6WlMHQpzkDBz1zwfhNVNolRiEC33N8LYkFCOoAxt4Oxal 34CBQhtw+J+c4pvA77ydrCoMivG6Wkkv+2r+eY3FGvRi2WFMYj1ol0yd+KQw== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" MPTCP protocol supports having subflows in both IPv4 and IPv6. In Linux, it is possible to have that if the MPTCP socket has been created with AF_INET6 family without the IPV6_V6ONLY option. Here, a new IPv4 subflow is being added to the initial IPv6 connection, then being removed using Netlink commands. Signed-off-by: Matthieu Baerts --- .../selftests/net/mptcp/userspace_pm.sh | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index a29deb9fa024..ab2d581f28a1 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -752,6 +752,52 @@ test_subflows() "$server4_token" > /dev/null 2>&1 } =20 +test_subflows_v4_v6_mix() +{ + # Attempt to add a listener at 10.0.2.1: + ip netns exec "$ns1" ./pm_nl_ctl listen 10.0.2.1\ + $app6_port > /dev/null 2>&1 & + local listener_pid=3D$! + + # ADD_ADDR4 from server to client machine reusing the subflow port on + # the established v6 connection + :>"$client_evts" + ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server6_token" id\ + $server_addr_id dev ns1eth2 > /dev/null 2>&1 + stdbuf -o0 -e0 printf "ADD_ADDR4 id:%d 10.0.2.1 (ns1) =3D> ns2, reuse por= t\t\t" $server_addr_id + sleep 0.5 + verify_announce_event "$client_evts" "$ANNOUNCED" "$client6_token" "10.0.= 2.1"\ + "$server_addr_id" "$app6_port" + + # CREATE_SUBFLOW from client to server machine + :>"$client_evts" + ip netns exec "$ns2" ./pm_nl_ctl csf lip 10.0.2.2 lid 23 rip 10.0.2.1 rpo= rt\ + $app6_port token "$client6_token" > /dev/null 2>&1 + sleep 0.5 + verify_subflow_events "$client_evts" "$SUB_ESTABLISHED" "$client6_token"\ + "$AF_INET" "10.0.2.2" "10.0.2.1" "$app6_port" "23"\ + "$server_addr_id" "ns2" "ns1" + + # Delete the listener from the server ns, if one was created + kill_wait $listener_pid + + sport=3D$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' = "$client_evts") + + # DESTROY_SUBFLOW from client to server machine + :>"$client_evts" + ip netns exec "$ns2" ./pm_nl_ctl dsf lip 10.0.2.2 lport "$sport" rip 10.0= .2.1 rport\ + $app6_port token "$client6_token" > /dev/null 2>&1 + sleep 0.5 + verify_subflow_events "$client_evts" "$SUB_CLOSED" "$client6_token" \ + "$AF_INET" "10.0.2.2" "10.0.2.1" "$app6_port" "23"\ + "$server_addr_id" "ns2" "ns1" + + # RM_ADDR from server to client machine + ip netns exec "$ns1" ./pm_nl_ctl rem id $server_addr_id token\ + "$server6_token" > /dev/null 2>&1 + sleep 0.5 +} + test_prio() { local count @@ -861,6 +907,7 @@ make_connection "v6" test_announce test_remove test_subflows +test_subflows_v4_v6_mix test_prio test_listener =20 --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.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 65EED10E9 for ; Wed, 28 Dec 2022 10:18:11 +0000 (UTC) Received: by mail-ej1-f47.google.com with SMTP id u9so37538562ejo.0 for ; Wed, 28 Dec 2022 02:18:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=z9AFSUFfwnnN5pBtjBJ8jxeWxFDb6GcqJiEe5i0JjJ0=; b=8DBQ2DG3J8F4eCbPXZaDSpi9MmaVUAM2n2kMEVqGDNperVPT9JCi2Jp9xsO725YYdl 9Pd+YinZFiYhKSlfYRCz6F8hqFiQ1XIKqS6uvGM19en6/AFzsupm51cke3ivZtRdP7os wyCYY57CuA9E8O3yu+op/hrCwiseV5of2npVFD7QNopgXNfvxGX64hO317hRb0sx/ICI ANoLMocICZ2p0rOkQLYjwahfgK6NxUSNq4Ice/iQCbyViTXOPDTOS6FJ5CuaTVw332Qf +gwD5PFOEDRX0C3MC1xLmaHfoJ0mpiRX7zmjemxQWT/tEKtVV6POU1XLXKCLVJvAXJAi CuMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=z9AFSUFfwnnN5pBtjBJ8jxeWxFDb6GcqJiEe5i0JjJ0=; b=UjEVkVNT9lxG/hc2D9vcZf8+uce6qh7vkEInSfmn0EXlYEeCZTGwOmmOCKcgD1aXIx Ht4seFmZ84u39BoqOuDuvpMujos4ATttfJxlfHOTlyMCtHAhPUac+ouhB/abEGWTh48g F88FC8KHI/bfjwNIXjajqkZNvLkjXJTjXlpWGYC0MbvDxrzXm2eNvL0p5CdmBXkk377O 1L9KH9y3F7vxkH44ZWmanmTP2h21T08PWbs2Z5X/M/o9AM1mjsogdbRCWr1+7sf7lOn5 gmJzYn7DlbGWO6mDIx+tC3qXFWHOiY0illrnlH1MD1M0M7m9Fcg+8LlEaw4Vr8Mxs/6F MILg== X-Gm-Message-State: AFqh2kq29VnUg/ennAGGydXAdUN81tnGsZRQnygqUBqKUdfaB71dVU8f hWfiiRzb4wQ+2AST5rZFI2UdTO1ZsSjkQOPpJqrLZw== X-Google-Smtp-Source: AMrXdXuHPLYkZv6d4mekO7JoMKKDNE0hR586tU1cGVX7PcgCRo5f8WHiTwmvXfiNRN8anGk7ZVelpA== X-Received: by 2002:a17:907:6d0b:b0:83f:1f64:c1e with SMTP id sa11-20020a1709076d0b00b0083f1f640c1emr22551860ejc.47.1672222689488; Wed, 28 Dec 2022 02:18:09 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:09 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Paolo Abeni , Matthieu Baerts Subject: [PATCH mptcp-next v4 04/12] mptcp: let the in-kernel PM use mixed IPv4 and IPv6 addresses Date: Wed, 28 Dec 2022 11:17:40 +0100 Message-Id: <20221228101748.2518303-5-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=6570; i=matthieu.baerts@tessares.net; h=from:subject; bh=EZau0IcHuZezehsM4S+L+WmU7fdtiMnSXR0653fkPKA=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe+pM1oE+giBOmJ8py3SqUsjBASiJzO0F9PAm0P OC6/aAuJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvgAKCRD2t4JPQmmgc0BYD/ 9M8hCmeV/t0Inq55XLdeya3MQFa68lAl58elruu4YJTnhoatSsnXfI6427rTdLuLRZjbQgr8U5kOKc jk5yi+XJw1yOrSJvOq/7K8bEj9YV9Hf2E3p445Zs0LtYz0yXx5qP4nAQdt4Ho/oGN5MJ7fIYeVX+as lpDv1NHuyQ8e8f4vCMhxvkjNNjKDBcSezkO3N9I1HqKr1r1IMHZl5tgspXEMMzHsFK1SiGWgZQwxQ7 y9IS0oQt95BrmhGO/GL2HjiL2CcOni0LfNbp62Cc3G1vzRdbbhfhYpEaNNq6ScJQzojkz3jhPBXO2g ObIYUc/kSdrHnvUjO+gq0m1si1WXKa+5FW5MAW2iyfjEHsH9ZGFMWSjRF/VrfNsp6EYsj/baIH4YZl at2Ki2FRR/tJ603Q4rhJtnQwNd1EeL3EqfdZ1JHjUCsHOlxSdkUp6wE/5oK1DLfPkvfs6qgWC7BKpb vLQGYS0bdv23BkpO3CpqVQ1tKtpGhbBP0Y/1sqHrgiWTuRHG8wlPHCdR/5N2XpK3tWqSOsE9iyqQX+ YqiuzfcMTw+JOosv1m2SdiSZPKnqmJjRLuJ4z5fXMvUq9kxBKZEBBL8/Wo+KpSDK3KEICGiC1aMQYZ wZiByKfAWEKIUmjI8gz8iFqukKFs1xXsoxEojCuxCA9S12CSTVLu3xm4wIPg== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Paolo Abeni Currently the in-kernel PM arbitrary enforces that created subflow's family must match the main MPTCP socket while the RFC allows mixing IPv4 and IPv6 subflows. This patch changes the in-kernel PM logic to create subflows matching the currently selected source (or destination) address. IPv4 sockets can pick only IPv4 addresses (and v4 mapped in v6), while IPv6 sockets not restricted to V6ONLY can pick either IPv4 and IPv6 addresses as long as the source and destination matches. A helper, previously introduced is used to ease family matching checks, taking care of IPv4 vs IPv4-mapped-IPv6 vs IPv6 only addresses. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/269 Co-developed-by: Matthieu Baerts Signed-off-by: Matthieu Baerts Signed-off-by: Paolo Abeni --- Notes: v3->v4: - fix compilation error without CONFIG_MPTCP_IPV6 v2->v3: - the helper has been moved to an earlier commit ("mptcp: netlink: respect v4/v6-only sockets") and to pm.c because needed to fix a bu= g. - the helper also takes into account different cases of IPv4 addresses mapped in v6 and has been renamed. - fill_local_addresses_vec() now considers v4-mapped-v6 as AF_INET not to change the behaviour and break selftests. - add_addr_accepted is not incremented if the ADD_ADDR cannot be used (e.g. v4/v6-only sockets) - if no subflows need to be created, the PM lock is no longer manipulated. net/mptcp/pm_netlink.c | 58 ++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index f2a43e13bacd..e82a112b8779 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -152,7 +152,6 @@ static struct mptcp_pm_addr_entry * select_local_address(const struct pm_nl_pernet *pernet, const struct mptcp_sock *msk) { - const struct sock *sk =3D (const struct sock *)msk; struct mptcp_pm_addr_entry *entry, *ret =3D NULL; =20 msk_owned_by_me(msk); @@ -165,16 +164,6 @@ select_local_address(const struct pm_nl_pernet *pernet, if (!test_bit(entry->addr.id, msk->pm.id_avail_bitmap)) continue; =20 - if (entry->addr.family !=3D sk->sk_family) { -#if IS_ENABLED(CONFIG_MPTCP_IPV6) - if ((entry->addr.family =3D=3D AF_INET && - !ipv6_addr_v4mapped(&sk->sk_v6_daddr)) || - (sk->sk_family =3D=3D AF_INET && - !ipv6_addr_v4mapped(&entry->addr.addr6))) -#endif - continue; - } - ret =3D entry; break; } @@ -423,7 +412,9 @@ static bool lookup_address_in_vec(const struct mptcp_ad= dr_info *addrs, unsigned /* Fill all the remote addresses into the array addrs[], * and return the array size. */ -static unsigned int fill_remote_addresses_vec(struct mptcp_sock *msk, bool= fullmesh, +static unsigned int fill_remote_addresses_vec(struct mptcp_sock *msk, + struct mptcp_addr_info *local, + bool fullmesh, struct mptcp_addr_info *addrs) { bool deny_id0 =3D READ_ONCE(msk->pm.remote_deny_join_id0); @@ -443,6 +434,9 @@ static unsigned int fill_remote_addresses_vec(struct mp= tcp_sock *msk, bool fullm if (deny_id0) return 0; =20 + if (!mptcp_pm_addr_families_match(sk, local, &remote)) + return 0; + msk->pm.subflows++; addrs[i++] =3D remote; } else { @@ -453,6 +447,9 @@ static unsigned int fill_remote_addresses_vec(struct mp= tcp_sock *msk, bool fullm if (deny_id0 && !addrs[i].id) continue; =20 + if (!mptcp_pm_addr_families_match(sk, local, &addrs[i])) + continue; + if (!lookup_address_in_vec(addrs, i, &addrs[i]) && msk->pm.subflows < subflows_max) { msk->pm.subflows++; @@ -600,9 +597,11 @@ static void mptcp_pm_create_subflow_or_signal_addr(str= uct mptcp_sock *msk) fullmesh =3D !!(local->flags & MPTCP_PM_ADDR_FLAG_FULLMESH); =20 msk->pm.local_addr_used++; - nr =3D fill_remote_addresses_vec(msk, fullmesh, addrs); - if (nr) - __clear_bit(local->addr.id, msk->pm.id_avail_bitmap); + __clear_bit(local->addr.id, msk->pm.id_avail_bitmap); + nr =3D fill_remote_addresses_vec(msk, &local->addr, fullmesh, addrs); + if (nr =3D=3D 0) + continue; + spin_unlock_bh(&msk->pm.lock); for (i =3D 0; i < nr; i++) __mptcp_subflow_connect(sk, &local->addr, &addrs[i]); @@ -625,11 +624,11 @@ static void mptcp_pm_nl_subflow_established(struct mp= tcp_sock *msk) * and return the array size. */ static unsigned int fill_local_addresses_vec(struct mptcp_sock *msk, + struct mptcp_addr_info *remote, struct mptcp_addr_info *addrs) { struct sock *sk =3D (struct sock *)msk; struct mptcp_pm_addr_entry *entry; - struct mptcp_addr_info local; struct pm_nl_pernet *pernet; unsigned int subflows_max; int i =3D 0; @@ -642,15 +641,8 @@ static unsigned int fill_local_addresses_vec(struct mp= tcp_sock *msk, if (!(entry->flags & MPTCP_PM_ADDR_FLAG_FULLMESH)) continue; =20 - if (entry->addr.family !=3D sk->sk_family) { -#if IS_ENABLED(CONFIG_MPTCP_IPV6) - if ((entry->addr.family =3D=3D AF_INET && - !ipv6_addr_v4mapped(&sk->sk_v6_daddr)) || - (sk->sk_family =3D=3D AF_INET && - !ipv6_addr_v4mapped(&entry->addr.addr6))) -#endif - continue; - } + if (!mptcp_pm_addr_families_match(sk, &entry->addr, remote)) + continue; =20 if (msk->pm.subflows < subflows_max) { msk->pm.subflows++; @@ -663,8 +655,18 @@ static unsigned int fill_local_addresses_vec(struct mp= tcp_sock *msk, * 'IPADDRANY' local address */ if (!i) { + struct mptcp_addr_info local; + memset(&local, 0, sizeof(local)); - local.family =3D msk->pm.remote.family; + local.family =3D +#if IS_ENABLED(CONFIG_MPTCP_IPV6) + remote->family =3D=3D AF_INET6 && + ipv6_addr_v4mapped(&remote->addr6) ? AF_INET : +#endif + remote->family; + + if (!mptcp_pm_addr_families_match(sk, &local, remote)) + return 0; =20 msk->pm.subflows++; addrs[i++] =3D local; @@ -703,7 +705,9 @@ static void mptcp_pm_nl_add_addr_received(struct mptcp_= sock *msk) /* connect to the specified remote address, using whatever * local address the routing configuration will pick. */ - nr =3D fill_local_addresses_vec(msk, addrs); + nr =3D fill_local_addresses_vec(msk, &remote, addrs); + if (nr =3D=3D 0) + return; =20 msk->pm.add_addr_accepted++; if (msk->pm.add_addr_accepted >=3D add_addr_accept_max || --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.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 6A34410FD for ; Wed, 28 Dec 2022 10:18:12 +0000 (UTC) Received: by mail-ej1-f53.google.com with SMTP id qk9so37418403ejc.3 for ; Wed, 28 Dec 2022 02:18:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+fd6j44evsdxLh0WpMpw+J+gHn9aMiDodElArLsrBkw=; b=tiLu8DjkfVV3hav18Ou5USDi9xnffxmqKf3SIRmYZKc1w8vl8xtAaBMjDiI4y7UAd2 Q9cbFRiT3Uka2jCF5kqbuCFDpnhO0wF8Iofc6lOyxeCxlEDJXzZP/22ljDGdYURvvOv1 pv2jrw/O9Tyc+95yUSjVDQ1U9cFfn6MmBR2IlSuyljRkGTyTA9dFaaXrpIq5Z4udBeq4 lECBaHyQbkhb1cJKaWlNyleiRPhKxnYoxatLUk8swqtZ8EUKwTThwuNioLmHuEATRgJE 7HCNWRv/EskOOkPTiov9mjWySx3if/XDXk8cs7Vuc34bxnk75dNoHrzyztZ2riCqBK4B 186Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+fd6j44evsdxLh0WpMpw+J+gHn9aMiDodElArLsrBkw=; b=3k95sXl1SotYTC1zR6vzysLWkkcsF8Sg2I6rC9gvnQpKxdBv276Vad5Gh0F/kNUyNV D6uD4YfKiWTxTPP1kLpSf0+M6pp906yWO3Wti4uuWl7E0EwGmwPp3aM9fy0YSwURUYnX 5iMU24Tve/f+UH+sdLUsssJ81caVV9GmR/iE0wl7GVZwObpACkS0rsMZyI7EPRw/DyI6 YVohgkh11A0cn7TG5XhApUYaogHHIFRqAUtADOQFsLiTRuN4yPRrgPTVlgezolzgKry1 YwIkYf2VJ52VfQ2ZKrvDzUO0Ri4oUROJCLrZxAEaUQFydzdBXhoqOTnFnyVwMJEUPM04 8nZA== X-Gm-Message-State: AFqh2krAhbfDRcpXhJQbLe5JrTr968K/d1kmyZisN3UR4BeiJpR7BFi8 YPmdr0UcIz1bQqjLleD2gLwmY92JKXW6CTvI4fDW/A== X-Google-Smtp-Source: AMrXdXt1LuZIvlCb/2eKQdn/bHBEJRZO8GoIkAMpFoFYKf434sXBnXOdFVOvGQqrFxsx22okK/mWIg== X-Received: by 2002:a17:906:dff5:b0:7ef:b60e:cb02 with SMTP id lc21-20020a170906dff500b007efb60ecb02mr21077138ejc.48.1672222690100; Wed, 28 Dec 2022 02:18:10 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:09 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v4 05/12] mptcp: propagate sk_ipv6only to subflows Date: Wed, 28 Dec 2022 11:17:41 +0100 Message-Id: <20221228101748.2518303-6-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=867; i=matthieu.baerts@tessares.net; h=from:subject; bh=3kFlGna5rOeu2JRWjKHDAzgElplXk4ztNIOnJGHXgXY=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe+R0xH4p4pVLmey+SRnwbbsIZ0WGxSsK61eWLt hTDcQo6JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvgAKCRD2t4JPQmmgc7UWEA DIGwG5xKWAO9mhRN5CoJwfoLaLwcdQDfwEsQuPbkL6tvsucHYDcHVg+pPT1MvPk4xbmVZM33JrI8OR y1AxsT//rr56wJoztZEtIMmODbm1YQQrckBkRpJY8b8KME+nYdqha1JtFeGDWXk8UdDqw9zldkNEi0 /+i97HVePnlmNgoW/k2bXOAlkuaBPKdc2+hJIDX7Vxgs+CSlCGopC91fmCzpg5dih3nRCbmlpm5y4n 0EipSKpU1PhCWl+NJJeIB6gt+YYBmTunlcxOle53lv9dTEUeR8D9on9srdT9VvXHS7SO7Mvo7Jkf6b bi3Y6H8/MqesAdvBmj7CEXv2+yXK+P2xtdsnzWQwTCNyqzcoPKVpcn+EW1PwsxqVls1c8amBjZpXnp 4/XFzg9t45L2yhHC9ly80tzQxul7WZc+gkJaQMrfqOxvNXHMikHLZb+GcepeMz/QECKHnFOLtaPAYa U9OZ18ZXXeDug5be/frF9lJJfhIhD/yCyX6QVG/hDQpFvnfMHzIpftIkOk2TP1AKU3lAiS03u6aCgK EtublYLQhuogEjR9VHm3I+kTCGkS3xz7PV7s+Ufu0QNuQvcWu+sCcAczQOxTao7u+QaWgvCupZjSdl CTbEDe1/ZqNoY9uW+AWZSLXvMGv+mLB1KU/xyKex/wk0XOWkKN1rtIii4RhA== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Usually, attributes are propagated to subflows as well. Here, if subflows are created by other ways than the MPTCP path-manager, it is important to make sure they are in v6 if it is asked by the userspace. Signed-off-by: Matthieu Baerts --- net/mptcp/sockopt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index 582ed93bcc8a..9986681aaf40 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -1255,6 +1255,7 @@ static void sync_socket_options(struct mptcp_sock *ms= k, struct sock *ssk) ssk->sk_priority =3D sk->sk_priority; ssk->sk_bound_dev_if =3D sk->sk_bound_dev_if; ssk->sk_incoming_cpu =3D sk->sk_incoming_cpu; + ssk->sk_ipv6only =3D sk->sk_ipv6only; __ip_sock_set_tos(ssk, inet_sk(sk)->tos); =20 if (sk->sk_userlocks & tx_rx_locks) { --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.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 01E111116 for ; Wed, 28 Dec 2022 10:18:12 +0000 (UTC) Received: by mail-ej1-f43.google.com with SMTP id t17so37399435eju.1 for ; Wed, 28 Dec 2022 02:18:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sqP1m3ysIMg0iSieM9IErT6eQu57d4t7jTZbtjotdQo=; b=405pKO3Cl6Fd3rl1MY1U9UByokLG+dzG/deXNAHeAhU5i5dhVBexYQJZ/IVrQLqUvh fNsonJMilqqs22ZI19nEeefCZBrFt0sqv9LVXIsCdBQak1I6vtc01QFO/Wna7vHfDva7 sRVlkoMUx03QMuDrTl5k4N/V/BhF99sltH+suWeCzK0x9nB2PsknLAhJglErClTTO2z4 EVySJcsc5DK1kbKcXka+4C9mjMdb57hcSO/GbcKCo9eDRIhtuoN4cv5vXGzm6e1nx6U7 WIBR51oU4NMdVvhx4R73kRJJ5OGLi/h2VUkjZ7K22vqU/jEx9otWsGadYdSr+KNDf/zB GVRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sqP1m3ysIMg0iSieM9IErT6eQu57d4t7jTZbtjotdQo=; b=YuPSfil/EbndIbjaEyOw5cODkV2sm3VgTJLn9ijBeAoYX5vS/oVrtoa/Yp94Sf1gOX 7jQp5d+WgwyiZxz1iIIOmFGqYwUnHhRJCxmAqtoc8se3sCQBBct2k5Fm7ozUNatfHRaJ 8d8MD2dSu6EH/9uXjvjixT3Tpqxq3t3Ejp0P2pR+fFxAaX20/k0LWrIv+MkYyfTljxR6 82vuiu/K2EqR+5fF51p2yD9ao74aFflCeH/1ixveMQtJTb5oYwkFGQtNIwWFCqJHjoMe TfCCMUgAhXSP+nNJ2W81sjgx+d+eMoGz2Jo8ikHEzsGCL2G/hDxQaE0epwOW6X3kLsyb Bt+g== X-Gm-Message-State: AFqh2kpG2g4Ypd0syNIC1bb5nmtCQS+aIzrqYjuzxT4nBSy7bDSYaLI0 XLjxOw5YuXbr25dIlTDj/MHxewBgRL3UUwCC4vFZ2g== X-Google-Smtp-Source: AMrXdXv40hxEPvIqi9bWmozjg07KEwY52xeUUkKqJ1PDjZEzaMhI0bNlKjVvuFv0DZ5aP5L5EMHaHw== X-Received: by 2002:a17:906:3c18:b0:7ba:9b49:53d4 with SMTP id h24-20020a1709063c1800b007ba9b4953d4mr21320770ejg.71.1672222690965; Wed, 28 Dec 2022 02:18:10 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:10 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Paolo Abeni , Matthieu Baerts Subject: [PATCH mptcp-next v4 06/12] selftests: mptcp: add test-cases for mixed v4/v6 subflows Date: Wed, 28 Dec 2022 11:17:42 +0100 Message-Id: <20221228101748.2518303-7-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3187; i=matthieu.baerts@tessares.net; h=from:subject; bh=PF+uTEj4sVeWj5WOdqleYcs6AGKouaOt3Y7ZNlAhaDY=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe//u9W3XrLYTL0rSfmiQqGD3i+cS34N+jOWwX+ +9eeMG2JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvwAKCRD2t4JPQmmgc3dBEA Da367T0W/gaP2E7brKO/kfdZvaiyOridkDCZOXPFsYYGng4ssdityTDidNJWGlTk6JRcfdR7ifACDs a/RUkAM3COIdDai89g1UT+7adZsChMpPqLq51ZvOKyp2elSmXRk5AXCasa7lKUeN3QBu9Fl/CfJ3vY rlzMUln/MlS3OEsEwfIlM7nGp1orl7IoFhohuencgyOE0y82zf7hS1HRCNLhlywkEhzMtqqDxw+QGP dniwOXoWTmASiFKCM+hqSYzKjNIEOwjS1yn8EduS1+95TDmc/shMwsyW99tvnRuC3D8X/8QnMU/JUy b0h632XnMKFD7YzTt6dGBhosB6cttyd/zXCQXkoFdz7QXVakQ97ZDzXlViX75OSy1cgywKCmo3qdS0 qNhKKIun4yQL5OirkWHHdR4alMicJqTd4+BBzNVa2/WraoY3osQGLne/t3yOX2UaX19bvNk7inFbDe c5OhZ4X2hDI76atIG7d+hJTLP5xOxMWkle6DDRDd0DDZ1WP4MGU1O2jPLDq4ZJ4wVAv83fAkwr3aKF +CanjsTR9z9EwKi7nJrVZi6IqrriWvakJ8DQUV7nuJPAR1VrtBLY7m6Ve3UDyKEvPbNUhOYjmOvYzM E0gg4Ln4XUcrDBDNrmxsbVQVyp3I4HXkumFvSMQAtrVaEfZkD/vuNX8S09Mg== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Paolo Abeni Note that we can't guess the listener family anymore based on the client target address: always use IPv6. The fullmesh flag with endpoints from different families is also validated here. Signed-off-by: Paolo Abeni Signed-off-by: Matthieu Baerts --- .../testing/selftests/net/mptcp/mptcp_join.sh | 53 +++++++++++++++---- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index d11d3d566608..387abdcec011 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -774,24 +774,17 @@ do_transfer() addr_nr_ns2=3D${addr_nr_ns2:9} fi =20 - local local_addr - if is_v6 "${connect_addr}"; then - local_addr=3D"::" - else - local_addr=3D"0.0.0.0" - fi - extra_srv_args=3D"$extra_args $extra_srv_args" if [ "$test_link_fail" -gt 1 ];then timeout ${timeout_test} \ ip netns exec ${listener_ns} \ ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ - $extra_srv_args ${local_addr} < "$sinfail" > "$sout" & + $extra_srv_args "::" < "$sinfail" > "$sout" & else timeout ${timeout_test} \ ip netns exec ${listener_ns} \ ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ - $extra_srv_args ${local_addr} < "$sin" > "$sout" & + $extra_srv_args "::" < "$sin" > "$sout" & fi local spid=3D$! =20 @@ -2448,6 +2441,47 @@ v4mapped_tests() fi } =20 +mixed_tests() +{ + if reset "IPv4 sockets do not use IPv6 addresses"; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + chk_join_nr 0 0 0 + fi + + # Need an IPv6 mptcp socket to allow subflows of both families + if reset "simult IPv4 and IPv6 subflows"; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 10.0.1.1 flags signal + run_tests $ns1 $ns2 dead:beef:2::1 0 0 0 slow + chk_join_nr 1 1 1 + fi + + # cross families subflows will not be created even in fullmesh mode + if reset "simult IPv4 and IPv6 subflows, fullmesh 1x1"; then + pm_nl_set_limits $ns1 0 4 + pm_nl_set_limits $ns2 1 4 + pm_nl_add_endpoint $ns2 dead:beef:2::2 flags subflow,fullmesh + pm_nl_add_endpoint $ns1 10.0.1.1 flags signal + run_tests $ns1 $ns2 dead:beef:2::1 0 0 0 slow + chk_join_nr 1 1 1 + fi + + # fullmesh still tries to create all the possibly subflows with + # matching family + if reset "simult IPv4 and IPv6 subflows, fullmesh 2x2"; then + pm_nl_set_limits $ns1 0 4 + pm_nl_set_limits $ns2 2 4 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal + run_tests $ns1 $ns2 dead:beef:1::1 0 0 fullmesh_1 slow + chk_join_nr 4 4 4 + fi +} + backup_tests() { # single subflow, backup @@ -3120,6 +3154,7 @@ all_tests_sorted=3D( a@add_tests 6@ipv6_tests 4@v4mapped_tests + M@mixed_tests b@backup_tests p@add_addr_ports_tests k@syncookies_tests --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.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 7DF0C10E9 for ; Wed, 28 Dec 2022 10:18:13 +0000 (UTC) Received: by mail-ej1-f50.google.com with SMTP id ud5so37417663ejc.4 for ; Wed, 28 Dec 2022 02:18:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=drNb1S9tj9maCJICCjpsuyCFdKnsYG7mF64cROKJf/w=; b=Ja+NWqsFxNmM+6znDx4JQCS8MwYs6Wfq3paFc2mzyIg+b7gXkR9tCBGWuP96ddQqAm UlDTNWjzdx79pT9CjR8qPS3LgwfHm2ZScxdxxPz7o3GakzB0qVOMDLlENSKrZmRHhCIq HwN41LAl1vorKg+8yW5kdGke1slnWCvudYu7X+PMHZksSXgkluMmxzm8JKPKzG4df0sb pAHMP5Qj5Gi3EKGuUfPYww3/LRCQQ6c22VwEXovP8wHpuQV2d9f9w6i9jnw1bCGDdgmd f/NwJeMwI3EzqmszgRdejXnxQG7zZJz/dWThM4dIy7QI2QZhfHmCZy6ERTH8qbWq5Lv7 BpIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=drNb1S9tj9maCJICCjpsuyCFdKnsYG7mF64cROKJf/w=; b=L0TT4v2gFa7dIi6dktA8qhzI6QgALhHTXRG1vKPXrnbClH5nCvZQ+gNLKtvuJBHBXJ Rcri7/cngLbGpyexHZogvEZTDO6EQuGZVErCvc2GSsipSFcX7lTwjvciZyDHhsqfjxRe Q2f1NDERF8NQvicYHDN6LRRX1LxqLCOHdXJFDRIk45YpRICDKV6bxJwiso4U3RNh6sWJ 1lrn/Hszl8xARkdxRqAPmhaJU6JM4ImRqCDf0oQ82ZHj1neyCeQmLxdSm9zZgqWYDYbg LFNFnlnp4VUeQ6l73CKbeSdv55GyTPoTFFFIfYGzSDvJBp3HbMm0CNv1ma3wxH981J8K h2RQ== X-Gm-Message-State: AFqh2kqpnUBOc1zDrteZJZn0fI7SZ6uwt+bcm/+oZle2sqjtiyoCdZEU 0X2OuFS5w8UYfGJv2E7jDlRQOpsQ0XearXnAy6ChUg== X-Google-Smtp-Source: AMrXdXt1XL74MNNyFt4yC5ugKvHJMXR01Ec8c9hAZ43JwfeOGHbyGczQ9YoM9OhiwUlSkGn6fx60oQ== X-Received: by 2002:a17:907:8d17:b0:7c1:1ada:5e1e with SMTP id tc23-20020a1709078d1700b007c11ada5e1emr19927257ejc.26.1672222691604; Wed, 28 Dec 2022 02:18:11 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:11 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v4 07/12] mptcp: remove assigned but unused value Date: Wed, 28 Dec 2022 11:17:43 +0100 Message-Id: <20221228101748.2518303-8-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=653; i=matthieu.baerts@tessares.net; h=from:subject; bh=uZ1GtsrShc9C2g5MMHxhX8M/nNp+YYPJg4WshuQZCy0=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe/zdwNwhX5GIi12lg2zt1E/c6//XWQ04V9HwzN HqFhr5CJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvwAKCRD2t4JPQmmgc6FOEA DIX2LtBwuooJknrtMs1BxqYT3qMae/c/AReJPhylCWIqVNsSW5TtCaqT5EzzFpFb5UBQtVZxrMGYmR E/rdg1lMdU6lvskKsRteBuUiYZdXkhYp9YZ5udCPp3cFiukgFysyblr3/ft0uDwPyPDT7b5XM23u62 nDnYWTd2kky3/SJwwI0Thfi12pR31wLd7sXixkp9JNnrSLodHFP8W6r/fIhU9UsNwCZcpuz5Q3QTrb qLOUg5KSQ9vNB6Z5WqsWb387isIC/rDrKS06KlwNnJA2N4QxOuIvVF6bKE86k9fGszLlM9xbMMIzDW v/exs7GHPtKIVqecrOJWPhvrefiAusLXSmn0fmEjmDx0nrtBtRuEMGtSsRfkCW4BYKORSH7pN0CAa0 e+YLEt0d6ptl7sADJtqdC2GyMv4Vp2YNz/0pPk9k6ujlDHuUusGx6u0rtqOFHNYG/+DdOjuNjzFkxn hYU4cl1p5ktaCc25CC3/mEvgPGY8WAlFQD3JVlIkGZuaKu9q3CoNyTTdiy+1WByGUc7C1wgImldruN sgMidIw35kjwv+0zy2sGqpcojfcLyBh7iZI+Y3XkU0F8y4VkCOqHg2r/eIhiux5erVpnucsPHuD0EW OsK5iPcM1sCMrFWDPpW+AXYCeeJGOrs5nZUAjkzi1LL4FOls2LRBZ4gTB7UQ== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 'ret' is always set later before being used. Signed-off-by: Matthieu Baerts --- net/mptcp/pm_userspace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index ea6ad9da7493..be389dad3f0a 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -34,7 +34,7 @@ int mptcp_userspace_pm_append_new_local_addr(struct mptcp= _sock *msk, struct mptcp_pm_addr_entry *e; bool addr_match =3D false; bool id_match =3D false; - int ret =3D -EINVAL; + int ret; =20 bitmap_zero(id_bitmap, MPTCP_PM_MAX_ADDR_ID + 1); =20 --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (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 996D7110B for ; Wed, 28 Dec 2022 10:18:14 +0000 (UTC) Received: by mail-ej1-f54.google.com with SMTP id kw15so37335264ejc.10 for ; Wed, 28 Dec 2022 02:18:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=T6E6SLEzYpkMhImNY09/lPTYQtXlDI04cgDyI9gS+K4=; b=4yEnUQIhr6bMHWinDDUG91t7ajSNiRxoDxZc6OTbC1dWlnBxaHbu3j5raimLz6FiMW WW9kJPN05R5xeUjGZZucfaZYVur9qITtvPYo42wiaqLVzVMUKSESoHUa2mVauy/scyn/ jiBeAz/6zvekGU8X+bao3hSoTmI6C52mpfV0U2OwaanJGtAuVOjiq6pw3EqGwZYWQFt5 0nVyMQxDKGIKxfpeUbZYMs50gqSTXlgHVlg62xmGB889n4y7vzm0oeThiz2bYl3jMXKq 4EzL4YWDQR9I64y/LqNsAxzIesvB03WAagJHw7FXjKj1vP4o66wEt2vcOiY9UjHpmpAq 8I2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=T6E6SLEzYpkMhImNY09/lPTYQtXlDI04cgDyI9gS+K4=; b=o1L/En3XnH91C7cw7hM1Bo7DDgEX1csowm3pOlHZfItfiUhPbO1HAazUDeu+0HiLHs xlD2FkQdWmoHJs+Gt20pPw1ODjGZzICxfyJjIiZpR2r4um0tNRaujaLQxBmfpOpEzdqb Zi/UTmuTFtMxtG1IXDDDRzpMk14PWDbfYZ2oFoI2Ysnn/h+piOICyYs9aIfZ7ZnIMvzy 4GrAO5LHREUhLckutf8CoBlZpBNMz6S7tLJ6fUh8v5HdDVIlAHkWI5lPBjC4WIFzyMmK nDGVdWTuxPoIszVXtefl1C0VOTsvF3YncKrpbT34Ffo3RB9cQsZpS2f63M8gSSy9YWgg jcqw== X-Gm-Message-State: AFqh2koHUAbV/du4Oh84e9WVPIl9C0jP1GhQsBdpyy1z1ZrFHNi7oBtH MVpb6swe1cRAxFAs7XKMR/WaE7bkVUokh/9YWGI0qQ== X-Google-Smtp-Source: AMrXdXteCXAFXd8D0hQBqQnDq82pBzjv0j/8uwvLk34oFJqxX9I6w3w6IBGmx3zJKC7ZWEjYrERMeA== X-Received: by 2002:a17:907:7094:b0:844:1d1d:1fa with SMTP id yj20-20020a170907709400b008441d1d01famr20745729ejb.23.1672222692603; Wed, 28 Dec 2022 02:18:12 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:12 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v4 08/12] mptcp: userspace pm: use a single point of exit Date: Wed, 28 Dec 2022 11:17:44 +0100 Message-Id: <20221228101748.2518303-9-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1113; i=matthieu.baerts@tessares.net; h=from:subject; bh=X6mqozSm9v09ThbI9m6Y8WiJzcaWWHTPW/GoY6CoJDo=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe/qFgL4NLpdLS1LTBJ9+x/e6ExedvLDzWRLObe Cf+N4dqJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvwAKCRD2t4JPQmmgcx7UD/ 0XSCt/FhrTM58FRHMIGcmKFhZ6hOoCSjrpEMr/pAOXI3KOnUuVB5esTnM+jnOV7547TjfGA3WSlNhJ lrc/+rjiJKW1IvigxYerCLHgbff1XaPK1yyz9HmzLLsVP9HtGZmqvhN4mk2ZB6or+CVrpGSwt+iBHY DRfZ7pksxf/5cGpVNAS+iySnt5/2vLKU8CsdrvAUnfTmZylndgxAGg4eJN/xwMtjixlhjsv/HJZboB zkSJbweX9UIXyZMxlmumue1SZHWvp9fidzgIVKDMBdEno0g8kwDiFcX4t8cPwFGE3ZN/axKrqEZlRu 3OH3NXK15av8GyvQL9tGMA5fy3RtAzUw6zmzBZnP63/xqNucSlb5GV/FP/ghf4nVMTTbji0GaBfQme Zw4Trs9OK2dSgNOLjyEmR9cwNlmZcLdQJ5lVj7s3KJy8/fkD0vq6Q4kg/j0rjUDcheYo8Zzu0JF2lG Gw0UmO5qZ9jqb1bRRlMQvVTASNEOQYCl+5dA8ctWLnzVMKtD2HcGqjDMerteI2K/rlXSBdVvjwS7fw wQTUdG/zbiSsbRLpglT+PBhJ7JiQoP/3f9wgtxPe140a1foT+SNk/I5xDl/L4LOgmhGQnA+ixesTHq xQlQCW5mvYH/z+vdt5VOejgD2epdNO8IRSfTOMTKdKREU3D2aKLoIdgLXNuQ== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Like in all other functions in this file, a single point of exit is used when extra operations are needed: unlock, decrement refcount, etc. There is no functional change for the moment but it is better to do the same here to make sure all cleanups are done in case of intermediate errors. Signed-off-by: Matthieu Baerts --- net/mptcp/pm_userspace.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index be389dad3f0a..27badb5a5820 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -59,8 +59,8 @@ int mptcp_userspace_pm_append_new_local_addr(struct mptcp= _sock *msk, */ e =3D sock_kmalloc(sk, sizeof(*e), GFP_ATOMIC); if (!e) { - spin_unlock_bh(&msk->pm.lock); - return -ENOMEM; + ret =3D -ENOMEM; + goto append_err; } =20 *e =3D *entry; @@ -74,6 +74,7 @@ int mptcp_userspace_pm_append_new_local_addr(struct mptcp= _sock *msk, ret =3D entry->addr.id; } =20 +append_err: spin_unlock_bh(&msk->pm.lock); return ret; } --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (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 0763F1109 for ; Wed, 28 Dec 2022 10:18:14 +0000 (UTC) Received: by mail-ej1-f51.google.com with SMTP id jo4so37408256ejb.7 for ; Wed, 28 Dec 2022 02:18:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qXCSBF6liyCYU8H57JsfKDAkklMDGoDA3nQJzOmYetk=; b=1DJ6c33B6bVWmM5bQ0ZbEekHBDN1WeWrjv9dnDg6hasRg131RdrCtzSQGgaab9kc6x abtpz172kaMGXrEDr6Rj331X9M5MGuiHCO/clailKCNMNvoX9grcvjLNnoZjlnSKX2oL sKxUwQhfZfP1F8TPANuRk4fY4seyI2VCcxHLeLEbw0pNl+Y1WVdchVgAmA7Utct8shRf rchxLxRQvlyT0NsmiJXJX54QZ7CExNR4g74C3OjiVDddl6tfeZyPLg0O+nb/oFU15JTr OccYjP3KdJA6++IaCXbsy88D1iK0zNeAe/5zNoAFPN+4+XMCkWcOm2gUXWJGejULL94I BHdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qXCSBF6liyCYU8H57JsfKDAkklMDGoDA3nQJzOmYetk=; b=vqxjy5BxzLF5vJji69mJ0jC7d1S0vROObIFnjBkS7eMhpP3lhbxESS5vt6MgzS9oT0 cUOOJ0RmAS11qDZq9uO0mY+zw1Afu98vBBjX/xps9zRyOTR/+iuyn98wJ/rJZJRzuvDh MMLyBIQqQ2brEHH7UCV2D69YrxVnV5KZ4kiCbhJgFw62NlYQXBwGI14IMn8eEUBdGdi2 L2tEAeVSc1KSYph+FJJMXg6zbOW3rnDlCpApk8l9KojTLlehZ6/MLqBht1tsY4P8XIv5 VyOt9CqaQBlLk2Cw8flGN3hcblCFFcX6v3W1LDLpdUSfEBD/7THwWbgOI4a5c6ZCuNXU frbw== X-Gm-Message-State: AFqh2krs0zq06ylW9Tnxv/IH57SRHZLT4ev2JnnVQfk4bmntnnM8mErQ agj7B8NN9GKri0inxnegEiOziUFN09LOUHRbWI8t4g== X-Google-Smtp-Source: AMrXdXvLDOskVgusmlfvrKL5yqrk7//PLgeXq7cXc5cioP2LgK40OlfIV7IGSFMFiVYmAQFWR/FSPA== X-Received: by 2002:a17:906:c0ce:b0:7ad:d7a4:4346 with SMTP id bn14-20020a170906c0ce00b007add7a44346mr26914020ejb.66.1672222693254; Wed, 28 Dec 2022 02:18:13 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:12 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v4 09/12] selftests: mptcp: userspace: print titles Date: Wed, 28 Dec 2022 11:17:45 +0100 Message-Id: <20221228101748.2518303-10-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2989; i=matthieu.baerts@tessares.net; h=from:subject; bh=H+9EHc7FP/MHeHEjjNd26f57XIP8B+ErItLbmQVHXng=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe/RLHwMAfsnmaWyMo8L7biigvp7cf2bLozce9Z z6d0+xKJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvwAKCRD2t4JPQmmgc/mhEA DADmela/xzOtVPdY99YHRWq3yWw70W1U3EoETwbVgHYIkxehgQ8amQ8PqPnvxR6lrzKKKMrRiBdulU 2FHIJ209/D0+yuqee1MNTpNxNcqIwCnsq77HTUrlzZoiblZL6zFF4kSCk4nbvxGHTmIJLI4F2kltva UVZkwypoaflV49oQHa2j3iDF49QBTvDLAieQZht+vzJybVx9UhprkFfEY2ld4WxKLOjwiZX5e1PaBO w+wFpFLWzYLLzFqtjtbfjFh7Chxe/Hlph9c93S7Ij40ocZBkMpLrdo8W7U+dul8GNEQE/q/JI0jEH1 ZacX8+RlxzGB6t+lGDGNiVRm67BE/w/umUcqFMFRSGx4iZaYfotC45R3R+Aq7HUoW8D3IUz4VepfKX 0oBmzloFE7akCSSqD/boZ0q7GRCeDKPmXOsrO+g3hH6IpOBZfptHk/qW5EWRjbrbcYBQvdGB83PVPp iFLCKZXjdEqBBpCVYx3w8fC2fFUPbPxDV5hqMNLJ8AScD3WlAO17dfAvKsoOs4EhJ0qirUUET9e1he Vec19VOUwixFlfIHUjq4lSu5mo8ymsw5n/N9BDneH2GLuhxmd0LshyfO+X7RMFN+k08ZAm32I7iqYM xrpMLi4wSvSMQkicQrXD4vCT0EvV+jkaIRDzvGL65UAAI9vH3EUUhti9LqOA== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This script is running a few tests after having setup the environment. Printing titles helps understand what is being tested. Signed-off-by: Matthieu Baerts --- Notes: v3->v4: - Add a title for the Cleanup (+ 'Done' at the end) .../selftests/net/mptcp/userspace_pm.sh | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index ab2d581f28a1..f9a03e6e968f 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -43,6 +43,11 @@ rndh=3D$(printf %x "$sec")-$(mktemp -u XXXXXX) ns1=3D"ns1-$rndh" ns2=3D"ns2-$rndh" =20 +print_title() +{ + stdbuf -o0 -e0 printf "\t%s:\n" "${1}" +} + kill_wait() { kill $1 > /dev/null 2>&1 @@ -51,7 +56,7 @@ kill_wait() =20 cleanup() { - echo "cleanup" + print_title "Cleanup" =20 rm -rf $file $client_evts $server_evts =20 @@ -78,6 +83,8 @@ cleanup() for netns in "$ns1" "$ns2" ;do ip netns del "$netns" done + + stdbuf -o0 -e0 printf "Done\n" } =20 trap cleanup EXIT @@ -108,6 +115,7 @@ ip -net "$ns2" addr add dead:beef:1::2/64 dev ns2eth1 n= odad ip -net "$ns2" addr add dead:beef:2::2/64 dev ns2eth1 nodad ip -net "$ns2" link set ns2eth1 up =20 +print_title "Init" stdbuf -o0 -e0 printf "Created network namespaces ns1, ns2 \t\t\t[= OK]\n" =20 make_file() @@ -255,6 +263,8 @@ verify_announce_event() =20 test_announce() { + print_title "Announce tests" + # Capture events on the network namespace running the server :>"$server_evts" =20 @@ -359,6 +369,8 @@ verify_remove_event() =20 test_remove() { + print_title "Remove tests" + # Capture events on the network namespace running the server :>"$server_evts" =20 @@ -521,6 +533,8 @@ verify_subflow_events() =20 test_subflows() { + print_title "Subflows v4 or v6 only tests" + # Capture events on the network namespace running the server :>"$server_evts" =20 @@ -754,6 +768,8 @@ test_subflows() =20 test_subflows_v4_v6_mix() { + print_title "Subflows v4 and v6 mix tests" + # Attempt to add a listener at 10.0.2.1: ip netns exec "$ns1" ./pm_nl_ctl listen 10.0.2.1\ $app6_port > /dev/null 2>&1 & @@ -800,6 +816,8 @@ test_subflows_v4_v6_mix() =20 test_prio() { + print_title "Prio tests" + local count =20 # Send MP_PRIO signal from client to server machine @@ -876,6 +894,8 @@ verify_listener_events() =20 test_listener() { + print_title "Listener tests" + # Capture events on the network namespace running the client :>$client_evts =20 @@ -902,8 +922,10 @@ test_listener() verify_listener_events $client_evts $LISTENER_CLOSED $AF_INET 10.0.2.2 $c= lient4_port } =20 +print_title "Make connections" make_connection make_connection "v6" + test_announce test_remove test_subflows --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.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 D83851117 for ; Wed, 28 Dec 2022 10:18:15 +0000 (UTC) Received: by mail-ej1-f42.google.com with SMTP id bj12so37342640ejb.13 for ; Wed, 28 Dec 2022 02:18:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Effoef+23AA8q569t3z3FvYJYTOw8TADOT4dKKnnPz4=; b=HkSlbjC+2oOKM7wGdhsVqDoe3GtLLsecbh2Foq54jPtiUu4stGLn4BJrY3YwlfIkfJ dmSVEm7WF09WzYq3lIv/+jc3BCB34nejHt29TPV90e7a0pBFdIeo/QN61LJQ77W/ibFU 9Iy5Bhh093IOAhJrfVWpy95lsSvJ0HlluYUqhJqU7lppzcjU4EQxLcCxM56r+8TUEfXV GOcrDHx0v9TOcfuCo+s5wyXrxQXbw1iCfGzaL3dgp/vj6n126ylC/E6UOb3U5MqIS8er lNm2PZRw6bF39cOzfH4q/ts2MoAByKQx4ay3+HhHpSYSTxV30vDijtpw1maS9FT+HxbV oKvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Effoef+23AA8q569t3z3FvYJYTOw8TADOT4dKKnnPz4=; b=xbmqsziWdQqRsjHBDSCTzGirkFp20au4nVvVUym0vQBP0skei1dlSzr+Y3MZMxfRdd b2NH4SVwjOP7AQSIPjK6sW1qF2qhp8CRsPH9M5cJQMTAdv1X2pZb+5WvTK7416H04cSw slZLyJHFCxBEAIB66txqM20Ex96HTv0BND+GObim3FKYuB1pZZkAd+lBycHUzH4seHfG ND9GDyxPS5soCLQc6SFRQVoR2azYEyEZPWdJ3aE0rjlsArRqC2MxTq/k082igMTXf9mo K9R8kgTf3bUqZu92h0OWMt5ME0uXgm3F+wiv3RxICbFdyD1YngZAXNgX8QzclPSbnLtP RUKQ== X-Gm-Message-State: AFqh2kpXhpEainptLCSYqybj+8oa5WPRJAenWDt9vF6z/IOT3UwOk32H 2hXeLlrwazrf3217nA5JWMJ3XxfNIDfQ7ECttdl2sw== X-Google-Smtp-Source: AMrXdXuSZo2QVmw7aoBlXwe9Hf5jA1o47j9GC8IR1ZfFn3oKhcogNr8SzDYIWApsawiQ/MSeMJGCCg== X-Received: by 2002:a17:906:d96c:b0:7c1:7cc2:1f1e with SMTP id rp12-20020a170906d96c00b007c17cc21f1emr24478259ejb.35.1672222693933; Wed, 28 Dec 2022 02:18:13 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:13 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v4 10/12] selftests: mptcp: userspace: refactor asserts Date: Wed, 28 Dec 2022 11:17:46 +0100 Message-Id: <20221228101748.2518303-11-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3455; i=matthieu.baerts@tessares.net; h=from:subject; bh=ROj86lyIiRGetvyo5Qdh6lfFZ8/hVlMOitwP1IlR0lI=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe/as0W5dDXxbQ4x96m34zESntwoRlmPRbqg4Ye COC9rKiJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvwAKCRD2t4JPQmmgc7HcEA C5TDH2eUJhO04TNyv3dgCQcVAdG+BfyLZUA62O8p06iUWyF9FmIZiKz1Clk4AI6mNWP2xDWFiSEqGM I8YRBNWFYORysIi3wCxpSrKJVp6DoZDtE+bzNZsQjamCdfKtzDA8/RDrrU20qP9ez9zHgBVA6n9gON 0DnBHO+kGZvuMHlfGXRv2wmSeHzywhbfaMdTwI5r6xfedTlXfpSEUEkkxK7VCpTnpB2SU8xnFL9ADc Nsr3Qu7BFo9eKxMNMppnhpSOiyFVqn5Qv58dhhVIqWsvGChXgqKS59ObrxotjQYFoaXyUwAhoOWBmy vSE5EseLcKBds7ufzEzULvv9rM10wifX5fyXXRWim9gwTwmJ3KCUELpXeZ7cK+f0iAknLIllSyJIlD OpPtGpof5QPXnri5ABONpoRSfpXIb2lDobwMz3MmvL5QEI4UZX1eOpWd7ZL9ojAL/O5XeHuCqFSTIz /BP6RaIsqtbA2YvUf4dxJKbpaljzYV/UHN0ioVrBAlqZTRvQ0i9foO1nVj1wA7fxZFRhAzvrKWxkuX lyMiJvu8JzjGWZ/Z3xyzbnqLWOc6NIPUCX68MeCRAH+GvoIZ8xzLMvTHx6/y+cBAYHKugnNuY2dsnK XIm5tyCn18XFbMKTI96G68Prn4Rxs0WOToOFFWtBcRtrEYRt2vvYsljqlGdw== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Instead of having a long list of conditions to check, it is possible to give a list of variable names to compare with their 'e_XXX' version. This will ease the introduction of the following commit which will print which condition has failed (if any). Signed-off-by: Matthieu Baerts --- .../selftests/net/mptcp/userspace_pm.sh | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index f9a03e6e968f..9edd1abcc067 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -225,6 +225,36 @@ make_connection() fi } =20 +# $1: var name +check_expected_one() +{ + local var=3D"${1}" + local exp=3D"e_${var}" + + [ "${!var}" =3D "${!exp}" ] +} + +# $@: all var names to check +check_expected() +{ + local ret=3D0 + local var + + for var in "${@}" + do + check_expected_one "${var}" || ret=3D1 + done + + if [ ${ret} -eq 0 ] + then + stdbuf -o0 -e0 printf "[OK]\n" + return 0 + fi + + stdbuf -o0 -e0 printf "[FAIL]\n" + exit 1 +} + verify_announce_event() { local evt=3D$1 @@ -250,15 +280,8 @@ verify_announce_event() fi dport=3D$(sed --unbuffered -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' = "$evt") id=3D$(sed --unbuffered -n 's/.*\(rem_id:\)\([[:digit:]]*\).*$/\2/p;q' "$= evt") - if [ "$type" =3D "$e_type" ] && [ "$token" =3D "$e_token" ] && - [ "$addr" =3D "$e_addr" ] && [ "$dport" =3D "$e_dport" ] && - [ "$id" =3D "$e_id" ] - then - stdbuf -o0 -e0 printf "[OK]\n" - return 0 - fi - stdbuf -o0 -e0 printf "[FAIL]\n" - exit 1 + + check_expected "type" "token" "addr" "dport" "id" } =20 test_announce() @@ -357,14 +380,8 @@ verify_remove_event() type=3D$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$= evt") token=3D$(sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' = "$evt") id=3D$(sed --unbuffered -n 's/.*\(rem_id:\)\([[:digit:]]*\).*$/\2/p;q' "$= evt") - if [ "$type" =3D "$e_type" ] && [ "$token" =3D "$e_token" ] && - [ "$id" =3D "$e_id" ] - then - stdbuf -o0 -e0 printf "[OK]\n" - return 0 - fi - stdbuf -o0 -e0 printf "[FAIL]\n" - exit 1 + + check_expected "type" "token" "id" } =20 test_remove() @@ -519,16 +536,7 @@ verify_subflow_events() daddr=3D$(sed --unbuffered -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$e= vt") fi =20 - if [ "$type" =3D "$e_type" ] && [ "$token" =3D "$e_token" ] && - [ "$daddr" =3D "$e_daddr" ] && [ "$e_dport" =3D "$dport" ] && - [ "$family" =3D "$e_family" ] && [ "$saddr" =3D "$e_saddr" ] && - [ "$e_locid" =3D "$locid" ] && [ "$e_remid" =3D "$remid" ] - then - stdbuf -o0 -e0 printf "[OK]\n" - return 0 - fi - stdbuf -o0 -e0 printf "[FAIL]\n" - exit 1 + check_expected "type" "token" "daddr" "dport" "family" "saddr" "locid" "r= emid" } =20 test_subflows() @@ -881,15 +889,7 @@ verify_listener_events() sed --unbuffered -n 's/.*\(saddr4:\)\([0-9.]*\).*$/\2/p;q') fi =20 - if [ $type ] && [ $type =3D $e_type ] && - [ $family ] && [ $family =3D $e_family ] && - [ $saddr ] && [ $saddr =3D $e_saddr ] && - [ $sport ] && [ $sport =3D $e_sport ]; then - stdbuf -o0 -e0 printf "[OK]\n" - return 0 - fi - stdbuf -o0 -e0 printf "[FAIL]\n" - exit 1 + check_expected "type" "family" "saddr" "sport" } =20 test_listener() --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.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 44B4010E9 for ; Wed, 28 Dec 2022 10:18:15 +0000 (UTC) Received: by mail-ej1-f42.google.com with SMTP id u19so37368037ejm.8 for ; Wed, 28 Dec 2022 02:18:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tzgwuk3oT1wcb+cjhzp+JEGa1LQuxo5IR5KHlk0bApg=; b=TFMd+O3HD41iBX5zvkBZeAHjE79HXRsJB8hsaaDWQ5xVkbgjA6Sfmp/sKmCVEQb+HS qqK5zZzIOr7hPkNF2iRE989ahdMv3nFMakSizrkfLtLrkywNnXdV5eC7wraxkrSdS9zu /+bpqgdeTIbUNIVZ0YyH+BChBwdu4nRsxlVrEfplGSBocPR+avLjXo8LhRLEloCp1Xx6 bbu5ASF0in1h+mQAMJGVzgMAStccVhcilDyE597fmI65oE5GVrBfyFrscRweVJC3+8Gk 18x7uS8fr6EvWHD6Itpus8e/b07bXbHrZYjTE1ylSFXpUIAQRFGjzenBOBqCEeT+Snma dJqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tzgwuk3oT1wcb+cjhzp+JEGa1LQuxo5IR5KHlk0bApg=; b=w8nBdVTMw0ds/kMWPAfz6PGXDnTLmIXKZPua0BwSbFJiAu2mB7Hxyi+lbd21o5rfik 1uAIxtmJM/1ZbaeIItLb/fl61HRsbTAD8GA7E9L4XRVgJ4oGRjyC1VHuzmEFJuooWDl0 FCm8EzeC1oIy+/cNEC5aFeLqqhl5P3X4dF/QVtgaorKB7MHeiQMXwdOrhrvzH9KnNLfL WJYtgEJZ8dzpBsrYu65HOphb4pvARB6aJ/Wvc3wSFclQ3p5AOZzX0Cm/5u0gIhG63Ji/ iXZprMtl83s6IB8fLcEukzLqMBuaU71U4ampv4slejwr3uKbyT4eFTMifC7YDl7uEY1/ dBiQ== X-Gm-Message-State: AFqh2koHrJEiuHTySao4khrpZ3H2NEMFrDbeFW8lAGN358GbRdvHxUwM w64tyDGcfwJKjBpRs8AKpQzFaSdP5iWX/oLvxT+stw== X-Google-Smtp-Source: AMrXdXtTr0XEuRGF0x3xgjt6oqfWfkx59Q0uGXgSnrfeXEsKtUqS4fLPwbWYN5wBwcWHMtDR9FGDww== X-Received: by 2002:a17:907:a08d:b0:7c0:dac7:36d8 with SMTP id hu13-20020a170907a08d00b007c0dac736d8mr21104174ejc.10.1672222694562; Wed, 28 Dec 2022 02:18:14 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:14 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v4 11/12] selftests: mptcp: userspace: print error details if any Date: Wed, 28 Dec 2022 11:17:47 +0100 Message-Id: <20221228101748.2518303-12-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3188; i=matthieu.baerts@tessares.net; h=from:subject; bh=rV/UnDzrHn8cTDUEj5YH6yx2iAn2csOj/Jmdg6Gtjas=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe/K85ERLHf1zKKOY6N5xQQkTcCFBUQhZd6hU0e A6EQ49aJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvwAKCRD2t4JPQmmgc1pAD/ 40lLjdetukmV8USQ0jR4ep/+kArndp8+3eqdx6TLp0R45xYmFWmiRh+djQfOdsHtGNGaxr8RHY/Vi2 UfWBVzlJcrXnLsWQWa04/LZBA2hboPgQRkkhMuGqZy6ELKic+We5EDPF1Fvwr8/LCOIofQYSSJkC6S C3bBoEGh/ukpWgvHYwGCJEOXLKGs15+1dYUCBmn8EAivbseC9id6rwhULD7bM+dmVvs49XBIqthxL5 m6+bFRG8uDyblETqnSwlYr/hdheFZzmSNUb5kQKy5kNjDVisKBQPSV923VEqK0TqH/wCiqg2CEVAYT YxQdpwe4ZS/jpgQ9lMzNoAb30qAakPRJ5ca2InAo7xPgN2Q6TBjHs+NLYVl2E5ONtJMXcWjBhFGEYE Q++3X71bnLU6/SVzjfNOvQ61ehEyQIT387MsgrLSfZiAb230rUZas2SMlYWbaRxPf7aVIbS54vEUS5 7md9NDzcQIZpNUWR73ohBXchfQyZ3JYzpOCK44R4T9+6Wu/fXu/FIqkS4MDy934BTVH/UsDI83QaTz HL7cLMkqY/qeSr2W4Cacje0XK0zNvWT0l1rltJzE1EzZtNNXpyzOVyMo2YCQq0RNjofFp8Zr1bWxD7 r4xaMfINo8Z0rD3r4axkclg9xnR/tcJJon4UHHjgjONreSFhg6ID2stu8pCg== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Before, only '[FAIL]' was printed in case of error during the validation phase. Now, in case of failure, the variable name, its value and expected one are displayed to help understand what was wrong. Signed-off-by: Matthieu Baerts --- .../selftests/net/mptcp/userspace_pm.sh | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 9edd1abcc067..0bd35768c1aa 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -201,11 +201,16 @@ make_connection() server_serverside=3D$(grep "type:1," "$server_evts" | sed --unbuffered -n 's/.*\(server_side:\)\([[:digit:]]*\).*$/\2/p;q= ') =20 + stdbuf -o0 -e0 printf "Established IP%s MPTCP Connection ns2 =3D> ns1 = \t\t" $is_v6 if [ "$client_token" !=3D "" ] && [ "$server_token" !=3D "" ] && [ "$clie= nt_serverside" =3D 0 ] && [ "$server_serverside" =3D 1 ] then - stdbuf -o0 -e0 printf "Established IP%s MPTCP Connection ns2 =3D> ns1 = \t\t[OK]\n" $is_v6 + stdbuf -o0 -e0 printf "[OK]\n" else + stdbuf -o0 -e0 printf "[FAIL]\n" + stdbuf -o0 -e0 printf "\tExpected tokens (c:%s - s:%s) and server (c:%d = - s:%d)\n" \ + "${client_token}" "${server_token}" \ + "${client_serverside}" "${server_serverside}" exit 1 fi =20 @@ -225,13 +230,26 @@ make_connection() fi } =20 -# $1: var name +# $1: var name ; $2: prev ret check_expected_one() { local var=3D"${1}" local exp=3D"e_${var}" + local prev_ret=3D"${2}" =20 - [ "${!var}" =3D "${!exp}" ] + if [ "${!var}" =3D "${!exp}" ] + then + return 0 + fi + + if [ "${prev_ret}" =3D "0" ] + then + stdbuf -o0 -e0 printf "[FAIL]\n" + fi + + stdbuf -o0 -e0 printf "\tExpected value for '%s': '%s', got '%s'.\n" \ + "${var}" "${!var}" "${!exp}" + return 1 } =20 # $@: all var names to check @@ -242,7 +260,7 @@ check_expected() =20 for var in "${@}" do - check_expected_one "${var}" || ret=3D1 + check_expected_one "${var}" "${ret}" || ret=3D1 done =20 if [ ${ret} -eq 0 ] @@ -251,7 +269,6 @@ check_expected() return 0 fi =20 - stdbuf -o0 -e0 printf "[FAIL]\n" exit 1 } =20 @@ -303,7 +320,7 @@ test_announce() then stdbuf -o0 -e0 printf "[OK]\n" else - stdbuf -o0 -e0 printf "[FAIL]\n" + stdbuf -o0 -e0 printf "[FAIL]\n\ttype defined: %s\n" "${type}" exit 1 fi =20 @@ -837,7 +854,7 @@ test_prio() count=3D$(ip netns exec "$ns2" nstat -as | grep MPTcpExtMPPrioTx | awk '{= print $2}') [ -z "$count" ] && count=3D0 if [ $count !=3D 1 ]; then - stdbuf -o0 -e0 printf "[FAIL]\n" + stdbuf -o0 -e0 printf "[FAIL]\n\tCount !=3D 1: %d\n" "${count}" exit 1 else stdbuf -o0 -e0 printf "[OK]\n" @@ -848,7 +865,7 @@ test_prio() count=3D$(ip netns exec "$ns1" nstat -as | grep MPTcpExtMPPrioRx | awk '{= print $2}') [ -z "$count" ] && count=3D0 if [ $count !=3D 1 ]; then - stdbuf -o0 -e0 printf "[FAIL]\n" + stdbuf -o0 -e0 printf "[FAIL]\n\tCount !=3D 1: %d\n" "${count}" exit 1 else stdbuf -o0 -e0 printf "[OK]\n" --=20 2.37.2 From nobody Wed May 8 14:13:16 2024 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.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 4667810E9 for ; Wed, 28 Dec 2022 10:18:17 +0000 (UTC) Received: by mail-ej1-f46.google.com with SMTP id bj12so37342768ejb.13 for ; Wed, 28 Dec 2022 02:18:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=N/jHKBQFqn7bUxdd3zFAuj3Z6MLFTXhPHtnSVA/ZQLI=; b=sSRRL2FPl7spcpKvTKw2Jlz1MnsAyLz63Aaaqdv3QbPKzl/aFlG6a7vIqDe5xUAmop GosrQ5nJUmJwY4jHFvW2EY2iEWMflSLN2DSpfeceJ6vprOxWMAe8GwbZkClbdmR1oICj yFTWHkCD5orBNyJ75mHXmMe3yDHe4KhN/d5d+ohGI5MvdmoFeCjIq7WKxTpDlv7O2ziA y/de2Ss1mx9Ecl307fLnwzLrhJTavYicvhlxJKKE+Y0tmqBCo4i9UETRy71OCZs1F0ZC nPfrLbh+R4TM13qAKEH68qWetvUDyfkGYDAncyQxDM3/bFOcntyremyVwVgJf5x6+Mmk q1Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N/jHKBQFqn7bUxdd3zFAuj3Z6MLFTXhPHtnSVA/ZQLI=; b=YIT6T3UMxA27YckuUC4u8XvIDiO2VpDf6PSrdWOwwCR0uH2suBJmlpfBTv1NwXek4F /6o/uQPN0MUPcXTw8Jp+AH8Wctu3Q61ILDlY+f2VbJwblI3ZRrzSCtI039biiSPyqcDG kpbnjRogvKcisjc3nq5KniLO/2NzSeoZHRItt8ic5VrYO21SmdVsmS2Lt01pGx0Wwe7i nwnIwKZssV4okkMH0x8BHUypb2j5Y7JN9Gt/8SfapeRZYDdf4IVg6xh1zdmjVSFIayVn Nol8WM8CGsE55xuIy1jcjABmxJik9CTXGApVUJyJht4/ikfIgc60/ERNm9abPMiuROCR XiyQ== X-Gm-Message-State: AFqh2kqU3Z3R9ZP/S+iM/nPIMjlbWuD7aUrwgmJlIvntUaPZi6T8qBLs VUVl/NAow0nGIfg2hRpTCLENvbeIleTha5x/eztU8A== X-Google-Smtp-Source: AMrXdXsYvk6o5PzMDV8IMC/gem6NS10P11rlYyV7usXUWZjjp0UF5BdII4jey9zZFIi33lwjSesEuw== X-Received: by 2002:a17:907:d302:b0:7c1:3472:5e75 with SMTP id vg2-20020a170907d30200b007c134725e75mr21978377ejc.29.1672222695169; Wed, 28 Dec 2022 02:18:15 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id q14-20020a17090676ce00b007ad94422cf6sm7174127ejn.198.2022.12.28.02.18.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 02:18:14 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v4 12/12] selftests: mptcp: userspace: avoid read errors Date: Wed, 28 Dec 2022 11:17:48 +0100 Message-Id: <20221228101748.2518303-13-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20221228101748.2518303-1-matthieu.baerts@tessares.net> References: <20221228101748.2518303-1-matthieu.baerts@tessares.net> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2046; i=matthieu.baerts@tessares.net; h=from:subject; bh=R010oh46FcW31/7ZHEGi4EYd6Lvb3u6lx2QxCCnXZ1I=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjrBe/cxyi6f2f9eDjRxyGAWuZ1HNAmTZYz3tkM20t xLGCznWJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY6wXvwAKCRD2t4JPQmmgc4GsD/ 0QjqCUFvlLd8fBqiC4++fqjwXEUP5HcYs5jqxuiqDnCzVbXAA14aAR1vXrFQMDJo+XgiOh3jgWeAFY ofY/fF9DQh7g+ODtXNhMI3eZl5w+3Dy60U82+K3K9JQdztDjIxX3XZYgI6ZXrtjvOMOgS3+OMhTpS/ /CCG7WTMTTZtst19SdSkNOEByBYgZ/+ibDmoPs89TnIJWn/PTJz69afJeCsedJlk5fwgxfD+2mBUi7 oTLgNdYVx7jqqLJmM+hgLA6FyigY51DzcdCcAf3eMzfjoeWhWdRGuIurlZF8FUWN0FMg2Q7s7LmbdT CThj+EWTkLLG4K3CkdgujFFzHOwuflzhU1TBNpGmlGO/snHik17AyBLYvB1oCRImi6S4Dmc2ooVBQw 44quGOxCd4rX+0foW+KyR7XyqqbNjBi34gJ9V3NZdbkb6C9Q3v/eSipsWTeRBRYWMcfG3//7jDyalw 0/SeRpW3Xh4hzw8sVoH4ZPoTjpZPDf0LcJM3tFR++9vy8XPEsZnRSyQVIzcdmVqXbha4G0sKnDmTCJ U2CzyJSQcm0pRNyiiO+nAjZm4Gp+FC1L8ojKbRq/KkiVTePl7Irlc2igivrlzBXgAYKCeeyCVwybqb 0Mz+NjDLXW66LxzePJvLqqx1Bdxm9qxgjly7vnxVfad1VNyIexXExPEnrR8g== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" During the cleanup phase, the server pids were killed with a SIGTERM directly, not using a SIGUSR1 first to quit safely. As a result, this test was often ending with two error messages: read: Connection reset by peer While at it, use a for-loop to terminal all the PIDs the same way. Also the different files are now removed after having killed the PIDs using them. It makes more sense to do that in this order. Signed-off-by: Matthieu Baerts --- .../selftests/net/mptcp/userspace_pm.sh | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 0bd35768c1aa..8b4f130800b9 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -50,6 +50,9 @@ print_title() =20 kill_wait() { + [ $1 -eq 0 ] && return 0 + + kill -SIGUSR1 $1 > /dev/null 2>&1 kill $1 > /dev/null 2>&1 wait $1 2>/dev/null } @@ -58,32 +61,21 @@ cleanup() { print_title "Cleanup" =20 - rm -rf $file $client_evts $server_evts - # Terminate the MPTCP connection and related processes - if [ $client4_pid -ne 0 ]; then - kill -SIGUSR1 $client4_pid > /dev/null 2>&1 - fi - if [ $server4_pid -ne 0 ]; then - kill_wait $server4_pid - fi - if [ $client6_pid -ne 0 ]; then - kill -SIGUSR1 $client6_pid > /dev/null 2>&1 - fi - if [ $server6_pid -ne 0 ]; then - kill_wait $server6_pid - fi - if [ $server_evts_pid -ne 0 ]; then - kill_wait $server_evts_pid - fi - if [ $client_evts_pid -ne 0 ]; then - kill_wait $client_evts_pid - fi + local pid + for pid in $client4_pid $server4_pid $client6_pid $server6_pid\ + $server_evts_pid $client_evts_pid + do + kill_wait $pid + done + local netns for netns in "$ns1" "$ns2" ;do ip netns del "$netns" done =20 + rm -rf $file $client_evts $server_evts + stdbuf -o0 -e0 printf "Done\n" } =20 --=20 2.37.2