get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/128418/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 128418,
    "url": "http://patches.dpdk.org/api/patches/128418/?format=api",
    "web_url": "http://patches.dpdk.org/project/dts/patch/20230608182742.360594-4-zhiminx.huang@intel.com/",
    "project": {
        "id": 3,
        "url": "http://patches.dpdk.org/api/projects/3/?format=api",
        "name": "DTS",
        "link_name": "dts",
        "list_id": "dts.dpdk.org",
        "list_email": "dts@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dts",
        "webscm_url": "http://git.dpdk.org/tools/dts/",
        "list_archive_url": "https://inbox.dpdk.org/dts",
        "list_archive_url_format": "https://inbox.dpdk.org/dts/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230608182742.360594-4-zhiminx.huang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20230608182742.360594-4-zhiminx.huang@intel.com",
    "date": "2023-06-08T18:27:39",
    "name": "[dst,V1,3/6] test_plans/kernelpf_vf_test_plan:add new plan to cover most of the basic vf cases",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "299899101755b3dfc522aa413f9aa8299a4ec00b",
    "submitter": {
        "id": 1685,
        "url": "http://patches.dpdk.org/api/people/1685/?format=api",
        "name": "Huang, ZhiminX",
        "email": "zhiminx.huang@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dts/patch/20230608182742.360594-4-zhiminx.huang@intel.com/mbox/",
    "series": [
        {
            "id": 28418,
            "url": "http://patches.dpdk.org/api/series/28418/?format=api",
            "web_url": "http://patches.dpdk.org/project/dts/list/?series=28418",
            "date": "2023-06-08T18:27:36",
            "name": "add new common module and add new suites",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/28418/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/128418/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/128418/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dts-bounces@dpdk.org>",
        "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])\n\tby inbox.dpdk.org (Postfix) with ESMTP id B4CFF42C5C;\n\tThu,  8 Jun 2023 12:16:22 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id AE65440A84;\n\tThu,  8 Jun 2023 12:16:22 +0200 (CEST)",
            "from mga06.intel.com (mga06b.intel.com [134.134.136.31])\n by mails.dpdk.org (Postfix) with ESMTP id F093240042\n for <dts@dpdk.org>; Thu,  8 Jun 2023 12:16:19 +0200 (CEST)",
            "from orsmga003.jf.intel.com ([10.7.209.27])\n by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 08 Jun 2023 03:16:17 -0700",
            "from unknown (HELO localhost.localdomain) ([10.239.252.96])\n by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 08 Jun 2023 03:15:57 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1686219380; x=1717755380;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=hi+TtshKmo7kVIIZnECt26h9YkY0h6D87und7c+9xEo=;\n b=b6CoKhgdTtlW1kjgldr1QR87AO9UkbyyxkEduuODV4pW/XA2WXFREmWH\n Qri62T4tEE3c6lNP+x8j7qteHSE+vE9jHQtACRrtmUHXD2r3mIXiXJyGu\n qUTAF1GN0/kV0HXeZHRtXYGRhZlHUb4crUcjL0pVXM4XOVOEDUK+fPX1b\n mBQoFu+vI6MWNSJG5Cly/i+TWPS1JMeRD2rJ5qGoRtL67chOQKrl1nDOk\n T6jyuuPl6kFy+oFaHSkGbWq+X50nRIhBSx07sW+GQvqhOlNy8NndbFX+H\n OeXqItPMK7M1GwaEw55nwms/D+Ww3GBA9QZMTurOCLQZ4GtgLA1Px+yfX w==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6600,9927,10734\"; a=\"420832836\"",
            "E=Sophos;i=\"6.00,226,1681196400\"; d=\"scan'208\";a=\"420832836\"",
            "E=McAfee;i=\"6600,9927,10734\"; a=\"660327235\"",
            "E=Sophos;i=\"6.00,226,1681196400\"; d=\"scan'208\";a=\"660327235\""
        ],
        "X-ExtLoop1": "1",
        "From": "Zhimin Huang <zhiminx.huang@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Zhimin Huang <zhiminx.huang@intel.com>",
        "Subject": "[dst][PATCH V1 3/6] test_plans/kernelpf_vf_test_plan:add new plan to\n cover most of the basic vf cases",
        "Date": "Thu,  8 Jun 2023 18:27:39 +0000",
        "Message-Id": "<20230608182742.360594-4-zhiminx.huang@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20230608182742.360594-1-zhiminx.huang@intel.com>",
        "References": "<20230608182742.360594-1-zhiminx.huang@intel.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "quoted-printable",
        "X-BeenThere": "dts@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "test suite reviews and discussions <dts.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dts/>",
        "List-Post": "<mailto:dts@dpdk.org>",
        "List-Help": "<mailto:dts-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dts-bounces@dpdk.org"
    },
    "content": "add new testplan for kernelpf_vf test suite\n\nSigned-off-by: Zhimin Huang <zhiminx.huang@intel.com>\n---\n test_plans/kernelpf_vf_test_plan.rst | 1294 ++++++++++++++++++++++++++\n 1 file changed, 1294 insertions(+)\n create mode 100644 test_plans/kernelpf_vf_test_plan.rst",
    "diff": "diff --git a/test_plans/kernelpf_vf_test_plan.rst b/test_plans/kernelpf_vf_test_plan.rst\nnew file mode 100644\nindex 00000000..7d4ecef4\n--- /dev/null\n+++ b/test_plans/kernelpf_vf_test_plan.rst\n@@ -0,0 +1,1294 @@\n+.. SPDX-License-Identifier: BSD-3-Clause\r\n+   Copyright(c) 2023 Intel Corporation\r\n+\r\n+========================\r\n+Kernel PF + VF test plan\r\n+========================\r\n+\r\n+Intel Adaptive Virtual Function is aimed to provide a common VF for VM\r\n+which means just need one unified VF driver so you don't have to reload\r\n+different VF driver when you upgrade the PF NIC.\r\n+One of the advantages is you don't have to do any modification for code or\r\n+hardware for an existing VM image running on the new NIC.\r\n+\r\n+Requirement\r\n+===========\r\n+This plan for VF only supports kernel PF scenario.\r\n+\r\n+Hardware\r\n+========\r\n+ICE/I40E driver NIC.\r\n+\r\n+Prerequisites\r\n+=============\r\n+1. Get the pci device id of DUT, for example::\r\n+\r\n+    ./usertools/dpdk-devbind.py -s\r\n+\r\n+    0000:18:00.0 'Device 1592' if=enp24s0f0 drv=ice unused=igb_uio\r\n+    0000:18:00.1 'Device 1592' if=enp24s0f1 drv=ice unused=igb_uio\r\n+\r\n+2. Create 2 VF from 2 kernel PF::\r\n+\r\n+    echo 1 > /sys/bus/pci/devices/0000\\:18\\:00.0/sriov_numvfs\r\n+    echo 1 > /sys/bus/pci/devices/0000\\:18\\:00.1/sriov_numvfs\r\n+\r\n+3. Set VF mac as 00:01:23:45:67:89::\r\n+\r\n+    ip link set $PF_INTF vf 0 mac 00:01:23:45:67:89\r\n+\r\n+4. Test IAVF cases on host or in qemu\r\n+\r\n+5. Bind VF device to vfio-pci::\r\n+\r\n+    usertools/dpdk-devbind.py --force --bind=vfio-pci 0000:18:01.0 0000:18:09.0\r\n+\r\n+launch testpmd::\r\n+\r\n+    ./<build_target>/app/dpdk-testpmd -c f -n 4 -- -i\r\n+\r\n+.. note::\r\n+\r\n+    1.the kernel driver has MAC and VLAN Anti-Spoofing feature for VFs, the default is enable.\r\n+      disabled for vfs: ip link set <ethX> vf <vf id> spoofchk {off|on}\r\n+\r\n+    2.for vf-vlan-pruning in ethtool --set-priv-flag, enable function to receive specific vlan packet.\r\n+\r\n+Test case: VF basic RX/TX\r\n+=========================\r\n+Set rxonly forward, start testpmd\r\n+\r\n+Send 100 random packets from tester, check packets can be received\r\n+\r\n+Set txonly forward, start testpmd\r\n+\r\n+Check tester could receive the packets from application generated\r\n+\r\n+Test case: VF promisc\r\n+=====================\r\n+Enable kernel trust mode::\r\n+\r\n+    ip link set $PF_INTF vf 0 trust on\r\n+\r\n+Start VF testpmd, set mac forward and enable print output\r\n+\r\n+Use scapy to send random packets with current VF0's MAC, verify the\r\n+packets can be received and forwarded by the VF.\r\n+\r\n+Use scapy to send random packets with a wrong MAC to VF0, verify the\r\n+packets can be received and forwarded by the VF.\r\n+\r\n+Disable promisc mode::\r\n+\r\n+    testpmd> set promisc all off\r\n+\r\n+Use scapy to send random packets with current VF0's MAC, verify the\r\n+packets can be received and forwarded by the VF.\r\n+\r\n+Use scapy to send random packets with a wrong MAC to VF0, verify the\r\n+packets can't be received and forwarded by the VF.\r\n+\r\n+Enable promisc mode::\r\n+\r\n+    testpmd> set promisc all on\r\n+\r\n+Use scapy to send random packets with current VF0's MAC, verify the\r\n+packets can be received and forwarded by the VF.\r\n+\r\n+Use scapy to send random packets with a wrong MAC to VF0, verify the\r\n+packets can be received and forwarded by the VF.\r\n+\r\n+Disable kernel trust mode::\r\n+\r\n+    ip link set $PF_INTF vf 0 trust off\r\n+\r\n+Test case: VF multicast\r\n+=======================\r\n+\r\n+Start VF testpmd\r\n+\r\n+Disable promisc and multicast mode::\r\n+\r\n+    testpmd> set promisc all off\r\n+    testpmd> set allmulti all off\r\n+    testpmd> start\r\n+\r\n+Send packet with current VF0's MAC, and check VF can receive the packet.\r\n+\r\n+Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can not\r\n+receive the packet.\r\n+\r\n+Enable multicast mode::\r\n+\r\n+    testpmd> set allmulti all on\r\n+\r\n+configure multicast address::\r\n+\r\n+    testpmd> mcast_addr add 0 01:80:C2:00:00:08\r\n+\r\n+Send packet with current VF0's MAC, and check VF can receive the packet.\r\n+\r\n+Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can\r\n+receive the packet.\r\n+\r\n+Test case: VF broadcast\r\n+=======================\r\n+Disable VF promisc mode::\r\n+\r\n+    testpmd> set promisc all off\r\n+    testpmd> start\r\n+\r\n+Send packet with broadcast address ff:ff:ff:ff:ff:ff, and check VF can\r\n+receive the packet\r\n+\r\n+Test case: VF unicast\r\n+=====================\r\n+Disable VF promisc and multicast mode::\r\n+\r\n+    testpmd> set promisc all off\r\n+    testpmd> set allmulti all off\r\n+    testpmd> start\r\n+\r\n+Send packet with unicast address, and check VF can receive the packet\r\n+\r\n+Test case: VF mac add filter\r\n+============================\r\n+Disable VF promisc and enable crc strip and add mac address::\r\n+\r\n+    testpmd> port stop all\r\n+    testpmd> port config all crc-strip on\r\n+    testpmd> port start all\r\n+    testpmd> set promisc all off\r\n+    testpmd> mac_addr add 0 00:11:22:33:44:55\r\n+\r\n+Use scapy to send 100 random packets with current VF0's MAC, verify the\r\n+packets can be received by one VF and can be forwarded to another VF\r\n+correctly.\r\n+\r\n+Use scapy to send 100 random packets with new added VF0's MAC, verify the\r\n+packets can be received by one VF and can be forwarded to another VF correctly.\r\n+\r\n+remove the added mac address::\r\n+\r\n+      testpmd> mac_addr remove 0 00:11:22:33:44:55\r\n+\r\n+Use scapy to send 100 random packets to the deleted MAC to VF0, verify the\r\n+packets can't be received by one VF and also can't be forwarded to another\r\n+VF correctly\r\n+\r\n+Use scapy to send 100 random packets with a wrong MAC to VF0, verify the\r\n+packets can't be received by one VF and also can't be forwarded to another\r\n+VF correctly.\r\n+\r\n+Test case: VF vlan insertion\r\n+============================\r\n+\r\n+Disable VF vlan strip::\r\n+\r\n+    testpmd> vlan set strip off 0\r\n+\r\n+Set vlan id 20 for tx_vlan::\r\n+\r\n+    testpmd> port stop all\r\n+    testpmd> tx_vlan set 0 20\r\n+    testpmd> vlan set filter on 0\r\n+    testpmd> rx_vlan set 0 20\r\n+    testpmd> port start all\r\n+    testpmd> set fwd mac\r\n+    testpmd> start\r\n+\r\n+Send normal packet::\r\n+\r\n+    p=Ether(dst=\"00:01:23:45:67:89\")/IP()/Raw(load='X'*30)\r\n+\r\n+Verify packet that out from VF contains the vlan tag 20\r\n+\r\n+Test case: VF vlan strip\r\n+========================\r\n+\r\n+Enable VF vlan strip::\r\n+\r\n+    testpmd> vlan set filter on 0\r\n+    testpmd> rx_vlan add 20 0\r\n+    testpmd> vlan set strip on 0\r\n+    testpmd> set fwd mac\r\n+    testpmd> set verbose 1\r\n+    testpmd> start\r\n+\r\n+Send packets with vlan tag::\r\n+\r\n+    p=Ether(dst=\"00:01:23:45:67:89\")/Dot1Q(id=0x8100,vlan=20)/IP()/Raw(load='X'*30)\r\n+\r\n+Check that out from VF doesn't contain the vlan tag.\r\n+\r\n+Disable VF vlan strip::\r\n+\r\n+    testpmd> vlan set strip off 0\r\n+\r\n+Send packets with vlan tag::\r\n+\r\n+    Ether(dst=\"00:01:23:45:67:89\")/Dot1Q(id=0x8100,vlan=20)/IP()/Raw(load='X'*30)\r\n+\r\n+Check that out from VF contains the vlan tag.\r\n+\r\n+Test case: VF vlan filter\r\n+=========================\r\n+\r\n+Enable vlan filter::\r\n+\r\n+    testpmd> vlan set filter on 0\r\n+    testpmd> rx_vlan add 20 0\r\n+    testpmd> vlan set strip off 0\r\n+    testpmd> set promisc all off\r\n+    testpmd> set fwd mac\r\n+    testpmd> set verbose 1\r\n+    testpmd> start\r\n+\r\n+Send packets with vlan tag::\r\n+\r\n+    p=Ether(dst=\"00:01:23:45:67:89\")/Dot1Q(id=0x8100,vlan=20)/IP()/Raw(load='X'*30)\r\n+\r\n+Check packets can be received and forwarded with vlan tag.\r\n+\r\n+Send packets with unmatched vlan tag::\r\n+\r\n+    p=Ether(dst=\"00:01:23:45:67:89\")/Dot1Q(id=0x8100,vlan=30)/IP()/Raw(load='X'*30)\r\n+\r\n+Check packets can not be received and forwarded.\r\n+\r\n+Disable VF vlan filter::\r\n+\r\n+    testpmd> vlan set filter off 0\r\n+\r\n+Send packets with vlan tag::\r\n+\r\n+    Ether(dst=\"00:01:23:45:67:89\")/Dot1Q(id=0x8100,vlan=20)/IP()/Raw(load='X'*30)\r\n+\r\n+if vf-vlan-pruning is on::\r\n+\r\n+    Check packets can be received and forwarded with vlan tag.\r\n+\r\n+if vf-vlan-pruning is off or not have this option::\r\n+\r\n+    Check packets can not be received and forwarded\r\n+\r\n+Test case: VF vlan promisc\r\n+==========================\r\n+\r\n+Enable promisc and disable vlan filter::\r\n+\r\n+    testpmd> port stop all\r\n+    testpmd> set promisc all on\r\n+    testpmd> set verbose 1\r\n+    testpmd> vlan set filter off 0\r\n+    testpmd> vlan set strip off 0\r\n+    testpmd> set fwd mac\r\n+    testpmd> port start all\r\n+    testpmd> start\r\n+\r\n+Send 10 random packets with vlan tag::\r\n+\r\n+    Ether(dst=\"00:01:23:45:67:89\",type=0x8100)/Dot1Q(vlan=100,type=0x0800)/IP(src=\"196.222.232.1\")/(\"X\"*480)\r\n+    ...\r\n+\r\n+if vf-vlan-pruning is on::\r\n+\r\n+    Check packets can be received and forwarded.\r\n+\r\n+if vf-vlan-pruning is off or not have this option::\r\n+\r\n+    Check packets can not be received and forwarded.\r\n+\r\n+Send 10 random packets without vlan tag::\r\n+\r\n+    Ether(dst=\"00:01:23:45:67:89\")/IP(src=\"196.222.232.1\")/(\"X\"*480)\r\n+    ...\r\n+\r\n+Check packets can be received and forwarded.\r\n+\r\n+Test case: VF add pvid base rx\r\n+==============================\r\n+\r\n+Add pvid on VF0 from PF device::\r\n+\r\n+     ip link set $PF_INTF vf 0 vlan 2\r\n+\r\n+Check pf device show correct pvid setting::\r\n+\r\n+     ip link show ens259f0\r\n+     ...\r\n+     vf 0 MAC 00:00:00:00:00:00, vlan 1, spoof checking on, link-state auto\r\n+\r\n+\r\n+Start testpmd\r\n+\r\n+Send packet with same vlan id and check VF can receive\r\n+\r\n+Send packet without vlan and check VF can't receive\r\n+\r\n+Send packet with wrong vlan id and check Vf can't receive\r\n+\r\n+Remove added vlan from PF device::\r\n+\r\n+     ip link set $PF_INTF vf 0 vlan 0\r\n+\r\n+Restart testpmd and send packet without vlan and check VF can receive\r\n+\r\n+Set packet with vlan id 0 and check VF can receive\r\n+\r\n+Set packet with random id 1-4095\r\n+\r\n+if vf-vlan-pruning is on::\r\n+\r\n+    Check packets can be received and forwarded.\r\n+\r\n+if vf-vlan-pruning is off or not have this option::\r\n+\r\n+    Check packets can not be received and forwarded\r\n+\r\n+\r\n+send vlan=0 and not vlan pkt, also receive\r\n+\r\n+Test case: VF add pvid base tx\r\n+==============================\r\n+Add pvid on VF0 from PF device::\r\n+\r\n+     ip link set $PF_INTF vf 0 vlan 2\r\n+\r\n+Start testpmd with mac forward mode::\r\n+\r\n+     testpmd> set fwd mac\r\n+     testpmd> start\r\n+\r\n+Send packet from tester port1 and check packet received by tester port0::\r\n+\r\n+     Check port1 received packet with configured vlan 2\r\n+\r\n+Test case: VF vlan rx combination\r\n+=================================\r\n+Start testpmd with rxonly mode and parameter \"--enable-hw-vlan\"::\r\n+\r\n+     testpmd> set fwd rxonly\r\n+     testpmd> set verbose 1\r\n+     testpmd> start\r\n+\r\n+.. note::\r\n+\r\n+     parameter \"--enable-hw-vlan\" not support nic: IXGBE_10G-82599_SFP.\r\n+\r\n+Send packet without vlan and check packet received\r\n+\r\n+Send packet with vlan 0 and check packet received\r\n+\r\n+Add vlan on VF0 from VF driver::\r\n+\r\n+     testpmd> rx_vlan add 1 0\r\n+\r\n+Send packet with vlan0/1 and check packet received\r\n+\r\n+Rerun with step5-6 with random vlan and max vlan 4095\r\n+\r\n+Remove vlan on VF0::\r\n+\r\n+     rx_vlan rm 1 0\r\n+\r\n+Send packet with vlan 0 and check packet received\r\n+\r\n+Send packet without vlan and check packet received\r\n+\r\n+Send packet with vlan 1\r\n+\r\n+if vf-vlan-pruning is on::\r\n+\r\n+    Check packets can be received and forwarded.\r\n+\r\n+if vf-vlan-pruning is off or not have this option::\r\n+\r\n+    Check packets can not be received and forwarded.\r\n+\r\n+Test case: VF RSS\r\n+=================\r\n+\r\n+Start command with multi-queues like below::\r\n+\r\n+   ./<build_target>/app/dpdk-testpmd -c f -n 4 -- -i --txq=4 --rxq=4\r\n+\r\n+Show RSS RETA configuration::\r\n+\r\n+    testpmd> show port 0 rss reta 64 (0xffffffffffffffff)\r\n+\r\n+    RSS RETA configuration: hash index=0, queue=0\r\n+    RSS RETA configuration: hash index=1, queue=1\r\n+    RSS RETA configuration: hash index=2, queue=2\r\n+    RSS RETA configuration: hash index=3, queue=3\r\n+    ...\r\n+    RSS RETA configuration: hash index=60, queue=0\r\n+    RSS RETA configuration: hash index=61, queue=1\r\n+    RSS RETA configuration: hash index=62, queue=2\r\n+    RSS RETA configuration: hash index=63, queue=3\r\n+\r\n+Config hash reta table::\r\n+\r\n+    testpmd> port config 0 rss reta (0,3)\r\n+    testpmd> port config 0 rss reta (1,2)\r\n+    testpmd> port config 0 rss reta (2,1)\r\n+    testpmd> port config 0 rss reta (3,0)\r\n+\r\n+Check RSS RETA configuration has changed::\r\n+\r\n+    testpmd> show port 0 rss reta 64 (0xffffffffffffffff)\r\n+\r\n+    RSS RETA configuration: hash index=0, queue=3\r\n+    RSS RETA configuration: hash index=1, queue=2\r\n+    RSS RETA configuration: hash index=2, queue=2\r\n+    RSS RETA configuration: hash index=3, queue=1\r\n+\r\n+Enable IP/TCP/UDP RSS::\r\n+\r\n+  testpmd> port config all rss (all|ip|tcp|udp|sctp|ether|port|vxlan|geneve|nvgre|none)\r\n+\r\n+Send different flow types' IP/TCP/UDP packets to VF port, check packets are\r\n+received by different configured queues.\r\n+\r\n+Test case: VF RSS hash key\r\n+==========================\r\n+\r\n+Start command with multi-queues like below::\r\n+\r\n+   ./<build_target>/app/dpdk-testpmd -c f -n 4 -- -i --txq=4 --rxq=4\r\n+\r\n+Show port rss hash key::\r\n+\r\n+    testpmd> show port 0 rss-hash key\r\n+\r\n+Set rxonly fwd, enable print, start testpmd::\r\n+\r\n+    testpmd> set fwd rxonly\r\n+    testpmd> set verbose 1\r\n+    testpmd> start\r\n+\r\n+Send ipv4 packets, mark the RSS hash value::\r\n+\r\n+    p=Ether(dst=\"56:0A:EC:50:A4:28\")/IP(src=\"1.2.3.4\")/Raw(load='X'*30)\r\n+\r\n+Update ipv4 different hash key::\r\n+\r\n+    testpmd> port config 0 rss-hash-key ipv4 1b9d58a4b961d9cd1c56ad1621c3ad51632c16a5d16c21c3513d132c135d132c13ad1531c23a51d6ac49879c499d798a7d949c8a\r\n+\r\n+Show port rss hash key, check the key is same to configured key::\r\n+\r\n+    testpmd> show port 0 rss-hash key\r\n+    RSS functions:\r\n+     all ipv4 ipv6 ip\r\n+    RSS key:\r\n+    1B9D58A4B961D9CD1C56AD1621C3AD51632C16A5D16C21C3513D132C135D132C13AD1531C23A51D6AC49879C499D798A7D949C8A\r\n+\r\n+Send ipv4 packets, check RSS hash value is different::\r\n+\r\n+    p=Ether(dst=\"56:0A:EC:50:A4:28\")/IP(src=\"1.2.3.4\")/Raw(load='X'*30)\r\n+\r\n+Test case: test rxq txq number inconsistent\r\n+===========================================\r\n+\r\n+Start the testpmd with rxq not equal to txq::\r\n+\r\n+    ./<build_target>/app/dpdk-testpmd -l 1-9 -n 2 -- -i --rxq=4 --txq=8\r\n+\r\n+.. note::\r\n+     queue pairs in number of 1, 2, 4, 8, 16, 32, 64, etc.\r\n+     For vf of ixgbe, the maximum number of rxq and txq supported is 4.\r\n+\r\n+Set rxonly fwd, enable print, start testpmd::\r\n+\r\n+    testpmd> set fwd rxonly\r\n+    testpmd> set verbose 1\r\n+    testpmd> start\r\n+\r\n+Send different hash types' packets with different keywords, then check rx port\r\n+    could receive packets by different queues::\r\n+\r\n+      sendp([Ether(dst=\"00:01:23:45:67:89\")/IP(src=\"192.168.0.4\", dst=RandIP())], iface=\"eth3\")\r\n+\r\n+Check the total Rx packets in all the RxQ should be equal to the total HW Rx packets::\r\n+\r\n+    testpmd> show fwd stats all\r\n+    ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------\r\n+    RX-packets: 252            TX-packets: 0              TX-dropped: 0\r\n+\r\n+    ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------\r\n+    RX-packets: 257            TX-packets: 0              TX-dropped: 0\r\n+\r\n+    ------- Forward Stats for RX Port= 0/Queue= 2 -> TX Port= 0/Queue= 2 -------\r\n+    RX-packets: 259            TX-packets: 0              TX-dropped: 0\r\n+\r\n+    ------- Forward Stats for RX Port= 0/Queue= 3 -> TX Port= 0/Queue= 3 -------\r\n+    RX-packets: 256            TX-packets: 0              TX-dropped: 0\r\n+\r\n+    ---------------------- Forward statistics for port 0  ----------------------\r\n+    RX-packets: 1024           RX-dropped: 0             RX-total: 1024\r\n+    TX-packets: 0              TX-dropped: 0             TX-total: 0\r\n+    ----------------------------------------------------------------------------\r\n+\r\n+    +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++\r\n+    RX-packets: 1024           RX-dropped: 0             RX-total: 1024\r\n+    TX-packets: 0              TX-dropped: 0             TX-total: 0\r\n+    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n+\r\n+Test case: VF port stop/start\r\n+=============================\r\n+\r\n+Stop VF port::\r\n+\r\n+    testpmd> port stop all\r\n+\r\n+Start VF port::\r\n+\r\n+    testpmd> port start all\r\n+\r\n+Repeat above stop and start port for 10 times\r\n+\r\n+Send packets from tester\r\n+\r\n+Check VF could receive packets\r\n+\r\n+Test case: VF statistics reset\r\n+==============================\r\n+\r\n+Check VF port stats::\r\n+\r\n+    testpmd> show port stats all\r\n+\r\n+Clear VF port stats::\r\n+\r\n+    testpmd> clear port stats all\r\n+\r\n+Check VF port stats, RX-packets and TX-packets are 0\r\n+\r\n+Set mac forward, enable print out\r\n+\r\n+Send 100 packets from tester\r\n+\r\n+Check VF port stats, RX-packets and TX-packets are 100\r\n+\r\n+Clear VF port stats\r\n+\r\n+Check VF port stats, RX-packets and TX-packets are 0\r\n+\r\n+Test case: VF information\r\n+=========================\r\n+\r\n+Start testpmd\r\n+\r\n+Show VF port information, check link, speed...information correctness::\r\n+\r\n+    testpmd> show port info all\r\n+\r\n+Set mac forward, enable print out\r\n+\r\n+Send 100 packets from tester\r\n+\r\n+Check VF port stats, RX-packets and TX-packets are 100\r\n+\r\n+Test case: VF xstats check\r\n+==========================\r\n+\r\n+Launch testpmd and enable rss::\r\n+\r\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c f -n 4 -- -i --rxq=4 --txq=4 --max-pkt-len=9000\r\n+    testpmd> port config all rss all\r\n+    testpmd> set fwd mac\r\n+\r\n+.. Note::\r\n+\r\n+   8259x family VF device jumbo frame size setting shared with PF device.\r\n+   ifconfig PF_intf mtu 3000\r\n+\r\n+show the xstats before packet forwarding, all the value are 0.\r\n+\r\n+Start forward and send 100 packets with random src IP address,\r\n+   then stop forward.\r\n+\r\n+Check stats and xstats::\r\n+\r\n+    testpmd> stop\r\n+\r\n+    testpmd> show port stats all\r\n+\r\n+    testpmd> show port xstats all\r\n+\r\n+verify rx_good_packets, RX-packets of port 0 and tx_good_packets, TX-packets of port 1 are both 100.\r\n+rx_good_bytes, RX-bytes of port 0 and tx_good_bytes, TX-bytes of port 1 are the same.\r\n+Intel® Ethernet 700 Series does not support hardware per queue stats,\r\n+so rx_qx_packets and rx_qx_bytes are both 0.\r\n+tx_qx_packets and tx_qx_bytes are both 0 too.\r\n+\r\n+Clear stats::\r\n+\r\n+      testpmd> clear port stats all\r\n+\r\n+Check stats and xstats, verify rx_good_packets, RX-packets of port 0 and tx_good_packets, TX-packets of port 1 are both 0.\r\n+\r\n+Repeat above 4 and 5 steps.\r\n+\r\n+Clear xstats::\r\n+\r\n+    testpmd> clear port xstats all\r\n+\r\n+Check stats and xstats, verify rx_good_packets, RX-packets of port 0 and tx_good_packets, TX-packets of port 1 are both 0.\r\n+\r\n+Test case: IAVF DUAL VLAN filtering\r\n+===================================\r\n+\r\n+enable vlan filtering on port VF::\r\n+\r\n+    testpmd> set fwd mac\r\n+    Set mac packet forwarding mode\r\n+    testpmd> vlan set filter on 0\r\n+\r\n+check the vlan mode is set successfully::\r\n+\r\n+    testpmd> show port info 0\r\n+\r\n+    ********************* Infos for port 0  *********************\r\n+    ......\r\n+    VLAN offload:\r\n+    strip off, filter on, extend off, qinq strip off\r\n+\r\n+tester send qinq pkt and single vlan pkt which outer vlan id is 1 to VF::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:11\",type=0x8100)/Dot1Q(vlan=1,type=0x8100,prio=1)/Dot1Q(vlan=2,type=0x0800,prio=2)/IP(src=\"196.222.232.221\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:11\",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src=\"196.222.232.221\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+check the pkts can't be received in VF, but if the kernel cannot set ``vf-vlan-pruning`` or kdriver is ixgbe, check can receive 2 pkts in VF.\r\n+\r\n+add rx_vlan in VF::\r\n+\r\n+    testpmd> rx_vlan add 1 0\r\n+\r\n+repeat step 3, check the pkts can be received by VF and fwd to tester::\r\n+\r\n+    check the pkts can be received by PF and fwd to tester with inner and outer correct vlan ID and priority value.\r\n+    testpmd> port 0/queue 0: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=522 - nb_segs=1 - hw ptype: L2_ETHER  - sw ptype: L2_ETHER_VLAN INNER_L2_ETHER_VLAN  - l2_len=18 - inner_l2_len=4 - Receive queue=0x0\r\n+    ol_flags: PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+    port 0/queue 0: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=518 - nb_segs=1 - hw ptype: L2_ETHER  - sw ptype: L2_ETHER_VLAN  - l2_len=18 - Receive queue=0x0\r\n+    ol_flags: PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    tcpdump -i ens786f0 -nn -e -v\r\n+\r\n+    16:50:38.807158 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 522: vlan 1, p 1, ethertype 802.1Q, vlan 2, p 2, ethertype 0x0800,\r\n+    16:50:38.807217 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 522: vlan 1, p 1, ethertype 802.1Q, vlan 2, p 2, ethertype 0x0800,\r\n+\r\n+    16:51:06.083084 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 518: vlan 1, p 0, ethertype 0x0800,\r\n+    16:51:06.083127 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 518: vlan 1, p 0, ethertype 0x0800,\r\n+\r\n+tester send qinq pkt and single vlan pkt which outer vlan id is 11 to VF::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:11\",type=0x8100)/Dot1Q(vlan=11,type=0x8100,prio=1)/Dot1Q(vlan=2,type=0x0800,prio=2)/IP(src=\"196.222.232.221\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:11\",type=0x8100)/Dot1Q(vlan=11,type=0x0800)/IP(src=\"196.222.232.221\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+check the pkts can not be received by VF.\r\n+\r\n+remove rx_vlan in VF1::\r\n+\r\n+    testpmd> rx_vlan rm 1 0\r\n+\r\n+repeat step 3, check the pkts can not be received by VF, but if the kernel cannot set ``vf-vlan-pruning``, check can receive 2 pkts in VF.\r\n+\r\n+Test case: IAVF DUAL VLAN header stripping\r\n+==========================================\r\n+\r\n+enable vlan filtering on port VF::\r\n+\r\n+    testpmd> vlan set filter on 0\r\n+    testpmd> rx_vlan add 1 0\r\n+\r\n+check the vlan mode is set successfully::\r\n+\r\n+    testpmd> show port info 0\r\n+\r\n+    ********************* Infos for port 0  *********************\r\n+    ......\r\n+    VLAN offload:\r\n+    strip off, filter on, extend off, qinq strip off\r\n+\r\n+enable vlan header stripping on VF::\r\n+\r\n+    testpmd> vlan set strip on 0\r\n+\r\n+check the vlan mode is set successfully::\r\n+\r\n+    testpmd> show port info 0\r\n+\r\n+    ********************* Infos for port 0  *********************\r\n+    ......\r\n+    VLAN offload:\r\n+    strip on, filter on, extend off, qinq strip off\r\n+\r\n+tester send qinq pkt and single vlan pkt which outer vlan id is 1 to VF::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:11\",type=0x8100)/Dot1Q(vlan=1,type=0x8100)/Dot1Q(vlan=2,type=0x0800)/IP(src=\"196.222.232.221\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:11\",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src=\"196.222.232.221\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+check the pkts can be received in VF and fwd to tester without outer vlan header::\r\n+\r\n+    testpmd> port 0/queue 10: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=518 - nb_segs=1 - RSS hash=0xc7b627aa - RSS queue=0xa - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN L3_IPV4  - l2_len=18 - l3_len=20 - Tail/CRC: 0x58585858/0x00000000 - Receive queue=0xa\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    port 0/queue 10: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0xc7b627aa - RSS queue=0xa - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Tail/CRC: 0x58585858/0x00000000 - Receive queue=0xa\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    10:12:38.034948 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+    10:12:38.035025 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 518: vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+    10:12:44.806825 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 518: vlan 1, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+    10:12:44.806865 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype IPv4 (0x0800), length 514: (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+disable vlan header stripping on VF1::\r\n+\r\n+    testpmd> vlan set strip off 0\r\n+\r\n+check the vlan mode is set successfully::\r\n+\r\n+    testpmd> show port info 0\r\n+\r\n+    ********************* Infos for port 0  *********************\r\n+    ......\r\n+    VLAN offload:\r\n+    strip off, filter on, extend off, qinq strip off\r\n+\r\n+repeat step 5, check the pkts can be received in VF and fwd to tester with outer vlan header::\r\n+\r\n+    testpmd> port 0/queue 10: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=522 - nb_segs=1 - RSS hash=0xc7b627aa - RSS queue=0xa - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN INNER_L2_ETHER_VLAN INNER_L3_IPV4  - l2_len=18 - inner_l2_len=4 - inner_l3_len=20 - Tail/CRC: 0x58585858/0x00000000 - Receive queue=0xa\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    port 0/queue 10: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=518 - nb_segs=1 - RSS hash=0xc7b627aa - RSS queue=0xa - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN L3_IPV4  - l2_len=18 - l3_len=20 - Tail/CRC: 0x58585858/0x00000000 - Receive queue=0xa\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    09:49:08.295172 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+    09:49:08.295239 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+    09:49:41.043101 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 518: vlan 1, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+    09:49:41.043166 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 518: vlan 1, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+Test case: IAVF DUAL VLAN header insertion\r\n+==========================================\r\n+\r\n+.. note::\r\n+\r\n+   according to dpdk commit d048a0aaae27809523969904c2f7b71fe3cc1bb6,\r\n+   when the ice driver version newer than 1.8.9, avx512 tx path not support insert correct vlag tag(outer of QinQ)\r\n+\r\n+enable vlan filtering on port VF::\r\n+\r\n+    testpmd> vlan set filter on 0\r\n+    testpmd> rx_vlan add 11 0\r\n+\r\n+set up test environment again::\r\n+\r\n+    echo 1 > /sys/bus/pci/devices/0000:18:00.0/sriov_numvfs\r\n+    ip link set ens785f0 vf 0 mac 00:11:22:33:44:11\r\n+    ip link set dev ens785f0 vf 0 spoofchk off\r\n+    ./usertools/dpdk-devbind.py -b vfio-pci 0000:18:01.0\r\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0 -- -i --rxq=16 --txq=16\r\n+    testpmd> set fwd mac\r\n+    testpmd> set verbose 1\r\n+\r\n+enable vlan header insertion on VF::\r\n+\r\n+    testpmd> port stop 0\r\n+    Stopping ports...\r\n+    Checking link statuses...\r\n+    Done\r\n+    testpmd> tx_vlan set 0 1\r\n+    testpmd> port start 0\r\n+\r\n+tester send pkt to VF::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:11\",type=0x0800)/IP(src=\"196.222.232.221\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:11\",type=0x8100)/Dot1Q(vlan=11,type=0x0800)/IP(src=\"196.222.232.221\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+check the pkts with vlan header can be received in tester::\r\n+\r\n+    testpmd> port 0/queue 13: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0xcaf4abfd - RSS queue=0xd - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0xd\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    port 0/queue 8: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=518 - nb_segs=1 - RSS hash=0x28099b78 - RSS queue=0x8 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN L3_IPV4  - l2_len=18 - l3_len=20 - Receive queue=0x8\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    10:32:55.566801 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype IPv4 (0x0800), length 514: (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+    10:32:55.566856 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 518: vlan 1, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+    06:29:32.281896 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 518: vlan 11, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+    06:29:32.281940 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 522: vlan 11, p 0, ethertype 802.1Q, vlan 1, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+disable vlan header insertion on VF1::\r\n+\r\n+    testpmd> port stop 0\r\n+    Stopping ports...\r\n+    Checking link statuses...\r\n+    Done\r\n+    testpmd> tx_vlan reset 0\r\n+    testpmd> port start 0\r\n+\r\n+repeat step 4, check the pkts without vlan tag can be received in tester::\r\n+\r\n+    testpmd> port 0/queue 9: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0xa63e8869 - RSS queue=0x9 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x9\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    port 0/queue 12: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=518 - nb_segs=1 - RSS hash=0x6f5533bc - RSS queue=0xc - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN L3_IPV4  - l2_len=18 - l3_len=20 - Receive queue=0xc\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    10:34:40.070754 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype IPv4 (0x0800), length 514: (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+    10:34:40.070824 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype IPv4 (0x0800), length 514: (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+    06:36:57.641871 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 518: vlan 11, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+    06:36:57.641909 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 518: vlan 11, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+\r\n+Test case: Enable/disable AVF CRC stripping\r\n+===========================================\r\n+\r\n+start testpmd with \"--disable-crc-strip\"::\r\n+\r\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 20-23 -n 4 -a 0000:18:01.0 -- -i --rxq=16 --txq=16 --disable-crc-strip\r\n+    testpmd> set fwd mac\r\n+    testpmd> set verbose 1\r\n+\r\n+send pkts to VF::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:11\",type=0x0800)/IP(src=\"196.222.232.221\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+check VF1 receive this pkts with CRC::\r\n+\r\n+    testpmd> port 0/queue 0: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x890d9a70 - RSS queue=0x0 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x0\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    show port stats all\r\n+\r\n+    ######################## NIC statistics for port 0  ########################\r\n+    RX-packets: 1          RX-missed: 0          RX-bytes:  518\r\n+    RX-errors: 0\r\n+    RX-nombuf:  0\r\n+    TX-packets: 1          TX-errors: 0          TX-bytes:  514\r\n+\r\n+    Throughput (since last show)\r\n+    Rx-pps:            0          Rx-bps:            0\r\n+    Tx-pps:            0          Tx-bps:            0\r\n+    ############################################################################\r\n+    clear port stats all\r\n+\r\n+enable crc strip in testpmd::\r\n+\r\n+    testpmd> stop\r\n+    testpmd> port stop 0\r\n+    testpmd> port config 0 rx_offload keep_crc off\r\n+    testpmd> port start 0\r\n+    testpmd> start\r\n+\r\n+repeat step 2, check VF receive this pkts without CRC::\r\n+\r\n+    testpmd> port 0/queue 2: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0xa94c21d2 - RSS queue=0x2 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x2\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    show port stats all\r\n+\r\n+    ######################## NIC statistics for port 0  ########################\r\n+    RX-packets: 1          RX-missed: 0          RX-bytes:  514\r\n+    RX-errors: 0\r\n+    RX-nombuf:  0\r\n+    TX-packets: 1          TX-errors: 0          TX-bytes:  514\r\n+\r\n+    Throughput (since last show)\r\n+    Rx-pps:            0          Rx-bps:            0\r\n+    Tx-pps:            0          Tx-bps:            0\r\n+    ############################################################################\r\n+    clear port stats all\r\n+\r\n+disable crc strip in testpmd::\r\n+\r\n+    testpmd> stop\r\n+    testpmd> port stop 0\r\n+    testpmd> port config 0 rx_offload keep_crc on\r\n+    testpmd> port start 0\r\n+    testpmd> start\r\n+\r\n+repeat step 2, check VF1 receive this pkts with CRC::\r\n+\r\n+    testpmd> port 0/queue 0: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x79c10190 - RSS queue=0x0 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x0\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    show port stats all\r\n+\r\n+    ######################## NIC statistics for port 0  ########################\r\n+    RX-packets: 1          RX-missed: 0          RX-bytes:  518\r\n+    RX-errors: 0\r\n+    RX-nombuf:  0\r\n+    TX-packets: 1          TX-errors: 0          TX-bytes:  514\r\n+\r\n+    Throughput (since last show)\r\n+    Rx-pps:            0          Rx-bps:            0\r\n+    Tx-pps:            0          Tx-bps:            0\r\n+    ############################################################################\r\n+    clear port stats all\r\n+\r\n+re-launch testpmd without \"--disable-crc-strip\"::\r\n+\r\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 20-23 -n 4 -a 0000:18:01.0 -- -i --rxq=16 --txq=16\r\n+    testpmd> set fwd mac\r\n+    testpmd> set verbose 1\r\n+\r\n+repeat step 2, check VF receive this pkts without CRC::\r\n+\r\n+    testpmd> port 0/queue 2: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x898ada82 - RSS queue=0x2 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x2\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    show port stats all\r\n+\r\n+    ######################## NIC statistics for port 0  ########################\r\n+    RX-packets: 1          RX-missed: 0          RX-bytes:  514\r\n+    RX-errors: 0\r\n+    RX-nombuf:  0\r\n+    TX-packets: 1          TX-errors: 0          TX-bytes:  514\r\n+\r\n+    Throughput (since last show)\r\n+    Rx-pps:            0          Rx-bps:            0\r\n+    Tx-pps:            0          Tx-bps:            0\r\n+    ############################################################################\r\n+\r\n+\r\n+Test case: IAVF CRC strip and Vlan strip co-exists\r\n+==================================================\r\n+\r\n+start testpmd with crc strip enable, vlan strip disable::\r\n+\r\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 20-23 -n 4 -a 0000:18:01.0 -- -i --rxq=16 --txq=16\r\n+    testpmd> set fwd mac\r\n+    testpmd> set verbose 1\r\n+    testpmd> show port info 0\r\n+    ********************* Infos for port 0  *********************\r\n+    MAC address: 00:11:22:33:44:11\r\n+    Device name: 0000:18:01.1\r\n+    Driver name: net_iavf\r\n+    ......\r\n+    VLAN offload:\r\n+      strip off, filter off, extend off, qinq strip off\r\n+\r\n+request disable vlan strip::\r\n+\r\n+    testpmd> vlan set strip off 0\r\n+\r\n+check the vlan strip still disable::\r\n+\r\n+    testpmd> show port info 0\r\n+    ********************* Infos for port 0  *********************\r\n+    MAC address: 00:11:22:33:44:11\r\n+    Device name: 0000:18:01.1\r\n+    Driver name: net_iavf\r\n+    ......\r\n+    VLAN offload:\r\n+      strip off, filter off, extend off, qinq strip off\r\n+\r\n+set vlan filter on and add rx_vlan 1::\r\n+\r\n+    testpmd> vlan set filter on 0\r\n+    testpmd> rx_vlan add 1 0\r\n+    testpmd> start\r\n+\r\n+send qinq pkts to check vlan strip is off, crc strip is on::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:11\",type=0x8100)/Dot1Q(vlan=1,type=0x8100)/Dot1Q(vlan=2,type=0x0800)/IP(src=\"196.222.232.221\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+    testpmd> port 0/queue 6: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=522 - nb_segs=1 - RSS hash=0xf6521426 - RSS queue=0x6 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN INNER_L2_ETHER_VLAN INNER_L3_IPV4  - l2_len=18 - inner_l2_len=4 - inner_l3_len=20 - Tail/CRC: 0x58585858/0x00000000 - Receive queue=0x6\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    show port stats all\r\n+\r\n+    ######################## NIC statistics for port 0  ########################\r\n+    RX-packets: 1          RX-missed: 0          RX-bytes:  522\r\n+    RX-errors: 0\r\n+    RX-nombuf:  0\r\n+    TX-packets: 1          TX-errors: 0          TX-bytes:  522\r\n+\r\n+    Throughput (since last show)\r\n+    Rx-pps:            0          Rx-bps:            0\r\n+    Tx-pps:            0          Tx-bps:            0\r\n+    ############################################################################\r\n+\r\n+    09:07:45.863251 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+    09:07:45.863340 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+request enable vlan strip::\r\n+\r\n+    testpmd> vlan set strip on 0\r\n+\r\n+check the vlan strip enable successfully::\r\n+\r\n+    testpmd> show port info 0\r\n+    ********************* Infos for port 0  *********************\r\n+    MAC address: 00:11:22:33:44:11\r\n+    Device name: 0000:18:01.1\r\n+    Driver name: net_iavf\r\n+    ......\r\n+    VLAN offload:\r\n+      strip on, filter off, extend off, qinq strip off\r\n+\r\n+repeat step 5, send qinq pkts to check vlan strip is on(tx-4), crc strip is on::\r\n+\r\n+    testpmd> port 0/queue 6: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=518 - nb_segs=1 - RSS hash=0xf6521426 - RSS queue=0x6 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN L3_IPV4  - l2_len=18 - l3_len=20 - Tail/CRC: 0x58585858/0x00000000 - Receive queue=0x6\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+    show port stats all\r\n+\r\n+    ######################## NIC statistics for port 0  ########################\r\n+    RX-packets: 1          RX-missed: 0          RX-bytes:  522\r\n+    RX-errors: 0\r\n+    RX-nombuf:  0\r\n+    TX-packets: 1          TX-errors: 0          TX-bytes:  518\r\n+\r\n+    Throughput (since last show)\r\n+    Rx-pps:            0          Rx-bps:            0\r\n+    Tx-pps:            0          Tx-bps:            0\r\n+    ############################################################################\r\n+\r\n+    11:09:03.918907 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+    11:09:03.918952 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 518: vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+    196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+request disable vlan strip::\r\n+\r\n+    testpmd> vlan set strip off 0\r\n+\r\n+check the vlan strip disable successfully::\r\n+\r\n+     testpmd> show port info 0\r\n+     ********************* Infos for port 0  *********************\r\n+     MAC address: 00:11:22:33:44:11\r\n+     Device name: 0000:18:01.1\r\n+     Driver name: net_iavf\r\n+     ......\r\n+     VLAN offload:\r\n+       strip off, filter on, extend off, qinq strip off\r\n+\r\n+request disable crc strip::\r\n+\r\n+     testpmd> stop\r\n+     testpmd> port stop 0\r\n+     testpmd> port config 0 rx_offload keep_crc on\r\n+     testpmd> port start 0\r\n+     testpmd> start\r\n+\r\n+repeat step 5, send qinq pkts to check vlan strip is off, crc strip is off(rx+4)::\r\n+\r\n+     testpmd> port 0/queue 7: received 1 packets\r\n+     src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=522 - nb_segs=1 - RSS hash=0xbc8b1857 - RSS queue=0x7 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN INNER_L2_ETHER_VLAN INNER_L3_IPV4  - l2_len=18 - inner_l2_len=4 - inner_l3_len=20 - Tail/CRC: 0x58585858/0x6d870bf6 - Receive queue=0x7\r\n+     ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+     show port stats all\r\n+     ######################## NIC statistics for port 0  ########################\r\n+     RX-packets: 1          RX-missed: 0          RX-bytes:  526\r\n+     RX-errors: 0\r\n+     RX-nombuf:  0\r\n+     TX-packets: 1          TX-errors: 0          TX-bytes:  522\r\n+\r\n+     Throughput (since last show)\r\n+     Rx-pps:            0          Rx-bps:            0\r\n+     Tx-pps:            0          Tx-bps:            0\r\n+     ############################################################################\r\n+\r\n+     10:23:57.350934 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+     196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+     10:23:57.351008 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+     196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+request enable vlan strip::\r\n+\r\n+     testpmd> vlan set strip on 0\r\n+     iavf_execute_vf_cmd(): No response or return failure (-64) for cmd 54\r\n+     iavf_config_vlan_strip_v2(): fail to execute command VIRTCHNL_OP_ENABLE_VLAN_STRIPPING_V2\r\n+     rx_vlan_strip_set(port_pi=0, on=1) failed diag=-5\r\n+\r\n+repeat step 5, send qinq pkts to check the vlan strip can not enable::\r\n+\r\n+     testpmd> port 0/queue 7: received 1 packets\r\n+     src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=518 - nb_segs=1 - RSS hash=0xbc8b1857 - RSS queue=0x7 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN L3_IPV4  - l2_len=18 - l3_len=20 - Tail/CRC: 0x58585858/0x6d870bf6 - Receive queue=0x7\r\n+     ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+     show port stats all\r\n+     ######################## NIC statistics for port 0  ########################\r\n+     RX-packets: 1          RX-missed: 0          RX-bytes:  526\r\n+     RX-errors: 0\r\n+     RX-nombuf:  0\r\n+     TX-packets: 1          TX-errors: 0          TX-bytes:  522\r\n+\r\n+     Throughput (since last show)\r\n+     Rx-pps:            0          Rx-bps:            0\r\n+     Tx-pps:            0          Tx-bps:            0\r\n+     ############################################################################\r\n+\r\n+     10:26:08.346936 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+     196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+     10:26:08.347006 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+     196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+request disable vlan strip::\r\n+\r\n+     vlan set strip off 0\r\n+\r\n+check the vlan strip still disable::\r\n+\r\n+     testpmd> show port info 0\r\n+     ********************* Infos for port 0  *********************\r\n+     MAC address: 00:11:22:33:44:11\r\n+     Device name: 0000:18:01.1\r\n+     Driver name: net_iavf\r\n+     ......\r\n+     VLAN offload:\r\n+       strip off, filter on, extend off, qinq strip off\r\n+\r\n+request enable crc strip::\r\n+\r\n+     testpmd> stop\r\n+     testpmd> port stop 0\r\n+     testpmd> port config 0 rx_offload keep_crc off\r\n+     testpmd> port start 0\r\n+     testpmd> start\r\n+\r\n+repeat step 5, send qinq pkts to check the crc strip enable successfully::\r\n+\r\n+     testpmd> port 0/queue 3: received 1 packets\r\n+     src=00:00:00:00:00:00 - dst=00:11:22:33:44:11 - type=0x8100 - length=522 - nb_segs=1 - RSS hash=0x2b4ad203 - RSS queue=0x3 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN INNER_L2_ETHER_VLAN INNER_L3_IPV4  - l2_len=18 - inner_l2_len=4 - inner_l3_len=20 - Receive queue=0x3\r\n+     ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+     port 0/queue 3: sent 1 packets\r\n+     src=00:11:22:33:44:11 - dst=02:00:00:00:00:00 - type=0x8100 - length=522 - nb_segs=1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER_VLAN INNER_L2_ETHER_VLAN INNER_L3_IPV4  - l2_len=18 - inner_l2_len=4 - inner_l3_len=20 - Send queue=0x3\r\n+     ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+     show port stats all\r\n+     ######################## NIC statistics for port 0  ########################\r\n+     RX-packets: 1          RX-missed: 0          RX-bytes:  522\r\n+     RX-errors: 0\r\n+     RX-nombuf:  0\r\n+     TX-packets: 1          TX-errors: 0          TX-bytes:  522\r\n+\r\n+     Throughput (since last show)\r\n+     Rx-pps:            0          Rx-bps:            0\r\n+     Tx-pps:            0          Tx-bps:            0\r\n+     ############################################################################\r\n+\r\n+     10:29:19.995352 00:00:00:00:00:00 > 00:11:22:33:44:11, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+     196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+     10:29:19.995424 00:11:22:33:44:11 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 522: vlan 1, p 0, ethertype 802.1Q, vlan 2, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto Options (0), length 500)\r\n+     196.222.232.221 > 127.0.0.1:  ip-proto-0 480\r\n+\r\n+Test Case: vf queue start/stop\r\n+==============================\r\n+\r\n+This case support VF (Intel® Ethernet 700 Series/Intel® Ethernet 800 Series)\r\n+\r\n+Launch testpmd::\r\n+\r\n+    x86_64-native-linuxapp-gcc/app/dpdk-testpmd  -l 1-2 -n 4 -a 0000:af:01.0 -- -i --portmask=0x1 --port-topology=loop\r\n+\r\n+Run \"set verbose 1\" to set verbose\r\n+\r\n+Run \"set fwd mac\" to set fwd type\r\n+\r\n+Run \"start\" to start fwd package\r\n+\r\n+Start a packet capture on the tester in the background::\r\n+\r\n+    tcpdump -i ens7  'ether[12:2] != 0x88cc'  -Q in -w /tmp/tester/sniff_ens7.pcap\r\n+\r\n+Start packet generator to transmit packets::\r\n+\r\n+    sendp([Ether(dst='3c:fd:fe:c1:0f:4c', src='00:00:20:00:00:00')/IP()/UDP()/Raw(load=b'XXXXXXXXXXXXXXXXXX')],iface=\"ens7\",count=4,inter=0,verbose=False)\r\n+\r\n+Stop testpmd::\r\n+\r\n+  ---------------------- Forward statistics for port 0  ----------------------\r\n+  RX-packets: 4              RX-dropped: 0             RX-total: 4\r\n+  TX-packets: 0              TX-dropped: 0             TX-total: 0\r\n+  ----------------------------------------------------------------------------\r\n+\r\n+  ---------------------- Forward statistics for port 1  ----------------------\r\n+  RX-packets: 0              RX-dropped: 0             RX-total: 0\r\n+  TX-packets: 4              TX-dropped: 0             TX-total: 4\r\n+  ----------------------------------------------------------------------------\r\n+\r\n+\r\n+Quit tcpdump and check tester port receive 4 packets\r\n+\r\n+Run \"port 0 rxq 0 stop\" to stop rxq 0 in port 0\r\n+\r\n+Start packet generator to transmit and check tester port not receive packets\r\n+\r\n+Run \"port 0 rxq 0 start\" to start rxq 0 in port 0\r\n+\r\n+Run \"port 0 txq 0 stop\" to stop txq 0 in port 0\r\n+\r\n+Start packet generator to transmit and check tester port not receive packets and in testpmd it not has \"port 0/queue\r\n+0: received 1 packets\" print\r\n+\r\n+Stop testpmd::\r\n+\r\n+  ---------------------- Forward statistics for port 0  ----------------------\r\n+  RX-packets: 4              RX-dropped: 0             RX-total: 4\r\n+  TX-packets: 0              TX-dropped: 0             TX-total: 0\r\n+  ----------------------------------------------------------------------------\r\n+\r\n+  ---------------------- Forward statistics for port 1  ----------------------\r\n+  RX-packets: 0              RX-dropped: 0             RX-total: 0\r\n+  TX-packets: 0              TX-dropped: 0             TX-total: 0\r\n+  ----------------------------------------------------------------------------\r\n+\r\n+Run \"port 0 txq 0 start\" to start txq 0 in port 0\r\n+\r\n+Start packet generator to transmit and check tester port receive 4 packets and in testpmd it has \"port 0/queue 0:\r\n+received 1 packets\" print\r\n+\r\n+Stop testpmd::\r\n+\r\n+  ---------------------- Forward statistics for port 0  ----------------------\r\n+  RX-packets: 4              RX-dropped: 0             RX-total: 4\r\n+  TX-packets: 0              TX-dropped: 0             TX-total: 0\r\n+  ----------------------------------------------------------------------------\r\n+\r\n+  ---------------------- Forward statistics for port 1  ----------------------\r\n+  RX-packets: 0              RX-dropped: 0             RX-total: 0\r\n+  TX-packets: 4              TX-dropped: 0             TX-total: 4\r\n+  ----------------------------------------------------------------------------\r\n+\r\n",
    "prefixes": [
        "dst",
        "V1",
        "3/6"
    ]
}