X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Fszedata2.rst;h=a2092f9c5eb3754b2a0a0289b003061c6dbf96aa;hb=aed545af1b5ed6b7baa2eb41bad63486d6c95226;hp=e093704cd512ec7d18cf2201c9e86f6476398af2;hpb=366c1a2cb308a9cdc144d54dfaaa71ef8c52ca19;p=dpdk.git
diff --git a/doc/guides/nics/szedata2.rst b/doc/guides/nics/szedata2.rst
index e093704cd5..a2092f9c5e 100644
--- a/doc/guides/nics/szedata2.rst
+++ b/doc/guides/nics/szedata2.rst
@@ -1,46 +1,19 @@
-.. BSD LICENSE
- Copyright 2015 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.
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright 2015 - 2016 CESNET
SZEDATA2 poll mode driver library
=================================
-The SZEDATA2 poll mode driver library implements support for cards from COMBO
-family (**COMBO-80G**, **COMBO-100G**).
-The SZEDATA2 PMD is virtual PMD which uses interface provided by libsze2
-library to communicate with COMBO cards over sze2 layer.
+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.
-More information about family of
-`COMBO cards `_
+More information about the
+`NFB cards `_
and used technology
-(`NetCOPE platform `_) can be
-found on the `Liberouter website `_.
+(`Netcope Development Kit `_)
+can be found on the `Netcope Technologies website `_.
.. note::
@@ -54,8 +27,8 @@ found on the `Liberouter website `_.
Currently the driver is supported only on x86_64 architectures.
Only x86_64 versions of the external libraries are provided.
-Prerequisities
---------------
+Prerequisites
+-------------
This PMD requires kernel modules which are responsible for initialization and
allocation of resources needed for sze2 layer function.
@@ -70,54 +43,83 @@ 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:
+ sharing of resources for user space applications.
Information about getting the dependencies can be found `here
-`_.
+`_.
+Versions of the packages
+~~~~~~~~~~~~~~~~~~~~~~~~
-Using the SZEDATA2 PMD
-----------------------
+The minimum version of the provided packages:
-SZEDATA2 PMD can be created by passing ``--vdev=`` option to EAL in the
-following format:
+* for DPDK from 18.05: **4.4.1**
-.. code-block:: console
+* for DPDK up to 18.02 (including): **3.0.5**
+
+Configuration
+-------------
+
+These configuration options can be modified before compilation in the
+``.config`` file:
+
+* ``CONFIG_RTE_LIBRTE_PMD_SZEDATA2`` default value: **n**
+
+ Value **y** enables compilation of szedata2 PMD.
- --vdev 'DEVICE,dev_path=PATH,rx_ifaces=RX_MASK,tx_ifaces=TX_MASK'
+Using the SZEDATA2 PMD
+----------------------
-``DEVICE`` and options ``dev_path``, ``rx_ifaces``, ``tx_ifaces`` are mandatory
-and must be separated by commas.
+From DPDK version 16.04 the type of SZEDATA2 PMD is changed to PMD_PDEV.
+SZEDATA2 device is automatically recognized during EAL initialization.
+No special command line options are needed.
-* ``DEVICE``: contains prefix ``eth_szedata2`` followed by numbers or letters,
- must be unique for each virtual device
+Kernel modules have to be loaded before running the DPDK application.
-* ``dev_path``: Defines path to szedata2 device.
- Value is valid path to szedata2 device. Example:
+NFB card architecture
+---------------------
- .. code-block:: console
+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.
- dev_path=/dev/szedataII0
+However, the new NFB-200G2QL card employs an addon 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).
-* ``rx_ifaces``: Defines which receive channels will be used.
- For each channel is created one queue. Value is mask for selecting which
- receive channels are required. Example:
+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.
- .. code-block:: console
+.. figure:: img/szedata2_nfb200g_architecture.*
+ :align: center
- rx_ifaces=0x3
+ NFB-200G2QL high-level diagram
-* ``tx_ifaces``: Defines which transmit channels will be used.
- For each channel is created one queue. Value is mask for selecting which
- transmit channels are required. Example:
+Limitations
+-----------
- .. code-block:: console
+The SZEDATA2 PMD does not support operations related to Ethernet ports
+(link_up, link_down, set_mac_address, etc.).
- tx_ifaces=0x3
+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
----------------
@@ -127,6 +129,34 @@ transmit channel:
.. code-block:: console
- $RTE_TARGET/app/testpmd -c 0xf -n 2 \
- --vdev 'eth_szedata20,dev_path=/dev/szedataII0,rx_ifaces=0x3,tx_ifaces=0x3' \
- -- --port-topology=chained --rxq=2 --txq=2 --nb-cores=2
+ $RTE_TARGET/app/testpmd -l 0-3 -n 2 \
+ -- --port-topology=chained --rxq=2 --txq=2 --nb-cores=2 -i -a
+
+Example output:
+
+.. code-block:: console
+
+ [...]
+ EAL: PCI device 0000:06:00.0 on NUMA socket -1
+ EAL: probe driver: 1b26:c1c1 rte_szedata2_pmd
+ PMD: Initializing szedata2 device (0000:06:00.0)
+ PMD: SZEDATA2 path: /dev/szedataII0
+ PMD: Available DMA channels RX: 8 TX: 8
+ PMD: resource0 phys_addr = 0xe8000000 len = 134217728 virt addr = 7f48f8000000
+ PMD: szedata2 device (0000:06:00.0) successfully initialized
+ Interactive-mode selected
+ Auto-start selected
+ Configuring Port 0 (socket 0)
+ Port 0: 00:11:17:00:00:00
+ Checking link statuses...
+ Port 0 Link Up - speed 10000 Mbps - full-duplex
+ Done
+ Start automatic packet forwarding
+ io packet forwarding - CRC stripping disabled - packets/burst=32
+ nb forwarding cores=2 - nb forwarding ports=1
+ RX queues=2 - RX desc=128 - RX free threshold=0
+ RX threshold registers: pthresh=0 hthresh=0 wthresh=0
+ TX queues=2 - TX desc=512 - TX free threshold=0
+ TX threshold registers: pthresh=0 hthresh=0 wthresh=0
+ TX RS bit threshold=0 - TXQ flags=0x0
+ testpmd>