From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id EFEC6A00BE; Fri, 12 Jun 2020 04:48:33 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CB29C2D13; Fri, 12 Jun 2020 04:48:33 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 8FD342C60 for ; Fri, 12 Jun 2020 04:48:31 +0200 (CEST) IronPort-SDR: 1NX+bWPmGTQsQKXWQ/JGqHytlR3u3+zOJ6EhvNwFw1WzyHvD/3SODVqsbAikRPRlo3nGq9E5ym zDCE/EwIKg8A== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2020 19:48:30 -0700 IronPort-SDR: my1oVErTyoyItxfQizIa8VdP+T4pWyB2k7BfdCuvhBWU8CLBwPg8MP33zBJT9gP7424tMTqMte HNniHm6sbrdw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,501,1583222400"; d="scan'208";a="307119127" Received: from npg_dpdk_nic_yuanpeng_tester62.sh.intel.com ([10.67.119.61]) by orsmga008.jf.intel.com with ESMTP; 11 Jun 2020 19:48:29 -0700 From: Peng Yuan To: dts@dpdk.org Cc: Peng Yuan Date: Fri, 12 Jun 2020 09:55:38 +0000 Message-Id: <1591955738-47952-1-git-send-email-yuan.peng@intel.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dts] [PATCH]test_plans: correct the discription error for PFCP case X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" Correct the discription error for PFCP case. Signed-off-by: Peng Yuan diff --git a/test_plans/cvl_advanced_iavf_rss_test_plan.rst b/test_plans/cvl_advanced_iavf_rss_test_plan.rst index ce68ebb..d42f4ec 100644 --- a/test_plans/cvl_advanced_iavf_rss_test_plan.rst +++ b/test_plans/cvl_advanced_iavf_rss_test_plan.rst @@ -44,7 +44,11 @@ to hash IP and ports domain, diversion the packets to the difference queues in V * GTPU_DOWN and GTPU_UP rule creat and package * symmetric hash by rte_flow RSS action. * input set change by rte_flow RSS action. - +* For PFCP protocal, the destination port value of the outer UDP header is equal to 8805(0x2265) + PFCP Node headers shall be identified when the Version field is equal to 001 and the S field is equal 0. + PFCP Session headers shall be identified when the Version field is equal to 001 and the S field is equal 1. + CVL only support RSS hash for PFCP Session SEID value. + Pattern and input set --------------------- .. table:: @@ -128,6 +132,10 @@ Pattern and input set +-------------------------------+---------------------------+----------------------------------------------------------------------------------+ | | MAC_IPV4_CVLAN | [VLAN ID] | +-------------------------------+---------------------------+----------------------------------------------------------------------------------+ + | | MAC_IPV4_PFCP_SESSION | [SEID] | + +-------------------------------+---------------------------+----------------------------------------------------------------------------------+ + | | MAC_IPV6_PFCP_SESSION | [SEID] | + +-------------------------------+---------------------------+----------------------------------------------------------------------------------+ .. table:: @@ -295,12 +303,14 @@ Compile DPDK and testpmd:: testpmd>set verbose 1 testpmd>rx_vxlan_port add 4789 0 -5. start scapy and configuration NVGRE and GTP profile in tester +5. start scapy and configuration NVGRE, PFCP and GTP profile in tester + add pfcp.py to "scapy/layers", add "pfcp" to "load_layers" in "scapy/config.py", scapy:: >>> import sys >>> sys.path.append('~/dts/dep') >>> from nvgre import NVGRE + >>> from pfcp import PFCP >>> from scapy.contrib.gtp import * Test case: MAC_IPV4_L3SRC @@ -3713,86 +3723,9 @@ Test case: MAC_ETH: #. Destory rule on port 0 testpmd> flow flush 0 -========================================== -CVL Support RSS for PFCP in advanced iavf -========================================== - -Description -=========== - -For PFCP protocal, the destination port value of the outer UDP header is equal to 8805(0x2265) -PFCP Node headers shall be identified when the Version field is equal to 001 and the S field is equal 0. -PFCP Session headers shall be identified when the Version field is equal to 001 and the S field is equal 1. - -CVL supports PFCP protocols in advanced iavf, the supported pattern as below:: - - +-------------------------+------------------------+ - | Packet type | RSS input set | - +-------------------------+------------------------+ - | MAC_IPV4_PFCP_NODE | - | - +-------------------------+------------------------+ - | MAC_IPV4_PFCP_SESSION | SEID | - +-------------------------+------------------------+ - | MAC_IPV6_PFCP_NODE | - | - +-------------------------+------------------------+ - | MAC_IPV6_PFCP_SESSION | SEID | - +-------------------------+------------------------+ - -Prerequisites -============= - -Create a VF interface from kernel PF interfaces, and then attach them to VM. Suppose PF is 0000:18:00.0 . -Generate a VF using commands below and make them in pci-stub mods. - -NIC: 4x25G or 2x100G, several TC need breakout mode, then 2x100G is required -PF: The 1st PF's PCI address 0000:18:00.0 , kernel interface name enp24s0f0 . The 2nd PF's PCI address 0000:18:00.1 , kernel interface name enp24s0f1 -VF: The VFs generated by 0000:18:00.0 , are 0000:18:02.x , The VFs generated by 0000:18:00.1 , are 0000:18:0a.x - -Copy correct ``ice.pkg`` into ``/usr/lib/firmware/intel/ice/ddp/``, -For the test cases, comms package is expected. - -Prepare test toplogoy, in the test case, it requires - -- 1 Intel E810 interface -- 1 network interface enp134s0f0 for sending test packet, which could be connect to the E810 interface -- Directly connect the 2 interfaces -- Latest driver and comms pkgs of version - -Compile DPDK and testpmd:: - - make install -j T=x86_64-native-linuxapp-gcc - -1. Create 1 VF from a PF, and set VF mac address:: - - echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/sriov_numvfs - ip link set enp24s0f0 vf 0 mac 00:11:22:33:44:55 - -2. Bind VF to vfio-pci:: - - ./usertools/dpdk-devbind.py -b vfio-pci 0000:18:02.0 -3. Bring up PF and tester port:: - - ifconfig enp24s0f0 up - ifconfig enp134s0f0 up - -4. Launch the testpmd:: - - ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w 18:02.0 -- -i --rxq=16 --txq=16 --portmask=0x1 --nb-cores=2 - testpmd>set verbose 1 - testpmd>set fwd rxonly - testpmd>start - -5. on tester side, add pfcp.py to "scapy/layers", and copy it to "/root". - add "pfcp" to "load_layers" in "scapy/config.py", then start scapy:: - - >>> import sys - >>> sys.path.append('/root) - >>> from pfcp import PFCP - >>>from scapy.contrib.pfcp import * - -Test Case 01: RSS support MAC_IPV4_PFCP_SESSION -=============================================== +Test Case: RSS support MAC_IPV4_PFCP_SESSION +============================================ 1. DUT create rule for RSS type of MAC_IPV4_PFCP_SESSION:: @@ -3800,17 +3733,19 @@ Test Case 01: RSS support MAC_IPV4_PFCP_SESSION 3. Tester use scapy to send the 100 MAC_IPV4_PFCP_SESSION pkts with different SEID:: - sendp([Ether(dst="00:11:22:33:44:55")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/Raw('x' * 80)],iface="enp177s0f1,count=100") - -4. Verify 100 pkts has been sent, -and check the 100 pkts has been recieved by DUT in differently 16 queues evenly with differently RSS hash value:: + sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(sport=22,dport=8805)/PFCP(Sfield=1, SEID=12)/Raw('x' * 80)],iface="enp134s0f1") + + The SEID can be set to random value. + +4. check the 100 pkts has been received by DUT in differently 16 queues evenly with differently RSS hash value:: 5. send MAC_IPV4_PFCP_NODE and MAC_IPV6_PFCP_SESSION pkts:: - sendp([Ether(dst="00:11:22:33:44:55")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=0)/Raw('x' * 80)],iface="enp177s0f1", count=100) - sendp([Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/Raw('x' * 80)],iface="enp177s0f1",count=100) + sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(sport=22,dport=8805)/PFCP(Sfield=0)/Raw('x' * 80)],iface="enp134s0f1") + sendp([Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(sport=22,dport=8805)/PFCP(Sfield=1, SEID=12)/Raw('x' * 80)],iface="enp134s0f1") - check the packet is distributed to queue 0. + The SEID can be set to random value. + check the packets are distributed to queue 0. 6. DUT verify rule can be listed and destroyed:: @@ -3820,12 +3755,11 @@ and check the 100 pkts has been recieved by DUT in differently 16 queues evenly testpmd> flow destroy 0 rule 0 -8. Verify 100 pkts has been sent, -and check the 100 pkts has been recieved by DUT in queue 0:: - +8. Send the 100 matched pkts, +and check the 100 pkts has been received by DUT in queue 0:: -Test Case 02: RSS support MAC_IPV6_PFCP_SESSION -=============================================== +Test Case: RSS support MAC_IPV6_PFCP_SESSION +============================================ 1. DUT create rule for the RSS type for MAC_IPV6_PFCP_SESSION:: @@ -3833,17 +3767,19 @@ Test Case 02: RSS support MAC_IPV6_PFCP_SESSION 2. Tester use scapy to send the 100 MAC_IPV6_PFCP_SESSION pkts with different SEID:: - sendp([Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/Raw('x' * 80)],iface="enp177s0f1",count=100) + sendp([Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(sport=22,dport=8805)/PFCP(Sfield=1, SEID=12)/Raw('x' * 80)],iface="enp134s0f1") -3. Verify 100 pkts has been sent, -and check the 100 pkts has been recieved by DUT in differently 16 queues evenly with differently RSS hash value:: + The SEID can be set to random value. + +3. Check the 100 pkts has been recieved by DUT in differently 16 queues evenly with differently RSS hash value:: 4. send MAC_IPV6_PFCP_NODE and MAC_IPV4_PFCP_SESSION pkts:: - sendp([Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=0)/Raw('x' * 80)],iface="enp177s0f1, count=100") - sendp([Ether(dst="00:11:22:33:44:55")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/Raw('x' * 80)],iface="enp177s0f1, count=100") + sendp([Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(sport=22,dport=8805)/PFCP(Sfield=0)/Raw('x' * 80)],iface="enp134s0f1") + sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(sport=22,dport=8805)/PFCP(Sfield=1, SEID=12)/Raw('x' * 80)],iface="enp134s0f1") - check the packet is distributed to different queue. + The SEID can be set to random value. + check the packets are distributed to queue 0. 6. DUT verify rule can be listed and destroyed:: @@ -3853,11 +3789,11 @@ and check the 100 pkts has been recieved by DUT in differently 16 queues evenly testpmd> flow destroy 0 rule 0 -8. Verify 100 pkts has been sent, -and check the 100 pkts has been recieved by DUT in queue 0:: +8. Send the 100 matched pkts, +and check the 100 pkts has been received by DUT in queue 0:: -Test Case 03: RSS Negative test with OS default -==================================================== +Test Case: RSS Negative test with OS default +============================================ 1. load OS package, and rmmod ice driver. insmod ice driver @@ -3875,17 +3811,3 @@ both of the rules can't be created successfully. iavf_hash_create(): fail to add RSS configure iavf_flow_create(): Failed to create flow port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): Failed to create parser engine.: Invalid argument - - - - - - - - - - - - - - \ No newline at end of file -- 2.7.4