From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 796DE2BA0 for ; Fri, 22 Apr 2016 04:22:51 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP; 21 Apr 2016 19:22:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,515,1455004800"; d="scan'208";a="789831020" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by orsmga003.jf.intel.com with ESMTP; 21 Apr 2016 19:22:49 -0700 Received: from shecgisg003.sh.intel.com (shecgisg003.sh.intel.com [10.239.29.90]) by shvmail01.sh.intel.com with ESMTP id u3M2MmfY008613; Fri, 22 Apr 2016 10:22:48 +0800 Received: from shecgisg003.sh.intel.com (localhost [127.0.0.1]) by shecgisg003.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id u3M2MjlQ025524; Fri, 22 Apr 2016 10:22:47 +0800 Received: (from yliu84x@localhost) by shecgisg003.sh.intel.com (8.13.6/8.13.6/Submit) id u3M2MjDp025520; Fri, 22 Apr 2016 10:22:45 +0800 From: Marvin Liu To: dts@dpdk.org Cc: Marvin Liu Date: Fri, 22 Apr 2016 10:22:44 +0800 Message-Id: <1461291764-25488-1-git-send-email-yong.liu@intel.com> X-Mailer: git-send-email 1.7.4.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dts] =?utf-8?q?=5BPATCH=5D_test=5Fplans=3A_add_test_plan_for_IPi?= =?utf-8?q?nGRE?= 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: , X-List-Received-Date: Fri, 22 Apr 2016 02:22:52 -0000 This test plan will covert XL710 GRE packet detecting, checksum computing and filtering. Signed-off-by: Marvin Liu diff --git a/test_plans/ipingre_test_plan.rst b/test_plans/ipingre_test_plan.rst new file mode 100644 index 0000000..a0c0b00 --- /dev/null +++ b/test_plans/ipingre_test_plan.rst @@ -0,0 +1,188 @@ +.. Copyright (c) <2016>, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + + +==================== + Fortville IP in GRE +==================== +Generic Routing Encapsulation (GRE) is a tunneling protocol developed by +Cisco Systems that can encapsulate a wide variety of network layer protocols +inside virtual point-to-point links over an Internet Protocol network. + +This document provides test plan for Fortville GRE packet detecting, +checksum computing and filtering. + +Prerequisites +============= +1x Intel® X710 (Fortville) NICs (2x 40GbE full duplex optical ports per NIC) +plugged into the available PCIe Gen3 8-lane slot. + +1x Intel® XL710-DA4 (Eagle Fountain) (1x 10GbE full duplex optical ports per NIC) +plugged into the avaiable PCIe Gen3 8-lane slot. + +DUT board must be two sockets system and each cpu have more than 8 lcores. +W + +Test Case: GRE ipv4 packet detect +================================= +Start testpmd and enable rxonly forwarding mode:: + testpmd -c ffff -n 4 -- -i --txqflags=0x0 + testpmd> set fwd rxonly + testpmd> set verbose 1 + testpmd> start + +Send packet as table listed and packet type match each layer. + ++------------+----------+-----------+----------+-----------+ +| Outer Vlan | Outer IP | Tunel | Inner L3 | Inner L4 | ++------------+----------+-----------+----------+-----------+ +| No | Ipv4 | GRE | Ipv4 | Udp | ++------------+----------+-----------+----------+-----------+ +| No | Ipv4 | GRE | Ipv4 | Tcp | ++------------+----------+-----------+----------+-----------+ +| No | Ipv4 | GRE | Ipv4 | Sctp | ++------------+----------+-----------+----------+-----------+ +| Yes | Ipv4 | GRE | Ipv4 | Udp | ++------------+----------+-----------+----------+-----------+ +| Yes | Ipv4 | GRE | Ipv4 | Tcp | ++------------+----------+-----------+----------+-----------+ +| Yes | Ipv4 | GRE | Ipv4 | Sctp | ++------------+----------+-----------+----------+-----------+ + + +Test Case: GRE ipv6 packet detect +================================= +Start testpmd and enable rxonly forwarding mode:: + testpmd -c ffff -n 4 -- -i --txqflags=0x0 + testpmd> set fwd rxonly + testpmd> set verbose 1 + testpmd> start + +Send packet as table listed and packet type match each layer. +Ether()/IPv6(nh=47)/GRE()/IP()/UDP()/Raw('x'*40) +Ether()/IPv6(nh=47)/GRE(proto=0x86dd)/IPv6()/UDP()/Raw('x'*40) ++------------+----------+-----------+----------+-----------+ +| Outer Vlan | Outer IP | Tunel | Inner L3 | Inner L4 | ++------------+----------+-----------+----------+-----------+ +| No | Ipv6 | GRE | Ipv4 | Udp | ++------------+----------+-----------+----------+-----------+ +| No | Ipv6 | GRE | Ipv4 | Tcp | ++------------+----------+-----------+----------+-----------+ +| No | Ipv6 | GRE | Ipv4 | Sctp | ++------------+----------+-----------+----------+-----------+ +| Yes | Ipv6 | GRE | Ipv4 | Udp | ++------------+----------+-----------+----------+-----------+ +| Yes | Ipv6 | GRE | Ipv4 | Tcp | ++------------+----------+-----------+----------+-----------+ +| Yes | Ipv6 | GRE | Ipv4 | Sctp | ++------------+----------+-----------+----------+-----------+ + ++------------+----------+-----------+----------+-----------+ +| Outer Vlan | Outer IP | Tunel | Inner L3 | Inner L4 | ++------------+----------+-----------+----------+-----------+ +| No | Ipv6 | GRE | Ipv6 | Udp | ++------------+----------+-----------+----------+-----------+ +| No | Ipv6 | GRE | Ipv6 | Tcp | ++------------+----------+-----------+----------+-----------+ +| No | Ipv6 | GRE | Ipv6 | Sctp | ++------------+----------+-----------+----------+-----------+ +| Yes | Ipv6 | GRE | Ipv6 | Udp | ++------------+----------+-----------+----------+-----------+ +| Yes | Ipv6 | GRE | Ipv6 | Tcp | ++------------+----------+-----------+----------+-----------+ +| Yes | Ipv6 | GRE | Ipv6 | Sctp | ++------------+----------+-----------+----------+-----------+ + +Test Case: GRE packet filter +============================ +Start testpmd with multi queues:: + testpmd -c ff -n 3 -- -i --rxq=4 --txq=4 --txqflags=0x0 + testpmd> set fwd rxonly + testpmd> set nbcore 4 + testpmd> set verbose 1 + testpmd> start + +Add GRE filter that forward inner ip address 0.0.0.0 to queue 3 + testpmd> tunnel_filter add 0 XX:XX:XX:XX:XX:XX YY:YY:YY:YY:YY:YY \ + 0.0.0.0 1 ipingre iip 0 3 + +Send packet inner ip address matched and check packet recevied by queue 3. + p = Ether()/IP()/GRE()/IP(dst="0.0.0.0")/UDP() + +Remove tunnel filter and check same packet recevied by queue 0 + testpmd> tunnel_filter rm 0 XX:XX:XX:XX:XX:XX YY:YY:YY:YY:YY:YY \ + 0.0.0.0 1 ipingre iip 0 3 + +Add GRE filter that forward outer ip address 0.0.0.0 to queue 3 + testpmd> tunnel_filter add 0 XX:XX:XX:XX:XX:XX YY:YY:YY:YY:YY:YY \ + 0.0.0.0 1 ipingre oip 0 3 + +Send packet outer ip address matched and check packet recevied by queue 3. + +Remove tunnel filter and check same packet recevied by queue 0. + testpmd> tunnel_filter rm 0 XX:XX:XX:XX:XX:XX YY:YY:YY:YY:YY:YY \ + 0.0.0.0 1 ipingre iip 0 3 + + +Test Case: GRE packet chksum offload +==================================== +Start testpmd with hardware checksum offload enabled:: + testpmd -c ff -n 3 -- -i --txqflags=0x0 --enable-rx-cksum --port-topology=loop + testpmd> set verbose 1 + testpmd> set fwd csum + testpmd> csum set ip hw 0 + testpmd> csum set udp hw 0 + testpmd> csum set sctp hw 0 + testpmd> csum set outer-ip hw 0 + testpmd> csum set tcp hw 0 + testpmd> csum parse_tunnel on 0 + testpmd> start + +Send packet with wrong outer IP checksum and check forwarded packet IP +checksum is correct. + Ether()/IP(chksum=0x0)/GRE()/IP()/TCP() + +Send packet with wrong inner IP checksum and check forwarded packet IP +checksum is correct. + Ether()/IP()/GRE()/IP(chksum=0x0)/TCP() + +Send packet with wrong inner TCP checksum and check forwarded packet TCP +checksum is correct. + Ether()/IP()/GRE()/IP()/TCP(chksum=0x0) + +Send packet with wrong inner UDP checksum and check forwarded packet UDP +checksum is correct. + Ether()/IP()/GRE()/IP()/UDP(chksum=0xffff) + +Send packet with wrong inner SCTP checksum and check forwarded packet SCTP +checksum is correct. + Ether()/IP()/GRE()/IP()/SCTP(chksum=0x0) \ No newline at end of file -- 1.9.3