From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2BC2BC43381 for ; Sun, 24 Feb 2019 06:47:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E3A10204EC for ; Sun, 24 Feb 2019 06:47:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="VBzE2G1u" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728189AbfBXGrC (ORCPT ); Sun, 24 Feb 2019 01:47:02 -0500 Received: from mail-eopbgr80082.outbound.protection.outlook.com ([40.107.8.82]:37246 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728172AbfBXGq5 (ORCPT ); Sun, 24 Feb 2019 01:46:57 -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:X-MS-Exchange-SenderADCheck; bh=ljN59zRDKPrqLNONVQsn+qOO5cePZxaYL5fc+OjSaDY=; b=VBzE2G1u6ljZuZhGW3VnhGz+3bdQMDBNVeNi1cE+GHfOuhdyDiY5Nhrgy0Vdt0WxuQxGwSBmbYo3aPV0SSXQIyrm9YT2HzgUj+KnQCSK/A16dJSz34mYFUyTR3MN/QYTp4Q1/39mHS8yNw+MLNry2KBFdWa87tKGMb5DZN946KE= Received: from AM6PR05MB5240.eurprd05.prod.outlook.com (20.177.196.214) by AM6PR05MB4343.eurprd05.prod.outlook.com (52.135.162.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.18; Sun, 24 Feb 2019 06:46:37 +0000 Received: from AM6PR05MB5240.eurprd05.prod.outlook.com ([fe80::3542:889c:3a85:3866]) by AM6PR05MB5240.eurprd05.prod.outlook.com ([fe80::3542:889c:3a85:3866%5]) with mapi id 15.20.1643.019; Sun, 24 Feb 2019 06:46:37 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , mlxsw , Ido Schimmel Subject: [PATCH net-next 15/15] selftests: mlxsw: spectrum-2: Add massive delta rehash test Thread-Topic: [PATCH net-next 15/15] selftests: mlxsw: spectrum-2: Add massive delta rehash test Thread-Index: AQHUzAyu8huXg+zqVk6C5uW+b+g+cw== Date: Sun, 24 Feb 2019 06:46:34 +0000 Message-ID: <20190224064525.14913-16-idosch@mellanox.com> References: <20190224064525.14913-1-idosch@mellanox.com> In-Reply-To: <20190224064525.14913-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P194CA0033.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::46) To AM6PR05MB5240.eurprd05.prod.outlook.com (2603:10a6:20b:64::22) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 558da13e-de63-4770-4d0b-08d69a23d148 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605104)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:AM6PR05MB4343; x-ms-traffictypediagnostic: AM6PR05MB4343: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1;AM6PR05MB4343;23:6KVNAMjdQQmICZs7nEuKpdgkWDlfb32iYTGhAyZ?= =?iso-8859-1?Q?2Ing7Kk+wwWwyA/VIHLScxpywlaWLB9IAeypKMgBybNTdQru81CxoPMOjb?= =?iso-8859-1?Q?73uxIvMgy1kLiEFa5Zt1lrZk0dwszzt++cYeCJQuklAjkfwrBTsHR9buA4?= =?iso-8859-1?Q?mCSW1nb4T240AQ65bm0jXhWrTanrHZC5SVBiYrEwWx7xHA14XdKMrtSeU2?= =?iso-8859-1?Q?yr33BUovsMW7WdWPNoRdxJWo72/YUM/enMXgkohQobmYE4mQ2a2u50AzNg?= =?iso-8859-1?Q?MCBEgNHstVFwyASza9CTWfXZ6rtyax1FQOHWrXB5zf9iElrHljn9vvVNRr?= =?iso-8859-1?Q?aJLxCYkypIvxaTDtyGHRN6tcfkC+FLxcc+9fpoTsWXS7nDn4CBaAMB9ang?= =?iso-8859-1?Q?aV5DJ9A4DdTSCYgCyJ6QAbbQxu+7qzTIuq6dKASrPCD4s+qAHOGo+sJi3X?= =?iso-8859-1?Q?/hNs2YcTz3rNxi3MMKe+pw7PxK2kAuTUOYUCtP3yfLQisL73+QAr9HZ++0?= =?iso-8859-1?Q?3XpxX8+BycnZ7Fe/IvcF1Wg2ja7XV6mYIV7cwuQ1VlJlSLsk2xuxnhXyTH?= =?iso-8859-1?Q?4Uj6hw4lDBaleGclCUI8NOQlxwmS/4dZUIth5mW+ctCFK1mAGPGmxpX726?= =?iso-8859-1?Q?UFYP6KagDYRCixevR1TQsr6+iUPafmodIpRdxXzVVkWJ0Sy3EeNBMBw3i1?= =?iso-8859-1?Q?gaGCpbb/qKyt5ScgQzZM+ntaQPkThxz8lSDDn9Ngp58pq9HD1Dqelc9ui9?= =?iso-8859-1?Q?raVndQ0IagQNVe+sdsdYLSrL7ssPhrVU7sfKfv8LeNKjVFYby8ZmoYzER0?= =?iso-8859-1?Q?eiuNXjx/XfOpQFG7AdtZLd5W7JdXc7+61YcI1ZeXGOkiZ9NxDrejKsfMbu?= =?iso-8859-1?Q?kdY+ci2ROVsYmR4sME6O/00EGqCC3NUd8A9Radk+w4JVcOzRYwT2+8fmoS?= =?iso-8859-1?Q?E5dCiZnKhFZbOqbN4f6YdfhKSVFn7LEq8S1rvlFkIki0sd+7/0gKpp6gYl?= =?iso-8859-1?Q?wUxBiSIGI8pXj7r6bcIBbk+2M7ofCGdGBF6ivXUWMRJKJWCa3mhkuC3Sni?= =?iso-8859-1?Q?TUGlBP3yoiAX5CmS/KO+0qFVSl9J4xajBjaRt0S3zaE1zWXPkxlRSkWyR+?= =?iso-8859-1?Q?3r0aRbwC6zocltIXjlCfpFqN+ojlcKgIajinBPrqIm6rNScFKmmWT6WKXU?= =?iso-8859-1?Q?Sm3SPwub8bW7umg4q0j1wbau+CPyxi1M5+NE97WARZIppabMKU/h4WxmPA?= =?iso-8859-1?Q?QQzCkb77U5JRrqvAVdt3zB1P6KzNP8VEMgqSAhZ6jBxOCnCpidPlDV86wP?= =?iso-8859-1?Q?3HbhVAHByUOnYpeFhW69Z0B/8J3VMt+PNEDBD9hQvN9Z88Itn7gXrMgPPy?= =?iso-8859-1?Q?8Ay7ROyU+l9Q3PlABx9y6PatIyJx9RrV4eKwxOHbEOy6WwHyTvnzkCP/y8?= =?iso-8859-1?Q?HH0ua/K89E2OE8EmI+uKDIDtxV7Q6f1Gt5fAq0KaaqjuXHfAteo3ECiqw?= =?iso-8859-1?Q?=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09583628E0 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(396003)(136003)(376002)(346002)(39850400004)(199004)(189003)(102836004)(5660300002)(3846002)(14444005)(8936002)(6116002)(5640700003)(256004)(6666004)(6506007)(386003)(1076003)(71200400001)(71190400001)(14454004)(6512007)(6436002)(81166006)(2351001)(81156014)(1730700003)(6346003)(50226002)(26005)(6916009)(107886003)(2906002)(99286004)(86362001)(2501003)(486006)(2616005)(4326008)(11346002)(54906003)(66066001)(316002)(476003)(446003)(53936002)(68736007)(52116002)(7736002)(6486002)(8676002)(478600001)(106356001)(305945005)(105586002)(25786009)(186003)(36756003)(76176011)(97736004)(14583001)(473944003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR05MB4343;H:AM6PR05MB5240.eurprd05.prod.outlook.com;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) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: G+tdxe1y6yp4X+91FB0u3yyDSutXJ7ow0bino1idx+L33f94QoVG+4upFDYAdfxuZ2PUbi2URw1yOv+PTkgY2mfCKcOEi8knH3uumuv0wyA3UBF1dvxQKuMMyPlQBjvQSgejNhu3jrhimJENUokDujXSRDPdRP/ex9tTcOjk9CfnMj154fRqmqXZQ+xr5Tp6+H/9rVTBC9Tj8zv9C7Bna6E1zFlbe+rO6UjM0d6FJgte8BgRer6wKAaPfnQtyV+KhZ/ZKbeU5Cv2v68kwuWDNHjJQumh+b5nhh698hPpswhQkNs5M8PduS+nmqsmq8Qq9E8TNMzH9l80Wi4iUR4qyPLQX8SbcNPMPNBbygMrwbGLZugM/+OaSbYLeTQnG17UhgJGKlQttttRaa4tTWc3MEB+nUBc5MPfEVTU1vxTGZc= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 558da13e-de63-4770-4d0b-08d69a23d148 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2019 06:46:34.0649 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB4343 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Do insertions and removal of filters during rehash in higher volumes. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel --- .../drivers/net/mlxsw/spectrum-2/tc_flower.sh | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) diff --git a/tools/testing/selftests/drivers/net/mlxsw/spectrum-2/tc_flower= .sh b/tools/testing/selftests/drivers/net/mlxsw/spectrum-2/tc_flower.sh index f454b3c3601f..a372b2f60874 100755 --- a/tools/testing/selftests/drivers/net/mlxsw/spectrum-2/tc_flower.sh +++ b/tools/testing/selftests/drivers/net/mlxsw/spectrum-2/tc_flower.sh @@ -644,6 +644,172 @@ delta_simple_ipv6_rehash_test() log_test "delta simple IPv6 rehash test ($tcflags)" } =20 +TEST_RULE_BASE=3D256 +declare -a test_rules_inserted + +test_rule_add() +{ + local iface=3D$1 + local tcflags=3D$2 + local index=3D$3 + + if ! [ ${test_rules_inserted[$index]} ] ; then + test_rules_inserted[$index]=3Dfalse + fi + if ${test_rules_inserted[$index]} ; then + return + fi + + local number=3D$(( $index + $TEST_RULE_BASE )) + printf -v hexnumber '%x' $number + + batch=3D"${batch}filter add dev $iface ingress protocol ipv6 pref 1 \ + handle $number flower $tcflags \ + src_ip 2001:db8:1::$hexnumber action drop\n" + test_rules_inserted[$index]=3Dtrue +} + +test_rule_del() +{ + local iface=3D$1 + local index=3D$2 + + if ! [ ${test_rules_inserted[$index]} ] ; then + test_rules_inserted[$index]=3Dfalse + fi + if ! ${test_rules_inserted[$index]} ; then + return + fi + + local number=3D$(( $index + $TEST_RULE_BASE )) + printf -v hexnumber '%x' $number + + batch=3D"${batch}filter del dev $iface ingress protocol ipv6 pref 1 \ + handle $number flower\n" + test_rules_inserted[$index]=3Dfalse +} + +test_rule_add_or_remove() +{ + local iface=3D$1 + local tcflags=3D$2 + local index=3D$3 + + if ! [ ${test_rules_inserted[$index]} ] ; then + test_rules_inserted[$index]=3Dfalse + fi + if ${test_rules_inserted[$index]} ; then + test_rule_del $iface $index + else + test_rule_add $iface $tcflags $index + fi +} + +test_rule_add_or_remove_random_batch() +{ + local iface=3D$1 + local tcflags=3D$2 + local total_count=3D$3 + local skip=3D0 + local count=3D0 + local MAXSKIP=3D20 + local MAXCOUNT=3D20 + + for ((i=3D1;i<=3Dtotal_count;i++)); do + if (( $skip =3D=3D 0 )) && (($count =3D=3D 0)); then + ((skip=3D$RANDOM % $MAXSKIP + 1)) + ((count=3D$RANDOM % $MAXCOUNT + 1)) + fi + if (( $skip !=3D 0 )); then + ((skip-=3D1)) + else + ((count-=3D1)) + test_rule_add_or_remove $iface $tcflags $i + fi + done +} + +delta_massive_ipv6_rehash_test() +{ + RET=3D0 + + if [[ "$tcflags" !=3D "skip_sw" ]]; then + return 0; + fi + + devlink dev param set $DEVLINK_DEV \ + name acl_region_rehash_interval cmode runtime value 0 + check_err $? "Failed to set ACL region rehash interval" + + tp_record_all mlxsw:mlxsw_sp_acl_tcam_vregion_rehash 7 + tp_check_hits_any mlxsw:mlxsw_sp_acl_tcam_vregion_rehash + check_fail $? "Rehash trace was hit even when rehash should be disabled" + + RANDOM=3D4432897 + declare batch=3D"" + test_rule_add_or_remove_random_batch $h2 $tcflags 5000 + + echo -n -e $batch | tc -b - + + declare batch=3D"" + test_rule_add_or_remove_random_batch $h2 $tcflags 5000 + + devlink dev param set $DEVLINK_DEV \ + name acl_region_rehash_interval cmode runtime value 3000 + check_err $? "Failed to set ACL region rehash interval" + + sleep 1 + + tc filter add dev $h2 ingress protocol ipv6 pref 1 handle 101 flower \ + $tcflags dst_ip 2001:db8:1::0/121 action drop + tc filter add dev $h2 ingress protocol ipv6 pref 2 handle 102 flower \ + $tcflags dst_ip 2001:db8:2::2 action drop + tc filter add dev $h2 ingress protocol ipv6 pref 3 handle 103 flower \ + $tcflags dst_ip 2001:db8:3::0/120 action drop + + $MZ $h1 -6 -c 1 -p 64 -a $h1mac -b $h2mac \ + -A 2001:db8:2::1 -B 2001:db8:2::2 -t udp -q + + tc_check_packets "dev $h2 ingress" 101 1 + check_fail $? "Matched a wrong filter" + + tc_check_packets "dev $h2 ingress" 103 1 + check_fail $? "Matched a wrong filter" + + tc_check_packets "dev $h2 ingress" 102 1 + check_err $? "Did not match on correct filter" + + echo -n -e $batch | tc -b - + + devlink dev param set $DEVLINK_DEV \ + name acl_region_rehash_interval cmode runtime value 0 + check_err $? "Failed to set ACL region rehash interval" + + $MZ $h1 -6 -c 1 -p 64 -a $h1mac -b $h2mac \ + -A 2001:db8:2::1 -B 2001:db8:2::2 -t udp -q + + tc_check_packets "dev $h2 ingress" 101 1 + check_fail $? "Matched a wrong filter after rehash" + + tc_check_packets "dev $h2 ingress" 103 1 + check_fail $? "Matched a wrong filter after rehash" + + tc_check_packets "dev $h2 ingress" 102 2 + check_err $? "Did not match on correct filter after rehash" + + tc filter del dev $h2 ingress protocol ipv6 pref 3 handle 103 flower + tc filter del dev $h2 ingress protocol ipv6 pref 2 handle 102 flower + tc filter del dev $h2 ingress protocol ipv6 pref 1 handle 101 flower + + declare batch=3D"" + for i in {1..5000}; do + test_rule_del $h2 $tcflags $i + done + echo -e $batch | tc -b - + + log_test "delta massive IPv6 rehash test ($tcflags)" +} + bloom_simple_test() { # Bloom filter requires that the eRP table is used. This test --=20 2.20.1