From nobody Tue May 7 07:02:05 2024 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.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 D0C10AD52 for ; Wed, 4 Jan 2023 17:15:56 +0000 (UTC) Received: by mail-ed1-f47.google.com with SMTP id c17so49413646edj.13 for ; Wed, 04 Jan 2023 09:15:56 -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=HamGpLsq8ll157ff4nPCjLRdSqIwhiC2bXOArgdnlGkXi8yTHVDvOIsly3h7ZXB2gg /UP2RbsHeDQwIMSjWk7sjJyyJYiF+5A98k9a4zPhqxRP81k1PKu62uBA7WwItITdgzoh cpJfOWPwk6JfN+OxzdECSyuMYPb2qYvUAqN14jDO3tq9Yjt3mrDQnaVAFlcBm8KQHb2C A6lPDMlfvTwEhqjlUcjWiRE2bODXwBSdmULLVGJENZ0mdxsc0Rlk4m3+K9xc+C6ddduc uUZ856g2OEC/8FQQlP9ubaetSMOp1dagAw3FsKF/IvxRCYyZf1O/CTH4j2xZxONkQob3 nHSg== 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=Ln7nq3ELv1/ax2Q+VtIE1LrPQtirsC1oCfQ2/cfYmcRTD4RxRzO95JVbe0bACaUMbG XSZRal8uOv3nXWfIZzp0KkyWNhp3Koce37znB+EKPfaF8iug1CntP1Uj8/pgM6ri7f6y aRMpYmXzfsKDBDn13qb1VWI5muBjh+Q7b0jEEsuzUd29gFLtzGkiS9jgwGlNDPCWBxS8 geTM1N46dOhsNGyFfAPD0y9yybEgQTAH7CmPniVVRHZDPnAUKJxkyTMGquT4TDKqN6g9 fohMK9G1rbjnSZE3UGoNstscA4kLBZcY/r/cnRY1Ej/ynDUGRPrD9Eq+4GrqkxIf6p97 oI3Q== X-Gm-Message-State: AFqh2krXZkH412y9wm4Kv0RHQ1VPL+1QPxdwALXiuTZCuYuXwLo+GaHn lsCYulDN+6U3P9SecdmmaoEf9FgOPPlph8rnBTA= X-Google-Smtp-Source: AMrXdXuvj4IN72S1M/A/9nNUpajbKFNKbiWopol6EgWmxcCCNqr2ARhpBhozdMBgwwBGAC4JkMgpXQ== X-Received: by 2002:a05:6402:1217:b0:461:e5d1:73c5 with SMTP id c23-20020a056402121700b00461e5d173c5mr37103803edw.32.1672852554889; Wed, 04 Jan 2023 09:15:54 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.15.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:15:54 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Paolo Abeni , Matthieu Baerts Subject: [PATCH mptcp-net v5 01/12] mptcp: explicitly specify sock family at subflow creation time Date: Wed, 4 Jan 2023 18:15:15 +0100 Message-Id: <20230104171526.1416746-2-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQHc1hsPJ40uIi91KDLtfepM+0LFk36Wa3QODeH bs3zbKuJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0BwAKCRD2t4JPQmmgc4FEEA C4/yYNbQ02whXcfLfCLcAyJPELa8T3YClu4TGUJawQMuhFeporNaRsGW7HC5lZRWxqRK6BfVNYnx5p 2d9avS2NAnl9rdiUYi+iDB5MQhn5sBnBt1YN+I7VynKLuZ/CDaItYkw/pJM3OhyADVuK8Zx3JyuliX Pavvnf7pATZt70A53epB0YpuA7d515wP8OGU+VMeC9hyhFrlHLlWUKKecfERF+1w9+pXlQXPcES0hs W4CXiXZWiiR4x12mnaHJlvfWFoKWzcsbDYUH6vPUFJLrxL3tQMcYFPZ83OX8+MM0cm3JZpMUlUdEyo 84cT2gl7QK4WYRRNjEDvwxerlHWr8BT2ytHGXjPr0x1VxBTd/aiK5T1SbiGYz1Lk7V6dHDobL59TPp nb0SUhcSRyOzPMsqC6LwIGJzrh81ItbvOnCHFyKWspal6wQKnN6KxjghljzMgCPmUytIkqOdlRzMTo OSPPgmREMGqs42eZi8oI2ad6z5+KhteB08amSso51j3sV3jqG8/zwVM1mpTRgjlR7oXHUrgDbHlveQ E+fGW+URXM3vDjrlUiOy+MubEoNfOJ6uwVd8H6WrvSZ1R/j8/yr2HECO63ReMyApZetSeJ7M78GbTi LEzZoy3LxIewPvnORt0t5rGaqdaSlOZqQOjYJJ1By8wvW1C5yeyhvvJPujxQ== 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 Reviewed-by: Mat Martineau --- 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 Tue May 7 07:02:05 2024 Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.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 63930AD53 for ; Wed, 4 Jan 2023 17:15:57 +0000 (UTC) Received: by mail-ed1-f46.google.com with SMTP id s5so49480463edc.12 for ; Wed, 04 Jan 2023 09:15:57 -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=MyBM6679GFfybRCkLJqvCSQQKrdRQeFiewhOr1JMMoc=; b=kA4EROhCyPoWb1qTjjiTq9OiOUWEx2rAvAH4DO79QErlyNyc2346OZARFcM875HqgN vVmogCRl6NgYIiZJ/WFaKvM5rrXr+q0qGlLwVS67+OvLBUkkGFSh0+maiJ+jRUzHzzLR C8HTGBh1YSRkRE53lzSqVlHSn8g2u+sPUYDY5jqHrg7MKoU2EslBg2MC9/8CDsNf9Krp kpJm5+veG7X3AkN+6G+STxALcwn3NfJ5e07TqDjn6tG/DMZtf9TH3/Gzc3Ar0lfmf9Wd Wsne/GGbPDOoy90rpD04AIZs21VhR3ty+1Oe5BtE0W4l4J0zqYhZ7OFGhTS3ZaMdkzMJ MH2Q== 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=MyBM6679GFfybRCkLJqvCSQQKrdRQeFiewhOr1JMMoc=; b=Y70GhQ3gDin+ApLws9uk0WC3Gvi7AzhYRz+VCpRp5Ja+aDdfkdoMhI8c90NtGcRAsx 1zjTO9QPbcjkNsg/S+R9BjFFJWLwONQMgZ0/S8tvgP3frWoHscHWhieyZNRcMUFRpjNp dHf4xu8PoIlXn+H9Ku/vrQiq3tw158lTo3fvL27BK9oqluMJIINi8/rbYJFQllzVpuU2 Es8T4dc1B3bLwozfkQZTnW1glFrwDo7j14Si4kLQ8ksxj36Q+iasBbhBZ/pIreth5PmS mUlaHbCuMoW0ZleHitGAKJT/KivfFvClgGiDyNSXEj6NOVmn56fAgPR59gHgviviuqYX nGLQ== X-Gm-Message-State: AFqh2kqgiNsI3E3wMwxlfPjboQxc0vIyS3WLa46sQryexj955eJg7sD1 JWulBJyfhYqtGM3/2gWyJNuFvvWsUK5f+6032JA= X-Google-Smtp-Source: AMrXdXsVw/xsVUyFqXbLqNbk282hYRC/ESZIntsaUBNuP7VwhLETzb9jhTLcKlQEtw1YlCdmkdiPKQ== X-Received: by 2002:aa7:d04d:0:b0:47d:b4e6:a631 with SMTP id n13-20020aa7d04d000000b0047db4e6a631mr41930286edo.7.1672852555474; Wed, 04 Jan 2023 09:15:55 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.15.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:15:55 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-net v5 02/12] mptcp: netlink: respect v4/v6-only sockets Date: Wed, 4 Jan 2023 18:15:16 +0100 Message-Id: <20230104171526.1416746-3-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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=4219; i=matthieu.baerts@tessares.net; h=from:subject; bh=qsWwAJBOfxLF5wyiKb7fnddtqML/5Rha0v2lKGRP2Ks=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQHstWObAbcukzQPUMqzT5yokcNmb3hB9AnTAPp jbJn14KJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0BwAKCRD2t4JPQmmgc7vTEA CHwpfwu4F2+lhzcTFdKHxJaIzt6Tt9sSQfAou6AQ+jyDCciAyYfnrU0ehxwRqbjjhqOa/KsE/DF6Mr FO0O+pX3sa7cUb5vnTdCK7mKuMf6MXd2CLYaK6MOE9th/D9jxDh0LkXBAA16GpQJYITSDhC7yBjFbB vnO4VFTk4/PjPc9mFL4G0JNLlQO1J1tdXIs/WPa+ZFxMPe7d+MhpdT8ngpP1+zzxFEC7LrZShu98C5 obJ3UnEOG63w4PpGuFa0BukQWdB9gvpvKP9IHm4Wv7pdFOlsSrbUvlP9QPN6AWdEW5sJc9MTS8jmVe mvwyGv9/5y0XVFIMyXo1aZZrlPCC6rwmV9SUnGT940DApHG1L1kdGTBVgmkQVThxn27x2Ocvb/LXta uuUIV2Sw4b8adbArfjfJ10kTPRPIcaxJa4B7xfg47wy0rW14IZSlFq3I8TYuGATZNL7/z7+3MK2tz1 KnrJ+0QX0aJeU+q5O9v9QI4uLU7uI5FlJRw/OziksJbvZwMIH7qj3QL4GtnW2FJNjBGIPwL8z8ApTM hviGjCmsMDMVfnr7jEQ3gOCmcVUM0sGCdDsTtGQQsu7R3ZEp+nlVApoMks3wrTamMKb3HruUxiFTE0 4aVwQoyiu3hyY8AH62YkBHzgowPlvwRFtsNHHr8ZT3bcjBXrMAEZYlddd1tA== 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 kernel side of userspace PM will also accept creating subflows with local and remote addresses having different families. Depending on the subflow socket's family, different behaviours are expected: - If AF_INET is forced with a v6 address, the kernel will take the last byte of the IP and try to connect to that: a new subflow is created but to a non expected address. - If AF_INET6 is forced with a v4 address, the kernel will try to connect to a v4 address (v4-mapped-v6). A -EBADF error from the connect() part is then expected. 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 Reviewed-by: Mat Martineau --- Notes: v4 -> v5: - fix typo (s/&&/=3D=3D/) in mptcp_pm_addr_families_match() without I= Pv6 support (Mat) - more details about the unexpected behaviour in the commit msg (Mat) 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..8e0cf6275e94 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 =3D=3D AF= _INET; +#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 Tue May 7 07:02:05 2024 Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45]) (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 50BDDAD54 for ; Wed, 4 Jan 2023 17:15:58 +0000 (UTC) Received: by mail-ed1-f45.google.com with SMTP id u28so44681793edd.10 for ; Wed, 04 Jan 2023 09:15:57 -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=e9Aku4X2C45KxqXED80ZhQ0TJgPz/k4KgSNj1Wgy4TsG0EIHKVm0bjrFn/Hx0CpP6v ivvfmln8mOmob2tpBaezTj+LaOxo40EPR0y2x4yB2yNjd+9RPhJpqxZNkacOQdcvjDBL 7q7CIObhPJJJjMs8y841S/tdPrFPFwlAFOH3jqnnWpbKnQ0S9w/Do0BRsNiGe/k7JK4Y E3YT05kBMqbUjsfSNUVSRpM54XlzBnq4XsTs6HD9Gba4H2ECWHvWbyfflEoaiJ+WkIQS STLdHs/u7Bc0KWj3wcm9+Fm2MXIEVdP7bbak18gP+Ik8jv2sYDKBbqAfov8km5YkIcwJ mhOA== 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=16cWg6pVqzj8Kil62060iHzzmXQYXHujP1z716DZwgeaujUw1KwJjS77kNoTAUOoOY dmxe38yJBXeLMLlepdSf57DGRrj3/Rz7FzIMncjBavknlS/i4gkqxzr8mj9IMMP4+Xgs cUe4empY++qj4lvL/KzFCvVxaMqtlsunIhshMgLgJjxS5mzf6uxsIZz5g6a6HjRvNEFb rwzDkqxEHytQ9ced3sxmA4YdWfB7tKFSv7YjLZ6EanjCMVRAPq/9cz4n7bD7G11jSPkw S6+GA5sYvRvX75Zbp6FKFSMAU2/gzy6tloBD5TmVwvD8QhPsP44tDsC8JNcu1l77wHcc dXWg== X-Gm-Message-State: AFqh2kpIv7J7WPstcBJ4rV5keKcvhvEYI4J8h1V9L5cywIMnB5PM8/nn sjVf9lm4AnkeVw/fNJf1nR+luMvaiMoK4vrkLZs= X-Google-Smtp-Source: AMrXdXvy/AtbbpD/kntx1ScODPb/jpH/SnqeTn/r+3D3yua+ZTwG0uEzW5IQGdwqDPMVtwmfHLe9Wg== X-Received: by 2002:a05:6402:2074:b0:48e:a97e:9f2d with SMTP id bd20-20020a056402207400b0048ea97e9f2dmr6798930edb.11.1672852556099; Wed, 04 Jan 2023 09:15:56 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.15.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:15:55 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-net v5 03/12] selftests: mptcp: userspace: validate v4-v6 subflows mix Date: Wed, 4 Jan 2023 18:15:17 +0100 Message-Id: <20230104171526.1416746-4-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQHqeU9rN6zHcQ7Q7UWA7LRvHLxLx6pOBXUAjBi Ydw4d26JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0BwAKCRD2t4JPQmmgc0fbD/ 4svjgAAWucfpDsJ7qNSksjtt2BMi44eNMsVPjlHnTp07tTSRbJN4oJ9g6wrZ5CanmUsMxJVVFkRVeX fy2RcQ3fkc1uAPYntTKApy0lkHOY8hn87wZe+X8XG0Qim6qHuqay18Fip43A394I0WG75UDJ82ioA2 jZIHzP6sYVxnpe5CI62ZRVJq5Mn/PGm/bXAEtzZeMMmr8hBccUxa8IdnnOCaMu6rQ6z01utTI9rV53 crnn8/V34aIZr1JWB/LSSDAsevHyjy6Vx6thSt58d9q7DZUDPIpMwkMfSRob4m1BZxm3J22EBOkacc EGPPDq/DTIt6abzBP7Pi95oMqVxhmuhnrlIWal3YvNkTeWp1mEqzD+ADGV/zthC6jW/2zN1XliNP+x xA1y4imhpLyIqIROKo0nrBggBzjexSNxFYcJbdHKHWXHBGY6aX27rZGPhV59oW0Nhy/F/v9rgt2hEu 7qJpkc91ZFKEj2NWyyEDCmXkGyKbFp2UKnKUKyFqpMuN+EZELso1e5CMRGF5kE7IkkypU2nEb/l8Ry 626T8V6J3g6dovHDByiICwcbEhf8a/7ZaOIV17V/ZWEEEr62Hs8LeZao4G0AoPIWKvGVvL5TehecJy Kl4Ae4176GDoBkDPP00qbGT2fIeeWhhGO2h+iQ3DB+ZkcmSuDOR56VnItRLg== 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 Reviewed-by: Mat Martineau --- .../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 Tue May 7 07:02:05 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 CB58CAD55 for ; Wed, 4 Jan 2023 17:15:58 +0000 (UTC) Received: by mail-ej1-f53.google.com with SMTP id fc4so84149798ejc.12 for ; Wed, 04 Jan 2023 09:15:58 -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=dDbEmyJEq5RfSoRGMGDDcdPM6wbU+5EYjhtXOX3CR0xipDdla0wDeyel8h4MtVOIAy kjwXxCb4kTPQtz11o5BQ8kP2M/32w5+xZlMSsQ5A60WKU80iHs7j69P8HHfAYnFsO5WI IikWXXo5lvGkQwCRf28CUSilZm+zcSgkeVXXkjD13zlfVv4Ykt5jBFt3djIVH1wzSFKh RulDRO2RFiADu6nyzFjYEBaJIl8u9vXEDJ4hmSjAQlnnpCVBk8UOoGZKGyDsLSwcfg5+ cytLv6083VDuQMO98P+auk5t6+vZAb1yfsKFcYElUZ4SBtO12+yYk9slZwotU6niGIgL +Ppg== 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=x/GefkJ/h/zGLfFE+ad/+FF83NUGl456+KvBGBMUysp/qgJiV477rwtIGry9Ao+uMd ty2YHwX8twYoREOK4dXt7Igf+EhLPfQIW6dzIvBgJP75v8HhkauJ2gKXkUMuZCmxuyrk NncR4/5i+t0VysMIsY2BICYU7wJJQzSQJmM5IGYEVIazIwNeH5H5jYIpAMFPOt0esvNI TNSlIlWQsTLjb24/GQ/ZXglVwPPiTXTUy43VbCEGEFjSQ6bb4oLkFh/PrQG5BUEb7ta7 5AH6Nh0+8UG8NPiGk1Zx0P/188pUlOG3Fd1HaxevCUTWqxApBFShclHBll308XCUnoAa Zufw== X-Gm-Message-State: AFqh2ko2wqixzMILpVw7KRUdQA3urcrYnfPObGfrhlxGWERK3fr6zqzU v7B044yv1tcRAbpKtyQqEqekJ49TwWXKEOYffrg= X-Google-Smtp-Source: AMrXdXuPH5nyB2fgKkpbFMAie5cp2UhkAKmCg6/R6AtB+AM7rE83i3mhfq3lccpN9J3SEk8cCb3cvg== X-Received: by 2002:a17:907:d601:b0:7c1:2d36:d11a with SMTP id wd1-20020a170907d60100b007c12d36d11amr46890433ejc.11.1672852556907; Wed, 04 Jan 2023 09:15:56 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.15.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:15:56 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Paolo Abeni , Matthieu Baerts Subject: [PATCH mptcp-next v5 04/12] mptcp: let the in-kernel PM use mixed IPv4 and IPv6 addresses Date: Wed, 4 Jan 2023 18:15:18 +0100 Message-Id: <20230104171526.1416746-5-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQHpM1oE+giBOmJ8py3SqUsjBASiJzO0F9PAm0P OC6/aAuJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0BwAKCRD2t4JPQmmgc2uKEA CzxXZGt6ofJAUa5MHWglIJ/XeTP5cDjRutGeWPWk1A9gms9FO21JdO6NbnDrxObOVCvXXOXarqQ0Dg nR5/uLsC16vdMbAdT8+uFyqQ6LO9WQi2dwmAOSV4+K3bZovM5flZgBD9Fcq51XAgKPNWODly8Yj1PP C44Vhy58U3NeoBv40jco/bpQc/n7dxMABVcO0UU4BaxKFMApo/O9K5fUCQfx8mncyCEkiKiKT44Iv1 HEGeLJ8V3sp/GXaWoHaJB6+Rq/pxM4f1x23lsCU67mW9pFTlUGxN337+k65BXsAX+m1XRf9nxZyhtt x+sTAJHk4jvGo6NXX92l53hFBtFQ7Q4Q7iJtru9/JGAUoi7hgQikOA7cMvNDvzVMmw6j1rScRjcE4F Gc7fI9tj1rsKAVMdlw7C/LiRV1X8ZQ8mBfvwq/ocAY54YViBdhZjUr7DMSUZbPZkSz21uQBpuZu962 9KCyg4pmg/HpwW0Z/D8KNIuOp8bjsG5A/rZOSjnD7LJiTfWgVV++6JBDo88WoNQo79i8ZexVnohVNi J9snVk1kRdjHIh61akO1PUMrsibToODoahi1Y+CUIQkp/fFIqvdQkWrDz5VIZOtxzZWzpRpCJV+C87 dXdMv+QJpDpIY/a0lhsDB5yHrOUXtWKcJLkQr36Yre4jZSrHG3JQRtLOqe3Q== 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 Reviewed-by: Mat Martineau --- 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 Tue May 7 07:02:05 2024 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.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 71D49AD52 for ; Wed, 4 Jan 2023 17:15:59 +0000 (UTC) Received: by mail-ed1-f51.google.com with SMTP id b88so42209408edf.6 for ; Wed, 04 Jan 2023 09:15:59 -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=3caR/m/7fiKLGYuSVFZbQBhz2g1lC1PEsQMNg2ilFMjO3ks6DFRqTvkVkw9LqAWxUK AINh9Fibl+yW3lORUTnv5OIZRNVpZeZM9/oMJJgVGP0KZURV7fYcNc0idwApa1eE9hHS KiKSWRO15Lcdfqk1JqX2j4DFKv8eqIa+Ofm+7VeIMqf3sv/eVjtLY/d1TRz7VfXT92f1 ELO/EyKWU0CX2mqBSYrfk7h+t3DjjJKyTenq/x29MSRsBzEsnaYV+q0kR5N77TSHidFM ZiMvo8B8eN5F3s1gWz9WLVi9zR0UYFqIdeDLiKCRBBVx3us/bg3A0DGsFmslbbkvt+4K t4yA== 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=gMf9fm2F190V/ahMYScwWfgd/MCkvy7bKYwU823q6biE+HJTpWkaEhKR5wqnxJdl0E v8rgWNuFXVdnsmOVvaDMlSslT3Sp/X0tuCzUCW/KgXRDnHT9I1WlKOKrA+/p0nR5LVp1 9VnLrHxMPtUvsh397WNjM5oa2cFjNLIjxy8AoDBKIjKGH7V6B8Wf5Xu3fmmAbfzTJqQt L5seBvXhPVS38cXt9TQawydfa8G2qxcb7O7/K91B6MrVxVrVwTJJQC7g7iQAIcPlOMr7 sX0HluNt3rAFKbEOuivesI7xitT7s7A9Jyv7aZJYf5wjDBgMwnGdKDkN+NxxG0maYR4G p+tQ== X-Gm-Message-State: AFqh2kpiPOxvpBVQj7lDDSgLDX7/LFo8oBt5oYzABpSOludjdmsnMGxq Yk8J72XoJF4bcDOiZkI2BpguJ9N3TqU1djF0sTw= X-Google-Smtp-Source: AMrXdXv+a31s1zwcgk9bYHCMCAHEftVDmZI8hepIuEYBMjlkptA3Z9SQHX5UKQEX7mQcervPpZ9xzA== X-Received: by 2002:aa7:d448:0:b0:467:b851:6066 with SMTP id q8-20020aa7d448000000b00467b8516066mr52654932edr.6.1672852557491; Wed, 04 Jan 2023 09:15:57 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.15.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:15:57 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v5 05/12] mptcp: propagate sk_ipv6only to subflows Date: Wed, 4 Jan 2023 18:15:19 +0100 Message-Id: <20230104171526.1416746-6-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQHR0xH4p4pVLmey+SRnwbbsIZ0WGxSsK61eWLt hTDcQo6JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0BwAKCRD2t4JPQmmgc6YhEA CZb2NGtrDpEVBY++jBWP3n+ahvrIyxUSozazzWrgjw8LiwMwQiNPUC8gVLEBcz3iZ3j6cwKpcm4i2O wJvQR4BhUDNmNuqwbMnm6LnRukSlKsLRE6f3x9bT5coUXCYbocMhNxi/DnZizxV/VPk0oBXvop1l5S DsFtUrMJAvPm4cYFYVE10Bf/XOwVzQPKOsbWgOb/lI8xzOsZ30AgLosqT3DZmwJfzr5L+bUGKiI/Xl VApWdynERKfWIBbNJec0Hz/SiRPHsvx3aJGwHnMnFFsx6yr1eEqGGbZBdLoGriV8hxRVodsudmq6lv MYvyXhtlG/2dGuODNem7ohgpISBbP0kJ5IvFi4aPCHwz/+qw+WtCb3O585LaqclEvR7pX3GhPQ01Ib pNLARhRvaK9Sc/+iC4TT4gfww5HbmzAkE996Wu4mnLSQ80rY0b1lhcdpRHFBRgOfZUoWJrHRgNTbAi 3YgYbRx8nITikYFpfZZsQF5yd+xt4swhTW7Y4lR0N0OX8Naw2bYpcOaaqU/6IkBpUpGcNOYcxo9x10 XViFJv1z1X3Fy6VWeE2aqrEKCBl98PtHUXaa4SVXwgxOsXE7G9xIyG6EuFFQFO+eoLVijEts6zPkNv YA2Gsz+D+igAaPRv69EGMvxQuMzu956FZ7EQoZV3anxXVXQqzPBMmI+p6G1Q== 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 Reviewed-by: Mat Martineau --- 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 Tue May 7 07:02:05 2024 Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.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 61356AD57 for ; Wed, 4 Jan 2023 17:16:00 +0000 (UTC) Received: by mail-ed1-f52.google.com with SMTP id i15so49578545edf.2 for ; Wed, 04 Jan 2023 09:16:00 -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=hdfgaw6yWUkoaSTZYoS5Zjt2BFTasse1Rb4vChB9rHzs3Ud3MnbSw+EWzrhDJ2rvpt g+xzcocYBpwyE00gsn/jczzHR0pfIGss5l1yIT57okzVOgWHmv/lDN03xm2oOP/TmqCm bt//KrKTZD3A2B+klSqAKRFFO6FzmY4+NrRcPGrj58TWS6bEDcdTfzGyhgRQ3vUmFo1D SLXX/o61HO0zapyaB7Qi2BAT+IlA18TcmFjf3VKqOoSYLQvw2JAJvvNkAKKOme7UJRXb UNyqxqpwJtI6cYZNgiNAky5FMjW5JPSpgM13xnjTUBi7ZZnnZMVkgHtsFRtpnxGzq4ZI EquA== 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=qZn3HyeQBLumbVDeZjEL85xIVT4xazhaUq3I9tw1eBPR1q9kLy65eIfAB2AmzdKy+1 WyqtHcz2EOwVAgWWj9dx25mR2NkzXsLbgjH0qQbFcId8Bw+z7Sqttg9QsVT8s2meKyjb IRq5BbCBU/HpbQ7DmDJUuT3SqR/PkMMAI/XGpe6V/UFQiGfNUo4HbNSfnUZ8mn3QOIbJ JicQQ1xzCGzRQpsEpg++nyLFhquBT1Nhb6+nEtaGwXlcf1EsPmBVxfuy07dMOKhpNQQf 58uWNzMOqM47cSdwEqrhLA+ZrtzGnJKTqA5gUDo4PcVFrWzK7uYKR8/CDqXO2JHrPmDf y52w== X-Gm-Message-State: AFqh2krAl9uNBAaFc1tpAcPqtX8ySh5X0rMTU97T6yYfPU0boXaT1YDh HHNdPI96Pt4Bx60t2ZhwXA/gCKhcHO1PvZ0GMUA= X-Google-Smtp-Source: AMrXdXuv0EQBafLWPbP1MEvOIujSR165JO6DbCBdoN9FKylBIM++07WmtJ0qCxkXztH9udVQxfRTRg== X-Received: by 2002:a05:6402:f05:b0:45c:834b:f28c with SMTP id i5-20020a0564020f0500b0045c834bf28cmr43531954eda.9.1672852558287; Wed, 04 Jan 2023 09:15:58 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.15.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:15:58 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Paolo Abeni , Matthieu Baerts Subject: [PATCH mptcp-next v5 06/12] selftests: mptcp: add test-cases for mixed v4/v6 subflows Date: Wed, 4 Jan 2023 18:15:20 +0100 Message-Id: <20230104171526.1416746-7-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQI/u9W3XrLYTL0rSfmiQqGD3i+cS34N+jOWwX+ +9eeMG2JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0CAAKCRD2t4JPQmmgc4YcEA Cbj8zq9Si72wYPpJ7lWeBWSAZ4l4BO1JZAxS0srtHZGmYZs5dLVbqoHr/3ltx8cIMRsot83oHIRZOM wMWe5y9/yybX1WIs+AuDs9/r+wZgybtozGAIzceBTap6OW9dGGJpqWP6E7Nl3cITzG7S+j1Fjc2/la mYJTa8VlKhRQuomHi1fUzLS2BNRFMQlClMQg/6ZW6dDnmugd7/TbhgM1KecmV2hW98mDbKEiz4PoxS 964jDTnaya5FxquX6ULyQjwOsBXmgsZtV54PVKRzbf25DGAYA9+8qXxAPYb6qilv5OPiKmlaZKgkAQ ChlSG/COHSeKHx63AvuU9twelmpq2aWzU/HsnK9b/F18UG1d+aba6LqvgUfNeoL+UjSgLIHQPiSTBp /cpDCBPaEv3gBx4hahlq5i7RRi5XWNvnR9mNhwhrJg2qkj8ZfsevtwV4GxpMsQjq6/g9CgesPt/jqB 8krqWkUfhkg1b2DHppsWBRBFRKWior42nM1UVXs05A7c4ABDVWHFqDmMljkab4BneO+DzEQxmVyxaL VrpCR5FfmPb1Cn9V5rIt5uTsBU8jcH/hDqbCokOzFqpx1POyK75pyQrGhbLB4Xut2hnxIw2V2nTf6A 8Rfwsz+RD6FQ6CnCJ6Mgl/dHhzfzRubZcr4TmunIHMeqIP1Or9ZBWPGoHtDQ== 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 Reviewed-by: Mat Martineau --- .../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 Tue May 7 07:02:05 2024 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.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 BF938AD55 for ; Wed, 4 Jan 2023 17:16:00 +0000 (UTC) Received: by mail-ed1-f47.google.com with SMTP id c34so42917184edf.0 for ; Wed, 04 Jan 2023 09:16:00 -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=M8MGYGDhrj9hUPus0aFmSok7kuENx1WCbKhd/f3swPgCFKThcqwyHqGH6QOsQ2oTvJ EwFRpwAJ/VCAMT4CtqcdritDySdJqoChBbe7GaqC2kMb0hG4wdL+kATWvrpjlExmSChx v92llnjuTu3gTEU672mjP8HgyCWgmomSLaDDZvNy/Hst6IjTrkV1gTv3oeO1fz44ZiGQ BTDhKOM08tTnzAjLG897aiC7Gd1HGVRP9z+se76zAg6a5V9iOFQavoVgADlOUj0rQfFA JtPHdOhNuvLHTPGdXNrZcf3A/Uff9WPYIvFawQBi8R3NRuP88mGnvJZSyGtOg34A4ajp e6zw== 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=knmZESVypgK4URwtr8edkri0LXJGmJl8wq+7zNA1PvXDbcNA+F6tef9uBpvk0ZU4PO FwrFhMdieC8levhzEYSuX4KBiikwImDqV7ix7ppjCYEo/capmLS8ghVBmO0nLwKY9QzU XIZYoPue4qe2c4bbD8232X7gVnxaHBYkNZLc8DGRDNxGdLyw2XeLf0VjxXlwWERmggdt db38cJ0aqN8eGmJR697dlsotK6e8kVfsTLNYYwsxlpkKsF4L122DLEOX4Q6ush+1RaG8 A0g7k4+uc/AWL5lEMvrlwpPeSV7y6Mpr4rpnWStylke+We61ULg9tsES6awV7wUrTRhE MmAw== X-Gm-Message-State: AFqh2kqtxyqs4+CccoWhsaMzKM+ndu2n/6Un9BIXkexQJ9Du4jJDKsqS 6i7HuT/CgkSt897DmmQexaM021sl4Eu3OW78s7c= X-Google-Smtp-Source: AMrXdXsbe6+xvNe9zibfi1m0hIZIneIruXZVF0bauI+ZE1KHItNXFOd2k7x6cuWZE0xCCic8iiqLgg== X-Received: by 2002:aa7:c69a:0:b0:461:aeeb:9ce1 with SMTP id n26-20020aa7c69a000000b00461aeeb9ce1mr40172699edq.32.1672852558863; Wed, 04 Jan 2023 09:15:58 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.15.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:15:58 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v5 07/12] mptcp: remove assigned but unused value Date: Wed, 4 Jan 2023 18:15:21 +0100 Message-Id: <20230104171526.1416746-8-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQIzdwNwhX5GIi12lg2zt1E/c6//XWQ04V9HwzN HqFhr5CJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0CAAKCRD2t4JPQmmgc/nOEA DPAX/fBkXtLtxuJElM067fNwt7SM40jeYwAcBMLYylDVF0EJa0+txyss2uIVolIfbLnSb0RmBQD+wF QwjbzLSKyToiXVaGbaiShOR87a/raEzVvCd+h68XXdnXgkTuph6jIW1c6cOxzQWEW+HXTO7C8CPiFZ kiEhvgjaybdKarZWTb2sfse737ZrKgLwhlnMQ8nP5KGUJwyhxCwrL7gshYsFmOUfdPCUPC8tO2MXMY kCTBDaCVjCfIHk5Q/89dzp3COQrnMwSNeXC/ZDiLXHZN+4ShGdCkC1oIvfkRqBZ3C2b3siEPHWfK/D 6erWOe5tAcgGU0cpzFplnAt0A93Xq2wUzfGqUIlFy6b4/DyX9AaEUnd74JKx8mcUw0pZ2uJ1jZpTaq f6lGX8plZdbnn5Vi/97/izXiE7qmFGnRTAfvvRDQBFrV6PyX0IaOc3ZXkF6EQPTmlLUwNmPVDAi8AL llOqysrP+1AaamgS+l30mt2+RcVqgdtLE4U7N7a9XfTOr12i1N2iVMRvBI4RTZoqkM+wvK5qDlUZpj ji0eBUCxckLFxoYpsS4gC1wNBq0uQsvdd3W/m9p35jHrAowa+E52XS3WbP6w8gFyDatHazBt9X5tB6 M+O7GlEbSNYbx5lFcC+arQ9NGWW2ptXyvGaaW5WywV71SCcCXeSGbpVq9aqg== 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 Reviewed-by: Mat Martineau --- 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 Tue May 7 07:02:05 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 8F9DEAD52 for ; Wed, 4 Jan 2023 17:16:01 +0000 (UTC) Received: by mail-ej1-f51.google.com with SMTP id fc4so84150159ejc.12 for ; Wed, 04 Jan 2023 09:16:01 -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=LCtgZWzhavy0ytKRZRFi3RzuEq4ufT2VVMA18RaQCpTFrnUSTs6LETmr/M561C7Hu4 bDzCijoELI6qeYIcn8Y2gvDCY0ZucnFPBiOhPtLO51xV3sMxn4EhHmrkuJp2uhOp/yZJ AjBlifNodIMQM6PJQJzOm68IWyuey8JSvPORB5Gy0pPLhzTLC5nlBoSEHzi419SO1uCr mJnIbWScxky0i8/E3CCxpbOE2F0KR+VKdhQQRfw/GFUDYI2KOmSPi8/DBxDam4vymySW zQeBNLaAYEuiKaCgv0cKyPy86I5pE5aj1xTK1VDYWn8UTv1ltVyu2cMxIumnSr4HjjuE fw+A== 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=pw2yLI36A6WcjxxPH40XIAQjB9JpLT/SG11QEwRWkPCKRb0s6E4avI39yPF721pVlM wo5xyJh2ySoYFKknxxFEtWNgqUVGCKPAthkSZC2cw9c5lWJSR9Qq14jUP2owgZHcL6Wn t6N7N2Frqw6C/BnMNR4p+9jhc2qDfgfQdgvy1wVeL2pw3N9seJy07P7T0pB1L2NptxWM LXAXHWzvwgvPmnJu5ENw8zYl7xOc/Ra0YXBKhXVJcN+3JZjxXh6ew5P2IqQXt0QUHBks noFPYADMHDSVckH7OSdFUZJVlx79hpRaiWfDB5xH3uuCWF/u+NJLILMtAneIBGgY4aM+ DHwA== X-Gm-Message-State: AFqh2ko2JdDvhO1MeHxgvgfWM8FZ4H8SH7X+2/MiYSVeayyxqhCb+Qo0 H+SYxUCWq/JEmykj50GWjk9ObKSKdv+qX7tlhwo= X-Google-Smtp-Source: AMrXdXvCXSLUi6gmndrwP6U7MWxByhL5GWNc77tU2ece/BFV4HzYjxQIClTUmXiZxi7knnK+irLK6A== X-Received: by 2002:a17:907:3e05:b0:84c:eca0:5f67 with SMTP id hp5-20020a1709073e0500b0084ceca05f67mr5683030ejc.54.1672852559653; Wed, 04 Jan 2023 09:15:59 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.15.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:15:59 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v5 08/12] mptcp: userspace pm: use a single point of exit Date: Wed, 4 Jan 2023 18:15:22 +0100 Message-Id: <20230104171526.1416746-9-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQIqFgL4NLpdLS1LTBJ9+x/e6ExedvLDzWRLObe Cf+N4dqJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0CAAKCRD2t4JPQmmgcz6iEA DTdYM+8bZ0GyTVlukTwlwnkBhEZMm57KcUQRORK5Y532VvPNqE1G6MBmpF9/+4aHmVrkYo+9Z5EQTl gY19scPMGqdO8TRCKkSD5CC49oj7Za6mzkOxYkeePs6cH/NAHojmiQPos2071vHoswqdULLNqIlHCo fkXinApBHVccxaRj/QRTKXCJcWMTdj6uLJ/UOU0DusXFIvbC+dn71/tl/15GJqPCtfkVP028/U6YcB oF0vLYoL0v73C4Z0vdtD9u9xv/KyAYYkIXoQ/IC5MsvWsRbTKEfaulgyRLXhgxQWrK/8LnLVKfDvDp WhMG7M8KDSnsTbJUZZ5B2jnSjAeYIqIYkEPrh7kBlNPnhRgtOm5vmTLH9Rgv2NGET78awLWXoQHV+6 TFkceDbrANSeYDYkdsrjtIXjzTwV0kfWVhb26blpaiaHVgv7ThuhsVRWVlgSBncuZYgIB1JIvLWDVH ukV5oRWh5Z4SZ57XVZL7yp7t5RTnqOM5G+SABO0O5dfBNnQ6nlI9w6Ut0CvQJDwpTfoNnER6/Gxa/9 cc/pSRdTiNSo5KNpBJihVaUutyQiAOloaRhH/8Ie2YspOPeEDC0uLpAvsnbxpW8uAdxar8CS5p57Dv tH1jV/fErg73IZ5bVxEsiU6hp9NWUB0jv1qe0X1Jpt/KyrK7KNKUX+bIIV1Q== 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 Reviewed-by: Mat Martineau --- 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 Tue May 7 07:02:05 2024 Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.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 ED084AD59 for ; Wed, 4 Jan 2023 17:16:00 +0000 (UTC) Received: by mail-ed1-f46.google.com with SMTP id s5so49480826edc.12 for ; Wed, 04 Jan 2023 09:16:00 -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=V7MORkvtldbrV6cT2PmJbfWqEL2h02hdiQFoZRTgbPddbRQ/QmAmQJyje80D/iFYZE Tvyz9h7LZmsQ4iH7FuIfIsCM5gU19/Jw/ftHov/O3LMlcD6K3pGyIkIKqwQRybb6Lcq+ iFZAmk5qC9DPJysFQ9sqxcUCw5Fw2IljtosFH3pyJzLeLatZ/nJJYnjck8Er0EPoQb/O dJ8OVpskmp1/QXkXiujpqkONSVzDAExGMxYxf7uHie22b8tzTVMV83JDT0FKGiZjpwth ZGxXo/xNW4RPUTOesXLAIeSezQq8O+aIJk54Q61q0JOJH+WOkzcyKeE1P2iWG6mFnM9z mtVQ== 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=Y4LuQZmTwyxiPXAqjkMuFAaovecW3sBK1+L+ZBEa5YrLguiptQeLc4L+Qs1CmswCBp GoIQ3s/sVG9g6RBDoo9fWshecXIxegLCFPNm4c9C8vE4rjGAcJA6zsTJT1KCT3ghZgKF LfqEe8boVmc3K3ev0k1291nai1ZqiJv5atVawsfiFEnWTVNg85I0okxFXpl4Jn+IUS24 pIqK+ljtWqR54YxM99rA0xRTQ2uf3GuaoHyBk6q/DEqXC6FThQp5TquJsbVk7guwtWjr IMqp4ALZIipS+UrD6XI5Mkz22Lv2Al3EUMflHwEupoUTS24SWU0MzbBekoHgZWpv68Tw KI2g== X-Gm-Message-State: AFqh2kpgDqjAxtxCJBSHB19zdnpCkv7V8ePH01hWcwI+R07PvPNRgK9A CPs2tK9po9Y97vaX8IfPh2be7ahOywd9vmkUqDE= X-Google-Smtp-Source: AMrXdXu/bYcbQd0MBxaksmUw8p2k9GCvXeXV64hMJcIymi36yg8vgEtz7qNM2K0AquimBJ2VTsjosg== X-Received: by 2002:aa7:d689:0:b0:46c:3f90:f5d9 with SMTP id d9-20020aa7d689000000b0046c3f90f5d9mr41496266edr.5.1672852560317; Wed, 04 Jan 2023 09:16:00 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.15.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:15:59 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v5 09/12] selftests: mptcp: userspace: print titles Date: Wed, 4 Jan 2023 18:15:23 +0100 Message-Id: <20230104171526.1416746-10-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQIRLHwMAfsnmaWyMo8L7biigvp7cf2bLozce9Z z6d0+xKJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0CAAKCRD2t4JPQmmgc09ZD/ 42vSe/qU++c5mqYpBtMx6RlvZyrwB/GD0HNykfOf9G47Ks/ZouZBz6zi4bYbBvH243wjThml7oFt0l 7JFVb8JWs0F0XHoi4rQXgV6FJ7YELq2NJTrh7Btq+F1aYUVyIpPbx4dDKZYiH6LbhRhBi3aIWKIUMx 1rBEOWqUMqL04hL8bAlAWKa/zXS5ytVuBCvAG3+4g33WOxoVCBBTvSmHF3mh/2Z8Pgtvtd60UPJm1T zm0rbV7O8/RQ230S8XYZ229pR+e1Ydj0HDD9tSjcc0BcCb2oG8PVRaN+ZQl6dofPyxLs4XBAIPjHyu eQ1mKZMJbtw+FwEt8b0QkHU53zVCvBoVoxh3dl7p8O9/ONRqqvU+VxSEm2QWvHYuHqYJB4L6n9Od6z J4GivRhFBsR5m3jfgWkw3hSw7gmqAHx0HXRdNB1I3GIyf25/lgfCBoyRVO0kuXILo4d94uVO43ZBDL cSGrw7ZrhveofwkGDoaS4QKMV68Fho3q9QhTj3X9bj0hJSTh7jL5z8113y6Eva8pjGFFhQzGNxhzBj WFV/IUb/a85PRUVQcy236a4YpG5W/oXKjHsP1Z2w+Aqi/PkfGYpnzCAUQM+o04AhpdgoP9D4mW7ErI 8jcff29v5nN2AN3LXel+w6NSaRGg4nEDOokOtBVrTqMDkN60r5972ezFrhBA== 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 Reviewed-by: Mat Martineau --- 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 Tue May 7 07:02:05 2024 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.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 F358EA4A for ; Wed, 4 Jan 2023 17:16:02 +0000 (UTC) Received: by mail-ed1-f43.google.com with SMTP id i9so49471172edj.4 for ; Wed, 04 Jan 2023 09:16:02 -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=ykcK8oLECEUEtxW+A4h+ziCVqMUKRBV5ZyUGec1LhZdfqyKayxQcLkUz2odLy/UIva 5rjFgI8rb2LhhP9F6Z27fKSb3c38f78xhrrVnljtMPasWmc1khaiGT0X1fggASzh3NCm r/SIz7WCuvVSB7Dksqz5iIkIhHaa2Gsj9oLBHN9UTpVo2rQjMsGxwlU2jCvRwXlCiujP LGOxcRC2PwlwDC9HEqmqANilEfuRQZKapAe9jMejN+is8MXkNHtDHBbvkeoU7Ar9YM+C JSIzR9H1hHKWPQIVTLaPe7tx1FzQoFkiM/V3s889wlMrdTbzSvjEf6ibNlR+j9LMqmNj BXIQ== 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=MmBTivYANveEGXxuYMSPevtyuE7uzBRbdCzaFWXSopVuYLteLDC5m713rb6JSfM+tW TL0bts0yS4qUluDnIuw7T+7RBm5a8N2ebMxRQN0/D3JhWOp/wbZwytrltkv0N4C79fSz Qlf5ApJ6gtaxZMfevl7TCqlUz1UQ1XV3N+E/pL8dPfSRZV8Kfkn0TqgWyem8tSh28FyI lnO4CLV/FF4HHLYkxxqMmjDpeMfDnXAGG2/I1ZyN+telxgZDPRoS4kmkkGsYwlkX9VKb 9bwKnlSLCM5YPaDrEi8OWDIAu94LYVEut5FZtqftlmlUal3/oqahT5JJARJ+8rpBamXi KVPg== X-Gm-Message-State: AFqh2kqo8vekZntkBRORVQF+0m/W456A18BpTGt2iBYvi1qZ5BZe/xtn /bSjZ4EpHIyf0W45T+p5Nt8t/4Lu9wqxyNc3cWQ= X-Google-Smtp-Source: AMrXdXuUj71Qv1oY1UcYVqBlC1PfRzc4wjF0kOieC5RZMy5FAQUURD6+250six2CJBMBCoYvjYBsUg== X-Received: by 2002:aa7:da5a:0:b0:48e:f12a:2986 with SMTP id w26-20020aa7da5a000000b0048ef12a2986mr3520144eds.14.1672852561072; Wed, 04 Jan 2023 09:16:01 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.16.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:16:00 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v5 10/12] selftests: mptcp: userspace: refactor asserts Date: Wed, 4 Jan 2023 18:15:24 +0100 Message-Id: <20230104171526.1416746-11-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQIas0W5dDXxbQ4x96m34zESntwoRlmPRbqg4Ye COC9rKiJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0CAAKCRD2t4JPQmmgc2JPEA C+V87PzIupZJx+P1z2dlJMtUPAV+zkRgKVpXalDcEynyf1SmPBlwCtk2ejSLsCu78z33DbOXt6V3dj Xz6ITJyXn09hbgvYQEz8BcNa0XEcdbee9tyD4WFhXag9+tyxLw3zzSuZkdRYxZxOttzju4IaJMA+ZZ JHApNuEy3utxF3LS6MEBC+GqPOQhnxETe3Bp0RlM5SLhwnVBUgf4ZRpsJV61Fd/40d9TVqERRvHj7A h9wuo71rs8SSevNqe/t9I4Koox1lqNWyAreXO5Z6Ku9hztW9GWXjf4mFEA5bVVsCtukEbCdoCtgCn1 /GNUXeEqkMNsc3Co94tpRVg6bBRDjFMyYIfLVDKj8YwJoUY4WFSDvDo7Woe+pZ3K95+RnqJ8MFKBs8 rwdkZfKzZKYedC5H/vwTZHBinnZ6tCobxqpauaD+h+AvvmCQuEWOBRTUGbkzD1hlvpGb2TeGhRNSqb U7bO/FShwaeqrtsby7egKhDDBxkic7nqb8qTdpq4grmYODZXC/jqOxPwoe+a6BiDgoaEF/Vqp9NgKR uz7aDIVuU41V3gJjks7Lcvo6jNC8Tn8vNN16IDvREblcXYtLftqc9s3gpX6dBg/dRiE4hVDkItX8ci Xj95HxjX0lUFQ7vgACuavOIcuME2BJveQsbVylHkZ3QU/Cuq84dSxKiil/ew== 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 Reviewed-by: Mat Martineau --- .../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 Tue May 7 07:02:05 2024 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.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 90C84AD54 for ; Wed, 4 Jan 2023 17:16:03 +0000 (UTC) Received: by mail-ed1-f47.google.com with SMTP id j16so16949725edw.11 for ; Wed, 04 Jan 2023 09:16:03 -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=N8tmmXMilGorUJF1d1+CSJE+BjqSI/aa+1izv7iohp7VJmX7fOZL1y2WGKzdig7042 MVlTfrEdhwuJYJ3g4qeHawUB0F30UgO9VMTIaLKQ/CpxBxWqKxnOm81LvVnsYS0hFvRu M9nnW+BNolMMUhVSXAuL3NicB92MgpS+GnY+9PviEyKxP+PXjIvZTBm1F4PeyOKh2YkX c9SQencMjUuTN7kLrbWgkbCLn4cOQMkjp+WpyC2pcqIsc7OxcioSPkilcrJ5/NcGdqJc mI3Ll+vbtr1OoNSmSF8CE9FLpxF3Lm7U/S9nis1Twsx2T1Fy9QdLLearCznox3IFHkeO wDyw== 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=SOhm9wgJbFQ+g0f95FLlqF9d90v0LkR3KMQVdCVju88W2lk1FE1kBCL/g/pcYxshHH mCk2/ZMYrt1EfnFdwumD4cjY8tqMc0CgHw4/XO1cS1NAqFOTe+Hf0AJ1AA0FLddzFhL2 pxNcOi1PyHDQ25hiTH6J09XpRgIMoDpjfYinqu/oyd+qLQnIdnyPwFlERTUeAD0ZNwG1 PFwGtOHqfAPp32ye925TsMTole25R5tBFwGRdIcMeNRmg2bZmNEsU0ZuH+lWmeD7pgIS EJ6/Uz9ofZP8hGmbMvPIVyYIliKQEFoeBWwul5oOL6TAtYtnd2ExNSa+xXMRel3m9kvf glSQ== X-Gm-Message-State: AFqh2krn4oo7mYJQFU7uiN22FoqjEVWOQKf1RvTbAsXTB8q+5yfdm0Kz E1nO16YEXQUvajwatqlBs6BxS3YoDV6oH8DJBx4= X-Google-Smtp-Source: AMrXdXuu42xdwXSb9sdgsuzI6f3fOFwoNtYdwkGlSDreqPBUxm9R2ChUXFfpM9OqQ7Gz5l/rXYSEmw== X-Received: by 2002:aa7:d601:0:b0:483:87cb:a5df with SMTP id c1-20020aa7d601000000b0048387cba5dfmr28985691edr.30.1672852561660; Wed, 04 Jan 2023 09:16:01 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.16.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:16:01 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v5 11/12] selftests: mptcp: userspace: print error details if any Date: Wed, 4 Jan 2023 18:15:25 +0100 Message-Id: <20230104171526.1416746-12-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQIK85ERLHf1zKKOY6N5xQQkTcCFBUQhZd6hU0e A6EQ49aJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0CAAKCRD2t4JPQmmgcwcGEA DKLf1Hh0x+KPhb05s6UMrC+kfznWW4s9XckDc5w88AHW27KZHWdun2NIqGdqqRwnQ4wFabPEXxduCQ 46YLQVTeioFnBOjz+kbC2IuOrHR2DzwWnMNds+7Tik83G+bjXKZ69HhMs4OaM4tOvj33fdqvE04A/O FGFgMyBsB1+1dsSLU1h/tXPm9b2ZdK/4IIq382tdbqzcZ/1thc4sTCYg0lRlo+u7rzxamMJm3sFk3J 1cv3bSQ//SWsajO8uNSPl7HHTmND4Bq4FyVNocVA7UH1My6LXFaYmKEc/aMuLv97Ezvc4kGiQzwVAI 5Pn3c4H/pSMQRv1ns5PARQVzcPstM6BAavsdK7efVnEoP+wKav8pn34n0w56Yh9mUSwJGxh7LYSjY8 JDOhBaiSTPfwJsbjtHLRNFA7NuEefiWK5Z9i9QplmdE74y7frMed1TRVMszzNBtfCdhflxLetrjyr3 +Kv9R3hVfslgvYI4kpiISqXxrJgHg0Tp0TSo0ZNfBNZhPqrOxgQfP7dXhsfxtpM0hqkHWQmIVByoxs r4GP5kv1ViEceUyPOLEJ0Su4Kivl0Ea6WH2VQ0VUgcfMnyPodea7IKVIyGbNGRgfiLxQORvrobvJ1Y YhfDQxUakBp11b4sU3BBA673g9HiF3QyVGLemnzq3dI6q1U6Fh0bNldvGliA== 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 Reviewed-by: Mat Martineau --- .../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 Tue May 7 07:02:05 2024 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.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 15146AD55 for ; Wed, 4 Jan 2023 17:16:03 +0000 (UTC) Received: by mail-ed1-f51.google.com with SMTP id b88so42209811edf.6 for ; Wed, 04 Jan 2023 09:16:02 -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=vYG0695Zx0eNdfDrvEm431Hb3w2Q2yYkEDRU1jpQeUD932fJfK/KHQpkd9Nd0fMOqt 8eOGYQrUfrGYSq0QXaL1bMhZbxm5BTMKA0bxXotI/+dd8RwwHPl6qn0EJTywt3+vnOOm 8pXIRzPvimDwyYJy66R1xSVjO6K4vM/9pV1GJidXzYp2AwFwA3VaKjHq/R7K1kzZeCXh zLhorMs+MbFGA2tjSWJs0xarZBhiyLCosyiNTzmPlLGSmYDsz/HsZ0E3clIiTv7FmFmR h6i6NMC+Ga0hrXrg6dHIfKxwAHOzpG8XlzsUinz0wk+4UYz8b02oT34iyAW2IPV3CNRy no9g== 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=Y574XV7AY1cbBiXxQ8JXeWXgHHDCL1ufJPgKtAtIWtTKi89fCZ8A+i7cBpZ0xHIwmC SsdbIF4u8U05GbUeXliSch0vLeDPWcTkFGbISbII7eAY/z+b+LOd0MTyDa7C68aHjuEg cD+CEiasObr4Pu2mCTJjJu6/OA3/S3SWnKdkvQufEa46T1unQLDf/St6vItoM9hbcLSo BlYmZY4HnjRltfVuEG6JytYeMxhdeTiYKbf8A79imUUKhEw93KMR2rkD9SvsMiCKuPX2 JG1VAMbo5wyGx82FugTkePJlQaHrnTPfM/XjkjUu+xkluPFw9y9fM9wE5PUSsXQirFLA LlnA== X-Gm-Message-State: AFqh2kroXBZpbYZi2Uzmn2hbuYCj91QIi+tuw1BXLuVwXFp4qrjI7Ycf Mmx14qBnKpcErzWP+PS/nz0fvYF1nUvmZjgZwbU= X-Google-Smtp-Source: AMrXdXug+dZVebw5PUN4HYjCYaqP22Tko+klv1+IVjlLiBgdvF3aQVR7y6okLoZR8uWCduu7RyxJ6A== X-Received: by 2002:aa7:cb4b:0:b0:491:3a5c:6e2 with SMTP id w11-20020aa7cb4b000000b004913a5c06e2mr547122edt.5.1672852562433; Wed, 04 Jan 2023 09:16:02 -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 m11-20020a50cc0b000000b00487fc51c532sm9258074edi.33.2023.01.04.09.16.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jan 2023 09:16:02 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v5 12/12] selftests: mptcp: userspace: avoid read errors Date: Wed, 4 Jan 2023 18:15:26 +0100 Message-Id: <20230104171526.1416746-13-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20230104171526.1416746-1-matthieu.baerts@tessares.net> References: <20230104171526.1416746-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/ZANAwAIAfa3gk9CaaBzAcsmYgBjtbQIcxyi6f2f9eDjRxyGAWuZ1HNAmTZYz3tkM20t xLGCznWJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY7W0CAAKCRD2t4JPQmmgc4gUD/ 9+Ft+d1kXzaqGMv//92XNaQlnzuqfjaiZFfvmKykv9bsqvjQ1ftqh0ldw8YOjPF2F9JwSwocoEDS8R bRmpUNxwlECKGTWasZdQR2dYsrgCJom3Fg8/H1+oXA/AkS3Im8rLjWNsJdIPR0jOta3MwnyCegzPgR EsvY48vPPm377ZdaYKopiGjSR5u5Xxmdbl7heL/ID/NVvX8kjxaO08+LrUqLlD5BwrRCrTe7inSfE9 nReuFJJwOQdqmsIvWx6Dppp0Z62TcUZs/y6t8G4PDrZLgSwP2ahp47zoJMkBnNCtaiCcl96WIjVlSU 7rMx/8SLy7bx5yb7QLnhgzv1qGrkdgp55lp+8xASHd/Xnpws9Y2UDmWIfLN5v7K0XfMnvayekc7J1g 3Xc6eGNbyQUHJbP30ePGY9K+6YHbCPtMUYGxGf0hdNZ5nfYQ965dtu2Xk3E0a648hQvBc39ULyODfz zM8y0oINP0I5jit43MGTMQWBtBNoaQ6QX6TCFEYy6ts0r+7VY+14xfzofLktdH+EjWFsUY41cXkgQR wd5zbq7LNBykDXd+vu3z9eViT7XA9cnA4a1chq+wInEmThlE0IV9f2sjEC//+1ji7QdflLSauTcs6i bGYLfNEm/BgR6Qoqg0y6ctLSB7Wfww7DUs1Ngp+0Q9ZuyWVjoUvkQRtImYYw== 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 Reviewed-by: Mat Martineau --- .../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