From patchwork Mon Jul 30 14:40:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 10549185 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 45C2AA801 for ; Mon, 30 Jul 2018 14:40:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 34AB129FD8 for ; Mon, 30 Jul 2018 14:40:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 32E852A00C; Mon, 30 Jul 2018 14:40:19 +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, LOTS_OF_MONEY,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 5507D29FFA for ; Mon, 30 Jul 2018 14:40:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728666AbeG3QPg (ORCPT ); Mon, 30 Jul 2018 12:15:36 -0400 Received: from mail-eopbgr40073.outbound.protection.outlook.com ([40.107.4.73]:31904 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731799AbeG3QPf (ORCPT ); Mon, 30 Jul 2018 12:15:35 -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=Ic0qNqSBybilw7I82QInyc+le8ryPOg0+Fuwz3WTbCA=; b=orpktEWyaTZoRACJy755eK5/Jo0iLWbbG7j7kM9N4cQdCSx3m3AI/c/gZ2mJLOX/iT5A1XKP1vIGmDE2aKCWkQw2Q0TkB9sH8syLXTTBbiKYXpS0HaGf8KrvvssL0HljZysXwYEqZBqMQcVbCWV/bcsfo/pCnz8tGR2lZs4Ks1A= 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_GCM_SHA384) id 15.20.995.21; Mon, 30 Jul 2018 14:40:12 +0000 From: Petr Machata To: netdev@vger.kernel.org, linux-kselftest@vger.kernel.org Cc: davem@davemloft.net, shuah@kernel.org Subject: [PATCH net-next 5/5] selftests: forwarding: Test mirror-to-gretap w/ UL team LACP In-Reply-To: References: Message-Id: <118764ddd590dde7801d99ee235079e8781aecf6.1532961216.git.petrm@mellanox.com> Date: Mon, 30 Jul 2018 16:40:07 +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: VI1PR03CA0046.eurprd03.prod.outlook.com (2603:10a6:803:50::17) To VI1PR05MB4191.eurprd05.prod.outlook.com (2603:10a6:803:4e::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ca64cc2c-eac2-46c0-bdb4-08d5f62a5b4d X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);SRVR:VI1PR05MB4191; X-Microsoft-Exchange-Diagnostics: 1;VI1PR05MB4191;3:OINNYchjdaa67+zIggA/cmw/715n8K5zfjyuvmdE6t+gWymnF+8iscq/w/o+IM4g2RtCdEOrh83SPh8N/TlxZk8q+hfTa8a9y1hTWATUg1WPHsbdUwGlNendmycZHiyduXMQnWRLxDkm3hz7l+I6AcqKtqPDwSdWhd+e//q4/h4s8Lg5itVQcYXZH8tl75/qDSWyFXEgPPQWMhxdgitYq/m5Xxf6vVJa5TqJC3BXSjFQfbD/tofxf+yF1WOWHWnY;25:ldePylysc10wG25KffO6E4+7aYW7u8x5N2QmMmWdqe0pS04fTEs0x7LD158GIMNCsMZ9MIYKemlZjB7jPfK4ncukxR5c5FPf3nlBPdKV64eHN0q2BsVhW2/u0vI9bI7ofMpdAyEUBvPM6LcMm+SnFSjRUqzN0g19d0SbZJJnM1raM2bpEUOkI8SyLdx4cSqNVf7lEaNrJV7Zyy0q9odVr7WWKRt1wIaXFGFNf9Ta//74Vm6iSFLB/Ay9ElPpnXt4xElfg8W2dynXKpuCXxHrPWiTZkP4UuimCwrer49QGqub1EX06rWIRtyMihCwDWgUttL7O2kP/lOAhnI2iBbiwQ==;31:/ad8Zh48ZYlOKKibx3Iu2xzmOBWqYwvN7eTQoROeRGUKG3WJd9ioKwxL20Wc3rOExjWV3SQIoPwjJmM68HX1v/6eZesEiziCNSFxQvzJRLF3DqkerUnaJD018vL6S8J4L0IgjmvFzfkvlXXVM60BXe7IC8TaiB2rWY1O0k5WHU6Cl34NYTOpwkjTaGfdKn1Z/Ey2g5RLB8IDN8wZBcJZ/iXfOSsMd1t42Gf2pYythb0= X-MS-TrafficTypeDiagnostic: VI1PR05MB4191: X-Microsoft-Exchange-Diagnostics: 1;VI1PR05MB4191;20:f9HCb4/IHnE5uuhrpJJMljbV0CArp7Hq37OGA43lpoRs+V6z10Z1PbROAvGkZbf/jhe663WXGGnWLmW8vHDP4YKAoQmE5VILn9rB2FV/Kyrb38eRy/05/5ESSPfffywPSzNebZygSWp2zP4tYKAiN3nJCoDY8Ek+JUqtdjxmatwZpKNI17iQvy/Eyi/eCRkQg42VXNT9XXYkfSBsdaglStRZcwMxJO75nZXf82c8U7JZflOFffQ4oFAHBFQ58myOCnxwFrrvXO0M4+d2T+BpdO+oJdKt3Loek9+DHUBcaCGkbJKK+M8LyCQFY6/nl5qPjTyhey4vKKC0+tffVH+6W5vWpwuHMzwEL3cRqaltPj6IgWRKCzEJ5MUGaQ8l+UvidOSE+atjTeRL/f7pN6T5Ueiipv97WbfSc1YXXJQECpZYd6s+eyqCBVWi6OoJvPDZRYktDx6Apnjplpaa5/k3IchgWyGQfm/7pYQFjl40q/KDf1AvAGczsCV7GeuazwvH;4:9xtWDcMQyga0YeF8H0AKDLSzfVyXW2kuLq4FSeU4IxBaaWmDBC8gupCoYJ8tcS1vaF5MOfemdf/CTfYbaKvegvuqdi77682FFR6v24T/zojGwodbQdKw9aiuuxD7r7nuluQ8SoNgL+mZSeX2mn3HWDUVksaTvQH4XIYAMfHL6ZMcA1EWN7QfnJxco0aqo6MQFf7bqTVPZFhkQLnT3jeDFXPNqec1UoHlpCEwgBqqW/XO8s9oiZnvJyV4qg+iV7bxWyrtbvYMuNliN+2Lts8DRw== 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)(93006095)(93001095)(3231311)(944501410)(52105095)(3002001)(10201501046)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011)(7699016);SRVR:VI1PR05MB4191;BCL:0;PCL:0;RULEID:;SRVR:VI1PR05MB4191; X-Forefront-PRVS: 0749DC2CE6 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(366004)(346002)(376002)(136003)(396003)(39860400002)(189003)(199004)(66066001)(956004)(4326008)(81156014)(81166006)(476003)(2616005)(8676002)(305945005)(6666003)(8936002)(25786009)(486006)(48376002)(14444005)(118296001)(5660300001)(50466002)(446003)(36756003)(2906002)(52116002)(51416003)(478600001)(3846002)(16526019)(6486002)(58126008)(6116002)(86362001)(6496006)(186003)(16586007)(316002)(11346002)(7736002)(47776003)(53936002)(26005)(386003)(105586002)(97736004)(106356001)(76176011)(68736007);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR05MB4191;H:t540p;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1;VI1PR05MB4191;23:alPtcAx8frQV4mtm6Brcn5ufa73MOLZRR3FaxmWzC7sdVtfB9bCBYruCMhxsP8qLb2BYLbxWa1H2+VKZ+yP0hWoSfED0CjwEklFImg+AbEK7DDG+HeMOYY6p8+NQItTn5ebPlgdo7/5uvB5fFf2KedsesHz1X8i0EnPTDPp2Y1ErMBoqa2DFQVjmmxShihS+eBCt3u0ZrkU/pH3EP/Uv1mm8B4/28+7cCbN/x6jWZ8XSVl3Lo/c3mjQa1m1hLEEYmVdgkWZ/gZw+bOFAkf7zSC/ATckd0YhwJxcFviVPAt9TGiKccFgZNSul8So6Jidphu0QiM4GyWcCyzitw7nNh14yUuQct6+tNx9kWKxAouCZpQthf8lNeA3QI7ijtayyScErb3bCCaawhvVo7mllEQknqoQ/BJCvB/ZOCnDr7yBiAROOCwZlZtuCzyD2YApwF2eQHT4IBDBAOK+hxAgT9aUHzr+kK+iq+kn1FPOLVp0A64un/v+6zCLpWAqbATTYJrr1wSiQGb/mk6ljt0B1Z9mpUKXIHMWoIymO6i45Zo1+CAex3GH4bfL/2TtcEJyCvLQ8BWURSbUKu0iepPxCeIaGHtEzuhGk84nHZ9hmdRIth6wH8a+aA41bg1vvvKk3voEeItrDg3xzI5tyxjyXhWdN24fR9s22wkoKGIqZ+DVlHVAn6863cY6Rsb5pX/HKmP89WEMjQ9cyInsiYqVD8NdW+gKwy88rYskRHAm8oSnWabcjFSoJ6hbd7Bw1em7g8L8V6SsVDELqxTeyupNkumEpFMQi2I/vtGJrxvLuRHav5Wj96O/9/NSusZXoO5U0mOtlJR8MdGTajhsxi8Mj5wLvTErZzKs51n7f9tFVUQK8Pi5yqAXEi8zEVmpj0Dxh6XLJMeWDpf2iInvr8goNoS7JvSs0LAxRMJQNnnIv3f2k4FM0edJ7/OkGHlsD7nECi2xVsmzSZ/ZGoWZ5FQg4qSzlKkkj7NB6FXzdOBkx1UF7qGSc8n80CxXZyYSWGCc4zWLBOr4hCfgLXUE6hxVeh1xe85a4HB5sIY1WMAHts2gM8iTjJSGreGg5GKQHvNvOl2jKwDwgu4P4UyxeuadMVc5TOz1rwoeLr22HIoHZxSgfhZcutbCIBb3pvf4Cs4RsfCtn+OsPiHK0itCXzrR6PA== X-Microsoft-Antispam-Message-Info: KiOqWMg0fAqVw3n58j68wl2VhkNTWLdb+rPjA1noEqNDGw8imzwu5Nbl0XBdPK3IR4o6+71JwaMJDHQq06TGt8ooMwE8x7/2m8hgPNO6r62Ci39SXYNgQH4zMTi1D50c1qgyOCoVN9qjGvRQr0nMd7J48dy3nceHvEvnECKaO0kVkli63IEhoWYvTkOuv9u3coktZpg9mrhXV8XhJA72vWiz9sXLFdFSo13nvQi+g9YFF8R9xwIZVH1jmiiiYaSqztxRBro2Et+tKuakVxXpBD60akyLadSEl8ifgjMYWT9eIEm/EpbbM5QerVGpBcluylm2sa734wDX3ED+nnBwZHT0liIv7YEeQq8tv7yI0fo= X-Microsoft-Exchange-Diagnostics: 1;VI1PR05MB4191;6:betaB5QMuG1gtF/I1xo+0vaT3ryO3wkUm/7r0R+xH7oTGACL1q6pO50pHC/5j9ulqpwWZV/CbzyJQt7tgFu809lsT/isM4D8ho8rZT8owOJ0QfmzlAeeft271ZYxp/9i9+y6C4M1q7pmXoNLefoJulcExJmfgPVTvU18TYb/b9urUK+18GLAfEaB+Ib2gthaqlSIqRNH6EUDh6HaFMmcgknrUpxZdBcU8lhhlmq7MXN9fOx9QTv26NwIqdJT15tp4azGOaL0+bCpjflgKdlUXkyIbeopheQyce5w+uLWx+9aFcpG0en2YRWVUI8C+uG6rmaYQxyg2sfli3YlIuQ5NaZBP3eWPoorXIvDEqkAf4M+BsSzkQs+G/HRXkzW+OE5XhvVAbmkHPW6H3Ut3/nmDeXN7hOX+RVlKCmmbg3saMGTCEv9jX7FfGxQ9sJuu78ifaWLjDugZJbD2h8dDTl2aA==;5:jdiZ/XRttmC7kZ2wejBnvqx4Vd2RmYkz5WkTCjgdrEpH6zoa4+VfgC7O29TrOCwebiOBsltCgt9+Cu9DHWlwQTOO3G7aEx6ExATj0nT1W/JOH7FnRqe681JGvHi/EhtawRXmhDgxXHZMxk0mLrTOjPH+CLgDF08euSKLKVnoyPE=;7:j7WZiXzCaOp711eKxBh3Bid4Acp6f7bGqxY75mn4K8TWqpZ854hIhIcUxmxustRQqmPR43/joBwqPPbJg6PXJ91nvdRU+lRPWTJ7Skpfu1hanZXbHoS1hHUuY8EZxzFe3zHxMxdwcArERts2f4zSm7DJfepgixrnKR8WfPNLQ0IZp5+Xlb16uSgsqzKXDZgFkdTZftL6kpTRxCibYKcMVTYTzFd8EmvLZEsOwMiZBimLWL5PRFjBl4BFSZQByMRn SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jul 2018 14:40:12.2423 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ca64cc2c-eac2-46c0-bdb4-08d5f62a5b4d 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 This tests mirror-to-gretap when an underlay packet path includes a team device which is not in loadbalance mode, but in LACP mode. The test manipulates LAG membership to achieve changes in txability, thus making sure that a driver that offloads mirror-to-gretap doesn't just consider upness of a device. Signed-off-by: Petr Machata --- .../net/forwarding/mirror_gre_lag_lacp.sh | 285 +++++++++++++++++++++ 1 file changed, 285 insertions(+) create mode 100755 tools/testing/selftests/net/forwarding/mirror_gre_lag_lacp.sh diff --git a/tools/testing/selftests/net/forwarding/mirror_gre_lag_lacp.sh b/tools/testing/selftests/net/forwarding/mirror_gre_lag_lacp.sh new file mode 100755 index 000000000000..9edf4cb104a8 --- /dev/null +++ b/tools/testing/selftests/net/forwarding/mirror_gre_lag_lacp.sh @@ -0,0 +1,285 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +# Test for "tc action mirred egress mirror" when the underlay route points at a +# team device. +# +# +----------------------+ +----------------------+ +# | H1 | | H2 | +# | + $h1.333 | | $h1.555 + | +# | | 192.0.2.1/28 | | 192.0.2.18/28 | | +# +----|-----------------+ +----------------|-----+ +# | $h1 | +# +---------------------------------+------------------------------+ +# | +# +--------------------------------------|------------------------------------+ +# | SW o---> mirror | +# | | | +# | +----------------------------------+------------------------------+ | +# | | $swp1 | | +# | + $swp1.333 $swp1.555 + | +# | 192.0.2.2/28 192.0.2.17/28 | +# | | +# | | +# | + gt4 (gretap) ,-> + lag1 (team) | +# | loc=192.0.2.129 | | 192.0.2.129/28 | +# | rem=192.0.2.130 --' | | +# | ttl=100 | | +# | tos=inherit | | +# | _____________________|______________________ | +# | / \ | +# | / \ | +# | + $swp3 + $swp4 | +# +---|------------------------------------------------|----------------------+ +# | | +# +---|------------------------------------------------|----------------------+ +# | + $h3 + $h4 H3 | +# | \ / | +# | \____________________________________________/ | +# | | | +# | + lag2 (team) | +# | 192.0.2.130/28 | +# | | +# +---------------------------------------------------------------------------+ + +ALL_TESTS=" + test_mirror_gretap_first + test_mirror_gretap_second +" + +NUM_NETIFS=6 +source lib.sh +source mirror_lib.sh +source mirror_gre_lib.sh + +require_command $ARPING + +vlan_host_create() +{ + local if_name=$1; shift + local vid=$1; shift + local vrf_name=$1; shift + local ips=("${@}") + + vrf_create $vrf_name + ip link set dev $vrf_name up + vlan_create $if_name $vid $vrf_name "${ips[@]}" +} + +vlan_host_destroy() +{ + local if_name=$1; shift + local vid=$1; shift + local vrf_name=$1; shift + + vlan_destroy $if_name $vid + ip link set dev $vrf_name down + vrf_destroy $vrf_name +} + +h1_create() +{ + vlan_host_create $h1 333 vrf-h1 192.0.2.1/28 + ip -4 route add 192.0.2.16/28 vrf vrf-h1 nexthop via 192.0.2.2 +} + +h1_destroy() +{ + ip -4 route del 192.0.2.16/28 vrf vrf-h1 + vlan_host_destroy $h1 333 vrf-h1 +} + +h2_create() +{ + vlan_host_create $h1 555 vrf-h2 192.0.2.18/28 + ip -4 route add 192.0.2.0/28 vrf vrf-h2 nexthop via 192.0.2.17 +} + +h2_destroy() +{ + ip -4 route del 192.0.2.0/28 vrf vrf-h2 + vlan_host_destroy $h1 555 vrf-h2 +} + +h3_create_team() +{ + team_create lag2 lacp $h3 $h4 + __simple_if_init lag2 vrf-h3 192.0.2.130/32 + ip -4 route add vrf vrf-h3 192.0.2.129/32 dev lag2 +} + +h3_destroy_team() +{ + ip -4 route del vrf vrf-h3 192.0.2.129/32 dev lag2 + __simple_if_fini lag2 192.0.2.130/32 + team_destroy lag2 + + ip link set dev $h3 down + ip link set dev $h4 down +} + +h3_create() +{ + vrf_create vrf-h3 + ip link set dev vrf-h3 up + tc qdisc add dev $h3 clsact + tc qdisc add dev $h4 clsact + h3_create_team +} + +h3_destroy() +{ + h3_destroy_team + tc qdisc del dev $h4 clsact + tc qdisc del dev $h3 clsact + ip link set dev vrf-h3 down + vrf_destroy vrf-h3 +} + +switch_create() +{ + ip link set dev $swp1 up + tc qdisc add dev $swp1 clsact + vlan_create $swp1 333 "" 192.0.2.2/28 + vlan_create $swp1 555 "" 192.0.2.17/28 + + tunnel_create gt4 gretap 192.0.2.129 192.0.2.130 \ + ttl 100 tos inherit + + ip link set dev $swp3 up + ip link set dev $swp4 up + team_create lag1 lacp $swp3 $swp4 + __addr_add_del lag1 add 192.0.2.129/32 + ip -4 route add 192.0.2.130/32 dev lag1 +} + +switch_destroy() +{ + ip -4 route del 192.0.2.130/32 dev lag1 + __addr_add_del lag1 del 192.0.2.129/32 + team_destroy lag1 + + ip link set dev $swp4 down + ip link set dev $swp3 down + + tunnel_destroy gt4 + + vlan_destroy $swp1 555 + vlan_destroy $swp1 333 + tc qdisc del dev $swp1 clsact + ip link set dev $swp1 down +} + +setup_prepare() +{ + h1=${NETIFS[p1]} + swp1=${NETIFS[p2]} + + swp3=${NETIFS[p3]} + h3=${NETIFS[p4]} + + swp4=${NETIFS[p5]} + h4=${NETIFS[p6]} + + vrf_prepare + + ip link set dev $h1 up + h1_create + h2_create + h3_create + switch_create + + trap_install $h3 ingress + trap_install $h4 ingress +} + +cleanup() +{ + pre_cleanup + + trap_uninstall $h4 ingress + trap_uninstall $h3 ingress + + switch_destroy + h3_destroy + h2_destroy + h1_destroy + ip link set dev $h1 down + + vrf_cleanup +} + +test_lag_slave() +{ + local up_dev=$1; shift + local down_dev=$1; shift + local what=$1; shift + + RET=0 + + mirror_install $swp1 ingress gt4 \ + "proto 802.1q flower vlan_id 333 $tcflags" + + # Move $down_dev away from the team. That will prompt change in + # txability of the connected device, without changing its upness. The + # driver should notice the txability change and move the traffic to the + # other slave. + ip link set dev $down_dev nomaster + sleep 2 + mirror_test vrf-h1 192.0.2.1 192.0.2.18 $up_dev 1 10 + + # Test lack of connectivity when neither slave is txable. + ip link set dev $up_dev nomaster + sleep 2 + mirror_test vrf-h1 192.0.2.1 192.0.2.18 $h3 1 0 + mirror_test vrf-h1 192.0.2.1 192.0.2.18 $h4 1 0 + mirror_uninstall $swp1 ingress + + # Recreate H3's team device, because mlxsw, which this test is + # predominantly mean to test, requires a bottom-up construction and + # doesn't allow enslavement to a device that already has an upper. + h3_destroy_team + h3_create_team + # Wait for ${h,swp}{3,4}. + setup_wait + + log_test "$what ($tcflags)" +} + +test_mirror_gretap_first() +{ + test_lag_slave $h3 $h4 "mirror to gretap: LAG first slave" +} + +test_mirror_gretap_second() +{ + test_lag_slave $h4 $h3 "mirror to gretap: LAG second slave" +} + +test_all() +{ + slow_path_trap_install $swp1 ingress + slow_path_trap_install $swp1 egress + + tests_run + + 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