From patchwork Thu Dec 15 06:42:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lingli Chen X-Patchwork-Id: 120922 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 241F1A0543; Thu, 15 Dec 2022 08:39:53 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 92A6B42D17; Thu, 15 Dec 2022 08:39:52 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id D7D0140223 for ; Thu, 15 Dec 2022 08:39:50 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1671089991; x=1702625991; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=E8OQicqc0ZWIJdvJPQYYvCMNeubnMNVho9uX3m6BmZk=; b=nggNmBVmDsVpUqQYP1SVhJcRlcE6p2VaVTMcYztYYQrOEUTHc4jxZiLG veK4TM0emOW3AqKuSp63wyoEG+8O4RDvKr7LcinDNHhw9zHD/9jjs3dlk oCFZC1tKvqrSELrTXWQN/qKx/CfUvxsZPdZEaJSVjxMAQwH26k11pNI0i xKbzTWhi4Y2O64udZrM+PbQ5LikLK0MhaOyDSmXKdvkPfntHYyOeE+Bw1 AtHQg+hEVJlHBNzCBihZKWPcCebB837o15O7AFa/yblPnbuhZKtHmRTb+ ScnoO8eZZlNP2gabTDa6nu33b2tUbECaE2UdQpgR9HpXtzF+HcYLi2wnW w==; X-IronPort-AV: E=McAfee;i="6500,9779,10561"; a="345697258" X-IronPort-AV: E=Sophos;i="5.96,246,1665471600"; d="scan'208";a="345697258" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Dec 2022 23:39:48 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10561"; a="651448219" X-IronPort-AV: E=Sophos;i="5.96,246,1665471600"; d="scan'208";a="651448219" Received: from unknown (HELO localhost.localdomain) ([10.239.252.99]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Dec 2022 23:39:23 -0800 From: Lingli Chen To: dts@dpdk.org Cc: zhiminx.huang@intel.com, Lingli Chen Subject: [dts][PATCH V1 5/8] test_plans/ddp_ppp_l2tp: remove --pkt-filter-mode sync dpdk change Date: Thu, 15 Dec 2022 01:42:01 -0500 Message-Id: <20221215064204.30802-5-linglix.chen@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221215064204.30802-1-linglix.chen@intel.com> References: <20221215064204.30802-1-linglix.chen@intel.com> X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org According to dpdk commit 5007ac1318 (ethdev: remove deprecated Flow Director configuration) remove flow_director_filter raw pkt test case. Signed-off-by: Lingli Chen --- test_plans/ddp_ppp_l2tp_test_plan.rst | 487 +------------------------- 1 file changed, 1 insertion(+), 486 deletions(-) diff --git a/test_plans/ddp_ppp_l2tp_test_plan.rst b/test_plans/ddp_ppp_l2tp_test_plan.rst index 35b0d805..4d3dff93 100644 --- a/test_plans/ddp_ppp_l2tp_test_plan.rst +++ b/test_plans/ddp_ppp_l2tp_test_plan.rst @@ -77,12 +77,9 @@ Prerequisites ./tools/dpdk-devbind.py -b igb_uio 81:00.0 2. Start testpmd on host, set chained port topology mode, add txq/rxq to - enable multi-queues. If test PF flow director, need to add - --pkt-filter-mode=perfect on testpmd to enable flow director. In general, - PF's max queue is 64:: + enable multi-queues. In general, PF's max queue is 64:: .//app/dpdk-testpmd -c f -n 4 -- -i --port-topology=chained --txq=64 --rxq=64 - --pkt-filter-mode=perfect Load/delete dynamic device personalization ========================================== @@ -620,485 +617,3 @@ Test Case: RSS for PPPoL2TP IPv4 according to dport p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4001, dport=8000)/Raw('x' * 20) - -Test Case: Flow director for PPPoE with default input set -========================================================= - -1. Check flow type to pctype mapping:: - - testpmd> show port 0 pctype mapping - -2. Update PPPoE PAY flow type id 30 to pcytpe id 17 mapping item:: - - testpmd> port config 0 pctype mapping update 17 30 - -3. Start testpmd, set fwd rxonly, enable output print - -4. Send PPPoE packets, check to receive packet from queue 0:: - - p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/ - PPPoE(sessionid=0x7) - -5. Use scapy to generate PPPoE raw packet test_pppoe.raw, - source/destination address should be swapped in the template - and traffic packets:: - - a=Ether(dst="3C:FD:FE:A3:A0:01", src="4C:FD:FE:A3:A0:01")/ - PPPoE(sessionid=0x7) - -6. Setup raw flow type filter for flow director, configured queue is random - queue between 0~63, such as 36:: - - testpmd> flow_director_filter 0 mode raw add flow 30 fwd queue 36 fd_id 1 - packet test_pppoe.raw - -7. Send matched swapped traffic packet, check to receive packet from - configured queue 36:: - - p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/ - PPPoE(sessionid=0x7) - -8. Default flow director input set are MAC SA and session ID, send non-matched - SA, sessionid, check to receive packet from queue 0:: - - p=Ether(src="3C:FD:FE:A3:A0:02", dst="4C:FD:FE:A3:A0:01")/ - PPPoE(sessionid=0x7) - p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/ - PPPoE(sessionid=0x8) - -9. Send non-matched MAC DA, check to receive packet from queue 36:: - - p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:02")/ - PPPoE(sessionid=0x7) - -Test Case: Flow director for PPPoE IPv4 with default input set -============================================================== - -1. Check flow type to pctype mapping:: - - testpmd> show port 0 pctype mapping - -2. Update PPPoE IPv4 flow type id 28 to pcytpe id 15 mapping item:: - - testpmd> port config 0 pctype mapping update 15 28 - -3. Start testpmd, set fwd rxonly, enable output print - -4. Send PPPoE IPv4 packets, check to receive packet from queue 0:: - - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.1", - dst="2.2.2.2")/UDP(sport=4000,dport=8000)/Raw('x' * 20) - -5. Use scapy to generate PPPoE IPv4 raw packet test_pppoe.raw, - source/destination address and port should be swapped in the template - and traffic packets:: - - a=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(dst="1.1.1.1", - src="2.2.2.2")/UDP(dport=4000,sport=8000)/Raw('x' * 20) - -6. Setup raw flow type filter for flow director, configured queue is random - queue between 0~63, such as 36:: - - testpmd> flow_director_filter 0 mode raw add flow 28 fwd queue 36 fd_id - 1 packet test_pppoe.raw - -7. Send matched swapped traffic packet, check to receive packet from - configured queue 36:: - - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.1", - dst="2.2.2.2")/UDP(sport=4000,dport=8000)/Raw('x' * 20) - -8. Send non-matched inner src IP, inner dst IP, sport, dport packets, check to - receive packet from queue 0:: - - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.2", - dst="2.2.2.2")/UDP(sport=4000,dport=8000)/Raw('x' * 20) - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.1", - dst="2.2.2.3")/UDP(sport=4000,dport=8000)/Raw('x' * 20) - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.1", - dst="2.2.2.2")/UDP(sport=4001,dport=8000)/Raw('x' * 20) - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.1", - dst="2.2.2.2")/UDP(sport=4000,dport=8001)/Raw('x' * 20) - -9. Send non-matched sessionid packets, check to receive packet from queue 36:: - - p=Ether()/PPPoE(sessionid=0x8)/PPP(proto=0x21)/IP(src="1.1.1.1", - dst="2.2.2.2")/UDP(sport=4000,dport=8000)/Raw('x' * 20) - -Test Case: Flow director for PPPoE IPv6 with default input set -============================================================== - -1. Check flow type to pctype mapping:: - - testpmd> show port 0 pctype mapping - -2. Update PPPoE IPv6 flow type id 29 to pcytpe id 16 mapping item:: - - testpmd> port config 0 pctype mapping update 16 29 - -3. Start testpmd, set fwd rxonly, enable output print - -4. Send PPPoE IPv6 packets, check to receive packet from queue 0:: - - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000,dport=8000)/Raw('x' * 20) - -5. Use scapy to generate PPPoE IPv4 raw packet test_pppoe.raw, - source/destination address and port should be swapped in the template - and traffic packets:: - - a=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/ - IPv6(dst="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - src="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(dport=4000,sport=8000)/Raw('x' * 20) - -6. Setup raw flow type filter for flow director, configured queue is random - queue between 0~63, such as 36:: - - testpmd> flow_director_filter 0 mode raw add flow 29 fwd queue 36 fd_id 1 - packet test_pppoe.raw - -7. Send matched swapped traffic packet, check to receive packet from - configured queue 36:: - - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000,dport=8000)/Raw('x' * 20) - -8. Send non-matched inner src IPv6, inner dst IPv6, sport, dport packets, - check to receive packet from queue 0:: - - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0002", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000,dport=8000)/Raw('x' * 20) - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0002")/ - UDP(sport=4000,dport=8000)/Raw('x' * 20) - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4001,dport=8000)/Raw('x' * 20) - p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000,dport=8001)/Raw('x' * 20) - -9. Send non-matched sessionid packets, check to receive packet from queue 36:: - - p=Ether()/PPPoE(sessionid=0x8)/PPP(proto=0x57)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000,dport=8000)/Raw('x' * 20) - -Test Case: Flow director for L2TPv2 PAY with default input set -============================================================== - -1. Check flow type to pctype mapping:: - - testpmd> show port 0 pctype mapping - -2. Update L2TP PAY flow type id 26 to pcytpe id 21 mapping item:: - - testpmd> port config 0 pctype mapping update 21 26 - -3. Start testpmd, set fwd rxonly, enable output print - -4. Send L2TP PAY packets, check to receive packet from queue 0:: - - p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/IP()/ - UDP(dport=1701, sport=1701)/L2TP(sessionid=0x7)/Raw('x' * 20) - -5. Use scapy to generate L2TP PAY raw packet test_l2tp.raw, - source/destination address should be swapped in the template - and traffic packets:: - - a=Ether(dst="3C:FD:FE:A3:A0:01", src="4C:FD:FE:A3:A0:01")/IP()/ - UDP(dport=1701, sport=1701)/L2TP(sessionid=0x7)/Raw('x' * 20) - -6. Setup raw flow type filter for flow director, configured queue is random - queue between 0~63, such as 36:: - - testpmd> flow_director_filter 0 mode raw add flow 26 fwd queue 36 fd_id 1 - packet test_l2tp.raw - -7. Send matched swapped traffic packet, check to receive packet from - configured queue 36:: - - p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/IP()/ - UDP(dport=1701, sport=1701)/L2TP(sessionid=0x7)/Raw('x' * 20) - -8. Default flow director input set are MAC SA and session ID, send non-matched - SA, sessionid, check to receive packet from queue 0:: - - p=Ether(src="3C:FD:FE:A3:A0:02", dst="4C:FD:FE:A3:A0:01")/IP()/ - UDP(dport=1701, sport=1701)/L2TP(sessionid=0x7)/Raw('x' * 20) - p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/IP()/ - UDP(dport=1701, sport=1701)/L2TP(sessionid=0x8)/Raw('x' * 20) - -9. Send non-matched MAC DA, check to receive packet from queue 36:: - - p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:02")/IP()/ - UDP(dport=1701, sport=1701)/L2TP(sessionid=0x7)/Raw('x' * 20) - -Test Case: Flow director for PPPoL2TP IPv4 with default input set -================================================================= - -1. Check flow type to pctype mapping:: - - testpmd> show port 0 pctype mapping - -2. Update PPPoL2TP IPv4 flow type id 23 to pcytpe id 18 mapping item:: - - testpmd> port config 0 pctype mapping update 18 23 - -3. Start testpmd, set fwd rxonly, enable output print - -4. Send PPPoL2TP IPv4 packets, check to receive packet from queue 0:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20) - -5. Use scapy to generate PPPoL2TP IPv4 raw packet test_pppol2tp.raw, - source/destination address and port should be swapped in the template - and traffic packets:: - - a=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(dst="1.1.1.1",src="2.2.2.2")/UDP(dport=4000, sport=8000)/Raw('x' * 20) - -6. Setup raw flow type filter for flow director, configured queue is random - queue between 0~63, such as 36:: - - testpmd> flow_director_filter 0 mode raw add flow 23 fwd queue 36 fd_id 1 - packet test_pppol2tp.raw - -7. Send matched swapped traffic packet, check to receive packet from - configured queue 36:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20) - -8. Send non-matched inner src IP, inner dst IP, sport, dport packets, check to - receive packet from queue 0:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.2",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20) - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.1",dst="2.2.2.3")/UDP(sport=4000, dport=8000)/Raw('x' * 20) - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4001, dport=8000)/Raw('x' * 20) - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8001)/Raw('x' * 20) - -Test Case: Flow director for PPPoL2TP IPv6 with default input set -================================================================= - -1. Check flow type to pctype mapping:: - - testpmd> show port 0 pctype mapping - -2. Update PPPoL2TP IPv6 flow type id 24 to pcytpe id 19 mapping item:: - - testpmd> port config 0 pctype mapping update 19 24 - -3. Start testpmd, set fwd rxonly, enable output print - -4. Send PPPoL2TP IPv6 packets, check to receive packet from queue 0:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000, dport=8000)/Raw('x' * 20) - -5. Use scapy to generate PPPoL2TP IPv6 raw packet test_pppol2tp.raw, - source/destination address and port should be swapped in the template - and traffic packets:: - - a=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(dst="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - src="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(dport=4000, sport=8000)/Raw('x' * 20) - -6. Setup raw flow type filter for flow director, configured queue is random - queue between 0~63, such as 36:: - - testpmd> flow_director_filter 0 mode raw add flow 24 fwd queue 36 - fd_id 1 packet test_pppol2tp.raw - -7. Send matched swapped traffic packet, check to receive packet from - configured queue 36:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000, dport=8000)/Raw('x' * 20) - -8. Send non-matched inner src IPv6, inner dst IPv6, sport, dport packets, - check to receive packet from queue 0:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0002", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000, dport=8000)/Raw('x' * 20) - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0002")/ - UDP(sport=4000, dport=8000)/Raw('x' * 20) - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4001, dport=8000)/Raw('x' * 20) - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000, dport=8001)/Raw('x' * 20) - -Test Case: Flow director for PPPoL2TP IPv4 according to inner destination IPv4 -============================================================================== - -1. Check flow type to pctype mapping:: - - testpmd> show port 0 pctype mapping - -2. Update PPPoL2TP IPv4 flow type id 23 to pcytpe id 18 mapping item:: - - testpmd> port config 0 pctype mapping update 18 23 - -3. Reset PPPoL2TP IPv4 flow director input set configuration:: - - testpmd> port config 0 pctype 18 fdir_inset clear all - -4. Inner dst IP words are 27 and 28, enable flow director input set - for them:: - - testpmd> port config 0 pctype 18 fdir_inset set field 27 - testpmd> port config 0 pctype 18 fdir_inset set field 28 - -5. Start testpmd, set fwd rxonly, enable output print - -6. Send PPPoL2TP IPv4 packets, check to receive packet from queue 0:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20) - -7. Use scapy to generate PPPoL2TP IPv4 raw packet test_pppol2tp.raw, - source/destination address and port should be swapped in the template - and traffic packets:: - - a=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(dst="1.1.1.1",src="2.2.2.2")/UDP(dport=4000, sport=8000)/Raw('x' * 20) - -8. Setup raw flow type filter for flow director, configured queue is random - queue between 0~63, such as 36:: - - testpmd> flow_director_filter 0 mode raw add flow 23 fwd queue 36 - fd_id 1 packet test_pppol2tp.raw - -9. Send matched swapped traffic packet, check to receive packet from - configured queue 36:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20) - -10. Send matched inner dst IP, but non-matched inner src IP, sport, - dport packets, check to receive packet from queue 36:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.2",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20) - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4001, dport=8000)/Raw('x' * 20) - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8001)/Raw('x' * 20) - -11. Send non-matched inner dst IP packets, check to receive packet from - queue 0:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/ - IP(src="1.1.1.1",dst="2.2.2.3")/UDP(sport=4000, dport=8000)/Raw('x' * 20) - -Test Case: Flow director for PPPoL2TP IPv6 according to inner destination IPv6 -============================================================================== - -1. Check flow type to pctype mapping:: - - testpmd> show port 0 pctype mapping - -2. Update PPPoL2TP IPv6 flow type id 24 to pcytpe id 19 mapping item:: - - testpmd> port config 0 pctype mapping update 19 24 - -3. Reset PPPoL2TP IPv6 flow director input set configuration:: - - testpmd> port config 0 pctype 19 fdir_inset clear all - -4. Inner dst IPv6 words are 21~28, enable flow director input set - for them:: - - testpmd> port config 0 pctype 19 fdir_inset set field 21 - testpmd> port config 0 pctype 19 fdir_inset set field 22 - testpmd> port config 0 pctype 19 fdir_inset set field 23 - testpmd> port config 0 pctype 19 fdir_inset set field 24 - testpmd> port config 0 pctype 19 fdir_inset set field 25 - testpmd> port config 0 pctype 19 fdir_inset set field 26 - testpmd> port config 0 pctype 19 fdir_inset set field 27 - testpmd> port config 0 pctype 19 fdir_inset set field 28 - -5. Start testpmd, set fwd rxonly, enable output print - -6. Send PPPoL2TP IPv6 packets, check to receive packet from queue 0:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000, dport=8000)/Raw('x' * 20) - -7. Use scapy to generate PPPoL2TP IPv6 raw packet test_pppol2tp.raw, - source/destination address and port should be swapped in the template - and traffic packets:: - - a=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(dst="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - src="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(dport=4000, sport=8000)/Raw('x' * 20) - -8. Setup raw flow type filter for flow director, configured queue is random - queue between 0~63, such as 36:: - - testpmd> flow_director_filter 0 mode raw add flow 24 fwd queue 36 - fd_id 1 packet test_pppol2tp.raw - -9. Send matched swapped traffic packet, check receive packet from - configured queue 36:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000, dport=8000)/Raw('x' * 20) - -10. Send matched inner dst IPv6, but non-matched inner src IPv6, - sport, dport packets, check to receive packet from queue 36:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0002", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000, dport=8000)/Raw('x' * 20) - p=(Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4001, dport=8000)/Raw('x' * 20) - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/ - UDP(sport=4000, dport=8001)/Raw('x' * 20) - -11. Send non-matched inner dst IPv6 packets, check to receive packet - from queue 0:: - - p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/ - IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001", - dst="2001:0db8:85a3:0000:0000:8a2e:0370:0002")/ - UDP(sport=4000, dport=8000)/Raw('x' * 20)