From nobody Sat Apr 27 19:47:40 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp1865984jad; Fri, 18 Feb 2022 13:35:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJxActI/snC6IXYM+0p9F5LIwugWzXlyzyeVhUfyi38NDYoAg96DQRBu0VPxYxP5hv/TLRr0 X-Received: by 2002:a05:6a00:1a56:b0:4c6:fe0c:2e27 with SMTP id h22-20020a056a001a5600b004c6fe0c2e27mr9404118pfv.65.1645220156535; Fri, 18 Feb 2022 13:35:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645220156; cv=none; d=google.com; s=arc-20160816; b=lodDH2lMKAS8V+xCY9A/48yXpPs9RI7jdK5gx0l5G4oU4oUGnKBIagNhHVZ0wXDvaT mKo/X0HHoTyi/yqedGrMkBPL5sAKQYU1ld3bQ1d8oTYDDJg7hSJB8c07RrbFcHt/Zbup VV4nyRtfO1fmiOw7ugu6RBZc75fs9vo2qsO0Nkzq8Marn5pVlytphVYCDWKJZMvd3/3u q6Q5Zed/B3uYR4zb0c/KG6Aupi38m5SSICADNs5JWDoBDtCdIY62dj5/s89b/84b0IKA ffnU44wzSj3YznzMuKQ34nKYE53rMh0VrcD7DIWGoVaX5HMVnqT1SK2KeWbMYX5GXPbJ IUBg== 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=7Az24UmS2Ib3va89u1489oPxA6ikl39tlzy++B1nNNg=; b=voxAQFQ2gamJp5XITB99fhhqUIU+hK0luDUtHGVqX8QXkTUrwUJDV9ixzNn+Frd3mN tMKCulpRAWtM73IQpxyvcWEDtvDwd0pFeYJodEWdD4pMr+UcmpORnPuPrdTv3tDiXDcG 8MzwEXYZHqzPIE8ABVJpsYG4AY3mJyHcvz7smljSgH+SbG7VZaYiCvtNpES0FAMq9Jux 6YfysiAq0G274nquo8rXxsjvRZyiF+NrWmWgcYmHh92JZS/ZxnrhXF5GDM3FPvQIQ1rL yT5BPg2n6Ou96lUd99EC8Q6v0tXklYCZUxHNpIeyPUd4dl/uAZ42VHuyDGunNcSHTVjK qejg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jUHgCoGc; spf=pass (google.com: domain of mptcp+bounces-3861-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3861-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id r20si12867039pgv.717.2022.02.18.13.35.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 Feb 2022 13:35:56 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3861-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jUHgCoGc; spf=pass (google.com: domain of mptcp+bounces-3861-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3861-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 sjc.edge.kernel.org (Postfix) with ESMTPS id 3E9AB3E1015 for ; Fri, 18 Feb 2022 21:35:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0AD3C4C92; Fri, 18 Feb 2022 21:35:54 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 A51AB4C90 for ; Fri, 18 Feb 2022 21:35:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645220152; x=1676756152; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=25BcXDQQWkP0Aa2PBvrQgF9AqV4OGrfUZbGVafZBSaY=; b=jUHgCoGcHG69ABVk4sgVEJ5Cof48GxLNBMiefNKuhQwuqo0iKz9MmOg5 oLULevu87TY3TMTR5QMrU4E1pok3Xf9bIkHCCZGQqOmD0tRxAJD82bjLc cPDJj0/qdYN5sD5+DEr0EXhbc1Mvs7v2+SOMhHzyyQ87Jz1nwWUzpUbpp 79u+Fa7Bw+L/39ZW6wRHMI/k2+r84zSiARKxHSgWIa5f+Gn1OQgDxlwLP pyfX2ltup5ucO43A8uT6MqmbVeXlnuWNBsCgVH9cdSD7EBPEKmEP+gJ0h 8MwETieXPoy3Lwyb+NU5VzDEoG7VxJLK75P+f1WnL9DJXoqx+ZPN5O4hp g==; X-IronPort-AV: E=McAfee;i="6200,9189,10262"; a="238639216" X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="238639216" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:51 -0800 X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="605664068" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.65.242]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:50 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Paolo Abeni , davem@davemloft.net, kuba@kernel.org, matthieu.baerts@tessares.net, geliang.tang@suse.com, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net 1/7] selftests: mptcp: fix diag instability Date: Fri, 18 Feb 2022 13:35:38 -0800 Message-Id: <20220218213544.70285-2-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220218213544.70285-1-mathew.j.martineau@linux.intel.com> References: <20220218213544.70285-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: Paolo Abeni Instead of waiting for an arbitrary amount of time for the MPTCP MP_CAPABLE handshake to complete, explicitly wait for the relevant socket to enter into the established status. Additionally let the data transfer application use the slowest transfer mode available (-r), to cope with very slow host, or high jitter caused by hosting VMs. Fixes: df62f2ec3df6 ("selftests/mptcp: add diag interface tests") Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/258 Reported-and-tested-by: Matthieu Baerts Signed-off-by: Paolo Abeni Signed-off-by: Mat Martineau --- tools/testing/selftests/net/mptcp/diag.sh | 44 +++++++++++++++++++---- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index 2674ba20d524..ff821025d309 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -71,6 +71,36 @@ chk_msk_remote_key_nr() __chk_nr "grep -c remote_key" $* } =20 +# $1: ns, $2: port +wait_local_port_listen() +{ + local listener_ns=3D"${1}" + local port=3D"${2}" + + local port_hex i + + port_hex=3D"$(printf "%04X" "${port}")" + for i in $(seq 10); do + ip netns exec "${listener_ns}" cat /proc/net/tcp | \ + awk "BEGIN {rc=3D1} {if (\$2 ~ /:${port_hex}\$/ && \$4 ~ /0A/) {rc=3D0;= exit}} END {exit rc}" && + break + sleep 0.1 + done +} + +wait_connected() +{ + local listener_ns=3D"${1}" + local port=3D"${2}" + + local port_hex i + + port_hex=3D"$(printf "%04X" "${port}")" + for i in $(seq 10); do + ip netns exec ${listener_ns} grep -q " 0100007F:${port_hex} " /proc/net/= tcp && break + sleep 0.1 + done +} =20 trap cleanup EXIT ip netns add $ns @@ -81,15 +111,15 @@ echo "a" | \ ip netns exec $ns \ ./mptcp_connect -p 10000 -l -t ${timeout_poll} \ 0.0.0.0 >/dev/null & -sleep 0.1 +wait_local_port_listen $ns 10000 chk_msk_nr 0 "no msk on netns creation" =20 echo "b" | \ timeout ${timeout_test} \ ip netns exec $ns \ - ./mptcp_connect -p 10000 -j -t ${timeout_poll} \ + ./mptcp_connect -p 10000 -r 0 -t ${timeout_poll} \ 127.0.0.1 >/dev/null & -sleep 0.1 +wait_connected $ns 10000 chk_msk_nr 2 "after MPC handshake " chk_msk_remote_key_nr 2 "....chk remote_key" chk_msk_fallback_nr 0 "....chk no fallback" @@ -101,13 +131,13 @@ echo "a" | \ ip netns exec $ns \ ./mptcp_connect -p 10001 -l -s TCP -t ${timeout_poll} \ 0.0.0.0 >/dev/null & -sleep 0.1 +wait_local_port_listen $ns 10001 echo "b" | \ timeout ${timeout_test} \ ip netns exec $ns \ - ./mptcp_connect -p 10001 -j -t ${timeout_poll} \ + ./mptcp_connect -p 10001 -r 0 -t ${timeout_poll} \ 127.0.0.1 >/dev/null & -sleep 0.1 +wait_connected $ns 10001 chk_msk_fallback_nr 1 "check fallback" flush_pids =20 @@ -119,7 +149,7 @@ for I in `seq 1 $NR_CLIENTS`; do ./mptcp_connect -p $((I+10001)) -l -w 10 \ -t ${timeout_poll} 0.0.0.0 >/dev/null & done -sleep 0.1 +wait_local_port_listen $ns $((NR_CLIENTS + 10001)) =20 for I in `seq 1 $NR_CLIENTS`; do echo "b" | \ --=20 2.35.1 From nobody Sat Apr 27 19:47:40 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp1865975jad; Fri, 18 Feb 2022 13:35:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJxkufL6vDMgpejJEQ5xCFpJqgpHJ5sl9wtFc4+fonebw/W0VCBBsCzIehdnzE5tkW9CNGWF X-Received: by 2002:a17:902:ee51:b0:14d:36d6:3cfb with SMTP id 17-20020a170902ee5100b0014d36d63cfbmr9304470plo.121.1645220156170; Fri, 18 Feb 2022 13:35:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645220156; cv=none; d=google.com; s=arc-20160816; b=QVF6FYVmCPUl1rlrTnWl0FWOSIe1MQ0B96nNIwhKheWRYWNCR9mJqc34Lm90r4elex dx5bAPXARHHhTVM3rFmZjj7Z8mGapNgLnhv9vLb3YD1WENIGVJn0jytxbrQ/uCnbYwKs lgvBjvTFXf9laA0tjvk9MuQmL5un7l2XfDACyt9d3YiyaF7T0/MDL+ycVsdh/WbYbXhl EbHTAzHTVDv3SUwQ96NOmgRJet08qyzDNgx5ZfN8FsiHyCqIla/jqxXuSfGac66zy0/m UINSQM0knRIgYvsd3RrF98hTtVV2nvgrufdSzqe3f7CcZd9UekLI4e7gBWYv9UFkwYqA 6pOA== 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=z3POsWITiwlqyQmSv+oLLOiRUquM/KrxVl7YX3sgs6k=; b=U9pIlNmKNdW/syEu9OkZlVk3ijebXI9fsv+KXgHLdJ5QlobdEpPY7yhez1mvkWVzoh WwwcRCnHCNkNMTcN0dz+G5K/PW9z7l2Q0LnUvGJHwc+drsqqytGVUhJ1pQ7/w30sm66T j3X3vG+zHxWjFH1UY/cFBdDkmf+jCcdaYEXYsYzEusBoZI49s+yEqqdAaR8eTMvOfJN0 6VRCDo3N8474bxuruD9S+3w36ElrevyaTOxjAo7xLSnK8GiVVHv9wF3fJNNz7dk2n8vz eQQF75WXmkDGpsgnFz1YUDv3u33gR0k17vV8LqXXzJ7iqZLQ9quazUXI4dSTCqMqPR3a xZqg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=cRgo0qPE; spf=pass (google.com: domain of mptcp+bounces-3860-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3860-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id r20si12867039pgv.717.2022.02.18.13.35.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 Feb 2022 13:35:56 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3860-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=cRgo0qPE; spf=pass (google.com: domain of mptcp+bounces-3860-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3860-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 sjc.edge.kernel.org (Postfix) with ESMTPS id 32CB93E0F35 for ; Fri, 18 Feb 2022 21:35:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F18974C68; Fri, 18 Feb 2022 21:35:53 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 D02964C92 for ; Fri, 18 Feb 2022 21:35:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645220152; x=1676756152; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4Uud2yottizEiH9vgn0GKtF6C9QDDmBYtoR12teTdeM=; b=cRgo0qPEyZ7GumwOcnmFq112qLk2gg2f8F9hFwTS9U/hsD/7tPy6unU+ PEcFgb5qw9IXPQFB12Z1lC8u/MylY6e8rS00te4fpksXXzGI+Gzdi6Jd+ WFWerboVDkTSvNW4iqcFBcEI57reblaiYgA07SLGJP7BZrUgk4aRrOHhj yVNhjkSaf5gCzrWi4a+emxzdUmp4PtVnG+1ZJPY0cF773Z4DMHZysrVJF ODp1ngrwEfMqD6pywcjtU7xTNjAAOT8VO7djMH3VY6D9fmSaLhfXuD241 l0uuvsKeyuVfHtGv762ohPDjNaqM3v92Ma87T1XdaGOKa/R98N46tnLbm w==; X-IronPort-AV: E=McAfee;i="6200,9189,10262"; a="238639219" X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="238639219" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:51 -0800 X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="605664069" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.65.242]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:51 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Paolo Abeni , davem@davemloft.net, kuba@kernel.org, matthieu.baerts@tessares.net, geliang.tang@suse.com, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net 2/7] selftests: mptcp: improve 'fair usage on close' stability Date: Fri, 18 Feb 2022 13:35:39 -0800 Message-Id: <20220218213544.70285-3-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220218213544.70285-1-mathew.j.martineau@linux.intel.com> References: <20220218213544.70285-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: Paolo Abeni The mentioned test has to wait for a subflow creation failure. The current code looks for TCP sockets in TW state and sometimes misses the relevant event. Switch to a more stable check, looking for the associated mib counter. Fixes: 46e967d187ed ("selftests: mptcp: add tests for subflow creation fail= ure") Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/257 Reported-and-tested-by: Matthieu Baerts Signed-off-by: Paolo Abeni Signed-off-by: Mat Martineau --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index c0801df15f54..10b3bd805ac6 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -961,7 +961,7 @@ wait_for_tw() local ns=3D$1 =20 while [ $time -lt $timeout_ms ]; do - local cnt=3D$(ip netns exec $ns ss -t state time-wait |wc -l) + local cnt=3D$(ip netns exec $ns nstat -as TcpAttemptFails | grep TcpAtte= mptFails | awk '{print $2}') =20 [ "$cnt" =3D 1 ] && return 1 time=3D$((time + 100)) --=20 2.35.1 From nobody Sat Apr 27 19:47:40 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp1866010jad; Fri, 18 Feb 2022 13:35:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJz2GuxPN21HDo4RZwiJNObLRNtGMOGg3JU1PcrMo0zKyjsvixRth2MaQRlb/gRAOAoqBloX X-Received: by 2002:a17:90a:4fa1:b0:1bb:8ad8:581c with SMTP id q30-20020a17090a4fa100b001bb8ad8581cmr10392616pjh.105.1645220157974; Fri, 18 Feb 2022 13:35:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645220157; cv=none; d=google.com; s=arc-20160816; b=l+qHQvH4MIePzD0ygrLPvSR5M5hMKp8Nr4AhecYsAI7WmTIfE8hW3IS+moIfC61S0i gRbAKV8qlBFEQXlxdqO7Tsl1jUkdbVTFOt2y3qzRHRS2mNrrLnDaG9tLsyXv9G+IQPaY je0/nN8A8VgxDgphOZZlUpEZA2dC9HzVZyWGLWpon387e4lE+H6kN6hO7tXuUFd2CFl9 4MZG8bAKrofpMzyb9NYM7VRNFhOobGuYA4P/mQ34nuDGEcU9xmuFaCUu+QjEpxf4h/sP ldSEM/dMOsoVs7Vue+XvaFAH+7RBgOb4Mt3YIIaMWfMgq30oIsn+DsdEZ0TdPupn9QMm xNxg== 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=e14Vmah3npvI4UrzDRpnWQMZ1OnMvIxpWw6APVp5N6Q=; b=Ox2VSec6DPI5eHEAiE8Phh4IuP3zktx0Wh+AbaBat/6KUgXLu29o8eK/9GI1h39MN1 Utre7ucNhjP6s5b3hbNRvl5OS5iqekwLGBaFuzymauiUZVZdfG80+Pu15H1ogy+yNVRc 05h7QNDMiJwOXwXH4XT1JnZq0VTHcRapuFrbwBAaEFUWHcbYi3HEbXhvFwQ6zOMW1dA1 PxrWqQDvedxuhaABbGLW/1GG2gBN34MLG1Z+Vwe+3LAtVPYG2LgIe1X03ub0jpP/Gy+k EClBtshv4NjWsRvwoxXbqdOfDXQRBg9OSEtYW+okJCaNJddQ4Ftp4dRWiQ+h0rwHQk4e TyoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=n+vFTi8E; spf=pass (google.com: domain of mptcp+bounces-3862-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3862-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id q5si9433652plg.534.2022.02.18.13.35.57 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 Feb 2022 13:35:57 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3862-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=n+vFTi8E; spf=pass (google.com: domain of mptcp+bounces-3862-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3862-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 sjc.edge.kernel.org (Postfix) with ESMTPS id 60D9A3E1014 for ; Fri, 18 Feb 2022 21:35:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EFD1F4C90; Fri, 18 Feb 2022 21:35:54 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 D99BD3202 for ; Fri, 18 Feb 2022 21:35:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645220153; x=1676756153; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=d8l5H47MHhe5BUeljIGKZzmWZdlEJw5PRfTCL4x7u9o=; b=n+vFTi8Eb06jrTUNYsRWfzv/pI8kK1+/2KhtA4f4Q8nGil/5+QQ6KzxL C6m23nyrKtx2HnHhnqbaEAtFiuU7+2OAlKIchsTLZX4f+dRrBhGlfoxiv yT3LkOXKTWEMOjCDR6QaoYjsU6K8eIitGGOGfBepAHkVEfrRQ424bI1n3 qTJtBALxCWh6xdR4J8bjv20RFkCoS5Bxr9h4OAA2XMWfVzDVhNSLXxSRd ZbV8IfFNWrIotdbSU5UXlQ8p220gI+M6eXtu4vC66O/3SjWxdiTMYpzc9 O1FIPQUNiZ7QdTAJRRSsJSEbpOpebMW8BZz74SU/TkvGqrFV0Qk+Ucc+0 g==; X-IronPort-AV: E=McAfee;i="6200,9189,10262"; a="238639220" X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="238639220" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:52 -0800 X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="605664073" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.65.242]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:51 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Paolo Abeni , davem@davemloft.net, kuba@kernel.org, matthieu.baerts@tessares.net, geliang.tang@suse.com, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net 3/7] mptcp: fix race in overlapping signal events Date: Fri, 18 Feb 2022 13:35:40 -0800 Message-Id: <20220218213544.70285-4-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220218213544.70285-1-mathew.j.martineau@linux.intel.com> References: <20220218213544.70285-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: Paolo Abeni After commit a88c9e496937 ("mptcp: do not block subflows creation on errors"), if a signal address races with a failing subflow creation, the subflow creation failure control path can trigger the selection of the next address to be announced while the current announced is still pending. The above will cause the unintended suppression of the ADD_ADDR announce. Fix the issue skipping the to-be-suppressed announce before it will mark an endpoint as already used. The relevant announce will be triggered again when the current one will complete. Fixes: a88c9e496937 ("mptcp: do not block subflows creation on errors") Reviewed-by: Matthieu Baerts Signed-off-by: Paolo Abeni Signed-off-by: Mat Martineau --- net/mptcp/pm_netlink.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 356f596e2032..82f82a513f5b 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -546,6 +546,16 @@ static void mptcp_pm_create_subflow_or_signal_addr(str= uct mptcp_sock *msk) if (msk->pm.add_addr_signaled < add_addr_signal_max) { local =3D select_signal_address(pernet, msk); =20 + /* due to racing events on both ends we can reach here while + * previous add address is still running: if we invoke now + * mptcp_pm_announce_addr(), that will fail and the + * corresponding id will be marked as used. + * Instead let the PM machinery reschedule us when the + * current address announce will be completed. + */ + if (msk->pm.addr_signal & BIT(MPTCP_ADD_ADDR_SIGNAL)) + return; + if (local) { if (mptcp_pm_alloc_anno_list(msk, local)) { __clear_bit(local->addr.id, msk->pm.id_avail_bitmap); --=20 2.35.1 From nobody Sat Apr 27 19:47:40 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp1866027jad; Fri, 18 Feb 2022 13:35:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJymzO2Rz3LOuTBAF/o3bPSdN9i+oyyPVfAKYi7/3r+h1/pBF/g/VSz/TBW6VbotwH0D1fHz X-Received: by 2002:a63:6785:0:b0:364:3dc6:27a8 with SMTP id b127-20020a636785000000b003643dc627a8mr7892140pgc.276.1645220158821; Fri, 18 Feb 2022 13:35:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645220158; cv=none; d=google.com; s=arc-20160816; b=zGRpW4a+BYf49cuOYYjkWiLfExKCnM8/ZhjC8sxSB826RpBjHbkeptL0kwj0nF1Q6S hQ4ZdAJSGnaXIDlCnHUV9EjWkXFhYEYwtQjgOzmla/w8coXUq8bNx3pGegGhBpGiECHr mhZoXodp3U6bywY1cbAYJC9grDF+rZlzcInFwBIyiTke0EM4cEJwEMidMynH9dJ2ZNB3 5GO4a/nrVljJmapms28LQCkVbEiw5AkOIeOs6TDzow73iPydzoc23m6hPhCI/7K0ALuz 5KftyoPStNERR1sxohseqBhyNFiJyzrB1SMoQvOtrnIC+RnYbsTNDCLUJyu+R1qT+dSV IcSA== 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=saLNPDWIgtEembzTw62B7zE3c6CiARFE1lJdA4dH9ww=; b=WKdp1tEfrLz/UGKnsuC93VaK6zSoAeQhSI/Od2Vc5dIqlmFYeVbsrbWRGTevnOdoi8 aPP82eEpvFpSi25zZSlp8VGrAGNIs+okvwd45VpBJNr6XydKgIwbQprchq4NrNUM4mD7 cJehbw6cxHYoiZesrbVCdKN8+7Ay9sNeJkrWVJ30bOzS2lJIPLa0ocK5oJb+qI2ISPIj QRYgTzEHVHLpDZKBS+CBCTn8hHHGDro9s46I5Q6+ppkaam/EMJJ2g4a/3jWBL6PfF99+ M8jxo5GmtEuCj3ZC4wvA9crzWuTf0X2AWP3UaT50+qxE0yOp3pWPgJWhfZk8RiMft6Lt KYSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="j/l3CYK2"; spf=pass (google.com: domain of mptcp+bounces-3863-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3863-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id o4-20020a17090a744400b001b90ef59c3csi456832pjk.13.2022.02.18.13.35.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 Feb 2022 13:35:58 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3863-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="j/l3CYK2"; spf=pass (google.com: domain of mptcp+bounces-3863-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3863-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 sjc.edge.kernel.org (Postfix) with ESMTPS id 667253E102A for ; Fri, 18 Feb 2022 21:35:58 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 11A824C96; Fri, 18 Feb 2022 21:35:55 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 005EA4C93 for ; Fri, 18 Feb 2022 21:35:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645220153; x=1676756153; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=moHVowhDn1CfmxXUlrwilDVUp0OxXTgQQgTmooJVCp0=; b=j/l3CYK2HOpJZcYfBnNWsakZjZnsmN6r0T8ZwAT9re5gaqoFD0Zz+Jma l93TQ9f5FhhhJdYtIseP2ua9Q3VjJZ4WJXsh8ocRE1zwKWXkRvLBieUtz /oiCPiiWHEgl1/eaqxUO601GrHgq/tmn9pLNW/5XtJvhfIfsjEuY/yCpO 3ewYZ+t28Cdx4svkP7CiEShAZmSeueIXQhcO6o9s17h5vvx3ri1Tzw9wO Y7l84LQE3FRf8ndKMgKo3T+YbEW+Y/nQeAIwoNN0yEnGCxlVHp6xSHuZA jmDrONY7EdLnY3DsEufQR4Ig3WAgRFRRHcjoXVY2AQFSEsYOmGFm1AtWO g==; X-IronPort-AV: E=McAfee;i="6200,9189,10262"; a="238639221" X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="238639221" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:52 -0800 X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="605664077" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.65.242]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:52 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Paolo Abeni , davem@davemloft.net, kuba@kernel.org, matthieu.baerts@tessares.net, geliang.tang@suse.com, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net 4/7] mptcp: fix race in incoming ADD_ADDR option processing Date: Fri, 18 Feb 2022 13:35:41 -0800 Message-Id: <20220218213544.70285-5-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220218213544.70285-1-mathew.j.martineau@linux.intel.com> References: <20220218213544.70285-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: Paolo Abeni If an MPTCP endpoint received multiple consecutive incoming ADD_ADDR options, mptcp_pm_add_addr_received() can overwrite the current remote address value after the PM lock is released in mptcp_pm_nl_add_addr_received() and before such address is echoed. Fix the issue caching the remote address value a little earlier and always using the cached value after releasing the PM lock. Fixes: f7efc7771eac ("mptcp: drop argument port from mptcp_pm_announce_addr= ") Reviewed-by: Matthieu Baerts Signed-off-by: Paolo Abeni Signed-off-by: Mat Martineau --- net/mptcp/pm_netlink.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 82f82a513f5b..4b5d795383cd 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -660,6 +660,7 @@ static void mptcp_pm_nl_add_addr_received(struct mptcp_= sock *msk) unsigned int add_addr_accept_max; struct mptcp_addr_info remote; unsigned int subflows_max; + bool reset_port =3D false; int i, nr; =20 add_addr_accept_max =3D mptcp_pm_get_add_addr_accept_max(msk); @@ -669,15 +670,19 @@ static void mptcp_pm_nl_add_addr_received(struct mptc= p_sock *msk) msk->pm.add_addr_accepted, add_addr_accept_max, msk->pm.remote.family); =20 - if (lookup_subflow_by_daddr(&msk->conn_list, &msk->pm.remote)) + remote =3D msk->pm.remote; + if (lookup_subflow_by_daddr(&msk->conn_list, &remote)) goto add_addr_echo; =20 + /* pick id 0 port, if none is provided the remote address */ + if (!remote.port) { + reset_port =3D true; + remote.port =3D sk->sk_dport; + } + /* connect to the specified remote address, using whatever * local address the routing configuration will pick. */ - remote =3D msk->pm.remote; - if (!remote.port) - remote.port =3D sk->sk_dport; nr =3D fill_local_addresses_vec(msk, addrs); =20 msk->pm.add_addr_accepted++; @@ -690,8 +695,12 @@ static void mptcp_pm_nl_add_addr_received(struct mptcp= _sock *msk) __mptcp_subflow_connect(sk, &addrs[i], &remote); spin_lock_bh(&msk->pm.lock); =20 + /* be sure to echo exactly the received address */ + if (reset_port) + remote.port =3D 0; + add_addr_echo: - mptcp_pm_announce_addr(msk, &msk->pm.remote, true); + mptcp_pm_announce_addr(msk, &remote, true); mptcp_pm_nl_addr_send_ack(msk); } =20 --=20 2.35.1 From nobody Sat Apr 27 19:47:40 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp1866083jad; Fri, 18 Feb 2022 13:36:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJyzR8vmZbahVWxwWU8LaNUvw24hcMoFfhrarLCuotDTik/COAaQYSbWV2/f3LzEPIWPL0vS X-Received: by 2002:a63:4a22:0:b0:372:9a9f:d4ac with SMTP id x34-20020a634a22000000b003729a9fd4acmr7794084pga.331.1645220162523; Fri, 18 Feb 2022 13:36:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645220162; cv=none; d=google.com; s=arc-20160816; b=YE9XI5+Xk2hjRLZELNiaHISXLsZogtmRu3gwoXmj1egzKg4F5LAPzh+2EXKzGPM9OL rAywnLqIJCSHKhb85TWwIOOPMA4J45O3MoWNIKljRMgwApJKUmeJD5I3N3DzVav7sfGj Us1fRuATi9ll0Vgg0zBNR6QM516BaXrLv5RBpKiPllr1A6CRZv7ygMSY/5olZnX4RpgC J54bhU+982sNVqgWogumM/v6RNcDksWCY271o8kYHeORi1pDvWUbLaNb8bjRQ1dvLkjg GgcUoYLupAA09WlH2Vg5YNi180N832IFMfPzHkfA0ljiKjqOtX0Zd6tSXxIplPHyCx6c 76cA== 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=g7GJ6zAwRktJFZJh7uauFvi/tQBTUfcvv6XGKO0Jyro=; b=e+ZyBHxPTIKugmTmJBWUOw+oYXZ8syYeV2ziq6TGTJiAPBHRB4fCJMnDgynAhRjn/x qhFWdmDPJ7uQ6DAorHcO5AqkbdPBtPO2F7jg8PJE+UIKdkMw0bXo7+QsZsKCNdcClSPp yYZJjC4xgXneScfjdDQMIDdTqW1UajsjiR2Jcmvm7Y2Famay83Ts3SaHum+h2tcZ9Z9h r9BWkWJYoO9EKW/C5jIFJ3nNlCKc0FwFGJ/FbVgW1s9/H16LsK7m8Y5APgx2t7wkBeDz ctnQ+omTHwwHH7JvAauTnTjtdLDCi/wGSs2NGN/9rQDQj3R3+w4xpi0JxSOsdP95Gi7c W2UQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=gxRt0AKd; spf=pass (google.com: domain of mptcp+bounces-3866-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3866-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id q9si7463511plc.522.2022.02.18.13.36.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 Feb 2022 13:36:02 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3866-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=gxRt0AKd; spf=pass (google.com: domain of mptcp+bounces-3866-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3866-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 sjc.edge.kernel.org (Postfix) with ESMTPS id C45283E1030 for ; Fri, 18 Feb 2022 21:36:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6B43D4C68; Fri, 18 Feb 2022 21:35:57 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 0DC3B4C94 for ; Fri, 18 Feb 2022 21:35:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645220154; x=1676756154; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XkVHPDIyBkaH3q1Z9MjQ0riJxIyyJNcm/+ZtjZLixX0=; b=gxRt0AKdFjveeQki0WN0CDgcsV4Ce9nyxjSWwLTlb+4hM6ycDq6ETUae aKk1XK/CXRbzKN8DC33vso//K9lIGpSZH6sZxCepU2t0FoQJLaKZ4en3b TGygGJSxquBnwjiwtwBPq6JZZpQVjkRVo+B45NXMLIaauZ9I/yFyv34QN DBOWsQgpoclW1r5HnCwCnlRwxRfd1s0zcgBa7Kxt3kr9TpBQpyfNcvJdt uJtKyG6rYFfkgTtgCa23PuzxK7Bc2W7k5San20ILo3HZawCa4q07c/x4H AbxhHVW2zCiGtZ0NKtBeDI4eeXeCLx8/v3uAsB1BpvrMlWPFpdbsMICVm A==; X-IronPort-AV: E=McAfee;i="6200,9189,10262"; a="238639223" X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="238639223" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:53 -0800 X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="605664080" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.65.242]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:52 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Paolo Abeni , davem@davemloft.net, kuba@kernel.org, matthieu.baerts@tessares.net, geliang.tang@suse.com, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net 5/7] mptcp: add mibs counter for ignored incoming options Date: Fri, 18 Feb 2022 13:35:42 -0800 Message-Id: <20220218213544.70285-6-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220218213544.70285-1-mathew.j.martineau@linux.intel.com> References: <20220218213544.70285-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: Paolo Abeni The MPTCP in kernel path manager has some constraints on incoming addresses announce processing, so that in edge scenarios it can end-up dropping (ignoring) some of such announces. The above is not very limiting in practice since such scenarios are very uncommon and MPTCP will recover due to ADD_ADDR retransmissions. This patch adds a few MIB counters to account for such drop events to allow easier introspection of the critical scenarios. Fixes: f7efc7771eac ("mptcp: drop argument port from mptcp_pm_announce_addr= ") Reviewed-by: Matthieu Baerts Signed-off-by: Paolo Abeni Signed-off-by: Mat Martineau --- net/mptcp/mib.c | 2 ++ net/mptcp/mib.h | 2 ++ net/mptcp/pm.c | 8 ++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/net/mptcp/mib.c b/net/mptcp/mib.c index 3240b72271a7..7558802a1435 100644 --- a/net/mptcp/mib.c +++ b/net/mptcp/mib.c @@ -35,12 +35,14 @@ static const struct snmp_mib mptcp_snmp_list[] =3D { SNMP_MIB_ITEM("AddAddr", MPTCP_MIB_ADDADDR), SNMP_MIB_ITEM("EchoAdd", MPTCP_MIB_ECHOADD), SNMP_MIB_ITEM("PortAdd", MPTCP_MIB_PORTADD), + SNMP_MIB_ITEM("AddAddrDrop", MPTCP_MIB_ADDADDRDROP), SNMP_MIB_ITEM("MPJoinPortSynRx", MPTCP_MIB_JOINPORTSYNRX), SNMP_MIB_ITEM("MPJoinPortSynAckRx", MPTCP_MIB_JOINPORTSYNACKRX), SNMP_MIB_ITEM("MPJoinPortAckRx", MPTCP_MIB_JOINPORTACKRX), SNMP_MIB_ITEM("MismatchPortSynRx", MPTCP_MIB_MISMATCHPORTSYNRX), SNMP_MIB_ITEM("MismatchPortAckRx", MPTCP_MIB_MISMATCHPORTACKRX), SNMP_MIB_ITEM("RmAddr", MPTCP_MIB_RMADDR), + SNMP_MIB_ITEM("RmAddrDrop", MPTCP_MIB_RMADDRDROP), SNMP_MIB_ITEM("RmSubflow", MPTCP_MIB_RMSUBFLOW), SNMP_MIB_ITEM("MPPrioTx", MPTCP_MIB_MPPRIOTX), SNMP_MIB_ITEM("MPPrioRx", MPTCP_MIB_MPPRIORX), diff --git a/net/mptcp/mib.h b/net/mptcp/mib.h index ecd3d8b117e0..2966fcb6548b 100644 --- a/net/mptcp/mib.h +++ b/net/mptcp/mib.h @@ -28,12 +28,14 @@ enum linux_mptcp_mib_field { MPTCP_MIB_ADDADDR, /* Received ADD_ADDR with echo-flag=3D0 */ MPTCP_MIB_ECHOADD, /* Received ADD_ADDR with echo-flag=3D1 */ MPTCP_MIB_PORTADD, /* Received ADD_ADDR with a port-number */ + MPTCP_MIB_ADDADDRDROP, /* Dropped incoming ADD_ADDR */ MPTCP_MIB_JOINPORTSYNRX, /* Received a SYN MP_JOIN with a different port-= number */ MPTCP_MIB_JOINPORTSYNACKRX, /* Received a SYNACK MP_JOIN with a different= port-number */ MPTCP_MIB_JOINPORTACKRX, /* Received an ACK MP_JOIN with a different port= -number */ MPTCP_MIB_MISMATCHPORTSYNRX, /* Received a SYN MP_JOIN with a mismatched = port-number */ MPTCP_MIB_MISMATCHPORTACKRX, /* Received an ACK MP_JOIN with a mismatched= port-number */ MPTCP_MIB_RMADDR, /* Received RM_ADDR */ + MPTCP_MIB_RMADDRDROP, /* Dropped incoming RM_ADDR */ MPTCP_MIB_RMSUBFLOW, /* Remove a subflow */ MPTCP_MIB_MPPRIOTX, /* Transmit a MP_PRIO */ MPTCP_MIB_MPPRIORX, /* Received a MP_PRIO */ diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 696b2c4613a7..7bea318ac5f2 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -213,6 +213,8 @@ void mptcp_pm_add_addr_received(struct mptcp_sock *msk, mptcp_pm_add_addr_send_ack(msk); } else if (mptcp_pm_schedule_work(msk, MPTCP_PM_ADD_ADDR_RECEIVED)) { pm->remote =3D *addr; + } else { + __MPTCP_INC_STATS(sock_net((struct sock *)msk), MPTCP_MIB_ADDADDRDROP); } =20 spin_unlock_bh(&pm->lock); @@ -253,8 +255,10 @@ void mptcp_pm_rm_addr_received(struct mptcp_sock *msk, mptcp_event_addr_removed(msk, rm_list->ids[i]); =20 spin_lock_bh(&pm->lock); - mptcp_pm_schedule_work(msk, MPTCP_PM_RM_ADDR_RECEIVED); - pm->rm_list_rx =3D *rm_list; + if (mptcp_pm_schedule_work(msk, MPTCP_PM_RM_ADDR_RECEIVED)) + pm->rm_list_rx =3D *rm_list; + else + __MPTCP_INC_STATS(sock_net((struct sock *)msk), MPTCP_MIB_RMADDRDROP); spin_unlock_bh(&pm->lock); } =20 --=20 2.35.1 From nobody Sat Apr 27 19:47:40 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp1866090jad; Fri, 18 Feb 2022 13:36:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJyvuQ0ljXbH3xkb/9ZCWyCwp8k6r2O4Hf/3D8P3vjNjsYwhubYw+rJyR35wfgMGBV0w7v72 X-Received: by 2002:a17:90a:cc14:b0:1b9:f392:56f7 with SMTP id b20-20020a17090acc1400b001b9f39256f7mr14455989pju.44.1645220162924; Fri, 18 Feb 2022 13:36:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645220162; cv=none; d=google.com; s=arc-20160816; b=W3VUUIQ20cqVeHE6vZ7GOSt4EarWnVvzvvLKeUeyeZIWNaDELckfUSgPF27sMGu49g 5q+ku332S8fqAGOEibhseq10CNJU9rB6JBbxouEcwmAdY6R5oT7PgyUyGkUf4AbN9b0Y WjycFF177v5YUCFpB6jOCu/GS2B5o5T5cDTYn1y9B+h7c+2uQbMT69Q6qhiI8CNarIsS 1d8LgMt7CEpfnAiu9ht3n8j0mGfqe3xMOyfAJ4dv5nPTO16M1FFCyrUZfPZVuQk0g3mX O/kUAL8RCwr/1ZLTQS5kWyLRywH1zX0UGn3rgRQcht3t/9mE198WaxKGef4jKcFksPwL zcDQ== 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=agjfjTMY3KFBATSPMneENkPePgxAlWr4Pb6qVCZBJBQ=; b=ocj2QBoFsde41Bu4BENAhONabdVn6wnUTfC/ROuUdIXV1nmuaVB06SgpDX+BkK5IVW OB4H85k60+fnev913PB9aOThELHEzMP5Sv+AE/FhEkmlezIhRK56UyE8d/u+QfZa1Ccj 3EmTf9jG8PYKn9+P9oga0+w+zuttZSjfzEIYBQmS/1OtSp80yoH7/2AtDLQ4Qr71QiUW yBtf/5s2yCTuFUwxgWbXHUDFsxzmsV8L3z7sU5eqK67SN0esNW86iPkIaMpAWfVRp0tc ZrlpwfDTIXiABF3hSNZR3RGqMVdkRBhdUNkwAQCyJ9FJxA/Bt+oHhHuTLF/qxeiCSFiS 7MOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=WBXtABcv; spf=pass (google.com: domain of mptcp+bounces-3864-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-3864-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id u6si19492094plf.40.2022.02.18.13.36.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 Feb 2022 13:36:02 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3864-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=WBXtABcv; spf=pass (google.com: domain of mptcp+bounces-3864-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-3864-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 ewr.edge.kernel.org (Postfix) with ESMTPS id DDF241C0EC4 for ; Fri, 18 Feb 2022 21:35:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DC9B04C91; Fri, 18 Feb 2022 21:35:55 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 EFD4C4C95 for ; Fri, 18 Feb 2022 21:35:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645220154; x=1676756154; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=fPNBc17stRFe/AsFOoZDtyY+Pe1mPa0jEIXT/R6zQi4=; b=WBXtABcvaBl9TlhpU8S2JW7mERW+xYzBBIScujGwJt5kmOZZnqOrMzGB zziSonwepGIXeft2YLGHCMbUAGTj2QIfa6fahQLTkE8u4gbn3Lytalh2x PrP5g+pJqUzADPviq7mBS2LcjFHZUlZ+LqxjDEqq2R/6pnoI2wyDz40EH HHOcB6XfjUMbSKiUbTK7Of/6lrS4ZkLiS06buzyAv6YuoisqaA3Phi3q7 eB9fkET0Sf6D9IiJj4fnZqjHNBoI/othIJ3PIjjeZYPy0s3v71ge0EroS JFLA2iEuMwEjAB3M8sofC0PidWa0N4c5+mS8lOfLF/mfNDJ6Hmwkq314O Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10262"; a="238639225" X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="238639225" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:53 -0800 X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="605664083" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.65.242]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:53 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Paolo Abeni , davem@davemloft.net, kuba@kernel.org, matthieu.baerts@tessares.net, geliang.tang@suse.com, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net 6/7] selftests: mptcp: more robust signal race test Date: Fri, 18 Feb 2022 13:35:43 -0800 Message-Id: <20220218213544.70285-7-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220218213544.70285-1-mathew.j.martineau@linux.intel.com> References: <20220218213544.70285-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: Paolo Abeni The in kernel MPTCP PM implementation can process a single incoming add address option at any given time. In the mentioned test the server can surpass such limit. Let the setup cope with that allowing a faster add_addr retransmission. Fixes: a88c9e496937 ("mptcp: do not block subflows creation on errors") Fixes: f7efc7771eac ("mptcp: drop argument port from mptcp_pm_announce_addr= ") Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/254 Reported-and-tested-by: Matthieu Baerts Reviewed-by: Matthieu Baerts Signed-off-by: Paolo Abeni Signed-off-by: Mat Martineau --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 15 ++++++++++++--- 1 file changed, 12 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 10b3bd805ac6..0d6a71e7bb59 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -752,11 +752,17 @@ chk_add_nr() local mis_ack_nr=3D${8:-0} local count local dump_stats + local timeout + + timeout=3D`ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout` =20 printf "%-39s %s" " " "add" - count=3D`ip netns exec $ns2 nstat -as | grep MPTcpExtAddAddr | awk '{prin= t $2}'` + count=3D`ip netns exec $ns2 nstat -as MPTcpExtAddAddr | grep MPTcpExtAddA= ddr | awk '{print $2}'` [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$add_nr" ]; then + + # if the test configured a short timeout tolerate greater then expected + # add addrs options, due to retransmissions + if [ "$count" !=3D "$add_nr" ] && [ "$timeout" -gt 1 -o "$count" -lt "$ad= d_nr" ]; then echo "[fail] got $count ADD_ADDR[s] expected $add_nr" ret=3D1 dump_stats=3D1 @@ -1158,7 +1164,10 @@ signal_address_tests() ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags signal ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags signal ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags signal - run_tests $ns1 $ns2 10.0.1.1 + + # the peer could possibly miss some addr notification, allow retransmissi= on + ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=3D1 + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow chk_join_nr "signal addresses race test" 3 3 3 =20 # the server will not signal the address terminating --=20 2.35.1 From nobody Sat Apr 27 19:47:40 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp1866113jad; Fri, 18 Feb 2022 13:36:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJwv1XDWRfnDrUi0YnfjDHOKJvsGkrgWiJrxW1vDArh1PLsAIs6Yr0FgEqQp4C4DIhi8LAYL X-Received: by 2002:a17:903:22d0:b0:14d:7bba:3746 with SMTP id y16-20020a17090322d000b0014d7bba3746mr9295441plg.155.1645220164144; Fri, 18 Feb 2022 13:36:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645220164; cv=none; d=google.com; s=arc-20160816; b=M5JHQdvMMPI5XO7R65WZcnNqHD0NXNwE1uBLbo7hHsYaeZvxOh6/8hVGvjAKXo/hJw X2WpsjNdGoIGui84QfexvM6eTJus/zidadGa4DyVSq1KI0gONLcPONoa5ZcU2jHQ9FOr Fap3/7G2GDvwcOLJLkRiZJbxz36SFN4GlG4nrTnBOFejKbY5W6j3fgv71oOZEavGIWqU B0rKcqVDtqC+cx9IJBKrPS67IqKK6YmrVAOIHaMQQNWhhi1YhQgwQF93MlhnZ4scRR/A YslI9hEyiRm+EPgef9lmY+GIo/65zN6H4BUyC0MgfoBFX6kGTMgKLsPx/37A3rZdBwA8 pONg== 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=EYOrGVSNVxhEFlBYVKZNHqoT3dILEYnEzgGNev9ZkQA=; b=kqY1/eMv+N7ZRibFvYKdq9opOglVyjxAS9PAIYeL6YUQrRNr8+FaYQbbGXTBmArfJ3 eXCUlqOcJV4uffmLOX9LSOD/cQAp3bo3X4HuipufUCf5+fCizzRlRJkGM6BTYYDPaHI4 9vrWpqJMwbdeWfNLjGLuUw246G3bOIivki87MSEiUpPWSUSDD3FYBkSbRWPfNhczUIrv PbNuN1vdHZ74yFfW7E132hLh3L+KejQJyzgPDQvy7fPTCQVxi7W+z2R7ePJrJEK1sxr+ JY8wHfirUQnyrKzzNrYyieUQtIuH6nO917GnOZbL+DRIp8LSHsrPE2p7gQwCEsNgEZJo RdDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=ghl1MYxx; spf=pass (google.com: domain of mptcp+bounces-3865-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-3865-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id lw9si533766pjb.59.2022.02.18.13.36.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 Feb 2022 13:36:04 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3865-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=ghl1MYxx; spf=pass (google.com: domain of mptcp+bounces-3865-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-3865-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 ewr.edge.kernel.org (Postfix) with ESMTPS id 14B2A1C0F20 for ; Fri, 18 Feb 2022 21:36:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EEDC94C93; Fri, 18 Feb 2022 21:35:55 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 122A64C97 for ; Fri, 18 Feb 2022 21:35:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645220155; x=1676756155; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=M2f5gKZYb+WbozvVkmuoQ5mgEVGSB54ZpJejDAL5YYw=; b=ghl1MYxx9+FGnUvlM/yog0pRrMzRt6k+q+I1iVH7mCiXK5PIgydaZlMC Ti3V/5LeO2l4rY93/BWfGl5HdeXZVwku4MNsrPHvLQYlRrl5eFazDhcpo fbM/m1OjtIeSFqchks6DhWkH+FjvgsPmJV3KSles6rAGyuVJACK2djRZv VbrV19Njl+3WywmGfYf5nQsNDMfTCdcyLtisFn+3MN1VIAONrqAAMka1N Nmh8v4GZEhkAuotub5fMCdFj4anpAr8nxXxTU9+UYDm82hjmhly2yFu8F I04yFjb4vhfo1akb00MYwS5RF756B5o2g/+177/tW/kVdVSiAvGq/vukO Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10262"; a="238639226" X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="238639226" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:53 -0800 X-IronPort-AV: E=Sophos;i="5.88,379,1635231600"; d="scan'208";a="605664086" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.65.242]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2022 13:35:53 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Paolo Abeni , davem@davemloft.net, kuba@kernel.org, matthieu.baerts@tessares.net, geliang.tang@suse.com, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net 7/7] selftests: mptcp: be more conservative with cookie MPJ limits Date: Fri, 18 Feb 2022 13:35:44 -0800 Message-Id: <20220218213544.70285-8-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220218213544.70285-1-mathew.j.martineau@linux.intel.com> References: <20220218213544.70285-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: Paolo Abeni Since commit 2843ff6f36db ("mptcp: remote addresses fullmesh"), an MPTCP client can attempt creating multiple MPJ subflow simultaneusly. In such scenario the server, when syncookies are enabled, could end-up accepting incoming MPJ syn even above the configured subflow limit, as the such limit can be enforced in a reliable way only after the subflow creation. In case of syncookie, only after the 3rd ack reception. As a consequence the related self-tests case sporadically fails, as it verify that the server always accept the expected number of MPJ syn. Address the issues relaxing the MPJ syn number constrain. Note that the check on the accepted number of MPJ 3rd ack still remains intact. Fixes: 2843ff6f36db ("mptcp: remote addresses fullmesh") Signed-off-by: Paolo Abeni Signed-off-by: Mat Martineau --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 15 ++++++++++++--- 1 file changed, 12 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 0d6a71e7bb59..0c8a2a20b96c 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -660,6 +660,7 @@ chk_join_nr() local ack_nr=3D$4 local count local dump_stats + local with_cookie =20 printf "%02u %-36s %s" "$TEST_COUNT" "$msg" "syn" count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinSynRx | awk '{= print $2}'` @@ -673,12 +674,20 @@ chk_join_nr() fi =20 echo -n " - synack" + with_cookie=3D`ip netns exec $ns2 sysctl -n net.ipv4.tcp_syncookies` count=3D`ip netns exec $ns2 nstat -as | grep MPTcpExtMPJoinSynAckRx | awk= '{print $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$syn_ack_nr" ]; then - echo "[fail] got $count JOIN[s] synack expected $syn_ack_nr" - ret=3D1 - dump_stats=3D1 + # simult connections exceeding the limit with cookie enabled could go up= to + # synack validation as the conn limit can be enforced reliably only after + # the subflow creation + if [ "$with_cookie" =3D 2 ] && [ "$count" -gt "$syn_ack_nr" ] && [ "$cou= nt" -le "$syn_nr" ]; then + echo -n "[ ok ]" + else + echo "[fail] got $count JOIN[s] synack expected $syn_ack_nr" + ret=3D1 + dump_stats=3D1 + fi else echo -n "[ ok ]" fi --=20 2.35.1