get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2868,
    "url": "http://patchwork.dpdk.org/api/patches/2868/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/1422747307-13792-4-git-send-email-thomas.monjalon@6wind.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<1422747307-13792-4-git-send-email-thomas.monjalon@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1422747307-13792-4-git-send-email-thomas.monjalon@6wind.com",
    "date": "2015-01-31T23:35:06",
    "name": "[dpdk-dev,RFC,3/4] doc: nics guide",
    "commit_ref": null,
    "pull_url": null,
    "state": "rfc",
    "archived": true,
    "hash": "540a083e5ad4ecd622be6317f787e39096762516",
    "submitter": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/people/1/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas.monjalon@6wind.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/1422747307-13792-4-git-send-email-thomas.monjalon@6wind.com/mbox/",
    "series": [],
    "comments": "http://patchwork.dpdk.org/api/patches/2868/comments/",
    "check": "pending",
    "checks": "http://patchwork.dpdk.org/api/patches/2868/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 B60405A90;\n\tSun,  1 Feb 2015 00:36:05 +0100 (CET)",
            "from mail-wi0-f169.google.com (mail-wi0-f169.google.com\n\t[209.85.212.169]) by dpdk.org (Postfix) with ESMTP id CA5285AA8\n\tfor <dev@dpdk.org>; Sun,  1 Feb 2015 00:35:49 +0100 (CET)",
            "by mail-wi0-f169.google.com with SMTP id h11so9238277wiw.0\n\tfor <dev@dpdk.org>; Sat, 31 Jan 2015 15:35:49 -0800 (PST)",
            "from localhost.localdomain (136-92-190-109.dsl.ovh.fr.\n\t[109.190.92.136]) by mx.google.com with ESMTPSA id\n\tn6sm21080068wjy.8.2015.01.31.15.35.48\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tSat, 31 Jan 2015 15:35:48 -0800 (PST)"
        ],
        "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=JPHs+2t51fayaBfFh/HDFZbn1+zw6qmaERrLknpXNDE=;\n\tb=V0AQOu2Liw8hLe999SJRpP9VYTMZmBQblo+1cs4GGJ0xyfIprGwJZkVIa7iMIhHged\n\tIttJlR/Q6KrxbuDzRAEd42kFscc0MVMuqG9+2kvVvFrVTyDDbbuQZe1/4GxmCrVtxSgh\n\ti7LhAy9/0lsDCyz4L4TryLUe9uzMl/7x+UTvMgGbJsVbgJDZ/x3fZlM6s+q0cfG/mKFC\n\tXDFjwysaayNYTipP66mNMOsdc+mGCgMBCrlHxi61A4A6eyUkX6fQdvHy2UlGyzNtMJ21\n\tKnzfcpsOMuV9h4JjjYUt9d9elL70LK82Yb7lJNn56kYWuDd3ooNX4CcIEI4EsqLJQhjY\n\tpaRw==",
        "X-Gm-Message-State": "ALoCoQluImf3qGoMPmJJDBer1pqbdEzq1HEhpDgSxf6xDRpDq8//YGzanGT41yNsIej2UFpBdRMR",
        "X-Received": "by 10.180.74.205 with SMTP id w13mr9949461wiv.1.1422747349708;\n\tSat, 31 Jan 2015 15:35:49 -0800 (PST)",
        "From": "Thomas Monjalon <thomas.monjalon@6wind.com>",
        "To": "dev@dpdk.org",
        "Date": "Sun,  1 Feb 2015 00:35:06 +0100",
        "Message-Id": "<1422747307-13792-4-git-send-email-thomas.monjalon@6wind.com>",
        "X-Mailer": "git-send-email 2.2.2",
        "In-Reply-To": "<1422747307-13792-1-git-send-email-thomas.monjalon@6wind.com>",
        "References": "<1422747307-13792-1-git-send-email-thomas.monjalon@6wind.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [RFC PATCH 3/4] 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 NICS.\n\nSigned-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>\n---\n MAINTAINERS                                        |  13 +-\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                    |  28 ++--\n .../intel_vf.rst}                                  |   0\n doc/guides/nics/ixgbe.rst                          | 184 +++++++++++++++++++++\n .../pcap_ring.rst}                                 |   0\n .../virtio.rst}                                    |   0\n .../vmxnet3.rst}                                   |   0\n doc/guides/prog_guide/index.rst                    |  17 --\n doc/guides/prog_guide/poll_mode_drv.rst            | 152 -----------------\n 22 files changed, 209 insertions(+), 186 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} (100%)\n create mode 100644 doc/guides/nics/ixgbe.rst\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} (100%)\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 1d9ddbc..343e18f 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -190,16 +190,21 @@ 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 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 F: lib/librte_pmd_i40e/\n+F: doc/guides/nics/intel_vf.rst\n \n RedHat virtio\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@@ -207,15 +212,15 @@ F: doc/guides/sample_app_ug/vhost.rst\n \n VMware vmxnet3\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 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 \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..b9bd56a 100644\n--- a/doc/guides/index.rst\n+++ b/doc/guides/nics/index.rst\n@@ -28,19 +28,21 @@\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+    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 100%\nrename from doc/guides/prog_guide/i40e_ixgbe_igb_virt_func_drv.rst\nrename to doc/guides/nics/intel_vf.rst\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/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 100%\nrename from doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst\nrename to doc/guides/nics/virtio.rst\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 cdc7ea0..4dec828 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     timer_lib\n     hash_lib\n@@ -101,18 +96,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",
        "RFC",
        "3/4"
    ]
}