get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 4079,
    "url": "https://patches.dpdk.org/api/patches/4079/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1426783711-2407-4-git-send-email-thomas.monjalon@6wind.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1426783711-2407-4-git-send-email-thomas.monjalon@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1426783711-2407-4-git-send-email-thomas.monjalon@6wind.com",
    "date": "2015-03-19T16:48:31",
    "name": "[dpdk-dev,v2,3/3] doc: nics guide",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "42c7dba9f21bade2e2bf9630b01551d0d7c86a5c",
    "submitter": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/people/1/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas.monjalon@6wind.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1426783711-2407-4-git-send-email-thomas.monjalon@6wind.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/4079/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/4079/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 43B926837;\n\tThu, 19 Mar 2015 17:49:21 +0100 (CET)",
            "from mail-wi0-f175.google.com (mail-wi0-f175.google.com\n\t[209.85.212.175]) by dpdk.org (Postfix) with ESMTP id 026035A99\n\tfor <dev@dpdk.org>; Thu, 19 Mar 2015 17:49:19 +0100 (CET)",
            "by wifj2 with SMTP id j2so74589867wif.1\n\tfor <dev@dpdk.org>; Thu, 19 Mar 2015 09:49:18 -0700 (PDT)",
            "from localhost.localdomain (136-92-190-109.dsl.ovh.fr.\n\t[109.190.92.136]) by mx.google.com with ESMTPSA id\n\tlx10sm2672243wjb.17.2015.03.19.09.49.17\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tThu, 19 Mar 2015 09:49:18 -0700 (PDT)"
        ],
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:mime-version:content-type:content-transfer-encoding;\n\tbh=6B6aQ+Wzwh9lDkS9fZ/siylDZiEVzLvWQeX3286Hb/c=;\n\tb=TwDqKG13K2b1T2FTNMpknsTa1ftcIPjItI/13Nd7iowzL8J2Pmox8CRbWK4n8iPbDm\n\tG14AY+cgg1QAyN4DrtnPSm3+TUDSlWOCBOK9porw2xbi9XqYZzDOrsDGa5NKatP61UdB\n\tXD39fqPdWFicXcRZRRbQ3N+e9kHlWolkOMd+ArJi+halgx19hmvqJm2uqJvO3QVBeSlZ\n\taX69DKokfqB3dX+pYQ+ybqYfaTUINUTphDWWNQCHvTcUEJMAeSNl1Mp1lRMvnZdK5Iyu\n\thJyyTTeCqdZMLp9oT0AxoYaktsC0Oo+MO1M5jFRk9NgFt0SFz5XGAQzc60CvP/qwvZxU\n\tnQRQ==",
        "X-Gm-Message-State": "ALoCoQl40kIpJTTJdV2XYwfO6DT/QAGxZD3ZLVaDVYBR0Y97FtIFsAH8kNmFTOYHK49ThcMeugNs",
        "X-Received": "by 10.180.85.70 with SMTP id f6mr17789592wiz.22.1426783758778;\n\tThu, 19 Mar 2015 09:49:18 -0700 (PDT)",
        "From": "Thomas Monjalon <thomas.monjalon@6wind.com>",
        "To": "siobhan.a.butler@intel.com,\n\tbernard.iremonger@intel.com",
        "Date": "Thu, 19 Mar 2015 17:48:31 +0100",
        "Message-Id": "<1426783711-2407-4-git-send-email-thomas.monjalon@6wind.com>",
        "X-Mailer": "git-send-email 2.2.2",
        "In-Reply-To": "<1426783711-2407-1-git-send-email-thomas.monjalon@6wind.com>",
        "References": "<1422747307-13792-1-git-send-email-thomas.monjalon@6wind.com>\n\t<1426783711-2407-1-git-send-email-thomas.monjalon@6wind.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Cc": "dev@dpdk.org",
        "Subject": "[dpdk-dev] [PATCH v2 3/3] doc: nics guide",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Create nics guide by moving chapters about Intel and Mellanox NICs.\n\nSigned-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>\n---\n MAINTAINERS                                        |  15 +-\n doc/guides/index.rst                               |   1 +\n .../driver_vm_emul_dev.rst => nics/e1000em.rst}    |   0\n doc/guides/{prog_guide => nics}/img/console.png    | Bin\n .../{prog_guide => nics}/img/fast_pkt_proc.png     | Bin\n .../{prog_guide => nics}/img/forward_stats.png     | Bin\n .../{prog_guide => nics}/img/host_vm_comms.png     | Bin\n .../img/host_vm_comms_qemu.png                     | Bin\n .../{prog_guide => nics}/img/inter_vm_comms.png    | Bin\n .../{prog_guide => nics}/img/perf_benchmark.png    | Bin\n .../{prog_guide => nics}/img/single_port_nic.png   | Bin\n .../{prog_guide => nics}/img/vm_vm_comms.png       | Bin\n .../{prog_guide => nics}/img/vmxnet3_int.png       | Bin\n doc/guides/{prog_guide => nics}/img/vswitch_vm.png | Bin\n doc/guides/{ => nics}/index.rst                    |  29 ++--\n .../intel_vf.rst}                                  |   8 +-\n doc/guides/nics/ixgbe.rst                          | 184 +++++++++++++++++++++\n .../mlx4_poll_mode_drv.rst => nics/mlx4.rst}       |   0\n .../pcap_ring.rst}                                 |   0\n .../virtio.rst}                                    |   4 +-\n .../vmxnet3.rst}                                   |   0\n doc/guides/prog_guide/index.rst                    |  17 --\n doc/guides/prog_guide/poll_mode_drv.rst            | 152 -----------------\n 23 files changed, 217 insertions(+), 193 deletions(-)\n rename doc/guides/{prog_guide/driver_vm_emul_dev.rst => nics/e1000em.rst} (100%)\n rename doc/guides/{prog_guide => nics}/img/console.png (100%)\n rename doc/guides/{prog_guide => nics}/img/fast_pkt_proc.png (100%)\n rename doc/guides/{prog_guide => nics}/img/forward_stats.png (100%)\n rename doc/guides/{prog_guide => nics}/img/host_vm_comms.png (100%)\n rename doc/guides/{prog_guide => nics}/img/host_vm_comms_qemu.png (100%)\n rename doc/guides/{prog_guide => nics}/img/inter_vm_comms.png (100%)\n rename doc/guides/{prog_guide => nics}/img/perf_benchmark.png (100%)\n rename doc/guides/{prog_guide => nics}/img/single_port_nic.png (100%)\n rename doc/guides/{prog_guide => nics}/img/vm_vm_comms.png (100%)\n rename doc/guides/{prog_guide => nics}/img/vmxnet3_int.png (100%)\n rename doc/guides/{prog_guide => nics}/img/vswitch_vm.png (100%)\n copy doc/guides/{ => nics}/index.rst (88%)\n rename doc/guides/{prog_guide/i40e_ixgbe_igb_virt_func_drv.rst => nics/intel_vf.rst} (99%)\n create mode 100644 doc/guides/nics/ixgbe.rst\n rename doc/guides/{prog_guide/mlx4_poll_mode_drv.rst => nics/mlx4.rst} (100%)\n rename doc/guides/{prog_guide/libpcap_ring_based_poll_mode_drv.rst => nics/pcap_ring.rst} (100%)\n rename doc/guides/{prog_guide/poll_mode_drv_emulated_virtio_nic.rst => nics/virtio.rst} (99%)\n rename doc/guides/{prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst => nics/vmxnet3.rst} (100%)",
    "diff": "diff --git a/MAINTAINERS b/MAINTAINERS\nindex 24f0a4c..0afb3f4 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -213,15 +213,20 @@ F: lib/librte_pmd_enic/\n \n Intel e1000\n F: lib/librte_pmd_e1000/\n+F: doc/guides/nics/e1000em.rst\n+F: doc/guides/nics/intel_vf.rst\n \n Intel ixgbe\n M: Helin Zhang <helin.zhang@intel.com>\n M: Konstantin Ananyev <konstantin.ananyev@intel.com>\n F: lib/librte_pmd_ixgbe/\n+F: doc/guides/nics/ixgbe.rst\n+F: doc/guides/nics/intel_vf.rst\n \n Intel i40e\n M: Helin Zhang <helin.zhang@intel.com>\n F: lib/librte_pmd_i40e/\n+F: doc/guides/nics/intel_vf.rst\n \n Intel fm10k\n M: Jing Chen <jing.d.chen@intel.com>\n@@ -230,12 +235,12 @@ F: lib/librte_pmd_fm10k/\n Mellanox mlx4\n M: Adrien Mazarguil <adrien.mazarguil@6wind.com>\n F: lib/librte_pmd_mlx4/\n-F: doc/guides/prog_guide/mlx4_poll_mode_drv.rst\n+F: doc/guides/nics/mlx4.rst\n \n RedHat virtio\n M: Changchun Ouyang <changchun.ouyang@intel.com>\n F: lib/librte_pmd_virtio/\n-F: doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst\n+F: doc/guides/nics/virtio.rst\n F: lib/librte_vhost/\n F: doc/guides/prog_guide/vhost_lib.rst\n F: examples/vhost/\n@@ -244,16 +249,16 @@ F: doc/guides/sample_app_ug/vhost.rst\n VMware vmxnet3\n M: Yong Wang <yongwang@vmware.com>\n F: lib/librte_pmd_vmxnet3/\n-F: doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst\n+F: doc/guides/nics/vmxnet3.rst\n \n PCAP PMD\n F: lib/librte_pmd_pcap/\n-F: doc/guides/prog_guide/libpcap_ring_based_poll_mode_drv.rst\n+F: doc/guides/nics/pcap_ring.rst\n \n Ring PMD\n M: Bruce Richardson <bruce.richardson@intel.com>\n F: lib/librte_pmd_ring/\n-F: doc/guides/prog_guide/ring_lib.rst\n+F: doc/guides/nics/pcap_ring.rst\n F: app/test/test_pmd_ring.c\n \n Null PMD\ndiff --git a/doc/guides/index.rst b/doc/guides/index.rst\nindex 53f1be1..44e8432 100644\n--- a/doc/guides/index.rst\n+++ b/doc/guides/index.rst\n@@ -41,6 +41,7 @@ Contents:\n    freebsd_gsg/index\n    xen/index\n    prog_guide/index\n+   nics/index\n    sample_app_ug/index\n    testpmd_app_ug/index\n    rel_notes/index\ndiff --git a/doc/guides/prog_guide/driver_vm_emul_dev.rst b/doc/guides/nics/e1000em.rst\nsimilarity index 100%\nrename from doc/guides/prog_guide/driver_vm_emul_dev.rst\nrename to doc/guides/nics/e1000em.rst\ndiff --git a/doc/guides/prog_guide/img/console.png b/doc/guides/nics/img/console.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/console.png\nrename to doc/guides/nics/img/console.png\ndiff --git a/doc/guides/prog_guide/img/fast_pkt_proc.png b/doc/guides/nics/img/fast_pkt_proc.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/fast_pkt_proc.png\nrename to doc/guides/nics/img/fast_pkt_proc.png\ndiff --git a/doc/guides/prog_guide/img/forward_stats.png b/doc/guides/nics/img/forward_stats.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/forward_stats.png\nrename to doc/guides/nics/img/forward_stats.png\ndiff --git a/doc/guides/prog_guide/img/host_vm_comms.png b/doc/guides/nics/img/host_vm_comms.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/host_vm_comms.png\nrename to doc/guides/nics/img/host_vm_comms.png\ndiff --git a/doc/guides/prog_guide/img/host_vm_comms_qemu.png b/doc/guides/nics/img/host_vm_comms_qemu.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/host_vm_comms_qemu.png\nrename to doc/guides/nics/img/host_vm_comms_qemu.png\ndiff --git a/doc/guides/prog_guide/img/inter_vm_comms.png b/doc/guides/nics/img/inter_vm_comms.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/inter_vm_comms.png\nrename to doc/guides/nics/img/inter_vm_comms.png\ndiff --git a/doc/guides/prog_guide/img/perf_benchmark.png b/doc/guides/nics/img/perf_benchmark.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/perf_benchmark.png\nrename to doc/guides/nics/img/perf_benchmark.png\ndiff --git a/doc/guides/prog_guide/img/single_port_nic.png b/doc/guides/nics/img/single_port_nic.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/single_port_nic.png\nrename to doc/guides/nics/img/single_port_nic.png\ndiff --git a/doc/guides/prog_guide/img/vm_vm_comms.png b/doc/guides/nics/img/vm_vm_comms.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/vm_vm_comms.png\nrename to doc/guides/nics/img/vm_vm_comms.png\ndiff --git a/doc/guides/prog_guide/img/vmxnet3_int.png b/doc/guides/nics/img/vmxnet3_int.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/vmxnet3_int.png\nrename to doc/guides/nics/img/vmxnet3_int.png\ndiff --git a/doc/guides/prog_guide/img/vswitch_vm.png b/doc/guides/nics/img/vswitch_vm.png\nsimilarity index 100%\nrename from doc/guides/prog_guide/img/vswitch_vm.png\nrename to doc/guides/nics/img/vswitch_vm.png\ndiff --git a/doc/guides/index.rst b/doc/guides/nics/index.rst\nsimilarity index 88%\ncopy from doc/guides/index.rst\ncopy to doc/guides/nics/index.rst\nindex 53f1be1..6eb2e94 100644\n--- a/doc/guides/index.rst\n+++ b/doc/guides/nics/index.rst\n@@ -28,19 +28,22 @@\n     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n \n-DPDK documentation\n-==================\n+Network Interface Controller Drivers\n+====================================\n \n-Contents:\n+|today|\n+\n+\n+**Contents**\n \n .. toctree::\n-   :maxdepth: 1\n-   :titlesonly:\n-\n-   linux_gsg/index\n-   freebsd_gsg/index\n-   xen/index\n-   prog_guide/index\n-   sample_app_ug/index\n-   testpmd_app_ug/index\n-   rel_notes/index\n+    :maxdepth: 3\n+    :numbered:\n+\n+    e1000em\n+    ixgbe\n+    intel_vf\n+    mlx4\n+    virtio\n+    vmxnet3\n+    pcap_ring\ndiff --git a/doc/guides/prog_guide/i40e_ixgbe_igb_virt_func_drv.rst b/doc/guides/nics/intel_vf.rst\nsimilarity index 99%\nrename from doc/guides/prog_guide/i40e_ixgbe_igb_virt_func_drv.rst\nrename to doc/guides/nics/intel_vf.rst\nindex 68d7107..f97b68c 100644\n--- a/doc/guides/prog_guide/i40e_ixgbe_igb_virt_func_drv.rst\n+++ b/doc/guides/nics/intel_vf.rst\n@@ -72,7 +72,7 @@ For more detail on SR-IOV, please refer to the following documents:\n \n *   `Scalable I/O Virtualized Servers <http://www.intel.com/content/www/us/en/virtualization/server-virtualization/scalable-i-o-virtualized-servers-paper.html>`_\n \n-.. _pg_figure_10:\n+.. _nic_figure_1:\n \n **Figure 10. Virtualization for a Single Port NIC in SR-IOV Mode**\n \n@@ -514,7 +514,7 @@ The setup procedure is as follows:\n \n     *   The Virtual Machine Monitor (see Figure 11) is equivalent to a Host OS with KVM installed as described in the instructions.\n \n-.. _pg_figure_11:\n+.. _nic_figure_2:\n \n **Figure 11. Performance Benchmark Setup**\n \n@@ -538,7 +538,7 @@ DPI can be offloaded on the host fast path.\n Figure 12 shows the scenario where some VMs directly communicate externally via a VFs,\n while others connect to a virtual switch and share the same uplink bandwidth.\n \n-.. _pg_figure_12:\n+.. _nic_figure_3:\n \n **Figure 12. Fast Host-based Packet Processing**\n \n@@ -566,7 +566,7 @@ that is, the packet is forwarded to the correct PF pool.\n The SR-IOV NIC switch forwards the packet to a specific VM according to the MAC destination address\n which belongs to the destination VF on the VM.\n \n-.. _pg_figure_13:\n+.. _nic_figure_4:\n \n **Figure 13. Inter-VM Communication**\n \ndiff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst\nnew file mode 100644\nindex 0000000..d2c124e\n--- /dev/null\n+++ b/doc/guides/nics/ixgbe.rst\n@@ -0,0 +1,184 @@\n+..  BSD LICENSE\n+    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.\n+    All rights reserved.\n+\n+    Redistribution and use in source and binary forms, with or without\n+    modification, are permitted provided that the following conditions\n+    are met:\n+\n+    * Redistributions of source code must retain the above copyright\n+    notice, this list of conditions and the following disclaimer.\n+    * Redistributions in binary form must reproduce the above copyright\n+    notice, this list of conditions and the following disclaimer in\n+    the documentation and/or other materials provided with the\n+    distribution.\n+    * Neither the name of Intel Corporation nor the names of its\n+    contributors may be used to endorse or promote products derived\n+    from this software without specific prior written permission.\n+\n+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+    \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+\n+IXGBE Driver\n+============\n+\n+Vector PMD for IXGBE\n+--------------------\n+\n+Vector PMD uses Intel® SIMD instructions to optimize packet I/O.\n+It improves load/store bandwidth efficiency of L1 data cache by using a wider SSE/AVX register 1 (1).\n+The wider register gives space to hold multiple packet buffers so as to save instruction number when processing bulk of packets.\n+\n+There is no change to PMD API. The RX/TX handler are the only two entries for vPMD packet I/O.\n+They are transparently registered at runtime RX/TX execution if all condition checks pass.\n+\n+1.  To date, only an SSE version of IX GBE vPMD is available.\n+    To ensure that vPMD is in the binary code, ensure that the option CONFIG_RTE_IXGBE_INC_VECTOR=y is in the configure file.\n+\n+Some constraints apply as pre-conditions for specific optimizations on bulk packet transfers.\n+The following sections explain RX and TX constraints in the vPMD.\n+\n+RX Constraints\n+~~~~~~~~~~~~~~\n+\n+Prerequisites and Pre-conditions\n+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n+\n+The following prerequisites apply:\n+\n+*   To enable vPMD to work for RX, bulk allocation for Rx must be allowed.\n+\n+*   The RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC=y configuration MACRO must be set before compiling the code.\n+\n+Ensure that the following pre-conditions are satisfied:\n+\n+*   rxq->rx_free_thresh >= RTE_PMD_IXGBE_RX_MAX_BURST\n+\n+*   rxq->rx_free_thresh < rxq->nb_rx_desc\n+\n+*   (rxq->nb_rx_desc % rxq->rx_free_thresh) == 0\n+\n+*   rxq->nb_rx_desc  < (IXGBE_MAX_RING_DESC - RTE_PMD_IXGBE_RX_MAX_BURST)\n+\n+These conditions are checked in the code.\n+\n+Scattered packets are not supported in this mode.\n+If an incoming packet is greater than the maximum acceptable length of one \"mbuf\" data size (by default, the size is 2 KB),\n+vPMD for RX would be disabled.\n+\n+By default, IXGBE_MAX_RING_DESC is set to 4096 and RTE_PMD_IXGBE_RX_MAX_BURST is set to 32.\n+\n+Feature not Supported by RX Vector PMD\n+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n+\n+Some features are not supported when trying to increase the throughput in vPMD.\n+They are:\n+\n+*   IEEE1588\n+\n+*   FDIR\n+\n+*   Header split\n+\n+*   RX checksum off load\n+\n+Other features are supported using optional MACRO configuration. They include:\n+\n+*   HW VLAN strip\n+\n+*   HW extend dual VLAN\n+\n+*   Enabled by RX_OLFLAGS (RTE_IXGBE_RX_OLFLAGS_DISABLE=n)\n+\n+\n+To guarantee the constraint, configuration flags in dev_conf.rxmode will be checked:\n+\n+*   hw_vlan_strip\n+\n+*   hw_vlan_extend\n+\n+*   hw_ip_checksum\n+\n+*   header_split\n+\n+*   dev_conf\n+\n+fdir_conf->mode will also be checked.\n+\n+RX Burst Size\n+^^^^^^^^^^^^^\n+\n+As vPMD is focused on high throughput, it assumes that the RX burst size is equal to or greater than 32 per burst.\n+It returns zero if using nb_pkt < 32 as the expected packet number in the receive handler.\n+\n+TX Constraint\n+~~~~~~~~~~~~~\n+\n+Prerequisite\n+^^^^^^^^^^^^\n+\n+The only prerequisite is related to tx_rs_thresh.\n+The tx_rs_thresh value must be greater than or equal to RTE_PMD_IXGBE_TX_MAX_BURST,\n+but less or equal to RTE_IXGBE_TX_MAX_FREE_BUF_SZ.\n+Consequently, by default the tx_rs_thresh value is in the range 32 to 64.\n+\n+Feature not Supported by RX Vector PMD\n+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n+\n+TX vPMD only works when txq_flags is set to IXGBE_SIMPLE_FLAGS.\n+\n+This means that it does not support TX multi-segment, VLAN offload and TX csum offload.\n+The following MACROs are used for these three features:\n+\n+*   ETH_TXQ_FLAGS_NOMULTSEGS\n+\n+*   ETH_TXQ_FLAGS_NOVLANOFFL\n+\n+*   ETH_TXQ_FLAGS_NOXSUMSCTP\n+\n+*   ETH_TXQ_FLAGS_NOXSUMUDP\n+\n+*   ETH_TXQ_FLAGS_NOXSUMTCP\n+\n+\n+Sample Application Notes\n+~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+testpmd\n+^^^^^^^\n+\n+By default, using CONFIG_RTE_IXGBE_RX_OLFLAGS_DISABLE=n:\n+\n+.. code-block:: console\n+\n+    ./x86_64-native-linuxapp-gcc/app/testpmd -c 300 -n 4 -- -i --burst=32 --rxfreet=32 --mbcache=250 --txpt=32 --rxht=8 --rxwt=0 --txfreet=32 --txrst=32 --txqflags=0xf01\n+\n+When CONFIG_RTE_IXGBE_RX_OLFLAGS_DISABLE=y, better performance can be achieved:\n+\n+.. code-block:: console\n+\n+    ./x86_64-native-linuxapp-gcc/app/testpmd -c 300 -n 4 -- -i --burst=32 --rxfreet=32 --mbcache=250 --txpt=32 --rxht=8 --rxwt=0 --txfreet=32 --txrst=32 --txqflags=0xf01 --disable-hw-vlan\n+\n+If scatter gather lists are not required, set CONFIG_RTE_MBUF_SCATTER_GATHER=n for better throughput.\n+\n+l3fwd\n+^^^^^\n+\n+When running l3fwd with vPMD, there is one thing to note.\n+In the configuration, ensure that port_conf.rxmode.hw_ip_checksum=0.\n+Otherwise, by default, RX vPMD is disabled.\n+\n+load_balancer\n+^^^^^^^^^^^^^\n+\n+As in the case of l3fwd, set configure port_conf.rxmode.hw_ip_checksum=0 to enable vPMD.\n+In addition, for improved performance, use -bsz \"(32,32),(64,64),(32,32)\" in load_balancer to avoid using the default burst size of 144.\ndiff --git a/doc/guides/prog_guide/mlx4_poll_mode_drv.rst b/doc/guides/nics/mlx4.rst\nsimilarity index 100%\nrename from doc/guides/prog_guide/mlx4_poll_mode_drv.rst\nrename to doc/guides/nics/mlx4.rst\ndiff --git a/doc/guides/prog_guide/libpcap_ring_based_poll_mode_drv.rst b/doc/guides/nics/pcap_ring.rst\nsimilarity index 100%\nrename from doc/guides/prog_guide/libpcap_ring_based_poll_mode_drv.rst\nrename to doc/guides/nics/pcap_ring.rst\ndiff --git a/doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst b/doc/guides/nics/virtio.rst\nsimilarity index 99%\nrename from doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst\nrename to doc/guides/nics/virtio.rst\nindex 113a0cb..5e2a283 100644\n--- a/doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst\n+++ b/doc/guides/nics/virtio.rst\n@@ -106,7 +106,7 @@ Virtio with kni vhost Back End\n \n This section demonstrates kni vhost back end example setup for Phy-VM Communication.\n \n-.. _pg_figure_14:\n+.. _nic_figure_5:\n \n **Figure 14. Host2VM Communication Example Using kni vhost Back End**\n \n@@ -189,7 +189,7 @@ Host2VM communication example\n Virtio with qemu virtio Back End\n --------------------------------\n \n-.. _pg_figure_15:\n+.. _nic_figure_6:\n \n **Figure 15. Host2VM Communication Example Using qemu vhost Back End**\n \ndiff --git a/doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst b/doc/guides/nics/vmxnet3.rst\nsimilarity index 100%\nrename from doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst\nrename to doc/guides/nics/vmxnet3.rst\ndiff --git a/doc/guides/prog_guide/index.rst b/doc/guides/prog_guide/index.rst\nindex b263d31..648757e 100644\n--- a/doc/guides/prog_guide/index.rst\n+++ b/doc/guides/prog_guide/index.rst\n@@ -48,12 +48,7 @@ Programmer's Guide\n     mempool_lib\n     mbuf_lib\n     poll_mode_drv\n-    i40e_ixgbe_igb_virt_func_drv\n-    driver_vm_emul_dev\n     ivshmem_lib\n-    poll_mode_drv_emulated_virtio_nic\n-    poll_mode_drv_paravirtual_vmxnets_nic\n-    libpcap_ring_based_poll_mode_drv\n     link_bonding_poll_mode_drv_lib\n     mlx4_poll_mode_drv\n     timer_lib\n@@ -104,18 +99,6 @@ Programmer's Guide\n \n :ref:`Figure 9. An mbuf with Three Segments <pg_figure_9>`\n \n-:ref:`Figure 10. Virtualization for a Single Port NIC in SR-IOV Mode <pg_figure_10>`\n-\n-:ref:`Figure 11. Performance Benchmark Setup <pg_figure_11>`\n-\n-:ref:`Figure 12. Fast Host-based Packet Processing <pg_figure_12>`\n-\n-:ref:`Figure 13. Inter-VM Communication <pg_figure_13>`\n-\n-:ref:`Figure 14. Host2VM Communication Example Using kni vhost Back End <pg_figure_14>`\n-\n-:ref:`Figure 15. Host2VM Communication Example Using qemu vhost Back End <pg_figure_15>`\n-\n :ref:`Figure 16. Memory Sharing inthe Intel® DPDK Multi-process Sample Application <pg_figure_16>`\n \n :ref:`Figure 17. Components of an Intel® DPDK KNI Application <pg_figure_17>`\ndiff --git a/doc/guides/prog_guide/poll_mode_drv.rst b/doc/guides/prog_guide/poll_mode_drv.rst\nindex e9e1132..b8b2d1a 100644\n--- a/doc/guides/prog_guide/poll_mode_drv.rst\n+++ b/doc/guides/prog_guide/poll_mode_drv.rst\n@@ -288,155 +288,3 @@ Ethernet Device API\n ~~~~~~~~~~~~~~~~~~~\n \n The Ethernet device API exported by the Ethernet PMDs is described in the *DPDK API Reference*.\n-\n-Vector PMD for IXGBE\n---------------------\n-\n-Vector PMD uses Intel® SIMD instructions to optimize packet I/O.\n-It improves load/store bandwidth efficiency of L1 data cache by using a wider SSE/AVX register 1 (1).\n-The wider register gives space to hold multiple packet buffers so as to save instruction number when processing bulk of packets.\n-\n-There is no change to PMD API. The RX/TX handler are the only two entries for vPMD packet I/O.\n-They are transparently registered at runtime RX/TX execution if all condition checks pass.\n-\n-1.  To date, only an SSE version of IX GBE vPMD is available.\n-    To ensure that vPMD is in the binary code, ensure that the option CONFIG_RTE_IXGBE_INC_VECTOR=y is in the configure file.\n-\n-Some constraints apply as pre-conditions for specific optimizations on bulk packet transfers.\n-The following sections explain RX and TX constraints in the vPMD.\n-\n-RX Constraints\n-~~~~~~~~~~~~~~\n-\n-Prerequisites and Pre-conditions\n-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n-\n-The following prerequisites apply:\n-\n-*   To enable vPMD to work for RX, bulk allocation for Rx must be allowed.\n-\n-*   The RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC=y configuration MACRO must be set before compiling the code.\n-\n-Ensure that the following pre-conditions are satisfied:\n-\n-*   rxq->rx_free_thresh >= RTE_PMD_IXGBE_RX_MAX_BURST\n-\n-*   rxq->rx_free_thresh < rxq->nb_rx_desc\n-\n-*   (rxq->nb_rx_desc % rxq->rx_free_thresh) == 0\n-\n-*   rxq->nb_rx_desc  < (IXGBE_MAX_RING_DESC - RTE_PMD_IXGBE_RX_MAX_BURST)\n-\n-These conditions are checked in the code.\n-\n-Scattered packets are not supported in this mode.\n-If an incoming packet is greater than the maximum acceptable length of one \"mbuf\" data size (by default, the size is 2 KB),\n-vPMD for RX would be disabled.\n-\n-By default, IXGBE_MAX_RING_DESC is set to 4096 and RTE_PMD_IXGBE_RX_MAX_BURST is set to 32.\n-\n-Feature not Supported by RX Vector PMD\n-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n-\n-Some features are not supported when trying to increase the throughput in vPMD.\n-They are:\n-\n-*   IEEE1588\n-\n-*   FDIR\n-\n-*   Header split\n-\n-*   RX checksum off load\n-\n-Other features are supported using optional MACRO configuration. They include:\n-\n-*   HW VLAN strip\n-\n-*   HW extend dual VLAN\n-\n-*   Enabled by RX_OLFLAGS (RTE_IXGBE_RX_OLFLAGS_DISABLE=n)\n-\n-\n-To guarantee the constraint, configuration flags in dev_conf.rxmode will be checked:\n-\n-*   hw_vlan_strip\n-\n-*   hw_vlan_extend\n-\n-*   hw_ip_checksum\n-\n-*   header_split\n-\n-*   dev_conf\n-\n-fdir_conf->mode will also be checked.\n-\n-RX Burst Size\n-^^^^^^^^^^^^^\n-\n-As vPMD is focused on high throughput, it assumes that the RX burst size is equal to or greater than 32 per burst.\n-It returns zero if using nb_pkt < 32 as the expected packet number in the receive handler.\n-\n-TX Constraint\n-~~~~~~~~~~~~~\n-\n-Prerequisite\n-^^^^^^^^^^^^\n-\n-The only prerequisite is related to tx_rs_thresh.\n-The tx_rs_thresh value must be greater than or equal to RTE_PMD_IXGBE_TX_MAX_BURST,\n-but less or equal to RTE_IXGBE_TX_MAX_FREE_BUF_SZ.\n-Consequently, by default the tx_rs_thresh value is in the range 32 to 64.\n-\n-Feature not Supported by RX Vector PMD\n-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n-\n-TX vPMD only works when txq_flags is set to IXGBE_SIMPLE_FLAGS.\n-\n-This means that it does not support TX multi-segment, VLAN offload and TX csum offload.\n-The following MACROs are used for these three features:\n-\n-*   ETH_TXQ_FLAGS_NOMULTSEGS\n-\n-*   ETH_TXQ_FLAGS_NOVLANOFFL\n-\n-*   ETH_TXQ_FLAGS_NOXSUMSCTP\n-\n-*   ETH_TXQ_FLAGS_NOXSUMUDP\n-\n-*   ETH_TXQ_FLAGS_NOXSUMTCP\n-\n-\n-Sample Application Notes\n-~~~~~~~~~~~~~~~~~~~~~~~~\n-\n-testpmd\n-^^^^^^^\n-\n-By default, using CONFIG_RTE_IXGBE_RX_OLFLAGS_DISABLE=n:\n-\n-.. code-block:: console\n-\n-    ./x86_64-native-linuxapp-gcc/app/testpmd -c 300 -n 4 -- -i --burst=32 --rxfreet=32 --mbcache=250 --txpt=32 --rxht=8 --rxwt=0 --txfreet=32 --txrst=32 --txqflags=0xf01\n-\n-When CONFIG_RTE_IXGBE_RX_OLFLAGS_DISABLE=y, better performance can be achieved:\n-\n-.. code-block:: console\n-\n-    ./x86_64-native-linuxapp-gcc/app/testpmd -c 300 -n 4 -- -i --burst=32 --rxfreet=32 --mbcache=250 --txpt=32 --rxht=8 --rxwt=0 --txfreet=32 --txrst=32 --txqflags=0xf01 --disable-hw-vlan\n-\n-If scatter gather lists are not required, set CONFIG_RTE_MBUF_SCATTER_GATHER=n for better throughput.\n-\n-l3fwd\n-^^^^^\n-\n-When running l3fwd with vPMD, there is one thing to note.\n-In the configuration, ensure that port_conf.rxmode.hw_ip_checksum=0.\n-Otherwise, by default, RX vPMD is disabled.\n-\n-load_balancer\n-^^^^^^^^^^^^^\n-\n-As in the case of l3fwd, set configure port_conf.rxmode.hw_ip_checksum=0 to enable vPMD.\n-In addition, for improved performance, use -bsz \"(32,32),(64,64),(32,32)\" in load_balancer to avoid using the default burst size of 144.\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "3/3"
    ]
}