net/szedata2: remove driver

Remove the szedata2 device driver as the platform is no longer
supported.

Signed-off-by: Martin Spinler <spinler@cesnet.cz>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Martin Spinler 2021-11-10 16:39:24 +01:00 committed by Ferruh Yigit
parent 5388be6eae
commit 0cd91fd31c
12 changed files with 0 additions and 2467 deletions

View File

@ -848,12 +848,6 @@ F: drivers/net/netvsc/
F: doc/guides/nics/netvsc.rst F: doc/guides/nics/netvsc.rst
F: doc/guides/nics/features/netvsc.ini F: doc/guides/nics/features/netvsc.ini
Netcope szedata2
M: Martin Spinler <spinler@cesnet.cz>
F: drivers/net/szedata2/
F: doc/guides/nics/szedata2.rst
F: doc/guides/nics/features/szedata2.ini
Netcope nfb Netcope nfb
M: Martin Spinler <spinler@cesnet.cz> M: Martin Spinler <spinler@cesnet.cz>
F: drivers/net/nfb/ F: drivers/net/nfb/

View File

@ -1,18 +0,0 @@
;
; Supported features of the 'szedata2' network poll mode driver.
;
; Refer to default.ini for the full list of available PMD features.
;
[Features]
Speed capabilities = P
Link status = Y
Queue start/stop = Y
Scattered Rx = Y
Promiscuous mode = Y
Allmulticast mode = Y
Basic stats = Y
Extended stats = Y
Stats per queue = Y
Linux = Y
x86-64 = Y
Usage doc = Y

View File

@ -1,214 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg2"
stroke-miterlimit="10"
stroke-linecap="square"
stroke="none"
fill="none"
viewBox="0.0 0.0 568.7322834645669 352.3937007874016"
version="1.1">
<metadata
id="metadata65">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs63" />
<clipPath
id="p.0">
<path
id="path5"
clip-rule="nonzero"
d="m0 0l568.7323 0l0 352.3937l-568.7323 0l0 -352.3937z" />
</clipPath>
<g
id="g7"
clip-path="url(#p.0)">
<path
id="path9"
fill-rule="evenodd"
d="m0 0l568.7323 0l0 352.3937l-568.7323 0z"
fill-opacity="0.0"
fill="#000000" />
<path
id="path11"
d="m 40.564137,14.365075 254.362203,0 0,131.842535 -254.362203,0 z"
style="fill:#47c3d3;fill-rule:evenodd" />
<path
id="path15"
d="m 54.075948,146.2076 227.338592,0 0,32.94488 -227.338592,0 z"
style="fill:#c2c2c2;fill-rule:evenodd" />
<path
id="path19"
d="m 321.90535,146.2076 227.33856,0 0,32.94488 -227.33856,0 z"
style="fill:#c2c2c2;fill-rule:evenodd" />
<path
id="path23"
d="m 440.30217,146.24338 -11.82364,-20.50632 6.86313,0 0,-44.550399 -120.12924,0 0,6.938519 -20.28345,-11.953539 20.28345,-11.953547 0,6.93852 130.0503,0 0,54.580446 6.8631,0 z"
style="fill:#9a9a9a;fill-rule:evenodd" />
<path
id="path25"
d="m 112.39353,263.09765 0,0 c 0,-8.08875 6.55722,-14.64597 14.64597,-14.64597 l 58.58208,0 0,0 c 3.88435,0 7.60962,1.54305 10.35626,4.28971 2.74666,2.74664 4.28971,6.47189 4.28971,10.35626 l 0,58.58209 c 0,8.08875 -6.55722,14.64597 -14.64597,14.64597 l -58.58208,0 c -8.08875,0 -14.64597,-6.55722 -14.64597,-14.64597 z"
style="fill:#c2c2c2;fill-rule:evenodd" />
<path
id="path29"
d="m 391.63763,263.09765 0,0 c 0,-8.08875 6.55722,-14.64597 14.64597,-14.64597 l 58.58209,0 0,0 c 3.88437,0 7.60962,1.54305 10.35626,4.28971 2.74664,2.74664 4.2897,6.47189 4.2897,10.35626 l 0,58.58209 c 0,8.08875 -6.55722,14.64597 -14.64596,14.64597 l -58.58209,0 c -8.08875,0 -14.64597,-6.55722 -14.64597,-14.64597 z"
style="fill:#c2c2c2;fill-rule:evenodd" />
<path
id="path33"
d="m 135.20981,199.01075 19.85826,-19.85826 19.85828,19.85826 -9.92914,0 0,29.5748 9.92914,0 -19.85828,19.85827 -19.85826,-19.85827 9.92914,0 0,-29.5748 z"
style="fill:#9a9a9a;fill-rule:evenodd" />
<path
id="path35"
d="m 415.71635,199.01064 19.85828,-19.85826 19.85827,19.85826 -9.92914,0 0,29.57481 9.92914,0 -19.85827,19.85826 -19.85828,-19.85826 9.92914,0 0,-29.57481 z"
style="fill:#9a9a9a;fill-rule:evenodd" />
<path
id="path37"
d="m 15.205,31.273212 74.362206,0 0,32.944885 -74.362206,0 z"
style="fill:#ff8434;fill-rule:evenodd" />
<path
id="path41"
d="m 16.05531,80.231216 74.3622,0 0,32.944884 -74.3622,0 z"
style="fill:#ff8434;fill-rule:evenodd" />
<path
id="path45"
d="m 275.44377,174.07111 0,111.55905 -37.16536,0 0,-111.55905 z"
style="fill:#ff8434;fill-rule:evenodd" />
<path
id="path49"
d="m 97.923493,174.07111 0,111.55905 -37.16535,0 0,-111.55905 z"
style="fill:#ff8434;fill-rule:evenodd" />
<path
id="path53"
d="m 366.27543,174.07111 0,111.55905 -37.16537,0 0,-111.55905 z"
style="fill:#ff8434;fill-rule:evenodd" />
<path
id="path57"
d="m 542.0392,174.07111 0,111.55905 -37.16534,0 0,-111.55905 z"
style="fill:#ff8434;fill-rule:evenodd" />
<text
id="text4480"
y="54.570911"
x="24.425898"
style="font-style:normal;font-weight:normal;font-size:18.75px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="54.570911"
x="24.425898"
id="tspan4482">ETH 0</tspan></text>
<text
id="text4480-3"
y="103.53807"
x="25.51882"
style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:18.75px"
id="tspan4502"
y="103.53807"
x="25.51882">ETH 1</tspan></text>
<text
id="text4480-7"
y="86.200645"
x="103.15979"
style="font-style:normal;font-weight:normal;font-size:18.75px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
id="tspan4524"
y="86.200645"
x="103.15979">NFB-200G2QL card</tspan></text>
<text
id="text4480-7-3"
y="169.2041"
x="92.195312"
style="font-style:normal;font-weight:normal;font-size:18.75px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:18.75px"
id="tspan4546"
y="169.2041"
x="92.195312">PCI-E master slot</tspan></text>
<text
id="text4480-7-3-6"
y="169.20409"
x="367.98856"
style="font-style:normal;font-weight:normal;font-size:18.75px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:18.75px"
id="tspan4546-2"
y="169.20409"
x="367.98856">PCI-E slave slot</tspan></text>
<text
transform="matrix(0,1,-1,0,0,0)"
id="text4480-3-9"
y="-73.591309"
x="182.29367"
style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:18.75px"
id="tspan4502-1"
y="-73.591309"
x="182.29367">QUEUE 0</tspan></text>
<text
transform="matrix(0,1.0000002,-0.99999976,0,0,0)"
id="text4480-3-9-2"
y="-251.11163"
x="182.29283"
style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:18.75px"
id="tspan4502-1-7"
y="-251.11163"
x="182.29283">QUEUE 15</tspan></text>
<text
transform="matrix(0,1,-1,0,0,0)"
id="text4480-3-9-2-0"
y="-341.94324"
x="182.29311"
style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:18.75px"
id="tspan4502-1-7-9"
y="-341.94324"
x="182.29311">QUEUE 16</tspan></text>
<text
transform="matrix(0,1,-1,0,0,0)"
id="text4480-3-9-2-3"
y="-517.70703"
x="182.29356"
style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:18.75px"
id="tspan4502-1-7-6"
y="-517.70703"
x="182.29356">QUEUE 31</tspan></text>
<text
id="text4480-3-0"
y="299.21396"
x="128.3978"
style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:18.75px"
id="tspan4502-6"
y="299.21396"
x="128.3978">CPU 0</tspan></text>
<text
id="text4480-3-0-2"
y="299.21396"
x="407.88452"
style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:18.75px"
id="tspan4502-6-6"
y="299.21396"
x="407.88452">CPU 1</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.5 KiB

View File

@ -58,7 +58,6 @@ Network Interface Controller Drivers
qede qede
sfc_efx sfc_efx
softnic softnic
szedata2
tap tap
thunderx thunderx
txgbe txgbe

View File

@ -97,11 +97,6 @@ NUMA node, the card is represented as a single port in DPDK. To work with data
from the individual queues on the right NUMA node, connection of NUMA nodes on from the individual queues on the right NUMA node, connection of NUMA nodes on
first and last queue (each NUMA node has half of the queues) need to be checked. first and last queue (each NUMA node has half of the queues) need to be checked.
.. figure:: img/szedata2_nfb200g_architecture.*
:align: center
NFB-200G2QL high-level diagram
Limitations Limitations
----------- -----------

View File

@ -1,146 +0,0 @@
.. SPDX-License-Identifier: BSD-3-Clause
Copyright 2015 - 2016 CESNET
SZEDATA2 poll mode driver library
=================================
The SZEDATA2 poll mode driver library implements support for the Netcope
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>`_
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::
Currently the driver is supported only on x86_64 architectures.
Only x86_64 versions of the external libraries are provided.
Prerequisites
-------------
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**
* combo6core
* combov3
* szedata2
* szedata2_cv3 or szedata2_cv3_fdt
Kernel modules manage initialization of hardware, allocation and
sharing of resources for user space applications.
Information about getting the dependencies can be found `here
<http://www.netcope.com/en/company/community-support/dpdk-libsze2>`_.
Versions of the packages
~~~~~~~~~~~~~~~~~~~~~~~~
The minimum version of the provided packages:
* for DPDK from 18.05: **4.4.1**
* for DPDK up to 18.02 (including): **3.0.5**
Using the SZEDATA2 PMD
----------------------
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.
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
----------------
Read packets from 0. and 1. receive channel and write them to 0. and 1.
transmit channel:
.. code-block:: console
./<build_dir>/app/dpdk-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>

View File

@ -53,7 +53,6 @@ drivers = [
'ring', 'ring',
'sfc', 'sfc',
'softnic', 'softnic',
'szedata2',
'tap', 'tap',
'thunderx', 'thunderx',
'txgbe', 'txgbe',

View File

@ -1,14 +0,0 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
dep = dependency('libsze2', required: false, method: 'pkg-config')
build = dep.found()
reason = 'missing dependency, "libsze2"'
ext_deps += dep
sources = files('rte_eth_szedata2.c')

File diff suppressed because it is too large Load Diff

View File

@ -1,90 +0,0 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2015 - 2016 CESNET
*/
#ifndef RTE_PMD_SZEDATA2_H_
#define RTE_PMD_SZEDATA2_H_
#include <stdint.h>
#include <libsze2.h>
#include <rte_common.h>
/* PCI Vendor ID */
#define PCI_VENDOR_ID_NETCOPE 0x1b26
#define PCI_VENDOR_ID_SILICOM 0x1c2c
/* PCI Device IDs */
#define PCI_DEVICE_ID_NETCOPE_COMBO80G 0xcb80
#define PCI_DEVICE_ID_NETCOPE_COMBO100G 0xc1c1
#define PCI_DEVICE_ID_NETCOPE_COMBO100G2 0xc2c1
#define PCI_DEVICE_ID_NETCOPE_NFB200G2QL 0xc250
#define PCI_DEVICE_ID_FB2CGG3 0x00d0
#define PCI_DEVICE_ID_FB2CGG3D 0xc240
/* szedata2_packet header length == 4 bytes == 2B segment size + 2B hw size */
#define RTE_SZE2_PACKET_HEADER_SIZE 4
#define RTE_SZE2_MMIO_MAX 10
/*!
* Round 'what' to the nearest larger (or equal) multiple of '8'
* (szedata2 packet is aligned to 8 bytes)
*/
#define RTE_SZE2_ALIGN8(what) RTE_ALIGN(what, 8)
/*! main handle structure */
struct szedata {
int fd;
struct sze2_instance_info *info;
uint32_t *write_size;
void *space[RTE_SZE2_MMIO_MAX];
struct szedata_lock lock[2][2];
__u32 *rx_asize, *tx_asize;
/* szedata_read_next variables - to keep context (ct) */
/*
* rx
*/
/** initial sze lock ptr */
const struct szedata_lock *ct_rx_lck_orig;
/** current sze lock ptr (initial or next) */
const struct szedata_lock *ct_rx_lck;
/** remaining bytes (not read) within current lock */
unsigned int ct_rx_rem_bytes;
/** current pointer to locked memory */
unsigned char *ct_rx_cur_ptr;
/**
* allocated buffer to store RX packet if it was split
* into 2 buffers
*/
unsigned char *ct_rx_buffer;
/** registered function to provide filtering based on hwdata */
int (*ct_rx_filter)(u_int16_t hwdata_len, u_char *hwdata);
/*
* tx
*/
/**
* buffer for tx - packet is prepared here
* (in future for burst write)
*/
unsigned char *ct_tx_buffer;
/** initial sze TX lock ptrs - number according to TX interfaces */
const struct szedata_lock **ct_tx_lck_orig;
/** current sze TX lock ptrs - number according to TX interfaces */
const struct szedata_lock **ct_tx_lck;
/** already written bytes in both locks */
unsigned int *ct_tx_written_bytes;
/** remaining bytes (not written) within current lock */
unsigned int *ct_tx_rem_bytes;
/** current pointers to locked memory */
unsigned char **ct_tx_cur_ptr;
/** NUMA node closest to PCIe device, or -1 */
int numa_node;
};
#endif /* RTE_PMD_SZEDATA2_H_ */

View File

@ -1,22 +0,0 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2018 CESNET
*/
#ifndef _SZEDATA2_LOGS_H_
#define _SZEDATA2_LOGS_H_
#include <rte_log.h>
extern int szedata2_logtype_init;
#define PMD_INIT_LOG(level, fmt, args...) \
rte_log(RTE_LOG_ ## level, szedata2_logtype_init, \
"%s(): " fmt "\n", __func__, ## args)
#define PMD_INIT_FUNC_TRACE() PMD_INIT_LOG(DEBUG, " >>")
extern int szedata2_logtype_driver;
#define PMD_DRV_LOG(level, fmt, args...) \
rte_log(RTE_LOG_ ## level, szedata2_logtype_driver, \
"%s(): " fmt "\n", __func__, ## args)
#endif /* _SZEDATA2_LOGS_H_ */

View File

@ -1,3 +0,0 @@
DPDK_22 {
local: *;
};