X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Fark.rst;h=358e7f624d3eb5666cc8027874f06c4a80aa9727;hb=b96646187285b1b593b76af5dbcc365a99900377;hp=064ed11c535acf9c7e3001440493989a70162f86;hpb=1131cbf0fb2b700f13446fe06fe498d90290f042;p=dpdk.git diff --git a/doc/guides/nics/ark.rst b/doc/guides/nics/ark.rst index 064ed11c53..358e7f624d 100644 --- a/doc/guides/nics/ark.rst +++ b/doc/guides/nics/ark.rst @@ -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 `. +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 ` 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>