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 8930AA0A02; Thu, 25 Mar 2021 08:24:25 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 660D940693; Thu, 25 Mar 2021 08:24:25 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id A69E54067B for ; Thu, 25 Mar 2021 08:24:22 +0100 (CET) IronPort-SDR: M70hqd6Rw0Uc23vDiVOqN25izA3Ii6t31N/x/aOQe7s3YqfKR/1bHxSjQFU7AXH+Ybzik10+dL b4c1oo/YE3og== X-IronPort-AV: E=McAfee;i="6000,8403,9933"; a="190897640" X-IronPort-AV: E=Sophos;i="5.81,277,1610438400"; d="scan'208";a="190897640" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2021 00:24:20 -0700 IronPort-SDR: uXsxoGSdKtOuy6ZqPO7GuuEUd4zJ865WZRnmvEhhLF9tjTqxUKZqrZmADe73j5e1g+DwhUBqDW ITp5c9I73elA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,277,1610438400"; d="scan'208";a="593672804" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga005.jf.intel.com with ESMTP; 25 Mar 2021 00:24:20 -0700 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) 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.2106.2; Thu, 25 Mar 2021 00:24:18 -0700 Received: from shsmsx601.ccr.corp.intel.com (10.109.6.141) by SHSMSX603.ccr.corp.intel.com (10.109.6.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Thu, 25 Mar 2021 15:24:16 +0800 Received: from shsmsx601.ccr.corp.intel.com ([10.109.6.141]) by SHSMSX601.ccr.corp.intel.com ([10.109.6.141]) with mapi id 15.01.2106.013; Thu, 25 Mar 2021 15:24:16 +0800 From: "Tu, Lijuan" To: "Xu, HailinX" , "dts@dpdk.org" CC: "Xu, HailinX" Thread-Topic: [dts] [PATCH v1] test_plans/cvl_advanced_rss_pppoe: split pppoe case Thread-Index: AQHXITT91esJtdQVO02ISveOlGj3IKqUTI9g Date: Thu, 25 Mar 2021 07:24:16 +0000 Message-ID: References: <20210325050757.31394-1-hailinx.xu@intel.com> In-Reply-To: <20210325050757.31394-1-hailinx.xu@intel.com> Accept-Language: zh-CN, 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 x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH v1] test_plans/cvl_advanced_rss_pppoe: split pppoe case 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 Sender: "dts" > -----Original Message----- > From: dts On Behalf Of Hailin Xu > Sent: 2021=1B$BG/=1B(B3=1B$B7n=1B(B25=1B$BF|=1B(B 13:08 > To: dts@dpdk.org > Cc: Xu, HailinX > Subject: [dts] [PATCH v1] test_plans/cvl_advanced_rss_pppoe: split pppoe = case >=20 > split pppoe case and modify suite name. Where are the other cases: vlan, esp, ah, l2tp, pfcp, I only see pppoe case= s in cvl_advanced_rss_pppoe_test_plan.rst. >=20 > Signed-off-by: Hailin Xu > --- > ...t =3D> cvl_advanced_rss_pppoe_test_plan.rst} | 3373 ++++++----------- > 1 file changed, 1090 insertions(+), 2283 deletions(-) > rename > test_plans/{cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp_test_plan.rst = =3D> > cvl_advanced_rss_pppoe_test_plan.rst} (81%) >=20 > diff --git > a/test_plans/cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp_test_plan.rst > b/test_plans/cvl_advanced_rss_pppoe_test_plan.rst > similarity index 81% > rename from > test_plans/cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp_test_plan.rst > rename to test_plans/cvl_advanced_rss_pppoe_test_plan.rst > index 543eb94a..994e10ce 100644 > --- a/test_plans/cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp_test_plan.r= st > +++ b/test_plans/cvl_advanced_rss_pppoe_test_plan.rst > @@ -30,14 +30,14 @@ > ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED > OF THE POSSIBILITY OF SUCH DAMAGE. >=20 > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > -CVL: Advanced RSS FOR PPPOE/VLAN/ESP/AH/L2TP/PFCP > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > +CVL: Advanced RSS FOR PPPOE > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >=20 > Description > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > -* Enable RSS for PPPOE/VLAN/ESP/AH/L2TP/PFCP packets. > +* Enable RSS for PPPOE packets. > * Symmetric hash for PPPOE packets. > * Simple_xor hash for PPPOE packets. >=20 > @@ -68,42 +68,6 @@ Pattern and input set > | +---------------------------+-------= ----------------------------------- > ----------------------------------------+ > | | MAC_PPPOE_PAY | eth, l= 2-src-only, l2-dst-only, > pppoe | > +-------------------------------+---------------------------+-------= ------------------------- > --------------------------------------------------+ > - | | MAC_VLAN_IPV4_PAY | c-vlan > | > - | +---------------------------+-------= ----------------------------------- > ----------------------------------------+ > - | | MAC_VLAN_IPV4_UDP_PAY | c-vlan > | > - | +---------------------------+-------= ----------------------------------- > ----------------------------------------+ > - | | MAC_VLAN_IPV4_TCP_PAY | c-vlan > | > - | +---------------------------+-------= ----------------------------------- > ----------------------------------------+ > - | | MAC_VLAN_IPV4_SCTP_PAY | c-vlan > | > - | VLAN +---------------------------+-------= ------------------------------- > --------------------------------------------+ > - | | MAC_VLAN_IPV6_PAY | c-vlan > | > - | +---------------------------+-------= ----------------------------------- > ----------------------------------------+ > - | | MAC_VLAN_IPV6_UDP_PAY | c-vlan > | > - | +---------------------------+-------= ----------------------------------- > ----------------------------------------+ > - | | MAC_VLAN_IPV6_TCP_PAY | c-vlan > | > - | +---------------------------+-------= ----------------------------------- > ----------------------------------------+ > - | | MAC_VLAN_IPV6_SCTP_PAY | c-vlan > | > - +-------------------------------+---------------------------+-------= ------------------------ > ---------------------------------------------------+ > - | | MAC_IPV4_ESP | esp > | > - | +---------------------------+-------= ----------------------------------- > ----------------------------------------+ > - | | MAC_IPV4_UDP_ESP | esp > | > - | ESP +---------------------------+-------= --------------------------------- > ------------------------------------------+ > - | | MAC_IPV6_ESP | esp > | > - | +---------------------------+-------= ----------------------------------- > ----------------------------------------+ > - | | MAC_IPV6_UDP_ESP | esp > | > - +-------------------------------+---------------------------+-------= ------------------------ > ---------------------------------------------------+ > - | | MAC_IPV4_AH | ah > | > - | AH +---------------------------+-------= --------------------------------- > ------------------------------------------+ > - | | MAC_IPV6_AH | ah > | > - +-------------------------------+---------------------------+-------= ------------------------ > ---------------------------------------------------+ > - | | MAC_IPV4_L2TPv3 | l2tpv3 > | > - | L2TP +---------------------------+-------= -------------------------------- > -------------------------------------------+ > - | | MAC_IPV6_L2TPv3 | l2tpv3 > | > - +-------------------------------+---------------------------+-------= ------------------------ > ---------------------------------------------------+ > - | | MAC_IPV4_PFCP_SESSION | pfcp > | > - | PFCP +---------------------------+-------= -------------------------------- > -------------------------------------------+ > - | | MAC_IPV6_PFCP_SESSION | pfcp > | > - +-------------------------------+---------------------------+-------= ------------------------ > ---------------------------------------------------+ >=20 > .. note:: >=20 > @@ -142,11 +106,18 @@ Prerequisites > - dpdk: http://dpdk.org/git/dpdk > - scapy: http://www.secdev.org/projects/scapy/ >=20 > -3. Copy comm #1 package to /lib/firmware/intel/ice/ddp/ice.pkg, > - then load driver:: > +3. DDP Package Preparation:: > + > + - copy correct ``ice.pkg`` into ``/lib/firmware/updates/intel/ice/ddp= /``. > + - unbind, then bind device back to ice.ko to update ddp package in th= e NIC. >=20 > - rmmod ice > - insmod ice.ko > +.. warning:: > + > + Need unbind all ports in NIC, then bind device back to ice.ko > + > +.. note:: > + > + Of test all test cases, only comms package is expected. >=20 > 4. Bind pf to dpdk driver:: >=20 > @@ -174,12 +145,26 @@ Prerequisites > >>> sys.path.append('/root') > >>> from pfcp import PFCP >=20 > -Test case: MAC_IPV4_PFCP_SESSION > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > +Test case: MAC_PPPOE_PAY > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +.. Note:: > + > + - For PPPOE control packets, the hash input set should be > + src mac address + PPP session id, so only add LCP/IPCP packets to the > + L2_SRC_ONLY and SESSION_ID subcases in the case. > + > +packets mismatched the pattern:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IP(src=3D"192.168.0.3",dst=3D"192.168.0.5")/Ra= w("x"*80)] > ,iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + > +Subcase 1: MAC_PPPOE_PAY_L2_SRC_ONLY > +------------------------------------ >=20 > -1. validate a rule for RSS type of MAC_IPV4_PFCP_SESSION:: > +1. validate a rule for RSS type of MAC_PPPOE_PAY_L2_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp / = end actions > rss types pfcp end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / end actions= rss types > eth l2-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -191,92 +176,61 @@ Test case: MAC_IPV4_PFCP_SESSION >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_IPV4_PFCP_SESSION:: > +2. create a rule for RSS type of MAC_PPPOE_PAY_L2_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp / en= d actions > rss types pfcp end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / end actions r= ss types > eth l2-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_IPV4_PFCP_SESSION packet:: > + * MAC_PPPOE_PAY packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/UDP(sport=3D22,dport=3D8805)/PFCP(Sfield=3D1, > SEID=3D1)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [SEID], send a packet:: > + change the field [Source MAC], send a packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/UDP(sport=3D22,dport=3D8805)/PFCP(Sfield=3D1, > SEID=3D2)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash value is different from the first packet. > change other fields, send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:54")/IP(src=3D"192.168.0.25",dst=3D"19= 2.168.0.23 > ")/UDP(sport=3D23,dport=3D8805)/PFCP(Sfield=3D1, > SEID=3D1)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern:: > - > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D22,dport=3D8= 805) > /PFCP(Sfield=3D1, SEID=3D1)/Raw("x"*80)],iface=3D"ens786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/UDP(sport=3D22,dport=3D25)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Test case: MAC_IPV6_PFCP_SESSION > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > - > -1. validate a rule for RSS type of MAC_IPV6_PFCP_SESSION:: > - > - testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp / = end actions > rss types pfcp end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > + * MAC_PPPOE_LCP_PAY packet:: >=20 > - testpmd> flow list 0 > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > - check the rule not exists in the list. > + change the field [Source MAC], send a packet:: >=20 > -2. create a rule for RSS type of MAC_IPV6_PFCP_SESSION:: > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > - testpmd> flow create 0 ingress pattern eth / ipv6 / udp / pfcp / en= d actions > rss types pfcp end key_len 0 queues end / end > - testpmd> flow list 0 > + check the hash value is different from the first packet. > + change other fields, send packets:: >=20 > - check the rule exists in the list. > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > -3. send matched packets > + check the hash values are the same as the first packet. >=20 > - * MAC_IPV6_PFCP_SESSION packet:: > + * MAC_PPPOE_IPCP_PAY packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D22,dport=3D8= 805) > /PFCP(Sfield=3D1, SEID=3D1)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > - change the field [SEID], send a packet:: > + change the field [Source MAC], send a packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D22,dport=3D8= 805) > /PFCP(Sfield=3D1, SEID=3D2)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > check the hash value is different from the first packet. > change other fields, send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:53")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D23,dport=3D8= 805) > /PFCP(Sfield=3D1, SEID=3D1)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern:: > - > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/UDP(sport=3D22,dport=3D8805)/PFCP(Sfield=3D1, > SEID=3D1)/Raw("x"*80)],iface=3D"ens786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D22,dport=3D2= 5)/R > aw("x"*80)],iface=3D"ens786f0") > - > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > @@ -286,12 +240,12 @@ Test case: MAC_IPV6_PFCP_SESSION > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_IPV4_L2TPv3 > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > +Subcase 2: MAC_PPPOE_PAY_L2_DST_ONLY > +------------------------------------ >=20 > -1. validate a rule for RSS type of MAC_IPV4_L2TPv3:: > +1. validate a rule for RSS type of MAC_PPPOE_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / ipv4 / l2tpv3oip / e= nd actions > rss types l2tpv3 end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / end actions= rss types > eth l2-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -303,36 +257,31 @@ Test case: MAC_IPV4_L2TPv3 >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_IPV4_L2TPv3:: > +2. create a rule for RSS type of MAC_PPPOE_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / ipv4 / l2tpv3oip / end= actions rss > types l2tpv3 end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / end actions r= ss types > eth l2-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_IPV4_L2TPv3 packet:: > + * MAC_PPPOE_PAY packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5", > proto=3D115)/L2TP('\x00\x00\x00\x11')/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [session_id], send a packet:: > + change the field [Dest MAC], send a packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.4", > proto=3D115)/L2TP('\x00\x00\x00\x12')/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash value is different from the first packet. > change other fields, send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:53")/IP(src=3D"192.168.0.5",dst=3D"192= .168.0.7", > proto=3D115)/L2TP('\x00\x00\x00\x11')/Raw("x"*480)], iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern:: > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022", > nh=3D115)/L2TP('\x00\x00\x00\x11')/Raw("x"*480)], iface=3D"ens786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/UDP(sport=3D22,dport=3D25)/Raw("x"*80)],iface=3D"ens786f0") > + check the hash values are the same as the first packet. >=20 > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > @@ -342,12 +291,12 @@ Test case: MAC_IPV4_L2TPv3 > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_IPV6_L2TPv3 > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > +Subcase 3: MAC_PPPOE_PAY_L2_SRC_ONLY_L2_DST_ONLY > +------------------------------------------------ >=20 > -1. validate a rule for RSS type of MAC_IPV6_L2TPv3:: > +1. validate a rule for RSS type of > MAC_PPPOE_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / ipv6 / l2tpv3oip / e= nd actions > rss types l2tpv3 end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / end actions= rss types > eth end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -359,36 +308,33 @@ Test case: MAC_IPV6_L2TPv3 >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_IPV6_L2TPv3:: > +2. create a rule for RSS type of > MAC_PPPOE_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / ipv6 / l2tpv3oip / end= actions rss > types l2tpv3 end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / end actions r= ss types > eth end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_IPV6_L2TPv3 packet:: > + * MAC_PPPOE_PAY packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022", > nh=3D115)/L2TP('\x00\x00\x00\x11')/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [session_id], send a packet:: > + change the fields [Source MAC][Dest MAC], send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022", > nh=3D115)/L2TP('\x00\x00\x00\x12')/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - check the hash value is different from the first packet. > + check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:53")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1537", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023", > nh=3D115)/L2TP('\x00\x00\x00\x11')/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern:: > - > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5", > proto=3D115)/L2TP('\x00\x00\x00\x11')/Raw("x"*480)], iface=3D"ens786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D22,dport=3D2= 5)/R > aw("x"*80)],iface=3D"ens786f0") > - > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > @@ -398,12 +344,12 @@ Test case: MAC_IPV6_L2TPv3 > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_IPV4_ESP > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +Subcase 4: MAC_PPPOE_PAY_SESSION_ID > +----------------------------------- >=20 > -1. validate a rule for RSS type of MAC_IPV4_ESP:: > +1. validate a rule for RSS type of MAC_PPPOE_PAY_SESSION_ID:: >=20 > - testpmd> flow validate 0 ingress pattern eth / ipv4 / esp / end act= ions rss > types esp end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / end actions= rss types > pppoe end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -415,36 +361,46 @@ Test case: MAC_IPV4_ESP >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_IPV4_ESP:: > +2. create a rule for RSS type of MAC_PPPOE_PAY_SESSION_ID:: >=20 > - testpmd> flow create 0 ingress pattern eth / ipv4 / esp / end actio= ns rss types > esp end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / end actions r= ss types > pppoe end key_len 0 queues end / end > testpmd> flow list 0 >=20 > - check the rule exists in the list > + check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_IPV4_ESP packet:: > + * MAC_PPPOE_LCP_PAY packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5", > proto=3D50)/ESP(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > - change the field [spi], send a packet:: > + change the field [Session ID], send a packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5", > proto=3D50)/ESP(spi=3D12)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > check the hash value is different from the first packet. > change other fields, send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:53")/IP(src=3D"192.168.0.4",dst=3D"192= .168.0.7", > proto=3D50)/ESP(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > + > + check the hash values are the same as the first packet. >=20 > - check the hash values are the same as the first packet. > + * MAC_PPPOE_IPCP_PAY packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > + > + change the field [Session ID], send a packet:: >=20 > -4. send packets mismatched the pattern:: > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > + > + check the hash value is different from the first packet. > + change other fields, send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5", > proto=3D115)/L2TP('\x00\x00\x00\x11')/Raw("x"*480)], iface=3D"ens786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022", > nh=3D50)/ESP(spi=3D12)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > + > + check the hash values are the same as the first packet. >=20 > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > @@ -454,12 +410,12 @@ Test case: MAC_IPV4_ESP > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_IPV4_UDP_ESP > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > +Subcase 5: MAC_PPPOE_PAY_L2_SRC_ONLY_SESSION_ID > +----------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_IPV4_UDP_ESP:: > +1. validate a rule for RSS type of > MAC_PPPOE_PAY_L2_SRC_ONLY_SESSION_ID:: >=20 > - testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / esp / e= nd actions > rss types esp end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / end actions= rss types > eth l2-src-only pppoe end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -471,37 +427,50 @@ Test case: MAC_IPV4_UDP_ESP >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_IPV4_UDP_ESP:: > +2. create a rule for RSS type of MAC_PPPOE_PAY_L2_SRC_ONLY_SESSION_ID:: >=20 > - testpmd> flow create 0 ingress pattern eth / ipv4 / udp / esp / end= actions rss > types esp end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / end actions r= ss types > eth l2-src-only pppoe end key_len 0 queues end / end > testpmd> flow list 0 >=20 > - check the rule exists in the list > + check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_IPV4_UDP_ESP packet:: > + * MAC_PPPOE_LCP_PAY packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5")/ > UDP(dport=3D4500)/ESP(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > - change the field [spi], send a packet:: > + change the fields [Source MAC][Session ID], send a packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5")/ > UDP(dport=3D4500)/ESP(spi=3D12)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > - check the hash value is different from the first packet. > + check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:53")/IP(src=3D"192.168.0.4",dst=3D"192= .168.0.7")/ > UDP(dport=3D4500)/ESP(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern:: > + * MAC_PPPOE_IPCP_PAY packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > + > + change the fields [Source MAC][Session ID], send a packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > + > + check the hash values are different from the first packet. > + change other fields, send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(dport=3D4500)/ESP(sp= i=3D > 11)/Raw("x"*480)], iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IP(src=3D"192.168.0.3",dst=3D"192.168.0.5")/UD= P(sport=3D2 > 5,dport=3D23)/Raw("x"*80)],iface=3D"ens786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5", > proto=3D50)/ESP(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > + check the hash values are the same as the first packet. >=20 > - check the hash values not exist. > +4. send packets mismatched the rule, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > @@ -511,12 +480,22 @@ Test case: MAC_IPV4_UDP_ESP > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_IPV6_ESP > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +Test case: MAC_PPPOE_IPV4_PAY > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > + > +packets mismatched the pattern:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + > +Subcase 1: MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY > +----------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_IPV6_ESP:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / ipv6 / esp / end act= ions rss > types esp end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types eth l2-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -528,36 +507,46 @@ Test case: MAC_IPV6_ESP >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_IPV6_ESP:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / ipv6 / esp / end actio= ns rss types > esp end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types eth l2-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > - check the rule exists in the list > + check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_IPV6_ESP packet:: > + * MAC_PPPOE_IPV4_PAY packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022", > nh=3D50)/ESP(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [spi], send a packet:: > + change the field [Source MAC], send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022", > nh=3D50)/ESP(spi=3D12)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > - check the hash value is different from the first packet. > + check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:53")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1537", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023", > nh=3D50)/ESP(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D4)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5")/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern:: > + * MAC_PPPOE_IPV4_FRAG packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + > + change the field [Source MAC], send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + > + check the hash values are different from the first packet. > + change other fields, send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D4)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5", frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5", > proto=3D50)/ESP(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + check the hash values are the same as the first packet. >=20 > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > @@ -567,12 +556,12 @@ Test case: MAC_IPV6_ESP > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_IPV6_UDP_ESP > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > +Subcase 2: MAC_PPPOE_IPV4_PAY_L2_DST_ONLY > +----------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_IPV6_UDP_ESP:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / esp / e= nd actions > rss types esp end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types eth l2-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -584,37 +573,46 @@ Test case: MAC_IPV6_UDP_ESP >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_IPV6_UDP_ESP:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / ipv6 / udp / esp / end= actions rss > types esp end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types eth l2-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > - check the rule exists in the list > + check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_IPV6_UDP_ESP packet:: > + * MAC_PPPOE_IPV4_PAY packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(dport=3D4500)/ESP(sp= i=3D > 11)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [spi], send a packet:: > + change the field [Dest MAC], send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(dport=3D4500)/ESP(sp= i=3D > 12)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > - check the hash value is different from the first packet. > + check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:53")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(dport=3D4500)/ESP(sp= i=3D > 11)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D4)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5")/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern:: > + * MAC_PPPOE_IPV4_FRAG packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + > + change the field [Dest MAC], send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + > + check the hash values are different from the first packet. > + change other fields, send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D4)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5", frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5")/ > UDP(dport=3D4500)/ESP(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022", > nh=3D50)/ESP(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > + check the hash values are the same as the first packet. >=20 > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > @@ -624,12 +622,12 @@ Test case: MAC_IPV6_UDP_ESP > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_IPV4_AH > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +Subcase 3: MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY_L2_DST_ONLY > +----------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_IPV4_AH:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / ipv4 / ah / end acti= ons rss > types ah end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types eth end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -641,999 +639,46 @@ Test case: MAC_IPV4_AH >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_IPV4_AH:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / ipv4 / ah / end action= s rss types > ah end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types eth end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_IPV4_AH packet:: > + * MAC_PPPOE_IPV4_PAY packet:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5", > proto=3D51)/AH(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [spi], send a packet:: > + change the fields [Source MAC][Dest MAC], send packets:: >=20 > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5", > proto=3D51)/AH(spi=3D12)/Raw("x"*480)], iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - > sendp([Ether(dst=3D"00:11:22:33:44:53")/IP(src=3D"192.168.0.4",dst=3D"192= .168.0.8", > proto=3D51)/AH(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IP(src=3D"192.168.0.3",dst=3D"192.168.0.5")/UD= P(sport=3D2 > 5,dport=3D23)/Raw("x"*80)],iface=3D"ens786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022", > nh=3D51)/AH(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > - > - check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Test case: MAC_IPV6_AH > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > - > -1. validate a rule for RSS type of MAC_IPV6_AH:: > - > - testpmd> flow validate 0 ingress pattern eth / ipv6 / ah / end acti= ons rss > types ah end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_IPV6_AH:: > - > - testpmd> flow create 0 ingress pattern eth / ipv6 / ah / end action= s rss types > ah end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_IPV6_AH packet:: > - > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022", > nh=3D51)/AH(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > - > - change the field [spi], send a packet:: > - > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1536", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022", > nh=3D51)/AH(spi=3D12)/Raw("x"*480)], iface=3D"ens786f0") > - > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - > sendp([Ether(dst=3D"00:11:22:33:44:53")/IPv6(src=3D"CDCD:910A:2222:5498:8= 475:1 > 111:3900:1537", dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023", > nh=3D51)/AH(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern:: > - > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.3",dst=3D"192= .168.0.5", > proto=3D51)/AH(spi=3D11)/Raw("x"*480)], iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - > - check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Test case: MAC_PPPOE_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > - > -Note: For PPPOE control packets, the hash input set should be > -src mac address + PPP session id, so only add LCP/IPCP packets to the > -L2_SRC_ONLY and SESSION_ID subcases in the case. > - > -packets mismatched the pattern:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IP(src=3D"192.168.0.3",dst=3D"192.168.0.5")/Ra= w("x"*80)] > ,iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > -Subcase 1: MAC_PPPOE_PAY_L2_SRC_ONLY > ------------------------------------- > - > -1. validate a rule for RSS type of MAC_PPPOE_PAY_L2_SRC_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / end actions= rss types > eth l2-src-only end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_PAY_L2_SRC_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / end actions r= ss types > eth l2-src-only end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - change the field [Source MAC], send a packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_LCP_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - change the field [Source MAC], send a packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPCP_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - change the field [Source MAC], send a packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 2: MAC_PPPOE_PAY_L2_DST_ONLY > ------------------------------------- > - > -1. validate a rule for RSS type of MAC_PPPOE_PAY_L2_DST_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / end actions= rss types > eth l2-dst-only end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_PAY_L2_DST_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / end actions r= ss types > eth l2-dst-only end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - change the field [Dest MAC], send a packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 3: MAC_PPPOE_PAY_L2_SRC_ONLY_L2_DST_ONLY > ------------------------------------------------- > - > -1. validate a rule for RSS type of > MAC_PPPOE_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / end actions= rss types > eth end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of > MAC_PPPOE_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / end actions r= ss types > eth end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - change the fields [Source MAC][Dest MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 4: MAC_PPPOE_PAY_SESSION_ID > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > - > -1. validate a rule for RSS type of MAC_PPPOE_PAY_SESSION_ID:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / end actions= rss types > pppoe end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_PAY_SESSION_ID:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / end actions r= ss types > pppoe end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_LCP_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - change the field [Session ID], send a packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPCP_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - change the field [Session ID], send a packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 5: MAC_PPPOE_PAY_L2_SRC_ONLY_SESSION_ID > ------------------------------------------------ > - > -1. validate a rule for RSS type of MAC_PPPOE_PAY_L2_SRC_ONLY_SESSION_ID:= : > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / end actions= rss types > eth l2-src-only pppoe end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_PAY_L2_SRC_ONLY_SESSION_ID:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / end actions r= ss types > eth l2-src-only pppoe end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_LCP_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - change the fields [Source MAC][Session ID], send a packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0xc021)/ > PPP_LCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPCP_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - change the fields [Source MAC][Session ID], send a packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66",type=3D0x8864)/PPPoE(sessionid=3D7)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99",type=3D0x8864)/PPPoE(sessionid=3D3)/PPP(proto= =3D0x8021)/ > PPP_IPCP()/Raw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the rule, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Test case: MAC_PPPOE_IPV4_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > - > -packets mismatched the pattern:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > -Subcase 1: MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY > ------------------------------------------ > - > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types eth l2-src-only end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types eth l2-src-only end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV4_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - change the field [Source MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D4)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV4_FRAG packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - change the field [Source MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D4)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5", frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 2: MAC_PPPOE_IPV4_PAY_L2_DST_ONLY > ------------------------------------------ > - > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_PAY_L2_DST_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types eth l2-dst-only end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_IPV4_PAY_L2_DST_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types eth l2-dst-only end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV4_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - change the field [Dest MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D4)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV4_FRAG packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - change the field [Dest MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D4)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5", frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 3: MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY_L2_DST_ONLY > ------------------------------------------------------ > - > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types eth end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types eth end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV4_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - change the fields [Source MAC][Dest MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV4_FRAG packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - change the fields [Source MAC][Dest MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5", frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 4: MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY > ------------------------------------------ > - > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types ipv4 l3-src-only end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types ipv4 l3-src-only end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV4_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - change the field [Source IP], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:54", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.7")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV4_FRAG packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - change the field [Source IP], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:54", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.7", frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 5: MAC_PPPOE_IPV4_PAY_L3_DST_ONLY > ------------------------------------------ > - > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_PAY_L3_DST_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types ipv4 l3-dst-only end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_IPV4_PAY_L3_DST_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types ipv4 l3-dst-only end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV4_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - change the field [Dest IP], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.3")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.7", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV4_FRAG packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - change the field [Dest IP], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.3", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.7", dst=3D"192.168.1.2", frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 6: MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY_L3_DST_ONLY > ------------------------------------------------------ > - > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY_L3_DST_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types ipv4 end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY_L3_DST_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types ipv4 end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV4_PAY packet:: > - > - > sendp([Ether(src=3D"00:11:22:33:44:55",dst=3D"10:22:33:44:55:66")/PPPoE(s= essionid > =3D3)/PPP(proto=3D0x0021)/IP(src=3D"192.168.1.1", > dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - change the fields [Source IP][Dest IP], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.7")/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.7")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - > sendp([Ether(src=3D"00:11:22:33:44:53",dst=3D"10:22:33:44:55:99")/PPPoE(s= essionid > =3D7)/PPP(proto=3D0x0021)/IP(src=3D"192.168.1.1", > dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV4_FRAG packet:: > - > - > sendp([Ether(src=3D"00:11:22:33:44:55",dst=3D"10:22:33:44:55:66")/PPPoE(s= essionid > =3D3)/PPP(proto=3D0x0021)/IP(src=3D"192.168.1.1", dst=3D"192.168.1.2", > frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - change the fields [Source IP][Dest IP], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.7", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.7", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - > sendp([Ether(src=3D"00:11:22:33:44:53",dst=3D"10:22:33:44:55:99")/PPPoE(s= essionid > =3D7)/PPP(proto=3D0x0021)/IP(src=3D"192.168.1.1", dst=3D"192.168.1.2", > frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Test case: MAC_PPPOE_IPV4_UDP_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > - > -packets mismatched the pattern:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens786f0") > - > -Subcase 1: MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY > ---------------------------------------------- > - > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types eth l2-src-only end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types eth l2-src-only end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV4_UDP_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - change the field [Source MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 2: MAC_PPPOE_IPV4_UDP_PAY_L2_DST_ONLY > ---------------------------------------------- > - > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L2_DST_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types eth l2-dst-only end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L2_DST_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types eth l2-dst-only end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV4_UDP_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - change the field [Dest MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 3: MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY > ---------------------------------------------------------- > - > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types eth end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types eth end key_len 0 queues end / end > - testpmd> flow list 0 > + check the hash values are different from the first packet. > + change other fields, send packets:: >=20 > - check the rule exists in the list. > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5")/Raw("x"*80)],iface=3D"ens786f0") >=20 > -3. send matched packets > + check the hash values are the same as the first packet. >=20 > - * MAC_PPPOE_IPV4_UDP_PAY packet:: > + * MAC_PPPOE_IPV4_FRAG packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") >=20 > change the fields [Source MAC][Dest MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.5", frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -1647,12 +692,12 @@ Subcase 3: > MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 4: MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY > ---------------------------------------------- > +Subcase 4: MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY > +----------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types ipv4 l3-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -1664,27 +709,42 @@ Subcase 4: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types ipv4 l3-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_UDP_PAY packet:: > + * MAC_PPPOE_IPV4_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > change the field [Source IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:54", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.7")/Raw("x"*80)],iface=3D"ens786f0") > + > + check the hash values are the same as the first packet. > + > + * MAC_PPPOE_IPV4_FRAG packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + > + change the field [Source IP], send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + > + check the hash values are different from the first packet. > + change other fields, send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:54", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.7", frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -1698,12 +758,12 @@ Subcase 4: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 5: MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY > ---------------------------------------------- > +Subcase 5: MAC_PPPOE_IPV4_PAY_L3_DST_ONLY > +----------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types ipv4 l3-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -1715,78 +775,42 @@ Subcase 5: > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types ipv4 l3-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_UDP_PAY packet:: > + * MAC_PPPOE_IPV4_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > change the field [Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.3")/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.7", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 6: MAC_PPPOE_IPV4_UDP_PAY_L4_SRC_ONLY > ---------------------------------------------- > - > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L4_SRC_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L4_SRC_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV4_UDP_PAY packet:: > + * MAC_PPPOE_IPV4_FRAG packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [Source Port], send packets:: > + change the field [Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D9,dport=3D23)/Raw("x"*80)],iface=3D"ens7= 86f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.3", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.7", dst=3D"192.168.1.2", frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -1800,12 +824,12 @@ Subcase 6: > MAC_PPPOE_IPV4_UDP_PAY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 7: MAC_PPPOE_IPV4_UDP_PAY_L4_DST_ONLY > ---------------------------------------------- > +Subcase 6: MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY_L3_DST_ONLY > +----------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L4_DST_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY_L3_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types ipv4 end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -1817,80 +841,46 @@ Subcase 7: > MAC_PPPOE_IPV4_UDP_PAY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L4_DST_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_PAY_L3_SRC_ONLY_L3_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types ipv4 end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_UDP_PAY packet:: > + * MAC_PPPOE_IPV4_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + > sendp([Ether(src=3D"00:11:22:33:44:55",dst=3D"10:22:33:44:55:66")/PPPoE(s= essionid > =3D3)/PPP(proto=3D0x0021)/IP(src=3D"192.168.1.1", > dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [Dest Port], send packets:: > + change the fields [Source IP][Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.7")/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.7")/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + > sendp([Ether(src=3D"00:11:22:33:44:53",dst=3D"10:22:33:44:55:99")/PPPoE(s= essionid > =3D7)/PPP(proto=3D0x0021)/IP(src=3D"192.168.1.1", > dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern, check the hash values not exist. > - > -5. destroy the rule:: > - > - testpmd> flow destroy 0 rule 0 > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - send the matched packets, check the hash values of the packets are no= t exist. > - > -Subcase 8: MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > ---------------------------------------------------------- > - > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues e= nd / end > - > - get the message:: > - > - Flow rule validated > - > - check the flow list:: > - > - testpmd> flow list 0 > - > - check the rule not exists in the list. > - > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues e= nd / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV4_UDP_PAY packet:: > + * MAC_PPPOE_IPV4_FRAG packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + > sendp([Ether(src=3D"00:11:22:33:44:55",dst=3D"10:22:33:44:55:66")/PPPoE(s= essionid > =3D3)/PPP(proto=3D0x0021)/IP(src=3D"192.168.1.1", dst=3D"192.168.1.2", > frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Source IP][Source Port], send packets:: > + change the fields [Source IP][Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.7", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", dst=3D"192.168.1.7", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.9")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + > sendp([Ether(src=3D"00:11:22:33:44:53",dst=3D"10:22:33:44:55:99")/PPPoE(s= essionid > =3D7)/PPP(proto=3D0x0021)/IP(src=3D"192.168.1.1", dst=3D"192.168.1.2", > frag=3D3)/Raw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -1904,12 +894,21 @@ Subcase 8: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 9: MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY > ---------------------------------------------------------- > +Test case: MAC_PPPOE_IPV4_UDP_PAY > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: > +packets mismatched the pattern:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues e= nd / end > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens786f0") > + > +Subcase 1: MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY > +--------------------------------------------- > + > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY:: > + > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types eth l2-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -1921,9 +920,9 @@ Subcase 9: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues e= nd / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types eth l2-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -1934,16 +933,14 @@ Subcase 9: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Source IP][Dest Port], send packets:: > + change the field [Source MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -1957,12 +954,12 @@ Subcase 9: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 10: MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY > ----------------------------------------------------------- > +Subcase 2: MAC_PPPOE_IPV4_UDP_PAY_L2_DST_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types eth l2-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -1974,9 +971,9 @@ Subcase 10: > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types eth l2-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -1987,16 +984,14 @@ Subcase 10: > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Dest IP][Source Port], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + change the field [Dest MAC], send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2010,12 +1005,12 @@ Subcase 10: > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 11: MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY > ----------------------------------------------------------- > +Subcase 3: MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types eth end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2027,9 +1022,9 @@ Subcase 11: > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types eth end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -2040,18 +1035,18 @@ Subcase 11: > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Dest IP][Dest Port], send packets:: > + change the fields [Source MAC][Dest MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.3")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.3")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - check the hash values are the same as the first packet. > + check the hash values are the same as the first packet. >=20 > 4. send packets mismatched the pattern, check the hash values not exist. >=20 > @@ -2063,12 +1058,12 @@ Subcase 11: > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 12: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ONLY > -------------------------------------------------------------------------= ---------- > +Subcase 4: MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2080,9 +1075,9 @@ Subcase 12: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -2093,18 +1088,14 @@ Subcase 12: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Source IP][Dest IP][Source Port][Dest Port], sen= d packets:: > + change the field [Source IP], send packets:: >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2118,12 +1109,12 @@ Subcase 12: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 13: MAC_PPPOE_IPV4_UDP_PAY_IPV4 > ---------------------------------------- > +Subcase 5: MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4 end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2135,9 +1126,9 @@ Subcase 13: MAC_PPPOE_IPV4_UDP_PAY_IPV4 >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4 end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -2148,16 +1139,14 @@ Subcase 13: MAC_PPPOE_IPV4_UDP_PAY_IPV4 >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Source IP][Dest IP], send packets:: > + change the field [Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2171,21 +1160,12 @@ Subcase 13: MAC_PPPOE_IPV4_UDP_PAY_IPV4 > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_PPPOE_IPV4_TCP_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > - > -packets mismatched the pattern:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens786f0") > - > -Subcase 1: MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY > +Subcase 6: MAC_PPPOE_IPV4_UDP_PAY_L4_SRC_ONLY > --------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types eth l2-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2197,27 +1177,27 @@ Subcase 1: > MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types eth l2-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_TCP_PAY packet:: > + * MAC_PPPOE_IPV4_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Source MAC], send packets:: > + change the field [Source Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D9,dport=3D23)/Raw("x"*80)],iface=3D"ens7= 86f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2231,12 +1211,12 @@ Subcase 1: > MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 2: MAC_PPPOE_IPV4_TCP_PAY_L2_DST_ONLY > +Subcase 7: MAC_PPPOE_IPV4_UDP_PAY_L4_DST_ONLY > --------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L2_DST_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types eth l2-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2248,27 +1228,27 @@ Subcase 2: > MAC_PPPOE_IPV4_TCP_PAY_L2_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L2_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types eth l2-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_TCP_PAY packet:: > + * MAC_PPPOE_IPV4_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Dest MAC], send packets:: > + change the field [Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2282,12 +1262,12 @@ Subcase 2: > MAC_PPPOE_IPV4_TCP_PAY_L2_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 3: MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY > +Subcase 8: MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > --------------------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types eth end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -2299,29 +1279,29 @@ Subcase 3: > MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types eth end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_TCP_PAY packet:: > + * MAC_PPPOE_IPV4_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Source MAC][Dest MAC], send packets:: > + change the fields [Source IP][Source Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.9")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2335,12 +1315,12 @@ Subcase 3: > MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 4: MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY > ---------------------------------------------- > +Subcase 9: MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -2352,27 +1332,29 @@ Subcase 4: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types ipv4-tcp l3-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_TCP_PAY packet:: > + * MAC_PPPOE_IPV4_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Source IP], send packets:: > + change the fields [Source IP][Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2386,12 +1368,12 @@ Subcase 4: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 5: MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY > ---------------------------------------------- > +Subcase 10: MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY > +---------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -2403,27 +1385,29 @@ Subcase 5: > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_TCP_PAY packet:: > + * MAC_PPPOE_IPV4_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Dest IP], send packets:: > + change the fields [Dest IP][Source Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2437,12 +1421,12 @@ Subcase 5: > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 6: MAC_PPPOE_IPV4_TCP_PAY_L4_SRC_ONLY > ---------------------------------------------- > +Subcase 11: MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY > +---------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L4_SRC_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l4-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -2454,29 +1438,31 @@ Subcase 6: > MAC_PPPOE_IPV4_TCP_PAY_L4_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L4_SRC_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types ipv4-tcp l4-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_TCP_PAY packet:: > + * MAC_PPPOE_IPV4_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Source Port], send packets:: > + change the fields [Dest IP][Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.3")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.3")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - check the hash values are the same as the first packet. > + check the hash values are the same as the first packet. >=20 > 4. send packets mismatched the pattern, check the hash values not exist. >=20 > @@ -2488,12 +1474,12 @@ Subcase 6: > MAC_PPPOE_IPV4_TCP_PAY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 7: MAC_PPPOE_IPV4_TCP_PAY_L4_DST_ONLY > ---------------------------------------------- > +Subcase 12: > MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ONLY > +------------------------------------------------------------------------= ---------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L4_DST_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-udp end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2505,27 +1491,31 @@ Subcase 7: > MAC_PPPOE_IPV4_TCP_PAY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L4_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-udp end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_TCP_PAY packet:: > + * MAC_PPPOE_IPV4_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Dest Port], send packets:: > + change the fields [Source IP][Dest IP][Source Port][Dest Port], sen= d packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D19)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2539,12 +1529,12 @@ Subcase 7: > MAC_PPPOE_IPV4_TCP_PAY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 8: MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > ---------------------------------------------------------- > +Subcase 13: MAC_PPPOE_IPV4_UDP_PAY_IPV4 > +--------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4 end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2556,29 +1546,29 @@ Subcase 8: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4 end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV4_TCP_PAY packet:: > + * MAC_PPPOE_IPV4_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Source IP][Source Port], send packets:: > + change the fields [Source IP][Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.9")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2592,12 +1582,21 @@ Subcase 8: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 9: MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY > ---------------------------------------------------------- > +Test case: MAC_PPPOE_IPV4_TCP_PAY > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: > +packets mismatched the pattern:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues e= nd / end > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20",dst=3D"19= 2.168.0.21 > ")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens786f0") > + > +Subcase 1: MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY > +--------------------------------------------- > + > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY:: > + > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types eth l2-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2609,9 +1608,9 @@ Subcase 9: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types eth l2-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -2622,16 +1621,14 @@ Subcase 9: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Source IP][Dest Port], send packets:: > + change the field [Source MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2645,12 +1642,12 @@ Subcase 9: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 10: MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY > ----------------------------------------------------------- > +Subcase 2: MAC_PPPOE_IPV4_TCP_PAY_L2_DST_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types eth l2-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2662,9 +1659,9 @@ Subcase 10: > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types eth l2-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -2675,16 +1672,14 @@ Subcase 10: > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Dest IP][Source Port], send packets:: > + change the field [Dest MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D9,dport=3D23)/Raw("x"*80)],iface=3D"ens7= 86f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D9,dport=3D23)/Raw("x"*80)],iface=3D"ens7= 86f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2698,12 +1693,12 @@ Subcase 10: > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 11: MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY > ----------------------------------------------------------- > +Subcase 3: MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types eth end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2715,9 +1710,9 @@ Subcase 11: > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types eth end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -2728,16 +1723,16 @@ Subcase 11: > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Dest IP][Dest Port], send packets:: > + change the fields [Source MAC][Dest MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D90)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D25,dport=3D90)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2751,12 +1746,12 @@ Subcase 11: > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 12: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ONLY > -------------------------------------------------------------------------= ---------- > +Subcase 4: MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2768,9 +1763,9 @@ Subcase 12: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end actions > rss types ipv4-tcp end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -2781,18 +1776,14 @@ Subcase 12: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Source IP][Dest IP][Source Port][Dest Port], sen= d packets:: > + change the field [Source IP], send packets:: >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.5")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2806,22 +1797,12 @@ Subcase 12: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_PPPOE_IPV6_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > - > -packets mismatched the pattern:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > - > -Subcase 1: MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY > ------------------------------------------ > +Subcase 5: MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types eth l2-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2833,42 +1814,27 @@ Subcase 1: MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types eth l2-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - change the field [Source MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV6_FRAG packet:: > + * MAC_PPPOE_IPV4_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Source MAC], send packets:: > + change the fields [Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - check the hash value is different from the first packet. > + check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2882,12 +1848,12 @@ Subcase 1: MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 2: MAC_PPPOE_IPV6_PAY_L2_DST_ONLY > ------------------------------------------ > +Subcase 6: MAC_PPPOE_IPV4_TCP_PAY_L4_SRC_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_PAY_L2_DST_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types eth l2-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l4-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2899,42 +1865,27 @@ Subcase 2: MAC_PPPOE_IPV6_PAY_L2_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_PAY_L2_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types eth l2-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types ipv4-tcp l4-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - change the field [Dest MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV6_FRAG packet:: > + * MAC_PPPOE_IPV4_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Dest MAC], send packets:: > + change the field [Source Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - check the hash value is different from the first packet. > + check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -2948,12 +1899,12 @@ Subcase 2: MAC_PPPOE_IPV6_PAY_L2_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 3: MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY_L2_DST_ONLY > ------------------------------------------------------ > +Subcase 7: MAC_PPPOE_IPV4_TCP_PAY_L4_DST_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types eth end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -2965,46 +1916,27 @@ Subcase 3: > MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY_L2_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types eth end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - change the field [Source MAC][Dest MAC], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - check the hash value is different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV6_FRAG packet:: > + * MAC_PPPOE_IPV4_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Source MAC][Dest MAC], send packets:: > + change the field [Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D19)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - check the hash value is different from the first packet. > + check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.7")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3018,12 +1950,12 @@ Subcase 3: > MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY_L2_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 4: MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY > ------------------------------------------ > +Subcase 8: MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types ipv6 l3-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -3035,42 +1967,29 @@ Subcase 4: MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types ipv6 l3-src-only end key_len 0 queues end / end > - testpmd> flow list 0 > - > - check the rule exists in the list. > - > -3. send matched packets > - > - * MAC_PPPOE_IPV6_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - change the field [Source IP], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: >=20 > - check the hash value is different from the first packet. > - change other fields, send packets:: > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow list 0 >=20 > - sendp([Ether(src=3D"00:11:22:33:44:54", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + check the rule exists in the list. >=20 > - check the hash values are the same as the first packet. > +3. send matched packets >=20 > - * MAC_PPPOE_IPV6_FRAG packet:: > + * MAC_PPPOE_IPV4_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Source IP], send packets:: > + change the fields [Source IP][Source Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - check the hash value is different from the first packet. > + check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:54", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.9")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3084,12 +2003,12 @@ Subcase 4: MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 5: MAC_PPPOE_IPV6_PAY_L3_DST_ONLY > ------------------------------------------ > +Subcase 9: MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_PAY_L3_DST_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types ipv6 l3-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -3101,42 +2020,29 @@ Subcase 5: MAC_PPPOE_IPV6_PAY_L3_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_PAY_L3_DST_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types ipv6 l3-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - change the field [Dest IP], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV6_FRAG packet:: > + * MAC_PPPOE_IPV4_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Dest IP], send packets:: > + change the fields [Source IP][Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3150,12 +2056,12 @@ Subcase 5: MAC_PPPOE_IPV6_PAY_L3_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 6: MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY_L3_DST_ONLY > ------------------------------------------------------ > +Subcase 10: MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY > +---------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_PAY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types ipv6 end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -3167,46 +2073,29 @@ Subcase 6: > MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY_L3_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_PAY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types ipv6 end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_PAY packet:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - change the fields [Source IP][Dest IP], send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - check the hash values are different from the first packet. > - change other fields, send packets:: > - > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > - > - check the hash values are the same as the first packet. > - > - * MAC_PPPOE_IPV6_FRAG packet:: > + * MAC_PPPOE_IPV4_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the fields [Source IP][Dest IP], send packets:: > + change the fields [Dest IP][Source Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D9,dport=3D23)/Raw("x"*80)],iface=3D"ens7= 86f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D9,dport=3D23)/Raw("x"*80)],iface=3D"ens7= 86f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3220,21 +2109,12 @@ Subcase 6: > MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY_L3_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_PPPOE_IPV6_UDP_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > - > -packets mismatched the pattern:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - > -Subcase 1: MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY > ---------------------------------------------- > +Subcase 11: MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY > +---------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types eth l2-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -3246,27 +2126,29 @@ Subcase 1: > MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV4_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types eth l2-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_UDP_PAY packet:: > + * MAC_PPPOE_IPV4_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Source MAC], send packets:: > + change the fields [Dest IP][Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D90)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.7")/TCP(sport=3D25,dport=3D90)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3280,12 +2162,12 @@ Subcase 1: > MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 2: MAC_PPPOE_IPV6_UDP_PAY_L2_DST_ONLY > ---------------------------------------------- > +Subcase 12: > MAC_PPPOE_IPV4_TCP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ONLY > +------------------------------------------------------------------------= ---------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L2_DST_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types eth l2-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / tcp = / end > actions rss types ipv4-tcp end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3297,27 +2179,31 @@ Subcase 2: > MAC_PPPOE_IPV6_UDP_PAY_L2_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L2_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV4_TCP_PAY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types eth l2-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / = end > actions rss types ipv4-tcp end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_UDP_PAY packet:: > + * MAC_PPPOE_IPV4_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > - change the field [Dest MAC], send packets:: > + change the fields [Source IP][Dest IP][Source Port][Dest Port], sen= d packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.5")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D19,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.3", > dst=3D"192.168.1.5")/TCP(sport=3D19,dport=3D99)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3331,12 +2217,22 @@ Subcase 2: > MAC_PPPOE_IPV6_UDP_PAY_L2_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 3: MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY > ---------------------------------------------------------- > +Test case: MAC_PPPOE_IPV6_PAY > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > +packets mismatched the pattern:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types eth end key_len 0 queues end / end > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2")/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", dst=3D"192.168.1.2", frag=3D5)/Raw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > +Subcase 1: MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY > +----------------------------------------- > + > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY:: > + > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types eth l2-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3348,29 +2244,42 @@ Subcase 3: > MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types eth end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types eth l2-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_UDP_PAY packet:: > + * MAC_PPPOE_IPV6_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > - change the fields [Source MAC][Dest MAC], send packets:: > + change the field [Source MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > - check the hash values are different from the first packet. > + check the hash value is different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + > + check the hash values are the same as the first packet. > + > + * MAC_PPPOE_IPV6_FRAG packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + change the field [Source MAC], send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + check the hash value is different from the first packet. > + change other fields, send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3384,12 +2293,12 @@ Subcase 3: > MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 4: MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY > ---------------------------------------------- > +Subcase 2: MAC_PPPOE_IPV6_PAY_L2_DST_ONLY > +----------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types eth l2-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3401,27 +2310,42 @@ Subcase 4: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types eth l2-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_UDP_PAY packet:: > + * MAC_PPPOE_IPV6_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > - change the field [Source IP], send packets:: > + change the field [Dest MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > - check the hash values are different from the first packet. > + check the hash value is different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + > + check the hash values are the same as the first packet. > + > + * MAC_PPPOE_IPV6_FRAG packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + change the field [Dest MAC], send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + check the hash value is different from the first packet. > + change other fields, send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3435,12 +2359,12 @@ Subcase 4: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 5: MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY > ---------------------------------------------- > - > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY:: > +Subcase 3: MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY_L2_DST_ONLY > +----------------------------------------------------- >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-dst-only end key_len 0 queues end / end > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > + > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types eth end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3452,27 +2376,46 @@ Subcase 5: > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types eth end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_UDP_PAY packet:: > + * MAC_PPPOE_IPV6_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > - change the field [Dest IP], send packets:: > + change the field [Source MAC][Dest MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > - check the hash values are different from the first packet. > + check the hash value is different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + > + check the hash values are the same as the first packet. > + > + * MAC_PPPOE_IPV6_FRAG packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + change the field [Source MAC][Dest MAC], send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + check the hash value is different from the first packet. > + change other fields, send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3486,12 +2429,12 @@ Subcase 5: > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 6: MAC_PPPOE_IPV6_UDP_PAY_L4_SRC_ONLY > ---------------------------------------------- > +Subcase 4: MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY > +----------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L4_SRC_ONLY > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l4-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types ipv6 l3-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3503,27 +2446,42 @@ Subcase 6: > MAC_PPPOE_IPV6_UDP_PAY_L4_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L4_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l4-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types ipv6 l3-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_UDP_PAY packet:: > + * MAC_PPPOE_IPV6_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > - change the field [Source Port], send packets:: > + change the field [Source IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > - check the hash values are different from the first packet. > + check the hash value is different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:54", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + > + check the hash values are the same as the first packet. > + > + * MAC_PPPOE_IPV6_FRAG packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + change the field [Source IP], send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + check the hash value is different from the first packet. > + change other fields, send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:54", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3537,12 +2495,12 @@ Subcase 6: > MAC_PPPOE_IPV6_UDP_PAY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 7: MAC_PPPOE_IPV6_UDP_PAY_L4_DST_ONLY > ---------------------------------------------- > +Subcase 5: MAC_PPPOE_IPV6_PAY_L3_DST_ONLY > +----------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L4_DST_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l4-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types ipv6 l3-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3554,27 +2512,42 @@ Subcase 7: > MAC_PPPOE_IPV6_UDP_PAY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L4_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l4-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types ipv6 l3-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_UDP_PAY packet:: > + * MAC_PPPOE_IPV6_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > - change the field [Dest Port], send packets:: > + change the field [Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + > + check the hash values are the same as the first packet. > + > + * MAC_PPPOE_IPV6_FRAG packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + change the field [Dest IP], send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + check the hash values are different from the first packet. > + change other fields, send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3588,12 +2561,12 @@ Subcase 7: > MAC_PPPOE_IPV6_UDP_PAY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 8: MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > ---------------------------------------------------------- > +Subcase 6: MAC_PPPOE_IPV6_PAY_L3_SRC_ONLY_L3_DST_ONLY > +----------------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_PAY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-src-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / end = actions rss > types ipv6 end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3605,29 +2578,46 @@ Subcase 8: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_PAY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-src-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / end ac= tions rss > types ipv6 end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_UDP_PAY packet:: > + * MAC_PPPOE_IPV6_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > - change the fields [Source IP][Source Port], send packets:: > + change the fields [Source IP][Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/Raw("x"*80)],iface=3D"en= s78 > 6f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x"*80)],iface=3D"en= s78 > 6f0") > + > + check the hash values are the same as the first packet. > + > + * MAC_PPPOE_IPV6_FRAG packet:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + change the fields [Source IP][Dest IP], send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") > + > + check the hash values are different from the first packet. > + change other fields, send packets:: > + > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/IPv6ExtHdrFragment()/Raw > ("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3641,12 +2631,21 @@ Subcase 8: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 9: MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY > ---------------------------------------------------------- > +Test case: MAC_PPPOE_IPV6_UDP_PAY > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: > +packets mismatched the pattern:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-src-only l4-dst-only end key_len 0 queues e= nd / end > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + > +Subcase 1: MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY > +--------------------------------------------- > + > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY:: > + > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types eth l2-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3658,9 +2657,9 @@ Subcase 9: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-src-only l4-dst-only end key_len 0 queues e= nd / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types eth l2-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -3671,18 +2670,16 @@ Subcase 9: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Source IP][Dest Port], send packets:: > + change the field [Source MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - check the hash values are the same as the first packet. > + check the hash values are the same as the first packet. >=20 > 4. send packets mismatched the pattern, check the hash values not exist. >=20 > @@ -3694,12 +2691,12 @@ Subcase 9: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 10: MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY > ----------------------------------------------------------- > +Subcase 2: MAC_PPPOE_IPV6_UDP_PAY_L2_DST_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-dst-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types eth l2-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3711,9 +2708,9 @@ Subcase 10: > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-dst-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types eth l2-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -3724,18 +2721,16 @@ Subcase 10: > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Dest IP][Source Port], send packets:: > + change the field [Dest MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - check the hash values are the same as the first packet. > + check the hash values are the same as the first packet. >=20 > 4. send packets mismatched the pattern, check the hash values not exist. >=20 > @@ -3747,12 +2742,12 @@ Subcase 10: > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 11: MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY > ----------------------------------------------------------- > +Subcase 3: MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types eth end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3764,9 +2759,9 @@ Subcase 11: > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types eth end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -3777,16 +2772,16 @@ Subcase 11: > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Dest IP][Dest Port], send packets:: > + change the fields [Source MAC][Dest MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3800,12 +2795,12 @@ Subcase 11: > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 12: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ONLY > -------------------------------------------------------------------------= ---------- > +Subcase 4: MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3817,9 +2812,9 @@ Subcase 12: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -3830,18 +2825,14 @@ Subcase 12: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Source IP][Dest IP][Source Port][Dest Port], sen= d packets:: > + change the field [Source IP], send packets:: >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3855,21 +2846,12 @@ Subcase 12: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_PPPOE_IPV6_TCP_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > - > -packets mismatched the pattern:: > - > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - > -Subcase 1: MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY > +Subcase 5: MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY > --------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types eth l2-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3881,27 +2863,27 @@ Subcase 1: > MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types eth l2-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_TCP_PAY packet:: > + * MAC_PPPOE_IPV6_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [Source MAC], send packets:: > + change the field [Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3915,12 +2897,12 @@ Subcase 1: > MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 2: MAC_PPPOE_IPV6_TCP_PAY_L2_DST_ONLY > +Subcase 6: MAC_PPPOE_IPV6_UDP_PAY_L4_SRC_ONLY > --------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L2_DST_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L4_SRC_ONLY >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types eth l2-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l4-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3932,27 +2914,27 @@ Subcase 2: > MAC_PPPOE_IPV6_TCP_PAY_L2_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L2_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types eth l2-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l4-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_TCP_PAY packet:: > + * MAC_PPPOE_IPV6_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [Dest MAC], send packets:: > + change the field [Source Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -3966,12 +2948,12 @@ Subcase 2: > MAC_PPPOE_IPV6_TCP_PAY_L2_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 3: MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY > ---------------------------------------------------------- > +Subcase 7: MAC_PPPOE_IPV6_UDP_PAY_L4_DST_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types eth end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l4-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -3983,29 +2965,27 @@ Subcase 3: > MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types eth end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l4-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_TCP_PAY packet:: > + * MAC_PPPOE_IPV6_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Source MAC][Dest MAC], send packets:: > + change the field [Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -4019,12 +2999,12 @@ Subcase 3: > MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 4: MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY > ---------------------------------------------- > +Subcase 8: MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-src-only l4-src-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -4036,27 +3016,29 @@ Subcase 4: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types ipv6-tcp l3-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-src-only l4-src-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_TCP_PAY packet:: > + * MAC_PPPOE_IPV6_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [Source IP], send packets:: > + change the fields [Source IP][Source Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -4070,12 +3052,12 @@ Subcase 4: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 5: MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY > ---------------------------------------------- > +Subcase 9: MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-src-only l4-dst-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -4087,29 +3069,31 @@ Subcase 5: > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types ipv6-tcp l3-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-src-only l4-dst-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_TCP_PAY packet:: > + * MAC_PPPOE_IPV6_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [Dest IP], send packets:: > + change the fields [Source IP][Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - check the hash values are the same as the first packet. > + check the hash values are the same as the first packet. >=20 > 4. send packets mismatched the pattern, check the hash values not exist. >=20 > @@ -4121,12 +3105,12 @@ Subcase 5: > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 6: MAC_PPPOE_IPV6_TCP_PAY_L4_SRC_ONLY > ---------------------------------------------- > +Subcase 10: MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY > +---------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L4_SRC_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l4-src-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-dst-only l4-src-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -4138,29 +3122,31 @@ Subcase 6: > MAC_PPPOE_IPV6_TCP_PAY_L4_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L4_SRC_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types ipv6-tcp l4-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-dst-only l4-src-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_TCP_PAY packet:: > + * MAC_PPPOE_IPV6_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [Source Port], send packets:: > + change the fields [Dest IP][Source Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - check the hash values are the same as the first packet. > + check the hash values are the same as the first packet. >=20 > 4. send packets mismatched the pattern, check the hash values not exist. >=20 > @@ -4172,12 +3158,12 @@ Subcase 6: > MAC_PPPOE_IPV6_TCP_PAY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 7: MAC_PPPOE_IPV6_TCP_PAY_L4_DST_ONLY > ---------------------------------------------- > +Subcase 11: MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY > +---------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L4_DST_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l4-dst-only end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -4189,27 +3175,29 @@ Subcase 7: > MAC_PPPOE_IPV6_TCP_PAY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L4_DST_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_UDP_PAY_L3_DST_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types ipv6-tcp l4-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_TCP_PAY packet:: > + * MAC_PPPOE_IPV6_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the field [Dest Port], send packets:: > + change the fields [Dest IP][Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -4223,12 +3211,12 @@ Subcase 7: > MAC_PPPOE_IPV6_TCP_PAY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 8: MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > ---------------------------------------------------------- > +Subcase 12: > MAC_PPPOE_IPV6_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ONLY > +------------------------------------------------------------------------= ---------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-src-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / udp = / end > actions rss types ipv6-udp end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -4240,29 +3228,31 @@ Subcase 8: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_UDP_PAY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types ipv6-tcp l3-src-only l4-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / udp / = end > actions rss types ipv6-udp end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_PPPOE_IPV6_TCP_PAY packet:: > + * MAC_PPPOE_IPV6_UDP_PAY packet:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Source IP][Source Port], send packets:: > + change the fields [Source IP][Dest IP][Source Port][Dest Port], sen= d packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D19,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/UDP(sport=3D19,dport=3D9= 9)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -4276,12 +3266,21 @@ Subcase 8: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 9: MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY > ---------------------------------------------------------- > +Test case: MAC_PPPOE_IPV6_TCP_PAY > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: > +packets mismatched the pattern:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-src-only l4-dst-only end key_len 0 queues e= nd / end > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0021)/IP(sr= c=3D"192.1 > 68.1.1", > dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x"*80)],iface=3D"ens= 786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :153 > 6", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + > +Subcase 1: MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY > +--------------------------------------------- > + > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY:: > + > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types eth l2-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -4293,9 +3292,9 @@ Subcase 9: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types ipv6-tcp l3-src-only l4-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types eth l2-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -4306,16 +3305,14 @@ Subcase 9: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Source IP][Dest Port], send packets:: > + change the field [Source MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -4329,12 +3326,12 @@ Subcase 9: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 10: MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY > ----------------------------------------------------------- > +Subcase 2: MAC_PPPOE_IPV6_TCP_PAY_L2_DST_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-dst-only l4-src-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types eth l2-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -4346,9 +3343,9 @@ Subcase 10: > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types ipv6-tcp l3-dst-only l4-src-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types eth l2-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -4359,16 +3356,14 @@ Subcase 10: > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Dest IP][Source Port], send packets:: > + change the field [Dest MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -4382,12 +3377,12 @@ Subcase 10: > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 11: MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY > ----------------------------------------------------------- > +Subcase 3: MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types eth end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -4399,9 +3394,9 @@ Subcase 11: > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L2_SRC_ONLY_L2_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types ipv6-tcp l3-dst-only l4-dst-only end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types eth end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -4412,16 +3407,16 @@ Subcase 11: > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Dest IP][Dest Port], send packets:: > + change the fields [Source MAC][Dest MAC], send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -4435,12 +3430,12 @@ Subcase 11: > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Subcase 12: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ONLY > -------------------------------------------------------------------------= ---------- > +Subcase 4: MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -4452,9 +3447,9 @@ Subcase 12: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end actions > rss types ipv6-tcp end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types ipv6-tcp l3-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. > @@ -4465,18 +3460,14 @@ Subcase 12: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the fields [Source IP][Dest IP][Source Port][Dest Port], sen= d packets:: > + change the field [Source IP], send packets:: >=20 > sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > - sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > @@ -4490,12 +3481,12 @@ Subcase 12: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ON > check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_VLAN_IPV4_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > +Subcase 5: MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_VLAN_IPV4_PAY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / vlan / ipv4 / end ac= tions rss > types c-vlan end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -4507,50 +3498,46 @@ Test case: MAC_VLAN_IPV4_PAY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_VLAN_IPV4_PAY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / vlan / ipv4 / end acti= ons rss > types c-vlan end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types ipv6-tcp l3-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_VLAN_IPV4_PAY packet:: > + * MAC_PPPOE_IPV6_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/Raw("x" * 80)],iface=3D"ens786f0",count= =3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the field [VLAN ID], send packets:: > + change the field [Dest IP], send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/Raw("x" * 80)],iface=3D"ens786f0",count= =3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - check the hash value is different from the first packet. > + check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:99", > dst=3D"00:11:22:33:44:53",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.3", dst=3D"192.168.1.4")/Raw("x" * 80)],iface=3D"ens786f0",count= =3D1) > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern:: > - > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > testpmd> flow destroy 0 rule 0 > testpmd> flow list 0 >=20 > - check the rule not exists. > + check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_VLAN_IPV4_UDP_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > +Subcase 6: MAC_PPPOE_IPV6_TCP_PAY_L4_SRC_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_VLAN_IPV4_UDP_PAY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / vlan / ipv4 / udp / = end actions > rss types c-vlan end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l4-src-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -4562,51 +3549,46 @@ Test case: MAC_VLAN_IPV4_UDP_PAY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_VLAN_IPV4_UDP_PAY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / vlan / ipv4 / udp / en= d actions > rss types c-vlan end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types ipv6-tcp l4-src-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_VLAN_IPV4_UDP_PAY packet:: > + * MAC_PPPOE_IPV6_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the field [VLAN ID], send packets:: > + change the field [Source Port], send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:99", > dst=3D"00:11:22:33:44:53",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.3", dst=3D"192.168.1.4")/UDP(sport=3D19,dport=3D99)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are the same as as the first packet. > - > -4. send packets mismatched the pattern:: > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x" * 80)],iface=3D"ens786f0",count=3D1) > + check the hash values are the same as the first packet. >=20 > - check the hash values of the packets not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > testpmd> flow destroy 0 rule 0 > testpmd> flow list 0 >=20 > - check the rule not exists. > + check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_VLAN_IPV4_TCP_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > +Subcase 7: MAC_PPPOE_IPV6_TCP_PAY_L4_DST_ONLY > +--------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_VLAN_IPV4_TCP_PAY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / vlan / ipv4 / tcp / = end actions > rss types c-vlan end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l4-dst-only end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -4618,51 +3600,46 @@ Test case: MAC_VLAN_IPV4_TCP_PAY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_VLAN_IPV4_TCP_PAY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / vlan / ipv4 / tcp / en= d actions rss > types c-vlan end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types ipv6-tcp l4-dst-only end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_VLAN_IPV4_TCP_PAY packet:: > + * MAC_PPPOE_IPV6_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the field [VLAN ID], send packets:: > + change the field [Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:99", > dst=3D"00:11:22:33:44:53",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.3", dst=3D"192.168.1.4")/TCP(sport=3D19,dport=3D99)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are the same as as the first packet. > - > -4. send packets mismatched the pattern:: > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x" * 80)],iface=3D"ens786f0",count=3D1) > + check the hash values are the same as the first packet. >=20 > - check the hash values of the packets not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > testpmd> flow destroy 0 rule 0 > testpmd> flow list 0 >=20 > - check the rule not exists. > + check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_VLAN_IPV4_SCTP_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > +Subcase 8: MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_VLAN_IPV4_SCTP_PAY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / vlan / ipv4 / sctp /= end actions > rss types c-vlan end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-src-only l4-src-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -4674,51 +3651,48 @@ Test case: MAC_VLAN_IPV4_SCTP_PAY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_VLAN_IPV4_SCTP_PAY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / vlan / ipv4 / sctp / e= nd actions > rss types c-vlan end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types ipv6-tcp l3-src-only l4-src-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_VLAN_IPV4_SCTP_PAY packet:: > + * MAC_PPPOE_IPV6_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/SCTP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the field [VLAN ID], send packets:: > + change the fields [Source IP][Source Port], send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/SCTP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:99", > dst=3D"00:11:22:33:44:53",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.3", dst=3D"192.168.1.5")/SCTP(sport=3D19,dport=3D99)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are the same as as the first packet. > - > -4. send packets mismatched the pattern:: > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/SCTP(sport=3D25,dport=3D= 23)/R > aw("x" * 80)],iface=3D"ens786f0",count=3D1) > + check the hash values are the same as the first packet. >=20 > - check the hash values of the packets not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > testpmd> flow destroy 0 rule 0 > testpmd> flow list 0 >=20 > - check the rule not exists. > + check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_VLAN_IPV6_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > +Subcase 9: MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY > +--------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_VLAN_IPV6_PAY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / vlan / ipv6 / end ac= tions rss > types c-vlan end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-src-only l4-dst-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -4730,50 +3704,48 @@ Test case: MAC_VLAN_IPV6_PAY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_VLAN_IPV6_PAY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / vlan / ipv6 / end acti= ons rss > types c-vlan end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types ipv6-tcp l3-src-only l4-dst-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_VLAN_IPV6_PAY packet:: > + * MAC_PPPOE_IPV6_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the field [VLAN ID], send packets:: > + change the fields [Source IP][Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:99", > dst=3D"00:11:22:33:44:53",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("y" * > 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values are the same as the first packet. > - > -4. send packets mismatched the pattern:: > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/Raw("x" * 80)],iface=3D"ens786f0",count= =3D1) > + check the hash values are the same as the first packet. >=20 > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > testpmd> flow destroy 0 rule 0 > testpmd> flow list 0 >=20 > - check the rule not exists. > + check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_VLAN_IPV6_UDP_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > +Subcase 10: MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY > +---------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_VLAN_IPV6_UDP_PAY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / vlan / ipv6 / udp / = end actions > rss types c-vlan end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-dst-only l4-src-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -4785,51 +3757,48 @@ Test case: MAC_VLAN_IPV6_UDP_PAY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_VLAN_IPV6_UDP_PAY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_SRC_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / vlan / ipv6 / udp / en= d actions > rss types c-vlan end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types ipv6-tcp l3-dst-only l4-src-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_VLAN_IPV6_UDP_PAY packet:: > + * MAC_PPPOE_IPV6_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the field [VLAN ID], send packets:: > + change the fields [Dest IP][Source Port], send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:99", > dst=3D"00:11:22:33:44:53",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=3D23,dport=3D9= 9)/R > aw("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern:: > - > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/UDP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > testpmd> flow destroy 0 rule 0 > testpmd> flow list 0 >=20 > - check the rule not exists. > + check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_VLAN_IPV6_TCP_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > +Subcase 11: MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY > +---------------------------------------------------------- >=20 > -1. validate a rule for RSS type of MAC_VLAN_IPV6_TCP_PAY:: > +1. validate a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / vlan / ipv6 / tcp / = end actions > rss types c-vlan end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end >=20 > get the message:: >=20 > @@ -4841,51 +3810,48 @@ Test case: MAC_VLAN_IPV6_TCP_PAY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_VLAN_IPV6_TCP_PAY:: > +2. create a rule for RSS type of > MAC_PPPOE_IPV6_TCP_PAY_L3_DST_ONLY_L4_DST_ONLY:: >=20 > - testpmd> flow create 0 ingress pattern eth / vlan / ipv6 / tcp / en= d actions rss > types c-vlan end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types ipv6-tcp l3-dst-only l4-dst-only end key_len 0 queues e= nd / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_VLAN_IPV6_TCP_PAY packet:: > + * MAC_PPPOE_IPV6_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the field [VLAN ID], send packets:: > + change the fields [Dest IP][Dest Port], send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:99", > dst=3D"00:11:22:33:44:53",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern:: > - > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/TCP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > testpmd> flow destroy 0 rule 0 > testpmd> flow list 0 >=20 > - check the rule not exists. > + check the rule not exists in the list. > send the matched packets, check the hash values of the packets are no= t exist. >=20 > -Test case: MAC_VLAN_IPV6_SCTP_PAY > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > +Subcase 12: > MAC_PPPOE_IPV6_TCP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_ > DST_ONLY > +------------------------------------------------------------------------= ---------- >=20 > -1. validate a rule for RSS type of MAC_VLAN_IPV6_SCTP_PAY:: > +1. validate a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY:: >=20 > - testpmd> flow validate 0 ingress pattern eth / vlan / ipv6 / sctp /= end actions > rss types c-vlan end key_len 0 queues end / end > + testpmd> flow validate 0 ingress pattern eth / pppoes / ipv6 / tcp = / end > actions rss types ipv6-tcp end key_len 0 queues end / end >=20 > get the message:: >=20 > @@ -4897,44 +3863,43 @@ Test case: MAC_VLAN_IPV6_SCTP_PAY >=20 > check the rule not exists in the list. >=20 > -2. create a rule for RSS type of MAC_VLAN_IPV6_SCTP_PAY:: > +2. create a rule for RSS type of MAC_PPPOE_IPV6_TCP_PAY:: >=20 > - testpmd> flow create 0 ingress pattern eth / vlan / ipv6 / sctp / e= nd actions > rss types c-vlan end key_len 0 queues end / end > + testpmd> flow create 0 ingress pattern eth / pppoes / ipv6 / tcp / = end > actions rss types ipv6-tcp end key_len 0 queues end / end > testpmd> flow list 0 >=20 > check the rule exists in the list. >=20 > 3. send matched packets >=20 > - * MAC_VLAN_IPV6_SCTP_PAY packet:: > + * MAC_PPPOE_IPV6_TCP_PAY packet:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/SCTP(sport=3D25,dport=3D= 23)/R > aw("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > - change the field [VLAN ID], send packets:: > + change the fields [Source IP][Dest IP][Source Port][Dest Port], sen= d packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/SCTP(sport=3D25,dport=3D= 23)/R > aw("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D19,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") > + sendp([Ether(src=3D"00:11:22:33:44:55", > dst=3D"10:22:33:44:55:66")/PPPoE(sessionid=3D3)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2025")/TCP(sport=3D19,dport=3D9= 9)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are different from the first packet. > change other fields, send packets:: >=20 > - sendp([Ether(src=3D"10:22:33:44:55:99", > dst=3D"00:11:22:33:44:53",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1537", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023")/SCTP(sport=3D25,dport=3D= 99)/R > aw("x" * 80)],iface=3D"ens786f0",count=3D1) > + sendp([Ether(src=3D"00:11:22:33:44:53", > dst=3D"10:22:33:44:55:99")/PPPoE(sessionid=3D7)/PPP(proto=3D0x0057)/IPv6(= src=3D"CDC > D:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=3D25,dport=3D2= 3)/Ra > w("x"*80)],iface=3D"ens786f0") >=20 > check the hash values are the same as the first packet. >=20 > -4. send packets mismatched the pattern:: > - > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x0800)/IP= (src=3D"192 > .168.1.1", dst=3D"192.168.1.2")/SCTP(sport=3D25,dport=3D23)/Raw("x" * > 80)],iface=3D"ens786f0",count=3D1) > - sendp([Ether(src=3D"10:22:33:44:55:66", > dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x86dd)/IP= v6(src=3D"C > DCD:910A:2222:5498:8475:1111:3900:1536", > dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=3D25,dport=3D2= 3)/R > aw("x" * 80)],iface=3D"ens786f0",count=3D1) > - > - check the hash values not exist. > +4. send packets mismatched the pattern, check the hash values not exist. >=20 > 5. destroy the rule:: >=20 > testpmd> flow destroy 0 rule 0 > testpmd> flow list 0 >=20 > - check the rule not exists. > - send the matched packets, check the hash values the packets are not e= xist. > + check the rule not exists in the list. > + send the matched packets, check the hash values of the packets are no= t exist. >=20 > Test case: MAC_VLAN_PPPOE_PAY (not supported in 20.08) > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > @@ -6017,161 +4982,3 @@ Subcase 4: two rules, scope larger created first, > and the smaller one created la >=20 > send a MAC_PPPOE_IPV4_UDP_PAY packet, check the hash values not exist= s. >=20 > -Test case: negative cases > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D > - > -Subcase 1: wrong hash input set > -------------------------------- > - > -1. validate a rule with wrong input set:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / end = actions rss > types l2-src-only l2-dst-only end key_len 0 queues end / end > - > - get the error message:: > - > - Invalid input set: Invalid argument > - > - create a rule with wrong hash input set:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / end ac= tions rss > types l2-src-only l2-dst-only end key_len 0 queues end / end > - > - Failed to create flow, report error message:: > - > - Invalid input set: Invalid argument > - > -2. validate a rule with wrong hash type:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss types ipv4-tcp end key_len 0 queues end / end > - > - get the error message:: > - > - Invalid input set: Invalid argument > - > - create a rule with wrong hash type:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss types ipv4-tcp end key_len 0 queues end / end > - > - Failed to create flow, report error message:: > - > - Invalid input set: Invalid argument > - > -3. validate a rule with wrong symmetric hash input set:: > - > - testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp = / end > actions rss func symmetric_toeplitz types ipv4-udp l3-src-only end key_le= n 0 > queues end / end > - > - get the error message:: > - > - Invalid input set: Invalid argument > - > - create a rule with wrong symmetric hash input set:: > - > - testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / = end > actions rss func symmetric_toeplitz types ipv4-udp l3-src-only end key_le= n 0 > queues end / end > - > - Failed to create flow, report error message:: > - > - Invalid input set: Invalid argument > - > -4. check the rule list:: > - > - testpmd> flow list 0 > - > - there is no listed. > - > -Subcase 2: void action > ----------------------- > - > -1. validate a rule with void action:: > - > - testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp / = end actions > end > - > - get the error message:: > - > - NULL action.: Invalid argument > - > - create a rule with void action:: > - > - testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp / en= d actions > end > - > - Failed to create flow, report message:: > - > - NULL action.: Invalid argument > - > -2. check the rule list:: > - > - testpmd> flow list 0 > - > - there is no rule listed. > - > -Subcase 3: delete a non-existing rule > -------------------------------------- > - > -1. show the rule list of port 0:: > - > - testpmd> flow list 0 > - > - There is no rule listed. > - > -2. destroy rule 0 of port 0:: > - > - testpmd> flow destroy 0 rule 0 > - > - There is no error message reported. > - > -3. flush rules of port 0:: > - > - testpmd> flow flush 0 > - > - There is no error message reported. > - > -Subcase 4: unsupported pattern with OS default package > ------------------------------------------------------- > - > -1. load os default package and launch testpmd as step 3-5 in Prerequisit= es. > - > -2. validate unsupported patterns in OS default package:: > - > - testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp / = end actions > rss types pfcp end key_len 0 queues end / end > - testpmd> flow validate 0 ingress pattern eth / ipv4 / l2tpv3oip / e= nd actions > rss types l2tpv3 end key_len 0 queues end / end > - testpmd> flow validate 0 ingress pattern eth / ipv4 / esp / end act= ions rss > types esp end key_len 0 queues end / end > - testpmd> flow validate 0 ingress pattern eth / ipv4 / ah / end acti= ons rss > types ah end key_len 0 queues end / end > - > - get the error message:: > - > - Invalid input pattern: Invalid argument > - > -3. create unsupported patterns in OS default package:: > - > - testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp / en= d actions > rss types pfcp end key_len 0 queues end / end > - testpmd> flow create 0 ingress pattern eth / ipv4 / l2tpv3oip / end= actions rss > types l2tpv3 end key_len 0 queues end / end > - testpmd> flow create 0 ingress pattern eth / ipv4 / esp / end actio= ns rss types > esp end key_len 0 queues end / end > - testpmd> flow create 0 ingress pattern eth / ipv4 / ah / end action= s rss types > ah end key_len 0 queues end / end > - > -4. check the rule list:: > - > - testpmd> flow list 0 > - > - there is no rule listed. > - > -Subcase 5: invalid port > ------------------------ > - > -1. create a rule with invalid port:: > - > - testpmd> flow create 1 ingress pattern eth / ipv4 / udp / pfcp / en= d actions > rss types pfcp end key_len 0 queues end / end > - > - Failed to create flow, report message:: > - > - No such device: No such device > - > -2. check the rule list on port 0:: > - > - testpmd> flow list 0 > - > - there is no rule listed. > - check on port 1:: > - > - testpmd> flow list 1 > - > - get the error message:: > - > - Invalid port 1 > -- > 2.17.1