From nobody Fri Apr 19 07:08:06 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:38c:0:0:0:0 with SMTP id y12csp534321jap; Fri, 7 Jan 2022 11:25:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJypsWSefu481ZYnDwcEFihctImBnjo2CrTAM2R5W1joTE5kZ9y6ApnIgIzHZ77AqtkaZmO8 X-Received: by 2002:a05:6a00:847:b0:4ba:e622:9790 with SMTP id q7-20020a056a00084700b004bae6229790mr66212388pfk.5.1641583559588; Fri, 07 Jan 2022 11:25:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641583559; cv=none; d=google.com; s=arc-20160816; b=VBGuUNVq3kzBkICK4eoYGpl1KPh7b4PZNp5CYbdVH7GKemGNRfcl75crhLPmTCZuXn 9EahjKknTyLXVWfvuX7et8MSFW46eAgpNDQ+GkTI7nyquMGQzbUg+bVzPMk30aRQz/cp L/X3G4NhNJRONfrTL/7sUMaRtgvPMX2HSq8drzPNxYe2HWdHSHN4TG/wEio4WZ3jRY6b pbafNeAKbCXtizCbvKR0cO5d2pZnqmlotsZHDqOP2yN+kteb0u+Oy0ggmi/QTmw2+Zu9 5xb/RvFzO0P4X+M6PhKZB+oGIYn6ql/HUrAWscllQSLc5dQm6XpPycdnlBIq42c8PT5V ZCFw== 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=GbvHD8ONqXk/QVLTp9hN/iFtLRBRl7cdiSbeZ4ADE5E=; b=t4UVH3X1zM2jIopeNrL9cN3r7Mfs55uy32l2R1TBEdS4sGVNVll9nPilsZE1L/PRx7 AnwS1At2vf1Vxunlp4e4gornDk285O3Wo3ZQVZOLk/JLEKCkE3ZDrpbHYy2LHByOx4Th 1pcpupLvPNKZGPSXJWIuZyP/lIMKYntxh/XrQIAeY0VCwga6+9OwRJtJQMDevO4hVZsI Js8Uesqo7875XnDpZlM7439Q13E+b0HUwbfuXPMVAEKUAROX8dPAvqq+n/SCgg4Vl3AR kP6TRX1BXWmkD53sgQPkvSom/dH7tO+c82rJHamIiWTeHo7j3Wu0pnsRITTaUx8tERuV XKIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="PY/HE+7P"; spf=pass (google.com: domain of mptcp+bounces-2985-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-2985-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 f9si5634064pgc.94.2022.01.07.11.25.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 07 Jan 2022 11:25:59 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-2985-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="PY/HE+7P"; spf=pass (google.com: domain of mptcp+bounces-2985-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-2985-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 08DEC3E0F3C for ; Fri, 7 Jan 2022 19:25:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3ECED2CA5; Fri, 7 Jan 2022 19:25:57 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 C0D822CA2 for ; Fri, 7 Jan 2022 19:25: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=1641583555; x=1673119555; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=IrM1n4BNK5VUVrH5+/DEpZSC+KFM8jk9oHhk716sGRY=; b=PY/HE+7PhY6dWYi6Vt3X9iulD19Myru+DYpIJGTYkjpKzDnCsXEiyOsM g0jylBN/S+VqnPWljHQuZ7RXhZg+ubYkRqiNbb+vdKl10SwX6x6/MOwN+ snpOXjJn1iGbzkAiAtW7xR5+kdaVm0JYaefPjumZnWVv9LEpzYmQepPdS KAoCovJMiOfmGPD2FZL7wOZwQEy+ASPeUPJh/H9DnMSC6VPsCFyyq0lrW 5+ggHnp8k3uc8uId9gZCrcjHtJ76iTurFutBevInO+wWOIeGvkWUFcJej zbFY+i3nXZwZgOaK6DpIDYx1xcCEn4nHdPmGe9MrgSVqfPAqk7DzMc3Xf A==; X-IronPort-AV: E=McAfee;i="6200,9189,10219"; a="240478008" X-IronPort-AV: E=Sophos;i="5.88,270,1635231600"; d="scan'208";a="240478008" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jan 2022 11:25:53 -0800 X-IronPort-AV: E=Sophos;i="5.88,270,1635231600"; d="scan'208";a="527478586" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.36.93]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jan 2022 11:25:53 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Paolo Abeni , davem@davemloft.net, kuba@kernel.org, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 1/3] selftests: mptcp: more stable join tests-cases Date: Fri, 7 Jan 2022 11:25:22 -0800 Message-Id: <20220107192524.445137-2-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220107192524.445137-1-mathew.j.martineau@linux.intel.com> References: <20220107192524.445137-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 MPTCP join self-tests are a bit fragile as they reply on delays instead of events to catch-up with the expected sockets states. Replace the delay with state checking where possible and reduce the number of sleeps in the most complex scenarios. This will both reduce the tests run-time and will improve stability. Signed-off-by: Paolo Abeni Signed-off-by: Mat Martineau --- .../testing/selftests/net/mptcp/mptcp_join.sh | 120 ++++++++++-------- 1 file changed, 68 insertions(+), 52 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 3165bd1a43cc..27d0eb9afdca 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -238,6 +238,45 @@ is_v6() [ -z "${1##*:*}" ] } =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 +} + +rm_addr_count() +{ + ns=3D${1} + + ip netns exec ${ns} nstat -as | grep MPTcpExtRmAddr | awk '{print $2}' +} + +# $1: ns, $2: old rm_addr counter in $ns +wait_rm_addr() +{ + local ns=3D"${1}" + local old_cnt=3D"${2}" + local cnt + local i + + for i in $(seq 10); do + cnt=3D$(rm_addr_count ${ns}) + [ "$cnt" =3D "${old_cnt}" ] || break + sleep 0.1 + done +} + do_transfer() { listener_ns=3D"$1" @@ -307,7 +346,7 @@ do_transfer() fi spid=3D$! =20 - sleep 1 + wait_local_port_listen "${listener_ns}" "${port}" =20 if [ "$test_link_fail" -eq 0 ];then timeout ${timeout_test} \ @@ -324,10 +363,13 @@ do_transfer() fi cpid=3D$! =20 + # let the mptcp subflow be established in background before + # do endpoint manipulation + [ $addr_nr_ns1 =3D "0" -a $addr_nr_ns2 =3D "0" ] || sleep 1 + if [ $addr_nr_ns1 -gt 0 ]; then let add_nr_ns1=3Daddr_nr_ns1 counter=3D2 - sleep 1 while [ $add_nr_ns1 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -339,7 +381,6 @@ do_transfer() let counter+=3D1 let add_nr_ns1-=3D1 done - sleep 1 elif [ $addr_nr_ns1 -lt 0 ]; then let rm_nr_ns1=3D-addr_nr_ns1 if [ $rm_nr_ns1 -lt 8 ]; then @@ -347,22 +388,19 @@ do_transfer() pos=3D1 dump=3D(`ip netns exec ${listener_ns} ./pm_nl_ctl dump`) if [ ${#dump[@]} -gt 0 ]; then - sleep 1 - while [ $counter -le $rm_nr_ns1 ] do id=3D${dump[$pos]} + rm_addr=3D$(rm_addr_count ${connector_ns}) ip netns exec ${listener_ns} ./pm_nl_ctl del $id - sleep 1 + wait_rm_addr ${connector_ns} ${rm_addr} let counter+=3D1 let pos+=3D5 done fi elif [ $rm_nr_ns1 -eq 8 ]; then - sleep 1 ip netns exec ${listener_ns} ./pm_nl_ctl flush elif [ $rm_nr_ns1 -eq 9 ]; then - sleep 1 ip netns exec ${listener_ns} ./pm_nl_ctl del 0 ${connect_addr} fi fi @@ -373,10 +411,13 @@ do_transfer() addr_nr_ns2=3D${addr_nr_ns2:9} fi =20 + # if newly added endpoints must be deleted, give the background msk + # some time to created them + [ $addr_nr_ns1 -gt 0 -a $addr_nr_ns2 -lt 0 ] && sleep 1 + if [ $addr_nr_ns2 -gt 0 ]; then let add_nr_ns2=3Daddr_nr_ns2 counter=3D3 - sleep 1 while [ $add_nr_ns2 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -388,7 +429,6 @@ do_transfer() let counter+=3D1 let add_nr_ns2-=3D1 done - sleep 1 elif [ $addr_nr_ns2 -lt 0 ]; then let rm_nr_ns2=3D-addr_nr_ns2 if [ $rm_nr_ns2 -lt 8 ]; then @@ -396,19 +436,18 @@ do_transfer() pos=3D1 dump=3D(`ip netns exec ${connector_ns} ./pm_nl_ctl dump`) if [ ${#dump[@]} -gt 0 ]; then - sleep 1 - while [ $counter -le $rm_nr_ns2 ] do + # rm_addr are serialized, allow the previous one to complete id=3D${dump[$pos]} + rm_addr=3D$(rm_addr_count ${listener_ns}) ip netns exec ${connector_ns} ./pm_nl_ctl del $id - sleep 1 + wait_rm_addr ${listener_ns} ${rm_addr} let counter+=3D1 let pos+=3D5 done fi elif [ $rm_nr_ns2 -eq 8 ]; then - sleep 1 ip netns exec ${connector_ns} ./pm_nl_ctl flush elif [ $rm_nr_ns2 -eq 9 ]; then local addr @@ -417,7 +456,6 @@ do_transfer() else addr=3D"10.0.1.2" fi - sleep 1 ip netns exec ${connector_ns} ./pm_nl_ctl del 0 $addr fi fi @@ -539,6 +577,14 @@ run_tests() lret=3D$? } =20 +dump_stats() +{ + echo Server ns stats + ip netns exec $ns1 nstat -as | grep Tcp + echo Client ns stats + ip netns exec $ns2 nstat -as | grep Tcp +} + chk_csum_nr() { local msg=3D${1:-""} @@ -570,12 +616,7 @@ chk_csum_nr() else echo "[ ok ]" fi - if [ "${dump_stats}" =3D 1 ]; then - echo Server ns stats - ip netns exec $ns1 nstat -as | grep MPTcp - echo Client ns stats - ip netns exec $ns2 nstat -as | grep MPTcp - fi + [ "${dump_stats}" =3D 1 ] && dump_stats } =20 chk_fail_nr() @@ -607,12 +648,7 @@ chk_fail_nr() echo "[ ok ]" fi =20 - if [ "${dump_stats}" =3D 1 ]; then - echo Server ns stats - ip netns exec $ns1 nstat -as | grep MPTcp - echo Client ns stats - ip netns exec $ns2 nstat -as | grep MPTcp - fi + [ "${dump_stats}" =3D 1 ] && dump_stats } =20 chk_join_nr() @@ -656,12 +692,7 @@ chk_join_nr() else echo "[ ok ]" fi - if [ "${dump_stats}" =3D 1 ]; then - echo Server ns stats - ip netns exec $ns1 nstat -as | grep MPTcp - echo Client ns stats - ip netns exec $ns2 nstat -as | grep MPTcp - fi + [ "${dump_stats}" =3D 1 ] && dump_stats if [ $checksum -eq 1 ]; then chk_csum_nr chk_fail_nr 0 0 @@ -823,12 +854,7 @@ chk_add_nr() echo "" fi =20 - if [ "${dump_stats}" =3D 1 ]; then - echo Server ns stats - ip netns exec $ns1 nstat -as | grep MPTcp - echo Client ns stats - ip netns exec $ns2 nstat -as | grep MPTcp - fi + [ "${dump_stats}" =3D 1 ] && dump_stats } =20 chk_rm_nr() @@ -871,12 +897,7 @@ chk_rm_nr() echo "[ ok ]" fi =20 - if [ "${dump_stats}" =3D 1 ]; then - echo Server ns stats - ip netns exec $ns1 nstat -as | grep MPTcp - echo Client ns stats - ip netns exec $ns2 nstat -as | grep MPTcp - fi + [ "${dump_stats}" =3D 1 ] && dump_stats } =20 chk_prio_nr() @@ -908,12 +929,7 @@ chk_prio_nr() echo "[ ok ]" fi =20 - if [ "${dump_stats}" =3D 1 ]; then - echo Server ns stats - ip netns exec $ns1 nstat -as | grep MPTcp - echo Client ns stats - ip netns exec $ns2 nstat -as | grep MPTcp - fi + [ "${dump_stats}" =3D 1 ] && dump_stats } =20 chk_link_usage() @@ -1651,7 +1667,7 @@ add_addr_ports_tests() ip netns exec $ns2 ./pm_nl_ctl limits 1 3 ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + run_tests $ns1 $ns2 10.0.1.1 0 -8 -2 slow chk_join_nr "flush subflows and signal with port" 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 --=20 2.34.1 From nobody Fri Apr 19 07:08:06 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:38c:0:0:0:0 with SMTP id y12csp534306jap; Fri, 7 Jan 2022 11:25:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJwVgAqSi3MvyDipWqhhIoKyA9lQf23+xSN/LMcCVemFwM1lve0kwu8MNXAGA1QQ+0ZzRvQ8 X-Received: by 2002:a63:b955:: with SMTP id v21mr2408860pgo.374.1641583558195; Fri, 07 Jan 2022 11:25:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641583558; cv=none; d=google.com; s=arc-20160816; b=YU/1T/zjtTM3xmPUudd+eOgbmq++5q26Dc9dYSCIbItI2DEMp1TYa02IF9XZTqUoN/ lH2ee+JFHjY48SISjZ2WqMCh27EZ8QwG7KKIcUJD8pTU/qfg0jGlzgMvTg6mG2D2NfKJ 97Y72UwIfl8uX3DnM83FEvhAFM5ScG0f6mRyKpLstrxawiAdJXrTOzDDVY8hPdlcSEm9 OdIk38A6g+mXv/xHLXfQwMWUhjkUy3vGxwCEWDARfLYUIegcTCIRb5mtC1D4/ORIJOWO Tgt5Adfkhr1CvDu9ZjePI5OlrqkrPXnYEBGSj/g5/eI9jzxXu1TK4z4Xk3D4UoI4w1dZ E4lA== 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=eZ5dbb5PkVdf7ygmebZXfnLK5+8FuwH6z8fBw0+6u1E=; b=k6f9rLhIKmQj6Zsb6kbSY6Lke5PZd9OUV04dGDuzlNBb6gnqPypvBa0BXNRLUyJnoV hhxIlEZ5CzDLohyW4BCeO+m581OdeN8Uawg1Aiuvs619ZVYq+dMJ7ov54n/ZqWWjmznL VaPvBkkVCGLeMXWJAbOCVA2Z2VgOo6mK5TdiI2s8rGFReyhsAfkdDaf99UzeSREnVJy6 pAwrd6LD1VX8Z8IcrghgxIfNmkDpiDQjnbRrqcbgszGwQiCpspoTOeDnU1hYlUgh+c4H EbNHFvPQbDZcRbFKrZbDzKQB6dAkTvvvLfyksBllrj/3oAFfmYC0DWD1TlBWKABhJ4TE yH7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=LRBrNEbY; spf=pass (google.com: domain of mptcp+bounces-2984-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-2984-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 pf16si4713152pjb.145.2022.01.07.11.25.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 07 Jan 2022 11:25:58 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-2984-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=LRBrNEbY; spf=pass (google.com: domain of mptcp+bounces-2984-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-2984-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 BDF833E0F21 for ; Fri, 7 Jan 2022 19:25:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1D2152CA4; Fri, 7 Jan 2022 19:25:57 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 005C52CA3 for ; Fri, 7 Jan 2022 19:25: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=1641583556; x=1673119556; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=YKzjUf+5IIZ8MDyCvXc+81rmE6lK1eAM7jrYT8awB10=; b=LRBrNEbYyphBQAJUBWtxPqXAhPP/0JBZFBXO7mMnlNVCJJhIpp7NwxH3 cvpURqMxdmmpkVB+E7ywZcquWqEbj53tzHGIA9nyAwk0mfLKOKGF6/vuN tpeRmpfjFa9G12I0lc9UHy0OE8FN+1ZaelCznQXwWqjet0rvLLNOJf25V Dj0CAAm6gBQZD9PrOFvZZmmjU4PPoqb5TdesHn3X5TNM1AkbylwTnISHp XmesgE1popnxUzLwxREpx9yHUx7rg/OkimLyAKd+FWs9iTXzBiaqlaVW1 +2wwo+N1NRab383eo0YZqNE/qqgT0+INVAn3kqdFanWo+8eMZYwGRVuhe Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10219"; a="240478012" X-IronPort-AV: E=Sophos;i="5.88,270,1635231600"; d="scan'208";a="240478012" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jan 2022 11:25:53 -0800 X-IronPort-AV: E=Sophos;i="5.88,270,1635231600"; d="scan'208";a="527478588" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.36.93]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jan 2022 11:25:53 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 2/3] mptcp: change the parameter of __mptcp_make_csum Date: Fri, 7 Jan 2022 11:25:23 -0800 Message-Id: <20220107192524.445137-3-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220107192524.445137-1-mathew.j.martineau@linux.intel.com> References: <20220107192524.445137-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 changed the type of the last parameter of __mptcp_make_csum() from __sum16 to __wsum. And export this function in protocol.h. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/options.c | 8 ++++---- net/mptcp/protocol.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 38e34a1fb2dd..8ed2d9f4a84d 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -1233,7 +1233,7 @@ static void mptcp_set_rwin(const struct tcp_sock *tp) WRITE_ONCE(msk->rcv_wnd_sent, ack_seq); } =20 -static u16 __mptcp_make_csum(u64 data_seq, u32 subflow_seq, u16 data_len, = __sum16 sum) +u16 __mptcp_make_csum(u64 data_seq, u32 subflow_seq, u16 data_len, __wsum = sum) { struct csum_pseudo_header header; __wsum csum; @@ -1248,14 +1248,14 @@ static u16 __mptcp_make_csum(u64 data_seq, u32 subf= low_seq, u16 data_len, __sum1 header.data_len =3D htons(data_len); header.csum =3D 0; =20 - csum =3D csum_partial(&header, sizeof(header), ~csum_unfold(sum)); + csum =3D csum_partial(&header, sizeof(header), sum); return (__force u16)csum_fold(csum); } =20 static u16 mptcp_make_csum(const struct mptcp_ext *mpext) { return __mptcp_make_csum(mpext->data_seq, mpext->subflow_seq, mpext->data= _len, - mpext->csum); + ~csum_unfold(mpext->csum)); } =20 void mptcp_write_options(__be32 *ptr, const struct tcp_sock *tp, @@ -1376,7 +1376,7 @@ void mptcp_write_options(__be32 *ptr, const struct tc= p_sock *tp, __mptcp_make_csum(opts->data_seq, opts->subflow_seq, opts->data_len, - opts->csum), ptr); + ~csum_unfold(opts->csum)), ptr); } else { put_unaligned_be32(opts->data_len << 16 | TCPOPT_NOP << 8 | TCPOPT_NOP, ptr); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index a77f512d5ad7..0e6b42c76ea0 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -725,6 +725,7 @@ void mptcp_token_destroy(struct mptcp_sock *msk); void mptcp_crypto_key_sha(u64 key, u32 *token, u64 *idsn); =20 void mptcp_crypto_hmac_sha(u64 key1, u64 key2, u8 *msg, int len, void *hma= c); +u16 __mptcp_make_csum(u64 data_seq, u32 subflow_seq, u16 data_len, __wsum = sum); =20 void __init mptcp_pm_init(void); void mptcp_pm_data_init(struct mptcp_sock *msk); --=20 2.34.1 From nobody Fri Apr 19 07:08:06 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:38c:0:0:0:0 with SMTP id y12csp534338jap; Fri, 7 Jan 2022 11:26:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJy+AZVvy2Qs/95TGAXH1VuyPsSWRLQDb2fTXefJg2kSkM51JIWDZ8IduMHIDfMtjqpCxZSe X-Received: by 2002:a37:689:: with SMTP id 131mr46878603qkg.743.1641583560999; Fri, 07 Jan 2022 11:26:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641583560; cv=none; d=google.com; s=arc-20160816; b=bpTj1DsyKsIlsvM6KP4Ms9BPDuAvz34xbQzRhH5ITqBHvEhv7ENCNUMzWOlyQfx5+Q F47dJ4GGAPAnXVH+nkEV2gOJUzKjP+983aBIL3P51gmqvZGtsW9E4dakU23Y5KlVo1M+ BnFMzLEcKXkCfVSkjl3cd8HObNwWLs9ENW9eWAZ8j7CLM0F51rkwsg3xdAgP8DHv7guz kGfGeU8njqMJyQu0XQLPTw8+AG0W0zbobBfAVQ1vpluUWqoCiRS/j2mWY7m5DS4Y5a1j QWaadZzIZUqtY/SihgrGg+pYVU+BYCt6KwvR1rSdW9UCCcc3EiWEd2fSZfJASoi4z2Y9 SDMw== 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=Xd7z4eMwgtzz0y+eWVzOqwQEm7XdrjSnM353+4BYHm0=; b=NmAtjqyoBI15f1SLP0R8PQvpzjobBuuiWY725aR4oI9pbBBpYATd0Gi0wOf8YvFH1S rCnbA9mo6eWp1GJENzh0rAE1/8DtDuY45KMggbVPTP4bcLQrvfWnFManhIu+SfmtxfP1 QS8wD5IsCA2ETwkrRL+Z5nzc0iQJPgT18k2ykd7do4KjDWor8AOHoSeIbp2+qfyoUAXN tmBR65DxzHQoHJXTq1ao0J1DVB1ezqchahKscw2qCwsKyREIQIE4Gyoq0GKp8OFQ+8G9 dM9/Rfd5Dey/2upExplSiLv8nTTIHQOKvJBW62nzjjuyfjPrIiyxnKB8yA7Qu6QeRR7y BnrQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=ITOSHdLe; spf=pass (google.com: domain of mptcp+bounces-2986-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-2986-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 v9si2326566qtx.254.2022.01.07.11.26.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 07 Jan 2022 11:26:00 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-2986-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=ITOSHdLe; spf=pass (google.com: domain of mptcp+bounces-2986-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-2986-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 A846E1C0A44 for ; Fri, 7 Jan 2022 19:26:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 38CE12CA1; Fri, 7 Jan 2022 19:25:58 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 25BFB2CA3 for ; Fri, 7 Jan 2022 19:25:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1641583557; x=1673119557; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qeEpQkK0Sdp8utChRD6Bzjz2YY8JES0iyVlAhZDub5s=; b=ITOSHdLegNbOu35RDm7Fy+DKpioEsIBb0Pgwb/70Q8f3eOTnvoN1fE52 Wg4AX8MBjLgD6dykuhZMqead8O7s1qTcwCIy9BlTg99pfkgUxrqCxtKyQ cfTM7hWlefa8YWcS4JcCewVPCg+ZnKWA0fMTqKViSYtXjR65QHsVC/zij L+gV5YtvmZHECO9ADefAPxVgi0/cpIa/DZ4q+XdZUcoKXxgtAnau+K0IF AF13JEGnokO4ohBa4IJ6bMUwtWOp+vduYdZDz8HG6d8SmhHUy5rXGl+Nb Ne50e2T8xcrbcxqwt5CF9ScawJdc23GXYzbYBYdE+1DkWI//aPXod3SXx A==; X-IronPort-AV: E=McAfee;i="6200,9189,10219"; a="240478013" X-IronPort-AV: E=Sophos;i="5.88,270,1635231600"; d="scan'208";a="240478013" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jan 2022 11:25:53 -0800 X-IronPort-AV: E=Sophos;i="5.88,270,1635231600"; d="scan'208";a="527478590" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.36.93]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jan 2022 11:25:53 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 3/3] mptcp: reuse __mptcp_make_csum in validate_data_csum Date: Fri, 7 Jan 2022 11:25:24 -0800 Message-Id: <20220107192524.445137-4-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220107192524.445137-1-mathew.j.martineau@linux.intel.com> References: <20220107192524.445137-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 reused __mptcp_make_csum() in validate_data_csum() instead of open-coding. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/subflow.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 5bedc7e88977..bea47a1180dc 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -845,9 +845,8 @@ static enum mapping_status validate_data_csum(struct so= ck *ssk, struct sk_buff * bool csum_reqd) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(ssk); - struct csum_pseudo_header header; u32 offset, seq, delta; - __wsum csum; + u16 csum; int len; =20 if (!csum_reqd) @@ -908,13 +907,11 @@ static enum mapping_status validate_data_csum(struct = sock *ssk, struct sk_buff * * while the pseudo header requires the original DSS data len, * including that */ - header.data_seq =3D cpu_to_be64(subflow->map_seq); - header.subflow_seq =3D htonl(subflow->map_subflow_seq); - header.data_len =3D htons(subflow->map_data_len + subflow->map_data_fin); - header.csum =3D 0; - - csum =3D csum_partial(&header, sizeof(header), subflow->map_data_csum); - if (unlikely(csum_fold(csum))) { + csum =3D __mptcp_make_csum(subflow->map_seq, + subflow->map_subflow_seq, + subflow->map_data_len + subflow->map_data_fin, + subflow->map_data_csum); + if (unlikely(csum)) { MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_DATACSUMERR); subflow->send_mp_fail =3D 1; MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_MPFAILTX); --=20 2.34.1