X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Fliquidio.rst;h=f893b3b53988453dffc9224fd5cef768abd4f390;hb=735155ee3b7c126b14ac28c5667d5a2d811ddf4c;hp=9ffdc356ec771ee0315c156e666da87be5c964fc;hpb=7a4d9f6676d7f7122caa127e8927d5eacade3984;p=dpdk.git diff --git a/doc/guides/nics/liquidio.rst b/doc/guides/nics/liquidio.rst index 9ffdc356ec..f893b3b539 100644 --- a/doc/guides/nics/liquidio.rst +++ b/doc/guides/nics/liquidio.rst @@ -1,37 +1,10 @@ -.. BSD LICENSE - Copyright(c) 2017 Cavium, Inc.. All rights reserved. - 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 Cavium, Inc. 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(S) 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. +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2017 Cavium, Inc LiquidIO VF Poll Mode Driver ============================ -The LiquidIO VF PMD library (librte_pmd_lio) provides poll mode driver support for +The LiquidIO VF PMD library (**librte_net_liquidio**) provides poll mode driver support for Cavium LiquidIO® II server adapter VFs. PF management and VF creation can be done using kernel driver. @@ -41,127 +14,10 @@ More information can be found at `Cavium Official Website Supported LiquidIO Adapters ----------------------------- -- LiquidIO II CN2350 210SV -- LiquidIO II CN2360 210SV - - -Pre-Installation Configuration ------------------------------- - -The following options can be modified in the ``config`` file. -Please note that enabling debugging options may affect system performance. - -- ``CONFIG_RTE_LIBRTE_LIO_PMD`` (default ``y``) - - Toggle compilation of LiquidIO PMD. - -- ``CONFIG_RTE_LIBRTE_LIO_DEBUG_DRIVER`` (default ``n``) - - Toggle display of generic debugging messages. - -- ``CONFIG_RTE_LIBRTE_LIO_DEBUG_INIT`` (default ``n``) - - Toggle display of initialization related messages. - -- ``CONFIG_RTE_LIBRTE_LIO_DEBUG_RX`` (default ``n``) - - Toggle display of receive fast path run-time messages. - -- ``CONFIG_RTE_LIBRTE_LIO_DEBUG_TX`` (default ``n``) - - Toggle display of transmit fast path run-time messages. - -- ``CONFIG_RTE_LIBRTE_LIO_DEBUG_MBOX`` (default ``n``) - - Toggle display of mailbox messages. - -- ``CONFIG_RTE_LIBRTE_LIO_DEBUG_REGS`` (default ``n``) - - Toggle display of register reads and writes. - - -.. _lio_driver-compilation: - -Driver Compilation ------------------- - -To compile LiquidIO PMD for Linux x86_64 gcc target, run the following "make" -command: - -.. code-block:: console - - cd - make install T=x86_64-native-linuxapp-gcc - - -Sample Application Notes ------------------------- - -This section demonstrates how to launch ``testpmd`` with LiquidIO® CN23XX -device managed by ``librte_pmd_lio`` in Linux operating system. - -#. Mount huge pages: - - .. code-block:: console - - mkdir /mnt/huge - mount -t hugetlbfs nodev /mnt/huge - -#. Request huge pages: - - .. code-block:: console - - echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages/nr_hugepages - -#. Load ``vfio-pci`` driver: - - .. code-block:: console - - modprobe vfio-pci - -#. Bind the LiquidIO VFs to ``vfio-pci`` loaded in previous step: - - Setup VFIO permissions for regular users and then bind to ``vfio-pci``: - - .. code-block:: console - - sudo chmod a+x /dev/vfio - - sudo chmod 0666 /dev/vfio/* - - ./usertools/dpdk-devbind.py --bind vfio-pci 0000:03:00.3 0000:03:08.3 - -#. Start ``testpmd`` with basic parameters: - - .. code-block:: console - - ./build/app/testpmd -c 0xf -n 4 -- -i - - Example output: - - .. code-block:: console - - [...] - EAL: PCI device 0000:03:00.3 on NUMA socket 0 - EAL: probe driver: 177d:9712 net_liovf - EAL: using IOMMU type 1 (Type 1) - PMD: net_liovf[03:00.3]INFO: DEVICE : CN23XX VF - EAL: PCI device 0000:03:08.3 on NUMA socket 0 - EAL: probe driver: 177d:9712 net_liovf - PMD: net_liovf[03:08.3]INFO: DEVICE : CN23XX VF - Interactive-mode selected - USER1: create a new mbuf pool : n=171456, size=2176, socket=0 - Configuring Port 0 (socket 0) - PMD: net_liovf[03:00.3]INFO: Starting port 0 - Port 0: F2:A8:1B:5E:B4:66 - Configuring Port 1 (socket 0) - PMD: net_liovf[03:08.3]INFO: Starting port 1 - Port 1: 32:76:CC:EE:56:D7 - Checking link statuses... - Port 0 Link Up - speed 10000 Mbps - full-duplex - Port 1 Link Up - speed 10000 Mbps - full-duplex - Done - testpmd> +- LiquidIO II CN2350 210SV/225SV +- LiquidIO II CN2350 210SVPT +- LiquidIO II CN2360 210SV/225SV +- LiquidIO II CN2360 210SVPT SR-IOV: Prerequisites and Sample Application Notes @@ -216,7 +72,6 @@ This section provides instructions to configure SR-IOV with Linux OS. echo 1 > /sys/bus/pci/devices/0000:03:00.0/sriov_numvfs echo 1 > /sys/bus/pci/devices/0000:03:00.1/sriov_numvfs - #. Assign VF MAC address: Assign MAC address to the VF using iproute2 utility. The syntax is:: @@ -229,7 +84,6 @@ This section provides instructions to configure SR-IOV with Linux OS. ip link set p4p1 vf 0 mac F2:A8:1B:5E:B4:66 - #. Assign VF(s) to VM. The VF devices may be passed through to the guest VM using qemu or @@ -245,12 +99,49 @@ This section provides instructions to configure SR-IOV with Linux OS. -device virtio-blk-pci,scsi=off,drive=disk1,id=virtio-disk1,bootindex=1 \ -device vfio-pci,host=03:00.3 -device vfio-pci,host=03:08.3 - #. Running testpmd - Refer :ref:`notes above ` - to compile and run ``testpmd`` application. - Use ``igb_uio`` instead of ``vfio-pci`` in VM. + Refer to the document + :ref:`compiling and testing a PMD for a NIC ` to run + ``testpmd`` application. + + .. note:: + + Use ``igb_uio`` instead of ``vfio-pci`` in VM. + + Example output: + + .. code-block:: console + + [...] + EAL: PCI device 0000:03:00.3 on NUMA socket 0 + EAL: probe driver: 177d:9712 net_liovf + EAL: using IOMMU type 1 (Type 1) + PMD: net_liovf[03:00.3]INFO: DEVICE : CN23XX VF + EAL: PCI device 0000:03:08.3 on NUMA socket 0 + EAL: probe driver: 177d:9712 net_liovf + PMD: net_liovf[03:08.3]INFO: DEVICE : CN23XX VF + Interactive-mode selected + USER1: create a new mbuf pool : n=171456, size=2176, socket=0 + Configuring Port 0 (socket 0) + PMD: net_liovf[03:00.3]INFO: Starting port 0 + Port 0: F2:A8:1B:5E:B4:66 + Configuring Port 1 (socket 0) + PMD: net_liovf[03:08.3]INFO: Starting port 1 + Port 1: 32:76:CC:EE:56:D7 + Checking link statuses... + Port 0 Link Up - speed 10000 Mbps - full-duplex + Port 1 Link Up - speed 10000 Mbps - full-duplex + Done + testpmd> + +#. Enabling VF promiscuous mode + + One VF per PF can be marked as trusted for promiscuous mode. + + .. code-block:: console + + ip link set dev vf trust on Limitations @@ -272,9 +163,7 @@ Ring size Number of descriptors for Rx/Tx ring should be in the range 128 to 512. -CRC striping -~~~~~~~~~~~~ +CRC stripping +~~~~~~~~~~~~~ -LiquidIO adapters strip ethernet FCS of every packet coming to the host -interface. So, CRC will be stripped even when the ``rxmode.hw_strip_crc`` -member is set to 0 in ``struct rte_eth_conf``. +LiquidIO adapters strip ethernet FCS of every packet coming to the host interface.