X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Fqede.rst;h=bb127ca21638260609354a8a520f7affac6864e0;hb=7a483d58db54e54201739e6b6e359078f07ed48d;hp=b958a5b532963ce47a8cd82a09d5f932512a2497;hpb=a9263e3c5ad0b71adb95d686c1c3153865b0e1d2;p=dpdk.git diff --git a/doc/guides/nics/qede.rst b/doc/guides/nics/qede.rst index b958a5b532..bb127ca216 100644 --- a/doc/guides/nics/qede.rst +++ b/doc/guides/nics/qede.rst @@ -5,9 +5,9 @@ QEDE Poll Mode Driver ====================== -The QEDE poll mode driver library (**librte_pmd_qede**) implements support +The QEDE poll mode driver library (**librte_net_qede**) implements support for **QLogic FastLinQ QL4xxxx 10G/25G/40G/50G/100G Intelligent Ethernet Adapters (IEA) and Converged Network Adapters (CNA)** family of adapters as well as SR-IOV virtual functions (VF). It is supported on -several standard Linux distros like RHEL7.x, SLES12.x and Ubuntu. +several standard Linux distros like RHEL, SLES, Ubuntu etc. It is compile-tested under FreeBSD OS. More information can be found at `QLogic Corporation's Website @@ -34,15 +34,42 @@ Supported Features - VLAN offload - Filtering and stripping - N-tuple filter and flow director (limited support) - NPAR (NIC Partitioning) -- SR-IOV VF -- VXLAN tunneling offload -- MPLSoUDP Tx tunnel offload - -Non-supported Features ----------------------- - -- SR-IOV PF -- GENEVE and NVGRE Tunneling offloads +- SR-IOV PF and VF +- GRE Tunneling offload +- GENEVE Tunneling offload +- VXLAN Tunneling offload +- MPLSoUDP Tx Tunneling offload +- Generic flow API + +Co-existence considerations +--------------------------- + +- QLogic FastLinQ QL4xxxx CNAs support Ethernet, RDMA, iSCSI and FCoE + functionalities. These functionalities are supported using + QLogic Linux kernel drivers qed, qede, qedr, qedi and qedf. DPDK is + supported on these adapters using qede PMD. + +- When SR-IOV is not enabled on the adapter, + QLogic Linux kernel drivers (qed, qede, qedr, qedi and qedf) and qede + PMD can’t be attached to different PFs on a given QLogic FastLinQ + QL4xxx adapter. + A given adapter needs to be completely used by DPDK or Linux drivers + Before binding DPDK driver to one or more PFs on the adapter, + please make sure to unbind Linux drivers from all PFs of the adapter. + If there are multiple adapters on the system, one or more adapters + can be used by DPDK driver completely and other adapters can be used + by Linux drivers completely. + +- When SR-IOV is enabled on the adapter, + Linux kernel drivers (qed, qede, qedr, qedi and qedf) can be bound + to the PFs of a given adapter and either qede PMD or Linux drivers + (qed and qede) can be bound to the VFs of the adapter. + +- For sharing an adapter between DPDK and Linux drivers, SRIOV needs + to be enabled. Bind all the PFs to Linux Drivers(qed/qede). Create + a VF on PFs where DPDK is desired and bind these VFs to qede_pmd. + Binding of PFs simultaneously to DPDK and Linux drivers on a given + adapter is not supported. Supported QLogic Adapters ------------------------- @@ -52,69 +79,67 @@ Supported QLogic Adapters Prerequisites ------------- -- Requires storm firmware version **8.30.12.0**. Firmware may be available +- Requires storm firmware version **8.40.33.0**. Firmware may be available inbox in certain newer Linux distros under the standard directory - ``E.g. /lib/firmware/qed/qed_init_values-8.30.12.0.bin`` + ``E.g. /lib/firmware/qed/qed_init_values-8.40.33.0.bin``. If the required firmware files are not available then download it from - `QLogic Driver Download Center `_. - For downloading firmware file, select adapter category, model and DPDK Poll Mode Driver. + `linux-firmware git repository `_. -- Requires management firmware (MFW) version **8.30.x.x** or higher to be - flashed on to the adapter. If the required management firmware is not - available then download from - `QLogic Driver Download Center `_. - For downloading firmware upgrade utility, select adapter category, model and Linux distro. - To flash the management firmware refer to the instructions in the QLogic Firmware Upgrade Utility Readme document. +- Requires the NIC be updated minimally with **8.30.x.x** Management firmware(MFW) version supported for that NIC. + It is highly recommended that the NIC be updated with the latest available management firmware version to get latest feature set. + Management Firmware and Firmware Upgrade Utility for Cavium FastLinQ(r) branded adapters can be downloaded from + `Driver Download Center `_. + For downloading Firmware Upgrade Utility, select NIC category, model and Linux distro. + To update the management firmware, refer to the instructions in the Firmware Upgrade Utility Readme document. + For OEM branded adapters please follow the instruction provided by the OEM to update the Management Firmware on the NIC. - SR-IOV requires Linux PF driver version **8.20.x.x** or higher. If the required PF driver is not available then download it from `QLogic Driver Download Center `_. For downloading PF driver, select adapter category, model and Linux distro. - Performance note ~~~~~~~~~~~~~~~~ - For better performance, it is recommended to use 4K or higher RX/TX rings. -Config File Options -~~~~~~~~~~~~~~~~~~~ - -The following options can be modified in the ``.config`` file. Please note that -enabling debugging options may affect system performance. - -- ``CONFIG_RTE_LIBRTE_QEDE_PMD`` (default **y**) - - Toggle compilation of QEDE PMD driver. +Config Options +~~~~~~~~~~~~~~ -- ``CONFIG_RTE_LIBRTE_QEDE_DEBUG_INFO`` (default **n**) +The following option can be modified in the ``config/rte_config.h`` file. - Toggle display of generic debugging messages. +- ``RTE_LIBRTE_QEDE_FW`` (default **""**) -- ``CONFIG_RTE_LIBRTE_QEDE_DEBUG_DRIVER`` (default **n**) + Gives absolute path of firmware file. + ``Eg: "/lib/firmware/qed/qed_init_values-8.40.33.0.bin"`` + Empty string indicates driver will pick up the firmware file + from the default location /lib/firmware/qed. + CAUTION this option is more for custom firmware, it is not + recommended for use under normal condition. - Toggle display of ecore related messages. +The following options can be enabled with Meson flags. -- ``CONFIG_RTE_LIBRTE_QEDE_DEBUG_TX`` (default **n**) +- ``RTE_LIBRTE_QEDE_DEBUG_TX`` (default **disabled**) Toggle display of transmit fast path run-time messages. -- ``CONFIG_RTE_LIBRTE_QEDE_DEBUG_RX`` (default **n**) +- ``RTE_LIBRTE_QEDE_DEBUG_RX`` (default **disabled**) Toggle display of receive fast path run-time messages. -- ``CONFIG_RTE_LIBRTE_QEDE_VF_TX_SWITCH`` (default **"y"**) +Config notes +~~~~~~~~~~~~ - A knob to control per-VF Tx switching feature. +When there are multiple adapters and/or large number of Rx/Tx queues +configured on the adapters, the default (2560) number of memzone +descriptors may not be enough. Please increase the number of memzone +descriptors to a higher number as needed. When sufficient number of +memzone descriptors are not configured, user can potentially run into +following error. -- ``CONFIG_RTE_LIBRTE_QEDE_FW`` (default **""**) + .. code-block:: console - Gives absolute path of firmware file. - ``Eg: "/lib/firmware/qed/qed_init_values-8.30.12.0.bin"`` - Empty string indicates driver will pick up the firmware file - from the default location /lib/firmware/qed. - CAUTION this option is more for custom firmware, it is not - recommended for use under normal condition. + EAL: memzone_reserve_aligned_thread_unsafe(): No more room in config Driver compilation and testing ------------------------------ @@ -122,12 +147,50 @@ Driver compilation and testing Refer to the document :ref:`compiling and testing a PMD for a NIC ` for details. +RTE Flow Support +---------------- + +QLogic FastLinQ QL4xxxx NICs has support for the following patterns and +actions. + +Patterns: + +.. _table_qede_supported_flow_item_types: + +.. table:: Item types + + +----+--------------------------------+ + | # | Pattern Type | + +====+================================+ + | 1 | RTE_FLOW_ITEM_TYPE_IPV4 | + +----+--------------------------------+ + | 2 | RTE_FLOW_ITEM_TYPE_IPV6 | + +----+--------------------------------+ + | 3 | RTE_FLOW_ITEM_TYPE_UDP | + +----+--------------------------------+ + | 4 | RTE_FLOW_ITEM_TYPE_TCP | + +----+--------------------------------+ + +Actions: + +.. _table_qede_supported_ingress_action_types: + +.. table:: Ingress action types + + +----+--------------------------------+ + | # | Action Type | + +====+================================+ + | 1 | RTE_FLOW_ACTION_TYPE_QUEUE | + +----+--------------------------------+ + | 2 | RTE_FLOW_ACTION_TYPE_DROP | + +----+--------------------------------+ + SR-IOV: Prerequisites and Sample Application Notes -------------------------------------------------- This section provides instructions to configure SR-IOV with Linux OS. -**Note**: librte_pmd_qede will be used to bind to SR-IOV VF device and Linux native kernel driver (qede) will function as SR-IOV PF driver. Requires PF driver to be 8.10.x.x or higher. +**Note**: librte_net_qede will be used to bind to SR-IOV VF device and Linux native kernel driver (qede) will function as SR-IOV PF driver. Requires PF driver to be 8.20.x.x or higher. #. Verify SR-IOV and ARI capability is enabled on the adapter using ``lspci``: @@ -199,7 +262,7 @@ This section provides instructions to configure SR-IOV with Linux OS. #. Running testpmd - (Enable QEDE_DEBUG_INFO=y to view informational messages): + (Supply ``--log-level="pmd.net.qede.driver:info`` to view informational messages): Refer to the document :ref:`compiling and testing a PMD for a NIC ` to run