From patchwork Wed Feb 28 10:25:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 879047 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="Man8oY3y"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zrsbd0KhJz9s3N for ; Wed, 28 Feb 2018 21:43:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752585AbeB1KnG (ORCPT ); Wed, 28 Feb 2018 05:43:06 -0500 Received: from mail-eopbgr30061.outbound.protection.outlook.com ([40.107.3.61]:22244 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752551AbeB1KnA (ORCPT ); Wed, 28 Feb 2018 05:43:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Wyp/ESnkTRMoqA5eEnMt7tSGpUCZdWneBKsWLG62oO4=; b=Man8oY3y4Rw8RjBKwBntfW6WCJHcGCz6BiELpy0IgIhGDAONjwWPkI6e2rVQG4CjYq18d6v1KY2QeHw/2jafPvKJ+TedGoFwec+vhgloVNiF/eh5W1lIXtcwY/F9KlXyIeld7ABV2uuIWkmEUNXf2A74ge3k12k/m4Lm/rEhFao= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; Received: from splinter.mtl.com (193.47.165.251) by DB6PR0501MB2008.eurprd05.prod.outlook.com (2603:10a6:4:6::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Wed, 28 Feb 2018 10:42:50 +0000 From: Ido Schimmel To: netdev@vger.kernel.org, linux-kselftest@vger.kernel.org Cc: davem@davemloft.net, shuah@kernel.org, jiri@mellanox.com, dsahern@gmail.com, roopa@cumulusnetworks.com, nikolay@cumulusnetworks.com, andrew@lunn.ch, f.fainelli@gmail.com, vivien.didelot@savoirfairelinux.com, mlxsw@mellanox.com, Ido Schimmel Subject: [PATCH net-next v2 14/14] selftests: forwarding: Introduce basic shared blocks tests Date: Wed, 28 Feb 2018 12:25:19 +0200 Message-Id: <20180228102519.4156-15-idosch@mellanox.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180228102519.4156-1-idosch@mellanox.com> References: <20180228102519.4156-1-idosch@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [193.47.165.251] X-ClientProxiedBy: DB6PR07CA0011.eurprd07.prod.outlook.com (2603:10a6:6:2d::21) To DB6PR0501MB2008.eurprd05.prod.outlook.com (2603:10a6:4:6::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 3a006bcb-7566-4a9b-d05e-08d57e980425 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DB6PR0501MB2008; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2008; 3:tMMV0rle68hsXbDYuEUp8WRpwr7btpJMdl2JxoawW0Ioig1Sp+g4oDX62nJBIHAuSOFn6FBuYHndFBKNSyz0+0tCXVZao0FQGXzEZzj3mVhB0rQfHLWrOSgZuSsiSuU1mSGMbDdayz73XtqmlfnCo1RKoIS5QnmOuJSGGuDFaihgPLCSG4i7mLrAs/9uhjXUwDy/WH+ILMYGn0jQSHrtF9JuyPCGapnL9k1zDH2QKCXKc6rGF3IXBNdftWd0BL3O; 25:k8VTCqLpfxcj99LgjCu887Lju80mRzin3BTKvz3EbeK3UDAd6y+LEkHDgve6DlU1M9DdcoDCctbk4vYrnLXBfgMhiQXCozsHXeUXjY5KlVnqMx31gjUrJm2AkU/stKZjQYQ5+RvQTCUsoaCi21TGfI39cJxhYbpsko0xvAxLs8Cnu/DstoJlhLzKuKxI9BpQpDgnHsH5MWHi9JhWx86kiiSgXEw5pe62A9d+pkjp3xofpnWJF9+ECHnsatufWkIDC65Pyi6dmh9prZV7zFrzePDG9s92Lmx9HfzmEdDqMxu25XGAF9Qcy3H6ks7uVuqSRyuLFxqIU7lrE9bi0gRzyg==; 31:OiCh50Qss67Y/86QYxvWuqLH2LV4aCfzCby8hqtmpkcLPgcVaGsizEvSDJyoKEwG6A4phJC5rFOViS1uNPMetMMN7T10m68jVq0WFsMjB0QAghDrVkeH7zvu1shfbUb9beEb2A3YkU6DgU4iN8IHNhKcE2xDP4HltH0OUDKUB2ThQo82Yd8pP4FtDA+mN8/oWPGpbXP4cioWyIC9sRUaonp9V2Ue/PtSMH3QcRWkFbM= X-MS-TrafficTypeDiagnostic: DB6PR0501MB2008: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2008; 20:U2mzQcLY8HJDAFZLFdW+ApfIS8ulgprrZ4/4yoDvRvk9bNcQZRi6c4AuU+w3z/kLt22HBl7SIH3M3xXb8/lHs5RgXqNGRxpYDq0fHkr7LKX+EfgQR1dqIQxTMj+c8hx8sR3mSnEgXlqBD2lXEU0LXAe6ELXsjSXQVQF2XvtVLBEjGEbvu/+26L4I8T48Q9wLmp8YLqOyi7Yp7NkZKH2qrHDCJyxmR9q/IAB129ifZbUthe6J4Ns1JjbxGrA2jL6F8RQannEm/yE+mK54w+dxIoGkbNj54nN0aEpHEUhCba7i8OWXrJhRmHQ6Y5iRHidR00lPmGukWT4yyfhMr34ZCcr28QhyPO+IrJ2fAyIatlAhhfKgx6kvL9Ti0nhKUVG3Rq3Lz+5TJuRhQYjYTtXprnPja5KToLrdhK0EO5pHGLTUJRV/5htSXVQMvj35fDp+3wffi8QsVYpQSnSspehJIGv5Jir5eAYFv2fRo1xgoISpo5PNrYaCcG7UAI1TBaOJ; 4:SEsTc1exDZmzmW82coL9IBso8ilCPoxTeClCkZIxT+Fn6/Ab8Q5ljiWF7ywDmD8Oa5pBwVcrI+zz08Aj4uqsSrh4uLb8ZtHmKgn9lJyHlmsUL04JaJ3yCSFliXBn3ShEthDscZxdGNjklQAJhEAnlZSOEPB750bzY8lg/jKPwLl7wFds9tCSVUMRUZji1BrMEMnokSmpguOXEQs4O34woO4k6zqGmgYmSnJuktku3KerEBqlL17xeALQ/VYoCSodFIbP82KsbSPEf7+DNPtl/g== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231220)(944501217)(6055026)(6041288)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123564045)(6072148)(201708071742011); SRVR:DB6PR0501MB2008; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0501MB2008; X-Forefront-PRVS: 0597911EE1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(366004)(39380400002)(396003)(39860400002)(376002)(346002)(189003)(199004)(478600001)(305945005)(2950100002)(53416004)(39060400002)(386003)(6506007)(81166006)(107886003)(81156014)(76176011)(68736007)(50226002)(66066001)(2906002)(8676002)(105586002)(7736002)(26005)(48376002)(16526019)(7416002)(186003)(8936002)(6666003)(50466002)(6116002)(86362001)(47776003)(6512007)(316002)(16586007)(3846002)(106356001)(1076002)(36756003)(97736004)(5660300001)(51416003)(52116002)(6486002)(25786009)(4326008)(53936002)(473944003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0501MB2008; H:splinter.mtl.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2008; 23:BdERNFXM8h+Ps7fw46bUnpghJQn7X9vaLA64KpEzYlg2DHNhbPwxdmFCJzwdbXXjuK+oyFqkA4xNGYqLg3xyuJVAiOR+KnZ5lxDwVq6bCJVP/Cnj+6JDbrVBCoGOX/qQVmXq32LLku+mqRbo9O277sJtf6iXaEeLTy/y8MfodDMdkGdPmslfaz+rpYJT+wLJdDpJNU0X6psrF2mtR0YoEWxj4XkcRoxnULZIt9UdQowU9su4aLX39rb/l5YZq7It2h3+VLz5eQMj1Qc7uL7b0+AtPbxLYvzueKSIVarbUTBGnAfzFlaWhjB4bRKaG3GPpugVu09cY+WnvTStVyNHrO9GG4d4jRuOb0iMXOHuxF+po+UpL4N4UHXs+K8jp252uShlBgPKdMhN42ZG1TvsQHDrj7MvPTOxKoTuSw5AZRsoRZ0cRBCeJYpKUa5J8GuqfhXbtppcHBMBxU5m9tO6qxcyKHuZxPMxPk4L7GovOJlgHylBo+kjuNSY3S69acNPBl+DlDzIQydiYEEUJ7hqj8RAeTJWc82QK8KESJAnxpIhL23D5ifGSl8w2w6dM2frVloo79ZQHGdgA/LEke+uFsSo/TS+pQ9VOGPeaCN5yXQzt50f5HePK1tkEqNLKA7MF+cTinROu8R2BmXxsb+2HPVoDpjNRan9xitjG3z7vf3mHJDWelVaXC7nlG/t5E2WlYaqid5CiQ9jP9FnKB5ZRodUC6BT6JLp2NDZdu2Sovv2YaGWMaPxOUnued8yQiuCpvpEBnmTeJie3bMfWZVQQNzfdAoaoOvcfQ117+1aAeSwnT5yWQroAgtpKfFtZdz0qfBr36Kj5MSrJIJIk8sjoPYL9Q19jDifcBObWAim7PpM8hd2zCkXrnL0SlGRI/J+GC/XG7zUo2glr0SSyx70uvVex+ozgf+vKKGxVchhs0BHBsnGpVfAk+KQh0re6pGUfzQuTGUxVnAGhsY/dlogMOpP25moJzQSKVUgEmiDCNUtDkXp8IxDwQY3u8lgAAn2DEgNKJF2vVCq2QtbEBItxp6XyiILr2Bi6ym1eVvnwBFenNXQaJkIoNsrl6AcJfdl3YfpnxAFW6Wki2PMWRmFT5Go90BbZ8Wdzen4BmKp4rUKxyzLZCwqU5HCe8hfVObG4bYbKxc/IuHv9W5fG347c0BYjC9GDMUdONyB41kMIpicxKPv8ytInFvJsA2W/au1fgZ/jW5IXuyry7X3xCaX9g== X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2008; 6:QFpXbc/d+rqK4RCV09cJf/njVyN2sAFBiluX/lXLDdiMCB/Xl4Ba76kvAuEVsmQ4LfyyKfSybpL0pZk7EFWbCdDnwZe/qlA9jTRcBpMc9ZVIviCg7kcKKquEeqs/9uOryB2QOXEjgs5pNIw9f/y8w76WHsdZIGkrIZsnJSVIdkvzPK8jV2M8y3Cs/lcq1pPiE8dOEY8hgXM8Z0I8wq/tlm/AMCKGBYO6qeyMImyD5jhx7rDKoTHs+FPImrMs1UMeHOrcffjpn/WYvA+Ck0TxGV7reG4B72/4BH9tnKqnwb2pHxhdF5clCXeWCdBE3fO4gwFWuR73aG17y+mqA+c02rqqc97lK5711cAlnxgRn70=; 5:M1edkMb+2aJkU26EEZGls5uCVeh8PPU76k0wzg8dDTX6bVUdZ3WIW1jWkY99/+V0a6uKX0SA/w3pYr8rbdLpjQF7I80U3fGr0pfO3XP66cg34PFqn4q4R+2L1zt+eNjf1+d8WYaxzjKc6qH7215EDcqL4/aZzaXfOGgvfs7KXH0=; 24:lYXQuQvPRHIpO20rtRQc4KTUIWrxfY397rMsXTSvWOhAnrXfEJ1rVl/UFiR8pr17uo6ApViBZL+JDZI4x7ynMFcaKvsfx8KL4RqadcitzaE=; 7:m8nanWRtxfCPszZGyaBEhxBfNUX1jwARVozsETJIRcgrg6b0x202kggHwzYNREsnfEW17+5BQUu/6WoEmBeJf/UFFtjQ3nuRMjE68LbVksulHO3KvLSpDXEwgNU70TjdSOHGEvUY7KyTpCR3mO+rMj+veb+0NUVz5wgU7YdQube61NWbyAtCIOku3/qhb+b0Dn+nVQzdrBlGHEwV0kEpi6ZMkjT6Lve0CURbo8mYRNsWQalBW/eraV0fJn/jmY+K SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2018 10:42:50.1258 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3a006bcb-7566-4a9b-d05e-08d57e980425 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0501MB2008 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Test shared block infrastructure. This is a basic test that shares TC block in between 2 clsact qdiscs. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel --- tools/testing/selftests/net/forwarding/lib.sh | 6 + .../selftests/net/forwarding/tc_shblocks.sh | 122 +++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100755 tools/testing/selftests/net/forwarding/tc_shblocks.sh diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh index 3385ba76ac19..23866a685f77 100644 --- a/tools/testing/selftests/net/forwarding/lib.sh +++ b/tools/testing/selftests/net/forwarding/lib.sh @@ -30,6 +30,12 @@ if [[ $? -ne 0 ]]; then exit 0 fi +tc filter help 2>&1 | grep block &> /dev/null +if [[ $? -ne 0 ]]; then + echo "SKIP: iproute2 too old, missing shared block support" + exit 0 +fi + if [[ ! -x "$(command -v jq)" ]]; then echo "SKIP: jq not installed" exit 0 diff --git a/tools/testing/selftests/net/forwarding/tc_shblocks.sh b/tools/testing/selftests/net/forwarding/tc_shblocks.sh new file mode 100755 index 000000000000..cfc8a2ace388 --- /dev/null +++ b/tools/testing/selftests/net/forwarding/tc_shblocks.sh @@ -0,0 +1,122 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +NUM_NETIFS=4 +source lib.sh +source tc_common.sh + +tcflags="skip_hw" + +h1_create() +{ + simple_if_init $h1 192.0.2.1/24 +} + +h1_destroy() +{ + simple_if_fini $h1 192.0.2.1/24 +} + +h2_create() +{ + simple_if_init $h2 192.0.2.1/24 +} + +h2_destroy() +{ + simple_if_fini $h2 192.0.2.1/24 +} + +switch_create() +{ + simple_if_init $swp1 192.0.2.2/24 + tc qdisc add dev $swp1 ingress_block 22 egress_block 23 clsact + + simple_if_init $swp2 192.0.2.2/24 + tc qdisc add dev $swp2 ingress_block 22 egress_block 23 clsact +} + +switch_destroy() +{ + tc qdisc del dev $swp2 clsact + simple_if_fini $swp2 192.0.2.2/24 + + tc qdisc del dev $swp1 clsact + simple_if_fini $swp1 192.0.2.2/24 +} + +shared_block_test() +{ + RET=0 + + tc filter add block 22 protocol ip pref 1 handle 101 flower \ + $tcflags dst_ip 192.0.2.2 action drop + + $MZ $h1 -c 1 -p 64 -a $h1mac -b $swmac -A 192.0.2.1 -B 192.0.2.2 \ + -t ip -q + + tc_check_packets "block 22" 101 1 + check_err $? "Did not match first incoming packet on a block" + + $MZ $h2 -c 1 -p 64 -a $h2mac -b $swmac -A 192.0.2.1 -B 192.0.2.2 \ + -t ip -q + + tc_check_packets "block 22" 101 2 + check_err $? "Did not match second incoming packet on a block" + + tc filter del block 22 protocol ip pref 1 handle 101 flower + + log_test "shared block ($tcflags)" +} + +setup_prepare() +{ + h1=${NETIFS[p1]} + swp1=${NETIFS[p2]} + + swp2=${NETIFS[p3]} + h2=${NETIFS[p4]} + + h1mac=$(mac_get $h1) + h2mac=$(mac_get $h2) + + swmac=$(mac_get $swp1) + swp2origmac=$(mac_get $swp2) + ip link set $swp2 address $swmac + + vrf_prepare + + h1_create + h2_create + switch_create +} + +cleanup() +{ + pre_cleanup + + switch_destroy + h2_destroy + h1_destroy + + vrf_cleanup + + ip link set $swp2 address $swp2origmac +} + +trap cleanup EXIT + +setup_prepare +setup_wait + +shared_block_test + +tc_offload_check +if [[ $? -ne 0 ]]; then + log_info "Could not test offloaded functionality" +else + tcflags="skip_sw" + shared_block_test +fi + +exit $EXIT_STATUS