From patchwork Thu May 24 14:27:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 10424897 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7615D6019D for ; Thu, 24 May 2018 14:28:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7AF64295EB for ; Thu, 24 May 2018 14:28:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6B862295F4; Thu, 24 May 2018 14:28:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C99BA295D9 for ; Thu, 24 May 2018 14:27:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1033263AbeEXO17 (ORCPT ); Thu, 24 May 2018 10:27:59 -0400 Received: from mail-ve1eur01on0077.outbound.protection.outlook.com ([104.47.1.77]:55308 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1031005AbeEXO15 (ORCPT ); Thu, 24 May 2018 10:27:57 -0400 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:X-MS-Exchange-SenderADCheck; bh=1JG5dlQ9bLHCuPdI3gOg1IAsRA4CR/uS/xJxry8oo/4=; b=izPvSTKfSSgIKYzv0eh08a2L3RwM2mzvHQB22e9serBKLHaKdH00tlgg8NrzbS+omIViZXMKR5wvuZ/7cdwD9vPOlRGtRDUGIVxVguM9DxxBGro8EwhfgoozsiJgJFObUYOrDNHPwnrQRiR6OigxQupiJYxi2Ozv6M8G7V6rWWQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=petrm@mellanox.com; Received: from t540p (78.45.160.211) by VI1PR05MB4191.eurprd05.prod.outlook.com (2603:10a6:803:4e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.797.11; Thu, 24 May 2018 14:27:53 +0000 From: Petr Machata To: netdev@vger.kernel.org, linux-kselftest@vger.kernel.org Cc: davem@davemloft.net, shuah@kernel.org, idosch@mellanox.com, jiri@mellanox.com Subject: [PATCH net-next 07/10] selftests: forwarding: Test mirror-to-vlan In-Reply-To: References: Message-Id: Date: Thu, 24 May 2018 16:27:48 +0200 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 X-Originating-IP: [78.45.160.211] X-ClientProxiedBy: LO2P265CA0034.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:61::22) To VI1PR05MB4191.eurprd05.prod.outlook.com (2603:10a6:803:4e::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(48565401081)(2017052603328)(7153060)(7193020); SRVR:VI1PR05MB4191; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4191; 3:nQ9PEWShdSfjR2C8Jb10Byl3jj8JfDPafpuHjE1mqwbqfND2nSRg7QI7VKQx3OFalr5kmnEdn5Kt7VeO8+KQtn+BCFr9McwtgNDSSTgd56Vc076xNEeKm1s64RFRtg6BMVV/jaGRt+6YU/fRrqRKYK5yPK6I3Ov2e4lFvciiTs8gcA685y+KeW9LqJcSsasxX6kq7Jp2EEhKmQ2ydrXelK/icZKlMpd+qoI/OLd89W1IhREFuFUYpcN3dgUqGycZ; 25:qmeUlIXP+mMBW6Lbw9DvxkbNIsjkm+ynBvwH0xbPkWjgO+HXTY3By9u89cWeDuskH/5PMowMFIWfISRG7M/SZEIjEph5kzXT0UhhM1Z5GHjU2f6e7rt4vAUSg+KnUP3WVTvnwKjNMhBKqbVaDGGtNSs1H8jbTIhT7SVqQxv+94MSEU9bagccUChCwiClQrSUIiLFhedmIy2liepX8HGYmvLgD4VK8hEXdtRfqmJSba8uGGLLmFL7DETWyCOShXYiY7VnmSRoiCZS3cK9HlvREe97c1aA//5O2oOeYehPtaJQ08GvRQG0WKwb/tUVL0PFw8GxykuBlopCFlEs60p4Lg==; 31:JeouqzrkzSGZzp6Oi3WeU6KnKvYQaLlO8dxpFIweagt50Fdke+OqwajwMvF+u23V2wBNVe7Qiy97jwO0bpTcXzuLEwwYWVbLgPLl/CMmvnVqGICzhsvVPsSvxksIyPTsbJVoLT9XfJYSDs9N0Or+W0wY0A/beoBP4rJdE/CPbeAnc+zXps18hF16At8qCfK2wPv5C8yqiGe7PLlLHzGM5FVL+kBRytt+aeUJyWTwH6Q= X-MS-TrafficTypeDiagnostic: VI1PR05MB4191: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4191; 20:3vpx8J+M+XwD5Ccj/vMxceaWPfH2xov+eyAN6yh0a6TWqA5wEBFRs2Wj9l0L93K37bm0UpdLat3BPJgHYRRxCw0G/YoVw04eI0NSuqnCTH3mwsIL3eEg+70ZfYkO1dBoLqBJm4j1AxNmMuyW6jlXLJXYMVtjV5LIkjfGBgM4x26AhNx9wHnC589fBknCcHlbI232KxXvL3U7TrPTJTvOW4G8PfkuFPbMA7tp/MoD4srHJ2FQCpzIlpbQSjjHXErDYa8bEwzz5YXNumIoiq479KF2yHT/PAlC/GacjYhgDE5k1v9Kvak4/v6CwOENs0gTYkgopnIHRD0ZTGdDZhR1TDg7sPD7zGO8GB3ts8GqoCKyIQ6Z4xPfNAd64jMNHMbKwH76H8LSIaF0AVgGDh9x9FDT8AAWBrh+escTvICRCALVMWKxNWYTAykYHmOp9SjVgy/+JWlOe6TISY8dJFyPGduqKlw7t2qi/1TUCbag7CCkigVX3NcHn6mDHXEbYMoR; 4:0NDVHE1FJLJpvZr7HBQaMX+vAk2k1Fgv3utKqRVkq7BiCvAVSMTcchVq0qzNvxXRRK9n9QNmSSQVy10Lvhcd7ikno+Mdmsja2mD1Erw7HoDFs/j7fzP7UE/pfb3pY9RpfF5eOC905vwlwFr+hhlNWsSEeiIP1bsKfBJyTwjkF2m+iCgHUTKgRD+944Au9GCRxWcZhnlgbZA3QsHdQfBnl/ydbQIz6ZtdVeIBev+18PNw2hGxkKwnhDUYWR6lVVTdQoZTrzyd+2U2MXn08i/UMw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231254)(944501410)(52105095)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:VI1PR05MB4191; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB4191; X-Forefront-PRVS: 0682FC00E8 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(376002)(39860400002)(346002)(366004)(396003)(199004)(189003)(478600001)(86362001)(2616005)(476003)(36756003)(956004)(11346002)(8676002)(118296001)(6486002)(81156014)(81166006)(8936002)(58126008)(16526019)(4326008)(107886003)(486006)(446003)(53936002)(386003)(6666003)(52116002)(51416003)(26005)(105586002)(16586007)(316002)(106356001)(97736004)(305945005)(25786009)(2906002)(7736002)(6116002)(3846002)(5660300001)(48376002)(68736007)(47776003)(50466002)(66066001)(6496006)(76176011); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB4191; H:t540p; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR05MB4191; 23:S08AxFiMmsW9cPcPqM1v+YdbRyhdkdIhbfRo097PG?= =?us-ascii?Q?ZV4p9YdJg5aUTYnt1xmPoWqr03p2wACIDP9en5oAhKQ+vp55S/OrMZSC8+JO?= =?us-ascii?Q?jQxJKwJWcuVJYbADG4vyp3fALtl7dY8FRfEZAVaUQMkJe1KXCfD8EJZ2Rzs+?= =?us-ascii?Q?9DaKfmhYh5vz95oK0f9IspCGLQ+GjAVi4QAtPHvmooHkES0cwTteVSTLtskv?= =?us-ascii?Q?hnF6d66luyN7Gr74hqM6Fj2bgg28jJbYoNe8Pfm6QRikLzG6rL3JY7oaI7vF?= =?us-ascii?Q?/BXi8yM0mIW//wm9U5lXXM8yyGxqNHGYYL8XTQ1x/0ldqUR3kwyLboEZJQel?= =?us-ascii?Q?zHtFtSAeYCcChiSZ2hM40nM+hCfwVZbN60xDBqVm8/wTvYAsIYm0QiK5Fxmc?= =?us-ascii?Q?mWW/kG3y5GbN98jRmudP1xyEFSN1CbUefe34wi79hRGWXdaABOuDKKOSGJlC?= =?us-ascii?Q?VOChG8r/wRiERYL/bWwG8ir7isz4cv5VnwMhCLuuTf5QmdmjkZDXJRKF67Cc?= =?us-ascii?Q?AGCsq08ZxP93bZrAJZHbXyqLVAWsfsCk/GxwmbI351iBync1Ed/VNqMw/+k7?= =?us-ascii?Q?3XFVv8b/GUyzJzIB1rpe198LwZFq1gskidQY7OeehG6JH2xbj0hsINhY4FjR?= =?us-ascii?Q?I+JVbz7e2fCfSoEZgJKXs8bJAEFC9KrTWExNanB9XVmoH8lTBaTV65Xskv7B?= =?us-ascii?Q?VVuOTvYGQKLigH/F4IfY57mSEIeCeRrNHT2qwreonHcqYRegU6MZR7OXTEXy?= =?us-ascii?Q?s1OYlC2FRA66nsflM/ubL1b5yueKSIBnDWr7GblX2CAr2CIJd3skwAMmHfzI?= =?us-ascii?Q?GQhoPAzJ4qo0NP63ESmcVvBMFD6Sb37t5GDIZXJIEskZPb7ahJVczwCnCEj0?= =?us-ascii?Q?7dXignKKCF5DMVmtw2UhV1YZTOSDJyi2HMd+ECpplm+pKBx77QI1FMXA99z6?= =?us-ascii?Q?X3lwh+/peBXJt5wh6XVG36Q9q8+NYXafY0UQe5bt3TXESbO7JTiClujl8CK9?= =?us-ascii?Q?gbcNqnalgFdrvhTA9cDH2TF6MzE8+xlzf5kSVSeGyZ6f979zzGxK830PmDGe?= =?us-ascii?Q?Fs1U5yf+k2a1eHrNLHZuF6PPbXTOE3RrQ/yEN5RLPkJzqx+sFvN21NQkMoYV?= =?us-ascii?Q?ShiD4sapLr1vtnaJVAhRuhUoWhCgoa+7D8DbS99WMoxOb3wSWoGCA=3D=3D?= X-Microsoft-Antispam-Message-Info: HX+8KjKYoPAgV9nMfPke8nvsUBvEYhrYRcKu2oRi+Wjlqhz/zadprg4hm1vdlRDMpgi2Cz1wjK1cA5mkA7XbnvWov6aPnQwhnkss4FGvRskLnSP6276euEEiFop4inPoUzSQUFZ7WamqojG3wmlPbecmk6oVWgj5StgorU2+ERP64qOdfNbGnOjSFKiDerK5 X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4191; 6:C5j2Rf1YjErAUComAA6Ilo9OlRbawt69DfOjLJ+fKDQopNd4Nz3RY6FAyIOG4ch8A7DfUuGgEP0gS3sgfaS76JY8GsSci024ElX7oDic3V7tboQ6eVYqpDVVXAfESc8tW3NIejxa7e2qCMlIbUBnQDQY88DVFeo8ry3TeT/mquHNg9EW80Nw4XJLxx3/pQmBhlOgvQupZPajbj+zBv8ExNdGk+6JtokAW71OsJJA4HmayNnP8apWTbEDvrjABXz0KZ2yWse4R8+TQfU29SYMr2te09fEQo2rXcGHzNYFi0Ze/8xh9k3bsScUH57VlNHG/v185kZLT23eIzxlxpsx63H7nRKxb7iePdgTL4Ygfdgqes3N7SOa+5FEKnuAFlkHNBhZPsMcVFlm/g5KMFTj7UopBpL0iYACr/qpmzCoGLTrmM45wbFpgx7khScqhMEsnz6UsWp3xyFQMsgeE7Fm+g==; 5:YcZJL9eaw74SW1eZFLpl3/wMXyKRx1q3GoFRD+Cmw5F7qqgnCSNSODtSi7OSXula/KuIh6yaOv0TcgXdJWx6n9wh0eQVQ8U/S+7GfQNAeFfxUZzmj6znZfOl1wR9ziLnh94Tu89iyjFwgviE0iRvvr5uEaHYCMqRR6o17n7p6Ho=; 24:9sBSJnVDEXwFnKGxIaEBCJ1Ro6Ibgtk7RKWZtwNVpQpEFPrcXxRtAB6+qObXF3e62edoVJv4u8lNL51k7RJ5In57f/3HZqnhBmRr8P1e/mc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4191; 7:8pqv2KpMFRQxd/hl2UeFM9MWSeet/HioFK1g19MQHwOs0sb9J1W/Ee6g2ErzlUqD6C5gy6x/R4qTAdAnxGBEiV0ar7/0XTqui180yNfb2JCB6dRCY6d6LfKBr9J0K1LKsS4+aRqwDwrXOW7s1Jktkxvvw51pQmWiPQ/7TzktnoOGKV40PTZJ0TrhCrNnLLNcgiR39D5dkkb8YQKaEhNQuwvxSWlGdOHagKoEhSt2TmrY0SVSfirqb6LqdEOo3u/Q X-MS-Office365-Filtering-Correlation-Id: d0eb8552-adb7-4c33-5159-08d5c18289ce X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2018 14:27:53.9546 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d0eb8552-adb7-4c33-5159-08d5c18289ce X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4191 Sender: linux-kselftest-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Test for "tc action mirred egress mirror" that mirrors to a vlan device. - test_vlan() tests that the packets get mirrored - test_tagged_vlan() tests that the mirrored packets have correct inner VLAN tag. Signed-off-by: Petr Machata --- .../selftests/net/forwarding/mirror_vlan.sh | 169 +++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100755 tools/testing/selftests/net/forwarding/mirror_vlan.sh diff --git a/tools/testing/selftests/net/forwarding/mirror_vlan.sh b/tools/testing/selftests/net/forwarding/mirror_vlan.sh new file mode 100755 index 0000000..1e10520 --- /dev/null +++ b/tools/testing/selftests/net/forwarding/mirror_vlan.sh @@ -0,0 +1,169 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +# This test uses standard topology for testing mirroring. See mirror_topo_lib.sh +# for more details. +# +# Test for "tc action mirred egress mirror" that mirrors to a vlan device. + +ALL_TESTS=" + test_vlan + test_tagged_vlan +" + +NUM_NETIFS=6 +source lib.sh +source mirror_lib.sh +source mirror_topo_lib.sh + +setup_prepare() +{ + h1=${NETIFS[p1]} + swp1=${NETIFS[p2]} + + swp2=${NETIFS[p3]} + h2=${NETIFS[p4]} + + swp3=${NETIFS[p5]} + h3=${NETIFS[p6]} + + vrf_prepare + mirror_topo_create + + vlan_create $swp3 555 + + vlan_create $h3 555 v$h3 + matchall_sink_create $h3.555 + + vlan_create $h1 111 v$h1 192.0.2.17/28 + bridge vlan add dev $swp1 vid 111 + + vlan_create $h2 111 v$h2 192.0.2.18/28 + bridge vlan add dev $swp2 vid 111 +} + +cleanup() +{ + pre_cleanup + + vlan_destroy $h2 111 + vlan_destroy $h1 111 + vlan_destroy $h3 555 + vlan_destroy $swp3 555 + + mirror_topo_destroy + vrf_cleanup +} + +test_vlan_dir() +{ + local direction=$1; shift + local forward_type=$1; shift + local backward_type=$1; shift + + RET=0 + + mirror_install $swp1 $direction $swp3.555 "matchall $tcflags" + test_span_dir "$h3.555" "$direction" "$forward_type" "$backward_type" + mirror_uninstall $swp1 $direction + + log_test "$direction mirror to vlan ($tcflags)" +} + +test_vlan() +{ + test_vlan_dir ingress 8 0 + test_vlan_dir egress 0 8 +} + +vlan_capture_add_del() +{ + local add_del=$1; shift + local pref=$1; shift + local dev=$1; shift + local filter=$1; shift + + tc filter $add_del dev "$dev" ingress \ + proto 802.1q pref $pref \ + flower $filter \ + action pass +} + +vlan_capture_install() +{ + vlan_capture_add_del add 100 "$@" +} + +vlan_capture_uninstall() +{ + vlan_capture_add_del del 100 "$@" +} + +do_test_span_vlan_dir_ips() +{ + local expect=$1; shift + local dev=$1; shift + local vid=$1; shift + local direction=$1; shift + local ip1=$1; shift + local ip2=$1; shift + + vlan_capture_install $dev "vlan_id $vid" + mirror_test v$h1 $ip1 $ip2 $dev 100 $expect + mirror_test v$h2 $ip2 $ip1 $dev 100 $expect + vlan_capture_uninstall $dev +} + +test_tagged_vlan_dir() +{ + local direction=$1; shift + local forward_type=$1; shift + local backward_type=$1; shift + + RET=0 + + mirror_install $swp1 $direction $swp3.555 "matchall $tcflags" + do_test_span_vlan_dir_ips 10 "$h3.555" 111 "$direction" \ + 192.0.2.17 192.0.2.18 + do_test_span_vlan_dir_ips 0 "$h3.555" 555 "$direction" \ + 192.0.2.17 192.0.2.18 + mirror_uninstall $swp1 $direction + + log_test "$direction mirror to vlan ($tcflags)" +} + +test_tagged_vlan() +{ + test_tagged_vlan_dir ingress 8 0 + test_tagged_vlan_dir egress 0 8 +} + +test_all() +{ + slow_path_trap_install $swp1 ingress + slow_path_trap_install $swp1 egress + trap_install $h3 ingress + + tests_run + + trap_install $h3 ingress + slow_path_trap_uninstall $swp1 egress + slow_path_trap_uninstall $swp1 ingress +} + +trap cleanup EXIT + +setup_prepare +setup_wait + +tcflags="skip_hw" +test_all + +if ! tc_offload_check; then + echo "WARN: Could not test offloaded functionality" +else + tcflags="skip_sw" + test_all +fi + +exit $EXIT_STATUS