summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMatej Vido <matejvido@gmail.com>2015-11-10 15:18:13 +0100
committerThomas Monjalon <thomas.monjalon@6wind.com>2015-11-20 17:17:04 +0100
commitabef3dd62e7a95d984ba44f56d02bbfd6275fb4a (patch)
tree79a1f03fb035898e774aecb0bb022dbe9334d43a /doc
parent4e76dec07d374380b99a413bb2a8e5ab81324695 (diff)
downloaddpdk-abef3dd62e7a95d984ba44f56d02bbfd6275fb4a.zip
dpdk-abef3dd62e7a95d984ba44f56d02bbfd6275fb4a.tar.gz
dpdk-abef3dd62e7a95d984ba44f56d02bbfd6275fb4a.tar.xz
szedata2: add new poll mode driver
Add virtual PMD which communicates with COMBO cards through sze2 layer using libsze2 library. Since link_speed is uint16_t, there can not be used number for 100G speed, therefore link_speed is set to ETH_LINK_SPEED_10G until the type of link_speed is solved. Signed-off-by: Matej Vido <matejvido@gmail.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/guides/nics/index.rst1
-rw-r--r--doc/guides/nics/szedata2.rst127
-rw-r--r--doc/guides/prog_guide/source_org.rst1
-rw-r--r--doc/guides/rel_notes/release_2_2.rst5
4 files changed, 134 insertions, 0 deletions
diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst
index 2d4936d..0a0b724 100644
--- a/doc/guides/nics/index.rst
+++ b/doc/guides/nics/index.rst
@@ -46,6 +46,7 @@ Network Interface Controller Drivers
intel_vf
mlx4
mlx5
+ szedata2
virtio
vmxnet3
pcap_ring
diff --git a/doc/guides/nics/szedata2.rst b/doc/guides/nics/szedata2.rst
new file mode 100644
index 0000000..b952b46
--- /dev/null
+++ b/doc/guides/nics/szedata2.rst
@@ -0,0 +1,127 @@
+.. 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.
+
+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.
+
+More information about family of
+`COMBO cards <https://www.liberouter.org/technologies/cards/>`_
+and used technology
+(`NetCOPE platform <https://www.liberouter.org/technologies/netcope/>`_) can be
+found on the `Liberouter website <https://www.liberouter.org/>`_.
+
+.. 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.
+
+Prerequisities
+--------------
+
+This PMD requires kernel modules which are responsible for initialization and
+allocation of resources needed for sze2 layer function.
+Communication between PMD and kernel modules is mediated by libsze2 library.
+These kernel modules and library are not part of DPDK and must be installed
+separately:
+
+* **libsze2 library**
+
+ The library provides API for initialization of sze2 transfers, receiving and
+ transmitting data segments.
+
+* **Kernel modules**
+
+ * combov3
+ * szedata2_cv3
+
+ Kernel modules manage initialization of hardware, allocation and
+ sharing of resources for user space applications:
+
+Information about getting the dependencies can be found `here
+<https://www.liberouter.org/technologies/netcope/access-to-libsze2-library/>`_.
+
+
+Using the SZEDATA2 PMD
+----------------------
+
+SZEDATA2 PMD can be created by passing ``--vdev=`` option to EAL in the
+following format:
+
+.. code-block:: console
+
+ --vdev 'DEVICE,dev_path=PATH,rx_ifaces=RX_MASK,tx_ifaces=TX_MASK'
+
+``DEVICE`` and options ``dev_path``, ``rx_ifaces``, ``tx_ifaces`` are mandatory
+and must be separated by commas.
+
+* ``DEVICE``: contains prefix ``eth_szedata2`` followed by numbers or letters,
+ must be unique for each virtual device
+
+* ``dev_path``: Defines path to szedata2 device.
+ Value is valid path to szedata2 device. Example:
+
+ .. code-block:: console
+
+ dev_path=/dev/szedataII0
+
+* ``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:
+
+ .. code-block:: console
+
+ rx_ifaces=0x3
+
+* ``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:
+
+ .. code-block:: console
+
+ tx_ifaces=0x3
+
+Example of usage
+----------------
+
+Read packets from 0. and 1. receive channel and write them to 0. and 1.
+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
diff --git a/doc/guides/prog_guide/source_org.rst b/doc/guides/prog_guide/source_org.rst
index ae11b3b..0c06d47 100644
--- a/doc/guides/prog_guide/source_org.rst
+++ b/doc/guides/prog_guide/source_org.rst
@@ -106,6 +106,7 @@ The drivers directory has a *net* subdirectory which contains::
+-- null # NULL poll mode driver for testing
+-- pcap # PCAP poll mode driver
+-- ring # Ring poll mode driver
+ +-- szedata2 # SZEDATA2 poll mode driver
+-- virtio # Virtio poll mode driver
+-- vmxnet3 # VMXNET3 poll mode driver
+-- xenvirt # Xen virtio poll mode driver
diff --git a/doc/guides/rel_notes/release_2_2.rst b/doc/guides/rel_notes/release_2_2.rst
index 2d91bdc..4fea433 100644
--- a/doc/guides/rel_notes/release_2_2.rst
+++ b/doc/guides/rel_notes/release_2_2.rst
@@ -98,6 +98,11 @@ New Features
Like mlx4, this PMD is only available for Linux and is disabled by default
due to external dependencies (libibverbs and libmlx5).
+* **Added virtual szedata2 driver for COMBO cards.**
+
+ Added virtual PMD for COMBO-100G and COMBO-80G cards.
+ PMD is disabled in default configuration.
+
* **Enhanced support for virtio driver.**
* Virtio ring layout optimization (fixed avail ring)