From nobody Thu May 16 12:55:24 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E3F653AC34 for ; Thu, 1 Feb 2024 03:51:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706759488; cv=none; b=bPmDu4/QRsQHk+Pc11uGeyni1SOrhD5Q+iHRRG/eG4I6lSRAix2VGxJ7PvKQHkcjKjZsp2rvij80UH59YOzVYgVNSDRgcAjKdXe8Sv/iR0Iv5VxRtGBan5+NrN46IDpfiqBpxFgzISrMwlD9ctxdNlMn2J/0M05MAAVV0RRADjg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706759488; c=relaxed/simple; bh=j38uX59mZzne+RTKkfxsSPM8FSRFWxzy3117B8D5coU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bPC+YV8oeV4Wn2L8Eu7ywOwLcRYxBsqgss5LaOvtMqUW8mCweUA5GkEECJ7pvZAhb0SJ6UG9FMQ7NPprTnkqYeSMPisvAdnYeMRtj8ZZUu2WcibJjoXI9k+kXUW67NhvuSQ+1WcCHWG+TfrFexYDedn4nm48Zr+7SmWoYWDk25M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MZS+cGil; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MZS+cGil" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BEEEC433F1; Thu, 1 Feb 2024 03:51:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1706759487; bh=j38uX59mZzne+RTKkfxsSPM8FSRFWxzy3117B8D5coU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MZS+cGilzrtn71kGrq8DOUganyv546n2t8rd5Qx5OMOYcDIPS23/M8o5lZfGqQ6I2 XPM88+Sk/cmwUK+moDoyD12wqFTisq/6Ux3ZfNc6H1a++sa0m27ak3Cfd8uzk9ViKs OFr+5g4rrxh/FHyxgy4xWCDZY/X6Af2C7OUs+zPktwKTcVClSEBZvUszecKbqf8Y7m kLaHXaWRWegGb1P0i5tCj7TBl0iwJIyVO8uzjqA49181i2zYLMttqyFhGMQLSbCldI he4u5JmM4scXkbLnMRmbCF53yJI1VSImdZcQuolmth08hi1PVvmmlSWGzFIbMz+V7o IDuDHBzT9V8ww== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-net 1/4] mptcp: add needs_id for userspace appending addr Date: Thu, 1 Feb 2024 11:51:15 +0800 Message-Id: <0d089da27becde2a0ff936dbbe856b2baf9bf710.1706759413.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang When userspace PM requires to create an ID 0 subflow in "userspace pm create id 0 subflow" test like this: userspace_pm_add_sf $ns2 10.0.3.2 0 An ID 1 subflow, in fact, is created. Since in mptcp_pm_nl_append_new_local_addr(), 'id 0' will be treated as no ID is set by userspace, and will allocate a new ID immediately: if (!e->addr.id) e->addr.id =3D find_next_zero_bit(pernet->id_bitmap, MPTCP_PM_MAX_ADDR_ID + 1, 1); To solve this issue, a new parameter needs_id is added for mptcp_userspace_pm_append_new_local_addr() to distinguish between whether userspace PM has set an ID 0 or whether userspace PM has not set any address. needs_id is true in mptcp_userspace_pm_get_local_id(), but false in mptcp_pm_nl_announce_doit() and mptcp_pm_nl_subflow_create_doit(). Fixes: e5ed101a6028 ("mptcp: userspace pm allow creating id 0 subflow") Signed-off-by: Geliang Tang Reviewed-by: Mat Martineau --- net/mptcp/pm_userspace.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index 4f3901d5b8ef..e582b3b2d174 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -26,7 +26,8 @@ void mptcp_free_local_addr_list(struct mptcp_sock *msk) } =20 static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk, - struct mptcp_pm_addr_entry *entry) + struct mptcp_pm_addr_entry *entry, + bool needs_id) { DECLARE_BITMAP(id_bitmap, MPTCP_PM_MAX_ADDR_ID + 1); struct mptcp_pm_addr_entry *match =3D NULL; @@ -41,7 +42,7 @@ static int mptcp_userspace_pm_append_new_local_addr(struc= t mptcp_sock *msk, spin_lock_bh(&msk->pm.lock); list_for_each_entry(e, &msk->pm.userspace_pm_local_addr_list, list) { addr_match =3D mptcp_addresses_equal(&e->addr, &entry->addr, true); - if (addr_match && entry->addr.id =3D=3D 0) + if (addr_match && entry->addr.id =3D=3D 0 && needs_id) entry->addr.id =3D e->addr.id; id_match =3D (e->addr.id =3D=3D entry->addr.id); if (addr_match && id_match) { @@ -64,7 +65,7 @@ static int mptcp_userspace_pm_append_new_local_addr(struc= t mptcp_sock *msk, } =20 *e =3D *entry; - if (!e->addr.id) + if (!e->addr.id && needs_id) e->addr.id =3D find_next_zero_bit(id_bitmap, MPTCP_PM_MAX_ADDR_ID + 1, 1); @@ -153,7 +154,7 @@ int mptcp_userspace_pm_get_local_id(struct mptcp_sock *= msk, if (new_entry.addr.port =3D=3D msk_sport) new_entry.addr.port =3D 0; =20 - return mptcp_userspace_pm_append_new_local_addr(msk, &new_entry); + return mptcp_userspace_pm_append_new_local_addr(msk, &new_entry, true); } =20 int mptcp_pm_nl_announce_doit(struct sk_buff *skb, struct genl_info *info) @@ -198,7 +199,7 @@ int mptcp_pm_nl_announce_doit(struct sk_buff *skb, stru= ct genl_info *info) goto announce_err; } =20 - err =3D mptcp_userspace_pm_append_new_local_addr(msk, &addr_val); + err =3D mptcp_userspace_pm_append_new_local_addr(msk, &addr_val, false); if (err < 0) { GENL_SET_ERR_MSG(info, "did not match address and id"); goto announce_err; @@ -378,7 +379,7 @@ int mptcp_pm_nl_subflow_create_doit(struct sk_buff *skb= , struct genl_info *info) } =20 local.addr =3D addr_l; - err =3D mptcp_userspace_pm_append_new_local_addr(msk, &local); + err =3D mptcp_userspace_pm_append_new_local_addr(msk, &local, false); if (err < 0) { GENL_SET_ERR_MSG(info, "did not match address and id"); goto create_err; --=20 2.40.1 From nobody Thu May 16 12:55:24 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 378FF3A8EE for ; Thu, 1 Feb 2024 03:51:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706759489; cv=none; b=YNZXrb3h/izzIGpAcS+Ap8/YPRK80ZUaMDJz8dnuxKAE+nQy2UvPkkMWpgyqndiznjkmGClo5pQZSoh5fsZbPoXPjmpeka0CCuNiMnDaT82yWfJWvrKBcF66SfKynsOlBj1EYC24ze16RelCSfn4jrkJTm0g3swqX53zBSNHQNY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706759489; c=relaxed/simple; bh=7OESp6ArYJsjUqUxtis2O8e5RzqLd2DDEiDxUFvDbQ0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Q7g6jdwff2LliP5x1pjKexzkmPOC8Ttv5/4uugXiGuB0/unoyx2h4WDbT8M/EnD7UrztjrCOgw1TuN1QCv6Uk6xC3REolOAw69f0nxy+cd4E9mMq+yl/nUAIh17uiBny/TBDlfZ5qS9w+spuYzk7cuf38Am+3n4b4UuEpCebTC0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XdNnBgXF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XdNnBgXF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DCC68C43390; Thu, 1 Feb 2024 03:51:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1706759488; bh=7OESp6ArYJsjUqUxtis2O8e5RzqLd2DDEiDxUFvDbQ0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XdNnBgXF9s0D4dEzpZbjkYs9OfvIHjWlhwGb5Ua9iyUM+DD+5lSjKD/ojl70Xy6Jb EgaDDCJLNxe/ZtldgnZyzUnPYbjNofvwYh1DLuQEzHGVJ59X3UYs+VhouzYDI7vinG kkFXEX9xgyxNPnKatAmcxLWoO4s2GzOHp43ZHgNkZ+8QKOoneSEfhY/qn3h77M4KeE /rs9ofejtUn7sKCFyfySbBtNBSjc00dif+jYgGI5Aw690aaMEhxhE1N+X2dUYjiYct dvvh+gV5Eq5mqC1vbgZJ3bwdIlzJo91hWZYHlukY1HzwXRcuX5M0ABkeWD/ChF/bUN youwgNinNEG3w== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-net 2/4] mptcp: add needs_id for netlink appending addr Date: Thu, 1 Feb 2024 11:51:16 +0800 Message-Id: <1d1970ac75aa9b924f1da17c3c89dcba96e5bb46.1706759413.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Just the same as userspace PM, a new parameter needs_id is added for in-kernel PM mptcp_pm_nl_append_new_local_addr() too. Add a new helper mptcp_pm_has_addr_attr_id() to check whether an address ID is set from PM or not. It will be used in the next two commits. In mptcp_pm_nl_get_local_id(), needs_id is always true, but in mptcp_pm_nl_add_addr_doit(), pass mptcp_pm_has_addr_attr_id() to needs_it. Fixes: fd5a4c04e18 ("mptcp: add the address ID assignment bitmap") Signed-off-by: Geliang Tang Reviewed-by: Mat Martineau --- net/mptcp/pm_netlink.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index d9ad45959219..9367ab506908 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -901,7 +901,8 @@ static void __mptcp_pm_release_addr_entry(struct mptcp_= pm_addr_entry *entry) } =20 static int mptcp_pm_nl_append_new_local_addr(struct pm_nl_pernet *pernet, - struct mptcp_pm_addr_entry *entry) + struct mptcp_pm_addr_entry *entry, + bool needs_id) { struct mptcp_pm_addr_entry *cur, *del_entry =3D NULL; unsigned int addr_max; @@ -949,7 +950,7 @@ static int mptcp_pm_nl_append_new_local_addr(struct pm_= nl_pernet *pernet, } } =20 - if (!entry->addr.id) { + if (!entry->addr.id && needs_id) { find_next: entry->addr.id =3D find_next_zero_bit(pernet->id_bitmap, MPTCP_PM_MAX_ADDR_ID + 1, @@ -960,7 +961,7 @@ static int mptcp_pm_nl_append_new_local_addr(struct pm_= nl_pernet *pernet, } } =20 - if (!entry->addr.id) + if (!entry->addr.id && needs_id) goto out; =20 __set_bit(entry->addr.id, pernet->id_bitmap); @@ -1092,7 +1093,7 @@ int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, = struct mptcp_addr_info *skc entry->ifindex =3D 0; entry->flags =3D MPTCP_PM_ADDR_FLAG_IMPLICIT; entry->lsk =3D NULL; - ret =3D mptcp_pm_nl_append_new_local_addr(pernet, entry); + ret =3D mptcp_pm_nl_append_new_local_addr(pernet, entry, true); if (ret < 0) kfree(entry); =20 @@ -1285,6 +1286,18 @@ static int mptcp_nl_add_subflow_or_signal_addr(struc= t net *net) return 0; } =20 +static bool mptcp_pm_has_addr_attr_id(const struct nlattr *attr, + struct genl_info *info) +{ + struct nlattr *tb[MPTCP_PM_ADDR_ATTR_MAX + 1]; + + if (!nla_parse_nested_deprecated(tb, MPTCP_PM_ADDR_ATTR_MAX, attr, + mptcp_pm_address_nl_policy, info->extack) && + tb[MPTCP_PM_ADDR_ATTR_ID]) + return true; + return false; +} + int mptcp_pm_nl_add_addr_doit(struct sk_buff *skb, struct genl_info *info) { struct nlattr *attr =3D info->attrs[MPTCP_PM_ENDPOINT_ADDR]; @@ -1326,7 +1339,8 @@ int mptcp_pm_nl_add_addr_doit(struct sk_buff *skb, st= ruct genl_info *info) goto out_free; } } - ret =3D mptcp_pm_nl_append_new_local_addr(pernet, entry); + ret =3D mptcp_pm_nl_append_new_local_addr(pernet, entry, + !mptcp_pm_has_addr_attr_id(attr, info)); if (ret < 0) { GENL_SET_ERR_MSG_FMT(info, "too many addresses or duplicate one: %d", re= t); goto out_free; --=20 2.40.1 From nobody Thu May 16 12:55:24 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8CC671DFF3 for ; Thu, 1 Feb 2024 03:51:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706759490; cv=none; b=d1YUcq8BB695UmGl88zwOyr45dl/8kJspc/fgqbZIsOof4GEKWSiKZXtvNE8ApCP5R1KZslLKEE63IXaeBuVmkY7hGirTFvVALnexu1+EwbX1rBDtcJQ2jxr5PXAT4fIqyxwGD/cg196veo54THbL4AuCIeYH9bwze6/vLkmJLQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706759490; c=relaxed/simple; bh=hnYBjXXQwPOjX21cOo/GguoDq08ls1+BTYVpns+F5aY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=AiwaqksRzEXdQ5Ak1Df2eADm1aVeKNkuo24+FHXHVzkwGEBn5yO/QvW9xtb0CkhkuLlxO8KqhbD0Fv7V7A2LC4ZkiaywlfKHck8F4wjSTZCMyEpGvf1qltGLe1+jVU2jC2UAiQp1wBbAkqbXuYJXoqSxE3lviQBbWk3gk+TDOes= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d9iOYlu0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d9iOYlu0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39C2CC433C7; Thu, 1 Feb 2024 03:51:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1706759490; bh=hnYBjXXQwPOjX21cOo/GguoDq08ls1+BTYVpns+F5aY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d9iOYlu0iHKZlABSGT9NIpsW8t2sHZS61bfdVMHAoas+iWSNtAHYifl/GsOLjLCkl gS8Aq16f4F11IOGdnK8bzz/ne62UXE5fNOQI2+MrcwKV/CgWFJChActa5vgTCND1sS Kytyz2AXL9KCGG38C5m0SK5dAxjV5csEwXdeGnDm17qQt+6fj8kN8rjW/hiHPJsiG9 eriPExwQooIXkQyiIhXQk/bAB6FgeWsXLVnLJOVnO+bTz88XSwxhTKpHCXU5N+hthK AROcyKilmH/hhjWgK+buvq3z86aRCKCeQ9jccGGujdyqzzXOTis5B9Gx7LtcUiyjNI jR9VwRXl3kxHg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-net 3/4] mptcp: map v4 address to v6 when destroying subflow Date: Thu, 1 Feb 2024 11:51:17 +0800 Message-Id: <978747717376e43b571aa264d31eec15f149ec1e.1706759413.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Address family of server side mismatches with that of client side, like in "userspace pm add & remove address" test: userspace_pm_add_addr $ns1 10.0.2.1 10 userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED That's because on the server side, the family is set to AF_INET6 and the v4 address is mapped in a v6 one. This patch fixes this issue. In mptcp_pm_nl_subflow_destroy_doit(), before checking local address family with remote address family, map an IPv4 address to an IPv6 address if the pair is a v4-mapped address. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/387 Fixes: 702c2f646d42 ("mptcp: netlink: allow userspace-driven subflow establ= ishment") Signed-off-by: Geliang Tang --- net/mptcp/pm_userspace.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index e582b3b2d174..b40a69649fe1 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -495,6 +495,16 @@ int mptcp_pm_nl_subflow_destroy_doit(struct sk_buff *s= kb, struct genl_info *info goto destroy_err; } =20 +#if IS_ENABLED(CONFIG_MPTCP_IPV6) + if (addr_l.family =3D=3D AF_INET && ipv6_addr_v4mapped(&addr_r.addr6)) { + ipv6_addr_set_v4mapped(addr_l.addr.s_addr, &addr_l.addr6); + addr_l.family =3D AF_INET6; + } + if (addr_r.family =3D=3D AF_INET && ipv6_addr_v4mapped(&addr_l.addr6)) { + ipv6_addr_set_v4mapped(addr_r.addr.s_addr, &addr_r.addr6); + addr_r.family =3D AF_INET6; + } +#endif if (addr_l.family !=3D addr_r.family) { GENL_SET_ERR_MSG(info, "address families do not match"); err =3D -EINVAL; --=20 2.40.1 From nobody Thu May 16 12:55:24 2024 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 55A8B3AC01 for ; Thu, 1 Feb 2024 03:51:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706759492; cv=none; b=MNIByBVxTuBAOeMAjRMlD7F3aSk60vIRm9SA6apRl0ORNqcY89U8Quub0BS5oyrhZsF+wDnUMFUSrhOeGezzKKCDvm0ZkfVs26h/22HrWz2MIGYhRdjOY17tJbw9yUoNeOWpVZc+KzzTSdamgUGftBL/ZMW6a5+4zHGkETDRHI4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706759492; c=relaxed/simple; bh=z0jPnPHmTKper5VM3qALvmkItjdEIIa+tsBzgqe0eZk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=XxQMwqnZW/r9OwmmSFD0MdgP8wqCyw+wg3EASQoAlykZ36qP0T5vgvcpeBR6/sPY3QBB0rTkpIlBJcUCrZpSSroJkXqD5si16NrzKMtLHoggSOuHzu6/oOUK8NXm4WN3b6mwJdmkgT5Argye6GsNjSSW1EZnm5ZEMghewmZ5+Ck= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UUmPRRoj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UUmPRRoj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B081C433F1; Thu, 1 Feb 2024 03:51:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1706759491; bh=z0jPnPHmTKper5VM3qALvmkItjdEIIa+tsBzgqe0eZk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UUmPRRojTMLniLBpy+dh9AOzrdnsClIhJzA/oswngquAJcB5q2gERTBiWt4LOMZb0 WRiX2QIfMyF0xyhwMeW56lBvLmsCjWR+aPS4hOsys7RxEYFNB7HZ3KSH8/HIskWa0j ExSEN6a++asUAplLMdkYSrzzTJ/foeKaOUsk540nefqgaog34goAO0PVZ/IkxNkMui JRa+HrNOnrzO2Jn0WP+6IGLr09uAvs+HInTLePw10oYv6unOwKm6prW9VRGMWXs26y 7yLD0xuD8tzjLnfLji1trGwlVDkHRxt24uDP/g0hcy4zoiyJiIQBB278JEymzlosaz 9mV40dm4ZDBeA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-net 4/4] selftests: mptcp: rm subflow with v4/v4mapped addr Date: Thu, 1 Feb 2024 11:51:18 +0800 Message-Id: <192be0c3c28b3fb8ab56ca0ac6b02c40d9153f8e.1706759413.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Now both a v4 address and a v4-mapped address are supported when destroying a userspace pm subflow, this patch adds random tests for both addresses. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/387 Fixes: 48d73f609dcc ("selftests: mptcp: update userspace pm addr tests") Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index c07386e21e0a..a3bdbc896c6f 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3333,12 +3333,13 @@ userspace_pm_rm_sf() { local evts=3D$evts_ns1 local t=3D${3:-1} - local ip=3D4 + local ip local tk da dp sp local cnt =20 [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 - if mptcp_lib_is_v6 $2; then ip=3D6; fi + [ -n "$(mptcp_lib_evts_get_info "saddr4" "$evts" $t)" ] && ip=3D4 + [ -n "$(mptcp_lib_evts_get_info "saddr6" "$evts" $t)" ] && ip=3D6 tk=3D$(mptcp_lib_evts_get_info token "$evts") da=3D$(mptcp_lib_evts_get_info "daddr$ip" "$evts" $t) dp=3D$(mptcp_lib_evts_get_info dport "$evts" $t) @@ -3441,7 +3442,11 @@ userspace_tests() chk_subflows_total 2 2 chk_mptcp_info add_addr_signal 1 add_addr_accepted 1 userspace_pm_rm_addr $ns1 10 - userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED + if [ $((RANDOM%2)) -eq 0 ]; then + userspace_pm_rm_sf $ns1 ::ffff:10.0.2.1 $SUB_ESTABLISHED + else + userspace_pm_rm_sf $ns1 10.0.2.1 $SUB_ESTABLISHED + fi chk_rm_nr 1 1 invert chk_mptcp_info subflows 0 subflows 0 chk_subflows_total 1 1 --=20 2.40.1