From patchwork Wed Dec 16 09:40:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 1416976 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.01.org (client-ip=2001:19d0:306:5::1; helo=ml01.01.org; envelope-from=mptcp-bounces@lists.01.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=bfAmoozN; dkim-atps=neutral Received: from ml01.01.org (ml01.01.org [IPv6:2001:19d0:306:5::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Cwqqj1K8wz9sRR for ; Wed, 16 Dec 2020 20:40:33 +1100 (AEDT) Received: from ml01.vlan13.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id C4FA8100EC1F7; Wed, 16 Dec 2020 01:40:30 -0800 (PST) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::529; helo=mail-pg1-x529.google.com; envelope-from=geliangtang@gmail.com; receiver= Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 156AD100EC1E7 for ; Wed, 16 Dec 2020 01:40:28 -0800 (PST) Received: by mail-pg1-x529.google.com with SMTP id f17so17241436pge.6 for ; Wed, 16 Dec 2020 01:40:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2eAdLXV1vHmxWe/uZVEiYnRgiH+Wxn7hjL5XE3By8L8=; b=bfAmoozNHasX8RPWwumLdaZz8yv/1YhDhzF4vNFqgQwKSPhCSdWc3TzXLkdoKcjwOG 80dl4yP32N08uTgacTLQIvIq5OFO/4tv3SU+zQNVwrOvvgpG7R6xnO86e9Yml+PXcz2Q cff/zFL5D5C896whIqYjJfGljQK67vWcrUhHe7yYU8p14hSSifM8H29ZxUab4y8dMwuU FlPEIIu1nHStriTZTR5edKUEV+fOS9pRM6Lw3CsV8phiHfSxpivWHnl3KmX59Vr1BwcU UWMjaljL175mizm7vMM4Vp0e1NeQTEIbiNPqzUrDCsKX7WSjxi7eqgi4tsCM0iIRu3N8 X2xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2eAdLXV1vHmxWe/uZVEiYnRgiH+Wxn7hjL5XE3By8L8=; b=TBJWH+m51f7SoJlzIsz2ZSiygaaP+GZBJqSkvDGZL1gRDjRRV4m4VK+8rJr/UhiVdn rFpyxx0Fcsw5+2Xi/3u5pDL3irVYKinkPnfOLhuFvpQC9Nmv/8EuwxY+uzF8Dy8x4PLQ JdmRIt0CLfObfOVIQSJUokYlFrl7YXLinMmJykKTk+Z7DYiPM323wYQcTzClUARNQVoC BdOdzBwz/BwJJfVYxeYicHkUczoDtYfh88+AWIidM9OeLgCySSwlnEbJeMO6+TWgq7G1 QosKDh1cCfkVKIDtfxkVoaiIP1+LpmWso3eVDXoUe78GMpMnw/QZ4XXl8uLFxUH6IYyW 31zw== X-Gm-Message-State: AOAM532nmLTCnE4tgU52RyZ4TnOBkqWCE+DPWkY9H10aWmCmN6csoUqU DSPBWK3gJGyXTAeY8ib731YiO4HssOM91A== X-Google-Smtp-Source: ABdhPJyhDumzwsU7602H6p5czHq/Kmzf9/ieihOZfTNw2HwZxOUjwu1QAg2rmgqdIIYDYevB71Ct3A== X-Received: by 2002:a05:6a00:7c5:b029:19e:2965:7a6 with SMTP id n5-20020a056a0007c5b029019e296507a6mr2207785pfu.60.1608111627287; Wed, 16 Dec 2020 01:40:27 -0800 (PST) Received: from localhost ([43.224.245.180]) by smtp.gmail.com with ESMTPSA id x5sm1514554pjr.38.2020.12.16.01.40.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 01:40:26 -0800 (PST) From: Geliang Tang To: mptcp@lists.01.org Date: Wed, 16 Dec 2020 17:40:13 +0800 Message-Id: <73d430a234a018dbef408242b1b40461e96dfb91.1608111058.git.geliangtang@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: References: MIME-Version: 1.0 Message-ID-Hash: UKIQ3VAZIT6W3HRF7FMR3DP6U4GBEJQY X-Message-ID-Hash: UKIQ3VAZIT6W3HRF7FMR3DP6U4GBEJQY X-MailFrom: geliangtang@gmail.com X-Mailman-Rule-Hits: member-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address CC: Geliang Tang X-Mailman-Version: 3.1.1 Precedence: list Subject: [MPTCP] [MPTCP][PATCH mptcp-next 1/3] mptcp: create subflow or signal addr for newly added address List-Id: Discussions regarding MPTCP upstreaming Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Currently, when a new MPTCP endpoint is added, the existing MPTCP sockets are not affected. This patch implemented a new function mptcp_nl_add_subflow_or_signal_addr, invoked when an address is added from PM netlink. This function traversed the MPTCP sockets list and invoked mptcp_pm_create_subflow_or_signal_addr to try to create a subflow or signal an address for the newly added address, if local constraint allows that. Signed-off-by: Geliang Tang --- net/mptcp/pm_netlink.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 987e83cdee11..2614d3e80ab6 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -883,6 +883,41 @@ static struct pm_nl_pernet *genl_info_pm_nl(struct genl_info *info) return net_generic(genl_info_net(info), pm_nl_pernet_id); } +static int mptcp_nl_add_subflow_or_signal_addr(struct net *net, + struct mptcp_addr_info *addr) +{ + struct mptcp_sock *msk; + long s_slot = 0, s_num = 0; + + while ((msk = mptcp_token_iter_next(net, &s_slot, &s_num)) != NULL) { + struct pm_nl_pernet *pernet = net_generic(net, pm_nl_pernet_id); + struct sock *sk = (struct sock *)msk; + + spin_lock_bh(&msk->pm.lock); + if (!READ_ONCE(msk->fully_established)) { + spin_unlock_bh(&msk->pm.lock); + goto next; + } + + msk->pm.add_addr_signal_max = READ_ONCE(pernet->add_addr_signal_max); + msk->pm.add_addr_accept_max = READ_ONCE(pernet->add_addr_accept_max); + msk->pm.local_addr_max = READ_ONCE(pernet->local_addr_max); + spin_unlock_bh(&msk->pm.lock); + + lock_sock(sk); + spin_lock_bh(&msk->pm.lock); + mptcp_pm_create_subflow_or_signal_addr(msk); + spin_unlock_bh(&msk->pm.lock); + release_sock(sk); + +next: + sock_put(sk); + cond_resched(); + } + + return 0; +} + static int mptcp_nl_cmd_add_addr(struct sk_buff *skb, struct genl_info *info) { struct nlattr *attr = info->attrs[MPTCP_PM_ATTR_ADDR]; @@ -918,6 +953,8 @@ static int mptcp_nl_cmd_add_addr(struct sk_buff *skb, struct genl_info *info) return ret; } + mptcp_nl_add_subflow_or_signal_addr(sock_net(skb->sk), &entry->addr); + return 0; } From patchwork Wed Dec 16 09:40:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 1416977 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.01.org (client-ip=198.145.21.10; helo=ml01.01.org; envelope-from=mptcp-bounces@lists.01.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=QjuZyVFt; dkim-atps=neutral Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Cwqqm6KwZz9sRR for ; Wed, 16 Dec 2020 20:40:36 +1100 (AEDT) Received: from ml01.vlan13.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id D2276100EC1F9; Wed, 16 Dec 2020 01:40:34 -0800 (PST) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::632; helo=mail-pl1-x632.google.com; envelope-from=geliangtang@gmail.com; receiver= Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 38DAC100EC1F9 for ; Wed, 16 Dec 2020 01:40:32 -0800 (PST) Received: by mail-pl1-x632.google.com with SMTP id x18so6512622pln.6 for ; Wed, 16 Dec 2020 01:40:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0KUk7W3JYFjl56MS1KHpjWKiqsWB7eXZriJUH/ShDvE=; b=QjuZyVFtOUd3nyPFsmVwTkGWS+Qmvbv/oikXVPykRwAjAb5ipmC4J17cJugT67jgYd q9pGHXF0tlwVPRhilFkgCwejXp4aeYcJ8qQSuRr3o1UY7GKqkuwraDtFkxvyEIAFMoOW fGVRd7WhnJDFJlFmu9+KNerYH/q8YLGEb0nCHu+m1JqSn+n/s2dtfud9aliOXN1nJV8H 40H7inPJJaiTdqyQse3lIwZwerS8babwy5bmrcUAtDaDe+LtT+YCvq2/2Hr3+FOhbUTH 25MuTvTX5rAZI4Z104N1sdgqo4XrGVCq5dLVg6Ib3r6OP2LJNolvAV/0XDnVtatPa9oo NZow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0KUk7W3JYFjl56MS1KHpjWKiqsWB7eXZriJUH/ShDvE=; b=m4P+DjoMRqJn6j1bx+b08ZtWE2WhOXHimW56ZOt+ggdcnwl40GB5E6uz/LH8De3lMA /lg6gkcG6pzaE/YIrtYuGzp/5Fhb8NusE7N73cSvvRoON2i1Gp6mfNP0S6kFzMLpx1uP FMkPjqbSAgNSdq7mXQQDWfRm5dA0/9vBnHDraT05ulA/ygXthZz0dwZpiP+1IF77vxrb 982ADiZdfcuVffP6AO/4zqg6nM/w8wfzzeM66UtVe4saGLKaxRvVz7a9bd2fznUgX6uE 0RkRtCz0247lnsoho4/jHO79zXxhpi7qlSi/YC7Iy5GQcpHnj86TLTOauQBcNCG2GQ/1 ev3Q== X-Gm-Message-State: AOAM533zZH0ca7NkFf0fE957Vsd3sqLvmFPDiLpxzw6MjF1i7Qniuv0c 9stRiOZqhrya9vCYrrsd8SJfswribd0UrA== X-Google-Smtp-Source: ABdhPJzi0oB6fzRczoxp5Jjk8cDarP+SjBKE/MN2xGcWPT4PDkYVQmqsnu6evuw7nDvz+yc97HBcFw== X-Received: by 2002:a17:902:c403:b029:db:cb2b:8bc1 with SMTP id k3-20020a170902c403b02900dbcb2b8bc1mr1980697plk.36.1608111631062; Wed, 16 Dec 2020 01:40:31 -0800 (PST) Received: from localhost ([43.224.245.180]) by smtp.gmail.com with ESMTPSA id f193sm1942072pfa.81.2020.12.16.01.40.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 01:40:30 -0800 (PST) From: Geliang Tang To: mptcp@lists.01.org Date: Wed, 16 Dec 2020 17:40:14 +0800 Message-Id: X-Mailer: git-send-email 2.29.2 In-Reply-To: <73d430a234a018dbef408242b1b40461e96dfb91.1608111058.git.geliangtang@gmail.com> References: <73d430a234a018dbef408242b1b40461e96dfb91.1608111058.git.geliangtang@gmail.com> MIME-Version: 1.0 Message-ID-Hash: K5T4JSEMHII7BKD2PM3QU33MDLQJZVYT X-Message-ID-Hash: K5T4JSEMHII7BKD2PM3QU33MDLQJZVYT X-MailFrom: geliangtang@gmail.com X-Mailman-Rule-Hits: member-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address CC: Geliang Tang X-Mailman-Version: 3.1.1 Precedence: list Subject: [MPTCP] [MPTCP][PATCH mptcp-next 2/3] selftests: mptcp: use minus value for removing address numbers List-Id: Discussions regarding MPTCP upstreaming Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: This patch changed the remoing addresses numbers to minus value, left the plus one for the adding addresses numbers. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index 333f917a7f98..6399bc2e80d0 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -209,8 +209,8 @@ do_transfer() srv_proto="$4" connect_addr="$5" test_link_fail="$6" - rm_nr_ns1="$7" - rm_nr_ns2="$8" + addr_nr_ns1="$7" + addr_nr_ns2="$8" speed="$9" bkup="${10}" @@ -264,7 +264,8 @@ do_transfer() fi cpid=$! - if [ $rm_nr_ns1 -gt 0 ]; then + if [ $addr_nr_ns1 -lt 0 ]; then + let rm_nr_ns1=-addr_nr_ns1 if [ $rm_nr_ns1 -lt 8 ]; then counter=1 sleep 1 @@ -281,7 +282,8 @@ do_transfer() fi fi - if [ $rm_nr_ns2 -gt 0 ]; then + if [ $addr_nr_ns2 -lt 0 ]; then + let rm_nr_ns2=-addr_nr_ns2 if [ $rm_nr_ns2 -lt 8 ]; then counter=1 sleep 1 @@ -368,8 +370,8 @@ run_tests() connector_ns="$2" connect_addr="$3" test_linkfail="${4:-0}" - rm_nr_ns1="${5:-0}" - rm_nr_ns2="${6:-0}" + addr_nr_ns1="${5:-0}" + addr_nr_ns2="${6:-0}" speed="${7:-fast}" bkup="${8:-""}" lret=0 @@ -386,7 +388,7 @@ run_tests() fi do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} \ - ${test_linkfail} ${rm_nr_ns1} ${rm_nr_ns2} ${speed} ${bkup} + ${test_linkfail} ${addr_nr_ns1} ${addr_nr_ns2} ${speed} ${bkup} lret=$? if [ "$test_linkfail" -eq 1 ];then @@ -763,7 +765,7 @@ reset ip netns exec $ns1 ./pm_nl_ctl limits 0 1 ip netns exec $ns2 ./pm_nl_ctl limits 0 1 ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow -run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow +run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow chk_join_nr "remove single subflow" 1 1 1 chk_rm_nr 1 1 @@ -773,7 +775,7 @@ ip netns exec $ns1 ./pm_nl_ctl limits 0 2 ip netns exec $ns2 ./pm_nl_ctl limits 0 2 ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow -run_tests $ns1 $ns2 10.0.1.1 0 0 2 slow +run_tests $ns1 $ns2 10.0.1.1 0 0 -2 slow chk_join_nr "remove multiple subflows" 2 2 2 chk_rm_nr 2 2 @@ -782,7 +784,7 @@ reset ip netns exec $ns1 ./pm_nl_ctl limits 0 1 ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal ip netns exec $ns2 ./pm_nl_ctl limits 1 1 -run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow +run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow chk_join_nr "remove single address" 1 1 1 chk_add_nr 1 1 chk_rm_nr 0 0 @@ -793,7 +795,7 @@ ip netns exec $ns1 ./pm_nl_ctl limits 0 2 ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal ip netns exec $ns2 ./pm_nl_ctl limits 1 2 ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow -run_tests $ns1 $ns2 10.0.1.1 0 1 1 slow +run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow chk_join_nr "remove subflow and signal" 2 2 2 chk_add_nr 1 1 chk_rm_nr 1 1 @@ -805,7 +807,7 @@ ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal ip netns exec $ns2 ./pm_nl_ctl limits 1 3 ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags subflow -run_tests $ns1 $ns2 10.0.1.1 0 1 2 slow +run_tests $ns1 $ns2 10.0.1.1 0 -1 -2 slow chk_join_nr "remove subflows and signal" 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 @@ -817,7 +819,7 @@ ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal ip netns exec $ns2 ./pm_nl_ctl limits 1 3 ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags subflow -run_tests $ns1 $ns2 10.0.1.1 0 8 8 slow +run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow chk_join_nr "flush subflows and signal" 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 @@ -860,7 +862,7 @@ reset ip netns exec $ns1 ./pm_nl_ctl limits 0 1 ip netns exec $ns1 ./pm_nl_ctl add dead:beef:2::1 flags signal ip netns exec $ns2 ./pm_nl_ctl limits 1 1 -run_tests $ns1 $ns2 dead:beef:1::1 0 1 0 slow +run_tests $ns1 $ns2 dead:beef:1::1 0 -1 0 slow chk_join_nr "remove single address IPv6" 1 1 1 chk_add_nr 1 1 chk_rm_nr 0 0 @@ -871,7 +873,7 @@ ip netns exec $ns1 ./pm_nl_ctl limits 0 2 ip netns exec $ns1 ./pm_nl_ctl add dead:beef:2::1 flags signal ip netns exec $ns2 ./pm_nl_ctl limits 1 2 ip netns exec $ns2 ./pm_nl_ctl add dead:beef:3::2 flags subflow -run_tests $ns1 $ns2 dead:beef:1::1 0 1 1 slow +run_tests $ns1 $ns2 dead:beef:1::1 0 -1 -1 slow chk_join_nr "remove subflow and signal IPv6" 2 2 2 chk_add_nr 1 1 chk_rm_nr 1 1 @@ -953,7 +955,7 @@ reset ip netns exec $ns1 ./pm_nl_ctl limits 0 1 ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal port 10100 ip netns exec $ns2 ./pm_nl_ctl limits 1 1 -run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow +run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow chk_join_nr "remove single address with port" 1 1 1 chk_add_nr 1 1 1 chk_rm_nr 0 0 @@ -964,7 +966,7 @@ ip netns exec $ns1 ./pm_nl_ctl limits 0 2 ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal port 10100 ip netns exec $ns2 ./pm_nl_ctl limits 1 2 ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow -run_tests $ns1 $ns2 10.0.1.1 0 1 1 slow +run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow chk_join_nr "remove subflow and signal with port" 2 2 2 chk_add_nr 1 1 1 chk_rm_nr 1 1 From patchwork Wed Dec 16 09:40:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 1416978 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.01.org (client-ip=2001:19d0:306:5::1; helo=ml01.01.org; envelope-from=mptcp-bounces@lists.01.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=Lqw17+vH; dkim-atps=neutral Received: from ml01.01.org (ml01.01.org [IPv6:2001:19d0:306:5::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Cwqqp5R76z9sSs for ; Wed, 16 Dec 2020 20:40:38 +1100 (AEDT) Received: from ml01.vlan13.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id DDFB7100EC1FC; Wed, 16 Dec 2020 01:40:36 -0800 (PST) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::42d; helo=mail-pf1-x42d.google.com; envelope-from=geliangtang@gmail.com; receiver= Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D627F100EC1E1 for ; Wed, 16 Dec 2020 01:40:35 -0800 (PST) Received: by mail-pf1-x42d.google.com with SMTP id s21so16222335pfu.13 for ; Wed, 16 Dec 2020 01:40:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HJ2S0cOoU7Mslg2vfArdgX2ABsfHYnSgLmmY1hfSApM=; b=Lqw17+vHkgR2kSnVNQ7dRSu9ObreDvcySyt9mOc1TtsqZ1IFp3JzYMFH5pZ+WK2BmE zfAEmFRa8h8qhYHwvJqmufc2EbtlZ5GCFxPVJvI4qIvmyuwFV1yJOVtEyjCa6MM/xD58 GmBX2RtsPLaW6SXcMu1tedwevUHAhfJFF+IRwQOG+odxEvpRVeKpUTPBDR7RCRYKZ00A y99fqFXTBL5NVPUBTB4QbPoJaFBEr9KvHlQtZb3lWVI7EfV9OUurPjtCfoXhfTS+ve37 frK/lwIM6fh4k1WfCBG9qko5zl3ftBo1YA7nRBE0woAMJ2XQgBEuXCrN8a1dKERcwe/j sscA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HJ2S0cOoU7Mslg2vfArdgX2ABsfHYnSgLmmY1hfSApM=; b=aQcFCPplX1nFLsBJCi0eTjnKentyvpNnOGMth1hDnmcOM4EnZe3a+05+CR1Ncf2KTx MCmdXW+arHB4teSMayJolVmx07piwR6+eUG62yvi2nQymfoqdhOJIrdu4+pew91Fg/KG e36lk42Dta7L4isgL4iVdVe8mCAXH6NvsrA+dpoTN0iGL6u+DNlbP5Faes4sZC8pzBwB Z99t6dnVYcGlOl45cWEn4FP0ccQS4mE/paEAAI/t+ahHoelph2baKK+ch3r/HRHUZOce ESXZt81J2V8Y2Etmx56qJunF+mITKOC2mFclpc90j2e9DJz/3gYxKa9QkLS9xDy7moXY sYnQ== X-Gm-Message-State: AOAM533kyRTSmy4fGolhUqSpCjU0QThkSs9OeJihePc9RgYWVK6xdyGX +LhUPf4L3wN7bshEeFEw8fIrzANRdDWsLg== X-Google-Smtp-Source: ABdhPJwNOX4oCP9fZHQg/gVM0LVMb6UgMKjWuFpvF7IgsxgIIyY1hvy1SlwxY6CY/4NT3bHo9tqa6g== X-Received: by 2002:a65:4544:: with SMTP id x4mr33166504pgr.183.1608111635072; Wed, 16 Dec 2020 01:40:35 -0800 (PST) Received: from localhost ([43.224.245.180]) by smtp.gmail.com with ESMTPSA id v26sm1786949pfm.203.2020.12.16.01.40.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 01:40:34 -0800 (PST) From: Geliang Tang To: mptcp@lists.01.org Date: Wed, 16 Dec 2020 17:40:15 +0800 Message-Id: <16e33f2c69daff0593291e17842976d2ff0dd46e.1608111058.git.geliangtang@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: References: <73d430a234a018dbef408242b1b40461e96dfb91.1608111058.git.geliangtang@gmail.com> MIME-Version: 1.0 Message-ID-Hash: VGN3MLLGGVAZ5PP3XPEOQ3KCZ24NBBYM X-Message-ID-Hash: VGN3MLLGGVAZ5PP3XPEOQ3KCZ24NBBYM X-MailFrom: geliangtang@gmail.com X-Mailman-Rule-Hits: member-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address CC: Geliang Tang X-Mailman-Version: 3.1.1 Precedence: list Subject: [MPTCP] [MPTCP][PATCH mptcp-next 3/3] selftests: mptcp: add testcases for newly added addresses List-Id: Discussions regarding MPTCP upstreaming Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: This patch added the testcases to create subflows or signal addresses for the newly added IPv4 or IPv6 addresses. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 73 ++++++++++++++++++- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index 6399bc2e80d0..cc0577103fdb 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -264,7 +264,23 @@ do_transfer() fi cpid=$! - if [ $addr_nr_ns1 -lt 0 ]; then + if [ $addr_nr_ns1 -gt 0 ]; then + let add_nr_ns1=addr_nr_ns1 + counter=2 + sleep 1 + while [ $add_nr_ns1 -gt 0 ]; do + local addr + if is_v6 "${connect_addr}"; then + addr="dead:beef:$counter::1" + else + addr="10.0.$counter.1" + fi + ip netns exec $ns1 ./pm_nl_ctl add $addr flags signal + let counter+=1 + let add_nr_ns1-=1 + done + sleep 1 + elif [ $addr_nr_ns1 -lt 0 ]; then let rm_nr_ns1=-addr_nr_ns1 if [ $rm_nr_ns1 -lt 8 ]; then counter=1 @@ -282,7 +298,23 @@ do_transfer() fi fi - if [ $addr_nr_ns2 -lt 0 ]; then + if [ $addr_nr_ns2 -gt 0 ]; then + let add_nr_ns2=addr_nr_ns2 + counter=3 + sleep 1 + while [ $add_nr_ns2 -gt 0 ]; do + local addr + if is_v6 "${connect_addr}"; then + addr="dead:beef:$counter::2" + else + addr="10.0.$counter.2" + fi + ip netns exec $ns2 ./pm_nl_ctl add $addr flags subflow + let counter+=1 + let add_nr_ns2-=1 + done + sleep 1 + elif [ $addr_nr_ns2 -lt 0 ]; then let rm_nr_ns2=-addr_nr_ns2 if [ $rm_nr_ns2 -lt 8 ]; then counter=1 @@ -824,6 +856,43 @@ chk_join_nr "flush subflows and signal" 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 +# add single subflow +reset +ip netns exec $ns1 ./pm_nl_ctl limits 0 1 +ip netns exec $ns2 ./pm_nl_ctl limits 0 1 +run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow +chk_join_nr "add single subflow" 1 1 1 + +# add signal address +reset +ip netns exec $ns1 ./pm_nl_ctl limits 0 1 +ip netns exec $ns2 ./pm_nl_ctl limits 1 1 +run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow +chk_join_nr "add signal address" 1 1 1 +chk_add_nr 1 1 + +# add multiple subflows +reset +ip netns exec $ns1 ./pm_nl_ctl limits 0 2 +ip netns exec $ns2 ./pm_nl_ctl limits 0 2 +run_tests $ns1 $ns2 10.0.1.1 0 0 2 slow +chk_join_nr "add multiple subflows" 2 2 2 + +# add multiple subflows IPv6 +reset +ip netns exec $ns1 ./pm_nl_ctl limits 0 2 +ip netns exec $ns2 ./pm_nl_ctl limits 0 2 +run_tests $ns1 $ns2 dead:beef:1::1 0 0 2 slow +chk_join_nr "add multiple subflows IPv6" 2 2 2 + +# add multiple addresses IPv6 +reset +ip netns exec $ns1 ./pm_nl_ctl limits 0 2 +ip netns exec $ns2 ./pm_nl_ctl limits 2 2 +run_tests $ns1 $ns2 dead:beef:1::1 0 2 0 slow +chk_join_nr "add multiple addresses IPv6" 2 2 2 +chk_add_nr 2 2 + # subflow IPv6 reset ip netns exec $ns1 ./pm_nl_ctl limits 0 1