From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id F2522A04AC; Tue, 1 Sep 2020 05:21:06 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B8D141C0D4; Tue, 1 Sep 2020 05:21:06 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 87A301C0D2 for ; Tue, 1 Sep 2020 05:21:04 +0200 (CEST) IronPort-SDR: RW9j9QlfBU/gGGfe12Siv76ZJ5g5dxVuxB7cvZ8mgGjAfLIYmo1I8Jj+gtp1PFgJsxuhSb7LKn lzXvSng7M8mw== X-IronPort-AV: E=McAfee;i="6000,8403,9730"; a="144842597" X-IronPort-AV: E=Sophos;i="5.76,377,1592895600"; d="scan'208";a="144842597" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2020 20:21:02 -0700 IronPort-SDR: YZM9M60EMcih5F+6lwmXkozR/0v3DtjHqxnOKwrhuJpRL9uDz1YYOfisXWVWqq+6hUHACIE9XT o9gfvt4QfElQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,377,1592895600"; d="scan'208";a="301282387" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by orsmga006.jf.intel.com with ESMTP; 31 Aug 2020 20:21:02 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 31 Aug 2020 20:20:00 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 31 Aug 2020 20:19:59 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 31 Aug 2020 20:19:59 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Mon, 31 Aug 2020 20:19:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kVt8a2pbPmlURXL80uhrPxxdbCZzE0YYP826RTPhhCtl+hjstvUnl1hYE3dF5tNt7bOlnT9bnfFumMz0ccPm9Wsjj7L1Z5BEBK8CRssPUSrMJof3UqRS0+KV+EPqFhxNXXFRcQpxRWwmYjCidl38m8o2e0/cE1U5l9PIa6DKmGKoGxSIOiGQIBsGPj7Jh2w6UfA4i2Y23MVpI/k7lyex3U8d6kR8spGf7CSw5TINAi/ZsGulmFtYdLzNQxIpGywiTLPI479TInJWzcy0we+NjcYOQuEhMIpBa01qHG0ikl0AysXJYl0Fnnc6TduAElLt3uSe1u6juVBkQrd/XvdLiQ== 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-SenderADCheck; bh=0a4whq5MdQ7lEDoASvLQuwP/gTy7y6CN1LfcWL5Z57I=; b=hMUF4+ixpqrO3u6zv0uxAMlu2v9u0hh8q7uDlYf95tpEG760aB3pIwqb13QkCKAQGZAHmDy8zGhmGdocgiR1OPdbvLFryQQJK46gHDORf0XN5gfXBzNPYhVgTiKWqQNgUif+67oLblSuE/CZGroU9/IWjkun6dp8c56NR9Pxdnedc0+Mj0tXOHApTzv3Vaz7lKhg+z03B9UQsij8HHMSoHszI2B9EEpwDniu8nbNflWGiqTiwTaeOpx76ETImDo0SwfXy4LGNWE0UKKJHXqmlPQomTk4w1d0ZEUo/8Lr0tPx/0edgJqfjAwO8q5rE0VM6Licypd/R/fKgf3R6htaqQ== 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=0a4whq5MdQ7lEDoASvLQuwP/gTy7y6CN1LfcWL5Z57I=; b=QnTtScudq4OQ/NJTwll6EsXKpgsyQJgv0zPnsC3fnoexBJRoeJvRJIb5fEfHswfHRZfhGECgWkxM9kPyv6jgJzrn0poaUllsCRzle0XpezvUKiUaODTzpOXiFC8h8UCoPMdfqJlEN+/chAMSHu6WVpej9Y6kQ6T/ZXuozLjfizo= Received: from MWHPR11MB1392.namprd11.prod.outlook.com (2603:10b6:300:24::14) by MWHPR11MB0016.namprd11.prod.outlook.com (2603:10b6:301:63::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3326.23; Tue, 1 Sep 2020 03:19:56 +0000 Received: from MWHPR11MB1392.namprd11.prod.outlook.com ([fe80::8d8b:3526:526f:3d13]) by MWHPR11MB1392.namprd11.prod.outlook.com ([fe80::8d8b:3526:526f:3d13%7]) with mapi id 15.20.3326.025; Tue, 1 Sep 2020 03:19:56 +0000 From: "Fu, Qi" To: "Di, ChenxuX" , "dts@dpdk.org" Thread-Topic: [dts][PATCH v4 2/2] tests: add TestSuite_cvl_rss_configure.py Thread-Index: AQHWgA1fiImvis1c406oRVL/lP3b2qlTHWag Date: Tue, 1 Sep 2020 03:19:56 +0000 Message-ID: References: <20200901023522.49731-1-chenxux.di@intel.com> <20200901023522.49731-2-chenxux.di@intel.com> In-Reply-To: <20200901023522.49731-2-chenxux.di@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.208] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1394b23b-4fc8-40a3-91e4-08d84e25e6fd x-ms-traffictypediagnostic: MWHPR11MB0016: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:381; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Fv463XyXQCMu+9EAbeO2jyWL21T2cjCRFCQq6ur2rvpACZ6wHtKLtXuXAyDNFVCeEHL+ahiAc6Dkke7EcYLImSkjTdIVAa/oaAnJVgUnsUpv4fauPg3km6fPywwCVM3IM3KVcjkhoBXRAlt6MUVbw0ZSJteiq4sfq4F3/f2Nds9YQtXZGBcqd9O3fwz3Li9J5TgunEoel456bASs2gCZRXD8f596C6cgUWZzzQVFCpjZM7Let9HRq9oZlCTtxoaqEV7t8wFaV1pqVPiU9GJpXvd8yIpdK/FiKAsm6I5qllFClJ0B1dXLA7sso1Rx90hDG1vOPwo5WNgSIi0CtdYyxQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR11MB1392.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(396003)(346002)(376002)(39860400002)(55016002)(86362001)(478600001)(5660300002)(26005)(71200400001)(110136005)(186003)(30864003)(52536014)(9686003)(83380400001)(8936002)(8676002)(6506007)(7696005)(53546011)(66946007)(64756008)(76116006)(33656002)(66446008)(66476007)(2906002)(66556008)(316002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: aeoNI+PjJWEs8iTRlCQiDEi4V1Fru1JJyIxn6GldPajSjYCBMP0/53Lx1kX+Dtd/EFW5esLAGvYjm/Ir4ic1mkxxT4ra7sMMMWKkXcD1XMoa9FYTzd1Y+m3VubYRJfzMiMnoDbJmr3kqsw4HpfQeVfa/KBZwK1uQjvy03PuAPzDfZii8jcqorhEtNBCzu2iw5N3vf8DQ7BUTN663ShzDlqYLQcCOrIjseIf6rJ0sCS7/wg3wbKUNDLU0m1cr1NyP+XR4YniQKX5iNJNYkxHR9vWKste8vDqFgerkaDV95710C1GC6/Yi5EygSX5+JKvKL5eGuni144m/Zf+HOXdd7bVc3H1c6P66Q7CLYOXI7cV+0oOySxOIWmpn7/q0NGg7PvoIkwsC6HJrq2hl1C4n6zBFm4HpEtfwBkfIg+5UGI7XO2DExouEdBAKXTvgR0B25yInJGlsexmdteyI4GnWLT/cT7qxN2cEGjhfK6PeeVJZPhzlzmdJcGdvVPSpjngIT4Mqt6IgzysNi5c+ZXo+aOVK8ZPAgcnYQkI6XgRMNLZM+zEtXB0T1k91nrSB7G7f7eUfxlXFjonU5JuEAgSFNcFepamTJeJV312KtL8E0bY3veHzTeGNcIPyB7uG9jsF7Yr/oJiEieWRtfM0CmuwJQ== 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: MWHPR11MB1392.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1394b23b-4fc8-40a3-91e4-08d84e25e6fd X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Sep 2020 03:19:56.7479 (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: OhEJhAk10RNKVLb+b0xp985G3tpSkkwMWkbDQARJp+A+FPAbAmx6qEkOa0/eOILv X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB0016 X-OriginatorOrg: intel.com Subject: Re: [dts] [PATCH v4 2/2] tests: add TestSuite_cvl_rss_configure.py X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 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 Sender: "dts" Acked-by: Fu, Qi Best regards, Fu, Qi > -----Original Message----- > From: Di, ChenxuX > Sent: Tuesday, September 1, 2020 10:35 AM > To: dts@dpdk.org > Cc: Fu, Qi ; Di, ChenxuX > Subject: [dts][PATCH v4 2/2] tests: add TestSuite_cvl_rss_configure.py >=20 > add new test suite for cvl rss configure >=20 > Signed-off-by: Chenxu Di > --- > tests/TestSuite_cvl_rss_configure.py | 283 +++++++++++++++++++++++++++ > 1 file changed, 283 insertions(+) > create mode 100644 tests/TestSuite_cvl_rss_configure.py >=20 > diff --git a/tests/TestSuite_cvl_rss_configure.py > b/tests/TestSuite_cvl_rss_configure.py > new file mode 100644 > index 0000000..c8ca6d5 > --- /dev/null > +++ b/tests/TestSuite_cvl_rss_configure.py > @@ -0,0 +1,283 @@ > +import json > +import time > +import re > +import packet > +import os > +from scapy.contrib.gtp import * > +from test_case import TestCase > +from pmd_output import PmdOutput > +from utils import BLUE, RED > +from collections import OrderedDict > +from packet import IncreaseIP, IncreaseIPv6 import rte_flow_common as > +rfc > + > +out =3D os.popen("pip list|grep scapy ") > +version_result =3Dout.read() > +p=3Dre.compile('scapy\s+2\.3\.\d+') > +m=3Dp.search(version_result) > + > +tv_mac_ip_ipv4 =3D { > + "name":"tv_mac_ip_ipv4", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IP(src=3D"192.168.0.%= d", > dst=3D"192.168.0.%d")/("X"*480)' %(i, i+10) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ip_ipv6 =3D { > + "name":"tv_mac_ip_ipv6", > + "scapy_str": ['Ether(dst=3D"00:00:00:00:01:00")/IPv6(src=3D"2001::%d= ", > dst=3D"2001::%d")/("X"*480)' %(i, i+10) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ipv4_udp_l3_random =3D { > + "name":"tv_mac_ipv4_udp_l3_random", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IP(src=3D"192.168.0.%= d", > dst=3D"192.168.0.%d")/UDP()/("X"*480)' %(i,i+10) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ipv4_udp_l4_random =3D { > + "name":"tv_mac_ipv4_udp_l4_random", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IP()/UDP(sport=3D%d, > dport=3D%d)/("X"*480)' %(i+50,i+55) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ipv6_udp_l3_random =3D { > + "name":"tv_mac_ipv6_udp_l3_random", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IPv6(src=3D"2001::%d"= , > dst=3D"2001::%d")/UDP()/("X"*480)' %(i,i+10) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ipv6_udp_l4_random =3D { > + "name":"tv_mac_ipv6_udp_l4_random", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IPv6()/UDP(sport=3D%d= , > dport=3D%d)/("X"*480)' %(i+50,i+55) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ipv4_tcp_l3_random =3D { > + "name":"tv_mac_ipv4_tcp_l3_random", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IP(src=3D"192.168.0.%= d", > dst=3D"192.168.0.%d")/TCP()/("X"*480)' %(i,i+10) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ipv4_tcp_l4_random =3D { > + "name":"tv_mac_ipv4_tcp_l4_random", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IP()/TCP(sport=3D%d, > dport=3D%d)/("X"*480)' %(i+50,i+55) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ipv6_tcp_l3_random =3D { > + "name":"tv_mac_ipv6_tcp_l3_random", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IPv6(src=3D"2001::%d"= , > dst=3D"2001::%d")/TCP()/("X"*480)' %(i,i+10) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ipv6_tcp_l4_random =3D { > + "name":"tv_mac_ipv6_tcp_l4_random", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IPv6()/TCP(sport=3D%d= , > dport=3D%d)/("X"*480)' %(i+50,i+55) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ipv4_sctp =3D { > + "name":"tv_mac_ipv4_sctp", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IP(src=3D"192.168.0.%= d", > dst=3D"192.168.0.%d")/SCTP()/("X"*480)' %(i,i+10) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tv_mac_ipv6_sctp =3D { > + "name":"tv_mac_ipv6_sctp", > + "scapy_str":['Ether(dst=3D"00:00:00:00:01:00")/IPv6(src=3D"2001::%d"= , > dst=3D"2001::%d")/SCTP()/("X"*480)' %(i,i+10) for i in range(0,100)], > + "check_func_param": {"expect_port":0} } > + > +tvs_mac_rss_ip =3D [ > + tv_mac_ip_ipv4, > + tv_mac_ip_ipv6 > + ] > + > +tvs_mac_rss_l3 =3D [ > + tv_mac_ip_ipv4, > + tv_mac_ip_ipv6, > + tv_mac_ipv4_udp_l3_random, > + tv_mac_ipv6_udp_l3_random, > + tv_mac_ipv4_tcp_l3_random, > + tv_mac_ipv6_tcp_l3_random, > + tv_mac_ipv4_sctp, > + tv_mac_ipv6_sctp > + ] > + > +tvs_mac_rss_l4 =3D [ > + tv_mac_ipv4_udp_l4_random, > + tv_mac_ipv6_udp_l4_random, > + tv_mac_ipv4_tcp_l4_random, > + tv_mac_ipv6_tcp_l4_random > + ] > + > +tvs_mac_rss_udp =3D [ > + tv_mac_ipv4_udp_l3_random, > + tv_mac_ipv4_udp_l4_random, > + tv_mac_ipv6_udp_l3_random, > + tv_mac_ipv6_udp_l4_random > + ] > + > +tvs_mac_rss_udp_l4 =3D [ > + tv_mac_ipv4_udp_l4_random, > + tv_mac_ipv6_udp_l4_random > + ] > + > +tvs_mac_rss_tcp =3D [ > + tv_mac_ipv4_tcp_l3_random, > + tv_mac_ipv4_tcp_l4_random, > + tv_mac_ipv6_tcp_l3_random, > + tv_mac_ipv6_tcp_l4_random > + ] > + > +tvs_mac_rss_tcp_l4 =3D [ > + tv_mac_ipv4_tcp_l4_random, > + tv_mac_ipv6_tcp_l4_random > + ] > + > +tvs_mac_rss_sctp =3D [ > + tv_mac_ipv4_sctp, > + tv_mac_ipv6_sctp > + ] > + > +tvs_mac_rss_all =3D [ > + tv_mac_ip_ipv4, > + tv_mac_ip_ipv6, > + tv_mac_ipv4_udp_l3_random, > + tv_mac_ipv4_udp_l4_random, > + tv_mac_ipv6_udp_l3_random, > + tv_mac_ipv6_udp_l4_random, > + tv_mac_ipv4_tcp_l3_random, > + tv_mac_ipv4_tcp_l4_random, > + tv_mac_ipv6_tcp_l3_random, > + tv_mac_ipv6_tcp_l4_random, > + tv_mac_ipv4_sctp, > + tv_mac_ipv6_sctp > + ] > + > +test_results =3D OrderedDict() > + > +class RSSConfigureTest(TestCase): > + > + def set_up_all(self): > + """ > + Run at the start of each test suite. > + Generic filter Prerequistites > + """ > + self.dut_ports =3D self.dut.get_ports(self.nic) > + # Verify that enough ports are available > + self.verify(len(self.dut_ports) >=3D 1, "Insufficient ports") > + #self.cores =3D "1S/8C/1T" > + self.pmdout =3D PmdOutput(self.dut) > + > + localPort =3D self.tester.get_local_port(self.dut_ports[0]) > + self.__tx_iface =3D self.tester.get_interface(localPort) > + self.pf_interface =3D self.dut.ports_info[self.dut_ports[0]]['in= tf'] > + self.pf_mac =3D self.dut.get_mac_address(0) > + self.pf_pci =3D self.dut.ports_info[self.dut_ports[0]]['pci'] > + self.verify(self.nic in > + ["columbiaville_25g","columbiaville_100g"], "%s nic not support > + ethertype filter" % self.nic) > + > + def set_up(self): > + """ > + Run before each test case. > + """ > + self.dut.kill_all() > + > + def tear_down(self): > + """ > + Run after each test case. > + """ > + self.dut.kill_all() > + > + def tear_down_all(self): > + """ > + Run after each test suite. > + """ > + self.dut.kill_all() > + > + def create_testpmd_command(self, line_option): > + """ > + Create testpmd command for non-pipeline mode > + """ > + #Prepare testpmd EAL and parameters > + all_eal_param =3D self.dut.create_eal_parameters(ports=3D[self.p= f_pci]) > + print(all_eal_param) #print eal parameters > + command =3D "./%s/app/testpmd %s -- -i %s" % (self.dut.target, > all_eal_param, "--rxq=3D10 --txq=3D10" + line_option) > + return command > + > + def _rss_validate_pattern(self, test_vectors, command, rss_type, is_= rss): > + > + global test_results > + out =3D self.dut.send_expect(command, "testpmd> ", 120) > + self.logger.debug(out) #print the log > + self.dut.send_expect("set fwd rxonly", "testpmd> ", 15) > + self.dut.send_expect("set verbose 1", "testpmd> ", 15) > + if rss_type !=3D "": > + self.dut.send_expect("port config all rss %s" % rss_type, > + "testpmd> ", 15) > + > + test_results.clear() > + self.count =3D 1 > + self.mac_count=3D100 > + for tv in test_vectors: > + self.dut.send_expect("start", "testpmd> ", 15) > + time.sleep(2) > + tv["check_func_param"]["expect_port"] =3D self.dut_ports[0] > + print("expect_port is", self.dut_ports[0]) > + > + #send a packet > + pkt =3D packet.Packet() > + pkt.update_pkt(tv["scapy_str"]) > + pkt.send_pkt(self.tester, tx_port=3Dself.__tx_iface, > + count=3Dself.count) > + > + out =3D self.dut.send_expect("stop", "testpmd> ",60) > + print(out) > + check_result =3D [] > + check_result =3D rfc.check_packets_of_each_queue(out) > + self.verify(check_result[0] =3D=3D is_rss, check_result[1]) > + > + self.dut.send_expect("quit", "#") > + > + def test_command_line_option_rss_ip(self): > + command =3D self.create_testpmd_command(line_option =3D " --rss-= ip") > + self._rss_validate_pattern(tvs_mac_rss_l3, command, rss_type =3D= "", is_rss > =3D True) > + self._rss_validate_pattern(tvs_mac_rss_l4, command, rss_type =3D > + "", is_rss =3D False) > + > + def test_command_line_option_rss_udp(self): > + command =3D self.create_testpmd_command(line_option =3D " --rss-= udp") > + self._rss_validate_pattern(tvs_mac_rss_udp, command, rss_type = =3D "", > is_rss =3D True) > + self._rss_validate_pattern(tvs_mac_rss_ip, command, rss_type =3D= "", is_rss > =3D False) > + self._rss_validate_pattern(tvs_mac_rss_tcp, command, rss_type = =3D "", > is_rss =3D False) > + self._rss_validate_pattern(tvs_mac_rss_sctp, command, rss_type > + =3D "", is_rss =3D False) > + > + def test_command_line_option_rss_disable(self): > + command =3D self.create_testpmd_command(line_option =3D " --disa= ble-rss") > + self._rss_validate_pattern(tvs_mac_rss_all, command, rss_type = =3D > + "", is_rss =3D False) > + > + def test_rss_configure_to_ip(self): > + command =3D self.create_testpmd_command(line_option =3D "") > + self._rss_validate_pattern(tvs_mac_rss_l3, command, rss_type =3D= "", is_rss > =3D True) > + self._rss_validate_pattern(tvs_mac_rss_l4, command, rss_type =3D > + "", is_rss =3D False) > + > + def test_rss_configure_to_udp(self): > + command =3D self.create_testpmd_command(line_option =3D "") > + self._rss_validate_pattern(tvs_mac_rss_udp, command, rss_type = =3D "udp", > is_rss =3D True) > + self._rss_validate_pattern(tvs_mac_rss_tcp_l4, command, > + rss_type =3D "udp", is_rss =3D False) > + > + def test_rss_configure_to_tcp(self): > + command =3D self.create_testpmd_command(line_option =3D "") > + self._rss_validate_pattern(tvs_mac_rss_tcp, command, rss_type = =3D "tcp", > is_rss =3D True) > + self._rss_validate_pattern(tvs_mac_rss_udp_l4, command, > + rss_type =3D "tcp", is_rss =3D False) > + > + def test_rss_configure_to_sctp(self): > + command =3D self.create_testpmd_command(line_option =3D "") > + self._rss_validate_pattern(tvs_mac_rss_sctp, command, rss_type = =3D "sctp", > is_rss =3D True) > + self._rss_validate_pattern(tvs_mac_rss_udp_l4, command, rss_type= =3D > "sctp", is_rss =3D False) > + self._rss_validate_pattern(tvs_mac_rss_tcp_l4, command, > + rss_type =3D "sctp", is_rss =3D False) > + > + def test_rss_configure_to_all(self): > + command =3D self.create_testpmd_command(line_option =3D "") > + self._rss_validate_pattern(tvs_mac_rss_all, command, rss_type = =3D > + "all", is_rss =3D True) > + > + def test_rss_configure_to_default(self): > + command =3D self.create_testpmd_command(line_option =3D "") > + self._rss_validate_pattern(tvs_mac_rss_all, command, rss_type = =3D > + "default", is_rss =3D True) > -- > 2.17.1