From nobody Thu Sep 18 06:46:33 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp696936pis; Tue, 26 Apr 2022 14:57:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTv62d5IEsDY6hLqSFuiaSRKvpgX2vI2RGT4LRC413jOhBhCpybFA5ulRNHJ7Kr/RYnExA X-Received: by 2002:a05:6402:3513:b0:424:1b50:68b7 with SMTP id b19-20020a056402351300b004241b5068b7mr26954984edd.144.1651010250071; Tue, 26 Apr 2022 14:57:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651010250; cv=none; d=google.com; s=arc-20160816; b=c6N8kklDfGuei1Py6zZbzIF/NPKy7XrnJCFCqAFbflHF09ggLjZd4wb4KOq+5fVSLh iaQxCjzZKNNJIYS0u0/SoVM/N+33hDKBLX4pQDleYSP5me01AZV9WP7SqUuuDUMD3fvN aBZZVDpQd+CtDkcz7PikN2IFYaw3tE7y5r9uHjaVhZXO8lIoXqIA0fiRvp9z3SLKIsLE kW6ZgoU+hUFAQiPMihXVJx0TpGExUVkI1z0LI2DwEEEz84pyQevLPqHaZd20dpCpSgGY llhi5l0ZlOzxjMOxj259XOqENbra2wqKd7k+nkc5jkVHzbFP0TabwvGp608ufy+btF8k y/VA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=wjtLryt3u4/GtcV0iOpgIfGUdrjsavXrsT5nMnvQPMk=; b=wntHFG7m2btCgOWdFfdWEGIqtpPFeyVh2KCNuAzyvwSMVb+PQRIkGoOopzxsBD+pwI hJQ0DPzVZ5FFGS7T0X7sGMHcI7IxzdEsBpkH91Y2lB0ybGVHEioee+MYMcoDvz/A016e h9cTSqBNANNZ18xJCdFj4stLXCK/qXyxHg4lTygSshyKqgRp/BYbWZoYDL05OzxDjgQn bl66ao6OjH9Dr65nBJD/8Gw53hSMPj0kVYKKo4p+4AYJzQBqfFX8MyGrmCdlC/7VCFLE nHotKHSXAm8BolOQPzhXJngKaurs2y8oA0SdNXNBhbwAuGkrPMj4vRogdaEYq4cZxm3J 5jQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=l9HGNJ2c; spf=pass (google.com: domain of mptcp+bounces-4900-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4900-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id g13-20020a170906538d00b006f3a418346csi4546981ejo.113.2022.04.26.14.57.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Apr 2022 14:57:30 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4900-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=l9HGNJ2c; spf=pass (google.com: domain of mptcp+bounces-4900-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4900-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id D3F452E09F2 for ; Tue, 26 Apr 2022 21:57:27 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DFFA833DE; Tue, 26 Apr 2022 21:57:26 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) (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 8E07933DC for ; Tue, 26 Apr 2022 21:57:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651010245; x=1682546245; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VHI55fwMmAPMISO8cR9zrQDat9I7YpRVjSu9rkw1vK8=; b=l9HGNJ2cRkvQGk34jAh3apQ0RKTrYmqzNMCk6I2KxIFi8f3c7E6E2US1 LSYLZm+xkMSIJQUEBdsbli9phV8U5uQrhn4gZ810pgBYYeijLp44faYIc Sk0Q1QhflMRwBOE22GztZqEQZBYCUHfV7I3MPwlXp9vKqQlAUBKuy34di TB9vTQrWEfundzXJC0vJZZ8aygzjpNKoRluHr0F88ei+XBt+jq2yMt9RI GqeCc/RJg0fPXQE6AbKu41gz4/HecKvjqCDZu3u+OLqEO9BcB2reZ64u9 KivLJOjAXAgp4IbCFpEeccf+w6TCbwPcby3Y7Dds4Tx1fRGNwYhMXw9W4 A==; X-IronPort-AV: E=McAfee;i="6400,9594,10329"; a="326222710" X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="326222710" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="532878094" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.10.176]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Davide Caratti , Mat Martineau Subject: [PATCH net-next 1/7] selftests: mptcp: add infinite map testcase Date: Tue, 26 Apr 2022 14:57:11 -0700 Message-Id: <20220426215717.129506-2-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> References: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> 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 Add the single subflow test case for MP_FAIL, to test the infinite mapping case. Use the test_linkfail value to make 128KB test files. Add a new function reset_with_fail(), in it use 'iptables' and 'tc action pedit' rules to produce the bit flips to trigger the checksum failures. Set validate_checksum to enable checksums for the MP_FAIL tests without passing the '-C' argument. Set check_invert flag to enable the invert bytes check for the output data in check_transfer(). Instead of the file mismatch error, this test prints out the inverted bytes. Add a new function pedit_action_pkts() to get the numbers of the packets edited by the tc pedit actions. Print this numbers to the output. Also add the needed kernel configures in the selftests config file. Suggested-by: Davide Caratti Co-developed-by: Matthieu Baerts Signed-off-by: Matthieu Baerts Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- tools/testing/selftests/net/mptcp/config | 8 +++ .../testing/selftests/net/mptcp/mptcp_join.sh | 70 ++++++++++++++++++- 2 files changed, 77 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/config b/tools/testing/selft= ests/net/mptcp/config index d36b7da5082a..38021a0dd527 100644 --- a/tools/testing/selftests/net/mptcp/config +++ b/tools/testing/selftests/net/mptcp/config @@ -12,6 +12,9 @@ CONFIG_NF_TABLES=3Dm CONFIG_NFT_COMPAT=3Dm CONFIG_NETFILTER_XTABLES=3Dm CONFIG_NETFILTER_XT_MATCH_BPF=3Dm +CONFIG_NETFILTER_XT_MATCH_LENGTH=3Dm +CONFIG_NETFILTER_XT_MATCH_STATISTIC=3Dm +CONFIG_NETFILTER_XT_TARGET_MARK=3Dm CONFIG_NF_TABLES_INET=3Dy CONFIG_NFT_TPROXY=3Dm CONFIG_NFT_SOCKET=3Dm @@ -19,3 +22,8 @@ CONFIG_IP_ADVANCED_ROUTER=3Dy CONFIG_IP_MULTIPLE_TABLES=3Dy CONFIG_IP_NF_TARGET_REJECT=3Dm CONFIG_IPV6_MULTIPLE_TABLES=3Dy +CONFIG_NET_ACT_CSUM=3Dm +CONFIG_NET_ACT_PEDIT=3Dm +CONFIG_NET_CLS_ACT=3Dy +CONFIG_NET_CLS_FW=3Dm +CONFIG_NET_SCH_INGRESS=3Dm diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 9eb4d889a24a..34152a50a3e2 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -266,6 +266,58 @@ reset_with_allow_join_id0() ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=3D$ns= 2_enable } =20 +# Modify TCP payload without corrupting the TCP packet +# +# This rule inverts a 8-bit word at byte offset 148 for the 2nd TCP ACK pa= ckets +# carrying enough data. +# Once it is done, the TCP Checksum field is updated so the packet is still +# considered as valid at the TCP level. +# Because the MPTCP checksum, covering the TCP options and data, has not b= een +# updated, the modification will be detected and an MP_FAIL will be emitte= d: +# what we want to validate here without corrupting "random" MPTCP options. +# +# To avoid having tc producing this pr_info() message for each TCP ACK pac= kets +# not carrying enough data: +# +# tc action pedit offset 162 out of bounds +# +# Netfilter is used to mark packets with enough data. +reset_with_fail() +{ + reset "${1}" || return 1 + + ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=3D1 + ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=3D1 + + check_invert=3D1 + validate_checksum=3D1 + local i=3D"$2" + local ip=3D"${3:-4}" + local tables + + tables=3D"iptables" + if [ $ip -eq 6 ]; then + tables=3D"ip6tables" + fi + + ip netns exec $ns2 $tables \ + -t mangle \ + -A OUTPUT \ + -o ns2eth$i \ + -p tcp \ + -m length --length 150:9999 \ + -m statistic --mode nth --packet 1 --every 99999 \ + -j MARK --set-mark 42 || exit 1 + + tc -n $ns2 qdisc add dev ns2eth$i clsact || exit 1 + tc -n $ns2 filter add dev ns2eth$i egress \ + protocol ip prio 1000 \ + handle 42 fw \ + action pedit munge offset 148 u8 invert \ + pipe csum tcp \ + index 100 || exit 1 +} + fail_test() { ret=3D1 @@ -1199,7 +1251,7 @@ chk_join_nr() echo "[ ok ]" fi [ "${dump_stats}" =3D 1 ] && dump_stats - if [ $checksum -eq 1 ]; then + if [ $validate_checksum -eq 1 ]; then chk_csum_nr $csum_ns1 $csum_ns2 chk_fail_nr $fail_nr $fail_nr chk_rst_nr $rst_nr $rst_nr @@ -2590,6 +2642,21 @@ fastclose_tests() fi } =20 +pedit_action_pkts() +{ + tc -n $ns2 -j -s action show action pedit index 100 | \ + sed 's/.*"packets":\([0-9]\+\),.*/\1/' +} + +fail_tests() +{ + # single subflow + if reset_with_fail "Infinite map" 1; then + run_tests $ns1 $ns2 10.0.1.1 128 + chk_join_nr 0 0 0 +1 +0 1 0 1 "$(pedit_action_pkts)" + fi +} + implicit_tests() { # userspace pm type prevents add_addr @@ -2658,6 +2725,7 @@ all_tests_sorted=3D( d@deny_join_id0_tests m@fullmesh_tests z@fastclose_tests + F@fail_tests I@implicit_tests ) =20 --=20 2.36.0 From nobody Thu Sep 18 06:46:33 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp696941pis; Tue, 26 Apr 2022 14:57:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyzJHcDt8u/npRuJ05MRyAL7vNUuKEouLs3aDy6P3FmqoG34fiM/KG0YKN135DAMYFaf6dd X-Received: by 2002:a05:6512:4021:b0:472:2513:4503 with SMTP id br33-20020a056512402100b0047225134503mr1176397lfb.357.1651010250588; Tue, 26 Apr 2022 14:57:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651010250; cv=none; d=google.com; s=arc-20160816; b=ThOAZjsB5sSCrgW7ZhSwGWa+Q1zNpXaMsndF21liXzlVZm3DFQ4+J6c3uygDbsFfG+ KwyNiA4ufe6IrivfIhviJyRv+ZCq8Ua+d2k3VyTcFB+giWhaT1sZSvsOsXMAj0ABaftl PjlQB88DkiDROsayV79MSxRNusK1cCq1RYwepF9RHSpRinkoMTphxAvYq0LkqM+zaqX2 l2OK0aucgAF77jwAAWA3fBkoAUzgVAEQmSFQFuz1gq4fAdWDrMxc0Ik4lwGSc8dy5qDP gH4iyjDKYqL2RpvZ0Kk6y/tNIfzf0ebvm55ZUy5oS9DqWXzV2qDoMLKxm78orO58Np2n 5R4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=4a8vvPz2EJac42g19PUWKrNojZY86huJAL0zh9fhKSM=; b=T+J17bvRqtOG8NOiyVYjmgWAW7kl164s9CpGxdJNhQepofJbfHqknqyHP5JNOk7MeG Xcm7x9HNtZsj3gFqHHQII1bAGnDqwWWbVI8hScRX1qc16/B2cg5RDLt9lhhOzq78x6Su Mczy7oIDbF9rSmQ+e/lWs87qQTRTZT3Uk17h3A/keH6yZHP+h14opfmDOkY0XJo7bfz/ o7bP9F+HhVIDLSpnpMk0LhbkLKtARoD3DiwRvgZoSIBpMsFcbsN0n1mr26mCpbKtN1N4 KXkqW91B3sk3pss4+MCcCcQTu1Q2pflJEptC1HC/z1oRrGN5hhWR9UBCNJqEQYPhJkkO uiPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=O6dJ9Ap+; spf=pass (google.com: domain of mptcp+bounces-4901-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-4901-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id y7-20020a0565123f0700b0045dd8d9db7esi19154219lfa.595.2022.04.26.14.57.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Apr 2022 14:57:30 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4901-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=O6dJ9Ap+; spf=pass (google.com: domain of mptcp+bounces-4901-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-4901-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 0410A2E0A08 for ; Tue, 26 Apr 2022 21:57:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 63DFC33DD; Tue, 26 Apr 2022 21:57:27 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) (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 257C633C3 for ; Tue, 26 Apr 2022 21:57:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651010246; x=1682546246; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=MhOYld/1XELXh4CJiXdT/E/wXr1i2B/WULJbFZ2W420=; b=O6dJ9Ap+Ig/eu/fCo4fxNPGQopKoLEFv7MUUaP/l8sIDxKueNJRl/gD1 1rZKm8Z4BxkbP4oDt9VPRBqtapf1R+YuuTaeiG+/ukq86caScIQzGFzSf X4+1LqSueatw/xCcnH6TyTNXp+hfYqZyf1osanQZiOIdKza47rs2avaUy fZIUxFqxCi9kqT230VQ6PxOuTvFBd+wuJ7CPPGG336eS2zqPbt1qv+mfq 7o0AucnrSEPSNsil5OKx5ggHbsQ3pz3c9slRmWDDb+CarJhqaQpR5YRrL sxlopHGNBj9QnLZkA4xGb+lBGlENOGyQX++X+8KoayydPMby2Jgrf7z4A Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10329"; a="326222713" X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="326222713" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="532878095" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.10.176]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 2/7] mptcp: use mptcp_stop_timer Date: Tue, 26 Apr 2022 14:57:12 -0700 Message-Id: <20220426215717.129506-3-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> References: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> 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 Use the helper mptcp_stop_timer() instead of using sk_stop_timer() to stop icsk_retransmit_timer directly. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/protocol.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 4581c570ef68..e3db319ce92e 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2753,7 +2753,7 @@ static void __mptcp_destroy_sock(struct sock *sk) /* join list will be eventually flushed (with rst) at sock lock release t= ime*/ list_splice_init(&msk->conn_list, &conn_list); =20 - sk_stop_timer(sk, &msk->sk.icsk_retransmit_timer); + mptcp_stop_timer(sk); sk_stop_timer(sk, &sk->sk_timer); msk->pm.status =3D 0; =20 @@ -2861,7 +2861,7 @@ static int mptcp_disconnect(struct sock *sk, int flag= s) __mptcp_close_ssk(sk, ssk, subflow, MPTCP_CF_FASTCLOSE); } =20 - sk_stop_timer(sk, &msk->sk.icsk_retransmit_timer); + mptcp_stop_timer(sk); sk_stop_timer(sk, &sk->sk_timer); =20 if (mptcp_sk(sk)->token) --=20 2.36.0 From nobody Thu Sep 18 06:46:33 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp696949pis; Tue, 26 Apr 2022 14:57:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwj/CBAznP6yxmYvdoNx8AX8/WMs0+dCOQgv3C6R5gqXx+ASu6bdRU3sPsMUM1Tvcdkwl1+ X-Received: by 2002:a05:6402:1941:b0:413:2b5f:9074 with SMTP id f1-20020a056402194100b004132b5f9074mr26789278edz.414.1651010251136; Tue, 26 Apr 2022 14:57:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651010251; cv=none; d=google.com; s=arc-20160816; b=A8gzeD+V6Q3P3LI8l0iwGyt8HxMHuLgUNHn0FLNFUNTabfiKYuqF9qzWwKV074Zq+V bVHu4vW3kyEGnjatG4CYPxZesXCZwoqvLVIGjJH8W2E1LwlztT6Fr1kULGbdrFSTGZvz FY11yQcJEm5a6p0MlPo3cdV5/XlqfJRDlW+57PjSnVuRbml+87th2JWpOsZA0/PJqgmd iu3UF0hbJZu6fDPxzxF3g4yPxDT9RrWQcpMKfi2tv9NPUB914T84RQ6w6tR0O/aMcwsC V2qTxdRg5V6DNebFG7ep/MUMHZrqOE52S8a4a9J/fgwt1jZ+FHCUcAIYwuqfoGrF7ykn h2ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=YZF7iBjyJ8UpFN3cZmJaOMVtxK8Pn7Z3ZkSg1XyYllQ=; b=GMqglkW3pS3PrCIwg2j+6795wkVpnYkqwiVFYXjWi+5xIsd0yJTgTh09JIk7WZP2Tj hbKWugkvxVI8rsEYlGfKgqiInT5aVlDk65Wqa17tK/YDt7791lqQB4F8mM8FBYnwC76a 3Lx3y2hGImCcKZdea7uxuujqVFI5ygS78o2lwUAzkEvE7KPP0sxIz/4n9PqPMDjAMUr1 0LexVhbDmSU56rjMY29cCbGlsz47QwByficqjznCW0AtjInxjKplcO0SrVPFLNqA+dmH O/80/7B9/pQDIqYGB81NzybAypDnC/J+FPA8swlt/uLMRyOQpoIQ6m62Gf3YZOjr8waB 0oSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=V0eSC4yv; spf=pass (google.com: domain of mptcp+bounces-4902-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4902-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id f14-20020a17090624ce00b006f3a0b4e2basi4453185ejb.614.2022.04.26.14.57.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Apr 2022 14:57:31 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4902-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=V0eSC4yv; spf=pass (google.com: domain of mptcp+bounces-4902-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4902-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 13EA22E0334 for ; Tue, 26 Apr 2022 21:57:30 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EE10533C3; Tue, 26 Apr 2022 21:57:27 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) (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 E434133DC for ; Tue, 26 Apr 2022 21:57:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651010246; x=1682546246; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=JYk3TyUbDhDUxu3NzojGlAGOTE6VhZ0AbqCyRH92EY8=; b=V0eSC4yvGl3D6nHqZRWNRlGfdDkqrrRj08APG8MYLtfdJcAkeCeHImNY zR9eckhutv0tj9Fv/+MVlzggJmKOG+4KyeIq5rtoARcYyQw0btVANe9oW qElucYPNOWxQL5OkN+51j+mD299CNhe8Y9hjshJJ8VM0EFFiK1eyKwSQb NZNqcGYwfUf8y/2YrHS2KGRWWvLZ2hh3V9Mqo41fkj4KC7rbqv8bjhaEi oUiSNv+yLY38Qh4Nu9TxSAtO+U43AQo36fbA7wPX0RRo3v+lJc+7FFtE5 aok1dekQjiu1/fkryUmQXcQaSigd8SQXKQpUhUsukyJuJ/oGd1aLWDuM5 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10329"; a="326222715" X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="326222715" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="532878096" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.10.176]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 3/7] mptcp: add data lock for sk timers Date: Tue, 26 Apr 2022 14:57:13 -0700 Message-Id: <20220426215717.129506-4-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> References: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> 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 mptcp_data_lock() needs to be held when manipulating the msk retransmit_timer or the sk sk_timer. This patch adds the data lock for the both timers. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/protocol.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index e3db319ce92e..ea74122065f1 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1605,8 +1605,10 @@ void __mptcp_push_pending(struct sock *sk, unsigned = int flags) =20 out: /* ensure the rtx timer is running */ + mptcp_data_lock(sk); if (!mptcp_timer_pending(sk)) mptcp_reset_timer(sk); + mptcp_data_unlock(sk); if (copied) __mptcp_check_send_data_fin(sk); } @@ -2491,8 +2493,10 @@ static void __mptcp_retrans(struct sock *sk) reset_timer: mptcp_check_and_set_pending(sk); =20 + mptcp_data_lock(sk); if (!mptcp_timer_pending(sk)) mptcp_reset_timer(sk); + mptcp_data_unlock(sk); } =20 static void mptcp_worker(struct work_struct *work) @@ -2651,8 +2655,10 @@ void mptcp_subflow_shutdown(struct sock *sk, struct = sock *ssk, int how) } else { pr_debug("Sending DATA_FIN on subflow %p", ssk); tcp_send_ack(ssk); + mptcp_data_lock(sk); if (!mptcp_timer_pending(sk)) mptcp_reset_timer(sk); + mptcp_data_unlock(sk); } break; } @@ -2753,8 +2759,10 @@ static void __mptcp_destroy_sock(struct sock *sk) /* join list will be eventually flushed (with rst) at sock lock release t= ime*/ list_splice_init(&msk->conn_list, &conn_list); =20 + mptcp_data_lock(sk); mptcp_stop_timer(sk); sk_stop_timer(sk, &sk->sk_timer); + mptcp_data_unlock(sk); msk->pm.status =3D 0; =20 /* clears msk->subflow, allowing the following loop to close @@ -2816,7 +2824,9 @@ static void mptcp_close(struct sock *sk, long timeout) __mptcp_destroy_sock(sk); do_cancel_work =3D true; } else { + mptcp_data_lock(sk); sk_reset_timer(sk, &sk->sk_timer, jiffies + TCP_TIMEWAIT_LEN); + mptcp_data_unlock(sk); } release_sock(sk); if (do_cancel_work) @@ -2861,8 +2871,10 @@ static int mptcp_disconnect(struct sock *sk, int fla= gs) __mptcp_close_ssk(sk, ssk, subflow, MPTCP_CF_FASTCLOSE); } =20 + mptcp_data_lock(sk); mptcp_stop_timer(sk); sk_stop_timer(sk, &sk->sk_timer); + mptcp_data_unlock(sk); =20 if (mptcp_sk(sk)->token) mptcp_event(MPTCP_EVENT_CLOSED, mptcp_sk(sk), NULL, GFP_KERNEL); --=20 2.36.0 From nobody Thu Sep 18 06:46:33 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp696957pis; Tue, 26 Apr 2022 14:57:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw7ORqy0L2OCh/sh0w6FfeqMYJ8GicuKV5JNgd4rxr2tvpn7glbASh6YeuevqixffvZbGDp X-Received: by 2002:a17:902:eb8c:b0:15d:4d8:e305 with SMTP id q12-20020a170902eb8c00b0015d04d8e305mr14496775plg.97.1651010252426; Tue, 26 Apr 2022 14:57:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651010252; cv=none; d=google.com; s=arc-20160816; b=0dX4aL8KVAu6zA7Cd5MaqIzjaZ5cacWUUSiir5ipyPbHBMXH07lqoFWhzhB6DLL+0p iuCJGYGdL1gyuFAeCmFiNA1g/z+RCJFFrgP97TN3+PX2Av0ORCenKW+YgIJl6SuLs6hO rTkw9ntTDRDHHjLdkxKz8kx5O95+XyzT29zX8rAW+dIhQftaCB35KAtciXPR2OuLzX0E B0ZnEjmc2l1fixrUW/KcnOPpYB9YWEmkd39KDWfp//dpbUw6q9u7Oieo7odyHmaD+/vG d8KCHeJC4O82BJrjWVj1Vh6x8/BPnWt8Zf29L0Af//4sIuSnQZ3AgaNMcZ62G/Fw8yO4 n+aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=XZ4KiIT3BHbRsEhdq4ekpDUMhUmPNvyr/9cJDTSiN+M=; b=BfbcGz9zIMY1ZyZLfEAcxv4kQX0tEY7spam7QBYWKQFvaRPG1RZOU5YqSpVOEO3+fF tCxt9kj2ROTmXd7Yx/sOM2ciDiYB3NPCBZ2WCAUtbq8EkwzV8Zu/FKVyfJ8c76P+7pi7 ZnRa2EFsd+3Fg+JcAioPxMuS3vuK0EUmxmScjNyxSKnmybFJKE5ytEczmYUeC1re6Nfk AEf4xxe1Fa8/qMjg7qzQg0n+btQtWM6Auplao8ASmzw5OW+mIDKZDGBXi4HxxPbPswIw DzK8J8sFLPGreea2unntkpaXdnU8N56xzd1KF57youjQ7cwFocXCGwj05bum9PywpYlV QtqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=nJTh0ArU; spf=pass (google.com: domain of mptcp+bounces-4904-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4904-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id 21-20020a170902c21500b00156b1cd8b9dsi17817363pll.206.2022.04.26.14.57.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Apr 2022 14:57:32 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4904-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=nJTh0ArU; spf=pass (google.com: domain of mptcp+bounces-4904-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4904-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 12D71280AB5 for ; Tue, 26 Apr 2022 21:57:32 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E8B9133E9; Tue, 26 Apr 2022 21:57:28 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) (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 5E2C633E5 for ; Tue, 26 Apr 2022 21:57:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651010247; x=1682546247; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=HwKVfcYVKSL9hp993Wqqp7bRQBk5WB+jS5GEgL1KZ+g=; b=nJTh0ArUUz69ItI/X1K9Z7thOdHLhdAn+XLiFelV76VjH904+64JAV3Q +jRoMvQmIWNmDZWEMvwa596Q+bH7llmVmv+P+1MlZBHQ8oH7TjWgftbxs F1Stw5LtBLCfnu6dTtigMkUYf6oCnW0ei7qE9gqklJ4UvS7HeoFlHo7MT z9YEP5oD/I03/WnEMQ0UobbED4vUEBfqfmfAYy/NAh7y/II8T6ZAe4FDa blNHy1vsmUZvTaApQ/VknaF0mlNUpBAC8tFJKAtI+5A2SbYFKyBgMRCWH 415wFUsqq3EZws9yvl6a4QSS27Wpg0zNvftdD3gd+vyDdZi8WCHxbV3++ g==; X-IronPort-AV: E=McAfee;i="6400,9594,10329"; a="326222717" X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="326222717" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="532878097" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.10.176]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 4/7] mptcp: add MP_FAIL response support Date: Tue, 26 Apr 2022 14:57:14 -0700 Message-Id: <20220426215717.129506-5-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> References: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> 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 This patch adds a new struct member mp_fail_response_expect in struct mptcp_subflow_context to support MP_FAIL response. In the single subflow with checksum error and contiguous data special case, a MP_FAIL is sent in response to another MP_FAIL. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/pm.c | 10 +++++++++- net/mptcp/protocol.h | 1 + net/mptcp/subflow.c | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 5c36870d3420..971e843a304c 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -290,8 +290,16 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 fa= il_seq) =20 pr_debug("fail_seq=3D%llu", fail_seq); =20 - if (!mptcp_has_another_subflow(sk) && READ_ONCE(msk->allow_infinite_fallb= ack)) + if (mptcp_has_another_subflow(sk) || !READ_ONCE(msk->allow_infinite_fallb= ack)) + return; + + if (!READ_ONCE(subflow->mp_fail_response_expect)) { + pr_debug("send MP_FAIL response and infinite map"); + + subflow->send_mp_fail =3D 1; + MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPFAILTX); subflow->send_infinite_map =3D 1; + } } =20 /* path manager helpers */ diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 61d600693ffd..cc66c81a8fab 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -448,6 +448,7 @@ struct mptcp_subflow_context { stale : 1, /* unable to snd/rcv data, do not use for xmit */ local_id_valid : 1; /* local_id is correctly initialized */ enum mptcp_data_avail data_avail; + bool mp_fail_response_expect; u32 remote_nonce; u64 thmac; u32 local_nonce; diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 30ffb00661bb..ca2352ad20d4 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1217,6 +1217,8 @@ static bool subflow_check_data_avail(struct sock *ssk) tcp_send_active_reset(ssk, GFP_ATOMIC); while ((skb =3D skb_peek(&ssk->sk_receive_queue))) sk_eat_skb(ssk, skb); + } else { + WRITE_ONCE(subflow->mp_fail_response_expect, true); } WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA); return true; --=20 2.36.0 From nobody Thu Sep 18 06:46:33 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp696955pis; Tue, 26 Apr 2022 14:57:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwAS9O46pb6BB9vg7mgR5/q629S4bSaFld3FhrL4WYPIArjrnBc6Ez1pTbsBBxbxx6qNwNI X-Received: by 2002:a17:907:c01a:b0:6f3:b313:2fd1 with SMTP id ss26-20020a170907c01a00b006f3b3132fd1mr4771363ejc.680.1651010252001; Tue, 26 Apr 2022 14:57:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651010251; cv=none; d=google.com; s=arc-20160816; b=SK4Gy0HJiuaUxSVE+bka0MsO+e76QC3lFsuXK5K9vWXQEEiaExPxgKyaswm+uPE5Hu AtiIixxvjnMx8CVn15SYeXHVuSOm2/le5J0GXRUgx+NmV/4s8nuObduz9/sejkUH1HMZ XEuKMsAMircNDJOvFfCC+oEtSqlJ6QKhet6WqCpRP/6HAkXddvshIT8aJZ4htB0Mj9Wo U8N0hwxbwJDeKr5g36293TAGFFbUAWghOYCsB4fdDe01z2O4GNrOctLJ+kDn6/v8EEeU aQ3D2RjB8NVhe2IehOOXtQwNhK2I+vR/HFwUr1kmzz8ub/DTv8Nzk5RNNPB9b7/WJGTE UfTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=c0cQpUac484zEqdj5UfvjUhztkNQLFdmvt1QpH9AUDU=; b=Ivr7L36qXJOGqUUKUhc6tzvLRocJ9suQL1tKuqQabH4dkgzubNiVWJ6ySZ7Q2sGJb6 ugYBvYkM4i2zeJsinfTuu96D4mPQyHBuiZxSar4ca9QVYBtHKkYgtyi25sMyCio5+JCu U/Lew0lJfbqtgq7ubmmG+TVo9TOynjKQFEHPvULqHTY8QYuJ1umdZpTzOOm+DmtvPtCQ 9+OR+AaKqWf7fsXN0jJpEH5KKvx6Pz0MtWEtwzFfPWZvdiBOZ8Pd32sa5djmD0Ub4vp3 X/wQGPmlBVOMoDoz/5WWHp57QQIgpmIzFmSUWSqSFyeNP/9DTmz6Gn5ZV+JZDTqN6fBN 5h5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=HgIFNFQr; spf=pass (google.com: domain of mptcp+bounces-4903-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4903-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id g13-20020a170906538d00b006f3a418346csi4546981ejo.113.2022.04.26.14.57.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Apr 2022 14:57:31 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4903-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=HgIFNFQr; spf=pass (google.com: domain of mptcp+bounces-4903-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4903-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 5A2572E0A06 for ; Tue, 26 Apr 2022 21:57:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AB81533DE; Tue, 26 Apr 2022 21:57:28 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) (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 678AB33E7 for ; Tue, 26 Apr 2022 21:57:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651010247; x=1682546247; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=YVHyLHCsb3hF5WWwDRxMNM4YLf+lLPKzKCx6qIJuhX8=; b=HgIFNFQrVpzmSOKg+8mFiGHyCCP7dwlCuEtNZAPYftlc1lpRFyTFwkCC uR/TKXtrFQuoFFNQLaQQ7iTS4GNf1taRhhITWcgKoKRCNxzAAh6X25xLo ClW/JQrhv/rWRbP9qYLua+vo/ytaLpIZrS5wF+nv80/pVqCOkaGuy5ssZ /ifwaWrxETszExBJHN+UiixgU7TG57OpCbUSlCs+X3/BAxIcoUr+SHRgY GXH3lss3Kc8swNX84QzoVAus1hEIctqGdx6w3vYzcqde11f0gXHUybUrM SyE+rdUFM9FIg1q+WfgIj/3SqYHQgduPk8dcLF31UYtjyd6bg9dPxTUw5 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10329"; a="326222719" X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="326222719" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="532878098" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.10.176]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 5/7] mptcp: reset subflow when MP_FAIL doesn't respond Date: Tue, 26 Apr 2022 14:57:15 -0700 Message-Id: <20220426215717.129506-6-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> References: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> 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 This patch adds a new msk->flags bit MPTCP_FAIL_NO_RESPONSE, then reuses sk_timer to trigger a check if we have not received a response from the peer after sending MP_FAIL. If the peer doesn't respond properly, reset the subflow. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/pm.c | 8 ++++++++ net/mptcp/protocol.c | 48 ++++++++++++++++++++++++++++++++++++++++++++ net/mptcp/protocol.h | 1 + net/mptcp/subflow.c | 11 ++++++++++ 4 files changed, 68 insertions(+) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 971e843a304c..14f448d82bb2 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -287,6 +287,7 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 fai= l_seq) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); + struct sock *s =3D (struct sock *)msk; =20 pr_debug("fail_seq=3D%llu", fail_seq); =20 @@ -299,6 +300,13 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 fa= il_seq) subflow->send_mp_fail =3D 1; MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPFAILTX); subflow->send_infinite_map =3D 1; + } else if (s && inet_sk_state_load(s) !=3D TCP_CLOSE) { + pr_debug("MP_FAIL response received"); + + mptcp_data_lock(s); + if (inet_sk_state_load(s) !=3D TCP_CLOSE) + sk_stop_timer(s, &s->sk_timer); + mptcp_data_unlock(s); } } =20 diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index ea74122065f1..a5d466e6b538 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2169,10 +2169,38 @@ static void mptcp_retransmit_timer(struct timer_lis= t *t) sock_put(sk); } =20 +static struct mptcp_subflow_context * +mp_fail_response_expect_subflow(struct mptcp_sock *msk) +{ + struct mptcp_subflow_context *subflow, *ret =3D NULL; + + mptcp_for_each_subflow(msk, subflow) { + if (READ_ONCE(subflow->mp_fail_response_expect)) { + ret =3D subflow; + break; + } + } + + return ret; +} + +static void mptcp_check_mp_fail_response(struct mptcp_sock *msk) +{ + struct mptcp_subflow_context *subflow; + struct sock *sk =3D (struct sock *)msk; + + bh_lock_sock(sk); + subflow =3D mp_fail_response_expect_subflow(msk); + if (subflow) + __set_bit(MPTCP_FAIL_NO_RESPONSE, &msk->flags); + bh_unlock_sock(sk); +} + static void mptcp_timeout_timer(struct timer_list *t) { struct sock *sk =3D from_timer(sk, t, sk_timer); =20 + mptcp_check_mp_fail_response(mptcp_sk(sk)); mptcp_schedule_work(sk); sock_put(sk); } @@ -2499,6 +2527,23 @@ static void __mptcp_retrans(struct sock *sk) mptcp_data_unlock(sk); } =20 +static void mptcp_mp_fail_no_response(struct mptcp_sock *msk) +{ + struct mptcp_subflow_context *subflow; + struct sock *ssk; + bool slow; + + subflow =3D mp_fail_response_expect_subflow(msk); + if (subflow) { + pr_debug("MP_FAIL doesn't respond, reset the subflow"); + + ssk =3D mptcp_subflow_tcp_sock(subflow); + slow =3D lock_sock_fast(ssk); + mptcp_subflow_reset(ssk); + unlock_sock_fast(ssk, slow); + } +} + static void mptcp_worker(struct work_struct *work) { struct mptcp_sock *msk =3D container_of(work, struct mptcp_sock, work); @@ -2539,6 +2584,9 @@ static void mptcp_worker(struct work_struct *work) if (test_and_clear_bit(MPTCP_WORK_RTX, &msk->flags)) __mptcp_retrans(sk); =20 + if (test_and_clear_bit(MPTCP_FAIL_NO_RESPONSE, &msk->flags)) + mptcp_mp_fail_no_response(msk); + unlock: release_sock(sk); sock_put(sk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index cc66c81a8fab..3a8740fef918 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -116,6 +116,7 @@ #define MPTCP_WORK_EOF 3 #define MPTCP_FALLBACK_DONE 4 #define MPTCP_WORK_CLOSE_SUBFLOW 5 +#define MPTCP_FAIL_NO_RESPONSE 6 =20 /* MPTCP socket release cb flags */ #define MPTCP_PUSH_PENDING 1 diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index ca2352ad20d4..75c824b67ca9 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -968,6 +968,7 @@ static enum mapping_status get_mapping_status(struct so= ck *ssk, { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(ssk); bool csum_reqd =3D READ_ONCE(msk->csum_enabled); + struct sock *sk =3D (struct sock *)msk; struct mptcp_ext *mpext; struct sk_buff *skb; u16 data_len; @@ -1009,6 +1010,12 @@ static enum mapping_status get_mapping_status(struct= sock *ssk, pr_debug("infinite mapping received"); MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_INFINITEMAPRX); subflow->map_data_len =3D 0; + if (sk && inet_sk_state_load(sk) !=3D TCP_CLOSE) { + mptcp_data_lock(sk); + if (inet_sk_state_load(sk) !=3D TCP_CLOSE) + sk_stop_timer(sk, &sk->sk_timer); + mptcp_data_unlock(sk); + } return MAPPING_INVALID; } =20 @@ -1219,6 +1226,10 @@ static bool subflow_check_data_avail(struct sock *ss= k) sk_eat_skb(ssk, skb); } else { WRITE_ONCE(subflow->mp_fail_response_expect, true); + /* The data lock is acquired in __mptcp_move_skbs() */ + sk_reset_timer((struct sock *)msk, + &((struct sock *)msk)->sk_timer, + jiffies + TCP_RTO_MAX); } WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA); return true; --=20 2.36.0 From nobody Thu Sep 18 06:46:33 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp696971pis; Tue, 26 Apr 2022 14:57:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzVBCouMqAYvNnXJ4x7B8lMRrYXnsjs0DvIWQlPqMUZxlv2k9807WZbOYvDeTd+6pCgE3+o X-Received: by 2002:a05:6512:3d14:b0:46b:81d9:b9ee with SMTP id d20-20020a0565123d1400b0046b81d9b9eemr18100814lfv.109.1651010255434; Tue, 26 Apr 2022 14:57:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651010255; cv=none; d=google.com; s=arc-20160816; b=aUO6+h2wNqbZau0+I87Xe5b4yxJ5b/PyUZnSbjv4stjvIpsAvfCj0IAdsOOhdTJQqN WcTPKWPC+vi6W5/ejPSuLSOK1FFyqCFdepYM5ldP4hrMSbebM9XFWXVEgi32bCUyMaGW lhC8t9dPWmnCwe0rjpqUQuNmYE41umCmVmwKwvMBYYxmIxV3QzYkfR/VnxTXSV0AKged 3xEDYGPN3zW4d6WeOEZQo2ncSRJ7aiHAUuJb/S25JsaoljOdFu7snUV+7LfryvDE1op1 Fd2tdFmWKDBf+gnmE+W4uDQtRgLGQ/iY5QtJ/6xkTWVsi9cdCW8DCCE6bgBvMBoPvB8A Gl4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=VLvH5Rpay8LI65F4gVU6dfNwaS+V/W6nmCqLJ1jvljI=; b=ZcNas49yOtmZ7BfBSD8nu/XNopyGaBpPphGH6GVVNZaaCaDyjcHqserFxxWnOUX62F THkjYLpbqX11EXBB4YeAfeORkGVDDK3nd7YjSex/uv2Hj2FdFynAvCfFj1PJMA+JbowX J7NaXLE2Yu4m0AfCZb9otaeSVeg2RUahOGPqBxJOnwx8+TmyFkd49eoGT98QFpEQqLR9 gsaL2WbeWeu86b51HNGFDFOFjtxk9QB3MSI/wWtugCXWFzleVxg+21ekBN3CuWvI6MzB 3lOeRwWUQmxqi4RXdAdCx1a5GX97ibFyPGew2u5jyYgOLDrhMLZHwP6AW4160QBJGfHe 0eag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=GXHBB2Bh; spf=pass (google.com: domain of mptcp+bounces-4905-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-4905-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id c9-20020ac25f69000000b004721a3e27c5si2609054lfc.504.2022.04.26.14.57.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Apr 2022 14:57:35 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4905-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=GXHBB2Bh; spf=pass (google.com: domain of mptcp+bounces-4905-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-4905-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 6CC622E09BF for ; Tue, 26 Apr 2022 21:57:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 153DB33E5; Tue, 26 Apr 2022 21:57:29 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) (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 F36E633DC for ; Tue, 26 Apr 2022 21:57:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651010248; x=1682546248; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=h1mVzQU2WcuajxA3wv/PeAoW8RekmBvFh10Ws+eVVTo=; b=GXHBB2BhW6IPSV2AUuhPMjhV4XWnE9yOXDcCqJT/SxIK4Nx1vGwgkoBL M4aQeb1qrGKd6iNKGCQWOpqMgfN5Ddu02J3wKUqVgMoTI6pve7hTNWtfz xUaV5DkL3J3YJu60znX9SVFKFOGcw02PFkA+mmoU5sRxK+XU9kBAEiAjj 7wK29BH0E3ARMsbHvH33BsYKbc+vP8zyyWm4odmew/zBRjUISDifJ+CXW lQdOpM8wJbNVaDQ0xUhrdggk6n+3/Fc9CpXL6rBmXppvOD4Pu4BoiFVrH ACrFK8jwe6FapJQBxns0597UxU0CCzhLoAzIyKPHyOiP3Juw2kGAOPu2g w==; X-IronPort-AV: E=McAfee;i="6400,9594,10329"; a="326222721" X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="326222721" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="532878100" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.10.176]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 6/7] selftests: mptcp: check MP_FAIL response mibs Date: Tue, 26 Apr 2022 14:57:16 -0700 Message-Id: <20220426215717.129506-7-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> References: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> 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 This patch extends chk_fail_nr to check the MP_FAIL response mibs. Add a new argument invert for chk_fail_nr to allow it can check the MP_FAIL TX and RX mibs from the opposite direction. When the infinite map is received before the MP_FAIL response, the response will be lost. A '-' can be added into fail_tx or fail_rx to represent that MP_FAIL response TX or RX can be lost when doing the checks. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- .../testing/selftests/net/mptcp/mptcp_join.sh | 38 +++++++++++++++++-- 1 file changed, 35 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 34152a50a3e2..8023c0773d95 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1054,13 +1054,38 @@ chk_fail_nr() { local fail_tx=3D$1 local fail_rx=3D$2 + local ns_invert=3D${3:-""} local count local dump_stats + local ns_tx=3D$ns1 + local ns_rx=3D$ns2 + local extra_msg=3D"" + local allow_tx_lost=3D0 + local allow_rx_lost=3D0 + + if [[ $ns_invert =3D "invert" ]]; then + ns_tx=3D$ns2 + ns_rx=3D$ns1 + extra_msg=3D" invert" + fi + + if [[ "${fail_tx}" =3D "-"* ]]; then + allow_tx_lost=3D1 + fail_tx=3D${fail_tx:1} + fi + if [[ "${fail_rx}" =3D "-"* ]]; then + allow_rx_lost=3D1 + fail_rx=3D${fail_rx:1} + fi =20 printf "%-${nr_blank}s %s" " " "ftx" - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPFailTx | awk '{pr= int $2}') + count=3D$(ip netns exec $ns_tx nstat -as | grep MPTcpExtMPFailTx | awk '{= print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$fail_tx" ]; then + extra_msg=3D"$extra_msg,tx=3D$count" + fi + if { [ "$count" !=3D "$fail_tx" ] && [ $allow_tx_lost -eq 0 ]; } || + { [ "$count" -gt "$fail_tx" ] && [ $allow_tx_lost -eq 1 ]; }; then echo "[fail] got $count MP_FAIL[s] TX expected $fail_tx" fail_test dump_stats=3D1 @@ -1069,17 +1094,23 @@ chk_fail_nr() fi =20 echo -n " - failrx" - count=3D$(ip netns exec $ns2 nstat -as | grep MPTcpExtMPFailRx | awk '{pr= int $2}') + count=3D$(ip netns exec $ns_rx nstat -as | grep MPTcpExtMPFailRx | awk '{= print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$fail_rx" ]; then + extra_msg=3D"$extra_msg,rx=3D$count" + fi + if { [ "$count" !=3D "$fail_rx" ] && [ $allow_rx_lost -eq 0 ]; } || + { [ "$count" -gt "$fail_rx" ] && [ $allow_rx_lost -eq 1 ]; }; then echo "[fail] got $count MP_FAIL[s] RX expected $fail_rx" fail_test dump_stats=3D1 else - echo "[ ok ]" + echo -n "[ ok ]" fi =20 [ "${dump_stats}" =3D 1 ] && dump_stats + + echo "$extra_msg" } =20 chk_fclose_nr() @@ -2654,6 +2685,7 @@ fail_tests() if reset_with_fail "Infinite map" 1; then run_tests $ns1 $ns2 10.0.1.1 128 chk_join_nr 0 0 0 +1 +0 1 0 1 "$(pedit_action_pkts)" + chk_fail_nr 1 -1 invert fi } =20 --=20 2.36.0 From nobody Thu Sep 18 06:46:33 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp696977pis; Tue, 26 Apr 2022 14:57:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz2+AzOs9lNhZOFaBk1BF/qqTO0/njQ4PkiLSS0LK+3OYH+eT3P+LwrWwTR0RQUvzZE4/LB X-Received: by 2002:a05:6512:1308:b0:450:ad32:2b30 with SMTP id x8-20020a056512130800b00450ad322b30mr17706573lfu.470.1651010256047; Tue, 26 Apr 2022 14:57:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651010256; cv=none; d=google.com; s=arc-20160816; b=q6J9K5GYGn5x6eZ0UpWB6u74DX68L6VHsRzooAll9Cypa4QsbIFS+XTuN92cfa4guH qJRh0xR80/aMRoDWX1QxbQZqJTB3sazqPoFFONf3pJG4Lc+Wz1OoP9+Tc/9KIk3W587X WFur26CFBErRLRImBNalTuSpCOSlhq4oCDm3MDN5CfdrpkP5Ja5VmezNKmN0mvNrBV0y VrDohP1vpbcwKykbaiqg8gM7cxfCn8RnkeGZDbaCemhOcEMhNhTaj0wpz5NZjqlJZqE9 EBbcBeUJLjdF9cP18vlfxFVyNcASBZ/4NE04bGg1X9poCzVlIACI23aYq7/d/kauo1mQ aNzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=EVt5bOtX8UX7U5Fs8g432cYgOKfA0KmjL7pI6GlKzeQ=; b=cQljBJRXYJTeVIIDhx8F3XgajvJu4w9LlAwI3BOjTx87UVHv6x+NF8C3C4ia3GASQY 92lIkeiB7Q4PIytAGwjCUO+yW604hRJrwAoO2h+rbPjOuq0MoegRVtvosP71hkUH915P tbeAgj+lxCTQUlwt0z37a2OCIuy1qGkVIwxqX6LJqzcycK9L+W61tSAktSl93eyjHaaX ZDxEmPHPLS15O7TEHfiv3DRME9WLfprmEzoH4MsTfBLavpVqlYpWoSRY8WE9uiR0fPp6 0MaftdiMjpH3KvhfEiU7cxJLDnBKGsW4nMscBWlOMTOw2mp7fSXZUnwUaZtnlIt1BGfG QhuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=YpHffhdf; spf=pass (google.com: domain of mptcp+bounces-4906-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-4906-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id y7-20020a0565123f0700b0045dd8d9db7esi19154219lfa.595.2022.04.26.14.57.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Apr 2022 14:57:36 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4906-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=YpHffhdf; spf=pass (google.com: domain of mptcp+bounces-4906-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-4906-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 9346E2E09F1 for ; Tue, 26 Apr 2022 21:57:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1459E33C3; Tue, 26 Apr 2022 21:57:33 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) (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 B157533E7 for ; Tue, 26 Apr 2022 21:57:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651010248; x=1682546248; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uQR/9rFY6hY2tSmUCN0th77tAuxipN7j03E1ZDb6EZY=; b=YpHffhdf1a+Z4rwN/Vb/g1VhEJiIt6IgwA0vNrgencTyaPeQhNJHP+t1 7bIuSM5w/9b/aWwChZ7unCkHtdL7Hy7PFivOqhauENlaChS85qeAKlAPy xzN3eIvODTQpg1jHA78DaDjkn4dsQ8dJADVQKu7njCyQLqbCDuChMhKeS n7AHshEg9Uzoe/wOTxf+fx4G6zv5Nz2PDXvxib2EeTXAyqSvmIZHIuXeM TTEtlMcODQw8kMEj3GgDETCzFYb3edReJ/82o+NX00aiiWzkMha7fojta s7sPPYxAC+hXUo3Rkr6WlOH7AuQLQb5wHStXYyOTaaRaLSSRAiTAkRCJG Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10329"; a="326222723" X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="326222723" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:24 -0700 X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="532878102" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.10.176]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 7/7] selftests: mptcp: print extra msg in chk_csum_nr Date: Tue, 26 Apr 2022 14:57:17 -0700 Message-Id: <20220426215717.129506-8-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> References: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> 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 the multiple checksum errors occur in chk_csum_nr(), print the numbers of the errors as an extra message. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 8023c0773d95..e5c8fc2816fb 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1013,6 +1013,7 @@ chk_csum_nr() local csum_ns2=3D${2:-0} local count local dump_stats + local extra_msg=3D"" local allow_multi_errors_ns1=3D0 local allow_multi_errors_ns2=3D0 =20 @@ -1028,6 +1029,9 @@ chk_csum_nr() printf "%-${nr_blank}s %s" " " "sum" count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtDataCsumErr | awk '= {print $2}') [ -z "$count" ] && count=3D0 + if [ "$count" !=3D "$csum_ns1" ]; then + extra_msg=3D"$extra_msg ns1=3D$count" + fi if { [ "$count" !=3D $csum_ns1 ] && [ $allow_multi_errors_ns1 -eq 0 ]; } = || { [ "$count" -lt $csum_ns1 ] && [ $allow_multi_errors_ns1 -eq 1 ]; }; = then echo "[fail] got $count data checksum error[s] expected $csum_ns1" @@ -1039,15 +1043,20 @@ chk_csum_nr() echo -n " - csum " count=3D$(ip netns exec $ns2 nstat -as | grep MPTcpExtDataCsumErr | awk '= {print $2}') [ -z "$count" ] && count=3D0 + if [ "$count" !=3D "$csum_ns2" ]; then + extra_msg=3D"$extra_msg ns2=3D$count" + fi if { [ "$count" !=3D $csum_ns2 ] && [ $allow_multi_errors_ns2 -eq 0 ]; } = || { [ "$count" -lt $csum_ns2 ] && [ $allow_multi_errors_ns2 -eq 1 ]; }; = then echo "[fail] got $count data checksum error[s] expected $csum_ns2" fail_test dump_stats=3D1 else - echo "[ ok ]" + echo -n "[ ok ]" fi [ "${dump_stats}" =3D 1 ] && dump_stats + + echo "$extra_msg" } =20 chk_fail_nr() --=20 2.36.0