net/i40e: fix byte counters
[dpdk.git] / doc / guides / nics / ark.rst
index 064ed11..358e7f6 100644 (file)
@@ -1,34 +1,7 @@
-.. BSD LICENSE
-
+.. SPDX-License-Identifier: BSD-3-Clause
     Copyright (c) 2015-2017 Atomic Rules LLC
     All rights reserved.
 
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in
-    the documentation and/or other materials provided with the
-    distribution.
-    * Neither the name of Atomic Rules LLC nor the names of its
-    contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
 ARK Poll Mode Driver
 ====================
 
@@ -146,9 +119,6 @@ Data Path Interface
 Ingress RX and Egress TX operation is by the nominal DPDK API .
 The driver supports single-port, multi-queue for both RX and TX.
 
-Refer to ``ark_ethdev.h`` for the list of supported methods to
-act upon RX and TX Queues.
-
 Configuration Information
 -------------------------
 
@@ -159,21 +129,10 @@ Configuration Information
    * **CONFIG_RTE_LIBRTE_ARK_PMD** (default y): Enables or disables inclusion
      of the ARK PMD driver in the DPDK compilation.
 
-   * **CONFIG_RTE_LIBRTE_ARK_PAD_TX** (default y):  When enabled TX
-     packets are padded to 60 bytes to support downstream MACS.
-
-   * **CONFIG_RTE_LIBRTE_ARK_DEBUG_RX** (default n): Enables or disables debug
-     logging and internal checking of RX ingress logic within the ARK PMD driver.
-
-   * **CONFIG_RTE_LIBRTE_ARK_DEBUG_TX** (default n): Enables or disables debug
-     logging and internal checking of TX egress logic within the ARK PMD driver.
-
-   * **CONFIG_RTE_LIBRTE_ARK_DEBUG_STATS** (default n): Enables or disables debug
-     logging of detailed packet and performance statistics gathered in
-     the PMD and FPGA.
-
-   * **CONFIG_RTE_LIBRTE_ARK_DEBUG_TRACE** (default n): Enables or disables debug
-     logging of detailed PMD events and status.
+   * **RTE_LIBRTE_ARK_MIN_TX_PKTLEN** (default 0): Sets the minimum
+     packet length for tx packets to the FPGA.  Packets less than this
+     length are padded to meet the requirement. This allows padding to
+     be offloaded or remain in host software.
 
 
 Building DPDK
@@ -187,6 +146,13 @@ By default the ARK PMD library will be built into the DPDK library.
 For configuring and using UIO and VFIO frameworks, please also refer :ref:`the
 documentation that comes with DPDK suite <linux_gsg>`.
 
+To build with a non-zero minimum tx packet length, set the above macro in your
+CFLAGS environment prior to the meson build step. I.e.,
+
+    export CFLAGS="-DRTE_LIBRTE_ARK_MIN_TX_PKTLEN=60"
+    meson build
+
+
 Supported ARK RTL PCIe Instances
 --------------------------------
 
@@ -239,58 +205,23 @@ application runs to completion, the ARK PMD can be detached from igb_uio if nece
 Usage Example
 -------------
 
-This section demonstrates how to launch **testpmd** with Atomic Rules ARK
-devices managed by librte_pmd_ark.
-
-#. Load the kernel modules:
-
-   .. code-block:: console
-
-      modprobe uio
-      insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
-
-   .. note::
-
-      The ARK PMD driver depends upon the igb_uio user space I/O kernel module
-
-#. Mount and request huge pages:
-
-   .. code-block:: console
-
-      mount -t hugetlbfs nodev /mnt/huge
-      echo 256 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
-
-#. Bind UIO driver to ARK device at 0000:01:00.0 (using dpdk-devbind.py):
-
-   .. code-block:: console
-
-      ./usertools/dpdk-devbind.py --bind=igb_uio 0000:01:00.0
-
-   .. note::
-
-      The last argument to dpdk-devbind.py is the 4-tuple that indentifies a specific PCIe
-      device. You can use lspci -d 1d6c: to indentify all Atomic Rules devices in the system,
-      and thus determine the correct 4-tuple argument to dpdk-devbind.py
-
-#. Start testpmd with basic parameters:
-
-   .. code-block:: console
-
-      ./x86_64-native-linuxapp-gcc/app/testpmd -l 0-3 -n 4 -- -i
-
-   Example output:
-
-   .. code-block:: console
-
-      [...]
-      EAL: PCI device 0000:01:00.0 on NUMA socket -1
-      EAL:   probe driver: 1d6c:100e rte_ark_pmd
-      EAL:   PCI memory mapped at 0x7f9b6c400000
-      PMD: eth_ark_dev_init(): Initializing 0:2:0.1
-      ARKP PMD CommitID: 378f3a67
-      Configuring Port 0 (socket 0)
-      Port 0: DC:3C:F6:00:00:01
-      Checking link statuses...
-      Port 0 Link Up - speed 100000 Mbps - full-duplex
-      Done
-      testpmd>
+Follow instructions available in the document
+:ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>` to launch
+**testpmd** with Atomic Rules ARK devices managed by librte_pmd_ark.
+
+Example output:
+
+.. code-block:: console
+
+   [...]
+   EAL: PCI device 0000:01:00.0 on NUMA socket -1
+   EAL:   probe driver: 1d6c:100e rte_ark_pmd
+   EAL:   PCI memory mapped at 0x7f9b6c400000
+   PMD: eth_ark_dev_init(): Initializing 0:2:0.1
+   ARKP PMD CommitID: 378f3a67
+   Configuring Port 0 (socket 0)
+   Port 0: DC:3C:F6:00:00:01
+   Checking link statuses...
+   Port 0 Link Up - speed 100000 Mbps - full-duplex
+   Done
+   testpmd>