From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9A6ACA0C45; Mon, 6 Dec 2021 03:25:53 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5B5CD4013F; Mon, 6 Dec 2021 03:25:53 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id F024040040 for ; Mon, 6 Dec 2021 03:25:50 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10189"; a="224485767" X-IronPort-AV: E=Sophos;i="5.87,290,1631602800"; d="scan'208";a="224485767" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Dec 2021 18:25:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,290,1631602800"; d="scan'208";a="514548160" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga008.jf.intel.com with ESMTP; 05 Dec 2021 18:25:49 -0800 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sun, 5 Dec 2021 18:25:49 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Sun, 5 Dec 2021 18:25:49 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.107) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Sun, 5 Dec 2021 18:25:49 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eZRi9EkxB3pRkRb2BtmySEWlJ0xFgWKGidLs/x0h1+NcWDQpd8+Vlz6BQjTGGN0/H/gaurMhgGX0fK8I44yMQPJGE2+Ot3K1lowZZg3lgEq+bEHH765TawJ2t1ZA760vtQ65z/tmWKxktHvpUZHSNE8i1Y0a2d4lyhtgyzSvoVMgoO4E0ekCPwutzt73x5+VpjB4lxsqMMrdO9NXG6Qk2NbPKXXlqXSc9EspmKyevwnMZrCeFxqDiHf2AmYKSYLMocphe7L6Z5o7yPL9jTaIgh7StKO/AdW0zRPkH+Jt2kpBna9ewXh/5pbGQdVJI5XlkuERK8l5XA0tD/P2ELQepw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ktTclb3wY/Hgd173zVAlkaF1woVNn8kLRUcJNZo1gVA=; b=W4+QDbQ10Q2TpHgb2CDlAYRRXvggaOGJjSongg9zLIRj+N59/Aq2JylzZlQkSKM0rQTYpmhunFlVQOAHgQys3omUrHyLIXx+aU5VMoRwtg26Hm1z308H5WiXPhF9IiVZdfsk1EIIFQf+nFbyvkwailuZhfhjb2LOTv2URb0t6RJIZTzpUaAut1RnX+E2UKcfsAmTTlbJ1zi0OiyxkCHuClvqt5oLzq5fvUVTYcGLBe0QovXa7Ot8H4DUqXYW7a5hxuSBMbL6oNAwDXmiEhLV/Kl8V77HUskevsXHBZiqI5f2Lxo4CdhfSbyq6y5xLdKxe0MPEoQ206aD7UyZrURY9Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ktTclb3wY/Hgd173zVAlkaF1woVNn8kLRUcJNZo1gVA=; b=zuseTTHe4B9HUGAh79TCvtrj6mmsA/hQ++3ExRgVSZTYTXNxloZEHMBnpjGg+JD8wxOHy2pTesqL7IB8IArOM62YAymC9ElXHLU0x84XrXjRK3pohguF6Ue7rh0gSk5GqTpBA4pGrxNbgy0TXxTyYbSBWNM03sKv86z+94TnIvk= Received: from CO1PR11MB5058.namprd11.prod.outlook.com (2603:10b6:303:99::17) by MWHPR1101MB2320.namprd11.prod.outlook.com (2603:10b6:301:53::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11; Mon, 6 Dec 2021 02:25:47 +0000 Received: from CO1PR11MB5058.namprd11.prod.outlook.com ([fe80::14a8:d84e:f761:8ea0]) by CO1PR11MB5058.namprd11.prod.outlook.com ([fe80::14a8:d84e:f761:8ea0%7]) with mapi id 15.20.4755.021; Mon, 6 Dec 2021 02:25:47 +0000 From: "Peng, Yuan" To: "Xia, YanX" , "dts@dpdk.org" Subject: RE: [dts][PATCH V3 3/3] tests/fortville_rss_granularity_config: delete the suite Thread-Topic: [dts][PATCH V3 3/3] tests/fortville_rss_granularity_config: delete the suite Thread-Index: AQHX5yrwbx0f3r4SvEudRfkGujpjQawkwq9g Date: Mon, 6 Dec 2021 02:25:47 +0000 Message-ID: References: <20211202111453.146572-1-yanx.xia@intel.com> <20211202111453.146572-3-yanx.xia@intel.com> In-Reply-To: <20211202111453.146572-3-yanx.xia@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a3339e52-f814-4533-8413-08d9b85fb684 x-ms-traffictypediagnostic: MWHPR1101MB2320: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:232; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VyUb63Z/rb9A1o0rFW+E35bMRpdJvOEWO03K43iobiU79JL9Y12tn3xuqR3W/4MxXao/O6UegDgqbFGVVBBF4S5DQYEqoGqmIjtGOFzdBgfMA9Z+CPgToRtWgXEiY8CfK1M+hxJ8gTAObm5d/jE+n+6mg6ilOc5OWWAnBOffKAJS1+0x6blgfPsY7fKdoQdbUkxnlr0j38iBSd/oYH39F2T6tgX82z59ZGedfMJPqgq++5bIJOqK6vLH4BRKhoQ6uraObWD1/JGpAvB7V0J1Xi66WbEcipYiVEnQ/jtNVLCBAr+fr3vfCKLVxj+xnYTtJZpyeH/AoJTM/bhyBjmfyFcweAnobFyxI7iArtrWfbNqyxDQ/Ew3CKatU4+CCxRjCegTwtsntnMfO1i8/USjFvYZ/02W7dnmsiqDYZTdHebFgeynjx0DhpOmHmBkBDhqRmFa8qj1RucSbSdvPwiqAsSqMLRL4sqKAdwP/FFHBq4q5/dOcEjAuoCCkQlFJarOtHN89qgnpBLCviI1l3MsD27J3pyVs17S3EeOlB4N4wpi+S/3JKFKnhMtqI4ogIUtt5bjSqnMIJM+sH7JW2wd/JSo11P8OayBVpSrUGTXr73OpAi+aGnheOE8E5+XqTWZnjSP8F04no1ArzkaQO68q/1+V4Ld+09+/aUVw/2Uet8Yo0wSPe39O7NVpylzHkVMawADK6RYev7fXAK+CtD/Sg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR11MB5058.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(83380400001)(66446008)(64756008)(66556008)(66476007)(82960400001)(38070700005)(5660300002)(26005)(86362001)(33656002)(9686003)(52536014)(508600001)(2906002)(76116006)(66946007)(186003)(53546011)(38100700002)(7696005)(71200400001)(110136005)(122000001)(30864003)(6506007)(8936002)(55016003)(8676002)(316002)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?S4hBivL8IVpWbylg1bGJGK4qMuRJjH1L0j8YLx/Ytu2AXVzCjEAil6FppDvT?= =?us-ascii?Q?h65FrhR62tU+vfUoynMtMLe2pRnMbWmREr+XFd+SrwaPa6mqhhXaCOlOA5V8?= =?us-ascii?Q?RW+GCXW3MOHgdDHpJvwN2J3eSb/twJg9arn4NmLBO5JgGdUGBiaGBOUvchnZ?= =?us-ascii?Q?Wpezcm1D2qxxyEZVb9OIG7GPaMwjCNbYwgVdCc7kfudfAfk2xNDAgappEaFg?= =?us-ascii?Q?WyVOY68ZGR4DKtIoVXKNyGyqPYSxtrsX2FDkIiWZE5Q9/xzrIrcCUsXaEwVm?= =?us-ascii?Q?ilYb9XdXGgwWoqh00YMblaFcmCxR5oks4LM6l/J3J+PYnqC1PnIcUHR4yK/w?= =?us-ascii?Q?XDEENb32DclmL3Z+TF/YElilTkYDV2eRWPt8AnqDF/arFCOV92J6Vb2BEBL7?= =?us-ascii?Q?BkL4oZ4vsjEW0NjdZWgKpAqJIzsipezCRXeatsMrl0Gy5A9lFMHznWkLXmV4?= =?us-ascii?Q?TbTcdQ6PLbJTmfc3NUmsh90YPnx1UwOJ9YulBn/80X/bKffLWjKdGGlh9eBy?= =?us-ascii?Q?6YrNseaHX2WvbEWFfr50Qgr67CmPVCCSt41D3ZEDsEsPn7lO+HCBkFwIrT1r?= =?us-ascii?Q?uEandNUr3YM9wadJoj6gFUTkiZMCkMMuLE9bARyi/L8+OFOb9bQKZuPfFFWp?= =?us-ascii?Q?7V626fhQXZfqb0t2kNRkpjwZRRun/XZ4ubTnHZACyARHAvcwMTIFrSfrLMpf?= =?us-ascii?Q?7+OEFTomPYGDKUpfGL55hTEcXI47gxwPlAGK6tXQTmghPrxx4DexBCEVN/OK?= =?us-ascii?Q?4R9mzdko4WsrzYzeTs3oW9oUB8LcJYc3otvzM4I61eeOf11kikHwIpLf287y?= =?us-ascii?Q?9FVjcmXPdpM8LtgAzLX/FAw9kFK/wf1JXSnAAXVLOC+1zgT5Zu/vSuy0JuMn?= =?us-ascii?Q?7OkfSRBBfAWxqA3pV8/4u4JGQNEQe7hNEK0H8EXzHpYeFAuV2f0twwzPi9tS?= =?us-ascii?Q?MMFV1kTdz86mQz1vnMnubgXN8f4e5eKrjsWtXmdVAK/WNoo3OPAJF2WSBWC7?= =?us-ascii?Q?o40mm98/BbygLzbVSp817AO+bYX7gXgTJ9cJUrRZbXdvuVbPAepR+/JPwXXR?= =?us-ascii?Q?mfLtq9+Bs8lhvfPPC7S7Wo2GdkUmW5ALYH9UolhtqdKki7eqfRO4+JMCiCsE?= =?us-ascii?Q?TFqWYC9/+dSR1+IbEp6pW8YUR6UysQvMKxSTSmzQ1e4gb0iIcOhJcIOokahC?= =?us-ascii?Q?Ywkx/dPTdQpcgLzY+rT4klFmhCeRM6bbfO58qhyTSZURng3FD/OaXkWqOcY2?= =?us-ascii?Q?mMVqw0ZSASKTDgb9J441bhyKZSMNXn2PmS3gAvOQ65gVoT9AryJszqotOOWK?= =?us-ascii?Q?CPw3jhlsGqxlc4sMg4zWtUnzIWe2/yHxAO5WFZWHhk6vWH0pXq0zJCDttIzY?= =?us-ascii?Q?glI87RXHgGQIInF8M3Dg0b06Q+gylOK/k1N7LlPQnwTFiQzGLTLU08kf7sx3?= =?us-ascii?Q?Sddw4Myo5sd4rAQIqNNn5WYoCFm14wVLLR8Rd9vC/Q5YEgUoN95pBlNci/nI?= =?us-ascii?Q?FylJ2et3RIDk2xXH0867NtjYuq9Ja6ybGEWdvFDwXUBbyon6FzQXqmNYUfgZ?= =?us-ascii?Q?Lp95falN3Yyi9OKMa1SS2RQkpD/vsS3j8VC6olr4XAi1gUQgoFeIZsq7JBUm?= =?us-ascii?Q?Tw=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB5058.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3339e52-f814-4533-8413-08d9b85fb684 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Dec 2021 02:25:47.1485 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dcxqZAG/L7qeSJH7yb5+jAvhKCp58EFXRhLDSf+SwG0MBoQqI12R+CqAU4dexeyw84Dziph+hPFz6pQsiO74QA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2320 X-OriginatorOrg: intel.com X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Acked-by Peng, Yuan -----Original Message----- From: Yan Xia =20 Sent: Thursday, December 2, 2021 7:15 PM To: dts@dpdk.org Cc: Xia, YanX Subject: [dts][PATCH V3 3/3] tests/fortville_rss_granularity_config: delete= the suite delete fortville_rss_granularity_config testsuite dpdk commit id: 81db321da= ethdev: remove legacy HASH filter type support Signed-off-by: Yan Xia --- ...tSuite_fortville_rss_granularity_config.py | 563 ------------------ 1 file changed, 563 deletions(-) delete mode 100644 tests/TestSuite_fortville_rss_granularity_config.py diff --git a/tests/TestSuite_fortville_rss_granularity_config.py b/tests/Te= stSuite_fortville_rss_granularity_config.py deleted file mode 100644 index b397cf37..00000000 --- a/tests/TestSuite_fortville_rss_granularity_config.py +++ /dev/null @@ -1,563 +0,0 @@ -# BSD LICENSE -# -# Copyright(c) 2010-2014 Intel Corporation. All rights reserved. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# mo= dification, are permitted provided that the following conditions -# are met= : -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Intel Corporation nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "= AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED= TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICU= LAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CON= TRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMP= LARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREME= NT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BU= SINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHET= HER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHE= RWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVIS= ED OF THE POSSIBILITY OF SUCH DAMAGE. - -""" -DPDK Test suite. - -Test DPDK2.3 feature: -1.Fortville support granularity configuration of RSS. -By default Fortville uses hash input set preloaded from NVM image which in= cludes all fields -- IPv4/v6+TCP/UDP port. Potential problem for this is global configuration= per device and can -affect all ports. It is required that hash input set c= an be configurable, such as using IPv4 -only or IPv6 only or IPv4/v6+TCP/U= DP. - -2.Fortville support 32-bit GRE keys. -By default Fortville extracts only 24 bits of GRE key to FieldVector (NVGR= E use case) but -for Telco use cases full 32-bit GRE key is needed. It is r= equired that both 24-bit and 32-bit -keys for GRE should be supported. the = test plan is to test the API to switch between 24-bit and -32-bit keys - -Support 4*10G, 1*40G and 2*40G NICs. -""" -import random -import re -import time - -import framework.dut as dut -import framework.utils as utils -from framework.pmd_output import PmdOutput - -testQueues =3D [16] -reta_entries =3D [] -reta_lines =3D [] - -# Use scapy to send packets with different source and dest ip. -# and collect the hash result of five tuple and the queue id. -from framework.test_case import TestCase - -# -# -# Test class. -# - - -class TestFortvilleRssGranularityConfig(TestCase): - # - # - # Utility methods and other non-test code. - # - - def set_up_all(self): - """ - Run at the start of each test suite. - """ - - self.verify(self.nic in ["fortville_eagle", "fortville_spirit", - "fortville_spirit_single", "fortville_25g", "carlsvill= e"], - "NIC Unsupported: " + str(self.nic)) - ports =3D self.dut.get_ports(self.nic) - self.verify(len(ports) >=3D 1, "Not enough ports available") - dutPorts =3D self.dut.get_ports(self.nic) - localPort =3D self.tester.get_local_port(dutPorts[0]) - self.itf =3D self.tester.get_interface(localPort) - self.pmdout =3D PmdOutput(self.dut) - - def set_up(self): - """ - Run before each test case. - """ - global reta_lines - reta_lines =3D [] - - def send_packet(self, itf, tran_type): - """ - Sends packets. - """ - global reta_lines - self.tester.scapy_foreground() - self.dut.send_expect("start", "testpmd>") - mac =3D self.dut.get_mac_address(0) - - # send packet with different source and dest ip - if tran_type =3D=3D "ipv4-other": - packet =3D r'sendp([Ether(dst=3D"%s", src=3Dget_if_hwaddr("%s"= ))/IP(src=3D"192.168.0.1", dst=3D"192.168.0.2", proto=3D47)/GRE(key_present= =3D1,proto=3D2048,key=3D67108863)/IP()], iface=3D"%s")' % ( - mac, itf, itf) - self.tester.scapy_append(packet) - self.tester.scapy_execute() - time.sleep(.5) - elif tran_type =3D=3D "ipv4-tcp": - packet =3D r'sendp([Ether(dst=3D"%s", src=3Dget_if_hwaddr("%s"= ))/IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D1024,dport=3D10= 25)], iface=3D"%s")' % ( - mac, itf, itf) - self.tester.scapy_append(packet) - self.tester.scapy_execute() - time.sleep(.5) - elif tran_type =3D=3D "ipv4-udp": - packet =3D r'sendp([Ether(dst=3D"%s", src=3Dget_if_hwaddr("%s"= ))/IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D1024,dport=3D10= 25)], iface=3D"%s")' % ( - mac, itf, itf) - self.tester.scapy_append(packet) - self.tester.scapy_execute() - time.sleep(.5) - elif tran_type =3D=3D "l2_payload": - packet =3D r'sendp([Ether(dst=3D"%s", src=3Dget_if_hwaddr("%s"= ))/Dot1Q(id=3D0x8100,vlan=3D1)/Dot1Q(id=3D0x8100,vlan=3D2)], iface=3D"%s")'= % ( - mac, itf, itf) - self.tester.scapy_append(packet) - self.tester.scapy_execute() - time.sleep(.5) - elif tran_type =3D=3D "ipv6-tcp": - packet =3D r'sendp([Ether(dst=3D"%s", src=3Dget_if_hwaddr("%s"= ))/IPv6(src=3D"3ffe:2501:200:1fff::1", dst=3D"3ffe:2501:200:3::2")/TCP(spor= t=3D1024,dport=3D1025)], iface=3D"%s")' % ( - mac, itf, itf) - self.tester.scapy_append(packet) - self.tester.scapy_execute() - time.sleep(.5) - elif tran_type =3D=3D "ipv6-udp": - packet =3D r'sendp([Ether(dst=3D"%s", src=3Dget_if_hwaddr("%s"= ))/IPv6(src=3D"3ffe:2501:200:1fff::1", dst=3D"3ffe:2501:200:3::2")/UDP(spor= t=3D1024,dport=3D1025)], iface=3D"%s")' % ( - mac, itf, itf) - self.tester.scapy_append(packet) - self.tester.scapy_execute() - time.sleep(.5) - else: - print("\ntran_type error!\n") - - out =3D self.dut.get_session_output(timeout=3D1) - self.dut.send_expect("stop", "testpmd>") - lines =3D out.split("\r\n") - reta_line =3D {} - # collect the hash result and the queue id - for line in lines: - line =3D line.strip() - if len(line) !=3D 0 and line.strip().startswith("port "): - reta_line =3D {} - rexp =3D r"port (\d)/queue (\d{1,2}): received (\d) packet= s" - m =3D re.match(rexp, line.strip()) - if m: - reta_line["port"] =3D m.group(1) - reta_line["queue"] =3D m.group(2) - - elif len(line) !=3D 0 and line.startswith(("src=3D",)): - for item in line.split("-"): - item =3D item.strip() - if(item.startswith("RSS hash")): - name, value =3D item.split("=3D", 1) - - reta_line[name.strip()] =3D value.strip() - reta_lines.append(reta_line) - - self.append_result_table() - - def append_result_table(self): - """ - Append the hash value and queue id into table. - """ - - global reta_lines - - # append the the hash value and queue id into table - self.result_table_create( - ['packet index', 'hash value', 'hash index', 'queue id']) - i =3D 0 - - for tmp_reta_line in reta_lines: - - # compute the hash result of five tuple into the 7 LSBs value. - hash_index =3D int(tmp_reta_line["RSS hash"], 16) - self.result_table_add( - [i, tmp_reta_line["RSS hash"], hash_index, tmp_reta_line["= queue"]]) - i =3D i + 1 - - def test_ipv4_tcp(self): - """ - Test with flow type ipv4-tcp. - """ - flag =3D 1 - - # test with different rss queues - for queue in testQueues: - self.pmdout.start_testpmd( - "Default", " --portmask=3D0x1 --rxq=3D%d --txq=3D%d" % (q= ueue, queue)) - self.dut.send_expect("set verbose 8", "testpmd> ") - self.dut.send_expect("set fwd rxonly", "testpmd> ") - - self.dut.send_expect("port stop all", "testpmd> ") - self.dut.send_expect( - "set_hash_global_config 0 toeplitz ipv4-tcp enable", "tes= tpmd> ") - self.dut.send_expect("port start all", "testpmd> ") - res =3D self.pmdout.wait_link_status_up("all") - self.verify(res is True, "link is donw") - - self.dut.send_expect( - "port config all rss tcp", "testpmd> ") - self.send_packet(self.itf, "ipv4-tcp") - - # set hash input set to "none" by testpmd on dut - self.dut.send_expect("set_hash_input_set 0 ipv4-tcp none selec= t", "testpmd> ") - self.send_packet(self.itf, "ipv4-tcp") - - # set hash input set by testpmd on dut, enable src-ipv4 & dst-= ipv4 - self.dut.send_expect("set_hash_input_set 0 ipv4-tcp src-ipv4 a= dd", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv4-tcp dst-ipv4 a= dd", "testpmd> ") - self.send_packet(self.itf, "ipv4-tcp") - - # set hash input set by testpmd on dut, enable src-ipv4, dst-i= pv4, tcp-src-port, tcp-dst-port - self.dut.send_expect("set_hash_input_set 0 ipv4-tcp tcp-src-po= rt add", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv4-tcp tcp-dst-po= rt add", "testpmd> ") - self.send_packet(self.itf, "ipv4-tcp") - - # set hash input set by testpmd on dut, enable tcp-src-port, t= cp-dst-port - self.dut.send_expect("set_hash_input_set 0 ipv4-tcp none selec= t", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv4-tcp tcp-src-po= rt add", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv4-tcp tcp-dst-po= rt add", "testpmd> ") - self.send_packet(self.itf, "ipv4-tcp") - - self.dut.send_expect("quit", "# ", 30) - - self.result_table_print() - result_rows =3D self.result_table_getrows() - self.verify(len(result_rows) > 1, "There is no data in the table, = testcase failed!") - - if ((result_rows[1][1] =3D=3D result_rows[2][1]) or (result_rows[1= ][3] =3D=3D result_rows[2][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] =3D=3D result_rows[3][1]) or (result_rows= [1][3] =3D=3D result_rows[3][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[2][1] =3D=3D result_rows[3][1]) or (result_rows= [2][3] =3D=3D result_rows[3][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] =3D=3D result_rows[5][1]) or (result_rows= [1][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[2][1] =3D=3D result_rows[5][1]) or (result_rows= [2][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[3][1] =3D=3D result_rows[5][1]) or (result_rows= [3][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] !=3D result_rows[4][1]) or (result_rows[1= ][3] !=3D result_rows[4][3])): - flag =3D 0 - self.verify(flag, "The two hash values are different, rss_gran= ularity_config failed!") - - def test_ipv4_udp(self): - """ - Test with flow type ipv4-udp. - """ - flag =3D 1 - - # test with different rss queues - for queue in testQueues: - self.pmdout.start_testpmd( - "Default", " --portmask=3D0x1 --rxq=3D%d --txq=3D%d" % (q= ueue, queue)) - - self.dut.send_expect("set verbose 8", "testpmd> ") - self.dut.send_expect("set fwd rxonly", "testpmd> ") - - self.dut.send_expect("port stop all", "testpmd> ") - self.dut.send_expect( - "set_hash_global_config 0 toeplitz ipv4-udp enable", "tes= tpmd> ") - self.dut.send_expect("port start all", "testpmd> ") - res =3D self.pmdout.wait_link_status_up("all") - self.verify(res is True, "link is donw") - - self.dut.send_expect( - "port config all rss udp", "testpmd> ") - self.send_packet(self.itf, "ipv4-udp") - - # set hash input set to "none" by testpmd on dut - self.dut.send_expect("set_hash_input_set 0 ipv4-udp none selec= t", "testpmd> ") - self.send_packet(self.itf, "ipv4-udp") - - # set hash input set by testpmd on dut, enable src-ipv4 & dst-= ipv4 - self.dut.send_expect("set_hash_input_set 0 ipv4-udp src-ipv4 a= dd", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv4-udp dst-ipv4 a= dd", "testpmd> ") - self.send_packet(self.itf, "ipv4-udp") - - # set hash input set by testpmd on dut, enable src-ipv4, dst-i= pv4, udp-src-port, udp-dst-port - self.dut.send_expect("set_hash_input_set 0 ipv4-udp udp-src-po= rt add", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv4-udp udp-dst-po= rt add", "testpmd> ") - self.send_packet(self.itf, "ipv4-udp") - - # set hash input set by testpmd on dut, enable udp-src-port, u= dp-dst-port - self.dut.send_expect("set_hash_input_set 0 ipv4-udp none selec= t", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv4-udp udp-src-po= rt add", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv4-udp udp-dst-po= rt add", "testpmd> ") - self.send_packet(self.itf, "ipv4-udp") - - self.dut.send_expect("quit", "# ", 30) - - self.result_table_print() - result_rows =3D self.result_table_getrows() - self.verify(len(result_rows) > 1, "There is no data in the table, = testcase failed!") - - # check the results - if ((result_rows[1][1] =3D=3D result_rows[2][1])or(result_rows[1][= 3] =3D=3D result_rows[2][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] =3D=3D result_rows[3][1])or(result_rows[1= ][3] =3D=3D result_rows[3][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[2][1] =3D=3D result_rows[3][1])or(result_rows[2= ][3] =3D=3D result_rows[3][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] =3D=3D result_rows[5][1])or(result_rows[1= ][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[2][1] =3D=3D result_rows[5][1])or(result_rows[2= ][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[3][1] =3D=3D result_rows[5][1])or(result_rows[3= ][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] !=3D result_rows[4][1])or(result_rows[1][= 3] !=3D result_rows[4][3])): - flag =3D 0 - self.verify(flag, "The two hash values are different, rss_gran= ularity_config failed!") - - def test_ipv6_tcp(self): - """ - Test with flow type ipv6-tcp. - """ - flag =3D 1 - - # test with different rss queues - for queue in testQueues: - self.pmdout.start_testpmd( - "Default", " --portmask=3D0x1 --rxq=3D%d --txq=3D%d" % (q= ueue, queue)) - - self.dut.send_expect("set verbose 8", "testpmd> ") - self.dut.send_expect("set fwd rxonly", "testpmd> ") - - self.dut.send_expect("port stop all", "testpmd> ") - self.dut.send_expect( - "set_hash_global_config 0 toeplitz ipv6-tcp enable", "tes= tpmd> ") - self.dut.send_expect("port start all", "testpmd> ") - res =3D self.pmdout.wait_link_status_up("all") - self.verify(res is True, "link is donw") - - self.dut.send_expect( - "port config all rss tcp", "testpmd> ") - self.send_packet(self.itf, "ipv6-tcp") - - # set hash input set to "none" by testpmd on dut - self.dut.send_expect("set_hash_input_set 0 ipv6-tcp none selec= t", "testpmd> ") - self.send_packet(self.itf, "ipv6-tcp") - - # set hash input set by testpmd on dut, enable src-ipv6 & dst-= ipv6 - self.dut.send_expect("set_hash_input_set 0 ipv6-tcp src-ipv6 a= dd", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv6-tcp dst-ipv6 a= dd", "testpmd> ") - self.send_packet(self.itf, "ipv6-tcp") - - # set hash input set by testpmd on dut, enable src-ipv6, dst-i= pv6, tcp-src-port, tcp-dst-port - self.dut.send_expect("set_hash_input_set 0 ipv6-tcp tcp-src-po= rt add", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv6-tcp tcp-dst-po= rt add", "testpmd> ") - self.send_packet(self.itf, "ipv6-tcp") - - # set hash input set by testpmd on dut, enable tcp-src-port, t= cp-dst-port - self.dut.send_expect("set_hash_input_set 0 ipv6-tcp none selec= t", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv6-tcp tcp-src-po= rt add", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv6-tcp tcp-dst-po= rt add", "testpmd> ") - self.send_packet(self.itf, "ipv6-tcp") - - self.dut.send_expect("quit", "# ", 30) - - self.result_table_print() - result_rows =3D self.result_table_getrows() - self.verify(len(result_rows) > 1, "There is no data in the table, = testcase failed!") - - # check the results - if ((result_rows[1][1] =3D=3D result_rows[2][1])or(result_rows[1][= 3] =3D=3D result_rows[2][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] =3D=3D result_rows[3][1])or(result_rows[1= ][3] =3D=3D result_rows[3][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[2][1] =3D=3D result_rows[3][1])or(result_rows[2= ][3] =3D=3D result_rows[3][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] =3D=3D result_rows[5][1])or(result_rows[1= ][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[2][1] =3D=3D result_rows[5][1])or(result_rows[2= ][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[3][1] =3D=3D result_rows[5][1])and(result_rows[= 3][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] !=3D result_rows[4][1])or(result_rows[1][= 3] !=3D result_rows[4][3])): - flag =3D 0 - self.verify(flag, "The two hash values are different, rss_gran= ularity_config failed!") - - def test_ipv6_udp(self): - """ - Test with flow type ipv6-udp. - """ - flag =3D 1 - - # test with different rss queues - for queue in testQueues: - self.pmdout.start_testpmd( - "Default", " --portmask=3D0x1 --rxq=3D%d --txq=3D%d" % (q= ueue, queue)) - - self.dut.send_expect("set verbose 8", "testpmd> ") - self.dut.send_expect("set fwd rxonly", "testpmd> ") - - self.dut.send_expect("port stop all", "testpmd> ") - self.dut.send_expect( - "set_hash_global_config 0 toeplitz ipv6-udp enable", "tes= tpmd> ") - self.dut.send_expect("port start all", "testpmd> ") - res =3D self.pmdout.wait_link_status_up("all") - self.verify(res is True, "link is donw") - - self.dut.send_expect( - "port config all rss udp", "testpmd> ") - self.send_packet(self.itf, "ipv6-udp") - - # set hash input set to "none" by testpmd on dut - self.dut.send_expect("set_hash_input_set 0 ipv6-udp none selec= t", "testpmd> ") - self.send_packet(self.itf, "ipv6-udp") - - # set hash input set by testpmd on dut, enable src-ipv6 & dst-= ipv6 - self.dut.send_expect("set_hash_input_set 0 ipv6-udp src-ipv6 a= dd", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv6-udp dst-ipv6 a= dd", "testpmd> ") - self.send_packet(self.itf, "ipv6-udp") - - # set hash input set by testpmd on dut, enable src-ipv6, dst-i= pv6, udp-src-port, udp-dst-port - self.dut.send_expect("set_hash_input_set 0 ipv6-udp udp-src-po= rt add", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv6-udp udp-dst-po= rt add", "testpmd> ") - self.send_packet(self.itf, "ipv6-udp") - - # set hash input set by testpmd on dut, enable udp-src-port, u= dp-dst-port - self.dut.send_expect("set_hash_input_set 0 ipv6-udp none selec= t", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv6-udp udp-src-po= rt add", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv6-udp udp-dst-po= rt add", "testpmd> ") - self.send_packet(self.itf, "ipv6-udp") - - self.dut.send_expect("quit", "# ", 30) - - self.result_table_print() - result_rows =3D self.result_table_getrows() - self.verify(len(result_rows) > 1, "There is no data in the table, = testcase failed!") - - # check the results - if ((result_rows[1][1] =3D=3D result_rows[2][1])or(result_rows[1][= 3] =3D=3D result_rows[2][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] =3D=3D result_rows[3][1])or(result_rows[1= ][3] =3D=3D result_rows[3][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[2][1] =3D=3D result_rows[3][1])or(result_rows[2= ][3] =3D=3D result_rows[3][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] =3D=3D result_rows[5][1])or(result_rows[1= ][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[2][1] =3D=3D result_rows[5][1])or(result_rows[2= ][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[3][1] =3D=3D result_rows[5][1])and(result_rows[= 3][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] !=3D result_rows[4][1])or(result_rows[1][= 3] !=3D result_rows[4][3])): - flag =3D 0 - self.verify(flag, "The two hash values are different, rss_gran= ularity_config failed!") - - def test_GRE_keys(self): - """ - Test with 32-bit GRE keys and 24-bit GRE keys. - """ - flag =3D 1 - - # test with different rss queues - for queue in testQueues: - self.pmdout.start_testpmd( - "Default", " --portmask=3D0x1 --rxq=3D%d --txq=3D%d" % (q= ueue, queue)) - - self.dut.send_expect("set verbose 8", "testpmd> ") - self.dut.send_expect("set fwd rxonly", "testpmd> ") - - self.dut.send_expect("port stop all", "testpmd> ") - self.dut.send_expect( - "set_hash_global_config 0 toeplitz ipv4-other enable", "t= estpmd> ") - self.dut.send_expect("port start all", "testpmd> ") - res =3D self.pmdout.wait_link_status_up("all") - self.verify(res is True, "link is donw") - - self.dut.send_expect( - "port config all rss all", "testpmd> ") - self.send_packet(self.itf, "ipv4-other") - - # set hash input set to "none" by testpmd on dut - self.dut.send_expect("set_hash_input_set 0 ipv4-other none sel= ect", "testpmd> ") - self.send_packet(self.itf, "ipv4-other") - - # set hash input set by testpmd on dut, enable src-ipv4 & dst-= ipv4 - self.dut.send_expect("set_hash_input_set 0 ipv4-other src-ipv4= add", "testpmd> ") - self.dut.send_expect("set_hash_input_set 0 ipv4-other dst-ipv4= add", "testpmd> ") - self.send_packet(self.itf, "ipv4-other") - - # set hash input set by testpmd on dut, enable src-ipv4, dst-i= pv4, gre-key-len 3 - self.dut.send_expect("global_config 0 gre-key-len 3", "testpmd= > ") - self.dut.send_expect("set_hash_input_set 0 ipv4-other gre-key = add", "testpmd> ") - self.send_packet(self.itf, "ipv4-other") - - # set hash input set by testpmd on dut, enable src-ipv4, dst-i= pv4, gre-key-len 4 - self.dut.send_expect("global_config 0 gre-key-len 4", "testpmd= > ") - self.send_packet(self.itf, "ipv4-other") - - self.dut.send_expect("quit", "# ", 30) - - self.result_table_print() - result_rows =3D self.result_table_getrows() - self.verify(len(result_rows) > 1, "There is no data in the table, = testcase failed!") - - # check the results - if ((result_rows[1][1] =3D=3D result_rows[2][1])or(result_rows[1][= 3] =3D=3D result_rows[2][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[1][1] !=3D result_rows[3][1])or(result_rows[1][= 3] !=3D result_rows[3][3])): - flag =3D 0 - self.verify(flag, "The two hash values are different, rss_gran= ularity_config failed!") - elif ((result_rows[1][1] =3D=3D result_rows[4][1])or(result_rows[1= ][3] =3D=3D result_rows[4][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - elif ((result_rows[4][1] =3D=3D result_rows[5][1])or(result_rows[4= ][3] =3D=3D result_rows[5][3])): - flag =3D 0 - self.verify(flag, "The two hash values are the same, rss_granu= larity_config failed!") - - def tear_down(self): - """ - Run after each test case. - """ - self.dut.kill_all() - - def tear_down_all(self): - """ - Run after each test suite. - """ - pass - -- 2.33.1