doc: update push/pop VLAN support in mlx5 guide
[dpdk.git] / doc / guides / nics / szedata2.rst
index 60080a9..9cf3f39 100644 (file)
@@ -1,40 +1,13 @@
-..  BSD LICENSE
+..  SPDX-License-Identifier: BSD-3-Clause
     Copyright 2015 - 2016 CESNET
-    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 CESNET 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.
 
 SZEDATA2 poll mode driver library
 =================================
 
 The SZEDATA2 poll mode driver library implements support for the Netcope
-FPGA Boards (**NFB-***), FPGA-based programmable NICs.
-The SZEDATA2 PMD uses interface provided by the libsze2 library to communicate
-with the NFB cards over the sze2 layer.
+FPGA Boards (**NFB-40G2, NFB-100G2, NFB-200G2QL**) and Silicom **FB2CGG3** card,
+FPGA-based programmable NICs. The SZEDATA2 PMD uses interface provided by the libsze2
+library to communicate with the NFB cards over the sze2 layer.
 
 More information about the
 `NFB cards <http://www.netcope.com/en/products/fpga-boards>`_
@@ -42,13 +15,6 @@ and used technology
 (`Netcope Development Kit <http://www.netcope.com/en/products/fpga-development-kit>`_)
 can be found on the `Netcope Technologies website <http://www.netcope.com/>`_.
 
-.. note::
-
-   This driver has external dependencies.
-   Therefore it is disabled in default configuration files.
-   It can be enabled by setting ``CONFIG_RTE_LIBRTE_PMD_SZEDATA2=y``
-   and recompiling.
-
 .. note::
 
    Currently the driver is supported only on x86_64 architectures.
@@ -70,8 +36,10 @@ separately:
 
 *  **Kernel modules**
 
+   * combo6core
    * combov3
-   * szedata2_cv3
+   * szedata2
+   * szedata2_cv3 or szedata2_cv3_fdt
 
    Kernel modules manage initialization of hardware, allocation and
    sharing of resources for user space applications.
@@ -79,26 +47,15 @@ separately:
 Information about getting the dependencies can be found `here
 <http://www.netcope.com/en/company/community-support/dpdk-libsze2>`_.
 
-Configuration
--------------
-
-These configuration options can be modified before compilation in the
-``.config`` file:
+Versions of the packages
+~~~~~~~~~~~~~~~~~~~~~~~~
 
-*  ``CONFIG_RTE_LIBRTE_PMD_SZEDATA2`` default value: **n**
+The minimum version of the provided packages:
 
-   Value **y** enables compilation of szedata2 PMD.
+* for DPDK from 18.05: **4.4.1**
 
-*  ``CONFIG_RTE_LIBRTE_PMD_SZEDATA2_AS`` default value: **0**
+* for DPDK up to 18.02 (including): **3.0.5**
 
-   This option defines type of firmware address space.
-   Currently supported value is:
-
-   * **0** for firmwares:
-
-      * NIC_100G1_LR4
-      * HANIC_100G1_LR4
-      * HANIC_100G1_SR10
 
 Using the SZEDATA2 PMD
 ----------------------
@@ -109,6 +66,45 @@ No special command line options are needed.
 
 Kernel modules have to be loaded before running the DPDK application.
 
+NFB card architecture
+---------------------
+
+The NFB cards are multi-port multi-queue cards, where (generally) data from any
+Ethernet port may be sent to any queue.
+They were historically represented in DPDK as a single port.
+
+However, the new NFB-200G2QL card employs an add-on cable which allows to connect
+it to two physical PCI-E slots at the same time (see the diagram below).
+This is done to allow 200 Gbps of traffic to be transferred through the PCI-E
+bus (note that a single PCI-E 3.0 x16 slot provides only 125 Gbps theoretical
+throughput).
+
+Since each slot may be connected to a different CPU and therefore to a different
+NUMA node, the card is represented as two ports in DPDK (each with half of the
+queues), which allows DPDK to work with data from the individual queues on the
+right NUMA node.
+
+.. figure:: img/szedata2_nfb200g_architecture.*
+    :align: center
+
+    NFB-200G2QL high-level diagram
+
+Limitations
+-----------
+
+The SZEDATA2 PMD does not support operations related to Ethernet ports
+(link_up, link_down, set_mac_address, etc.).
+
+NFB cards employ multiple Ethernet ports.
+Until now, Ethernet port-related operations were performed on all of them
+(since the whole card was represented as a single port).
+With NFB-200G2QL card, this is no longer viable (see above).
+
+Since there is no fixed mapping between the queues and Ethernet ports, and since
+a single card can be represented as two ports in DPDK, there is no way of
+telling which (if any) physical ports should be associated with individual
+ports in DPDK.
+
 Example of usage
 ----------------
 
@@ -117,7 +113,7 @@ transmit channel:
 
 .. code-block:: console
 
-   $RTE_TARGET/app/testpmd -l 0-3 -n 2 \
+   ./<build_dir>/app/dpdk-testpmd -l 0-3 -n 2 \
    -- --port-topology=chained --rxq=2 --txq=2 --nb-cores=2 -i -a
 
 Example output: