From nobody Mon May 6 22:26:12 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:9f92:0:0:0:0:0 with SMTP id a18csp2433423jam; Wed, 9 Feb 2022 13:25:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJx11fvJv65lNMzrj48/anFf0SxVrVNShuG5IANSzQQl/1AwyU4JYEyODMKNSwdX35hLu18D X-Received: by 2002:a05:622a:10f:: with SMTP id u15mr2745511qtw.339.1644441952880; Wed, 09 Feb 2022 13:25:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644441952; cv=none; d=google.com; s=arc-20160816; b=Leoxe0WXsVhlEusu7Ax8QU1m6Uc6SCvXA26HVg2w/RSgoPSjKFlv/50lsSqeXVifxJ 6VG9pWH7ePcEvRGna5mx+vM+DSJVvu6Sjxd2TjcktjNiSEyUl3RoO9ezJyzjd2xOTExr tAS/sJmV48RyPzxwRZJiyv0h+KVxjULAdKguusrbIphGZcihbRuRsp3qnc5q9Ne1Qi9q 52a+5Pi8MXhR42i1jLq1fmctHP1gvSZSKBMtOop3HoTHXLVVIsmR3jPSsQtku/h8hO7+ YsrW5neqiHkjzpaSU+3K0BvN/ysDl9DgEX1n1/jkUMCacKVsDuh1xyJAtVkXdPLm3jmf b4Sw== 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=Yo+24i5Jrplu+k7vy6a2D0OwpIYXGc644PFMEbOVLMQ=; b=wq0Qb6ThPdbcit/6xYIs77LB+8fX6kHPmN/4Yn0U8VnBrDfgm3i2bqtXuii9t5tcJQ mXPtC/57ow5CVt4/kALVaI3zdqUGNZmac8QkYkZOVCGmnOXIyFaXv2jRb8dehGnsHfu/ Z3jLIVYF+r57yfFrMqAvJDxrr5UtG45dyHobQExkjbc2fQyYSiGmLwb9WlUhS28Z/Qr0 a9p9DENPE+YDasKzl6QKiGwKvNjHYjo06IutjwncrmkOmv2bWd8lwWbCT2EsVOT6iwvC wTDd0pVmKVugu8yT091Xxl193aoLdVyj+DtCrKtxmEKxO9uTTaGxlIcqzLxoi7R7BTVg jc3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=hANNMvS7; spf=pass (google.com: domain of mptcp+bounces-3591-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3591-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id b27si3585949qkh.165.2022.02.09.13.25.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Feb 2022 13:25:52 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3591-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=hANNMvS7; spf=pass (google.com: domain of mptcp+bounces-3591-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3591-wpasupplicant.patchew=gmail.com@lists.linux.dev" 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 7FC8D1C0BDE for ; Wed, 9 Feb 2022 21:25:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 36D412CA4; Wed, 9 Feb 2022 21:25:50 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 873C229CA for ; Wed, 9 Feb 2022 21:25:48 +0000 (UTC) Received: by mail-wm1-f45.google.com with SMTP id k6-20020a05600c1c8600b003524656034cso2593693wms.2 for ; Wed, 09 Feb 2022 13:25:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares-net.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Yo+24i5Jrplu+k7vy6a2D0OwpIYXGc644PFMEbOVLMQ=; b=hANNMvS79A10GGXEcz2BqH8YaMaYeqRwb5qLpmYVfNMcgi8uXyHjlb2sbyTXpDmeRS 8yDhM0GBnTmK6EqjNAcJL4oliZdeAccIGhqO8QjOja9nu9S/BjGMXX32icYrhjEPhmaB Kuj1qztYA3n6SLKTbA3TDif3s7nkFHuVABdUZ23PZhKvOHIp1aOAgBQGY0h00VJJjMKW HTUct+mZG7wwRX6l3j2uj7Ah4UztjxPiLBsADnAoPDOUzDUUseBLAugBjrfs0osZML6h S3xisht2U+Q2ra8fBkeVKcwGWKPbA2fNEXVq0aNLxybEbNymXdQfftBMS7qiFs0DeC1u z0Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Yo+24i5Jrplu+k7vy6a2D0OwpIYXGc644PFMEbOVLMQ=; b=2PEZptgswvX0JmaSQoNruSYBx4nTyNZcEKdutLpgcd91uw+/l1uja5/cc+ZMFiq/A4 G4aHGUIUaloNdzYjtmu73cMV2UpbC/tTDGWnXzRW4uknWL2farbtVy1RrPWkZRa7RYzU y32rzgBAbzh2o6BJw1GzbmbU1kLhHWsG5ptE7z/eDED1BB+Sr/6W5yy6G/OpyXLXcblr WAF0e0Q5laRfNu42IcjxNY8F0mpVZ+VQRkT4LQFmRcSV0lMfE8n9qa3ZSsW0wNlCOlwb HbrHg53V3pQJa4BRrWqF6deBaPClp/WLICT65JGXD1uwOzqbkZqH9HI+IXPAeTnf9cQl /bTg== X-Gm-Message-State: AOAM532yNsAvVhjyEIvEFsh4PZmzLWVBCmppiZep1ICiCjv1vherWEos T+SE9umeXJVtMOtZjAslOBcgG/wYKK1FtVRZ X-Received: by 2002:a05:600c:22d3:: with SMTP id 19mr4493592wmg.139.1644441946355; Wed, 09 Feb 2022 13:25:46 -0800 (PST) Received: from tsr-vdi-mbaerts.nix.tessares.net (static.23.216.130.94.clients.your-server.de. [94.130.216.23]) by smtp.gmail.com with ESMTPSA id p14sm18500730wrr.7.2022.02.09.13.25.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 13:25:45 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next 1/9] selftests: mptcp: join: allow running -cCi Date: Wed, 9 Feb 2022 22:25:12 +0100 Message-Id: <20220209212520.2989291-2-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220209212520.2989291-1-matthieu.baerts@tessares.net> References: <20220209212520.2989291-1-matthieu.baerts@tessares.net> 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" Without this patch, no tests would be ran when launching: mptcp_join.sh -cCi In any order or a combination with 2 of these letters. Signed-off-by: Matthieu Baerts Reviewed-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 66ac990415e6..9bbb95837f73 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -2242,7 +2242,7 @@ for arg in "$@"; do fi =20 # exception for the capture/checksum/ip_mptcp options, the rest means: a = part of the tests - if [ "${arg}" !=3D "-c" ] && [ "${arg}" !=3D "-C" ] && [ "${arg}" !=3D "-= i" ]; then + if ! [[ "${arg}" =3D~ ^"-"[cCi]+$ ]]; then do_all_tests=3D0 fi done --=20 2.34.1 From nobody Mon May 6 22:26:12 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:9f92:0:0:0:0:0 with SMTP id a18csp2433434jam; Wed, 9 Feb 2022 13:25:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJw9BISTckuoafj05xgHq+Av2kBQnYEFTtnzTh36TfD7RNKpTUiuihqTPOif9ZoPLgmL+yVf X-Received: by 2002:ad4:5de5:: with SMTP id jn5mr1569049qvb.92.1644441953869; Wed, 09 Feb 2022 13:25:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644441953; cv=none; d=google.com; s=arc-20160816; b=aZoR9CkHSVJ4kGzL4Yb+J3lLDKttLe2Krqtsd5nvqMf4hvbUD/yyrmN8b9HzIq39VK yMy7CjtwbVWKx85Yr0I89LRFQBMP4PZPGEm69jXG3GWwWW/LZ4Xq/b6mL+UtEuRl4EOo 6+IaQ4FibvYz4LrYZz5DdsUgaUIh6+ctgb+XoFintIG+9IUGEQ8S3YSiPmrbtHkJus3b nAsK9CugGniTQQCdFVVxEzTfHBfUrblfrxtEW2DZ6z+Xlx4yy8aUjLSMrFpvvUPo5JqJ YActZ/exgI/RAVP6nkZIDZ99C9wyxNn5BJ02sbveofy+p1H1bHe59peRR899GB2BaZPZ w8Ow== 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=50xBgF1MpcCvK3Ot0TteYG/Lyw8DZctL9HEz3sQuzrM=; b=lV3KwsGx5qVWa9kjWNTMOIFcwYTn5tieGjsOTO2gTTtBHzQ9uTk+zKx1eVOijetord MG1A4z+zDsURuAZ+rhnDYytpIJiyOg8JjBNylH9u50XHO0+N/jrR1v8h11Lb6u42Skzz kL86/JGi4wD5SBIL9FJ45ZM9X/ejV4N33WWN49VUXsERDFgBczW50UxhbWCpDBRJUnnL 96UwtyI6honV7AzHuBXBI12ysf/Zvox9Eto9IaRIqyihlwRzgxuBs5jbmPaZHQotM6Cy Y4g2krCLIRZWjAw/pyOvv9cRKvKp9tSwhMICGQPoYa4FhsRhoTqROCo2o5XVqhHC3/Ks bI/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=rPsg3jSi; spf=pass (google.com: domain of mptcp+bounces-3592-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3592-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id gh7si2796882qvb.247.2022.02.09.13.25.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Feb 2022 13:25:53 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3592-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=rPsg3jSi; spf=pass (google.com: domain of mptcp+bounces-3592-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3592-wpasupplicant.patchew=gmail.com@lists.linux.dev" 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 9CF071C0BB1 for ; Wed, 9 Feb 2022 21:25:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1B49C2CA7; Wed, 9 Feb 2022 21:25:51 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DED022C80 for ; Wed, 9 Feb 2022 21:25:48 +0000 (UTC) Received: by mail-wr1-f43.google.com with SMTP id o24so3550231wro.3 for ; Wed, 09 Feb 2022 13:25:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares-net.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=50xBgF1MpcCvK3Ot0TteYG/Lyw8DZctL9HEz3sQuzrM=; b=rPsg3jSi6mzqDGZXt+D7x13LZhUVEkXJS5Dr9QJHQK0MIl3UaejFq8g0M92DQJpHhx 4cfjE6iW74sCHDUh3mPjbtiCn2kGznvfJA29yDuScZl7tm8wCidhgrcN34dJ7LCXzb7O SXA1XsG9Aklvz5T/vHTo1/r6VjYTebXADKqzXDnx5ZQgQGDDP0aQ7WC54jTpTFVC4nnP QyyYsDG3EDjgvrvvq2yqDho714+55gxCAsczm9euEZDONn3tZH/Z+V9NnPBs4o4FBSaX 0JjMVt63PGkzphj4JyMw6FZSglemr+v/DdYT1htl0PDeFitEU9kRRzaNeCOCRHieqmJd GErg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=50xBgF1MpcCvK3Ot0TteYG/Lyw8DZctL9HEz3sQuzrM=; b=IUfycJ6EkdwNMfo4+lh0R3e4EDFefPnttvKcm7hU+8dYawNPswoV2W/tZ/XJkBbtyI kfVHXoz+jBQR9NtGgk9Dd7luMwV4TCle1QuwFY+fDNx8Kiqa1/OTgg1bWRzeffoc6xa/ xAPoDvzQFBNeKxrdEdVDu1c0nbv22kXnyKNvGKavrzdTfVE476caeG/xeyyHcQ0oO13/ j9aE/oYzbUiiXexbxqU07dqSSEUOselriS4rlNsJiFrkNynb7i6vgRSljHNvRgJb76Tq uTCy1ne/ToEf539G+e5rMSOvEQJXcAFeo8EOJHYDtd9ydZPJC2pDhqk1O5IQ2cE47bKv efAQ== X-Gm-Message-State: AOAM531YWFu96CXXMifNmydKsK8eZWoEoY4nOhBJW3vUW2BBwm2nZP8g URV41MHhG0vi8aRTa8Hv67o3hBRuhuQxsRxy X-Received: by 2002:adf:eec2:: with SMTP id a2mr3567806wrp.557.1644441946871; Wed, 09 Feb 2022 13:25:46 -0800 (PST) Received: from tsr-vdi-mbaerts.nix.tessares.net (static.23.216.130.94.clients.your-server.de. [94.130.216.23]) by smtp.gmail.com with ESMTPSA id p14sm18500730wrr.7.2022.02.09.13.25.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 13:25:46 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next 2/9] selftests: mptcp: join: exit after usage() Date: Wed, 9 Feb 2022 22:25:13 +0100 Message-Id: <20220209212520.2989291-3-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220209212520.2989291-1-matthieu.baerts@tessares.net> References: <20220209212520.2989291-1-matthieu.baerts@tessares.net> 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" With an error if it is an unknown option. Signed-off-by: Matthieu Baerts Reviewed-by: Mat Martineau --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 13 ++++++++++++- 1 file changed, 12 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 9bbb95837f73..327f4ace5153 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -2194,8 +2194,14 @@ all_tests() userspace_tests } =20 +# [$1: error message] usage() { + if [ -n "${1}" ]; then + echo "${1}" + ret=3D1 + fi + echo "mptcp_join usage:" echo " -f subflows_tests" echo " -e subflows_error_tests" @@ -2217,6 +2223,8 @@ usage() echo " -C enable data checksum" echo " -i use ip mptcp" echo " -h help" + + exit ${ret} } =20 sin=3D$(mktemp) @@ -2308,9 +2316,12 @@ while getopts 'fesltra64bpkdmuchCSi' opt; do ;; i) ;; - h | *) + h) usage ;; + *) + usage "Unknown option: -${opt}" + ;; esac done =20 --=20 2.34.1 From nobody Mon May 6 22:26:12 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:9f92:0:0:0:0:0 with SMTP id a18csp2433476jam; Wed, 9 Feb 2022 13:25:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJxJpgTAF7Cck3n51cDEmZAdVn3E6AZ6MMiu3ZRi6+4LTYo/JmbELY/NeKkTdb4RlzpTzZsr X-Received: by 2002:a05:620a:1a0b:: with SMTP id bk11mr2321386qkb.232.1644441958592; Wed, 09 Feb 2022 13:25:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644441958; cv=none; d=google.com; s=arc-20160816; b=uQzpDUY5piWYFMeaWg2LpAcW05F5fok9iNrxmPggUr3IlyV3fAI/dTGaoy5gihpdPf zZvYz6L+/x3rCQmvSXMVsFrG28EKzmArU4843NbFIQwWepU0Zbe6R0T0HoNyYm0l/rxV eSvJ+iopnoSbuqXpbT0mrSWnkxQdwR/kJkZhwc14poPw75h5CSJ2iTVHyWdemqLH3Srg kr2PiJddHBL+npiRFaI+PMDitw19uKBWx8MQjD5RREnI/6LarHZ2mPKiywc1h3hqf/rx DpZzkHTHNa3OmjVu/N6Jl0UROxY0JfMuFGH+HnQJlXoiy/5+8IazYds4SxuVFhUJV+cN Kdpw== 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=g5MiOM+gNKxYYxFICQXGcbE9TJ10EHqpcJUc1kOJQMU=; b=xrCoGvhI+MxcnXyAcZAvU2/4D3EzHurU9zTvvxLXyT/BVqLz2ngjZEwMTJUwgdDkWk hMxQD593BimONypeVAdeh6oxeaqBmkX6EJx3PId0rYsO373lZzLRrhR8vV7OKRdcRQ6p TRNYt5jGUJKr5gY4JmIKv3uDskpTPBFIX/g5GGYbxB92dnLnK4FnZt2GlbyNFjkfB11+ ynvXmCDJxTN905aEq4AbzIZpcDWWNIrObnuY20hEdYFgBD/IchF3kpD7FBa8mzpxprWv szR8yP4vrqqLhCG/EOJQHNTCiIS33gx8XAvGFYTLxZei2UcZsjQoeBCAoWr9BZpN0X54 3g+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b="WWloHNZ/"; spf=pass (google.com: domain of mptcp+bounces-3596-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3596-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id i7si186099qtx.686.2022.02.09.13.25.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Feb 2022 13:25:58 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3596-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b="WWloHNZ/"; spf=pass (google.com: domain of mptcp+bounces-3596-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3596-wpasupplicant.patchew=gmail.com@lists.linux.dev" 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 2F1251C0BB1 for ; Wed, 9 Feb 2022 21:25:58 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 619382CA7; Wed, 9 Feb 2022 21:25:54 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 705F72CA5 for ; Wed, 9 Feb 2022 21:25:50 +0000 (UTC) Received: by mail-wr1-f46.google.com with SMTP id k1so6188037wrd.8 for ; Wed, 09 Feb 2022 13:25:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares-net.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=g5MiOM+gNKxYYxFICQXGcbE9TJ10EHqpcJUc1kOJQMU=; b=WWloHNZ/Lg81Xi9c0rTAD8lU8KPWzMSrL3ejMZBXgfwW6uQbMh3yfNHq+49+pGrgK7 cyWa7QpKDUlJoRFVaxc6gc3MSzCsUxPOgXqXT8XQH67XFh7BOsXAdIU0ZLNHfZlrAqtE eyFegbjabLijoEFwkNUAekKpBTs/AOmWFSiShLblCY8ejjBbNrJT/ENUJBlYbKy2Kztr OBNDnALXl8OuFJx69Sv4ukgLPLmFiizCa8LaGyweOIZjvlZ1uE10t6McXpXvYjqPnF/W exitsFfWyp2lpWWDSuVDxsSF+5czidmUw2eSEFO5a/0/ecrtcQYPpDCJHLE8o3ImkDW4 y1gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=g5MiOM+gNKxYYxFICQXGcbE9TJ10EHqpcJUc1kOJQMU=; b=lgyMhNVaUH5JFiG+o9bZRJ+60aW13d1i5bDnA7bdz8do9wpjUQw2iTcXQjUAjL/ff/ /xuFK93Zq9ZE7LI/zkjlTAHnLMpruYrohbX2jtV1OHPv6MbtOjX60+tCfDwL9bXQlGIO BN3hUz4YPS/hcZocjckuYY0LHnMFGZ2dr6D37Nv8ipHXadrZxIbxwqbfwG6eRMkxe8YU Ihbo88oQQWC1MKwkPLf+Ml7cKrMe05MtMjs9Ek7fk+RNjo9S7fUZCGcfIMTVxY/SEui3 vSWl4TNkZTpPiQ4Rl+QI/Uj7cYHgeEZ34FCFGyJKVb+VzlyZ2YxgWXmXTeq4QqiblNm8 /wbA== X-Gm-Message-State: AOAM533qlClyNXHxtqYX1A5SOvm2iHsoDflTRWkjG+pOCZos3iPc6LQn rhyZxMEte00uybcvCB9CKWDKy7CPuXBxeNLc X-Received: by 2002:adf:eec5:: with SMTP id a5mr3757613wrp.107.1644441947637; Wed, 09 Feb 2022 13:25:47 -0800 (PST) Received: from tsr-vdi-mbaerts.nix.tessares.net (static.23.216.130.94.clients.your-server.de. [94.130.216.23]) by smtp.gmail.com with ESMTPSA id p14sm18500730wrr.7.2022.02.09.13.25.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 13:25:47 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts , Paolo Abeni Subject: [PATCH mptcp-next 3/9] selftests: mptcp: join: option to execute specific tests Date: Wed, 9 Feb 2022 22:25:14 +0100 Message-Id: <20220209212520.2989291-4-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220209212520.2989291-1-matthieu.baerts@tessares.net> References: <20220209212520.2989291-1-matthieu.baerts@tessares.net> 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" Often, it is needed to run one specific test. There are options to run subgroups of tests but when only one fails, no need to run all the subgroup. So far, the solution was to edit the script to comment the tests that are not needed but that's not ideal. Now, it is possible to run one specific test by giving the ID of the tests that are going to be validated, e.g. ./mptcp_join.sh 36 37 This is cleaner and saves time. Technically, the reset* functions now return 0 if the test can be executed. This naturally creates sections per test in the code which is also helpful to understand what a test is exactly doing. Suggested-by: Paolo Abeni Signed-off-by: Matthieu Baerts Reviewed-by: Mat Martineau --- .../testing/selftests/net/mptcp/mptcp_join.sh | 1676 +++++++++-------- 1 file changed, 900 insertions(+), 776 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 327f4ace5153..2dc81646e326 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -20,6 +20,7 @@ check_invert=3D0 do_all_tests=3D1 =20 TEST_COUNT=3D0 +ONLY_TESTS=3D() nr_blank=3D40 =20 # generated using "nfbpf_compile '(ip && (ip[54] & 0xf0) =3D=3D 0x30) || @@ -110,15 +111,40 @@ cleanup() cleanup_partial } =20 +skip_test() +{ + local i + + if [ "${#ONLY_TESTS[@]}" -eq 0 ]; then + return 1 + fi + + for i in "${ONLY_TESTS[@]}"; do + if [ "${TEST_COUNT}" -eq "${i}" ]; then + return 1 + fi + done + + return 0 +} + reset() { + TEST_COUNT=3D$((TEST_COUNT+1)) + + if skip_test; then + return 1 + fi + cleanup_partial init + + return 0 } =20 reset_with_cookies() { - reset + reset || return 1 =20 for netns in "$ns1" "$ns2";do ip netns exec $netns sysctl -q net.ipv4.tcp_syncookies=3D2 @@ -135,7 +161,7 @@ reset_with_add_addr_timeout() tables=3D"ip6tables" fi =20 - reset + reset || return 1 =20 ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=3D1 ip netns exec $ns2 $tables -A OUTPUT -p tcp \ @@ -150,7 +176,7 @@ reset_with_checksum() local ns1_enable=3D$1 local ns2_enable=3D$2 =20 - reset + reset || return 1 =20 ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=3D$ns1_enable ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=3D$ns2_enable @@ -161,7 +187,7 @@ reset_with_allow_join_id0() local ns1_enable=3D$1 local ns2_enable=3D$2 =20 - reset + reset || return 1 =20 ip netns exec $ns1 sysctl -q net.mptcp.allow_join_initial_addr_port=3D$ns= 1_enable ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=3D$ns= 2_enable @@ -403,8 +429,7 @@ do_transfer() speed=3D"$9" sflags=3D"${10}" =20 - port=3D$((10000+$TEST_COUNT)) - TEST_COUNT=3D$((TEST_COUNT+1)) + port=3D$((10000+$TEST_COUNT-1)) =20 :> "$cout" :> "$sout" @@ -1141,888 +1166,967 @@ wait_attempt_fail() =20 subflows_tests() { - reset - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "no JOIN" "0" "0" "0" + if reset; then + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "no JOIN" "0" "0" "0" + fi =20 # subflow limited by client - reset - pm_nl_set_limits $ns1 0 0 - pm_nl_set_limits $ns2 0 0 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "single subflow, limited by client" 0 0 0 + if reset; then + pm_nl_set_limits $ns1 0 0 + pm_nl_set_limits $ns2 0 0 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "single subflow, limited by client" 0 0 0 + fi =20 # subflow limited by server - reset - pm_nl_set_limits $ns1 0 0 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "single subflow, limited by server" 1 1 0 + if reset; then + pm_nl_set_limits $ns1 0 0 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "single subflow, limited by server" 1 1 0 + fi =20 # subflow - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "single subflow" 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "single subflow" 1 1 1 + fi =20 # multiple subflows - reset - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "multiple subflows" 2 2 2 + if reset; then + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "multiple subflows" 2 2 2 + fi =20 # multiple subflows limited by server - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "multiple subflows, limited by server" 2 2 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "multiple subflows, limited by server" 2 2 1 + fi =20 # single subflow, dev - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow dev ns2eth3 - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "single subflow, dev" 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow dev ns2eth3 + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "single subflow, dev" 1 1 1 + fi } =20 subflows_error_tests() { # If a single subflow is configured, and matches the MPC src # address, no additional subflow should be created - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow - chk_join_nr "no MPC reuse with single endpoint" 0 0 0 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + chk_join_nr "no MPC reuse with single endpoint" 0 0 0 + fi =20 # multiple subflows, with subflow creation error - reset - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j REJECT - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow - chk_join_nr "multi subflows, with failing subflow" 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow + ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j REJECT + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + chk_join_nr "multi subflows, with failing subflow" 1 1 1 + fi =20 # multiple subflows, with subflow timeout on MPJ - reset - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j DROP - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow - chk_join_nr "multi subflows, with subflow timeout" 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow + ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j DROP + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + chk_join_nr "multi subflows, with subflow timeout" 1 1 1 + fi =20 # multiple subflows, check that the endpoint corresponding to # closed subflow (due to reset) is not reused if additional # subflows are added later - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j REJECT - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow & - - # updates in the child shell do not have any effect here, we - # need to bump the test counter for the above case - TEST_COUNT=3D$((TEST_COUNT+1)) - - # mpj subflow will be in TW after the reset - wait_attempt_fail $ns2 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - wait - - # additional subflow could be created only if the PM select - # the later endpoint, skipping the already used one - chk_join_nr "multi subflows, fair usage on close" 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j REJECT + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow & + + # mpj subflow will be in TW after the reset + wait_attempt_fail $ns2 + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow + wait + + # additional subflow could be created only if the PM select + # the later endpoint, skipping the already used one + chk_join_nr "multi subflows, fair usage on close" 1 1 1 + fi } =20 signal_address_tests() { # add_address, unused - reset - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "unused signal address" 0 0 0 - chk_add_nr 1 1 + if reset; then + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "unused signal address" 0 0 0 + chk_add_nr 1 1 + fi =20 # accept and use add_addr - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "signal address" 1 1 1 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "signal address" 1 1 1 + chk_add_nr 1 1 + fi =20 # accept and use add_addr with an additional subflow # note: signal address in server ns and local addresses in client ns must # belong to different subnets or one of the listed local address could be # used for 'add_addr' subflow - reset - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "subflow and signal" 2 2 2 - chk_add_nr 1 1 + if reset; then + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 1 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "subflow and signal" 2 2 2 + chk_add_nr 1 1 + fi =20 # accept and use add_addr with additional subflows - reset - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "multiple subflows and signal" 3 3 3 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "multiple subflows and signal" 3 3 3 + chk_add_nr 1 1 + fi =20 # signal addresses - reset - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.4.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "signal addresses" 3 3 3 - chk_add_nr 3 3 + if reset; then + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_add_endpoint $ns1 10.0.4.1 flags signal + pm_nl_set_limits $ns2 3 3 + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "signal addresses" 3 3 3 + chk_add_nr 3 3 + fi =20 # signal invalid addresses - reset - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.12.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.14.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "signal invalid addresses" 1 1 1 - chk_add_nr 3 3 + if reset; then + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.12.1 flags signal + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_add_endpoint $ns1 10.0.14.1 flags signal + pm_nl_set_limits $ns2 3 3 + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "signal invalid addresses" 1 1 1 + chk_add_nr 3 3 + fi =20 # signal addresses race test - reset - - pm_nl_set_limits $ns1 4 4 - pm_nl_set_limits $ns2 4 4 - pm_nl_add_endpoint $ns1 10.0.1.1 flags signal - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.4.1 flags signal - pm_nl_add_endpoint $ns2 10.0.1.2 flags signal - pm_nl_add_endpoint $ns2 10.0.2.2 flags signal - pm_nl_add_endpoint $ns2 10.0.3.2 flags signal - pm_nl_add_endpoint $ns2 10.0.4.2 flags signal - - # 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 - - # the server will not signal the address terminating - # the MPC subflow - chk_add_nr 3 3 + if reset; then + pm_nl_set_limits $ns1 4 4 + pm_nl_set_limits $ns2 4 4 + pm_nl_add_endpoint $ns1 10.0.1.1 flags signal + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_add_endpoint $ns1 10.0.4.1 flags signal + pm_nl_add_endpoint $ns2 10.0.1.2 flags signal + pm_nl_add_endpoint $ns2 10.0.2.2 flags signal + pm_nl_add_endpoint $ns2 10.0.3.2 flags signal + pm_nl_add_endpoint $ns2 10.0.4.2 flags signal + + # the peer could possibly miss some addr notification, allow retransmiss= ion + 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 + + # the server will not signal the address terminating + # the MPC subflow + chk_add_nr 3 3 + fi } =20 link_failure_tests() { # accept and use add_addr with additional subflows and link loss - reset - - # without any b/w limit each veth could spool the packets and get - # them acked at xmit time, so that the corresponding subflow will - # have almost always no outstanding pkts, the scheduler will pick - # always the first subflow and we will have hard time testing - # active backup and link switch-over. - # Let's set some arbitrary (low) virtual link limits. - init_shapers - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 dev ns2eth4 flags subflow - run_tests $ns1 $ns2 10.0.1.1 1 - chk_join_nr "multiple flows, signal, link failure" 3 3 3 - chk_add_nr 1 1 - chk_stale_nr $ns2 1 5 1 + if reset; then + # without any b/w limit each veth could spool the packets and get + # them acked at xmit time, so that the corresponding subflow will + # have almost always no outstanding pkts, the scheduler will pick + # always the first subflow and we will have hard time testing + # active backup and link switch-over. + # Let's set some arbitrary (low) virtual link limits. + init_shapers + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow + pm_nl_add_endpoint $ns2 10.0.4.2 dev ns2eth4 flags subflow + run_tests $ns1 $ns2 10.0.1.1 1 + chk_join_nr "multiple flows, signal, link failure" 3 3 3 + chk_add_nr 1 1 + chk_stale_nr $ns2 1 5 1 + fi =20 # accept and use add_addr with additional subflows and link loss # for bidirectional transfer - reset - init_shapers - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 dev ns2eth4 flags subflow - run_tests $ns1 $ns2 10.0.1.1 2 - chk_join_nr "multi flows, signal, bidi, link fail" 3 3 3 - chk_add_nr 1 1 - chk_stale_nr $ns2 1 -1 1 + if reset; then + init_shapers + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow + pm_nl_add_endpoint $ns2 10.0.4.2 dev ns2eth4 flags subflow + run_tests $ns1 $ns2 10.0.1.1 2 + chk_join_nr "multi flows, signal, bidi, link fail" 3 3 3 + chk_add_nr 1 1 + chk_stale_nr $ns2 1 -1 1 + fi =20 # 2 subflows plus 1 backup subflow with a lossy link, backup # will never be used - reset - init_shapers - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal - pm_nl_set_limits $ns2 1 2 - export FAILING_LINKS=3D"1" - pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 1 - chk_join_nr "backup subflow unused, link failure" 2 2 2 - chk_add_nr 1 1 - chk_link_usage $ns2 ns2eth3 $cinsent 0 + if reset; then + init_shapers + pm_nl_set_limits $ns1 0 2 + pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $ns2 1 2 + export FAILING_LINKS=3D"1" + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup + run_tests $ns1 $ns2 10.0.1.1 1 + chk_join_nr "backup subflow unused, link failure" 2 2 2 + chk_add_nr 1 1 + chk_link_usage $ns2 ns2eth3 $cinsent 0 + fi =20 # 2 lossy links after half transfer, backup will get half of # the traffic - reset - init_shapers - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup - export FAILING_LINKS=3D"1 2" - run_tests $ns1 $ns2 10.0.1.1 1 - chk_join_nr "backup flow used, multi links fail" 2 2 2 - chk_add_nr 1 1 - chk_stale_nr $ns2 2 4 2 - chk_link_usage $ns2 ns2eth3 $cinsent 50 + if reset; then + init_shapers + pm_nl_set_limits $ns1 0 2 + pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $ns2 1 2 + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup + export FAILING_LINKS=3D"1 2" + run_tests $ns1 $ns2 10.0.1.1 1 + chk_join_nr "backup flow used, multi links fail" 2 2 2 + chk_add_nr 1 1 + chk_stale_nr $ns2 2 4 2 + chk_link_usage $ns2 ns2eth3 $cinsent 50 + fi =20 # use a backup subflow with the first subflow on a lossy link # for bidirectional transfer - reset - init_shapers - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 2 - chk_join_nr "backup flow used, bidi, link failure" 2 2 2 - chk_add_nr 1 1 - chk_stale_nr $ns2 1 -1 2 - chk_link_usage $ns2 ns2eth3 $cinsent 50 + if reset; then + init_shapers + pm_nl_set_limits $ns1 0 2 + pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup + run_tests $ns1 $ns2 10.0.1.1 2 + chk_join_nr "backup flow used, bidi, link failure" 2 2 2 + chk_add_nr 1 1 + chk_stale_nr $ns2 1 -1 2 + chk_link_usage $ns2 ns2eth3 $cinsent 50 + fi } =20 add_addr_timeout_tests() { # add_addr timeout - reset_with_add_addr_timeout - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow - chk_join_nr "signal address, ADD_ADDR timeout" 1 1 1 - chk_add_nr 4 0 + if reset_with_add_addr_timeout; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + chk_join_nr "signal address, ADD_ADDR timeout" 1 1 1 + chk_add_nr 4 0 + fi =20 # add_addr timeout IPv6 - reset_with_add_addr_timeout 6 - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow - chk_join_nr "signal address, ADD_ADDR6 timeout" 1 1 1 - chk_add_nr 4 0 + if reset_with_add_addr_timeout 6; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal + run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + chk_join_nr "signal address, ADD_ADDR6 timeout" 1 1 1 + chk_add_nr 4 0 + fi =20 # signal addresses timeout - reset_with_add_addr_timeout - pm_nl_set_limits $ns1 2 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 least - chk_join_nr "signal addresses, ADD_ADDR timeout" 2 2 2 - chk_add_nr 8 0 + if reset_with_add_addr_timeout; then + pm_nl_set_limits $ns1 2 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_set_limits $ns2 2 2 + run_tests $ns1 $ns2 10.0.1.1 0 0 0 least + chk_join_nr "signal addresses, ADD_ADDR timeout" 2 2 2 + chk_add_nr 8 0 + fi =20 # signal invalid addresses timeout - reset_with_add_addr_timeout - pm_nl_set_limits $ns1 2 2 - pm_nl_add_endpoint $ns1 10.0.12.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 least - chk_join_nr "invalid address, ADD_ADDR timeout" 1 1 1 - chk_add_nr 8 0 + if reset_with_add_addr_timeout; then + pm_nl_set_limits $ns1 2 2 + pm_nl_add_endpoint $ns1 10.0.12.1 flags signal + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_set_limits $ns2 2 2 + run_tests $ns1 $ns2 10.0.1.1 0 0 0 least + chk_join_nr "invalid address, ADD_ADDR timeout" 1 1 1 + chk_add_nr 8 0 + fi } =20 remove_tests() { # single subflow, remove - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow - chk_join_nr "remove single subflow" 1 1 1 - chk_rm_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow + chk_join_nr "remove single subflow" 1 1 1 + chk_rm_nr 1 1 + fi =20 # multiple subflows, remove - reset - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -2 slow - chk_join_nr "remove multiple subflows" 2 2 2 - chk_rm_nr 2 2 + if reset; then + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 0 -2 slow + chk_join_nr "remove multiple subflows" 2 2 2 + chk_rm_nr 2 2 + fi =20 # single address, remove - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow - chk_join_nr "remove single address" 1 1 1 - chk_add_nr 1 1 - chk_rm_nr 1 1 invert + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns2 1 1 + run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow + chk_join_nr "remove single address" 1 1 1 + chk_add_nr 1 1 + chk_rm_nr 1 1 invert + fi =20 # subflow and signal, remove - reset - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow - chk_join_nr "remove subflow and signal" 2 2 2 - chk_add_nr 1 1 - chk_rm_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns2 1 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow + chk_join_nr "remove subflow and signal" 2 2 2 + chk_add_nr 1 1 + chk_rm_nr 1 1 + fi =20 # subflows and signal, remove - reset - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -2 slow - chk_join_nr "remove subflows and signal" 3 3 3 - chk_add_nr 1 1 - chk_rm_nr 2 2 + if reset; then + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 -1 -2 slow + chk_join_nr "remove subflows and signal" 3 3 3 + chk_add_nr 1 1 + chk_rm_nr 2 2 + fi =20 # addresses remove - reset - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250 - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.4.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -3 0 slow - chk_join_nr "remove addresses" 3 3 3 - chk_add_nr 3 3 - chk_rm_nr 3 3 invert + if reset; then + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250 + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_add_endpoint $ns1 10.0.4.1 flags signal + pm_nl_set_limits $ns2 3 3 + run_tests $ns1 $ns2 10.0.1.1 0 -3 0 slow + chk_join_nr "remove addresses" 3 3 3 + chk_add_nr 3 3 + chk_rm_nr 3 3 invert + fi =20 # invalid addresses remove - reset - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.12.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.14.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -3 0 slow - chk_join_nr "remove invalid addresses" 1 1 1 - chk_add_nr 3 3 - chk_rm_nr 3 1 invert + if reset; then + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.12.1 flags signal + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_add_endpoint $ns1 10.0.14.1 flags signal + pm_nl_set_limits $ns2 3 3 + run_tests $ns1 $ns2 10.0.1.1 0 -3 0 slow + chk_join_nr "remove invalid addresses" 1 1 1 + chk_add_nr 3 3 + chk_rm_nr 3 1 invert + fi =20 # subflows and signal, flush - reset - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow - chk_join_nr "flush subflows and signal" 3 3 3 - chk_add_nr 1 1 - chk_rm_nr 2 2 + if reset; then + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + chk_join_nr "flush subflows and signal" 3 3 3 + chk_add_nr 1 1 + chk_rm_nr 2 2 + fi =20 # subflows flush - reset - pm_nl_set_limits $ns1 3 3 - pm_nl_set_limits $ns2 3 3 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow id 150 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow - chk_join_nr "flush subflows" 3 3 3 - chk_rm_nr 3 3 + if reset; then + pm_nl_set_limits $ns1 3 3 + pm_nl_set_limits $ns2 3 3 + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow id 150 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + chk_join_nr "flush subflows" 3 3 3 + chk_rm_nr 3 3 + fi =20 # addresses flush - reset - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250 - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.4.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow - chk_join_nr "flush addresses" 3 3 3 - chk_add_nr 3 3 - chk_rm_nr 3 3 invert + if reset; then + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250 + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_add_endpoint $ns1 10.0.4.1 flags signal + pm_nl_set_limits $ns2 3 3 + run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + chk_join_nr "flush addresses" 3 3 3 + chk_add_nr 3 3 + chk_rm_nr 3 3 invert + fi =20 # invalid addresses flush - reset - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.12.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.14.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -8 0 slow - chk_join_nr "flush invalid addresses" 1 1 1 - chk_add_nr 3 3 - chk_rm_nr 3 1 invert + if reset; then + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.12.1 flags signal + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_add_endpoint $ns1 10.0.14.1 flags signal + pm_nl_set_limits $ns2 3 3 + run_tests $ns1 $ns2 10.0.1.1 0 -8 0 slow + chk_join_nr "flush invalid addresses" 1 1 1 + chk_add_nr 3 3 + chk_rm_nr 3 1 invert + fi =20 # remove id 0 subflow - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -9 slow - chk_join_nr "remove id 0 subflow" 1 1 1 - chk_rm_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 0 -9 slow + chk_join_nr "remove id 0 subflow" 1 1 1 + chk_rm_nr 1 1 + fi =20 # remove id 0 address - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -9 0 slow - chk_join_nr "remove id 0 address" 1 1 1 - chk_add_nr 1 1 - chk_rm_nr 1 1 invert + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns2 1 1 + run_tests $ns1 $ns2 10.0.1.1 0 -9 0 slow + chk_join_nr "remove id 0 address" 1 1 1 + chk_add_nr 1 1 + chk_rm_nr 1 1 invert + fi } =20 add_tests() { # add single subflow - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow - chk_join_nr "add single subflow" 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow + chk_join_nr "add single subflow" 1 1 1 + fi =20 # add signal address - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow - chk_join_nr "add signal address" 1 1 1 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow + chk_join_nr "add signal address" 1 1 1 + chk_add_nr 1 1 + fi =20 # add multiple subflows - reset - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 2 slow - chk_join_nr "add multiple subflows" 2 2 2 + if reset; then + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + run_tests $ns1 $ns2 10.0.1.1 0 0 2 slow + chk_join_nr "add multiple subflows" 2 2 2 + fi =20 # add multiple subflows IPv6 - reset - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - run_tests $ns1 $ns2 dead:beef:1::1 0 0 2 slow - chk_join_nr "add multiple subflows IPv6" 2 2 2 + if reset; then + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + run_tests $ns1 $ns2 dead:beef:1::1 0 0 2 slow + chk_join_nr "add multiple subflows IPv6" 2 2 2 + fi =20 # add multiple addresses IPv6 - reset - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 dead:beef:1::1 0 2 0 slow - chk_join_nr "add multiple addresses IPv6" 2 2 2 - chk_add_nr 2 2 + if reset; then + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 2 2 + run_tests $ns1 $ns2 dead:beef:1::1 0 2 0 slow + chk_join_nr "add multiple addresses IPv6" 2 2 2 + chk_add_nr 2 2 + fi } =20 ipv6_tests() { # subflow IPv6 - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow - chk_join_nr "single subflow IPv6" 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow + run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + chk_join_nr "single subflow IPv6" 1 1 1 + fi =20 # add_address, unused IPv6 - reset - pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow - chk_join_nr "unused signal address IPv6" 0 0 0 - chk_add_nr 1 1 + if reset; then + pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal + run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + chk_join_nr "unused signal address IPv6" 0 0 0 + chk_add_nr 1 1 + fi =20 # signal address IPv6 - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow - chk_join_nr "single address IPv6" 1 1 1 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal + pm_nl_set_limits $ns2 1 1 + run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + chk_join_nr "single address IPv6" 1 1 1 + chk_add_nr 1 1 + fi =20 # single address IPv6, remove - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 dead:beef:1::1 0 -1 0 slow - chk_join_nr "remove single address IPv6" 1 1 1 - chk_add_nr 1 1 - chk_rm_nr 1 1 invert + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal + pm_nl_set_limits $ns2 1 1 + run_tests $ns1 $ns2 dead:beef:1::1 0 -1 0 slow + chk_join_nr "remove single address IPv6" 1 1 1 + chk_add_nr 1 1 + chk_rm_nr 1 1 invert + fi =20 # subflow and signal IPv6, remove - reset - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow - run_tests $ns1 $ns2 dead:beef:1::1 0 -1 -1 slow - chk_join_nr "remove subflow and signal IPv6" 2 2 2 - chk_add_nr 1 1 - chk_rm_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 2 + pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal + pm_nl_set_limits $ns2 1 2 + pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow + run_tests $ns1 $ns2 dead:beef:1::1 0 -1 -1 slow + chk_join_nr "remove subflow and signal IPv6" 2 2 2 + chk_add_nr 1 1 + chk_rm_nr 1 1 + fi } =20 v4mapped_tests() { # subflow IPv4-mapped to IPv4-mapped - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 "::ffff:10.0.3.2" flags subflow - run_tests $ns1 $ns2 "::ffff:10.0.1.1" - chk_join_nr "single subflow IPv4-mapped" 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 "::ffff:10.0.3.2" flags subflow + run_tests $ns1 $ns2 "::ffff:10.0.1.1" + chk_join_nr "single subflow IPv4-mapped" 1 1 1 + fi =20 # signal address IPv4-mapped with IPv4-mapped sk - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 "::ffff:10.0.2.1" flags signal - run_tests $ns1 $ns2 "::ffff:10.0.1.1" - chk_join_nr "signal address IPv4-mapped" 1 1 1 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 "::ffff:10.0.2.1" flags signal + run_tests $ns1 $ns2 "::ffff:10.0.1.1" + chk_join_nr "signal address IPv4-mapped" 1 1 1 + chk_add_nr 1 1 + fi =20 # subflow v4-map-v6 - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 "::ffff:10.0.1.1" - chk_join_nr "single subflow v4-map-v6" 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 "::ffff:10.0.1.1" + chk_join_nr "single subflow v4-map-v6" 1 1 1 + fi =20 # signal address v4-map-v6 - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 "::ffff:10.0.1.1" - chk_join_nr "signal address v4-map-v6" 1 1 1 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + run_tests $ns1 $ns2 "::ffff:10.0.1.1" + chk_join_nr "signal address v4-map-v6" 1 1 1 + chk_add_nr 1 1 + fi =20 # subflow v6-map-v4 - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 "::ffff:10.0.3.2" flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "single subflow v6-map-v4" 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 "::ffff:10.0.3.2" flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "single subflow v6-map-v4" 1 1 1 + fi =20 # signal address v6-map-v4 - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 "::ffff:10.0.2.1" flags signal - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "signal address v6-map-v4" 1 1 1 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 "::ffff:10.0.2.1" flags signal + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "signal address v6-map-v4" 1 1 1 + chk_add_nr 1 1 + fi =20 # no subflow IPv6 to v4 address - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 dead:beef:2::2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "no JOIN with diff families v4-v6" 0 0 0 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 dead:beef:2::2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "no JOIN with diff families v4-v6" 0 0 0 + fi =20 # no subflow IPv6 to v4 address even if v6 has a valid v4 at the end - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 dead:beef:2::10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "no JOIN with diff families v4-v6-2" 0 0 0 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 dead:beef:2::10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "no JOIN with diff families v4-v6-2" 0 0 0 + fi =20 # no subflow IPv4 to v6 address, no need to slow down too then - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 dead:beef:1::1 - chk_join_nr "no JOIN with diff families v6-v4" 0 0 0 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 dead:beef:1::1 + chk_join_nr "no JOIN with diff families v6-v4" 0 0 0 + fi } =20 backup_tests() { # single subflow, backup - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup - chk_join_nr "single subflow, backup" 1 1 1 - chk_prio_nr 0 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup + chk_join_nr "single subflow, backup" 1 1 1 + chk_prio_nr 0 1 + fi =20 # single address, backup - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup - chk_join_nr "single address, backup" 1 1 1 - chk_add_nr 1 1 - chk_prio_nr 1 0 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns2 1 1 + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + chk_join_nr "single address, backup" 1 1 1 + chk_add_nr 1 1 + chk_prio_nr 1 0 + fi =20 # single address with port, backup - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup - chk_join_nr "single address with port, backup" 1 1 1 - chk_add_nr 1 1 - chk_prio_nr 1 0 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $ns2 1 1 + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + chk_join_nr "single address with port, backup" 1 1 1 + chk_add_nr 1 1 + chk_prio_nr 1 0 + fi } =20 add_addr_ports_tests() { # signal address with port - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "signal address with port" 1 1 1 - chk_add_nr 1 1 1 + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "signal address with port" 1 1 1 + chk_add_nr 1 1 1 + fi =20 # subflow and signal with port - reset - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "subflow and signal with port" 2 2 2 - chk_add_nr 1 1 1 + if reset; then + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 1 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "subflow and signal with port" 2 2 2 + chk_add_nr 1 1 1 + fi =20 # single address with port, remove - reset - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow - chk_join_nr "remove single address with port" 1 1 1 - chk_add_nr 1 1 1 - chk_rm_nr 1 1 invert + if reset; then + pm_nl_set_limits $ns1 0 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $ns2 1 1 + run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow + chk_join_nr "remove single address with port" 1 1 1 + chk_add_nr 1 1 1 + chk_rm_nr 1 1 invert + fi =20 # subflow and signal with port, remove - reset - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow - chk_join_nr "remove subflow and signal with port" 2 2 2 - chk_add_nr 1 1 1 - chk_rm_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $ns2 1 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow + chk_join_nr "remove subflow and signal with port" 2 2 2 + chk_add_nr 1 1 1 + chk_rm_nr 1 1 + fi =20 # subflows and signal with port, flush - reset - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - 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 + if reset; then + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow + 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 + fi =20 # multiple addresses with port - reset - pm_nl_set_limits $ns1 2 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal port 10100 - pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "multiple addresses with port" 2 2 2 - chk_add_nr 2 2 2 + if reset; then + pm_nl_set_limits $ns1 2 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal port 10100 + pm_nl_set_limits $ns2 2 2 + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "multiple addresses with port" 2 2 2 + chk_add_nr 2 2 2 + fi =20 # multiple addresses with ports - reset - pm_nl_set_limits $ns1 2 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal port 10101 - pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "multiple addresses with ports" 2 2 2 - chk_add_nr 2 2 2 + if reset; then + pm_nl_set_limits $ns1 2 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal port 10101 + pm_nl_set_limits $ns2 2 2 + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "multiple addresses with ports" 2 2 2 + chk_add_nr 2 2 2 + fi } =20 syncookies_tests() { # single subflow, syncookies - reset_with_cookies - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "single subflow with syn cookies" 1 1 1 + if reset_with_cookies; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "single subflow with syn cookies" 1 1 1 + fi =20 # multiple subflows with syn cookies - reset_with_cookies - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "multiple subflows with syn cookies" 2 2 2 + if reset_with_cookies; then + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "multiple subflows with syn cookies" 2 2 2 + fi =20 # multiple subflows limited by server - reset_with_cookies - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "subflows limited by server w cookies" 2 1 1 + if reset_with_cookies; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "subflows limited by server w cookies" 2 1 1 + fi =20 # test signal address with cookies - reset_with_cookies - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "signal address with syn cookies" 1 1 1 - chk_add_nr 1 1 + if reset_with_cookies; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "signal address with syn cookies" 1 1 1 + chk_add_nr 1 1 + fi =20 # test cookie with subflow and signal - reset_with_cookies - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "subflow and signal w cookies" 2 2 2 - chk_add_nr 1 1 + if reset_with_cookies; then + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 1 2 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "subflow and signal w cookies" 2 2 2 + chk_add_nr 1 1 + fi =20 # accept and use add_addr with additional subflows - reset_with_cookies - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "subflows and signal w. cookies" 3 3 3 - chk_add_nr 1 1 + if reset_with_cookies; then + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "subflows and signal w. cookies" 3 3 3 + chk_add_nr 1 1 + fi } =20 checksum_tests() { # checksum test 0 0 - reset_with_checksum 0 0 - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 - chk_csum_nr "checksum test 0 0" + if reset_with_checksum 0 0; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + run_tests $ns1 $ns2 10.0.1.1 + chk_csum_nr "checksum test 0 0" + fi =20 # checksum test 1 1 - reset_with_checksum 1 1 - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 - chk_csum_nr "checksum test 1 1" + if reset_with_checksum 1 1; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + run_tests $ns1 $ns2 10.0.1.1 + chk_csum_nr "checksum test 1 1" + fi =20 # checksum test 0 1 - reset_with_checksum 0 1 - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 - chk_csum_nr "checksum test 0 1" + if reset_with_checksum 0 1; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + run_tests $ns1 $ns2 10.0.1.1 + chk_csum_nr "checksum test 0 1" + fi =20 # checksum test 1 0 - reset_with_checksum 1 0 - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 - chk_csum_nr "checksum test 1 0" + if reset_with_checksum 1 0; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + run_tests $ns1 $ns2 10.0.1.1 + chk_csum_nr "checksum test 1 0" + fi } =20 deny_join_id0_tests() { # subflow allow join id0 ns1 - reset_with_allow_join_id0 1 0 - pm_nl_set_limits $ns1 1 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "single subflow allow join id0 ns1" 1 1 1 + if reset_with_allow_join_id0 1 0; then + pm_nl_set_limits $ns1 1 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "single subflow allow join id0 ns1" 1 1 1 + fi =20 # subflow allow join id0 ns2 - reset_with_allow_join_id0 0 1 - pm_nl_set_limits $ns1 1 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "single subflow allow join id0 ns2" 0 0 0 + if reset_with_allow_join_id0 0 1; then + pm_nl_set_limits $ns1 1 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "single subflow allow join id0 ns2" 0 0 0 + fi =20 # signal address allow join id0 ns1 # ADD_ADDRs are not affected by allow_join_id0 value. - reset_with_allow_join_id0 1 0 - pm_nl_set_limits $ns1 1 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "signal address allow join id0 ns1" 1 1 1 - chk_add_nr 1 1 + if reset_with_allow_join_id0 1 0; then + pm_nl_set_limits $ns1 1 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "signal address allow join id0 ns1" 1 1 1 + chk_add_nr 1 1 + fi =20 # signal address allow join id0 ns2 # ADD_ADDRs are not affected by allow_join_id0 value. - reset_with_allow_join_id0 0 1 - pm_nl_set_limits $ns1 1 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "signal address allow join id0 ns2" 1 1 1 - chk_add_nr 1 1 + if reset_with_allow_join_id0 0 1; then + pm_nl_set_limits $ns1 1 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "signal address allow join id0 ns2" 1 1 1 + chk_add_nr 1 1 + fi =20 # subflow and address allow join id0 ns1 - reset_with_allow_join_id0 1 0 - pm_nl_set_limits $ns1 2 2 - pm_nl_set_limits $ns2 2 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "subflow and address allow join id0 1" 2 2 2 + if reset_with_allow_join_id0 1 0; then + pm_nl_set_limits $ns1 2 2 + pm_nl_set_limits $ns2 2 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "subflow and address allow join id0 1" 2 2 2 + fi =20 # subflow and address allow join id0 ns2 - reset_with_allow_join_id0 0 1 - pm_nl_set_limits $ns1 2 2 - pm_nl_set_limits $ns2 2 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "subflow and address allow join id0 2" 1 1 1 + if reset_with_allow_join_id0 0 1; then + pm_nl_set_limits $ns1 2 2 + pm_nl_set_limits $ns2 2 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "subflow and address allow join id0 2" 1 1 1 + fi } =20 fullmesh_tests() @@ -2030,148 +2134,162 @@ fullmesh_tests() # fullmesh 1 # 2 fullmesh addrs in ns2, added before the connection, # 1 non-fullmesh addr in ns1, added during the connection. - reset - pm_nl_set_limits $ns1 0 4 - pm_nl_set_limits $ns2 1 4 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,fullmesh - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,fullmesh - run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow - chk_join_nr "fullmesh test 2x1" 4 4 4 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 0 4 + pm_nl_set_limits $ns2 1 4 + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,fullmesh + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,fullmesh + run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow + chk_join_nr "fullmesh test 2x1" 4 4 4 + chk_add_nr 1 1 + fi =20 # fullmesh 2 # 1 non-fullmesh addr in ns1, added before the connection, # 1 fullmesh addr in ns2, added during the connection. - reset - pm_nl_set_limits $ns1 1 3 - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow - chk_join_nr "fullmesh test 1x1" 3 3 3 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 1 3 + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow + chk_join_nr "fullmesh test 1x1" 3 3 3 + chk_add_nr 1 1 + fi =20 # fullmesh 3 # 1 non-fullmesh addr in ns1, added before the connection, # 2 fullmesh addrs in ns2, added during the connection. - reset - pm_nl_set_limits $ns1 2 5 - pm_nl_set_limits $ns2 1 5 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow - chk_join_nr "fullmesh test 1x2" 5 5 5 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 2 5 + pm_nl_set_limits $ns2 1 5 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow + chk_join_nr "fullmesh test 1x2" 5 5 5 + chk_add_nr 1 1 + fi =20 # fullmesh 4 # 1 non-fullmesh addr in ns1, added before the connection, # 2 fullmesh addrs in ns2, added during the connection, # limit max_subflows to 4. - reset - pm_nl_set_limits $ns1 2 4 - pm_nl_set_limits $ns2 1 4 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow - chk_join_nr "fullmesh test 1x2, limited" 4 4 4 - chk_add_nr 1 1 + if reset; then + pm_nl_set_limits $ns1 2 4 + pm_nl_set_limits $ns2 1 4 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow + chk_join_nr "fullmesh test 1x2, limited" 4 4 4 + chk_add_nr 1 1 + fi =20 # set fullmesh flag - reset - pm_nl_set_limits $ns1 4 4 - pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow - pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow fullmesh - chk_join_nr "set fullmesh flag test" 2 2 2 - chk_rm_nr 0 1 + if reset; then + pm_nl_set_limits $ns1 4 4 + pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow + pm_nl_set_limits $ns2 4 4 + run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow fullmesh + chk_join_nr "set fullmesh flag test" 2 2 2 + chk_rm_nr 0 1 + fi =20 # set nofullmesh flag - reset - pm_nl_set_limits $ns1 4 4 - pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow,fullmesh - pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow nofullmesh - chk_join_nr "set nofullmesh flag test" 2 2 2 - chk_rm_nr 0 1 + if reset; then + pm_nl_set_limits $ns1 4 4 + pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow,fullmesh + pm_nl_set_limits $ns2 4 4 + run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow nofullmesh + chk_join_nr "set nofullmesh flag test" 2 2 2 + chk_rm_nr 0 1 + fi =20 # set backup,fullmesh flags - reset - pm_nl_set_limits $ns1 4 4 - pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow - pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow backup,fullmesh - chk_join_nr "set backup,fullmesh flags test" 2 2 2 - chk_prio_nr 0 1 - chk_rm_nr 0 1 + if reset; then + pm_nl_set_limits $ns1 4 4 + pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow + pm_nl_set_limits $ns2 4 4 + run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow backup,fullmesh + chk_join_nr "set backup,fullmesh flags test" 2 2 2 + chk_prio_nr 0 1 + chk_rm_nr 0 1 + fi =20 # set nobackup,nofullmesh flags - reset - pm_nl_set_limits $ns1 4 4 - pm_nl_set_limits $ns2 4 4 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup,fullmesh - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup,nofullmesh - chk_join_nr "set nobackup,nofullmesh flags test" 2 2 2 - chk_prio_nr 0 1 - chk_rm_nr 0 1 + if reset; then + pm_nl_set_limits $ns1 4 4 + pm_nl_set_limits $ns2 4 4 + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup,fullmesh + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup,nofullmesh + chk_join_nr "set nobackup,nofullmesh flags test" 2 2 2 + chk_prio_nr 0 1 + chk_rm_nr 0 1 + fi } =20 userspace_tests() { # userspace pm type prevents add_addr - reset - ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "userspace pm type prevents add_addr" 0 0 0 - chk_add_nr 0 0 + if reset; then + ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $ns1 ./pm_nl_ctl limits 0 2 + ip netns exec $ns2 ./pm_nl_ctl limits 0 2 + ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "userspace pm type prevents add_addr" 0 0 0 + chk_add_nr 0 0 + fi =20 # userspace pm type echoes add_addr - reset - ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "userspace pm type echoes add_addr" 0 0 0 - chk_add_nr 1 1 + if reset; then + ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $ns1 ./pm_nl_ctl limits 0 2 + ip netns exec $ns2 ./pm_nl_ctl limits 0 2 + ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "userspace pm type echoes add_addr" 0 0 0 + chk_add_nr 1 1 + fi =20 # userspace pm type rejects join - reset - ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "userspace pm type rejects join" 1 1 0 + if reset; then + ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $ns1 ./pm_nl_ctl limits 1 1 + ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "userspace pm type rejects join" 1 1 0 + fi =20 # userspace pm type does not send join - reset - ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr "userspace pm type does not send join" 0 0 0 + if reset; then + ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $ns1 ./pm_nl_ctl limits 1 1 + ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 + chk_join_nr "userspace pm type does not send join" 0 0 0 + fi =20 # userspace pm type prevents mp_prio - reset - ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup - chk_join_nr "userspace pm type prevents mp_prio" 1 1 0 - chk_prio_nr 0 0 + if reset; then + ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $ns1 ./pm_nl_ctl limits 1 1 + ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + chk_join_nr "userspace pm type prevents mp_prio" 1 1 0 + chk_prio_nr 0 0 + fi =20 # userspace pm type prevents rm_addr - reset - ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow - chk_join_nr "userspace pm type prevents rm_addr" 0 0 0 - chk_rm_nr 0 0 + if reset; then + ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $ns1 ./pm_nl_ctl limits 0 1 + ip netns exec $ns2 ./pm_nl_ctl limits 0 1 + ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow + chk_join_nr "userspace pm type prevents rm_addr" 0 0 0 + chk_rm_nr 0 0 + fi } =20 all_tests() @@ -2250,7 +2368,13 @@ for arg in "$@"; do fi =20 # exception for the capture/checksum/ip_mptcp options, the rest means: a = part of the tests - if ! [[ "${arg}" =3D~ ^"-"[cCi]+$ ]]; then + if ! [[ "${arg}" =3D~ ^"-" ]]; then + if [[ "${arg}" =3D~ ^[0-9]+$ ]]; then + ONLY_TESTS+=3D("${arg}") + else + usage "Unknown option: ${arg}" + fi + elif ! [[ "${arg}" =3D~ ^"-"[cCi]+$ ]]; then do_all_tests=3D0 fi done --=20 2.34.1 From nobody Mon May 6 22:26:12 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:9f92:0:0:0:0:0 with SMTP id a18csp2433446jam; Wed, 9 Feb 2022 13:25:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJxs6daspGJJsWpfELspklrDuQWatfis+N+lYj1m06nCGfros07MYepvNNHJVmaWsCoxYIbB X-Received: by 2002:a05:6a00:1681:: with SMTP id k1mr4297945pfc.48.1644441955100; Wed, 09 Feb 2022 13:25:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644441955; cv=none; d=google.com; s=arc-20160816; b=JBKpn0ftrglGYSxAneALr/de6Sn18mLJlSQHH5HWFdJuxbD/uORNxS5rDoYPS9XrhD f1an78oX7/Exv5M3ILUbeR6razP21mHnWo772y/4O64rhS58fa0D1GmhlJEk/Ov3ZYlf gmHKg+4COWQTISiMZZrG/g72Gp4UbAxGMfsUDypDL+3k23eGAXkKx0411fEulexx0BKK ZjyDqhLFagKTxbwJzhJm3ApID/sjKYDqMUVRekCHNLtx1n1T3T4ZjDxf4dmvPjLdL4rL sUJVEk+u5a2WeRoBaRMRokeaOmtM/CxxWRyqUg0glTRImqN6+93Dt67g25OxD+sS7TIz oCcA== 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=oXfXysL+qyS8a5hJddIFVQ8pfxxd4mbtDpEUFh1yN9Q=; b=l+/G4nmx2UaTo+jPdR5vGimCwxEXZx77W0ZsKY/R1JvC6hp1hmvdj80P4tHU+tO960 /WQQQcgcNNyX3cROBXz9EmPz9wVBJ9xgBSLTNXRlQwzDgxRqvl+aW9vFSHmuOiuJAyM5 7M03a4I6g27wy5tD31IbvBBEGk1/4nU5/1Tvnxkt/HWY0UmP0ODNlv5uBGxrPDA3BmK6 dOyjIpvJ2GoDcf2Zo3NG61xakJTLTERaFcRlSamsOfE/RhOlWgbeZt2SbR9qcl1+67lC CQ+1TT2zPS5EUGg7xUicLc9h/VsLdruOVYfrVnVwWOBZh2Jtt7pziCSyK5UWzwAPJJRY mDXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b="l2/W16xa"; spf=pass (google.com: domain of mptcp+bounces-3593-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3593-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id l19si43468plg.511.2022.02.09.13.25.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Feb 2022 13:25:55 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3593-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=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b="l2/W16xa"; spf=pass (google.com: domain of mptcp+bounces-3593-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3593-wpasupplicant.patchew=gmail.com@lists.linux.dev" 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 55ABE3E0FA2 for ; Wed, 9 Feb 2022 21:25:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 43C002CA8; Wed, 9 Feb 2022 21:25:51 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C99F32CA1 for ; Wed, 9 Feb 2022 21:25:49 +0000 (UTC) Received: by mail-wm1-f50.google.com with SMTP id n8so2264026wmk.3 for ; Wed, 09 Feb 2022 13:25:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares-net.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=oXfXysL+qyS8a5hJddIFVQ8pfxxd4mbtDpEUFh1yN9Q=; b=l2/W16xa8mLBfMpAJXxtmlm2qBHBWb01+dnvUcWlLIsiWh7EZHmqZ761jy6ppagXQX UzFrQYy1bAqVy/xVah78JQwxM/dO8qeuGiFfywxrfxPs2Hs3KXgF+wH6BrfK/CNIf4yt 6O/Qw45UB4Z7D2DRvU+M7ADicUiiyqqwYYGFhOkX1Ka6wL1TrZQkQuR2AbwiWFck7eTu xlEp3fmnSXe5+9AxuNqm4QPLnukZWUaGHR5ZBHzvzDczjNMSZYWxJj3yv2se2fhWGj82 0X6ftzpNBQx01iV7/qVMKVpbOzN2LF6FhNWbrbGl7MC3yyZ7e6nL/ESrUBKr1bCMLEk6 U1dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=oXfXysL+qyS8a5hJddIFVQ8pfxxd4mbtDpEUFh1yN9Q=; b=xszCvg7MermQ1wN1e6IrkacYwr8H7PDsxFu8mOUhrcXPr4CfRDDtlSafbW/Pa7s1Hb VBm8pt8uCvFLO+EvytysFZcfXohUqD3WjSHmMM/85DhV7xWy9zwhw6KhNyhYwQdIlZdV zjh4d+KFjNjO4SvfmWHVGpLEc/ikO+zfGMuq76jKgFfdo7PI8Lg0+X/8X5H9nZ4qP5C6 /rJFxmEv/rrSq+KcSPJoX4MtPy0Kt2S3Ednl07x478yFMb6jb6sPmucOpQZn7q3SWTeQ 2YiOwV2xoY7LpKl185HiGLKiWe0qXvRk2XJ8FfrnloadcSkmoypRWPPxuLF6HZiLREfm wIIQ== X-Gm-Message-State: AOAM531S/ASTLcHF74xn7COcTMqJNy+OJAsI7quB5ZWEL1dvuQk1ymzz 7O2PW76rERDvvXLCNoMLpUKa0iqdgz9UnP51 X-Received: by 2002:a05:600c:4050:: with SMTP id j16mr4382648wmm.187.1644441948099; Wed, 09 Feb 2022 13:25:48 -0800 (PST) Received: from tsr-vdi-mbaerts.nix.tessares.net (static.23.216.130.94.clients.your-server.de. [94.130.216.23]) by smtp.gmail.com with ESMTPSA id p14sm18500730wrr.7.2022.02.09.13.25.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 13:25:47 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next 4/9] selftests: mptcp: join: remove unused vars Date: Wed, 9 Feb 2022 22:25:15 +0100 Message-Id: <20220209212520.2989291-5-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220209212520.2989291-1-matthieu.baerts@tessares.net> References: <20220209212520.2989291-1-matthieu.baerts@tessares.net> 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" Shellcheck found that these variables were set but never used. Note that rndh is no longer prefixed with '0-' but it doesn't change anything. Signed-off-by: Matthieu Baerts Reviewed-by: Mat Martineau --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 2dc81646e326..ce3e7db30b9d 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -45,7 +45,7 @@ init() { capout=3D$(mktemp) =20 - rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) + rndh=3D$(mktemp -u XXXXXX) =20 ns1=3D"ns1-$rndh" ns2=3D"ns2-$rndh" @@ -701,8 +701,6 @@ run_tests() addr_nr_ns2=3D"${6:-0}" speed=3D"${7:-fast}" sflags=3D"${8:-""}" - lret=3D0 - oldin=3D"" =20 # create the input file for the failure test when # the first failure test run @@ -730,7 +728,6 @@ run_tests() =20 do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} \ ${test_linkfail} ${addr_nr_ns1} ${addr_nr_ns2} ${speed} ${sflags} - lret=3D$? } =20 dump_stats() --=20 2.34.1 From nobody Mon May 6 22:26:12 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:9f92:0:0:0:0:0 with SMTP id a18csp2433455jam; Wed, 9 Feb 2022 13:25:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJwhLsSDaVgKcP2f+ZisfLTums4GLk6G0JEt35Un5FqTC1iU7QWgDU1zDGawG3HyAYLId2uB X-Received: by 2002:ad4:5d67:: with SMTP id fn7mr2976931qvb.82.1644441956250; Wed, 09 Feb 2022 13:25:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644441956; cv=none; d=google.com; s=arc-20160816; b=Mw7t4lxGdwv9CGDpGJJGXZ940Zx3KzGfz0HJ2M3vk2a9bRs9cl2J44qCEBc2Xr6plY z1QTGEmfZfOH0Hg2cXbXVN7EdRMK0TjpN27t9NbJNS4huTp8VII9ybBn71n+dJcSLy0L jP3p60qQQAsIb5OkNIgrBB+uCxaOQcIy8c7UXEVKjeUTwOx3CUJI+LZ0/3XZL9cGM/kg WxmgKZGrRfiwZuxLbMGTjeElWVyMcWe8hv90IomyC3cFN7oQtQMC0rlj5mk0rdg+NFNu KqnJEHd2lBrEBoYIpOTocs56TJWO3zj8aYmzLLgGOqbOIYW0Mvfc/jP7zQuyRmNRftnm HH8A== 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=eUbElglYi2bACeCaWgbk6XZJdRkvi8+nDJaEzVTN65s=; b=vToc/Sw84SmLbCBwjVJWZi+IoamXnKKGeLO2oSWiMd8bW4OSKxqoUZpajIxnzUA7IV g/kOe9zuzWLd79VT9jTxoD8QouxmZfwK/xzrQpGFCWY0MxV6xeZqJItR0Xfq57MuBmu8 kV1xSfg4pmGOG0DXh3BdU9J3u98TzkIuuYXhAb4mT6OekDzO9vLN0YpD+kG/QrLaOV7q WCHoskYs8RvXkH5mWsZS3asweTchNVDlAtLl03jxg1vj/GwGgyNYNXwdIeI7sE14fRbO btIsriD3MlOpaUH2Aus1ool1IygUlYnQ3Ww6saLxST8swnXyAxtYoPvgrZEkBh92BjM5 bP/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=cR8acegf; spf=pass (google.com: domain of mptcp+bounces-3594-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3594-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id 4si2105602qvr.251.2022.02.09.13.25.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Feb 2022 13:25:56 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3594-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=cR8acegf; spf=pass (google.com: domain of mptcp+bounces-3594-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3594-wpasupplicant.patchew=gmail.com@lists.linux.dev" 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 C3F7B1C0E36 for ; Wed, 9 Feb 2022 21:25:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4FE802CA1; Wed, 9 Feb 2022 21:25:52 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA50D2CA6 for ; Wed, 9 Feb 2022 21:25:50 +0000 (UTC) Received: by mail-wr1-f41.google.com with SMTP id d27so2415112wrb.5 for ; Wed, 09 Feb 2022 13:25:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares-net.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eUbElglYi2bACeCaWgbk6XZJdRkvi8+nDJaEzVTN65s=; b=cR8acegf/3BqGbW73ncdmtafdHZinJcic0UZ7/6s+GJjmW9Gzh1dgYK2hLM6aEDyZd vpRccR9IWDajVP0YCEDoraAGEqCExA8lsR3wi+gKOTp3tkxYoOOOu2OnAer3cLWYA9Rp CNB+BWVs0KEvO94TpTY2y8GYQ7AmZVs/QiwxqQOoaoJ/EX3LSgtESIjKjDIAtQgNwFrJ PEP+ll48AzXU7ZMpQE2hB6oiM6JOjX2BemcUCadRR4OafeYKObGbmiXayJmuwwDOQwl8 buZ1J2JIo9Cu8zG5jNh7UUYNrD9WZOYoYoKVZhA0R94+Zev/H8/nbxfAw5aqgqcvj1ZT RQqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eUbElglYi2bACeCaWgbk6XZJdRkvi8+nDJaEzVTN65s=; b=Ix62UtVJXpWep+/NDquYb/aDoGa8HC1BrSbPLM9UvO6/XFPty+otiUbG5SQjFGMuU3 jFWlRvxEfSahfu04fi5lFV8zWLRomqSaC6XBHKj5paQjt+8HnLIAbmBPJRv73lg+UOAw JsnZ2milzKHb0cInua0mGQomJ90lhfLE2+vau6mco/CSwZVN1gRTCENwsrAHh3KjXAFd cCmaTbnAzaYNzRD3xp8+6agdBGUws1ZrxrA8PEpQ23KG+nV6n8r2+r+Ybww4UaY4cxJ7 zaKx4L7iaTH52ojkPpegJfyeo124sq9wjkDhE+pDgGBqIukm5VGWKppgcLOq82wc23aM w8Jw== X-Gm-Message-State: AOAM533aO76UvHGEub0Y0NZxvON+5BNQR1MHGxXrUBqtkJ1/TGOgLFnQ UTpZEbM1kB7ficE0DXM3WvbyNaehl3+1r5QI X-Received: by 2002:a5d:560c:: with SMTP id l12mr3791356wrv.647.1644441948643; Wed, 09 Feb 2022 13:25:48 -0800 (PST) Received: from tsr-vdi-mbaerts.nix.tessares.net (static.23.216.130.94.clients.your-server.de. [94.130.216.23]) by smtp.gmail.com with ESMTPSA id p14sm18500730wrr.7.2022.02.09.13.25.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 13:25:48 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next 5/9] selftests: mptcp: join: create tmp files only if needed Date: Wed, 9 Feb 2022 22:25:16 +0100 Message-Id: <20220209212520.2989291-6-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220209212520.2989291-1-matthieu.baerts@tessares.net> References: <20220209212520.2989291-1-matthieu.baerts@tessares.net> 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" These tmp files will only be created when a test will be launched. This avoid 'dd' output when '-h' is used for example. While at it, also avoid creating netns that will be removed when starting the first test. Signed-off-by: Matthieu Baerts Reviewed-by: Mat Martineau --- .../testing/selftests/net/mptcp/mptcp_join.sh | 37 ++++++++++++------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index ce3e7db30b9d..5691221ca302 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -18,6 +18,7 @@ checksum=3D0 ip_mptcp=3D0 check_invert=3D0 do_all_tests=3D1 +INIT=3D0 =20 TEST_COUNT=3D0 ONLY_TESTS=3D() @@ -41,7 +42,7 @@ CBPF_MPTCP_SUBOPTION_ADD_ADDR=3D"14, 6 0 0 65535, 6 0 0 0" =20 -init() +init_partial() { capout=3D$(mktemp) =20 @@ -104,6 +105,21 @@ cleanup_partial() done } =20 +init() { + INIT=3D1 + + sin=3D$(mktemp) + sout=3D$(mktemp) + cin=3D$(mktemp) + cinsent=3D$(mktemp) + cout=3D$(mktemp) + + trap cleanup EXIT + + make_file "$cin" "client" 1 + make_file "$sin" "server" 1 +} + cleanup() { rm -f "$cin" "$cout" "$sinfail" @@ -136,8 +152,13 @@ reset() return 1 fi =20 - cleanup_partial - init + if [ "${INIT}" !=3D "1" ]; then + init + else + cleanup_partial + fi + + init_partial =20 return 0 } @@ -2342,16 +2363,6 @@ usage() exit ${ret} } =20 -sin=3D$(mktemp) -sout=3D$(mktemp) -cin=3D$(mktemp) -cinsent=3D$(mktemp) -cout=3D$(mktemp) -init -make_file "$cin" "client" 1 -make_file "$sin" "server" 1 -trap cleanup EXIT - for arg in "$@"; do # check for "capture/checksum" args before launching tests if [[ "${arg}" =3D~ ^"-"[0-9a-zA-Z]*"c"[0-9a-zA-Z]*$ ]]; then --=20 2.34.1 From nobody Mon May 6 22:26:12 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:9f92:0:0:0:0:0 with SMTP id a18csp2433461jam; Wed, 9 Feb 2022 13:25:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJwHtc3CfWXev3M9eWtCgiuLQAVOpvN8RUe7z7W0Lmwj8iMh6REgNsHUnNeRrwX1iSoBW8rF X-Received: by 2002:a0c:d804:: with SMTP id h4mr1872419qvj.114.1644441957232; Wed, 09 Feb 2022 13:25:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644441957; cv=none; d=google.com; s=arc-20160816; b=o/iXLgBSYpAEsKiA5dtXudJdEwgk20iGO0olvJph1rYHg0CCRyPtp0PxtnPpgY1yjo HOUMVJs+uyL3twWp13huSDL8qf+S9mXkOwM0GAz76GHsqVn5Ynea3YlDH6TdOR31ZSqi nO4BQS4RdCrSpCl4FyuPXt1j3dWSZOxsYNKJM6WoiwD4/j1r8DXIdsYYsWQvYpjwaK29 VegKgv2kd+KiHcQB1c6547xw/u6N8ooYuxz7TFT4cdQ9EvojwlWQRuLkEmtD2FK+PmBH EDSEqqaKc1MdZcMgUxuX2nxi7K3L6dSsd4yx0HuLPifhPNvjOrwecITFO1pvHQx6Ze0S c/dg== 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=acs+sFsBD+/Wj2OU+Z3H1bQcRouZVneObiFmNnGkWfI=; b=uzffW64U/i62B4rvNtkajhg/xcIr1p6ywnNea7r+u8giu2qgaiBWV3KTQwSR4nF7/j GpAnqO4yI7AGLn9LNStXoBA2KC50sA5DmEtLKz4wqCn17fRFDGJCBApWQmIebSFlaYIT xmMnggSBVajrv2/HjpCK/RFK5URDoc0X29x5awC5nCi78trVBc/emc17ovFNp/q3ReZg WE7UNqEriv4Vv4vkkussnDv8lzYVoipJ6ia3I4aRCtWS9M7FX5tMHbC+wzT3nnxtBGCS D2ANs58EYhMg/pBWEy79QHjzulYS0WZ9xNIul/R2Vh3u+xQvxzow8ylB+liaKpYiXNEi gHGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=zuUq52Hf; spf=pass (google.com: domain of mptcp+bounces-3595-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3595-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id 14si4365785qtz.199.2022.02.09.13.25.57 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Feb 2022 13:25:57 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3595-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=zuUq52Hf; spf=pass (google.com: domain of mptcp+bounces-3595-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3595-wpasupplicant.patchew=gmail.com@lists.linux.dev" 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 1021F1C0B49 for ; Wed, 9 Feb 2022 21:25:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7FF332CA2; Wed, 9 Feb 2022 21:25:52 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FAD82C80 for ; Wed, 9 Feb 2022 21:25:51 +0000 (UTC) Received: by mail-wr1-f53.google.com with SMTP id m14so6147658wrg.12 for ; Wed, 09 Feb 2022 13:25:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares-net.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=acs+sFsBD+/Wj2OU+Z3H1bQcRouZVneObiFmNnGkWfI=; b=zuUq52HfhYCiBN0CZ2RMLl44ahnECvQOmOI4Ayb0kP11lXOiHuhu8VVfHGQg3SGE/T 2tR1sWEgX8e8H2FPr55ECeexHejpWSQ+HNKJwxBO1DRChj+6ZPwfyrGvZwgpfdS+OGr1 v6w7KV+aCgfKiQVASDJlbuo7v8vFlXCdb35DKC7aVxFxWhsMEKsntXwEE1zv3r4X5M3W zWFSKTUjaIseYSupON3c9p+0Yq34Ndu61M+aYJu4vWPLKssxKHxto4A7cnvPxFwmsx3q CRM3XcSBlCVB8eJaGt9q1gRx2a/hHz/4R9FOwNciOHfbmrBorYjh7dzbH5aw8lP38KWP B5+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=acs+sFsBD+/Wj2OU+Z3H1bQcRouZVneObiFmNnGkWfI=; b=aeEU912rys5nDbWxBx61pJxL0fhpvPIp/SOIonWH1G95Gsyf9paCH13Jl9T3l2sBSe xXEv7mmpiv5Qa1rAGBuOoDhdgBdHfrbPQlrr+meE9kwtVdzmrNOTwkkJN5Ed8flqH9xB kmlCUPr8+An2EKJQdYYDx6DJYUmjK7xAF7pUCXHm2Zk3bqlPH0LYP3IbnjksNXU+oJRo Z0FbFCHedrsOyVI7/lh55Ujr/E14PiSRKiOcX4Yh5UwbFYc2Z14L3xPcsoTgyuc5tafj fbKngM1uENewCE8U8FuSk3ODNEqY72GeiRzTDXy/QOiy9eA7nLgic3QS/+B2ya0g5YHq Os8g== X-Gm-Message-State: AOAM5324po7hgEO78P5d0Ea0prhK6rudIz2I4RcvPzZdc1QxtqVLKCgZ 02W6M/DjwfUZs7oRiHLIR4snDUawPJtARrFT X-Received: by 2002:a5d:59ae:: with SMTP id p14mr3580019wrr.643.1644441949420; Wed, 09 Feb 2022 13:25:49 -0800 (PST) Received: from tsr-vdi-mbaerts.nix.tessares.net (static.23.216.130.94.clients.your-server.de. [94.130.216.23]) by smtp.gmail.com with ESMTPSA id p14sm18500730wrr.7.2022.02.09.13.25.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 13:25:49 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next 6/9] selftests: mptcp: join: check for tools only if needed Date: Wed, 9 Feb 2022 22:25:17 +0100 Message-Id: <20220209212520.2989291-7-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220209212520.2989291-1-matthieu.baerts@tessares.net> References: <20220209212520.2989291-1-matthieu.baerts@tessares.net> 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" To allow showing the 'help' menu even if these tools are not available. While at it, also avoid launching the command then checking $?. Instead, the check is directly done in the 'if'. Signed-off-by: Matthieu Baerts Reviewed-by: Mat Martineau --- .../testing/selftests/net/mptcp/mptcp_join.sh | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 5691221ca302..8c1ee51e9cfd 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -105,9 +105,29 @@ cleanup_partial() done } =20 +check_tools() +{ + if ! ip -Version &> /dev/null; then + echo "SKIP: Could not run test without ip tool" + exit $KSFT_SKIP + fi + + if ! iptables -V &> /dev/null; then + echo "SKIP: Could not run all tests without iptables tool" + exit $KSFT_SKIP + fi + + if ! ip6tables -V &> /dev/null; then + echo "SKIP: Could not run all tests without ip6tables tool" + exit $KSFT_SKIP + fi +} + init() { INIT=3D1 =20 + check_tools + sin=3D$(mktemp) sout=3D$(mktemp) cin=3D$(mktemp) @@ -214,24 +234,6 @@ reset_with_allow_join_id0() ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=3D$ns= 2_enable } =20 -ip -Version > /dev/null 2>&1 -if [ $? -ne 0 ];then - echo "SKIP: Could not run test without ip tool" - exit $ksft_skip -fi - -iptables -V > /dev/null 2>&1 -if [ $? -ne 0 ];then - echo "SKIP: Could not run all tests without iptables tool" - exit $ksft_skip -fi - -ip6tables -V > /dev/null 2>&1 -if [ $? -ne 0 ];then - echo "SKIP: Could not run all tests without ip6tables tool" - exit $ksft_skip -fi - print_file_err() { ls -l "$1" 1>&2 --=20 2.34.1 From nobody Mon May 6 22:26:12 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:9f92:0:0:0:0:0 with SMTP id a18csp2433504jam; Wed, 9 Feb 2022 13:26:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJxyR2XCJ2+5WHSDwWyJGtsIezU9/3o3D4RcLSRmBBrnowouAAg7p9mY4SOB7TZ/jHAmeb27 X-Received: by 2002:a37:a808:: with SMTP id r8mr2278734qke.665.1644441962507; Wed, 09 Feb 2022 13:26:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644441962; cv=none; d=google.com; s=arc-20160816; b=zy8ckJ1l8XqSbX58ExtyQwv5B44Ys0oWBCeXvc6ZvaqFxwYUbzlq9nuw6bnufNBiPE 2ENHsOlfDGd4LQ4FbSg70C2onMzScbI5IKxDRCJQVt+OiA6hmKSMne9LGJURwnNJtgbJ mPK2F3JOoNB7rXLRTIvC7C06Gv99KsuoYvBapez7JZP8G9cR8p4TWPkbgeYD+SkR+13u 82f39fbJ0fPAZmUojesl4A+Q1xR9XOvAfXj2UGM7ny1t+d4/e+xYkBDw0GhZDbA2sPar yWHZ81SJGn6t9ss+a+VSlLGS2qndsx766ollYGytBQlBg4Wi2Nq1ja/r2UzueBRKutVi mdkQ== 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=WZFPKgYT5Czqm6ieug/FyEE9Q5Vp2M7NX7lWqc4KoN4=; b=lzZ1//5axDpX/GcrZggQDcrXqdwFXANV7qeGwYwZ4SoJpYTJmjcom6EimxJHTt7dKN w4+AYWXNmr5CpvH9gvfHLY1xdjw1vCRbP8tpIbQMzWz7XjtPvJwPOj4RwFCdtp2JEFux 1H8auRZGSUDdM/icim1VJWLP3hhFSr34hQwTQYNy5qI1BRxl8oPsqeY0gkh45gzR2Y8c +RRx2Ss94MqCS6ZVqNc6NYedxjYEmDBffx8SBK6vedOoN98OinvinEmYXzjTFr8uXp2U MRQAVCX5Hcz6fqT8O5QJU7qRFo2dvQcJiIPWKSGkAKNNn4AwJmiS2GveMJfwDsq86L9r B9Nw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=DDfAw+ft; spf=pass (google.com: domain of mptcp+bounces-3599-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-3599-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id t18si4448921qtw.597.2022.02.09.13.26.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Feb 2022 13:26:02 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3599-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=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=DDfAw+ft; spf=pass (google.com: domain of mptcp+bounces-3599-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-3599-wpasupplicant.patchew=gmail.com@lists.linux.dev" 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 0FBFB1C0BB1 for ; Wed, 9 Feb 2022 21:26:02 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 39F652CA1; Wed, 9 Feb 2022 21:25:58 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1BE5A2CA6 for ; Wed, 9 Feb 2022 21:25:53 +0000 (UTC) Received: by mail-wm1-f52.google.com with SMTP id bg19-20020a05600c3c9300b0034565e837b6so212783wmb.1 for ; Wed, 09 Feb 2022 13:25:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares-net.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WZFPKgYT5Czqm6ieug/FyEE9Q5Vp2M7NX7lWqc4KoN4=; b=DDfAw+fteej89qo1+1StRRSmqec+hHYCSyIMgAHtM48LcWiV/Pz4pE0bD2H+iJ9dnp VJx5CQ+loXLKnFlM7L+1n1cq9ZYob058YgwrDsf200FIl6tfoyzQ9g/4JdCfFU8ZKRTX VULyNutqImN0KHovbjJHrkeywzrqNLVh7vXOT+ugT6cqRwMRnEKbvSU0H2BIWjn7MSN2 +VYU1WTrKiYsNY6jiWoy6dpVO+vRmbxZL3W9ynnlowSjr1Q0C1e3zQ5AUTOhSO/ZygP6 +d/Y5kjDGmkkbhgSE2/Yr9jpxsceHfNtB1ZtNOmPo1SNiZo4EI+zR/Cj6K+GZoisaq1S bFUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WZFPKgYT5Czqm6ieug/FyEE9Q5Vp2M7NX7lWqc4KoN4=; b=PbRXLsOGBXGlTA9f4tmAc8k3qxs3oBA4GXOKoDuWU3acsqwcQvSwabY4xVPF4Xwe42 7OLEWzAhgQs6F83AltxFHsUtaA9Zf5JEAD8hxijeKOAvuiKee2lrvJwpVSGOQ/mirjHz 8lxSi6K29lWPZzPHEpWuFCbI5W6qQ2g6trio1cG0xQxAQzjIYWV3bVJZnUzSVXkyICT+ UAHtAOh4YaiHG9l3KOLFkK2ZG7BiQV/c6fBV2b5xjQUuCDkNVg4sGIQsSeWpD3FBF2Gj LplKz8XrSZymi6Yedy7/Rsz87P5X690wThMhxWmrg1HmhUqvpZyRphp4TwNqiWxLaTrm AHtA== X-Gm-Message-State: AOAM530KXE2LfghDMExIy/OpERhY7QMyW+jnsItT8/oJ9JVJ96cJHp9k l6AMb77Np1dGTcVpwdttw2rQAbdC4a7PwteC X-Received: by 2002:a7b:c248:: with SMTP id b8mr4467494wmj.194.1644441950263; Wed, 09 Feb 2022 13:25:50 -0800 (PST) Received: from tsr-vdi-mbaerts.nix.tessares.net (static.23.216.130.94.clients.your-server.de. [94.130.216.23]) by smtp.gmail.com with ESMTPSA id p14sm18500730wrr.7.2022.02.09.13.25.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 13:25:49 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next 7/9] selftests: mptcp: join: clarify local/global vars Date: Wed, 9 Feb 2022 22:25:18 +0100 Message-Id: <20220209212520.2989291-8-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220209212520.2989291-1-matthieu.baerts@tessares.net> References: <20220209212520.2989291-1-matthieu.baerts@tessares.net> 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" Some vars are redefined in different places. Best to avoid this classical Bash pitfall where variables are accidentally overridden by other functions. To distinct between local and non local variables, all non local ones now have capital letters. The others are now defined with the "local" keyword. Signed-off-by: Matthieu Baerts Reviewed-by: Mat Martineau --- .../testing/selftests/net/mptcp/mptcp_join.sh | 1390 +++++++++-------- 1 file changed, 705 insertions(+), 685 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 8c1ee51e9cfd..15e642e0fa03 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1,28 +1,29 @@ #!/bin/bash # SPDX-License-Identifier: GPL-2.0 =20 -ret=3D0 -sin=3D"" -sinfail=3D"" -sout=3D"" -cin=3D"" -cinfail=3D"" -cinsent=3D"" -cout=3D"" -ksft_skip=3D4 -timeout_poll=3D30 -timeout_test=3D$((timeout_poll * 2 + 1)) -mptcp_connect=3D"" -capture=3D0 -checksum=3D0 -ip_mptcp=3D0 -check_invert=3D0 -do_all_tests=3D1 +RET=3D0 +SIN=3D"" +SINFAIL=3D"" +SOUT=3D"" +CIN=3D"" +CINFAIL=3D"" +CINSENT=3D"" +COUT=3D"" +CAPOUT=3D"" +KSFT_SKIP=3D4 +TIMEOUT_POLL=3D30 +TIMEOUT_TEST=3D$((TIMEOUT_POLL * 2 + 1)) +MPTCP_CONNECT=3D"" +CAPTURE=3D0 +CHECKSUM=3D0 +IP_MPTCP=3D0 +CHECK_INVERT=3D0 +DO_ALL_TESTS=3D1 INIT=3D0 =20 TEST_COUNT=3D0 ONLY_TESTS=3D() -nr_blank=3D40 +NR_BLANK=3D40 =20 # generated using "nfbpf_compile '(ip && (ip[54] & 0xf0) =3D=3D 0x30) || # (ip6 && (ip6[74] & 0xf0) =3D=3D 0x30)'" @@ -44,26 +45,28 @@ CBPF_MPTCP_SUBOPTION_ADD_ADDR=3D"14, =20 init_partial() { - capout=3D$(mktemp) + CAPOUT=3D$(mktemp) =20 + local rndh rndh=3D$(mktemp -u XXXXXX) =20 - ns1=3D"ns1-$rndh" - ns2=3D"ns2-$rndh" + NS1=3D"ns1-$rndh" + NS2=3D"ns2-$rndh" =20 - for netns in "$ns1" "$ns2";do - ip netns add $netns || exit $ksft_skip + local netns + for netns in "$NS1" "$NS2"; do + ip netns add $netns || exit $KSFT_SKIP ip -net $netns link set lo up ip netns exec $netns sysctl -q net.mptcp.enabled=3D1 ip netns exec $netns sysctl -q net.mptcp.pm_type=3D0 ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=3D0 ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=3D0 - if [ $checksum -eq 1 ]; then + if [ $CHECKSUM -eq 1 ]; then ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=3D1 fi done =20 - check_invert=3D0 + CHECK_INVERT=3D0 =20 # ns1 ns2 # ns1eth1 ns2eth1 @@ -71,35 +74,38 @@ init_partial() # ns1eth3 ns2eth3 # ns1eth4 ns2eth4 =20 + local i for i in `seq 1 4`; do - ip link add ns1eth$i netns "$ns1" type veth peer name ns2eth$i netns "$n= s2" - ip -net "$ns1" addr add 10.0.$i.1/24 dev ns1eth$i - ip -net "$ns1" addr add dead:beef:$i::1/64 dev ns1eth$i nodad - ip -net "$ns1" link set ns1eth$i up - - ip -net "$ns2" addr add 10.0.$i.2/24 dev ns2eth$i - ip -net "$ns2" addr add dead:beef:$i::2/64 dev ns2eth$i nodad - ip -net "$ns2" link set ns2eth$i up - - # let $ns2 reach any $ns1 address from any interface - ip -net "$ns2" route add default via 10.0.$i.1 dev ns2eth$i metric 10$i - ip -net "$ns2" route add default via dead:beef:$i::1 dev ns2eth$i metric= 10$i + ip link add ns1eth$i netns "$NS1" type veth peer name ns2eth$i netns "$N= S2" + ip -net "$NS1" addr add 10.0.$i.1/24 dev ns1eth$i + ip -net "$NS1" addr add dead:beef:$i::1/64 dev ns1eth$i nodad + ip -net "$NS1" link set ns1eth$i up + + ip -net "$NS2" addr add 10.0.$i.2/24 dev ns2eth$i + ip -net "$NS2" addr add dead:beef:$i::2/64 dev ns2eth$i nodad + ip -net "$NS2" link set ns2eth$i up + + # let $NS2 reach any $NS1 address from any interface + ip -net "$NS2" route add default via 10.0.$i.1 dev ns2eth$i metric 10$i + ip -net "$NS2" route add default via dead:beef:$i::1 dev ns2eth$i metric= 10$i done } =20 init_shapers() { + local i for i in `seq 1 4`; do - tc -n $ns1 qdisc add dev ns1eth$i root netem rate 20mbit delay 1 - tc -n $ns2 qdisc add dev ns2eth$i root netem rate 20mbit delay 1 + tc -n $NS1 qdisc add dev ns1eth$i root netem rate 20mbit delay 1 + tc -n $NS2 qdisc add dev ns2eth$i root netem rate 20mbit delay 1 done } =20 cleanup_partial() { - rm -f "$capout" + rm -f "${CAPOUT}" =20 - for netns in "$ns1" "$ns2"; do + local netns + for netns in "$NS1" "$NS2"; do ip netns del $netns rm -f /tmp/$netns.{nstat,out} done @@ -128,33 +134,32 @@ init() { =20 check_tools =20 - sin=3D$(mktemp) - sout=3D$(mktemp) - cin=3D$(mktemp) - cinsent=3D$(mktemp) - cout=3D$(mktemp) + SIN=3D$(mktemp) + SOUT=3D$(mktemp) + CIN=3D$(mktemp) + CINSENT=3D$(mktemp) + COUT=3D$(mktemp) =20 trap cleanup EXIT =20 - make_file "$cin" "client" 1 - make_file "$sin" "server" 1 + make_file "$CIN" "client" 1 + make_file "$SIN" "server" 1 } =20 cleanup() { - rm -f "$cin" "$cout" "$sinfail" - rm -f "$sin" "$sout" "$cinsent" "$cinfail" + rm -f "${CIN}" "${COUT}" "${SINFAIL}" + rm -f "${SIN}" "${SOUT}" "${CINSENT}" "${CINFAIL}" cleanup_partial } =20 skip_test() { - local i - if [ "${#ONLY_TESTS[@]}" -eq 0 ]; then return 1 fi =20 + local i for i in "${ONLY_TESTS[@]}"; do if [ "${TEST_COUNT}" -eq "${i}" ]; then return 1 @@ -187,7 +192,8 @@ reset_with_cookies() { reset || return 1 =20 - for netns in "$ns1" "$ns2";do + local netns + for netns in "$NS1" "$NS2"; do ip netns exec $netns sysctl -q net.ipv4.tcp_syncookies=3D2 done } @@ -197,15 +203,15 @@ reset_with_add_addr_timeout() local ip=3D"${1:-4}" local tables =20 + reset || return 1 + tables=3D"iptables" if [ $ip -eq 6 ]; then tables=3D"ip6tables" fi =20 - reset || return 1 - - ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=3D1 - ip netns exec $ns2 $tables -A OUTPUT -p tcp \ + ip netns exec $NS1 sysctl -q net.mptcp.add_addr_timeout=3D1 + ip netns exec $NS2 $tables -A OUTPUT -p tcp \ -m tcp --tcp-option 30 \ -m bpf --bytecode \ "$CBPF_MPTCP_SUBOPTION_ADD_ADDR" \ @@ -219,8 +225,8 @@ reset_with_checksum() =20 reset || return 1 =20 - ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=3D$ns1_enable - ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=3D$ns2_enable + ip netns exec $NS1 sysctl -q net.mptcp.checksum_enabled=3D$ns1_enable + ip netns exec $NS2 sysctl -q net.mptcp.checksum_enabled=3D$ns2_enable } =20 reset_with_allow_join_id0() @@ -230,8 +236,8 @@ reset_with_allow_join_id0() =20 reset || return 1 =20 - ip netns exec $ns1 sysctl -q net.mptcp.allow_join_initial_addr_port=3D$ns= 1_enable - ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=3D$ns= 2_enable + ip netns exec $NS1 sysctl -q net.mptcp.allow_join_initial_addr_port=3D$ns= 1_enable + ip netns exec $NS2 sysctl -q net.mptcp.allow_join_initial_addr_port=3D$ns= 2_enable } =20 print_file_err() @@ -243,19 +249,19 @@ print_file_err() =20 check_transfer() { - in=3D$1 - out=3D$2 - what=3D$3 + local in=3D$1 + local out=3D$2 + local what=3D$3 =20 cmp -l "$in" "$out" | while read line; do local arr=3D($line) =20 let sum=3D0${arr[1]}+0${arr[2]} - if [ $check_invert -eq 0 ] || [ $sum -ne $((0xff)) ]; then + if [ $CHECK_INVERT -eq 0 ] || [ $sum -ne $((0xff)) ]; then echo "[ FAIL ] $what does not match (in, out):" print_file_err "$in" print_file_err "$out" - ret=3D1 + RET=3D1 =20 return 1 else @@ -268,28 +274,29 @@ check_transfer() =20 do_ping() { - listener_ns=3D"$1" - connector_ns=3D"$2" - connect_addr=3D"$3" + local listener_ns=3D"$1" + local connector_ns=3D"$2" + local connect_addr=3D"$3" =20 ip netns exec ${connector_ns} ping -q -c 1 $connect_addr >/dev/null if [ $? -ne 0 ] ; then echo "$listener_ns -> $connect_addr connectivity [ FAIL ]" 1>&2 - ret=3D1 + RET=3D1 fi } =20 link_failure() { - ns=3D"$1" + local ns=3D"$1" =20 if [ -z "$FAILING_LINKS" ]; then l=3D$((RANDOM%4)) FAILING_LINKS=3D$((l+1)) fi =20 + local l for l in $FAILING_LINKS; do - veth=3D"ns1eth$l" + local veth=3D"ns1eth$l" ip -net "$ns" link set "$veth" down done } @@ -319,7 +326,7 @@ wait_local_port_listen() =20 rm_addr_count() { - ns=3D${1} + local ns=3D${1} =20 ip netns exec ${ns} nstat -as | grep MPTcpExtRmAddr | awk '{print $2}' } @@ -345,7 +352,7 @@ pm_nl_set_limits() local addrs=3D$2 local subflows=3D$3 =20 - if [ $ip_mptcp -eq 1 ]; then + if [ $IP_MPTCP -eq 1 ]; then ip -n $ns mptcp limits set add_addr_accepted $addrs subflows $subflows else ip netns exec $ns ./pm_nl_ctl limits $addrs $subflows @@ -356,11 +363,12 @@ pm_nl_add_endpoint() { local ns=3D$1 local addr=3D$2 - local flags - local port - local dev - local id + local flags _flags + local port _port + local dev _dev + local id _id local nr=3D2 + local p =20 for p in $@ do @@ -384,7 +392,7 @@ pm_nl_add_endpoint() let nr+=3D1 done =20 - if [ $ip_mptcp -eq 1 ]; then + if [ $IP_MPTCP -eq 1 ]; then ip -n $ns mptcp endpoint add $addr ${_flags//","/" "} $dev $id $port else ip netns exec $ns ./pm_nl_ctl add $addr $flags $dev $id $port @@ -397,7 +405,7 @@ pm_nl_del_endpoint() local id=3D$2 local addr=3D$3 =20 - if [ $ip_mptcp -eq 1 ]; then + if [ $IP_MPTCP -eq 1 ]; then ip -n $ns mptcp endpoint delete id $id $addr else ip netns exec $ns ./pm_nl_ctl del $id $addr @@ -408,7 +416,7 @@ pm_nl_flush_endpoint() { local ns=3D$1 =20 - if [ $ip_mptcp -eq 1 ]; then + if [ $IP_MPTCP -eq 1 ]; then ip -n $ns mptcp endpoint flush else ip netns exec $ns ./pm_nl_ctl flush @@ -419,7 +427,7 @@ pm_nl_show_endpoints() { local ns=3D$1 =20 - if [ $ip_mptcp -eq 1 ]; then + if [ $IP_MPTCP -eq 1 ]; then ip -n $ns mptcp endpoint show else ip netns exec $ns ./pm_nl_ctl dump @@ -432,7 +440,7 @@ pm_nl_change_endpoint() local id=3D$2 local flags=3D$3 =20 - if [ $ip_mptcp -eq 1 ]; then + if [ $IP_MPTCP -eq 1 ]; then ip -n $ns mptcp endpoint change id $id ${flags//","/" "} else ip netns exec $ns ./pm_nl_ctl set id $id flags $flags @@ -441,24 +449,26 @@ pm_nl_change_endpoint() =20 do_transfer() { - listener_ns=3D"$1" - connector_ns=3D"$2" - cl_proto=3D"$3" - srv_proto=3D"$4" - connect_addr=3D"$5" - test_link_fail=3D"$6" - addr_nr_ns1=3D"$7" - addr_nr_ns2=3D"$8" - speed=3D"$9" - sflags=3D"${10}" - - port=3D$((10000+$TEST_COUNT-1)) - - :> "$cout" - :> "$sout" - :> "$capout" - - if [ $capture -eq 1 ]; then + local listener_ns=3D"$1" + local connector_ns=3D"$2" + local cl_proto=3D"$3" + local srv_proto=3D"$4" + local connect_addr=3D"$5" + local test_link_fail=3D"$6" + local addr_nr_ns1=3D"$7" + local addr_nr_ns2=3D"$8" + local speed=3D"$9" + local sflags=3D"${10}" + + local port=3D$((10000 + TEST_COUNT - 1)) + local cappid + + :> "$COUT" + :> "$SOUT" + :> "$CAPOUT" + + if [ $CAPTURE -eq 1 ]; then + local capuser if [ -z $SUDO_USER ] ; then capuser=3D"" else @@ -468,7 +478,7 @@ do_transfer() capfile=3D$(printf "mp_join-%02u-%s.pcap" "$TEST_COUNT" "${listener_ns}") =20 echo "Capturing traffic for test $TEST_COUNT into $capfile" - ip netns exec ${listener_ns} tcpdump -i any -s 65535 -B 32768 $capuser -= w $capfile > "$capout" 2>&1 & + ip netns exec ${listener_ns} tcpdump -i any -s 65535 -B 32768 $capuser -= w $capfile > "$CAPOUT" 2>&1 & cappid=3D$! =20 sleep 1 @@ -480,11 +490,11 @@ do_transfer() nstat -n =20 if [ $speed =3D "fast" ]; then - mptcp_connect=3D"./mptcp_connect -j" + MPTCP_CONNECT=3D"./mptcp_connect -j" elif [ $speed =3D "slow" ]; then - mptcp_connect=3D"./mptcp_connect -r 50" + MPTCP_CONNECT=3D"./mptcp_connect -r 50" elif [ $speed =3D "least" ]; then - mptcp_connect=3D"./mptcp_connect -r 10" + MPTCP_CONNECT=3D"./mptcp_connect -r 10" fi =20 local local_addr @@ -495,42 +505,43 @@ do_transfer() fi =20 if [ "$test_link_fail" -eq 2 ];then - timeout ${timeout_test} \ + timeout ${TIMEOUT_TEST} \ ip netns exec ${listener_ns} \ - $mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ - ${local_addr} < "$sinfail" > "$sout" & + $MPTCP_CONNECT -t ${TIMEOUT_POLL} -l -p $port -s ${srv_proto} \ + ${local_addr} < "$SINFAIL" > "$SOUT" & else - timeout ${timeout_test} \ + timeout ${TIMEOUT_TEST} \ ip netns exec ${listener_ns} \ - $mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ - ${local_addr} < "$sin" > "$sout" & + $MPTCP_CONNECT -t ${TIMEOUT_POLL} -l -p $port -s ${srv_proto} \ + ${local_addr} < "$SIN" > "$SOUT" & fi - spid=3D$! + local spid=3D$! =20 wait_local_port_listen "${listener_ns}" "${port}" =20 if [ "$test_link_fail" -eq 0 ];then - timeout ${timeout_test} \ + timeout ${TIMEOUT_TEST} \ ip netns exec ${connector_ns} \ - $mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ - $connect_addr < "$cin" > "$cout" & + $MPTCP_CONNECT -t ${TIMEOUT_POLL} -p $port -s ${cl_proto} \ + $connect_addr < "$CIN" > "$COUT" & else - ( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" )= | \ - tee "$cinsent" | \ - timeout ${timeout_test} \ + ( cat "$CINFAIL" ; sleep 2; link_failure $listener_ns ; cat "$CINFAIL" )= | \ + tee "$CINSENT" | \ + timeout ${TIMEOUT_TEST} \ ip netns exec ${connector_ns} \ - $mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ - $connect_addr > "$cout" & + $MPTCP_CONNECT -t ${TIMEOUT_POLL} -p $port -s ${cl_proto} \ + $connect_addr > "$COUT" & fi - cpid=3D$! + local 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 =20 if [ $addr_nr_ns1 -gt 0 ]; then + local counter=3D2 + local add_nr_ns1 let add_nr_ns1=3Daddr_nr_ns1 - counter=3D2 while [ $add_nr_ns1 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -538,18 +549,20 @@ do_transfer() else addr=3D"10.0.$counter.1" fi - pm_nl_add_endpoint $ns1 $addr flags signal + pm_nl_add_endpoint $NS1 $addr flags signal let counter+=3D1 let add_nr_ns1-=3D1 done elif [ $addr_nr_ns1 -lt 0 ]; then + local rm_nr_ns1 let rm_nr_ns1=3D-addr_nr_ns1 if [ $rm_nr_ns1 -lt 8 ]; then - counter=3D0 + local counter=3D0 pm_nl_show_endpoints ${listener_ns} | while read line; do local arr=3D($line) local nr=3D0 =20 + local i for i in ${arr[@]}; do if [ $i =3D "id" ]; then if [ $counter -eq $rm_nr_ns1 ]; then @@ -571,7 +584,7 @@ do_transfer() fi fi =20 - flags=3D"subflow" + local flags=3D"subflow" if [[ "${addr_nr_ns2}" =3D "fullmesh_"* ]]; then flags=3D"${flags},fullmesh" addr_nr_ns2=3D${addr_nr_ns2:9} @@ -582,8 +595,9 @@ do_transfer() [ $addr_nr_ns1 -gt 0 -a $addr_nr_ns2 -lt 0 ] && sleep 1 =20 if [ $addr_nr_ns2 -gt 0 ]; then + local add_nr_ns2 let add_nr_ns2=3Daddr_nr_ns2 - counter=3D3 + local counter=3D3 while [ $add_nr_ns2 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -596,18 +610,20 @@ do_transfer() let add_nr_ns2-=3D1 done elif [ $addr_nr_ns2 -lt 0 ]; then - let rm_nr_ns2=3D-addr_nr_ns2 + local rm_nr_ns2 if [ $rm_nr_ns2 -lt 8 ]; then - counter=3D0 + local counter=3D0 pm_nl_show_endpoints ${connector_ns} | while read line; do local arr=3D($line) local nr=3D0 + local i =20 for i in ${arr[@]}; do if [ $i =3D "id" ]; then if [ $counter -eq $rm_nr_ns2 ]; then break fi + local id rm_addr # rm_addr are serialized, allow the previous one to # complete id=3D${arr[$nr+1]} @@ -634,7 +650,7 @@ do_transfer() =20 if [ ! -z $sflags ]; then sleep 1 - for netns in "$ns1" "$ns2"; do + for netns in "$NS1" "$NS2"; do pm_nl_show_endpoints $netns | while read line; do local arr=3D($line) local nr=3D0 @@ -652,11 +668,11 @@ do_transfer() fi =20 wait $cpid - retc=3D$? + local retc=3D$? wait $spid - rets=3D$? + local rets=3D$? =20 - if [ $capture -eq 1 ]; then + if [ $CAPTURE -eq 1 ]; then sleep 1 kill $cappid fi @@ -675,38 +691,38 @@ do_transfer() ip netns exec ${connector_ns} ss -Menita 1>&2 -o "dport =3D :$port" cat /tmp/${connector_ns}.out =20 - cat "$capout" - ret=3D1 + cat "$CAPOUT" + RET=3D1 return 1 fi =20 if [ "$test_link_fail" -eq 2 ];then - check_transfer $sinfail $cout "file received by client" + check_transfer $SINFAIL $COUT "file received by client" else - check_transfer $sin $cout "file received by client" + check_transfer $SIN $COUT "file received by client" fi retc=3D$? if [ "$test_link_fail" -eq 0 ];then - check_transfer $cin $sout "file received by server" + check_transfer $CIN $SOUT "file received by server" else - check_transfer $cinsent $sout "file received by server" + check_transfer $CINSENT $SOUT "file received by server" fi rets=3D$? =20 if [ $retc -eq 0 ] && [ $rets -eq 0 ];then - cat "$capout" + cat "$CAPOUT" return 0 fi =20 - cat "$capout" + cat "$CAPOUT" return 1 } =20 make_file() { - name=3D$1 - who=3D$2 - size=3D$3 + local name=3D$1 + local who=3D$2 + local size=3D$3 =20 dd if=3D/dev/urandom of=3D"$name" bs=3D1024 count=3D$size 2> /dev/null echo -e "\nMPTCP_TEST_FILE_END_MARKER" >> "$name" @@ -716,18 +732,20 @@ make_file() =20 run_tests() { - listener_ns=3D"$1" - connector_ns=3D"$2" - connect_addr=3D"$3" - test_linkfail=3D"${4:-0}" - addr_nr_ns1=3D"${5:-0}" - addr_nr_ns2=3D"${6:-0}" - speed=3D"${7:-fast}" - sflags=3D"${8:-""}" + local listener_ns=3D"$1" + local connector_ns=3D"$2" + local connect_addr=3D"$3" + local test_linkfail=3D"${4:-0}" + local addr_nr_ns1=3D"${5:-0}" + local addr_nr_ns2=3D"${6:-0}" + local speed=3D"${7:-fast}" + local sflags=3D"${8:-""}" + + local size =20 # create the input file for the failure test when # the first failure test run - if [ "$test_linkfail" -ne 0 -a -z "$cinfail" ]; then + if [ "$test_linkfail" -ne 0 -a -z "$CINFAIL" ]; then # the client file must be considerably larger # of the maximum expected cwin value, or the # link utilization will be not predicable @@ -736,17 +754,17 @@ run_tests() size=3D$((size*8192)) size=3D$((size + ( $RANDOM % 8192) )) =20 - cinfail=3D$(mktemp) - make_file "$cinfail" "client" $size + CINFAIL=3D$(mktemp) + make_file "$CINFAIL" "client" $size fi =20 - if [ "$test_linkfail" -eq 2 -a -z "$sinfail" ]; then + if [ "$test_linkfail" -eq 2 -a -z "$SINFAIL" ]; then size=3D$((RANDOM%16)) size=3D$((size+1)) size=3D$((size*2048)) =20 - sinfail=3D$(mktemp) - make_file "$sinfail" "server" $size + SINFAIL=3D$(mktemp) + make_file "$SINFAIL" "server" $size fi =20 do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} \ @@ -756,9 +774,9 @@ run_tests() dump_stats() { echo Server ns stats - ip netns exec $ns1 nstat -as | grep Tcp + ip netns exec $NS1 nstat -as | grep Tcp echo Client ns stats - ip netns exec $ns2 nstat -as | grep Tcp + ip netns exec $NS2 nstat -as | grep Tcp } =20 chk_csum_nr() @@ -773,21 +791,21 @@ chk_csum_nr() echo -n " " fi printf " %-36s %s" "$msg" "sum" - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtDataCsumErr | awk '{= print $2}'` + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtDataCsumErr | awk '{= print $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D 0 ]; then echo "[fail] got $count data checksum error[s] expected 0" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" fi echo -n " - csum " - count=3D`ip netns exec $ns2 nstat -as | grep MPTcpExtDataCsumErr | awk '{= print $2}'` + count=3D`ip netns exec $NS2 nstat -as | grep MPTcpExtDataCsumErr | awk '{= print $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D 0 ]; then echo "[fail] got $count data checksum error[s] expected 0" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo "[ ok ]" @@ -802,23 +820,23 @@ chk_fail_nr() local count local dump_stats =20 - printf "%-${nr_blank}s %s" " " "ftx" - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMPFailTx | awk '{pri= nt $2}'` + printf "%-${NR_BLANK}s %s" " " "ftx" + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPFailTx | awk '{pri= nt $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_fail_nr_tx" ]; then echo "[fail] got $count MP_FAIL[s] TX expected $mp_fail_nr_tx" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" fi =20 echo -n " - frx " - count=3D`ip netns exec $ns2 nstat -as | grep MPTcpExtMPFailRx | awk '{pri= nt $2}'` + count=3D`ip netns exec $NS2 nstat -as | grep MPTcpExtMPFailRx | awk '{pri= nt $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_fail_nr_rx" ]; then echo "[fail] got $count MP_FAIL[s] RX expected $mp_fail_nr_rx" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo "[ ok ]" @@ -834,23 +852,23 @@ chk_infi_nr() local count local dump_stats =20 - printf "%-${nr_blank}s %s" " " "itx" - count=3D`ip netns exec $ns2 nstat -as | grep InfiniteMapTx | awk '{print = $2}'` + printf "%-${NR_BLANK}s %s" " " "itx" + count=3D`ip netns exec $NS2 nstat -as | grep InfiniteMapTx | awk '{print = $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_infi_nr_tx" ]; then echo "[fail] got $count infinite map[s] TX expected $mp_infi_nr_tx" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" fi =20 echo -n " - irx " - count=3D`ip netns exec $ns1 nstat -as | grep InfiniteMapRx | awk '{print = $2}'` + count=3D`ip netns exec $NS1 nstat -as | grep InfiniteMapRx | awk '{print = $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_infi_nr_rx" ]; then echo "[fail] got $count infinite map[s] RX expected $mp_infi_nr_rx" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo "[ ok ]" @@ -869,39 +887,39 @@ chk_join_nr() local dump_stats =20 printf "%03u %-36s %s" "$TEST_COUNT" "$msg" "syn" - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinSynRx | awk '{= print $2}'` + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinSynRx | awk '{= print $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$syn_nr" ]; then echo "[fail] got $count JOIN[s] syn expected $syn_nr" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" fi =20 echo -n " - synack" - count=3D`ip netns exec $ns2 nstat -as | grep MPTcpExtMPJoinSynAckRx | awk= '{print $2}'` + 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 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" fi =20 echo -n " - ack" - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinAckRx | awk '{= print $2}'` + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinAckRx | awk '{= print $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$ack_nr" ]; then echo "[fail] got $count JOIN[s] ack expected $ack_nr" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo "[ ok ]" fi [ "${dump_stats}" =3D 1 ] && dump_stats - if [ $checksum -eq 1 ]; then + if [ $CHECKSUM -eq 1 ]; then chk_csum_nr chk_fail_nr 0 0 chk_infi_nr 0 0 @@ -923,7 +941,7 @@ chk_stale_nr() local stale_nr local recover_nr =20 - printf "%-${nr_blank}s %-18s" " " "stale" + printf "%-${NR_BLANK}s %-18s" " " "stale" stale_nr=3D`ip netns exec $ns nstat -as | grep MPTcpExtSubflowStale | awk= '{print $2}'` [ -z "$stale_nr" ] && stale_nr=3D0 recover_nr=3D`ip netns exec $ns nstat -as | grep MPTcpExtSubflowRecover |= awk '{print $2}'` @@ -935,7 +953,7 @@ chk_stale_nr() echo "[fail] got $stale_nr stale[s] $recover_nr recover[s], " \ " expected stale in range [$stale_min..$stale_max]," \ " stale-recover delta $stale_delta " - ret=3D1 + RET=3D1 dump_stats=3D1 else echo "[ ok ]" @@ -962,28 +980,28 @@ chk_add_nr() local dump_stats local timeout =20 - timeout=3D`ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout` + timeout=3D`ip netns exec $NS1 sysctl -n net.mptcp.add_addr_timeout` =20 - printf "%-${nr_blank}s %s" " " "add" - count=3D`ip netns exec $ns2 nstat -as MPTcpExtAddAddr | grep MPTcpExtAddA= ddr | awk '{print $2}'` + printf "%-${NR_BLANK}s %s" " " "add" + count=3D`ip netns exec $NS2 nstat -as MPTcpExtAddAddr | grep MPTcpExtAddA= ddr | awk '{print $2}'` [ -z "$count" ] && count=3D0 =20 # 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 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" fi =20 echo -n " - echo " - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtEchoAdd | awk '{prin= t $2}'` + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtEchoAdd | awk '{prin= t $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$echo_nr" ]; then echo "[fail] got $count ADD_ADDR echo[s] expected $echo_nr" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" @@ -991,76 +1009,76 @@ chk_add_nr() =20 if [ $port_nr -gt 0 ]; then echo -n " - pt " - count=3D`ip netns exec $ns2 nstat -as | grep MPTcpExtPortAdd | awk '{pri= nt $2}'` + count=3D`ip netns exec $NS2 nstat -as | grep MPTcpExtPortAdd | awk '{pri= nt $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$port_nr" ]; then echo "[fail] got $count ADD_ADDR[s] with a port-number expected $port_n= r" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo "[ ok ]" fi =20 - printf "%-${nr_blank}s %s" " " "syn" - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinPortSynRx | + printf "%-${NR_BLANK}s %s" " " "syn" + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinPortSynRx | awk '{print $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$syn_nr" ]; then echo "[fail] got $count JOIN[s] syn with a different \ port-number expected $syn_nr" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" fi =20 echo -n " - synack" - count=3D`ip netns exec $ns2 nstat -as | grep MPTcpExtMPJoinPortSynAckRx | + count=3D`ip netns exec $NS2 nstat -as | grep MPTcpExtMPJoinPortSynAckRx | awk '{print $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$syn_ack_nr" ]; then echo "[fail] got $count JOIN[s] synack with a different \ port-number expected $syn_ack_nr" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" fi =20 echo -n " - ack" - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinPortAckRx | + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinPortAckRx | awk '{print $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$ack_nr" ]; then echo "[fail] got $count JOIN[s] ack with a different \ port-number expected $ack_nr" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo "[ ok ]" fi =20 - printf "%-${nr_blank}s %s" " " "syn" - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMismatchPortSynRx | + printf "%-${NR_BLANK}s %s" " " "syn" + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMismatchPortSynRx | awk '{print $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mis_syn_nr" ]; then echo "[fail] got $count JOIN[s] syn with a mismatched \ port-number expected $mis_syn_nr" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" fi =20 echo -n " - ack " - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMismatchPortAckRx | + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMismatchPortAckRx | awk '{print $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mis_ack_nr" ]; then echo "[fail] got $count JOIN[s] ack with a mismatched \ port-number expected $mis_ack_nr" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo "[ ok ]" @@ -1083,19 +1101,19 @@ chk_rm_nr() local subflow_ns =20 if [ -z $invert ]; then - addr_ns=3D$ns1 - subflow_ns=3D$ns2 + addr_ns=3D$NS1 + subflow_ns=3D$NS2 elif [ $invert =3D "invert" ]; then - addr_ns=3D$ns2 - subflow_ns=3D$ns1 + addr_ns=3D$NS2 + subflow_ns=3D$NS1 fi =20 - printf "%-${nr_blank}s %s" " " "rm " + printf "%-${NR_BLANK}s %s" " " "rm " count=3D`ip netns exec $addr_ns nstat -as | grep MPTcpExtRmAddr | awk '{p= rint $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$rm_addr_nr" ]; then echo "[fail] got $count RM_ADDR[s] expected $rm_addr_nr" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" @@ -1106,7 +1124,7 @@ chk_rm_nr() [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$rm_subflow_nr" ]; then echo "[fail] got $count RM_SUBFLOW[s] expected $rm_subflow_nr" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo "[ ok ]" @@ -1122,23 +1140,23 @@ chk_prio_nr() local count local dump_stats =20 - printf "%-${nr_blank}s %s" " " "ptx" - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMPPrioTx | awk '{pri= nt $2}'` + printf "%-${NR_BLANK}s %s" " " "ptx" + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPPrioTx | awk '{pri= nt $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_prio_nr_tx" ]; then echo "[fail] got $count MP_PRIO[s] TX expected $mp_prio_nr_tx" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo -n "[ ok ]" fi =20 echo -n " - prx " - count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMPPrioRx | awk '{pri= nt $2}'` + count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPPrioRx | awk '{pri= nt $2}'` [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_prio_nr_rx" ]; then echo "[fail] got $count MP_PRIO[s] RX expected $mp_prio_nr_rx" - ret=3D1 + RET=3D1 dump_stats=3D1 else echo "[ ok ]" @@ -1158,11 +1176,11 @@ chk_link_usage() local tx_rate=3D$((tx_link * 100 / $tx_total)) local tolerance=3D5 =20 - printf "%-${nr_blank}s %-18s" " " "link usage" + printf "%-${NR_BLANK}s %-18s" " " "link usage" if [ $tx_rate -lt $((expected_rate - $tolerance)) -o \ $tx_rate -gt $((expected_rate + $tolerance)) ]; then echo "[fail] got $tx_rate% usage, expected $expected_rate%" - ret=3D1 + RET=3D1 else echo "[ ok ]" fi @@ -1170,12 +1188,14 @@ chk_link_usage() =20 wait_attempt_fail() { - local timeout_ms=3D$((timeout_poll * 1000)) + local timeout_ms=3D$((TIMEOUT_POLL * 1000)) local time=3D0 local ns=3D$1 =20 while [ $time -lt $timeout_ms ]; do - local cnt=3D$(ip netns exec $ns nstat -as TcpAttemptFails | grep TcpAtte= mptFails | awk '{print $2}') + local cnt + + cnt=3D$(ip netns exec $ns nstat -as TcpAttemptFails | grep TcpAttemptFai= ls | awk '{print $2}') =20 [ "$cnt" =3D 1 ] && return 1 time=3D$((time + 100)) @@ -1187,63 +1207,63 @@ wait_attempt_fail() subflows_tests() { if reset; then - run_tests $ns1 $ns2 10.0.1.1 + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "no JOIN" "0" "0" "0" fi =20 # subflow limited by client if reset; then - pm_nl_set_limits $ns1 0 0 - pm_nl_set_limits $ns2 0 0 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 0 + pm_nl_set_limits $NS2 0 0 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "single subflow, limited by client" 0 0 0 fi =20 # subflow limited by server if reset; then - pm_nl_set_limits $ns1 0 0 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 0 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "single subflow, limited by server" 1 1 0 fi =20 # subflow if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "single subflow" 1 1 1 fi =20 # multiple subflows if reset; then - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 0 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "multiple subflows" 2 2 2 fi =20 # multiple subflows limited by server if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "multiple subflows, limited by server" 2 2 1 fi =20 # single subflow, dev if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow dev ns2eth3 - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow dev ns2eth3 + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "single subflow, dev" 1 1 1 fi } @@ -1253,32 +1273,32 @@ subflows_error_tests() # If a single subflow is configured, and matches the MPC src # address, no additional subflow should be created if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.1.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 0 0 slow chk_join_nr "no MPC reuse with single endpoint" 0 0 0 fi =20 # multiple subflows, with subflow creation error if reset; then - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j REJECT - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 0 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow + ip netns exec $NS1 iptables -A INPUT -s 10.0.3.2 -p tcp -j REJECT + run_tests $NS1 $NS2 10.0.1.1 0 0 0 slow chk_join_nr "multi subflows, with failing subflow" 1 1 1 fi =20 # multiple subflows, with subflow timeout on MPJ if reset; then - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j DROP - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 0 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow + ip netns exec $NS1 iptables -A INPUT -s 10.0.3.2 -p tcp -j DROP + run_tests $NS1 $NS2 10.0.1.1 0 0 0 slow chk_join_nr "multi subflows, with subflow timeout" 1 1 1 fi =20 @@ -1286,15 +1306,15 @@ subflows_error_tests() # closed subflow (due to reset) is not reused if additional # subflows are added later if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j REJECT - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow & + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + ip netns exec $NS1 iptables -A INPUT -s 10.0.3.2 -p tcp -j REJECT + run_tests $NS1 $NS2 10.0.1.1 0 0 0 slow & =20 # mpj subflow will be in TW after the reset - wait_attempt_fail $ns2 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow + wait_attempt_fail $NS2 + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow wait =20 # additional subflow could be created only if the PM select @@ -1307,18 +1327,18 @@ signal_address_tests() { # add_address, unused if reset; then - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "unused signal address" 0 0 0 chk_add_nr 1 1 fi =20 # accept and use add_addr if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "signal address" 1 1 1 chk_add_nr 1 1 fi @@ -1328,67 +1348,67 @@ signal_address_tests() # belong to different subnets or one of the listed local address could be # used for 'add_addr' subflow if reset; then - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 1 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "subflow and signal" 2 2 2 chk_add_nr 1 1 fi =20 # accept and use add_addr with additional subflows if reset; then - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 3 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_set_limits $NS2 1 3 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.4.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "multiple subflows and signal" 3 3 3 chk_add_nr 1 1 fi =20 # signal addresses if reset; then - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.4.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 3 3 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal + pm_nl_add_endpoint $NS1 10.0.4.1 flags signal + pm_nl_set_limits $NS2 3 3 + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "signal addresses" 3 3 3 chk_add_nr 3 3 fi =20 # signal invalid addresses if reset; then - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.12.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.14.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 3 3 + pm_nl_add_endpoint $NS1 10.0.12.1 flags signal + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal + pm_nl_add_endpoint $NS1 10.0.14.1 flags signal + pm_nl_set_limits $NS2 3 3 + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "signal invalid addresses" 1 1 1 chk_add_nr 3 3 fi =20 # signal addresses race test if reset; then - pm_nl_set_limits $ns1 4 4 - pm_nl_set_limits $ns2 4 4 - pm_nl_add_endpoint $ns1 10.0.1.1 flags signal - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.4.1 flags signal - pm_nl_add_endpoint $ns2 10.0.1.2 flags signal - pm_nl_add_endpoint $ns2 10.0.2.2 flags signal - pm_nl_add_endpoint $ns2 10.0.3.2 flags signal - pm_nl_add_endpoint $ns2 10.0.4.2 flags signal + pm_nl_set_limits $NS1 4 4 + pm_nl_set_limits $NS2 4 4 + pm_nl_add_endpoint $NS1 10.0.1.1 flags signal + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal + pm_nl_add_endpoint $NS1 10.0.4.1 flags signal + pm_nl_add_endpoint $NS2 10.0.1.2 flags signal + pm_nl_add_endpoint $NS2 10.0.2.2 flags signal + pm_nl_add_endpoint $NS2 10.0.3.2 flags signal + pm_nl_add_endpoint $NS2 10.0.4.2 flags signal =20 # the peer could possibly miss some addr notification, allow retransmiss= ion - ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=3D1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + 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 @@ -1408,76 +1428,76 @@ link_failure_tests() # active backup and link switch-over. # Let's set some arbitrary (low) virtual link limits. init_shapers - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 dev ns2eth4 flags subflow - run_tests $ns1 $ns2 10.0.1.1 1 + pm_nl_set_limits $NS1 0 3 + pm_nl_add_endpoint $NS1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $NS2 1 3 + pm_nl_add_endpoint $NS2 10.0.3.2 dev ns2eth3 flags subflow + pm_nl_add_endpoint $NS2 10.0.4.2 dev ns2eth4 flags subflow + run_tests $NS1 $NS2 10.0.1.1 1 chk_join_nr "multiple flows, signal, link failure" 3 3 3 chk_add_nr 1 1 - chk_stale_nr $ns2 1 5 1 + chk_stale_nr $NS2 1 5 1 fi =20 # accept and use add_addr with additional subflows and link loss # for bidirectional transfer if reset; then init_shapers - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 dev ns2eth4 flags subflow - run_tests $ns1 $ns2 10.0.1.1 2 + pm_nl_set_limits $NS1 0 3 + pm_nl_add_endpoint $NS1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $NS2 1 3 + pm_nl_add_endpoint $NS2 10.0.3.2 dev ns2eth3 flags subflow + pm_nl_add_endpoint $NS2 10.0.4.2 dev ns2eth4 flags subflow + run_tests $NS1 $NS2 10.0.1.1 2 chk_join_nr "multi flows, signal, bidi, link fail" 3 3 3 chk_add_nr 1 1 - chk_stale_nr $ns2 1 -1 1 + chk_stale_nr $NS2 1 -1 1 fi =20 # 2 subflows plus 1 backup subflow with a lossy link, backup # will never be used if reset; then init_shapers - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal - pm_nl_set_limits $ns2 1 2 + pm_nl_set_limits $NS1 0 2 + pm_nl_add_endpoint $NS1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $NS2 1 2 export FAILING_LINKS=3D"1" - pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 1 + pm_nl_add_endpoint $NS2 10.0.3.2 dev ns2eth3 flags subflow,backup + run_tests $NS1 $NS2 10.0.1.1 1 chk_join_nr "backup subflow unused, link failure" 2 2 2 chk_add_nr 1 1 - chk_link_usage $ns2 ns2eth3 $cinsent 0 + chk_link_usage $NS2 ns2eth3 $CINSENT 0 fi =20 # 2 lossy links after half transfer, backup will get half of # the traffic if reset; then init_shapers - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup + pm_nl_set_limits $NS1 0 2 + pm_nl_add_endpoint $NS1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $NS2 1 2 + pm_nl_add_endpoint $NS2 10.0.3.2 dev ns2eth3 flags subflow,backup export FAILING_LINKS=3D"1 2" - run_tests $ns1 $ns2 10.0.1.1 1 + run_tests $NS1 $NS2 10.0.1.1 1 chk_join_nr "backup flow used, multi links fail" 2 2 2 chk_add_nr 1 1 - chk_stale_nr $ns2 2 4 2 - chk_link_usage $ns2 ns2eth3 $cinsent 50 + chk_stale_nr $NS2 2 4 2 + chk_link_usage $NS2 ns2eth3 $CINSENT 50 fi =20 # use a backup subflow with the first subflow on a lossy link # for bidirectional transfer if reset; then init_shapers - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 2 + pm_nl_set_limits $NS1 0 2 + pm_nl_add_endpoint $NS1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $NS2 1 3 + pm_nl_add_endpoint $NS2 10.0.3.2 dev ns2eth3 flags subflow,backup + run_tests $NS1 $NS2 10.0.1.1 2 chk_join_nr "backup flow used, bidi, link failure" 2 2 2 chk_add_nr 1 1 - chk_stale_nr $ns2 1 -1 2 - chk_link_usage $ns2 ns2eth3 $cinsent 50 + chk_stale_nr $NS2 1 -1 2 + chk_link_usage $NS2 ns2eth3 $CINSENT 50 fi } =20 @@ -1485,42 +1505,42 @@ add_addr_timeout_tests() { # add_addr timeout if reset_with_add_addr_timeout; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 0 0 0 slow chk_join_nr "signal address, ADD_ADDR timeout" 1 1 1 chk_add_nr 4 0 fi =20 # add_addr timeout IPv6 if reset_with_add_addr_timeout 6; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS1 dead:beef:2::1 flags signal + run_tests $NS1 $NS2 dead:beef:1::1 0 0 0 slow chk_join_nr "signal address, ADD_ADDR6 timeout" 1 1 1 chk_add_nr 4 0 fi =20 # signal addresses timeout if reset_with_add_addr_timeout; then - pm_nl_set_limits $ns1 2 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 least + pm_nl_set_limits $NS1 2 2 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal + pm_nl_set_limits $NS2 2 2 + run_tests $NS1 $NS2 10.0.1.1 0 0 0 least chk_join_nr "signal addresses, ADD_ADDR timeout" 2 2 2 chk_add_nr 8 0 fi =20 # signal invalid addresses timeout if reset_with_add_addr_timeout; then - pm_nl_set_limits $ns1 2 2 - pm_nl_add_endpoint $ns1 10.0.12.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 least + pm_nl_set_limits $NS1 2 2 + pm_nl_add_endpoint $NS1 10.0.12.1 flags signal + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal + pm_nl_set_limits $NS2 2 2 + run_tests $NS1 $NS2 10.0.1.1 0 0 0 least chk_join_nr "invalid address, ADD_ADDR timeout" 1 1 1 chk_add_nr 8 0 fi @@ -1530,31 +1550,31 @@ remove_tests() { # single subflow, remove if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 0 -1 slow chk_join_nr "remove single subflow" 1 1 1 chk_rm_nr 1 1 fi =20 # multiple subflows, remove if reset; then - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -2 slow + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 0 2 + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 0 -2 slow chk_join_nr "remove multiple subflows" 2 2 2 chk_rm_nr 2 2 fi =20 # single address, remove if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_set_limits $NS2 1 1 + run_tests $NS1 $NS2 10.0.1.1 0 -1 0 slow chk_join_nr "remove single address" 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert @@ -1562,11 +1582,11 @@ remove_tests() =20 # subflow and signal, remove if reset; then - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow + pm_nl_set_limits $NS1 0 2 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_set_limits $NS2 1 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 -1 -1 slow chk_join_nr "remove subflow and signal" 2 2 2 chk_add_nr 1 1 chk_rm_nr 1 1 @@ -1574,12 +1594,12 @@ remove_tests() =20 # subflows and signal, remove if reset; then - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -2 slow + pm_nl_set_limits $NS1 0 3 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_set_limits $NS2 1 3 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.4.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 -1 -2 slow chk_join_nr "remove subflows and signal" 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 @@ -1587,12 +1607,12 @@ remove_tests() =20 # addresses remove if reset; then - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250 - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.4.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -3 0 slow + pm_nl_set_limits $NS1 3 3 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal id 250 + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal + pm_nl_add_endpoint $NS1 10.0.4.1 flags signal + pm_nl_set_limits $NS2 3 3 + run_tests $NS1 $NS2 10.0.1.1 0 -3 0 slow chk_join_nr "remove addresses" 3 3 3 chk_add_nr 3 3 chk_rm_nr 3 3 invert @@ -1600,12 +1620,12 @@ remove_tests() =20 # invalid addresses remove if reset; then - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.12.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.14.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -3 0 slow + pm_nl_set_limits $NS1 3 3 + pm_nl_add_endpoint $NS1 10.0.12.1 flags signal + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal + pm_nl_add_endpoint $NS1 10.0.14.1 flags signal + pm_nl_set_limits $NS2 3 3 + run_tests $NS1 $NS2 10.0.1.1 0 -3 0 slow chk_join_nr "remove invalid addresses" 1 1 1 chk_add_nr 3 3 chk_rm_nr 3 1 invert @@ -1613,12 +1633,12 @@ remove_tests() =20 # subflows and signal, flush if reset; then - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + pm_nl_set_limits $NS1 0 3 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_set_limits $NS2 1 3 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.4.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 -8 -8 slow chk_join_nr "flush subflows and signal" 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 @@ -1626,24 +1646,24 @@ remove_tests() =20 # subflows flush if reset; then - pm_nl_set_limits $ns1 3 3 - pm_nl_set_limits $ns2 3 3 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow id 150 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + pm_nl_set_limits $NS1 3 3 + pm_nl_set_limits $NS2 3 3 + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow id 150 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.4.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 -8 -8 slow chk_join_nr "flush subflows" 3 3 3 chk_rm_nr 3 3 fi =20 # addresses flush if reset; then - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250 - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.4.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + pm_nl_set_limits $NS1 3 3 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal id 250 + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal + pm_nl_add_endpoint $NS1 10.0.4.1 flags signal + pm_nl_set_limits $NS2 3 3 + run_tests $NS1 $NS2 10.0.1.1 0 -8 -8 slow chk_join_nr "flush addresses" 3 3 3 chk_add_nr 3 3 chk_rm_nr 3 3 invert @@ -1651,12 +1671,12 @@ remove_tests() =20 # invalid addresses flush if reset; then - pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.12.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.14.1 flags signal - pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -8 0 slow + pm_nl_set_limits $NS1 3 3 + pm_nl_add_endpoint $NS1 10.0.12.1 flags signal + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal + pm_nl_add_endpoint $NS1 10.0.14.1 flags signal + pm_nl_set_limits $NS2 3 3 + run_tests $NS1 $NS2 10.0.1.1 0 -8 0 slow chk_join_nr "flush invalid addresses" 1 1 1 chk_add_nr 3 3 chk_rm_nr 3 1 invert @@ -1664,20 +1684,20 @@ remove_tests() =20 # remove id 0 subflow if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -9 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 0 -9 slow chk_join_nr "remove id 0 subflow" 1 1 1 chk_rm_nr 1 1 fi =20 # remove id 0 address if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -9 0 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_set_limits $NS2 1 1 + run_tests $NS1 $NS2 10.0.1.1 0 -9 0 slow chk_join_nr "remove id 0 address" 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert @@ -1688,42 +1708,42 @@ add_tests() { # add single subflow if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + run_tests $NS1 $NS2 10.0.1.1 0 0 1 slow chk_join_nr "add single subflow" 1 1 1 fi =20 # add signal address if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 1 1 + run_tests $NS1 $NS2 10.0.1.1 0 1 0 slow chk_join_nr "add signal address" 1 1 1 chk_add_nr 1 1 fi =20 # add multiple subflows if reset; then - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 2 slow + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 0 2 + run_tests $NS1 $NS2 10.0.1.1 0 0 2 slow chk_join_nr "add multiple subflows" 2 2 2 fi =20 # add multiple subflows IPv6 if reset; then - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - run_tests $ns1 $ns2 dead:beef:1::1 0 0 2 slow + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 0 2 + run_tests $NS1 $NS2 dead:beef:1::1 0 0 2 slow chk_join_nr "add multiple subflows IPv6" 2 2 2 fi =20 # add multiple addresses IPv6 if reset; then - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 dead:beef:1::1 0 2 0 slow + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 2 2 + run_tests $NS1 $NS2 dead:beef:1::1 0 2 0 slow chk_join_nr "add multiple addresses IPv6" 2 2 2 chk_add_nr 2 2 fi @@ -1733,37 +1753,37 @@ ipv6_tests() { # subflow IPv6 if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 dead:beef:3::2 dev ns2eth3 flags subflow + run_tests $NS1 $NS2 dead:beef:1::1 0 0 0 slow chk_join_nr "single subflow IPv6" 1 1 1 fi =20 # add_address, unused IPv6 if reset; then - pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + pm_nl_add_endpoint $NS1 dead:beef:2::1 flags signal + run_tests $NS1 $NS2 dead:beef:1::1 0 0 0 slow chk_join_nr "unused signal address IPv6" 0 0 0 chk_add_nr 1 1 fi =20 # signal address IPv6 if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_add_endpoint $NS1 dead:beef:2::1 flags signal + pm_nl_set_limits $NS2 1 1 + run_tests $NS1 $NS2 dead:beef:1::1 0 0 0 slow chk_join_nr "single address IPv6" 1 1 1 chk_add_nr 1 1 fi =20 # single address IPv6, remove if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 dead:beef:1::1 0 -1 0 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_add_endpoint $NS1 dead:beef:2::1 flags signal + pm_nl_set_limits $NS2 1 1 + run_tests $NS1 $NS2 dead:beef:1::1 0 -1 0 slow chk_join_nr "remove single address IPv6" 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert @@ -1771,11 +1791,11 @@ ipv6_tests() =20 # subflow and signal IPv6, remove if reset; then - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow - run_tests $ns1 $ns2 dead:beef:1::1 0 -1 -1 slow + pm_nl_set_limits $NS1 0 2 + pm_nl_add_endpoint $NS1 dead:beef:2::1 flags signal + pm_nl_set_limits $NS2 1 2 + pm_nl_add_endpoint $NS2 dead:beef:3::2 dev ns2eth3 flags subflow + run_tests $NS1 $NS2 dead:beef:1::1 0 -1 -1 slow chk_join_nr "remove subflow and signal IPv6" 2 2 2 chk_add_nr 1 1 chk_rm_nr 1 1 @@ -1786,85 +1806,85 @@ v4mapped_tests() { # subflow IPv4-mapped to IPv4-mapped if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 "::ffff:10.0.3.2" flags subflow - run_tests $ns1 $ns2 "::ffff:10.0.1.1" + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 "::ffff:10.0.3.2" flags subflow + run_tests $NS1 $NS2 "::ffff:10.0.1.1" chk_join_nr "single subflow IPv4-mapped" 1 1 1 fi =20 # signal address IPv4-mapped with IPv4-mapped sk if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 "::ffff:10.0.2.1" flags signal - run_tests $ns1 $ns2 "::ffff:10.0.1.1" + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS1 "::ffff:10.0.2.1" flags signal + run_tests $NS1 $NS2 "::ffff:10.0.1.1" chk_join_nr "signal address IPv4-mapped" 1 1 1 chk_add_nr 1 1 fi =20 # subflow v4-map-v6 if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 "::ffff:10.0.1.1" + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 "::ffff:10.0.1.1" chk_join_nr "single subflow v4-map-v6" 1 1 1 fi =20 # signal address v4-map-v6 if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 "::ffff:10.0.1.1" + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + run_tests $NS1 $NS2 "::ffff:10.0.1.1" chk_join_nr "signal address v4-map-v6" 1 1 1 chk_add_nr 1 1 fi =20 # subflow v6-map-v4 if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 "::ffff:10.0.3.2" flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 "::ffff:10.0.3.2" flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "single subflow v6-map-v4" 1 1 1 fi =20 # signal address v6-map-v4 if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 "::ffff:10.0.2.1" flags signal - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS1 "::ffff:10.0.2.1" flags signal + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "signal address v6-map-v4" 1 1 1 chk_add_nr 1 1 fi =20 # no subflow IPv6 to v4 address if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 dead:beef:2::2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 dead:beef:2::2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "no JOIN with diff families v4-v6" 0 0 0 fi =20 # no subflow IPv6 to v4 address even if v6 has a valid v4 at the end if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 dead:beef:2::10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 dead:beef:2::10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "no JOIN with diff families v4-v6-2" 0 0 0 fi =20 # no subflow IPv4 to v6 address, no need to slow down too then if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 dead:beef:1::1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 dead:beef:1::1 chk_join_nr "no JOIN with diff families v6-v4" 0 0 0 fi } @@ -1873,20 +1893,20 @@ backup_tests() { # single subflow, backup if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow,backup + run_tests $NS1 $NS2 10.0.1.1 0 0 0 slow nobackup chk_join_nr "single subflow, backup" 1 1 1 chk_prio_nr 0 1 fi =20 # single address, backup if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + pm_nl_set_limits $NS1 0 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_set_limits $NS2 1 1 + run_tests $NS1 $NS2 10.0.1.1 0 0 0 slow backup chk_join_nr "single address, backup" 1 1 1 chk_add_nr 1 1 chk_prio_nr 1 0 @@ -1894,10 +1914,10 @@ backup_tests() =20 # single address with port, backup if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + pm_nl_set_limits $NS1 0 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $NS2 1 1 + run_tests $NS1 $NS2 10.0.1.1 0 0 0 slow backup chk_join_nr "single address with port, backup" 1 1 1 chk_add_nr 1 1 chk_prio_nr 1 0 @@ -1908,31 +1928,31 @@ add_addr_ports_tests() { # signal address with port if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal port 10100 + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "signal address with port" 1 1 1 chk_add_nr 1 1 1 fi =20 # subflow and signal with port if reset; then - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 1 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "subflow and signal with port" 2 2 2 chk_add_nr 1 1 1 fi =20 # single address with port, remove if reset; then - pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow + pm_nl_set_limits $NS1 0 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $NS2 1 1 + run_tests $NS1 $NS2 10.0.1.1 0 -1 0 slow chk_join_nr "remove single address with port" 1 1 1 chk_add_nr 1 1 1 chk_rm_nr 1 1 invert @@ -1940,11 +1960,11 @@ add_addr_ports_tests() =20 # subflow and signal with port, remove if reset; then - pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow + pm_nl_set_limits $NS1 0 2 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $NS2 1 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 -1 -1 slow chk_join_nr "remove subflow and signal with port" 2 2 2 chk_add_nr 1 1 1 chk_rm_nr 1 1 @@ -1952,12 +1972,12 @@ add_addr_ports_tests() =20 # subflows and signal with port, flush if reset; then - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -2 slow + pm_nl_set_limits $NS1 0 3 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $NS2 1 3 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.4.2 flags subflow + 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 @@ -1965,22 +1985,22 @@ add_addr_ports_tests() =20 # multiple addresses with port if reset; then - pm_nl_set_limits $ns1 2 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal port 10100 - pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 2 2 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal port 10100 + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal port 10100 + pm_nl_set_limits $NS2 2 2 + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "multiple addresses with port" 2 2 2 chk_add_nr 2 2 2 fi =20 # multiple addresses with ports if reset; then - pm_nl_set_limits $ns1 2 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal port 10101 - pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 2 2 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal port 10100 + pm_nl_add_endpoint $NS1 10.0.3.1 flags signal port 10101 + pm_nl_set_limits $NS2 2 2 + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "multiple addresses with ports" 2 2 2 chk_add_nr 2 2 2 fi @@ -1990,62 +2010,62 @@ syncookies_tests() { # single subflow, syncookies if reset_with_cookies; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "single subflow with syn cookies" 1 1 1 fi =20 # multiple subflows with syn cookies if reset_with_cookies; then - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 0 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "multiple subflows with syn cookies" 2 2 2 fi =20 # multiple subflows limited by server if reset_with_cookies; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "subflows limited by server w cookies" 2 1 1 fi =20 # test signal address with cookies if reset_with_cookies; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "signal address with syn cookies" 1 1 1 chk_add_nr 1 1 fi =20 # test cookie with subflow and signal if reset_with_cookies; then - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns1 0 2 - pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_set_limits $NS1 0 2 + pm_nl_set_limits $NS2 1 2 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "subflow and signal w cookies" 2 2 2 chk_add_nr 1 1 fi =20 # accept and use add_addr with additional subflows if reset_with_cookies; then - pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 3 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_set_limits $NS2 1 3 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + pm_nl_add_endpoint $NS2 10.0.4.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "subflows and signal w. cookies" 3 3 3 chk_add_nr 1 1 fi @@ -2055,33 +2075,33 @@ checksum_tests() { # checksum test 0 0 if reset_with_checksum 0 0; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + run_tests $NS1 $NS2 10.0.1.1 chk_csum_nr "checksum test 0 0" fi =20 # checksum test 1 1 if reset_with_checksum 1 1; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + run_tests $NS1 $NS2 10.0.1.1 chk_csum_nr "checksum test 1 1" fi =20 # checksum test 0 1 if reset_with_checksum 0 1; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + run_tests $NS1 $NS2 10.0.1.1 chk_csum_nr "checksum test 0 1" fi =20 # checksum test 1 0 if reset_with_checksum 1 0; then - pm_nl_set_limits $ns1 0 1 - pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 0 1 + pm_nl_set_limits $NS2 0 1 + run_tests $NS1 $NS2 10.0.1.1 chk_csum_nr "checksum test 1 0" fi } @@ -2090,29 +2110,29 @@ deny_join_id0_tests() { # subflow allow join id0 ns1 if reset_with_allow_join_id0 1 0; then - pm_nl_set_limits $ns1 1 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 1 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "single subflow allow join id0 ns1" 1 1 1 fi =20 # subflow allow join id0 ns2 if reset_with_allow_join_id0 0 1; then - pm_nl_set_limits $ns1 1 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 1 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "single subflow allow join id0 ns2" 0 0 0 fi =20 # signal address allow join id0 ns1 # ADD_ADDRs are not affected by allow_join_id0 value. if reset_with_allow_join_id0 1 0; then - pm_nl_set_limits $ns1 1 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 1 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "signal address allow join id0 ns1" 1 1 1 chk_add_nr 1 1 fi @@ -2120,31 +2140,31 @@ deny_join_id0_tests() # signal address allow join id0 ns2 # ADD_ADDRs are not affected by allow_join_id0 value. if reset_with_allow_join_id0 0 1; then - pm_nl_set_limits $ns1 1 1 - pm_nl_set_limits $ns2 1 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 1 1 + pm_nl_set_limits $NS2 1 1 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "signal address allow join id0 ns2" 1 1 1 chk_add_nr 1 1 fi =20 # subflow and address allow join id0 ns1 if reset_with_allow_join_id0 1 0; then - pm_nl_set_limits $ns1 2 2 - pm_nl_set_limits $ns2 2 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 2 2 + pm_nl_set_limits $NS2 2 2 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "subflow and address allow join id0 1" 2 2 2 fi =20 # subflow and address allow join id0 ns2 if reset_with_allow_join_id0 0 1; then - pm_nl_set_limits $ns1 2 2 - pm_nl_set_limits $ns2 2 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + pm_nl_set_limits $NS1 2 2 + pm_nl_set_limits $NS2 2 2 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "subflow and address allow join id0 2" 1 1 1 fi } @@ -2155,11 +2175,11 @@ fullmesh_tests() # 2 fullmesh addrs in ns2, added before the connection, # 1 non-fullmesh addr in ns1, added during the connection. if reset; then - pm_nl_set_limits $ns1 0 4 - pm_nl_set_limits $ns2 1 4 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,fullmesh - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,fullmesh - run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow + pm_nl_set_limits $NS1 0 4 + pm_nl_set_limits $NS2 1 4 + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow,fullmesh + pm_nl_add_endpoint $NS2 10.0.3.2 flags subflow,fullmesh + run_tests $NS1 $NS2 10.0.1.1 0 1 0 slow chk_join_nr "fullmesh test 2x1" 4 4 4 chk_add_nr 1 1 fi @@ -2168,10 +2188,10 @@ fullmesh_tests() # 1 non-fullmesh addr in ns1, added before the connection, # 1 fullmesh addr in ns2, added during the connection. if reset; then - pm_nl_set_limits $ns1 1 3 - pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow + pm_nl_set_limits $NS1 1 3 + pm_nl_set_limits $NS2 1 3 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 0 0 fullmesh_1 slow chk_join_nr "fullmesh test 1x1" 3 3 3 chk_add_nr 1 1 fi @@ -2180,10 +2200,10 @@ fullmesh_tests() # 1 non-fullmesh addr in ns1, added before the connection, # 2 fullmesh addrs in ns2, added during the connection. if reset; then - pm_nl_set_limits $ns1 2 5 - pm_nl_set_limits $ns2 1 5 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow + pm_nl_set_limits $NS1 2 5 + pm_nl_set_limits $NS2 1 5 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 0 0 fullmesh_2 slow chk_join_nr "fullmesh test 1x2" 5 5 5 chk_add_nr 1 1 fi @@ -2193,40 +2213,40 @@ fullmesh_tests() # 2 fullmesh addrs in ns2, added during the connection, # limit max_subflows to 4. if reset; then - pm_nl_set_limits $ns1 2 4 - pm_nl_set_limits $ns2 1 4 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow + pm_nl_set_limits $NS1 2 4 + pm_nl_set_limits $NS2 1 4 + pm_nl_add_endpoint $NS1 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 0 0 fullmesh_2 slow chk_join_nr "fullmesh test 1x2, limited" 4 4 4 chk_add_nr 1 1 fi =20 # set fullmesh flag if reset; then - pm_nl_set_limits $ns1 4 4 - pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow - pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow fullmesh + pm_nl_set_limits $NS1 4 4 + pm_nl_add_endpoint $NS1 10.0.2.1 flags subflow + pm_nl_set_limits $NS2 4 4 + run_tests $NS1 $NS2 10.0.1.1 0 0 1 slow fullmesh chk_join_nr "set fullmesh flag test" 2 2 2 chk_rm_nr 0 1 fi =20 # set nofullmesh flag if reset; then - pm_nl_set_limits $ns1 4 4 - pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow,fullmesh - pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow nofullmesh + pm_nl_set_limits $NS1 4 4 + pm_nl_add_endpoint $NS1 10.0.2.1 flags subflow,fullmesh + pm_nl_set_limits $NS2 4 4 + run_tests $NS1 $NS2 10.0.1.1 0 0 fullmesh_1 slow nofullmesh chk_join_nr "set nofullmesh flag test" 2 2 2 chk_rm_nr 0 1 fi =20 # set backup,fullmesh flags if reset; then - pm_nl_set_limits $ns1 4 4 - pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow - pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow backup,fullmesh + pm_nl_set_limits $NS1 4 4 + pm_nl_add_endpoint $NS1 10.0.2.1 flags subflow + pm_nl_set_limits $NS2 4 4 + run_tests $NS1 $NS2 10.0.1.1 0 0 1 slow backup,fullmesh chk_join_nr "set backup,fullmesh flags test" 2 2 2 chk_prio_nr 0 1 chk_rm_nr 0 1 @@ -2234,10 +2254,10 @@ fullmesh_tests() =20 # set nobackup,nofullmesh flags if reset; then - pm_nl_set_limits $ns1 4 4 - pm_nl_set_limits $ns2 4 4 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup,fullmesh - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup,nofullmesh + pm_nl_set_limits $NS1 4 4 + pm_nl_set_limits $NS2 4 4 + pm_nl_add_endpoint $NS2 10.0.2.2 flags subflow,backup,fullmesh + run_tests $NS1 $NS2 10.0.1.1 0 0 0 slow nobackup,nofullmesh chk_join_nr "set nobackup,nofullmesh flags test" 2 2 2 chk_prio_nr 0 1 chk_rm_nr 0 1 @@ -2248,65 +2268,65 @@ userspace_tests() { # userspace pm type prevents add_addr if reset; then - ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 + ip netns exec $NS1 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $NS1 ./pm_nl_ctl limits 0 2 + ip netns exec $NS2 ./pm_nl_ctl limits 0 2 + ip netns exec $NS1 ./pm_nl_ctl add 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "userspace pm type prevents add_addr" 0 0 0 chk_add_nr 0 0 fi =20 # userspace pm type echoes add_addr if reset; then - ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 + ip netns exec $NS2 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $NS1 ./pm_nl_ctl limits 0 2 + ip netns exec $NS2 ./pm_nl_ctl limits 0 2 + ip netns exec $NS1 ./pm_nl_ctl add 10.0.2.1 flags signal + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "userspace pm type echoes add_addr" 0 0 0 chk_add_nr 1 1 fi =20 # userspace pm type rejects join if reset; then - ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + ip netns exec $NS1 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $NS1 ./pm_nl_ctl limits 1 1 + ip netns exec $NS2 ./pm_nl_ctl limits 1 1 + ip netns exec $NS2 ./pm_nl_ctl add 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "userspace pm type rejects join" 1 1 0 fi =20 # userspace pm type does not send join if reset; then - ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 + ip netns exec $NS2 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $NS1 ./pm_nl_ctl limits 1 1 + ip netns exec $NS2 ./pm_nl_ctl limits 1 1 + ip netns exec $NS2 ./pm_nl_ctl add 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 chk_join_nr "userspace pm type does not send join" 0 0 0 fi =20 # userspace pm type prevents mp_prio if reset; then - ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + ip netns exec $NS1 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $NS1 ./pm_nl_ctl limits 1 1 + ip netns exec $NS2 ./pm_nl_ctl limits 1 1 + ip netns exec $NS2 ./pm_nl_ctl add 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 0 0 slow backup chk_join_nr "userspace pm type prevents mp_prio" 1 1 0 chk_prio_nr 0 0 fi =20 # userspace pm type prevents rm_addr if reset; then - ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow + ip netns exec $NS1 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $NS2 sysctl -q net.mptcp.pm_type=3D1 + ip netns exec $NS1 ./pm_nl_ctl limits 0 1 + ip netns exec $NS2 ./pm_nl_ctl limits 0 1 + ip netns exec $NS2 ./pm_nl_ctl add 10.0.3.2 flags subflow + run_tests $NS1 $NS2 10.0.1.1 0 0 -1 slow chk_join_nr "userspace pm type prevents rm_addr" 0 0 0 chk_rm_nr 0 0 fi @@ -2337,7 +2357,7 @@ usage() { if [ -n "${1}" ]; then echo "${1}" - ret=3D1 + RET=3D1 fi =20 echo "mptcp_join usage:" @@ -2362,19 +2382,19 @@ usage() echo " -i use ip mptcp" echo " -h help" =20 - exit ${ret} + exit ${RET} } =20 for arg in "$@"; do # check for "capture/checksum" args before launching tests if [[ "${arg}" =3D~ ^"-"[0-9a-zA-Z]*"c"[0-9a-zA-Z]*$ ]]; then - capture=3D1 + CAPTURE=3D1 fi if [[ "${arg}" =3D~ ^"-"[0-9a-zA-Z]*"C"[0-9a-zA-Z]*$ ]]; then - checksum=3D1 + CHECKSUM=3D1 fi if [[ "${arg}" =3D~ ^"-"[0-9a-zA-Z]*"i"[0-9a-zA-Z]*$ ]]; then - ip_mptcp=3D1 + IP_MPTCP=3D1 fi =20 # exception for the capture/checksum/ip_mptcp options, the rest means: a = part of the tests @@ -2385,13 +2405,13 @@ for arg in "$@"; do usage "Unknown option: ${arg}" fi elif ! [[ "${arg}" =3D~ ^"-"[cCi]+$ ]]; then - do_all_tests=3D0 + DO_ALL_TESTS=3D0 fi done =20 -if [ $do_all_tests -eq 1 ]; then +if [ $DO_ALL_TESTS -eq 1 ]; then all_tests - exit $ret + exit $RET fi =20 while getopts 'fesltra64bpkdmuchCSi' opt; do @@ -2459,4 +2479,4 @@ while getopts 'fesltra64bpkdmuchCSi' opt; do esac done =20 -exit $ret +exit $RET --=20 2.34.1 From nobody Mon May 6 22:26:12 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:9f92:0:0:0:0:0 with SMTP id a18csp2433488jam; Wed, 9 Feb 2022 13:26:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJxa4F1eUW6Q5VCaa04imUUn9v08/Y/5GuXBtfcO5l9oOvOG6xgfMkFe28eYPNwIkHtgXmt6 X-Received: by 2002:ac8:57cf:: with SMTP id w15mr2812981qta.252.1644441960011; Wed, 09 Feb 2022 13:26:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644441960; cv=none; d=google.com; s=arc-20160816; b=ppBSplNWZ3YW7yEShWhavCmJGLaK+pkwdBe6cbzoS2+smuwnyYiiwIFtOnXJdcUPKx XUhUd4VZ9EJhu/1eFOjy/7w2b35cI+defCLQpetTz9lOtXdjLtpFzn3FXMNtyPOpjEy2 tAlVKDU35Q+f/L8PHiz22zxxLFxXSL4Kvm5OeOzotcfMaeBZZv6Km2saQbl+JeE+jm6a hJjp6vAht3ppgmVv5jTZAqpIBTj98t4J5O9P9XIhSBSw1QPGsuAdV90xDO4wb9TYhz3+ QTc1AQpHKDAEc8n/kfgJUDWDWjThhoZykOexKLEUqhHTa6JEvvbAUxNCYu/eSnuw2WOO Gtsg== 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=Ve71QE+CKR2fEdrkxRcg9nDk3jNnHMgDgR1Zr5zelSQ=; b=X2U45QCfAjBIofPJAXWFe885avKl8SnRIP6Is139E1iLBqJtAhFnstB7Q7w2TPmsHa w1+Q0608OsMqqybvikYI3jjBzraK5ORH4FgKSHmf+vh7/ap3tG8UzQalsDiu4bYOchjq yX5PvjR8Mb7sy+2Tw30eIg+k4qrF5hcx6xfxNn47Xg2BcehmOm0VCIZZ8x2DyC8utZpw Gj8+98YD6hhfDgypvk4eGcOuOZwLyo/XTqnzYd93rP+E0djKATM5Gc5vMat3gO4tCb7I HRDNcEeEtoRv/IuXjT3nsLQWFb4S3HfJaL9glQyLKnmWavJxD3HpRPBJB5ngF0SThwVG wb2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=xEDUPR+e; spf=pass (google.com: domain of mptcp+bounces-3597-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3597-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id v12si4161430qkl.253.2022.02.09.13.25.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Feb 2022 13:25:59 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3597-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=xEDUPR+e; spf=pass (google.com: domain of mptcp+bounces-3597-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3597-wpasupplicant.patchew=gmail.com@lists.linux.dev" 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 88EFB1C0EE1 for ; Wed, 9 Feb 2022 21:25:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7CD5B2CA5; Wed, 9 Feb 2022 21:25:54 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BEBC22C80 for ; Wed, 9 Feb 2022 21:25:52 +0000 (UTC) Received: by mail-wm1-f51.google.com with SMTP id l67-20020a1c2546000000b00353951c3f62so2571467wml.5 for ; Wed, 09 Feb 2022 13:25:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares-net.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ve71QE+CKR2fEdrkxRcg9nDk3jNnHMgDgR1Zr5zelSQ=; b=xEDUPR+eA/AiFcTx486LAAag85asOdL5hiyUroDSbfliguxyx0oXxGnponNqEukEiZ MFu5wTVkYYF5UmdVXVPmontzNosRjiPXFIBSk/pS3e+Q/G5F4Y558keYFOUXvLb+2SI+ O8NOeNyo78ndsjY0kwMxgFX1fsZf2/l74HFel8MA57C5n72AJbtn33opVsko72Zdv8Vl vGrruvS/5k6qijmwn6XdMKESMUOPxCML7P9ArDXJN5x04qjs3BjzGoUJY45tVHi40a+H 2aVLeb2xzYbN1tH4L8orxHi9vOEb24fKaVWS4+/0Fxk4Zhg/Ia67ycogShDc8+aLN7W4 Kx7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ve71QE+CKR2fEdrkxRcg9nDk3jNnHMgDgR1Zr5zelSQ=; b=NDhMjeayBe+5g6zjzRC5ivW6A57d6LRp809HhxRSqzYekX3s1vz6c8qsHC5+CIoI79 YVAgO0e+Td9LezGPr1vJNRGIOqt5iGK9soitLWJYESlYnVOledjK8PSg6appc9z5bF98 PHGNIMtIBD4j+ePKgKE7j8strqJeo4IsN+QgeL44DWvZHdXJ5yi043YsccL/AWiKyC+h 094E/kGcfgYStVpszcNqLQJ0hjXkn3i7ATcQXHkCbDs2jB9Nsla9GuNairQYCVnoFc6A vAOo9mgmtbGEZNmweJcjQb8h1uOd+L00KN0li8Gg7hVjlSyVf/CY4B85bYoeb/zMIId0 hX1w== X-Gm-Message-State: AOAM5315mCnuBmHoedFoYxgyJ0DlgtiefMgmjURBRqK50M9hfA6B0N6u zlN4czPHLPDgQuSxqCEmJUaXKSsl2/w2aTYa X-Received: by 2002:a7b:c778:: with SMTP id x24mr3778709wmk.11.1644441950804; Wed, 09 Feb 2022 13:25:50 -0800 (PST) Received: from tsr-vdi-mbaerts.nix.tessares.net (static.23.216.130.94.clients.your-server.de. [94.130.216.23]) by smtp.gmail.com with ESMTPSA id p14sm18500730wrr.7.2022.02.09.13.25.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 13:25:50 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next 8/9] selftests: mptcp: join: avoid backquotes Date: Wed, 9 Feb 2022 22:25:19 +0100 Message-Id: <20220209212520.2989291-9-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220209212520.2989291-1-matthieu.baerts@tessares.net> References: <20220209212520.2989291-1-matthieu.baerts@tessares.net> 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" As explained on ShellCheck's wiki [1], it is recommended to avoid backquotes `...` in favour of parenthesis $(...): > Backtick command substitution `...` is legacy syntax with several > issues. > > - It has a series of undefined behaviors related to quoting in POSIX. > - It imposes a custom escaping mode with surprising results. > - It's exceptionally hard to nest. > > $(...) command substitution has none of these problems, and is > therefore strongly encouraged. [1] https://www.shellcheck.net/wiki/SC2006 Signed-off-by: Matthieu Baerts Reviewed-by: Mat Martineau --- .../testing/selftests/net/mptcp/mptcp_join.sh | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 15e642e0fa03..c39d5b4e73cb 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -75,7 +75,7 @@ init_partial() # ns1eth4 ns2eth4 =20 local i - for i in `seq 1 4`; do + for i in $(seq 1 4); do ip link add ns1eth$i netns "$NS1" type veth peer name ns2eth$i netns "$N= S2" ip -net "$NS1" addr add 10.0.$i.1/24 dev ns1eth$i ip -net "$NS1" addr add dead:beef:$i::1/64 dev ns1eth$i nodad @@ -94,7 +94,7 @@ init_partial() init_shapers() { local i - for i in `seq 1 4`; do + for i in $(seq 1 4); do tc -n $NS1 qdisc add dev ns1eth$i root netem rate 20mbit delay 1 tc -n $NS2 qdisc add dev ns2eth$i root netem rate 20mbit delay 1 done @@ -605,7 +605,7 @@ do_transfer() else addr=3D"10.0.$counter.2" fi - pm_nl_add_endpoint $ns2 $addr flags $flags + pm_nl_add_endpoint $NS2 $addr flags $flags let counter+=3D1 let add_nr_ns2-=3D1 done @@ -791,7 +791,7 @@ chk_csum_nr() echo -n " " fi printf " %-36s %s" "$msg" "sum" - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtDataCsumErr | awk '{= print $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtDataCsumErr | awk '= {print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D 0 ]; then echo "[fail] got $count data checksum error[s] expected 0" @@ -801,7 +801,7 @@ chk_csum_nr() echo -n "[ ok ]" fi echo -n " - csum " - count=3D`ip netns exec $NS2 nstat -as | grep MPTcpExtDataCsumErr | awk '{= print $2}'` + count=3D$(ip netns exec $NS2 nstat -as | grep MPTcpExtDataCsumErr | awk '= {print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D 0 ]; then echo "[fail] got $count data checksum error[s] expected 0" @@ -821,7 +821,7 @@ chk_fail_nr() local dump_stats =20 printf "%-${NR_BLANK}s %s" " " "ftx" - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPFailTx | awk '{pri= nt $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtMPFailTx | awk '{pr= int $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_fail_nr_tx" ]; then echo "[fail] got $count MP_FAIL[s] TX expected $mp_fail_nr_tx" @@ -832,7 +832,7 @@ chk_fail_nr() fi =20 echo -n " - frx " - count=3D`ip netns exec $NS2 nstat -as | grep MPTcpExtMPFailRx | awk '{pri= nt $2}'` + count=3D$(ip netns exec $NS2 nstat -as | grep MPTcpExtMPFailRx | awk '{pr= int $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_fail_nr_rx" ]; then echo "[fail] got $count MP_FAIL[s] RX expected $mp_fail_nr_rx" @@ -853,7 +853,7 @@ chk_infi_nr() local dump_stats =20 printf "%-${NR_BLANK}s %s" " " "itx" - count=3D`ip netns exec $NS2 nstat -as | grep InfiniteMapTx | awk '{print = $2}'` + count=3D$(ip netns exec $NS2 nstat -as | grep InfiniteMapTx | awk '{print= $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_infi_nr_tx" ]; then echo "[fail] got $count infinite map[s] TX expected $mp_infi_nr_tx" @@ -864,7 +864,7 @@ chk_infi_nr() fi =20 echo -n " - irx " - count=3D`ip netns exec $NS1 nstat -as | grep InfiniteMapRx | awk '{print = $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep InfiniteMapRx | awk '{print= $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_infi_nr_rx" ]; then echo "[fail] got $count infinite map[s] RX expected $mp_infi_nr_rx" @@ -887,7 +887,7 @@ chk_join_nr() local dump_stats =20 printf "%03u %-36s %s" "$TEST_COUNT" "$msg" "syn" - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinSynRx | awk '{= print $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinSynRx | awk '= {print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$syn_nr" ]; then echo "[fail] got $count JOIN[s] syn expected $syn_nr" @@ -898,7 +898,7 @@ chk_join_nr() fi =20 echo -n " - synack" - count=3D`ip netns exec $NS2 nstat -as | grep MPTcpExtMPJoinSynAckRx | awk= '{print $2}'` + count=3D$(ip netns exec $NS2 nstat -as | grep MPTcpExtMPJoinSynAckRx | aw= k '{print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$syn_ack_nr" ]; then echo "[fail] got $count JOIN[s] synack expected $syn_ack_nr" @@ -909,7 +909,7 @@ chk_join_nr() fi =20 echo -n " - ack" - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinAckRx | awk '{= print $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinAckRx | awk '= {print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$ack_nr" ]; then echo "[fail] got $count JOIN[s] ack expected $ack_nr" @@ -942,9 +942,9 @@ chk_stale_nr() local recover_nr =20 printf "%-${NR_BLANK}s %-18s" " " "stale" - stale_nr=3D`ip netns exec $ns nstat -as | grep MPTcpExtSubflowStale | awk= '{print $2}'` + stale_nr=3D$(ip netns exec $ns nstat -as | grep MPTcpExtSubflowStale | aw= k '{print $2}') [ -z "$stale_nr" ] && stale_nr=3D0 - recover_nr=3D`ip netns exec $ns nstat -as | grep MPTcpExtSubflowRecover |= awk '{print $2}'` + recover_nr=3D$(ip netns exec $ns nstat -as | grep MPTcpExtSubflowRecover = | awk '{print $2}') [ -z "$recover_nr" ] && recover_nr=3D0 =20 if [ $stale_nr -lt $stale_min ] || @@ -980,10 +980,10 @@ chk_add_nr() local dump_stats local timeout =20 - timeout=3D`ip netns exec $NS1 sysctl -n net.mptcp.add_addr_timeout` + timeout=3D$(ip netns exec $NS1 sysctl -n net.mptcp.add_addr_timeout) =20 printf "%-${NR_BLANK}s %s" " " "add" - count=3D`ip netns exec $NS2 nstat -as MPTcpExtAddAddr | grep MPTcpExtAddA= ddr | awk '{print $2}'` + count=3D$(ip netns exec $NS2 nstat -as MPTcpExtAddAddr | grep MPTcpExtAdd= Addr | awk '{print $2}') [ -z "$count" ] && count=3D0 =20 # if the test configured a short timeout tolerate greater then expected @@ -997,7 +997,7 @@ chk_add_nr() fi =20 echo -n " - echo " - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtEchoAdd | awk '{prin= t $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtEchoAdd | awk '{pri= nt $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$echo_nr" ]; then echo "[fail] got $count ADD_ADDR echo[s] expected $echo_nr" @@ -1009,7 +1009,7 @@ chk_add_nr() =20 if [ $port_nr -gt 0 ]; then echo -n " - pt " - count=3D`ip netns exec $NS2 nstat -as | grep MPTcpExtPortAdd | awk '{pri= nt $2}'` + count=3D$(ip netns exec $NS2 nstat -as | grep MPTcpExtPortAdd | awk '{pr= int $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$port_nr" ]; then echo "[fail] got $count ADD_ADDR[s] with a port-number expected $port_n= r" @@ -1020,8 +1020,8 @@ chk_add_nr() fi =20 printf "%-${NR_BLANK}s %s" " " "syn" - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinPortSynRx | - awk '{print $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinPortSynRx | + awk '{print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$syn_nr" ]; then echo "[fail] got $count JOIN[s] syn with a different \ @@ -1033,8 +1033,8 @@ chk_add_nr() fi =20 echo -n " - synack" - count=3D`ip netns exec $NS2 nstat -as | grep MPTcpExtMPJoinPortSynAckRx | - awk '{print $2}'` + count=3D$(ip netns exec $NS2 nstat -as | grep MPTcpExtMPJoinPortSynAckRx= | + awk '{print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$syn_ack_nr" ]; then echo "[fail] got $count JOIN[s] synack with a different \ @@ -1046,8 +1046,8 @@ chk_add_nr() fi =20 echo -n " - ack" - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinPortAckRx | - awk '{print $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtMPJoinPortAckRx | + awk '{print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$ack_nr" ]; then echo "[fail] got $count JOIN[s] ack with a different \ @@ -1059,8 +1059,8 @@ chk_add_nr() fi =20 printf "%-${NR_BLANK}s %s" " " "syn" - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMismatchPortSynRx | - awk '{print $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtMismatchPortSynRx | + awk '{print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mis_syn_nr" ]; then echo "[fail] got $count JOIN[s] syn with a mismatched \ @@ -1072,8 +1072,8 @@ chk_add_nr() fi =20 echo -n " - ack " - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMismatchPortAckRx | - awk '{print $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtMismatchPortAckRx | + awk '{print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mis_ack_nr" ]; then echo "[fail] got $count JOIN[s] ack with a mismatched \ @@ -1109,7 +1109,7 @@ chk_rm_nr() fi =20 printf "%-${NR_BLANK}s %s" " " "rm " - count=3D`ip netns exec $addr_ns nstat -as | grep MPTcpExtRmAddr | awk '{p= rint $2}'` + count=3D$(ip netns exec $addr_ns nstat -as | grep MPTcpExtRmAddr | awk '{= print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$rm_addr_nr" ]; then echo "[fail] got $count RM_ADDR[s] expected $rm_addr_nr" @@ -1120,7 +1120,7 @@ chk_rm_nr() fi =20 echo -n " - sf " - count=3D`ip netns exec $subflow_ns nstat -as | grep MPTcpExtRmSubflow | a= wk '{print $2}'` + count=3D$(ip netns exec $subflow_ns nstat -as | grep MPTcpExtRmSubflow | = awk '{print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$rm_subflow_nr" ]; then echo "[fail] got $count RM_SUBFLOW[s] expected $rm_subflow_nr" @@ -1141,7 +1141,7 @@ chk_prio_nr() local dump_stats =20 printf "%-${NR_BLANK}s %s" " " "ptx" - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPPrioTx | awk '{pri= nt $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtMPPrioTx | awk '{pr= int $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_prio_nr_tx" ]; then echo "[fail] got $count MP_PRIO[s] TX expected $mp_prio_nr_tx" @@ -1152,7 +1152,7 @@ chk_prio_nr() fi =20 echo -n " - prx " - count=3D`ip netns exec $NS1 nstat -as | grep MPTcpExtMPPrioRx | awk '{pri= nt $2}'` + count=3D$(ip netns exec $NS1 nstat -as | grep MPTcpExtMPPrioRx | awk '{pr= int $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$mp_prio_nr_rx" ]; then echo "[fail] got $count MP_PRIO[s] RX expected $mp_prio_nr_rx" @@ -1171,8 +1171,10 @@ chk_link_usage() local link=3D$2 local out=3D$3 local expected_rate=3D$4 - local tx_link=3D`ip netns exec $ns cat /sys/class/net/$link/statistics/tx= _bytes` - local tx_total=3D`ls -l $out | awk '{print $5}'` + + local tx_link tx_total + tx_link=3D$(ip netns exec $ns cat /sys/class/net/$link/statistics/tx_byte= s) + tx_total=3D$(ls -l $out | awk '{print $5}') local tx_rate=3D$((tx_link * 100 / $tx_total)) local tolerance=3D5 =20 --=20 2.34.1 From nobody Mon May 6 22:26:12 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:9f92:0:0:0:0:0 with SMTP id a18csp2433493jam; Wed, 9 Feb 2022 13:26:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJzVvle4Xs3UKEBwkAI57N1JDYFw9cGB2KyGKaP5eXSiDxjeMUNqQ4oz6XdOgYO4yWG8tEYS X-Received: by 2002:a05:620a:7e9:: with SMTP id k9mr2293774qkk.208.1644441961164; Wed, 09 Feb 2022 13:26:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644441961; cv=none; d=google.com; s=arc-20160816; b=qgxLtkhJsxdo4t0avekzPjU1qHCevfkZEIvb9HBxjRv7sa3R0cSqZuwo/RypCV/FFW fo+kOyUa4x2Lv6uS9xTmWQIiLjDCCcoBmlrSWpDUQorSf4iR5DKVVwn0ZWPVDXOmpxzg 4vaSf45zjhVPZrTVQv0Z1ysmVhrqfa8WtAQW2qamHnnBUc0mC7SG8pmL+bQ3LTX1Qv9g dPuMXlQKf7mRklok+rNWd5N0GELaR+XH6qIVx7yprDESRm+kyJ7kluxGfy/xjEk9Ml1D 2q2dFkPgm5j+a3I66/afGnDmypV3XWlFZKUvP4Qnl0XiBg381nfHnRGTTDVsvcvG/VqY pWxQ== 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=qIJdu6l+E6obtVQ54RlNg6Nuz6OubW8rzxhcYHfItvU=; b=0NnlNhqVKBQpMZut1jTgsCRBxhmr2ykwh2Hh51Dgos275nW5DKinjbkNBURVIIARAn RTPiGSV4Jhe0erJ9KbWH467BQMJ1yahc3Q6u+C9kdBcCHT7RQIr4My/9cHokUg4aMbCo qp7sAEph+KmG/Y2QRj4ZNW4PzXZo86gZi22+cOVNffn18lsd3AFZ48cRd+cuSo1R9/3C +03kC9zp4mnabXVgAWw0+f3RR9ionGezpITfVJczzNY+YAwC7cI0MAWPe7newKjaP+FK pDw5/dEVXD9Is7n5IgzSgmpC+dDgdNcButXJhdO4p5EkjWb5UmJCCHynuM1FVpupSn+8 oEXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=KujLDdfK; spf=pass (google.com: domain of mptcp+bounces-3598-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3598-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id v12si4161430qkl.253.2022.02.09.13.26.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Feb 2022 13:26:01 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3598-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares-net.20210112.gappssmtp.com header.s=20210112 header.b=KujLDdfK; spf=pass (google.com: domain of mptcp+bounces-3598-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3598-wpasupplicant.patchew=gmail.com@lists.linux.dev" 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 E32241C0D50 for ; Wed, 9 Feb 2022 21:26:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D4BE72C80; Wed, 9 Feb 2022 21:25:54 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34ACB2CA4 for ; Wed, 9 Feb 2022 21:25:53 +0000 (UTC) Received: by mail-wr1-f42.google.com with SMTP id f17so6262514wrx.1 for ; Wed, 09 Feb 2022 13:25:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares-net.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qIJdu6l+E6obtVQ54RlNg6Nuz6OubW8rzxhcYHfItvU=; b=KujLDdfKRkJqSwDEQsM0VkbXKizOUG6qNfJVIeOEpS0hZcmcO6hQIcUqfGj1SPAd6o Oq9tR6YfoL/o/59AdQJa0EyGDmM8IfFq5NEft6LPRkllRVUkEAdk7iw4TkdFT0FkVj9z 14r4XgmGqaTomZqfSqOIOMLF2ufZFINBzRu9q0Zplf4amVB7PD5gDIqyEOzglkAPxOy/ 9yNmSB5oeoioKhGwU/7Z6Q94FcStk9B9agswtiAUPXPiIv9X8pdkJVUKULMkmb6kGzNe QN8L3vH4xPD2wTFu8+Mfsxb76MOhcz6v3xN7N3Xyr7GkUrpBcddVaYZQrKSa8ar3Qd10 dcsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qIJdu6l+E6obtVQ54RlNg6Nuz6OubW8rzxhcYHfItvU=; b=VpdKAQoFF6tQ1TrBp2/Tf1rPG/gwZEhYUkC/ChSjI2vnu8QC/p6/AjOKIhIVt/4Mk/ 25EdObS2SESZAYlES4cwyke6314jDqZWhk2LSz6P5w/YaQR5g/hJqiWyDp2Uo2isG2nB Hn6vflRJ+/tt0zA97f1fpcDIRQ0g/l6VPNrdKUuoBjpFIo3tnubc1KrRr8vBwRL/oYV8 tSj48wHnuxaMndeKlKfgUW0z/2FL4/Psne5Qef7J6s3fzMOYcvYC/D/5giAbfifJZHm8 0XbgMrNv8tN3ukFVjQG4LWutmtAZG46+9B9k9fBmL30H/2LcGJyAYuudIqE07xJvJUoD pg3Q== X-Gm-Message-State: AOAM532CTFJJwM2HBaWNlRtOEh3v/d8OJ7L9HwgBmmorXlHCTQYJIAYh QDPUV6CuDnCXJxZOFWv019HKxITMecxtzyjV X-Received: by 2002:a5d:43c6:: with SMTP id v6mr3840287wrr.530.1644441951241; Wed, 09 Feb 2022 13:25:51 -0800 (PST) Received: from tsr-vdi-mbaerts.nix.tessares.net (static.23.216.130.94.clients.your-server.de. [94.130.216.23]) by smtp.gmail.com with ESMTPSA id p14sm18500730wrr.7.2022.02.09.13.25.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 13:25:50 -0800 (PST) From: Matthieu Baerts To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next 9/9] selftests: mptcp: join: make it shellcheck compliant Date: Wed, 9 Feb 2022 22:25:20 +0100 Message-Id: <20220209212520.2989291-10-matthieu.baerts@tessares.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220209212520.2989291-1-matthieu.baerts@tessares.net> References: <20220209212520.2989291-1-matthieu.baerts@tessares.net> 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" This fixes a few issues reported by ShellCheck: - SC2068: Double quote array expansions to avoid re-splitting elements. - SC2206: Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a. - SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. - SC2155: Declare and assign separately to avoid masking return values. - SC2162: read without -r will mangle backslashes. - SC2219: Instead of 'let expr', prefer (( expr )) . - SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. - SC2236: Use -n instead of ! -z. - SC2004: $/${} is unnecessary on arithmetic variables. - SC2012: Use find instead of ls to better handle non-alphanumeric filenames. SC2086 (Double quotes to prevent globbing and word splitting) is ignored because it is controlled for the moment and there are too many to change. While at it, also fixed two small comments: alignment and missing arg. Signed-off-by: Matthieu Baerts Reviewed-by: Mat Martineau --- .../testing/selftests/net/mptcp/mptcp_join.sh | 107 +++++++++--------- 1 file changed, 56 insertions(+), 51 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index c39d5b4e73cb..368819213205 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1,6 +1,11 @@ #!/bin/bash # SPDX-License-Identifier: GPL-2.0 =20 +# Double quotes to prevent globbing and word splitting is recommended in n= ew +# code but we accept it, especially because there were too many before hav= ing +# address all other issues detected by shellcheck. +#shellcheck disable=3DSC2086 + RET=3D0 SIN=3D"" SINFAIL=3D"" @@ -68,7 +73,7 @@ init_partial() =20 CHECK_INVERT=3D0 =20 - # ns1 ns2 + # ns1 ns2 # ns1eth1 ns2eth1 # ns1eth2 ns2eth2 # ns1eth3 ns2eth3 @@ -252,11 +257,10 @@ check_transfer() local in=3D$1 local out=3D$2 local what=3D$3 + local i a b =20 - cmp -l "$in" "$out" | while read line; do - local arr=3D($line) - - let sum=3D0${arr[1]}+0${arr[2]} + cmp -l "$in" "$out" | while read -r i a b; do + sum=3D$((0${a} + 0${b})) if [ $CHECK_INVERT -eq 0 ] || [ $sum -ne $((0xff)) ]; then echo "[ FAIL ] $what does not match (in, out):" print_file_err "$in" @@ -265,7 +269,7 @@ check_transfer() =20 return 1 else - echo "$what has inverted byte at ${arr[0]}" + echo "$what has inverted byte at ${i}" fi done =20 @@ -278,8 +282,7 @@ do_ping() local connector_ns=3D"$2" local connect_addr=3D"$3" =20 - ip netns exec ${connector_ns} ping -q -c 1 $connect_addr >/dev/null - if [ $? -ne 0 ] ; then + if ! ip netns exec ${connector_ns} ping -q -c 1 $connect_addr >/dev/null;= then echo "$listener_ns -> $connect_addr connectivity [ FAIL ]" 1>&2 RET=3D1 fi @@ -370,26 +373,26 @@ pm_nl_add_endpoint() local nr=3D2 local p =20 - for p in $@ + for p in "${@}" do if [ $p =3D "flags" ]; then eval _flags=3D\$"$nr" - [ ! -z $_flags ]; flags=3D"flags $_flags" + [ -n "$_flags" ]; flags=3D"flags $_flags" fi if [ $p =3D "dev" ]; then eval _dev=3D\$"$nr" - [ ! -z $_dev ]; dev=3D"dev $_dev" + [ -n "$_dev" ]; dev=3D"dev $_dev" fi if [ $p =3D "id" ]; then eval _id=3D\$"$nr" - [ ! -z $_id ]; id=3D"id $_id" + [ -n "$_id" ]; id=3D"id $_id" fi if [ $p =3D "port" ]; then eval _port=3D\$"$nr" - [ ! -z $_port ]; port=3D"port $_port" + [ -n "$_port" ]; port=3D"port $_port" fi =20 - let nr+=3D1 + nr=3D$((nr + 1)) done =20 if [ $IP_MPTCP -eq 1 ]; then @@ -536,12 +539,13 @@ do_transfer() =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 !=3D "0" ] || [ $addr_nr_ns2 !=3D "0" ]; then + sleep 1 + fi =20 if [ $addr_nr_ns1 -gt 0 ]; then local counter=3D2 - local add_nr_ns1 - let add_nr_ns1=3Daddr_nr_ns1 + local add_nr_ns1=3D${addr_nr_ns1} while [ $add_nr_ns1 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -550,20 +554,20 @@ do_transfer() addr=3D"10.0.$counter.1" fi pm_nl_add_endpoint $NS1 $addr flags signal - let counter+=3D1 - let add_nr_ns1-=3D1 + counter=3D$((counter + 1)) + add_nr_ns1=3D$((add_nr_ns1 - 1)) done elif [ $addr_nr_ns1 -lt 0 ]; then - local rm_nr_ns1 - let rm_nr_ns1=3D-addr_nr_ns1 + local rm_nr_ns1=3D$((-addr_nr_ns1)) if [ $rm_nr_ns1 -lt 8 ]; then local counter=3D0 - pm_nl_show_endpoints ${listener_ns} | while read line; do + pm_nl_show_endpoints ${listener_ns} | while read -r line; do + # shellcheck disable=3DSC2206 local arr=3D($line) local nr=3D0 =20 local i - for i in ${arr[@]}; do + for i in "${arr[@]}"; do if [ $i =3D "id" ]; then if [ $counter -eq $rm_nr_ns1 ]; then break @@ -572,9 +576,9 @@ do_transfer() rm_addr=3D$(rm_addr_count ${connector_ns}) pm_nl_del_endpoint ${listener_ns} $id wait_rm_addr ${connector_ns} ${rm_addr} - let counter+=3D1 + counter=3D$((counter + 1)) fi - let nr+=3D1 + nr=3D$((nr + 1)) done done elif [ $rm_nr_ns1 -eq 8 ]; then @@ -592,11 +596,10 @@ do_transfer() =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 + [ $addr_nr_ns1 -gt 0 ] && [ $addr_nr_ns2 -lt 0 ] && sleep 1 =20 if [ $addr_nr_ns2 -gt 0 ]; then - local add_nr_ns2 - let add_nr_ns2=3Daddr_nr_ns2 + local add_nr_ns2=3D${addr_nr_ns2} local counter=3D3 while [ $add_nr_ns2 -gt 0 ]; do local addr @@ -606,19 +609,20 @@ do_transfer() addr=3D"10.0.$counter.2" fi pm_nl_add_endpoint $NS2 $addr flags $flags - let counter+=3D1 - let add_nr_ns2-=3D1 + counter=3D$((counter + 1)) + add_nr_ns2=3D$((add_nr_ns2 - 1)) done elif [ $addr_nr_ns2 -lt 0 ]; then - local rm_nr_ns2 + local rm_nr_ns2=3D$((-addr_nr_ns2)) if [ $rm_nr_ns2 -lt 8 ]; then local counter=3D0 - pm_nl_show_endpoints ${connector_ns} | while read line; do + pm_nl_show_endpoints ${connector_ns} | while read -r line; do + # shellcheck disable=3DSC2206 local arr=3D($line) local nr=3D0 local i =20 - for i in ${arr[@]}; do + for i in "${arr[@]}"; do if [ $i =3D "id" ]; then if [ $counter -eq $rm_nr_ns2 ]; then break @@ -630,9 +634,9 @@ do_transfer() rm_addr=3D$(rm_addr_count ${listener_ns}) pm_nl_del_endpoint ${connector_ns} $id wait_rm_addr ${listener_ns} ${rm_addr} - let counter+=3D1 + counter=3D$((counter + 1)) fi - let nr+=3D1 + nr=3D$((nr + 1)) done done elif [ $rm_nr_ns2 -eq 8 ]; then @@ -648,19 +652,20 @@ do_transfer() fi fi =20 - if [ ! -z $sflags ]; then + if [ -n "${sflags}" ]; then sleep 1 for netns in "$NS1" "$NS2"; do - pm_nl_show_endpoints $netns | while read line; do + pm_nl_show_endpoints $netns | while read -r line; do + # shellcheck disable=3DSC2206 local arr=3D($line) local nr=3D0 local id =20 - for i in ${arr[@]}; do + for i in "${arr[@]}"; do if [ $i =3D "id" ]; then id=3D${arr[$nr+1]} fi - let nr+=3D1 + nr=3D$((nr + 1)) done pm_nl_change_endpoint $netns $id $sflags done @@ -745,20 +750,20 @@ run_tests() =20 # create the input file for the failure test when # the first failure test run - if [ "$test_linkfail" -ne 0 -a -z "$CINFAIL" ]; then + if [ "$test_linkfail" -ne 0 ] && [ -z "$CINFAIL" ]; then # the client file must be considerably larger # of the maximum expected cwin value, or the # link utilization will be not predicable size=3D$((RANDOM%2)) size=3D$((size+1)) size=3D$((size*8192)) - size=3D$((size + ( $RANDOM % 8192) )) + size=3D$((size + ( RANDOM % 8192) )) =20 CINFAIL=3D$(mktemp) make_file "$CINFAIL" "client" $size fi =20 - if [ "$test_linkfail" -eq 2 -a -z "$SINFAIL" ]; then + if [ "$test_linkfail" -eq 2 ] && [ -z "$SINFAIL" ]; then size=3D$((RANDOM%16)) size=3D$((size+1)) size=3D$((size*2048)) @@ -785,7 +790,7 @@ chk_csum_nr() local count local dump_stats =20 - if [ ! -z "$msg" ]; then + if [ -n "$msg" ]; then printf "%03u" "$TEST_COUNT" else echo -n " " @@ -948,8 +953,8 @@ chk_stale_nr() [ -z "$recover_nr" ] && recover_nr=3D0 =20 if [ $stale_nr -lt $stale_min ] || - [ $stale_max -gt 0 -a $stale_nr -gt $stale_max ] || - [ $((stale_nr - $recover_nr)) -ne $stale_delta ]; then + { [ $stale_max -gt 0 ] && [ $stale_nr -gt $stale_max ]; } || + [ $((stale_nr - recover_nr)) -ne $stale_delta ]; then echo "[fail] got $stale_nr stale[s] $recover_nr recover[s], " \ " expected stale in range [$stale_min..$stale_max]," \ " stale-recover delta $stale_delta " @@ -988,7 +993,7 @@ chk_add_nr() =20 # 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 + if [ "$count" !=3D "$add_nr" ] && { [ "$timeout" -gt 1 ] || [ "$count" -l= t "$add_nr" ]; }; then echo "[fail] got $count ADD_ADDR[s] expected $add_nr" RET=3D1 dump_stats=3D1 @@ -1174,13 +1179,13 @@ chk_link_usage() =20 local tx_link tx_total tx_link=3D$(ip netns exec $ns cat /sys/class/net/$link/statistics/tx_byte= s) - tx_total=3D$(ls -l $out | awk '{print $5}') - local tx_rate=3D$((tx_link * 100 / $tx_total)) + tx_total=3D$(stat --format=3D%s $out) + local tx_rate=3D$((tx_link * 100 / tx_total)) local tolerance=3D5 =20 printf "%-${NR_BLANK}s %-18s" " " "link usage" - if [ $tx_rate -lt $((expected_rate - $tolerance)) -o \ - $tx_rate -gt $((expected_rate + $tolerance)) ]; then + if [ $tx_rate -lt $((expected_rate - tolerance)) ] || \ + [ $tx_rate -gt $((expected_rate + tolerance)) ]; then echo "[fail] got $tx_rate% usage, expected $expected_rate%" RET=3D1 else @@ -2388,7 +2393,7 @@ usage() } =20 for arg in "$@"; do - # check for "capture/checksum" args before launching tests + # check for "capture/checksum/ip_mptcp" args before launching tests if [[ "${arg}" =3D~ ^"-"[0-9a-zA-Z]*"c"[0-9a-zA-Z]*$ ]]; then CAPTURE=3D1 fi --=20 2.34.1