2015-01-23 12:31:59 +00:00
|
|
|
DPDK Maintainers
|
|
|
|
================
|
|
|
|
|
|
|
|
The intention of this file is to provide a set of names that we can rely on
|
|
|
|
for helping in patch reviews and questions.
|
|
|
|
These names are additional recipients for emails sent to dev@dpdk.org.
|
|
|
|
Please avoid private emails.
|
|
|
|
|
|
|
|
Descriptions of section entries:
|
|
|
|
|
|
|
|
M: Maintainer's Full Name <address@domain>
|
|
|
|
T: Git tree location.
|
|
|
|
F: Files and directories with wildcard patterns.
|
|
|
|
A trailing slash includes all files and subdirectory files.
|
|
|
|
A wildcard includes all files but not subdirectories.
|
|
|
|
One pattern per line. Multiple F: lines acceptable.
|
|
|
|
X: Files and directories exclusion, same rules as F:
|
|
|
|
K: Keyword regex pattern to match content.
|
|
|
|
One regex pattern per line. Multiple K: lines acceptable.
|
|
|
|
|
|
|
|
|
|
|
|
General Project Administration
|
|
|
|
------------------------------
|
2017-09-19 15:48:48 +00:00
|
|
|
|
|
|
|
Main Branch
|
2017-04-18 21:36:51 +00:00
|
|
|
M: Thomas Monjalon <thomas@monjalon.net>
|
2019-09-26 10:12:55 +00:00
|
|
|
M: David Marchand <david.marchand@redhat.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
T: git://dpdk.org/dpdk
|
|
|
|
|
2018-03-28 19:30:40 +00:00
|
|
|
Next-net Tree
|
|
|
|
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
2020-09-24 13:40:22 +00:00
|
|
|
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
|
2018-03-28 19:30:40 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net
|
|
|
|
|
2019-10-15 07:38:00 +00:00
|
|
|
Next-net-brcm Tree
|
|
|
|
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-net-brcm
|
|
|
|
|
2018-03-28 19:30:40 +00:00
|
|
|
Next-net-intel Tree
|
2019-12-11 09:12:35 +00:00
|
|
|
M: Qi Zhang <qi.z.zhang@intel.com>
|
2018-03-28 19:30:40 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-intel
|
|
|
|
|
2019-06-25 05:42:41 +00:00
|
|
|
Next-net-mrvl Tree
|
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mrvl
|
|
|
|
|
2018-03-28 19:30:40 +00:00
|
|
|
Next-net-mlx Tree
|
2020-08-12 16:08:35 +00:00
|
|
|
M: Raslan Darawsheh <rasland@nvidia.com>
|
2018-03-28 19:30:40 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mlx
|
|
|
|
|
|
|
|
Next-virtio Tree
|
2018-04-23 01:18:35 +00:00
|
|
|
M: Maxime Coquelin <maxime.coquelin@redhat.com>
|
2020-07-30 13:46:31 +00:00
|
|
|
M: Chenbo Xia <chenbo.xia@intel.com>
|
2018-03-28 19:30:40 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-virtio
|
|
|
|
|
|
|
|
Next-crypto Tree
|
2018-04-12 08:32:16 +00:00
|
|
|
M: Akhil Goyal <akhil.goyal@nxp.com>
|
2018-03-28 19:30:40 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
|
|
|
|
|
|
|
Next-eventdev Tree
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
2018-03-28 19:30:40 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-eventdev
|
|
|
|
|
2016-07-25 12:56:37 +00:00
|
|
|
Stable Branches
|
2018-02-13 23:31:07 +00:00
|
|
|
M: Luca Boccassi <bluca@debian.org>
|
2019-09-05 15:49:44 +00:00
|
|
|
M: Kevin Traynor <ktraynor@redhat.com>
|
2016-07-25 12:56:37 +00:00
|
|
|
T: git://dpdk.org/dpdk-stable
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Security Issues
|
|
|
|
M: maintainers@dpdk.org
|
|
|
|
|
|
|
|
Documentation (with overlaps)
|
2015-12-02 04:20:05 +00:00
|
|
|
F: README
|
2015-01-23 12:31:59 +00:00
|
|
|
F: doc/
|
|
|
|
|
2017-09-19 15:48:48 +00:00
|
|
|
Developers and Maintainers Tools
|
|
|
|
M: Thomas Monjalon <thomas@monjalon.net>
|
|
|
|
F: MAINTAINERS
|
2020-07-07 08:35:55 +00:00
|
|
|
F: devtools/build-dict.sh
|
2017-09-19 15:48:48 +00:00
|
|
|
F: devtools/check-dup-includes.sh
|
|
|
|
F: devtools/check-maintainers.sh
|
2018-09-27 09:04:08 +00:00
|
|
|
F: devtools/check-forbidden-tokens.awk
|
2017-09-19 15:48:48 +00:00
|
|
|
F: devtools/check-git-log.sh
|
|
|
|
F: devtools/check-includes.sh
|
2020-07-14 23:21:01 +00:00
|
|
|
F: devtools/check-spdx-tag.sh
|
2018-05-27 21:54:47 +00:00
|
|
|
F: devtools/check-symbol-maps.sh
|
2017-09-19 15:48:48 +00:00
|
|
|
F: devtools/checkpatches.sh
|
2017-08-04 14:01:25 +00:00
|
|
|
F: devtools/get-maintainer.sh
|
2017-09-19 15:48:48 +00:00
|
|
|
F: devtools/git-log-fixes.sh
|
|
|
|
F: devtools/load-devel-config
|
2020-02-24 15:30:01 +00:00
|
|
|
F: devtools/words-case.txt
|
license: introduce SPDX identifiers
The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are naturally GPLv2 licensed.
Many of the files in the DPDK source code contain the full text of the
applicable license. For example, most of the BSD-3-Clause files contain a
full copy of the BSD-3-Clause license text.
Including big blocks of License headers in all files blows up the source
code with mostly redundant information. An additional problem is that even
the same licenses are referred to by a number of slightly varying text
blocks (full, abbreviated, different indentation, line wrapping and/or
white space, with obsolete address information, ...) which makes validation
and automatic processing a nightmare.
To make this easier, DPDK uses of a single line reference to
Unique License Identifiers in source files as defined by the Linux
Foundation's SPDX project https://spdk.org.
Adding license information in this fashion, rather than adding full license
text, can be more efficient for developers; decreases errors; and improves
automated detection of licenses. The current set of valid, predefined SPDX
identifiers is set forth on the SPDX License List at
https://spdx.org/licenses/.
For example, to label a file as subject to the BSD-3-Clause license,
the following text would be used as the top line of the file.
SPDX-License-Identifier: BSD-3-Clause
Note: Any new file contributions in DPDK shall adhere to the above scheme.
It is also recommended to replace or at least amend the existing license
text in the code with SPDX-License-Identifiers.
Any exception to DPDK IP policies shall be approved by DPDK tech board and
DPDK Governing Board. Steps for any exception approval:
1. Mention the appropriate license identifier form SPDX. If the license is
not listed in SPDX Licenses. It is the submitters responsibiliity to get
it first listed.
2. Get the required approval from the DPDK Technical Board. Technical board
may advise the author to check alternate means first. If no other
alternatives are found and the merit of the contributions are important
for DPDK's mission, it may decide on such exception with two-thirds vote
of the members.
3. Technical board then approach Governing board for such limited approval
for the given contribution only.
Any approvals shall be documented in "licenses/exceptions.txt" with record
dates.
Note: From the legal point of view, this patch is supposed to be only a
change to the textual representation of the license information, but in no
way any change to the actual license terms. With this patch applied, all
files will still be licensed under the same terms they were before.
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2017-12-19 10:14:38 +00:00
|
|
|
F: license/
|
2019-10-25 14:04:10 +00:00
|
|
|
F: .editorconfig
|
2017-09-19 15:48:48 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Build System
|
build: add infrastructure for meson and ninja builds
To build with meson and ninja, we need some initial infrastructure in
place. The build files for meson always need to be called "meson.build",
and options get placed in meson_options.txt
This commit adds a top-level meson.build file, which sets up the global
variables for tracking drivers, libraries, etc., and then includes other
build files, before finishing by writing the global build configuration
header file and a DPDK pkgconfig file at the end, using some of those same
globals.
From the top level build file, the only include file thus far is for the
config folder, which does some other setup of global configuration
parameters, including pulling in architecture specific parameters from an
architectural subdirectory. A number of configuration build options are
provided for the project to tune a number of global variables which will be
used later e.g. max numa nodes, max cores, etc. These settings all make
their way to the global build config header "rte_build_config.h". There is
also a file "rte_config.h", which includes "rte_build_config.h", and this
file is meant to hold other build-time values which are present in our
current static build configuration but are not normally meant for
user-configuration. Ideally, over time, the values placed here should be
moved to the individual libraries or drivers which want those values.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Luca Boccassi <luca.boccassi@gmail.com>
2017-08-28 10:57:12 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
2020-09-03 15:26:51 +00:00
|
|
|
F: Makefile
|
build: add infrastructure for meson and ninja builds
To build with meson and ninja, we need some initial infrastructure in
place. The build files for meson always need to be called "meson.build",
and options get placed in meson_options.txt
This commit adds a top-level meson.build file, which sets up the global
variables for tracking drivers, libraries, etc., and then includes other
build files, before finishing by writing the global build configuration
header file and a DPDK pkgconfig file at the end, using some of those same
globals.
From the top level build file, the only include file thus far is for the
config folder, which does some other setup of global configuration
parameters, including pulling in architecture specific parameters from an
architectural subdirectory. A number of configuration build options are
provided for the project to tune a number of global variables which will be
used later e.g. max numa nodes, max cores, etc. These settings all make
their way to the global build config header "rte_build_config.h". There is
also a file "rte_config.h", which includes "rte_build_config.h", and this
file is meant to hold other build-time values which are present in our
current static build configuration but are not normally meant for
user-configuration. Ideally, over time, the values placed here should be
moved to the individual libraries or drivers which want those values.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Luca Boccassi <luca.boccassi@gmail.com>
2017-08-28 10:57:12 +00:00
|
|
|
F: meson.build
|
|
|
|
F: meson_options.txt
|
2020-09-03 15:26:51 +00:00
|
|
|
F: config/
|
2020-07-04 11:48:01 +00:00
|
|
|
F: buildtools/binutils-avx512-check.sh
|
2020-01-10 21:52:04 +00:00
|
|
|
F: buildtools/call-sphinx-build.py
|
2017-08-29 13:39:32 +00:00
|
|
|
F: buildtools/gen-pmdinfo-cfile.sh
|
2020-01-27 14:28:22 +00:00
|
|
|
F: buildtools/list-dir-globs.py
|
2020-06-30 14:14:30 +00:00
|
|
|
F: buildtools/pkg-config/
|
2017-12-06 10:45:48 +00:00
|
|
|
F: buildtools/symlink-drivers-solibs.sh
|
2020-09-03 15:26:50 +00:00
|
|
|
F: devtools/test-meson-builds.sh
|
build: add infrastructure for meson and ninja builds
To build with meson and ninja, we need some initial infrastructure in
place. The build files for meson always need to be called "meson.build",
and options get placed in meson_options.txt
This commit adds a top-level meson.build file, which sets up the global
variables for tracking drivers, libraries, etc., and then includes other
build files, before finishing by writing the global build configuration
header file and a DPDK pkgconfig file at the end, using some of those same
globals.
From the top level build file, the only include file thus far is for the
config folder, which does some other setup of global configuration
parameters, including pulling in architecture specific parameters from an
architectural subdirectory. A number of configuration build options are
provided for the project to tune a number of global variables which will be
used later e.g. max numa nodes, max cores, etc. These settings all make
their way to the global build config header "rte_build_config.h". There is
also a file "rte_config.h", which includes "rte_build_config.h", and this
file is meant to hold other build-time values which are present in our
current static build configuration but are not normally meant for
user-configuration. Ideally, over time, the values placed here should be
moved to the individual libraries or drivers which want those values.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Luca Boccassi <luca.boccassi@gmail.com>
2017-08-28 10:57:12 +00:00
|
|
|
|
2019-03-25 15:32:08 +00:00
|
|
|
Public CI
|
|
|
|
M: Aaron Conole <aconole@redhat.com>
|
2019-08-15 22:54:52 +00:00
|
|
|
M: Michael Santana <maicolgabriel@hotmail.com>
|
2019-03-25 15:32:08 +00:00
|
|
|
F: .travis.yml
|
|
|
|
F: .ci/
|
|
|
|
|
2020-04-30 10:27:26 +00:00
|
|
|
ABI Policy & Versioning
|
|
|
|
M: Ray Kinsella <mdr@ashroe.eu>
|
2015-02-04 07:46:20 +00:00
|
|
|
M: Neil Horman <nhorman@tuxdriver.com>
|
2020-03-27 01:15:38 +00:00
|
|
|
F: lib/librte_eal/include/rte_compat.h
|
|
|
|
F: lib/librte_eal/include/rte_function_versioning.h
|
2020-04-30 10:27:26 +00:00
|
|
|
F: doc/guides/contributing/abi_*.rst
|
2015-07-18 19:08:58 +00:00
|
|
|
F: doc/guides/rel_notes/deprecation.rst
|
2020-02-02 21:08:34 +00:00
|
|
|
F: devtools/check-abi.sh
|
2019-11-28 13:46:29 +00:00
|
|
|
F: devtools/check-abi-version.sh
|
2018-06-27 18:01:01 +00:00
|
|
|
F: devtools/check-symbol-change.sh
|
2020-02-02 21:08:34 +00:00
|
|
|
F: devtools/gen-abi.sh
|
|
|
|
F: devtools/libabigail.abignore
|
2019-11-28 13:46:29 +00:00
|
|
|
F: devtools/update-abi.sh
|
|
|
|
F: devtools/update_version_map_abi.py
|
2020-04-25 10:56:17 +00:00
|
|
|
F: buildtools/check-symbols.sh
|
2019-06-29 11:58:48 +00:00
|
|
|
F: buildtools/map-list-symbol.sh
|
2020-04-30 10:27:26 +00:00
|
|
|
F: drivers/*/*/*.map
|
|
|
|
F: lib/*/*.map
|
2015-03-17 18:08:41 +00:00
|
|
|
|
2016-07-07 09:59:33 +00:00
|
|
|
Driver information
|
2018-02-09 15:23:36 +00:00
|
|
|
M: Neil Horman <nhorman@tuxdriver.com>
|
2016-07-07 09:59:33 +00:00
|
|
|
F: buildtools/pmdinfogen/
|
2016-12-15 21:25:36 +00:00
|
|
|
F: usertools/dpdk-pmdinfo.py
|
2016-08-31 07:50:11 +00:00
|
|
|
F: doc/guides/tools/pmdinfo.rst
|
2016-07-07 09:59:33 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Environment Abstraction Layer
|
|
|
|
-----------------------------
|
2020-01-20 20:35:13 +00:00
|
|
|
T: git://dpdk.org/dpdk
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
EAL API and common code
|
2020-03-27 01:15:36 +00:00
|
|
|
F: lib/librte_eal/common/
|
2020-06-15 00:43:44 +00:00
|
|
|
F: lib/librte_eal/unix/
|
2020-03-27 01:15:38 +00:00
|
|
|
F: lib/librte_eal/include/
|
2017-10-19 16:36:29 +00:00
|
|
|
F: lib/librte_eal/rte_eal_version.map
|
2015-02-04 08:08:45 +00:00
|
|
|
F: doc/guides/prog_guide/env_abstraction_layer.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_alarm.c
|
|
|
|
F: app/test/test_atomic.c
|
|
|
|
F: app/test/test_barrier.c
|
|
|
|
F: app/test/test_byteorder.c
|
|
|
|
F: app/test/test_common.c
|
|
|
|
F: app/test/test_cpuflags.c
|
|
|
|
F: app/test/test_cycles.c
|
|
|
|
F: app/test/test_debug.c
|
|
|
|
F: app/test/test_eal*
|
|
|
|
F: app/test/test_errno.c
|
2020-07-06 20:52:30 +00:00
|
|
|
F: app/test/test_lcores.c
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_logs.c
|
|
|
|
F: app/test/test_memcpy*
|
|
|
|
F: app/test/test_per_lcore.c
|
|
|
|
F: app/test/test_prefetch.c
|
|
|
|
F: app/test/test_reciprocal_division*
|
|
|
|
F: app/test/test_rwlock.c
|
|
|
|
F: app/test/test_spinlock.c
|
|
|
|
F: app/test/test_string_fns.c
|
|
|
|
F: app/test/test_tailq.c
|
|
|
|
F: app/test/test_version.c
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2020-04-22 19:03:19 +00:00
|
|
|
Trace - EXPERIMENTAL
|
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
|
|
|
M: Sunil Kumar Kori <skori@marvell.com>
|
|
|
|
F: lib/librte_eal/include/rte_trace*.h
|
|
|
|
F: lib/librte_eal/common/eal_common_trace*.c
|
2020-04-22 19:03:20 +00:00
|
|
|
F: lib/librte_eal/common/eal_trace.h
|
2020-04-22 19:03:49 +00:00
|
|
|
F: doc/guides/prog_guide/trace_lib.rst
|
2020-04-22 19:03:43 +00:00
|
|
|
F: app/test/test_trace*
|
2020-04-22 19:03:19 +00:00
|
|
|
|
2015-07-15 16:32:20 +00:00
|
|
|
Memory Allocation
|
2017-12-18 14:02:06 +00:00
|
|
|
M: Anatoly Burakov <anatoly.burakov@intel.com>
|
2020-03-27 01:15:38 +00:00
|
|
|
F: lib/librte_eal/include/rte_fbarray.h
|
|
|
|
F: lib/librte_eal/include/rte_mem*
|
|
|
|
F: lib/librte_eal/include/rte_malloc.h
|
2015-07-15 16:32:20 +00:00
|
|
|
F: lib/librte_eal/common/*malloc*
|
2020-06-15 00:43:47 +00:00
|
|
|
F: lib/librte_eal/common/eal_common_dynmem.c
|
2018-04-23 12:29:57 +00:00
|
|
|
F: lib/librte_eal/common/eal_common_fbarray.c
|
2015-07-15 16:32:20 +00:00
|
|
|
F: lib/librte_eal/common/eal_common_mem*
|
|
|
|
F: lib/librte_eal/common/eal_hugepages.h
|
2020-03-27 01:15:39 +00:00
|
|
|
F: lib/librte_eal/linux/eal_mem*
|
|
|
|
F: lib/librte_eal/freebsd/eal_mem*
|
2015-07-16 07:37:11 +00:00
|
|
|
F: doc/guides/prog_guide/env_abstraction_layer.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_external_mem.c
|
|
|
|
F: app/test/test_func_reentrancy.c
|
|
|
|
F: app/test/test_fbarray.c
|
|
|
|
F: app/test/test_malloc.c
|
|
|
|
F: app/test/test_memory.c
|
|
|
|
F: app/test/test_memzone.c
|
2015-07-15 16:32:20 +00:00
|
|
|
|
2020-06-17 12:28:07 +00:00
|
|
|
Interrupt Subsystem
|
|
|
|
M: Harman Kalra <hkalra@marvell.com>
|
|
|
|
F: lib/librte_eal/*/*interrupts.*
|
|
|
|
F: app/test/test_interrupts.c
|
|
|
|
|
2015-11-18 14:05:14 +00:00
|
|
|
Keep alive
|
2020-03-27 01:15:38 +00:00
|
|
|
F: lib/librte_eal/include/rte_keepalive.h
|
2015-11-18 14:05:14 +00:00
|
|
|
F: lib/librte_eal/common/rte_keepalive.c
|
2015-11-18 14:05:16 +00:00
|
|
|
F: examples/l2fwd-keepalive/
|
|
|
|
F: doc/guides/sample_app_ug/keep_alive.rst
|
2015-11-18 14:05:14 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Secondary process
|
2017-12-18 14:02:06 +00:00
|
|
|
M: Anatoly Burakov <anatoly.burakov@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
K: RTE_PROC_
|
2019-04-25 13:17:51 +00:00
|
|
|
F: lib/librte_eal/common/eal_common_proc.c
|
2015-01-23 12:31:59 +00:00
|
|
|
F: doc/guides/prog_guide/multi_proc_support.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_mp_secondary.c
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/multi_process/
|
|
|
|
F: doc/guides/sample_app_ug/multi_process.rst
|
|
|
|
|
2018-04-05 13:15:46 +00:00
|
|
|
Service Cores
|
2017-07-11 14:19:27 +00:00
|
|
|
M: Harry van Haaren <harry.van.haaren@intel.com>
|
2020-03-27 01:15:38 +00:00
|
|
|
F: lib/librte_eal/include/rte_service.h
|
|
|
|
F: lib/librte_eal/include/rte_service_component.h
|
2017-07-11 14:19:27 +00:00
|
|
|
F: lib/librte_eal/common/rte_service.c
|
|
|
|
F: doc/guides/prog_guide/service_cores.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_service_cores.c
|
2017-07-11 14:19:27 +00:00
|
|
|
|
2020-04-27 07:58:51 +00:00
|
|
|
Bitops
|
|
|
|
M: Joyce Kong <joyce.kong@arm.com>
|
|
|
|
F: lib/librte_eal/include/rte_bitops.h
|
2020-04-27 07:58:52 +00:00
|
|
|
F: app/test/test_bitops.c
|
2020-04-27 07:58:51 +00:00
|
|
|
|
2017-09-21 11:50:20 +00:00
|
|
|
Bitmap
|
|
|
|
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
2020-03-27 01:15:38 +00:00
|
|
|
F: lib/librte_eal/include/rte_bitmap.h
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_bitmap.c
|
2017-09-21 11:50:20 +00:00
|
|
|
|
2020-09-11 05:45:32 +00:00
|
|
|
MCSlock
|
2020-10-08 23:13:59 +00:00
|
|
|
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
|
2020-03-27 01:15:38 +00:00
|
|
|
F: lib/librte_eal/include/generic/rte_mcslock.h
|
2019-07-05 10:27:08 +00:00
|
|
|
F: app/test/test_mcslock.c
|
2019-07-05 10:27:06 +00:00
|
|
|
|
2019-03-25 11:11:07 +00:00
|
|
|
Ticketlock
|
|
|
|
M: Joyce Kong <joyce.kong@arm.com>
|
2020-03-27 01:15:38 +00:00
|
|
|
F: lib/librte_eal/include/generic/rte_ticketlock.h
|
2019-03-25 11:11:09 +00:00
|
|
|
F: app/test/test_ticketlock.c
|
2019-03-25 11:11:07 +00:00
|
|
|
|
2019-06-28 09:01:20 +00:00
|
|
|
Pseudo-random Number Generation
|
|
|
|
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
|
2020-03-27 01:15:38 +00:00
|
|
|
F: lib/librte_eal/include/rte_random.h
|
2019-06-28 09:01:20 +00:00
|
|
|
F: lib/librte_eal/common/rte_random.c
|
|
|
|
F: app/test/test_rand_perf.c
|
|
|
|
|
2015-11-02 23:47:27 +00:00
|
|
|
ARM v7
|
|
|
|
M: Jan Viktorin <viktorin@rehivetech.com>
|
2020-04-27 07:57:56 +00:00
|
|
|
M: Ruifeng Wang <ruifeng.wang@arm.com>
|
2020-03-27 01:15:35 +00:00
|
|
|
F: lib/librte_eal/arm/
|
2015-11-02 23:47:27 +00:00
|
|
|
|
2015-11-06 09:40:28 +00:00
|
|
|
ARM v8
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
2020-04-27 07:57:56 +00:00
|
|
|
M: Ruifeng Wang <ruifeng.wang@arm.com>
|
2020-03-27 01:15:36 +00:00
|
|
|
F: lib/librte_eal/arm/include/*_64.h
|
2020-10-09 13:50:44 +00:00
|
|
|
F: lib/librte_net/net_crc_neon.c
|
2015-11-06 09:40:28 +00:00
|
|
|
F: lib/librte_acl/acl_run_neon.*
|
2019-09-03 10:59:31 +00:00
|
|
|
F: lib/librte_bpf/bpf_jit_arm64.c
|
2016-03-11 03:52:58 +00:00
|
|
|
F: lib/librte_lpm/rte_lpm_neon.h
|
2016-03-11 03:52:59 +00:00
|
|
|
F: lib/librte_hash/rte*_arm64.h
|
2017-04-27 12:44:18 +00:00
|
|
|
F: lib/librte_efd/rte*_arm64.h
|
2017-04-28 08:58:31 +00:00
|
|
|
F: lib/librte_table/rte*_arm64.h
|
2016-05-06 06:25:46 +00:00
|
|
|
F: drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
|
2016-10-14 04:00:01 +00:00
|
|
|
F: drivers/net/i40e/i40e_rxtx_vec_neon.c
|
2016-08-18 04:12:11 +00:00
|
|
|
F: drivers/net/virtio/virtio_rxtx_simple_neon.c
|
2015-11-06 09:40:28 +00:00
|
|
|
|
2018-11-16 17:35:38 +00:00
|
|
|
IBM POWER (alpha)
|
2019-03-27 22:31:39 +00:00
|
|
|
M: David Christensen <drc@linux.vnet.ibm.com>
|
2020-03-27 01:15:35 +00:00
|
|
|
F: lib/librte_eal/ppc/
|
2017-02-23 04:39:08 +00:00
|
|
|
F: drivers/net/i40e/i40e_rxtx_vec_altivec.c
|
2017-09-21 10:05:24 +00:00
|
|
|
F: examples/l3fwd/*altivec.h
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Intel x86
|
2015-03-11 11:14:30 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
|
|
|
M: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
2020-03-27 01:15:35 +00:00
|
|
|
F: lib/librte_eal/x86/
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Linux EAL (with overlaps)
|
2020-03-27 01:15:39 +00:00
|
|
|
F: lib/librte_eal/linux/
|
2015-01-23 12:31:59 +00:00
|
|
|
F: doc/guides/linux_gsg/
|
|
|
|
|
|
|
|
Linux UIO
|
2016-03-04 15:07:11 +00:00
|
|
|
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
2017-10-26 10:06:08 +00:00
|
|
|
F: drivers/bus/pci/linux/*uio*
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Linux VFIO
|
2015-02-24 11:19:18 +00:00
|
|
|
M: Anatoly Burakov <anatoly.burakov@intel.com>
|
2020-03-27 01:15:39 +00:00
|
|
|
F: lib/librte_eal/linux/*vfio*
|
2017-10-26 10:06:08 +00:00
|
|
|
F: drivers/bus/pci/linux/*vfio*
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
FreeBSD EAL (with overlaps)
|
2015-02-06 13:55:35 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
2020-03-27 01:15:39 +00:00
|
|
|
F: lib/librte_eal/freebsd/
|
2015-01-23 12:31:59 +00:00
|
|
|
F: doc/guides/freebsd_gsg/
|
|
|
|
|
|
|
|
FreeBSD contigmem
|
2015-02-06 13:55:35 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
2018-02-22 06:09:05 +00:00
|
|
|
F: kernel/freebsd/contigmem/
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
FreeBSD UIO
|
2015-02-06 13:55:35 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
2018-02-22 06:09:05 +00:00
|
|
|
F: kernel/freebsd/nic_uio/
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2019-04-02 03:54:49 +00:00
|
|
|
Windows support
|
2020-08-05 07:10:52 +00:00
|
|
|
M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
|
|
|
|
M: Narcisa Ana Maria Vasile <navasile@linux.microsoft.com>
|
|
|
|
M: Dmitry Malloy <dmitrym@microsoft.com>
|
2020-01-13 19:35:34 +00:00
|
|
|
M: Pallavi Kadam <pallavi.kadam@intel.com>
|
2019-04-02 03:54:49 +00:00
|
|
|
F: lib/librte_eal/windows/
|
2019-04-02 03:54:53 +00:00
|
|
|
F: lib/librte_eal/rte_eal_exports.def
|
2020-06-29 12:37:41 +00:00
|
|
|
F: buildtools/map_to_win.py
|
2019-04-02 03:54:57 +00:00
|
|
|
F: doc/guides/windows_gsg/
|
2019-04-02 03:54:49 +00:00
|
|
|
|
2020-06-15 00:43:53 +00:00
|
|
|
Windows memory allocation
|
|
|
|
M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
|
|
|
|
F: lib/librte_eal/windows/eal_hugepages.c
|
2020-06-15 00:43:54 +00:00
|
|
|
F: lib/librte_eal/windows/eal_mem*
|
2020-06-15 00:43:53 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Core Libraries
|
|
|
|
--------------
|
2020-01-20 20:35:13 +00:00
|
|
|
T: git://dpdk.org/dpdk
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2015-01-30 15:52:22 +00:00
|
|
|
Memory pool
|
|
|
|
M: Olivier Matz <olivier.matz@6wind.com>
|
2020-09-24 13:40:22 +00:00
|
|
|
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_mempool/
|
2017-03-31 05:35:36 +00:00
|
|
|
F: drivers/mempool/ring/
|
2015-01-23 12:31:59 +00:00
|
|
|
F: doc/guides/prog_guide/mempool_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_mempool*
|
|
|
|
F: app/test/test_func_reentrancy.c
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Ring queue
|
2020-03-05 17:00:08 +00:00
|
|
|
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
|
|
|
|
M: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_ring/
|
2015-02-04 08:08:45 +00:00
|
|
|
F: doc/guides/prog_guide/ring_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_ring*
|
|
|
|
F: app/test/test_func_reentrancy.c
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2020-09-30 21:39:54 +00:00
|
|
|
Stack
|
2019-04-03 23:20:13 +00:00
|
|
|
M: Gage Eads <gage.eads@intel.com>
|
|
|
|
M: Olivier Matz <olivier.matz@6wind.com>
|
|
|
|
F: lib/librte_stack/
|
2019-04-03 23:20:14 +00:00
|
|
|
F: drivers/mempool/stack/
|
2019-04-03 23:20:15 +00:00
|
|
|
F: app/test/test_stack*
|
2019-04-03 23:20:13 +00:00
|
|
|
F: doc/guides/prog_guide/stack_lib.rst
|
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Packet buffer
|
2015-01-30 15:52:22 +00:00
|
|
|
M: Olivier Matz <olivier.matz@6wind.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_mbuf/
|
|
|
|
F: doc/guides/prog_guide/mbuf_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_mbuf.c
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Ethernet API
|
2017-04-18 21:36:51 +00:00
|
|
|
M: Thomas Monjalon <thomas@monjalon.net>
|
2018-06-29 14:58:57 +00:00
|
|
|
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
2020-09-24 13:40:22 +00:00
|
|
|
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
|
2017-11-06 11:36:51 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net
|
2018-04-26 21:25:59 +00:00
|
|
|
F: lib/librte_ethdev/
|
2020-09-15 19:06:57 +00:00
|
|
|
F: app/test/test_ethdev*
|
2017-02-21 10:18:38 +00:00
|
|
|
F: devtools/test-null.sh
|
2019-04-01 11:05:14 +00:00
|
|
|
F: doc/guides/prog_guide/switch_representation.rst
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2016-12-21 14:51:17 +00:00
|
|
|
Flow API
|
2020-08-12 16:08:35 +00:00
|
|
|
M: Ori Kam <orika@nvidia.com>
|
2017-11-06 11:36:51 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net
|
2018-05-15 16:23:03 +00:00
|
|
|
F: app/test-pmd/cmdline_flow.c
|
|
|
|
F: doc/guides/prog_guide/rte_flow.rst
|
2018-04-26 21:25:59 +00:00
|
|
|
F: lib/librte_ethdev/rte_flow*
|
2016-12-21 14:51:17 +00:00
|
|
|
|
ethdev: add traffic management API
This patch introduces the generic ethdev API for the traffic manager
capability, which includes: hierarchical scheduling, traffic shaping,
congestion management, packet marking.
Main features:
- Exposed as ethdev plugin capability (similar to rte_flow)
- Capability query API per port, per level and per node
- Scheduling algorithms: Strict Priority (SP), Weighed Fair Queuing (WFQ)
- Traffic shaping: single/dual rate, private (per node) and shared (by
multiple nodes) shapers
- Congestion management for hierarchy leaf nodes: algorithms of tail drop,
head drop, WRED; private (per node) and shared (by multiple nodes) WRED
contexts
- Packet marking: IEEE 802.1q (VLAN DEI), IETF RFC 3168 (IPv4/IPv6 ECN for
TCP and SCTP), IETF RFC 2597 (IPv4 / IPv6 DSCP)
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Balasubramanian Manoharan <balasubramanian.manoharan@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-06-12 13:35:39 +00:00
|
|
|
Traffic Management API - EXPERIMENTAL
|
|
|
|
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
2020-08-12 07:49:00 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net
|
2018-04-26 21:25:59 +00:00
|
|
|
F: lib/librte_ethdev/rte_tm*
|
ethdev: add traffic management API
This patch introduces the generic ethdev API for the traffic manager
capability, which includes: hierarchical scheduling, traffic shaping,
congestion management, packet marking.
Main features:
- Exposed as ethdev plugin capability (similar to rte_flow)
- Capability query API per port, per level and per node
- Scheduling algorithms: Strict Priority (SP), Weighed Fair Queuing (WFQ)
- Traffic shaping: single/dual rate, private (per node) and shared (by
multiple nodes) shapers
- Congestion management for hierarchy leaf nodes: algorithms of tail drop,
head drop, WRED; private (per node) and shared (by multiple nodes) WRED
contexts
- Packet marking: IEEE 802.1q (VLAN DEI), IETF RFC 3168 (IPv4/IPv6 ECN for
TCP and SCTP), IETF RFC 2597 (IPv4 / IPv6 DSCP)
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Balasubramanian Manoharan <balasubramanian.manoharan@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-06-12 13:35:39 +00:00
|
|
|
|
2017-10-13 12:22:16 +00:00
|
|
|
Traffic Metering and Policing API - EXPERIMENTAL
|
|
|
|
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
2020-08-12 07:49:00 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net
|
2018-04-26 21:25:59 +00:00
|
|
|
F: lib/librte_ethdev/rte_mtr*
|
2017-10-13 12:22:16 +00:00
|
|
|
|
2018-01-11 19:23:18 +00:00
|
|
|
Baseband API - EXPERIMENTAL
|
2019-06-17 18:21:28 +00:00
|
|
|
M: Nicolas Chautru <nicolas.chautru@intel.com>
|
2018-04-13 08:14:39 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
2018-01-11 19:23:18 +00:00
|
|
|
F: lib/librte_bbdev/
|
|
|
|
F: doc/guides/prog_guide/bbdev.rst
|
2018-03-09 20:56:06 +00:00
|
|
|
F: drivers/baseband/
|
2018-01-11 19:23:19 +00:00
|
|
|
F: doc/guides/bbdevs/
|
2018-01-11 19:23:21 +00:00
|
|
|
F: app/test-bbdev/
|
|
|
|
F: doc/guides/tools/testbbdev.rst
|
2018-01-11 19:23:22 +00:00
|
|
|
F: examples/bbdev_app/
|
|
|
|
F: doc/guides/sample_app_ug/bbdev_app.rst
|
2018-01-11 19:23:18 +00:00
|
|
|
|
2016-04-06 11:05:08 +00:00
|
|
|
Crypto API
|
2015-11-25 13:25:12 +00:00
|
|
|
M: Declan Doherty <declan.doherty@intel.com>
|
2017-11-06 11:36:51 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
2015-11-25 13:25:12 +00:00
|
|
|
F: lib/librte_cryptodev/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_cryptodev*
|
2015-11-25 13:25:17 +00:00
|
|
|
F: examples/l2fwd-crypto/
|
2015-11-25 13:25:12 +00:00
|
|
|
|
2018-11-13 11:28:21 +00:00
|
|
|
Security API
|
2017-10-25 15:07:23 +00:00
|
|
|
M: Akhil Goyal <akhil.goyal@nxp.com>
|
|
|
|
M: Declan Doherty <declan.doherty@intel.com>
|
2018-04-13 08:14:39 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
2017-10-25 15:07:23 +00:00
|
|
|
F: lib/librte_security/
|
2017-10-25 15:07:24 +00:00
|
|
|
F: doc/guides/prog_guide/rte_security.rst
|
2020-04-09 17:24:54 +00:00
|
|
|
F: app/test/test_security.c
|
2017-10-25 15:07:23 +00:00
|
|
|
|
2018-04-27 13:23:54 +00:00
|
|
|
Compression API - EXPERIMENTAL
|
|
|
|
M: Fiona Trahe <fiona.trahe@intel.com>
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Ashish Gupta <ashish.gupta@marvell.com>
|
2018-04-27 13:23:54 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
|
|
|
F: lib/librte_compressdev/
|
2018-05-09 16:14:26 +00:00
|
|
|
F: drivers/compress/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_compressdev*
|
2018-04-27 13:24:07 +00:00
|
|
|
F: doc/guides/prog_guide/compressdev.rst
|
2018-05-09 16:14:35 +00:00
|
|
|
F: doc/guides/compressdevs/features/default.ini
|
2018-04-27 13:23:54 +00:00
|
|
|
|
regexdev: introduce API
As RegEx usage become more used by DPDK applications, for example:
* Next Generation Firewalls (NGFW)
* Deep Packet and Flow Inspection (DPI)
* Intrusion Prevention Systems (IPS)
* DDoS Mitigation
* Network Monitoring
* Data Loss Prevention (DLP)
* Smart NICs
* Grammar based content processing
* URL, spam and adware filtering
* Advanced auditing and policing of user/application security policies
* Financial data mining - parsing of streamed financial feeds
* Application recognition.
* Dmemory introspection.
* Natural Language Processing (NLP)
* Sentiment Analysis.
* Big data database acceleration.
* Computational storage.
Number of PMD providers started to work on HW implementation,
along side with SW implementations.
This lib adds the support for those kind of devices.
The RegEx Device API is composed of two parts:
- The application-oriented RegEx API that includes functions to setup
a RegEx device (configure it, setup its queue pairs and start it),
update the rule database and so on.
- The driver-oriented RegEx API that exports a function allowing
a RegEx poll Mode Driver (PMD) to simultaneously register itself as
a RegEx device driver.
RegEx device components and definitions:
+-----------------+
| |
| o---------+ rte_regexdev_[en|de]queue_burst()
| PCRE based o------+ | |
| RegEx pattern | | | +--------+ |
| matching engine o------+--+--o | | +------+
| | | | | queue |<==o===>|Core 0|
| o----+ | | | pair 0 | | |
| | | | | +--------+ +------+
+-----------------+ | | |
^ | | | +--------+
| | | | | | +------+
| | +--+--o queue |<======>|Core 1|
Rule|Database | | | pair 1 | | |
+------+----------+ | | +--------+ +------+
| Group 0 | | |
| +-------------+ | | | +--------+ +------+
| | Rules 0..n | | | | | | |Core 2|
| +-------------+ | | +--o queue |<======>| |
| Group 1 | | | pair 2 | +------+
| +-------------+ | | +--------+
| | Rules 0..n | | |
| +-------------+ | | +--------+
| Group 2 | | | | +------+
| +-------------+ | | | queue |<======>|Core n|
| | Rules 0..n | | +-------o pair n | | |
| +-------------+ | +--------+ +------+
| Group n |
| +-------------+ |<-------rte_regexdev_rule_db_update()
| | | |<-------rte_regexdev_rule_db_compile_activate()
| | Rules 0..n | |<-------rte_regexdev_rule_db_import()
| +-------------+ |------->rte_regexdev_rule_db_export()
+-----------------+
RegEx: A regular expression is a concise and flexible means for matching
strings of text, such as particular characters, words, or patterns of
characters. A common abbreviation for this is â~@~\RegExâ~@~].
RegEx device: A hardware or software-based implementation of RegEx
device API for PCRE based pattern matching syntax and semantics.
PCRE RegEx syntax and semantics specification:
http://regexkit.sourceforge.net/Documentation/pcre/pcrepattern.html
RegEx queue pair: Each RegEx device should have one or more queue pair to
transmit a burst of pattern matching request and receive a burst of
receive the pattern matching response. The pattern matching
request/response embedded in *rte_regex_ops* structure.
Rule: A pattern matching rule expressed in PCRE RegEx syntax along with
Match ID and Group ID to identify the rule upon the match.
Rule database: The RegEx device accepts regular expressions and converts
them into a compiled rule database that can then be used to scan data.
Compilation allows the device to analyze the given pattern(s) and
pre-determine how to scan for these patterns in an optimized fashion that
would be far too expensive to compute at run-time. A rule database
contains a set of rules that compiled in device specific binary form.
Match ID or Rule ID: A unique identifier provided at the time of rule
creation for the application to identify the rule upon match.
Group ID: Group of rules can be grouped under one group ID to enable
rule isolation and effective pattern matching. A unique group identifier
provided at the time of rule creation for the application to identify
the rule upon match.
Scan: A pattern matching request through *enqueue* API.
It may possible that a given RegEx device may not support all the
features
of PCRE. The application may probe unsupported features through
struct rte_regexdev_info::pcre_unsup_flags
By default, all the functions of the RegEx Device API exported by a PMD
are lock-free functions which assume to not be invoked in parallel on
different logical cores to work on the same target object. For instance,
the dequeue function of a PMD cannot be invoked in parallel on two logical
cores to operates on same RegEx queue pair. Of course, this function
can be invoked in parallel by different logical core on different queue
pair. It is the responsibility of the upper level application to
enforce this rule.
In all functions of the RegEx API, the RegEx device is
designated by an integer >= 0 named the device identifier *dev_id*
At the RegEx driver level, RegEx devices are represented by a generic
data structure of type *rte_regexdev*.
RegEx devices are dynamically registered during the PCI/SoC device
probing phase performed at EAL initialization time.
When a RegEx device is being probed, a *rte_regexdev* structure and
a new device identifier are allocated for that device. Then, the
regexdev_init() function supplied by the RegEx driver matching the
probed device is invoked to properly initialize the device.
The role of the device init function consists of resetting the hardware
or software RegEx driver implementations.
If the device init operation is successful, the correspondence between
the device identifier assigned to the new device and its associated
*rte_regexdev* structure is effectively registered.
Otherwise, both the *rte_regexdev* structure and the device identifier
are freed.
The functions exported by the application RegEx API to setup a device
designated by its device identifier must be invoked in the following
order:
- rte_regexdev_configure()
- rte_regexdev_queue_pair_setup()
- rte_regexdev_start()
Then, the application can invoke, in any order, the functions
exported by the RegEx API to enqueue pattern matching job, dequeue
pattern matching response, get the stats, update the rule database,
get/set device attributes and so on
If the application wants to change the configuration (i.e. call
rte_regexdev_configure() or rte_regexdev_queue_pair_setup()), it must
call rte_regexdev_stop() first to stop the device and then do the
reconfiguration before calling rte_regexdev_start() again. The enqueue and
dequeue functions should not be invoked when the device is stopped.
Finally, an application can close a RegEx device by invoking the
rte_regexdev_close() function.
Each function of the application RegEx API invokes a specific function
of the PMD that controls the target device designated by its device
identifier.
For this purpose, all device-specific functions of a RegEx driver are
supplied through a set of pointers contained in a generic structure of
type *regexdev_ops*.
The address of the *regexdev_ops* structure is stored in the
*rte_regexdev* structure by the device init function of the RegEx driver,
which is invoked during the PCI/SoC device probing phase, as explained
earlier.
In other words, each function of the RegEx API simply retrieves the
*rte_regexdev* structure associated with the device identifier and
performs an indirect invocation of the corresponding driver function
supplied in the *regexdev_ops* structure of the *rte_regexdev*
structure.
For performance reasons, the address of the fast-path functions of the
RegEx driver is not contained in the *regexdev_ops* structure.
Instead, they are directly stored at the beginning of the *rte_regexdev*
structure to avoid an extra indirect memory access during their
invocation.
RTE RegEx device drivers do not use interrupts for enqueue or dequeue
operation. Instead, RegEx drivers export Poll-Mode enqueue and dequeue
functions to applications.
The *enqueue* operation submits a burst of RegEx pattern matching
request to the RegEx device and the *dequeue* operation gets a burst of
pattern matching response for the ones submitted through *enqueue*
operation.
Typical application utilisation of the RegEx device API will follow the
following programming flow.
- rte_regexdev_configure()
- rte_regexdev_queue_pair_setup()
- rte_regexdev_rule_db_update() Needs to invoke if precompiled rule
database not
provided in rte_regexdev_config::rule_db for rte_regexdev_configure()
and/or application needs to update rule database.
- rte_regexdev_rule_db_compile_activate() Needs to invoke if
rte_regexdev_rule_db_update function was used.
- Create or reuse exiting mempool for *rte_regex_ops* objects.
- rte_regexdev_start()
- rte_regexdev_enqueue_burst()
- rte_regexdev_dequeue_burst()
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Signed-off-by: Ori Kam <orika@mellanox.com>
2020-07-06 17:36:46 +00:00
|
|
|
RegEx API - EXPERIMENTAL
|
2020-08-12 16:08:35 +00:00
|
|
|
M: Ori Kam <orika@nvidia.com>
|
regexdev: introduce API
As RegEx usage become more used by DPDK applications, for example:
* Next Generation Firewalls (NGFW)
* Deep Packet and Flow Inspection (DPI)
* Intrusion Prevention Systems (IPS)
* DDoS Mitigation
* Network Monitoring
* Data Loss Prevention (DLP)
* Smart NICs
* Grammar based content processing
* URL, spam and adware filtering
* Advanced auditing and policing of user/application security policies
* Financial data mining - parsing of streamed financial feeds
* Application recognition.
* Dmemory introspection.
* Natural Language Processing (NLP)
* Sentiment Analysis.
* Big data database acceleration.
* Computational storage.
Number of PMD providers started to work on HW implementation,
along side with SW implementations.
This lib adds the support for those kind of devices.
The RegEx Device API is composed of two parts:
- The application-oriented RegEx API that includes functions to setup
a RegEx device (configure it, setup its queue pairs and start it),
update the rule database and so on.
- The driver-oriented RegEx API that exports a function allowing
a RegEx poll Mode Driver (PMD) to simultaneously register itself as
a RegEx device driver.
RegEx device components and definitions:
+-----------------+
| |
| o---------+ rte_regexdev_[en|de]queue_burst()
| PCRE based o------+ | |
| RegEx pattern | | | +--------+ |
| matching engine o------+--+--o | | +------+
| | | | | queue |<==o===>|Core 0|
| o----+ | | | pair 0 | | |
| | | | | +--------+ +------+
+-----------------+ | | |
^ | | | +--------+
| | | | | | +------+
| | +--+--o queue |<======>|Core 1|
Rule|Database | | | pair 1 | | |
+------+----------+ | | +--------+ +------+
| Group 0 | | |
| +-------------+ | | | +--------+ +------+
| | Rules 0..n | | | | | | |Core 2|
| +-------------+ | | +--o queue |<======>| |
| Group 1 | | | pair 2 | +------+
| +-------------+ | | +--------+
| | Rules 0..n | | |
| +-------------+ | | +--------+
| Group 2 | | | | +------+
| +-------------+ | | | queue |<======>|Core n|
| | Rules 0..n | | +-------o pair n | | |
| +-------------+ | +--------+ +------+
| Group n |
| +-------------+ |<-------rte_regexdev_rule_db_update()
| | | |<-------rte_regexdev_rule_db_compile_activate()
| | Rules 0..n | |<-------rte_regexdev_rule_db_import()
| +-------------+ |------->rte_regexdev_rule_db_export()
+-----------------+
RegEx: A regular expression is a concise and flexible means for matching
strings of text, such as particular characters, words, or patterns of
characters. A common abbreviation for this is â~@~\RegExâ~@~].
RegEx device: A hardware or software-based implementation of RegEx
device API for PCRE based pattern matching syntax and semantics.
PCRE RegEx syntax and semantics specification:
http://regexkit.sourceforge.net/Documentation/pcre/pcrepattern.html
RegEx queue pair: Each RegEx device should have one or more queue pair to
transmit a burst of pattern matching request and receive a burst of
receive the pattern matching response. The pattern matching
request/response embedded in *rte_regex_ops* structure.
Rule: A pattern matching rule expressed in PCRE RegEx syntax along with
Match ID and Group ID to identify the rule upon the match.
Rule database: The RegEx device accepts regular expressions and converts
them into a compiled rule database that can then be used to scan data.
Compilation allows the device to analyze the given pattern(s) and
pre-determine how to scan for these patterns in an optimized fashion that
would be far too expensive to compute at run-time. A rule database
contains a set of rules that compiled in device specific binary form.
Match ID or Rule ID: A unique identifier provided at the time of rule
creation for the application to identify the rule upon match.
Group ID: Group of rules can be grouped under one group ID to enable
rule isolation and effective pattern matching. A unique group identifier
provided at the time of rule creation for the application to identify
the rule upon match.
Scan: A pattern matching request through *enqueue* API.
It may possible that a given RegEx device may not support all the
features
of PCRE. The application may probe unsupported features through
struct rte_regexdev_info::pcre_unsup_flags
By default, all the functions of the RegEx Device API exported by a PMD
are lock-free functions which assume to not be invoked in parallel on
different logical cores to work on the same target object. For instance,
the dequeue function of a PMD cannot be invoked in parallel on two logical
cores to operates on same RegEx queue pair. Of course, this function
can be invoked in parallel by different logical core on different queue
pair. It is the responsibility of the upper level application to
enforce this rule.
In all functions of the RegEx API, the RegEx device is
designated by an integer >= 0 named the device identifier *dev_id*
At the RegEx driver level, RegEx devices are represented by a generic
data structure of type *rte_regexdev*.
RegEx devices are dynamically registered during the PCI/SoC device
probing phase performed at EAL initialization time.
When a RegEx device is being probed, a *rte_regexdev* structure and
a new device identifier are allocated for that device. Then, the
regexdev_init() function supplied by the RegEx driver matching the
probed device is invoked to properly initialize the device.
The role of the device init function consists of resetting the hardware
or software RegEx driver implementations.
If the device init operation is successful, the correspondence between
the device identifier assigned to the new device and its associated
*rte_regexdev* structure is effectively registered.
Otherwise, both the *rte_regexdev* structure and the device identifier
are freed.
The functions exported by the application RegEx API to setup a device
designated by its device identifier must be invoked in the following
order:
- rte_regexdev_configure()
- rte_regexdev_queue_pair_setup()
- rte_regexdev_start()
Then, the application can invoke, in any order, the functions
exported by the RegEx API to enqueue pattern matching job, dequeue
pattern matching response, get the stats, update the rule database,
get/set device attributes and so on
If the application wants to change the configuration (i.e. call
rte_regexdev_configure() or rte_regexdev_queue_pair_setup()), it must
call rte_regexdev_stop() first to stop the device and then do the
reconfiguration before calling rte_regexdev_start() again. The enqueue and
dequeue functions should not be invoked when the device is stopped.
Finally, an application can close a RegEx device by invoking the
rte_regexdev_close() function.
Each function of the application RegEx API invokes a specific function
of the PMD that controls the target device designated by its device
identifier.
For this purpose, all device-specific functions of a RegEx driver are
supplied through a set of pointers contained in a generic structure of
type *regexdev_ops*.
The address of the *regexdev_ops* structure is stored in the
*rte_regexdev* structure by the device init function of the RegEx driver,
which is invoked during the PCI/SoC device probing phase, as explained
earlier.
In other words, each function of the RegEx API simply retrieves the
*rte_regexdev* structure associated with the device identifier and
performs an indirect invocation of the corresponding driver function
supplied in the *regexdev_ops* structure of the *rte_regexdev*
structure.
For performance reasons, the address of the fast-path functions of the
RegEx driver is not contained in the *regexdev_ops* structure.
Instead, they are directly stored at the beginning of the *rte_regexdev*
structure to avoid an extra indirect memory access during their
invocation.
RTE RegEx device drivers do not use interrupts for enqueue or dequeue
operation. Instead, RegEx drivers export Poll-Mode enqueue and dequeue
functions to applications.
The *enqueue* operation submits a burst of RegEx pattern matching
request to the RegEx device and the *dequeue* operation gets a burst of
pattern matching response for the ones submitted through *enqueue*
operation.
Typical application utilisation of the RegEx device API will follow the
following programming flow.
- rte_regexdev_configure()
- rte_regexdev_queue_pair_setup()
- rte_regexdev_rule_db_update() Needs to invoke if precompiled rule
database not
provided in rte_regexdev_config::rule_db for rte_regexdev_configure()
and/or application needs to update rule database.
- rte_regexdev_rule_db_compile_activate() Needs to invoke if
rte_regexdev_rule_db_update function was used.
- Create or reuse exiting mempool for *rte_regex_ops* objects.
- rte_regexdev_start()
- rte_regexdev_enqueue_burst()
- rte_regexdev_dequeue_burst()
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Signed-off-by: Ori Kam <orika@mellanox.com>
2020-07-06 17:36:46 +00:00
|
|
|
F: lib/librte_regexdev/
|
2020-07-29 18:09:57 +00:00
|
|
|
F: app/test-regex/
|
regexdev: introduce API
As RegEx usage become more used by DPDK applications, for example:
* Next Generation Firewalls (NGFW)
* Deep Packet and Flow Inspection (DPI)
* Intrusion Prevention Systems (IPS)
* DDoS Mitigation
* Network Monitoring
* Data Loss Prevention (DLP)
* Smart NICs
* Grammar based content processing
* URL, spam and adware filtering
* Advanced auditing and policing of user/application security policies
* Financial data mining - parsing of streamed financial feeds
* Application recognition.
* Dmemory introspection.
* Natural Language Processing (NLP)
* Sentiment Analysis.
* Big data database acceleration.
* Computational storage.
Number of PMD providers started to work on HW implementation,
along side with SW implementations.
This lib adds the support for those kind of devices.
The RegEx Device API is composed of two parts:
- The application-oriented RegEx API that includes functions to setup
a RegEx device (configure it, setup its queue pairs and start it),
update the rule database and so on.
- The driver-oriented RegEx API that exports a function allowing
a RegEx poll Mode Driver (PMD) to simultaneously register itself as
a RegEx device driver.
RegEx device components and definitions:
+-----------------+
| |
| o---------+ rte_regexdev_[en|de]queue_burst()
| PCRE based o------+ | |
| RegEx pattern | | | +--------+ |
| matching engine o------+--+--o | | +------+
| | | | | queue |<==o===>|Core 0|
| o----+ | | | pair 0 | | |
| | | | | +--------+ +------+
+-----------------+ | | |
^ | | | +--------+
| | | | | | +------+
| | +--+--o queue |<======>|Core 1|
Rule|Database | | | pair 1 | | |
+------+----------+ | | +--------+ +------+
| Group 0 | | |
| +-------------+ | | | +--------+ +------+
| | Rules 0..n | | | | | | |Core 2|
| +-------------+ | | +--o queue |<======>| |
| Group 1 | | | pair 2 | +------+
| +-------------+ | | +--------+
| | Rules 0..n | | |
| +-------------+ | | +--------+
| Group 2 | | | | +------+
| +-------------+ | | | queue |<======>|Core n|
| | Rules 0..n | | +-------o pair n | | |
| +-------------+ | +--------+ +------+
| Group n |
| +-------------+ |<-------rte_regexdev_rule_db_update()
| | | |<-------rte_regexdev_rule_db_compile_activate()
| | Rules 0..n | |<-------rte_regexdev_rule_db_import()
| +-------------+ |------->rte_regexdev_rule_db_export()
+-----------------+
RegEx: A regular expression is a concise and flexible means for matching
strings of text, such as particular characters, words, or patterns of
characters. A common abbreviation for this is â~@~\RegExâ~@~].
RegEx device: A hardware or software-based implementation of RegEx
device API for PCRE based pattern matching syntax and semantics.
PCRE RegEx syntax and semantics specification:
http://regexkit.sourceforge.net/Documentation/pcre/pcrepattern.html
RegEx queue pair: Each RegEx device should have one or more queue pair to
transmit a burst of pattern matching request and receive a burst of
receive the pattern matching response. The pattern matching
request/response embedded in *rte_regex_ops* structure.
Rule: A pattern matching rule expressed in PCRE RegEx syntax along with
Match ID and Group ID to identify the rule upon the match.
Rule database: The RegEx device accepts regular expressions and converts
them into a compiled rule database that can then be used to scan data.
Compilation allows the device to analyze the given pattern(s) and
pre-determine how to scan for these patterns in an optimized fashion that
would be far too expensive to compute at run-time. A rule database
contains a set of rules that compiled in device specific binary form.
Match ID or Rule ID: A unique identifier provided at the time of rule
creation for the application to identify the rule upon match.
Group ID: Group of rules can be grouped under one group ID to enable
rule isolation and effective pattern matching. A unique group identifier
provided at the time of rule creation for the application to identify
the rule upon match.
Scan: A pattern matching request through *enqueue* API.
It may possible that a given RegEx device may not support all the
features
of PCRE. The application may probe unsupported features through
struct rte_regexdev_info::pcre_unsup_flags
By default, all the functions of the RegEx Device API exported by a PMD
are lock-free functions which assume to not be invoked in parallel on
different logical cores to work on the same target object. For instance,
the dequeue function of a PMD cannot be invoked in parallel on two logical
cores to operates on same RegEx queue pair. Of course, this function
can be invoked in parallel by different logical core on different queue
pair. It is the responsibility of the upper level application to
enforce this rule.
In all functions of the RegEx API, the RegEx device is
designated by an integer >= 0 named the device identifier *dev_id*
At the RegEx driver level, RegEx devices are represented by a generic
data structure of type *rte_regexdev*.
RegEx devices are dynamically registered during the PCI/SoC device
probing phase performed at EAL initialization time.
When a RegEx device is being probed, a *rte_regexdev* structure and
a new device identifier are allocated for that device. Then, the
regexdev_init() function supplied by the RegEx driver matching the
probed device is invoked to properly initialize the device.
The role of the device init function consists of resetting the hardware
or software RegEx driver implementations.
If the device init operation is successful, the correspondence between
the device identifier assigned to the new device and its associated
*rte_regexdev* structure is effectively registered.
Otherwise, both the *rte_regexdev* structure and the device identifier
are freed.
The functions exported by the application RegEx API to setup a device
designated by its device identifier must be invoked in the following
order:
- rte_regexdev_configure()
- rte_regexdev_queue_pair_setup()
- rte_regexdev_start()
Then, the application can invoke, in any order, the functions
exported by the RegEx API to enqueue pattern matching job, dequeue
pattern matching response, get the stats, update the rule database,
get/set device attributes and so on
If the application wants to change the configuration (i.e. call
rte_regexdev_configure() or rte_regexdev_queue_pair_setup()), it must
call rte_regexdev_stop() first to stop the device and then do the
reconfiguration before calling rte_regexdev_start() again. The enqueue and
dequeue functions should not be invoked when the device is stopped.
Finally, an application can close a RegEx device by invoking the
rte_regexdev_close() function.
Each function of the application RegEx API invokes a specific function
of the PMD that controls the target device designated by its device
identifier.
For this purpose, all device-specific functions of a RegEx driver are
supplied through a set of pointers contained in a generic structure of
type *regexdev_ops*.
The address of the *regexdev_ops* structure is stored in the
*rte_regexdev* structure by the device init function of the RegEx driver,
which is invoked during the PCI/SoC device probing phase, as explained
earlier.
In other words, each function of the RegEx API simply retrieves the
*rte_regexdev* structure associated with the device identifier and
performs an indirect invocation of the corresponding driver function
supplied in the *regexdev_ops* structure of the *rte_regexdev*
structure.
For performance reasons, the address of the fast-path functions of the
RegEx driver is not contained in the *regexdev_ops* structure.
Instead, they are directly stored at the beginning of the *rte_regexdev*
structure to avoid an extra indirect memory access during their
invocation.
RTE RegEx device drivers do not use interrupts for enqueue or dequeue
operation. Instead, RegEx drivers export Poll-Mode enqueue and dequeue
functions to applications.
The *enqueue* operation submits a burst of RegEx pattern matching
request to the RegEx device and the *dequeue* operation gets a burst of
pattern matching response for the ones submitted through *enqueue*
operation.
Typical application utilisation of the RegEx device API will follow the
following programming flow.
- rte_regexdev_configure()
- rte_regexdev_queue_pair_setup()
- rte_regexdev_rule_db_update() Needs to invoke if precompiled rule
database not
provided in rte_regexdev_config::rule_db for rte_regexdev_configure()
and/or application needs to update rule database.
- rte_regexdev_rule_db_compile_activate() Needs to invoke if
rte_regexdev_rule_db_update function was used.
- Create or reuse exiting mempool for *rte_regex_ops* objects.
- rte_regexdev_start()
- rte_regexdev_enqueue_burst()
- rte_regexdev_dequeue_burst()
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Signed-off-by: Ori Kam <orika@mellanox.com>
2020-07-06 17:36:46 +00:00
|
|
|
F: doc/guides/prog_guide/regexdev.rst
|
2020-07-20 06:26:05 +00:00
|
|
|
F: doc/guides/regexdevs/features/default.ini
|
regexdev: introduce API
As RegEx usage become more used by DPDK applications, for example:
* Next Generation Firewalls (NGFW)
* Deep Packet and Flow Inspection (DPI)
* Intrusion Prevention Systems (IPS)
* DDoS Mitigation
* Network Monitoring
* Data Loss Prevention (DLP)
* Smart NICs
* Grammar based content processing
* URL, spam and adware filtering
* Advanced auditing and policing of user/application security policies
* Financial data mining - parsing of streamed financial feeds
* Application recognition.
* Dmemory introspection.
* Natural Language Processing (NLP)
* Sentiment Analysis.
* Big data database acceleration.
* Computational storage.
Number of PMD providers started to work on HW implementation,
along side with SW implementations.
This lib adds the support for those kind of devices.
The RegEx Device API is composed of two parts:
- The application-oriented RegEx API that includes functions to setup
a RegEx device (configure it, setup its queue pairs and start it),
update the rule database and so on.
- The driver-oriented RegEx API that exports a function allowing
a RegEx poll Mode Driver (PMD) to simultaneously register itself as
a RegEx device driver.
RegEx device components and definitions:
+-----------------+
| |
| o---------+ rte_regexdev_[en|de]queue_burst()
| PCRE based o------+ | |
| RegEx pattern | | | +--------+ |
| matching engine o------+--+--o | | +------+
| | | | | queue |<==o===>|Core 0|
| o----+ | | | pair 0 | | |
| | | | | +--------+ +------+
+-----------------+ | | |
^ | | | +--------+
| | | | | | +------+
| | +--+--o queue |<======>|Core 1|
Rule|Database | | | pair 1 | | |
+------+----------+ | | +--------+ +------+
| Group 0 | | |
| +-------------+ | | | +--------+ +------+
| | Rules 0..n | | | | | | |Core 2|
| +-------------+ | | +--o queue |<======>| |
| Group 1 | | | pair 2 | +------+
| +-------------+ | | +--------+
| | Rules 0..n | | |
| +-------------+ | | +--------+
| Group 2 | | | | +------+
| +-------------+ | | | queue |<======>|Core n|
| | Rules 0..n | | +-------o pair n | | |
| +-------------+ | +--------+ +------+
| Group n |
| +-------------+ |<-------rte_regexdev_rule_db_update()
| | | |<-------rte_regexdev_rule_db_compile_activate()
| | Rules 0..n | |<-------rte_regexdev_rule_db_import()
| +-------------+ |------->rte_regexdev_rule_db_export()
+-----------------+
RegEx: A regular expression is a concise and flexible means for matching
strings of text, such as particular characters, words, or patterns of
characters. A common abbreviation for this is â~@~\RegExâ~@~].
RegEx device: A hardware or software-based implementation of RegEx
device API for PCRE based pattern matching syntax and semantics.
PCRE RegEx syntax and semantics specification:
http://regexkit.sourceforge.net/Documentation/pcre/pcrepattern.html
RegEx queue pair: Each RegEx device should have one or more queue pair to
transmit a burst of pattern matching request and receive a burst of
receive the pattern matching response. The pattern matching
request/response embedded in *rte_regex_ops* structure.
Rule: A pattern matching rule expressed in PCRE RegEx syntax along with
Match ID and Group ID to identify the rule upon the match.
Rule database: The RegEx device accepts regular expressions and converts
them into a compiled rule database that can then be used to scan data.
Compilation allows the device to analyze the given pattern(s) and
pre-determine how to scan for these patterns in an optimized fashion that
would be far too expensive to compute at run-time. A rule database
contains a set of rules that compiled in device specific binary form.
Match ID or Rule ID: A unique identifier provided at the time of rule
creation for the application to identify the rule upon match.
Group ID: Group of rules can be grouped under one group ID to enable
rule isolation and effective pattern matching. A unique group identifier
provided at the time of rule creation for the application to identify
the rule upon match.
Scan: A pattern matching request through *enqueue* API.
It may possible that a given RegEx device may not support all the
features
of PCRE. The application may probe unsupported features through
struct rte_regexdev_info::pcre_unsup_flags
By default, all the functions of the RegEx Device API exported by a PMD
are lock-free functions which assume to not be invoked in parallel on
different logical cores to work on the same target object. For instance,
the dequeue function of a PMD cannot be invoked in parallel on two logical
cores to operates on same RegEx queue pair. Of course, this function
can be invoked in parallel by different logical core on different queue
pair. It is the responsibility of the upper level application to
enforce this rule.
In all functions of the RegEx API, the RegEx device is
designated by an integer >= 0 named the device identifier *dev_id*
At the RegEx driver level, RegEx devices are represented by a generic
data structure of type *rte_regexdev*.
RegEx devices are dynamically registered during the PCI/SoC device
probing phase performed at EAL initialization time.
When a RegEx device is being probed, a *rte_regexdev* structure and
a new device identifier are allocated for that device. Then, the
regexdev_init() function supplied by the RegEx driver matching the
probed device is invoked to properly initialize the device.
The role of the device init function consists of resetting the hardware
or software RegEx driver implementations.
If the device init operation is successful, the correspondence between
the device identifier assigned to the new device and its associated
*rte_regexdev* structure is effectively registered.
Otherwise, both the *rte_regexdev* structure and the device identifier
are freed.
The functions exported by the application RegEx API to setup a device
designated by its device identifier must be invoked in the following
order:
- rte_regexdev_configure()
- rte_regexdev_queue_pair_setup()
- rte_regexdev_start()
Then, the application can invoke, in any order, the functions
exported by the RegEx API to enqueue pattern matching job, dequeue
pattern matching response, get the stats, update the rule database,
get/set device attributes and so on
If the application wants to change the configuration (i.e. call
rte_regexdev_configure() or rte_regexdev_queue_pair_setup()), it must
call rte_regexdev_stop() first to stop the device and then do the
reconfiguration before calling rte_regexdev_start() again. The enqueue and
dequeue functions should not be invoked when the device is stopped.
Finally, an application can close a RegEx device by invoking the
rte_regexdev_close() function.
Each function of the application RegEx API invokes a specific function
of the PMD that controls the target device designated by its device
identifier.
For this purpose, all device-specific functions of a RegEx driver are
supplied through a set of pointers contained in a generic structure of
type *regexdev_ops*.
The address of the *regexdev_ops* structure is stored in the
*rte_regexdev* structure by the device init function of the RegEx driver,
which is invoked during the PCI/SoC device probing phase, as explained
earlier.
In other words, each function of the RegEx API simply retrieves the
*rte_regexdev* structure associated with the device identifier and
performs an indirect invocation of the corresponding driver function
supplied in the *regexdev_ops* structure of the *rte_regexdev*
structure.
For performance reasons, the address of the fast-path functions of the
RegEx driver is not contained in the *regexdev_ops* structure.
Instead, they are directly stored at the beginning of the *rte_regexdev*
structure to avoid an extra indirect memory access during their
invocation.
RTE RegEx device drivers do not use interrupts for enqueue or dequeue
operation. Instead, RegEx drivers export Poll-Mode enqueue and dequeue
functions to applications.
The *enqueue* operation submits a burst of RegEx pattern matching
request to the RegEx device and the *dequeue* operation gets a burst of
pattern matching response for the ones submitted through *enqueue*
operation.
Typical application utilisation of the RegEx device API will follow the
following programming flow.
- rte_regexdev_configure()
- rte_regexdev_queue_pair_setup()
- rte_regexdev_rule_db_update() Needs to invoke if precompiled rule
database not
provided in rte_regexdev_config::rule_db for rte_regexdev_configure()
and/or application needs to update rule database.
- rte_regexdev_rule_db_compile_activate() Needs to invoke if
rte_regexdev_rule_db_update function was used.
- Create or reuse exiting mempool for *rte_regex_ops* objects.
- rte_regexdev_start()
- rte_regexdev_enqueue_burst()
- rte_regexdev_dequeue_burst()
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Signed-off-by: Ori Kam <orika@mellanox.com>
2020-07-06 17:36:46 +00:00
|
|
|
|
2017-10-16 10:32:55 +00:00
|
|
|
Eventdev API
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
2016-11-18 02:00:38 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-eventdev
|
|
|
|
F: lib/librte_eventdev/
|
2016-11-18 05:45:01 +00:00
|
|
|
F: drivers/event/skeleton/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_eventdev.c
|
2020-01-28 05:34:55 +00:00
|
|
|
F: examples/l3fwd/l3fwd_event*
|
2016-11-18 02:00:38 +00:00
|
|
|
|
2019-06-24 23:16:02 +00:00
|
|
|
Eventdev Ethdev Rx Adapter API
|
2017-10-10 22:21:34 +00:00
|
|
|
M: Nikhil Rao <nikhil.rao@intel.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-eventdev
|
|
|
|
F: lib/librte_eventdev/*eth_rx_adapter*
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_event_eth_rx_adapter.c
|
2017-10-24 09:13:29 +00:00
|
|
|
F: doc/guides/prog_guide/event_ethernet_rx_adapter.rst
|
|
|
|
|
2019-04-19 12:10:40 +00:00
|
|
|
Eventdev Ethdev Tx Adapter API
|
2018-09-20 17:41:12 +00:00
|
|
|
M: Nikhil Rao <nikhil.rao@intel.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-eventdev
|
|
|
|
F: lib/librte_eventdev/*eth_tx_adapter*
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_event_eth_tx_adapter.c
|
2018-09-20 17:41:16 +00:00
|
|
|
F: doc/guides/prog_guide/event_ethernet_tx_adapter.rst
|
2018-09-20 17:41:12 +00:00
|
|
|
|
2019-04-19 12:10:40 +00:00
|
|
|
Eventdev Timer Adapter API
|
2018-04-04 21:51:06 +00:00
|
|
|
M: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-eventdev
|
|
|
|
F: lib/librte_eventdev/*timer_adapter*
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_event_timer_adapter.c
|
2018-04-04 21:51:13 +00:00
|
|
|
F: doc/guides/prog_guide/event_timer_adapter.rst
|
2018-04-04 21:51:06 +00:00
|
|
|
|
2019-04-19 12:10:40 +00:00
|
|
|
Eventdev Crypto Adapter API
|
2018-05-09 08:17:57 +00:00
|
|
|
M: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-eventdev
|
|
|
|
F: lib/librte_eventdev/*crypto_adapter*
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_event_crypto_adapter.c
|
2018-05-09 08:18:01 +00:00
|
|
|
F: doc/guides/prog_guide/event_crypto_adapter.rst
|
2018-05-09 08:17:57 +00:00
|
|
|
|
2020-07-07 08:54:07 +00:00
|
|
|
Raw device API
|
2020-03-30 05:17:29 +00:00
|
|
|
M: Nipun Gupta <nipun.gupta@nxp.com>
|
rawdev: introduce raw device library
Each device in DPDK has a type associated with it - ethernet, crypto,
event etc. This patch introduces 'rawdevice' which is a generic
type of device, not currently handled out-of-the-box by DPDK.
A device which can be scanned on an installed bus (pci, fslmc, ...)
or instantiated through devargs, can be interfaced using
standardized APIs just like other standardized devices.
This library introduces an API set which can be plugged on the
northbound side to the application layer, and on the southbound side
to the driver layer.
The APIs of rawdev library exposes some generic operations which can
enable configuration and I/O with the raw devices. Using opaque
data (pointer) as API arguments, library allows a high flexibility
for application and driver implementation.
This patch introduces basic device operations like start, stop, reset,
queue and info support.
Subsequent patches would introduce other operations like buffer
enqueue/dequeue and firmware support.
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-01-31 09:13:09 +00:00
|
|
|
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
|
|
|
F: lib/librte_rawdev/
|
2019-07-05 09:34:00 +00:00
|
|
|
F: drivers/raw/skeleton/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_rawdev.c
|
2018-01-31 09:13:18 +00:00
|
|
|
F: doc/guides/prog_guide/rawdev.rst
|
rawdev: introduce raw device library
Each device in DPDK has a type associated with it - ethernet, crypto,
event etc. This patch introduces 'rawdevice' which is a generic
type of device, not currently handled out-of-the-box by DPDK.
A device which can be scanned on an installed bus (pci, fslmc, ...)
or instantiated through devargs, can be interfaced using
standardized APIs just like other standardized devices.
This library introduces an API set which can be plugged on the
northbound side to the application layer, and on the southbound side
to the driver layer.
The APIs of rawdev library exposes some generic operations which can
enable configuration and I/O with the raw devices. Using opaque
data (pointer) as API arguments, library allows a high flexibility
for application and driver implementation.
This patch introduces basic device operations like start, stop, reset,
queue and info support.
Subsequent patches would introduce other operations like buffer
enqueue/dequeue and firmware support.
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-01-31 09:13:09 +00:00
|
|
|
|
2017-10-10 22:21:34 +00:00
|
|
|
|
2018-04-26 10:59:19 +00:00
|
|
|
Memory Pool Drivers
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
Bucket memory pool
|
|
|
|
M: Artem V. Andreev <artem.andreev@oktetlabs.ru>
|
2020-09-24 13:40:22 +00:00
|
|
|
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
|
2018-04-26 10:59:19 +00:00
|
|
|
F: drivers/mempool/bucket/
|
|
|
|
|
2019-06-22 13:23:51 +00:00
|
|
|
Marvell OCTEON TX2
|
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
|
|
|
M: Nithin Dabilpuram <ndabilpuram@marvell.com>
|
|
|
|
F: drivers/common/octeontx2/
|
2019-06-22 13:24:06 +00:00
|
|
|
F: drivers/mempool/octeontx2/
|
2019-06-22 13:24:05 +00:00
|
|
|
F: doc/guides/platform/img/octeontx2_*
|
|
|
|
F: doc/guides/platform/octeontx2.rst
|
2019-06-22 13:24:17 +00:00
|
|
|
F: doc/guides/mempool/octeontx2.rst
|
2019-06-22 13:23:51 +00:00
|
|
|
|
2018-04-26 10:59:19 +00:00
|
|
|
|
2017-10-26 10:06:08 +00:00
|
|
|
Bus Drivers
|
|
|
|
-----------
|
|
|
|
|
2018-05-11 08:31:29 +00:00
|
|
|
Intel FPGA bus
|
|
|
|
M: Rosen Xu <rosen.xu@intel.com>
|
|
|
|
F: drivers/bus/ifpga/
|
|
|
|
|
2017-11-15 00:42:24 +00:00
|
|
|
NXP buses
|
|
|
|
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
2020-09-14 14:06:03 +00:00
|
|
|
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
|
2018-10-15 12:01:54 +00:00
|
|
|
F: drivers/common/dpaax/
|
2017-11-15 00:42:24 +00:00
|
|
|
F: drivers/bus/dpaa/
|
|
|
|
F: drivers/bus/fslmc/
|
|
|
|
|
2017-10-26 10:06:08 +00:00
|
|
|
PCI bus driver
|
|
|
|
F: drivers/bus/pci/
|
|
|
|
|
2017-11-07 06:54:21 +00:00
|
|
|
VDEV bus driver
|
|
|
|
F: drivers/bus/vdev/
|
|
|
|
|
2018-07-13 17:06:42 +00:00
|
|
|
VMBUS bus driver
|
|
|
|
M: Stephen Hemminger <sthemmin@microsoft.com>
|
2020-06-25 23:52:16 +00:00
|
|
|
M: Long Li <longli@microsoft.com>
|
2018-07-13 17:06:42 +00:00
|
|
|
F: drivers/bus/vmbus/
|
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2016-07-20 10:34:45 +00:00
|
|
|
Networking Drivers
|
|
|
|
------------------
|
2016-11-10 12:14:40 +00:00
|
|
|
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-net
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/default.ini
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Link bonding
|
2018-05-30 14:44:39 +00:00
|
|
|
M: Chas Williams <chas3@att.com>
|
2020-10-09 13:37:32 +00:00
|
|
|
M: Min Hu (Connor) <humin29@huawei.com>
|
2015-05-15 15:56:48 +00:00
|
|
|
F: drivers/net/bonding/
|
2015-01-23 12:31:59 +00:00
|
|
|
F: doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_link_bonding*
|
2015-02-20 16:09:21 +00:00
|
|
|
F: examples/bond/
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Linux KNI
|
2016-07-07 11:00:29 +00:00
|
|
|
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
2018-02-22 06:09:05 +00:00
|
|
|
F: kernel/linux/kni/
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_kni/
|
|
|
|
F: doc/guides/prog_guide/kernel_nic_interface.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_kni.c
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/kni/
|
|
|
|
F: doc/guides/sample_app_ug/kernel_nic_interface.rst
|
|
|
|
|
|
|
|
Linux AF_PACKET
|
2015-01-23 18:12:25 +00:00
|
|
|
M: John W. Linville <linville@tuxdriver.com>
|
2015-05-15 15:56:47 +00:00
|
|
|
F: drivers/net/af_packet/
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/afpacket.ini
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2019-04-04 08:51:13 +00:00
|
|
|
Linux AF_XDP
|
2020-06-30 12:04:58 +00:00
|
|
|
M: Ciara Loftus <ciara.loftus@intel.com>
|
2019-04-04 08:51:13 +00:00
|
|
|
M: Qi Zhang <qi.z.zhang@intel.com>
|
|
|
|
F: drivers/net/af_xdp/
|
|
|
|
F: doc/guides/nics/af_xdp.rst
|
|
|
|
F: doc/guides/nics/features/af_xdp.ini
|
|
|
|
|
2016-03-17 14:31:15 +00:00
|
|
|
Amazon ENA
|
2017-04-12 14:21:49 +00:00
|
|
|
M: Marcin Wojtas <mw@semihalf.com>
|
|
|
|
M: Michal Krawczyk <mk@semihalf.com>
|
|
|
|
M: Guy Tzalik <gtzalik@amazon.com>
|
2016-03-17 14:31:15 +00:00
|
|
|
M: Evgeny Schemeilin <evgenys@amazon.com>
|
2019-09-26 10:45:27 +00:00
|
|
|
M: Igor Chauskin <igorch@amazon.com>
|
2016-03-17 14:31:15 +00:00
|
|
|
F: drivers/net/ena/
|
|
|
|
F: doc/guides/nics/ena.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/ena.ini
|
2016-03-17 14:31:15 +00:00
|
|
|
|
2018-04-23 01:18:35 +00:00
|
|
|
AMD axgbe
|
2020-04-27 06:11:45 +00:00
|
|
|
M: Somalapuram Amaranath <asomalap@amd.com>
|
2018-04-23 01:18:35 +00:00
|
|
|
F: drivers/net/axgbe/
|
|
|
|
F: doc/guides/nics/axgbe.rst
|
|
|
|
F: doc/guides/nics/features/axgbe.ini
|
|
|
|
|
2018-10-12 11:09:03 +00:00
|
|
|
Aquantia atlantic
|
|
|
|
M: Igor Russkikh <igor.russkikh@aquantia.com>
|
|
|
|
M: Pavel Belous <pavel.belous@aquantia.com>
|
|
|
|
F: drivers/net/atlantic/
|
|
|
|
F: doc/guides/nics/atlantic.rst
|
|
|
|
F: doc/guides/nics/features/atlantic.ini
|
|
|
|
|
2017-04-04 19:50:23 +00:00
|
|
|
Atomic Rules ARK
|
|
|
|
M: Shepard Siegel <shepard.siegel@atomicrules.com>
|
|
|
|
M: Ed Czeck <ed.czeck@atomicrules.com>
|
|
|
|
M: John Miller <john.miller@atomicrules.com>
|
|
|
|
F: drivers/net/ark/
|
|
|
|
F: doc/guides/nics/ark.rst
|
|
|
|
F: doc/guides/nics/features/ark.ini
|
|
|
|
|
2016-06-15 21:23:01 +00:00
|
|
|
Broadcom bnxt
|
2016-09-21 22:27:14 +00:00
|
|
|
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
|
2017-12-14 17:53:33 +00:00
|
|
|
M: Somnath Kotur <somnath.kotur@broadcom.com>
|
2019-10-15 07:38:00 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-brcm
|
2016-06-15 21:23:01 +00:00
|
|
|
F: drivers/net/bnxt/
|
|
|
|
F: doc/guides/nics/bnxt.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/bnxt.ini
|
2016-06-15 21:23:01 +00:00
|
|
|
|
2016-06-17 13:29:53 +00:00
|
|
|
Cavium ThunderX nicvf
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
|
|
|
M: Maciej Czekaj <mczekaj@marvell.com>
|
2019-06-25 05:42:41 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mrvl
|
2016-06-17 13:29:53 +00:00
|
|
|
F: drivers/net/thunderx/
|
|
|
|
F: doc/guides/nics/thunderx.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/thunderx.ini
|
2016-06-17 13:29:53 +00:00
|
|
|
|
ethdev: remove old close behaviour
The temporary flag RTE_ETH_DEV_CLOSE_REMOVE is removed.
It was introduced in DPDK 18.11 in order to give time for PMDs to migrate.
The old behaviour was to free only queues when closing a port.
The new behaviour is calling rte_eth_dev_release_port() which does
three more tasks:
- trigger event callback
- reset state and few pointers
- free all generic port resources
The private port resources must be released in the .dev_close callback.
The .remove callback should:
- call .dev_close callback
- call rte_eth_dev_release_port()
- free multi-port device shared resources
Despite waiting two years, some drivers have not migrated,
so they may hit issues with the incompatible new behaviour.
After sending emails, adding logs, and announcing the deprecation,
the only last solution is to declare these drivers as unmaintained:
ionic, liquidio, nfp
Below is a summary of what to implement in those drivers.
* The freeing of private port resources must be moved
from the ".remove(device)" function to the ".dev_close(port)" function.
* If a generic resource (.mac_addrs or .hash_mac_addrs) cannot be freed,
it must be set to NULL in ".dev_close" function to protect from
subsequent rte_eth_dev_release_port() freeing.
* Note 1:
The generic resources are freed in rte_eth_dev_release_port(),
after ".dev_close" is called in rte_eth_dev_close(), but not when
calling ".dev_close" directly from the ".remove" PMD function.
That's why rte_eth_dev_release_port() must still be called explicitly
from ".remove(device)" after calling the ".dev_close" PMD function.
* Note 2:
If a device can have multiple ports, the common resources must be freed
only in the ".remove(device)" function.
* Note 3:
The port is supposed to be in a stopped state when it is closed.
If it is not the case, it is free to the PMD implementation
how to react when trying to close a non-stopped port:
either try to stop it automatically or just return an error.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Liron Himi <lironh@marvell.com>
Reviewed-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
2020-09-28 23:14:29 +00:00
|
|
|
Cavium LiquidIO - UNMAINTAINED
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Shijith Thotton <sthotton@marvell.com>
|
|
|
|
M: Srisivasubramanian Srinivasan <srinivasan@marvell.com>
|
2019-06-25 05:42:41 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mrvl
|
2017-03-25 06:24:12 +00:00
|
|
|
F: drivers/net/liquidio/
|
2017-03-25 06:24:57 +00:00
|
|
|
F: doc/guides/nics/liquidio.rst
|
2017-03-25 06:24:12 +00:00
|
|
|
F: doc/guides/nics/features/liquidio.ini
|
|
|
|
|
2018-10-10 02:50:56 +00:00
|
|
|
Cavium OCTEON TX
|
2019-12-11 14:23:42 +00:00
|
|
|
M: Harman Kalra <hkalra@marvell.com>
|
2019-06-25 05:42:41 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mrvl
|
2018-04-04 14:30:25 +00:00
|
|
|
F: drivers/common/octeontx/
|
2017-10-08 12:40:02 +00:00
|
|
|
F: drivers/mempool/octeontx/
|
2017-10-08 12:44:05 +00:00
|
|
|
F: drivers/net/octeontx/
|
2017-10-08 12:44:30 +00:00
|
|
|
F: doc/guides/nics/octeontx.rst
|
2017-10-08 12:44:05 +00:00
|
|
|
F: doc/guides/nics/features/octeontx.ini
|
2017-10-08 12:40:02 +00:00
|
|
|
|
2015-06-29 23:28:35 +00:00
|
|
|
Chelsio cxgbe
|
|
|
|
M: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
|
|
|
|
F: drivers/net/cxgbe/
|
2015-06-29 23:28:42 +00:00
|
|
|
F: doc/guides/nics/cxgbe.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/cxgbe.ini
|
2015-06-29 23:28:35 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Cisco enic
|
2015-11-05 19:14:25 +00:00
|
|
|
M: John Daley <johndale@cisco.com>
|
2018-01-10 09:17:01 +00:00
|
|
|
M: Hyong Youb Kim <hyonkim@cisco.com>
|
2015-05-15 15:56:50 +00:00
|
|
|
F: drivers/net/enic/
|
2016-03-18 18:27:07 +00:00
|
|
|
F: doc/guides/nics/enic.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/enic.ini
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2019-09-26 14:01:47 +00:00
|
|
|
Hisilicon hns3
|
|
|
|
M: Wei Hu (Xavier) <xavier.huwei@huawei.com>
|
|
|
|
M: Min Hu (Connor) <humin29@huawei.com>
|
|
|
|
M: Yisen Zhuang <yisen.zhuang@huawei.com>
|
|
|
|
F: drivers/net/hns3/
|
|
|
|
F: doc/guides/nics/hns3.rst
|
|
|
|
F: doc/guides/nics/features/hns3.ini
|
|
|
|
|
2019-06-27 08:18:20 +00:00
|
|
|
Huawei hinic
|
|
|
|
M: Ziyang Xuan <xuanziyang2@huawei.com>
|
|
|
|
M: Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>
|
|
|
|
M: Guoyang Zhou <zhouguoyang@huawei.com>
|
|
|
|
F: drivers/net/hinic/
|
|
|
|
F: doc/guides/nics/hinic.rst
|
|
|
|
F: doc/guides/nics/features/hinic.ini
|
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Intel e1000
|
2020-04-27 01:28:59 +00:00
|
|
|
M: Jeff Guo <jia.guo@intel.com>
|
2020-09-07 03:18:57 +00:00
|
|
|
M: Haiyue Wang <haiyue.wang@intel.com>
|
2018-01-09 13:50:07 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-intel
|
2015-05-15 15:56:49 +00:00
|
|
|
F: drivers/net/e1000/
|
2015-01-31 22:06:06 +00:00
|
|
|
F: doc/guides/nics/e1000em.rst
|
|
|
|
F: doc/guides/nics/intel_vf.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/e1000.ini
|
|
|
|
F: doc/guides/nics/features/igb*.ini
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Intel ixgbe
|
2020-04-27 01:28:59 +00:00
|
|
|
M: Jeff Guo <jia.guo@intel.com>
|
2020-09-07 03:18:57 +00:00
|
|
|
M: Haiyue Wang <haiyue.wang@intel.com>
|
2018-01-09 13:50:07 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-intel
|
2015-05-15 15:56:53 +00:00
|
|
|
F: drivers/net/ixgbe/
|
2015-01-31 22:06:06 +00:00
|
|
|
F: doc/guides/nics/ixgbe.rst
|
|
|
|
F: doc/guides/nics/intel_vf.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/ixgbe*.ini
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Intel i40e
|
2017-06-29 01:11:38 +00:00
|
|
|
M: Beilei Xing <beilei.xing@intel.com>
|
2020-04-26 08:21:51 +00:00
|
|
|
M: Jeff Guo <jia.guo@intel.com>
|
2018-01-09 13:50:07 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-intel
|
2015-05-18 11:05:12 +00:00
|
|
|
F: drivers/net/i40e/
|
2016-03-29 03:21:56 +00:00
|
|
|
F: doc/guides/nics/i40e.rst
|
2015-01-31 22:06:06 +00:00
|
|
|
F: doc/guides/nics/intel_vf.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/i40e*.ini
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2015-02-12 10:06:07 +00:00
|
|
|
Intel fm10k
|
2017-10-25 11:22:54 +00:00
|
|
|
M: Qi Zhang <qi.z.zhang@intel.com>
|
|
|
|
M: Xiao Wang <xiao.w.wang@intel.com>
|
2018-01-09 13:50:07 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-intel
|
2015-05-15 15:56:51 +00:00
|
|
|
F: drivers/net/fm10k/
|
2018-05-22 14:28:30 +00:00
|
|
|
F: doc/guides/nics/fm10k.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/fm10k*.ini
|
2015-02-12 10:06:07 +00:00
|
|
|
|
2019-02-25 17:18:51 +00:00
|
|
|
Intel iavf
|
2018-01-10 13:01:53 +00:00
|
|
|
M: Jingjing Wu <jingjing.wu@intel.com>
|
2020-04-26 08:21:52 +00:00
|
|
|
M: Beilei Xing <beilei.xing@intel.com>
|
2018-04-04 15:13:03 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-intel
|
2019-02-25 17:18:51 +00:00
|
|
|
F: drivers/net/iavf/
|
2020-01-10 01:37:49 +00:00
|
|
|
F: drivers/common/iavf/
|
2019-02-25 17:18:51 +00:00
|
|
|
F: doc/guides/nics/features/iavf*.ini
|
2018-01-10 13:01:53 +00:00
|
|
|
|
2018-12-18 08:46:10 +00:00
|
|
|
Intel ice
|
|
|
|
M: Qiming Yang <qiming.yang@intel.com>
|
2020-04-30 09:28:05 +00:00
|
|
|
M: Qi Zhang <qi.z.zhang@intel.com>
|
2018-12-18 08:46:10 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-intel
|
|
|
|
F: drivers/net/ice/
|
2018-12-18 08:46:24 +00:00
|
|
|
F: doc/guides/nics/ice.rst
|
|
|
|
F: doc/guides/nics/features/ice.ini
|
2018-12-18 08:46:10 +00:00
|
|
|
|
2020-04-15 08:48:00 +00:00
|
|
|
Intel igc
|
2020-04-27 01:28:59 +00:00
|
|
|
M: Jeff Guo <jia.guo@intel.com>
|
2020-09-07 03:18:57 +00:00
|
|
|
M: Haiyue Wang <haiyue.wang@intel.com>
|
2020-04-15 08:48:00 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-intel
|
|
|
|
F: drivers/net/igc/
|
|
|
|
F: doc/guides/nics/igc.rst
|
|
|
|
F: doc/guides/nics/features/igc.ini
|
|
|
|
|
2019-04-16 03:17:40 +00:00
|
|
|
Intel ipn3ke
|
|
|
|
M: Rosen Xu <rosen.xu@intel.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-net-intel
|
|
|
|
F: drivers/net/ipn3ke/
|
|
|
|
F: doc/guides/nics/ipn3ke.rst
|
|
|
|
F: doc/guides/nics/features/ipn3ke.ini
|
|
|
|
|
2018-04-23 01:18:35 +00:00
|
|
|
Marvell mvpp2
|
2019-02-20 15:01:59 +00:00
|
|
|
M: Liron Himi <lironh@marvell.com>
|
2019-06-25 05:42:41 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mrvl
|
2018-08-24 18:29:58 +00:00
|
|
|
F: drivers/common/mvep/
|
2018-04-23 01:18:35 +00:00
|
|
|
F: drivers/net/mvpp2/
|
|
|
|
F: doc/guides/nics/mvpp2.rst
|
|
|
|
F: doc/guides/nics/features/mvpp2.ini
|
|
|
|
|
2018-10-03 07:22:09 +00:00
|
|
|
Marvell mvneta
|
|
|
|
M: Zyta Szpak <zr@semihalf.com>
|
2019-02-20 15:01:59 +00:00
|
|
|
M: Liron Himi <lironh@marvell.com>
|
2019-06-25 05:42:41 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mrvl
|
2018-10-03 07:22:09 +00:00
|
|
|
F: drivers/net/mvneta/
|
|
|
|
F: doc/guides/nics/mvneta.rst
|
|
|
|
F: doc/guides/nics/features/mvneta.ini
|
|
|
|
|
2019-05-28 08:55:22 +00:00
|
|
|
Marvell OCTEON TX2
|
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
|
|
|
M: Nithin Dabilpuram <ndabilpuram@marvell.com>
|
|
|
|
M: Kiran Kumar K <kirankumark@marvell.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mrvl
|
|
|
|
F: drivers/net/octeontx2/
|
|
|
|
F: doc/guides/nics/features/octeontx2*.ini
|
|
|
|
F: doc/guides/nics/octeontx2.rst
|
|
|
|
|
2020-02-04 11:17:12 +00:00
|
|
|
Marvell OCTEON TX2 - security
|
|
|
|
M: Anoob Joseph <anoobj@marvell.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
|
|
|
F: drivers/common/octeontx2/otx2_sec*
|
2020-02-04 11:17:14 +00:00
|
|
|
F: drivers/net/octeontx2/otx2_ethdev_sec*
|
2020-02-04 11:17:12 +00:00
|
|
|
|
2015-02-25 13:52:05 +00:00
|
|
|
Mellanox mlx4
|
2020-08-12 16:08:35 +00:00
|
|
|
M: Matan Azrad <matan@nvidia.com>
|
|
|
|
M: Shahaf Shuler <shahafs@nvidia.com>
|
2018-01-04 20:01:07 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mlx
|
2015-05-15 15:56:54 +00:00
|
|
|
F: drivers/net/mlx4/
|
2015-01-31 22:06:06 +00:00
|
|
|
F: doc/guides/nics/mlx4.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/mlx4.ini
|
2015-02-25 13:52:05 +00:00
|
|
|
|
2015-10-30 18:52:30 +00:00
|
|
|
Mellanox mlx5
|
2020-08-12 16:08:35 +00:00
|
|
|
M: Matan Azrad <matan@nvidia.com>
|
|
|
|
M: Shahaf Shuler <shahafs@nvidia.com>
|
|
|
|
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
|
2018-01-04 20:01:07 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mlx
|
2020-01-29 12:38:27 +00:00
|
|
|
F: drivers/common/mlx5/
|
2015-10-30 18:52:30 +00:00
|
|
|
F: drivers/net/mlx5/
|
2019-01-09 14:23:19 +00:00
|
|
|
F: buildtools/options-ibverbs-static.sh
|
2015-10-30 18:52:42 +00:00
|
|
|
F: doc/guides/nics/mlx5.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/mlx5.ini
|
2015-10-30 18:52:30 +00:00
|
|
|
|
2018-01-18 13:51:42 +00:00
|
|
|
Microsoft vdev_netvsc - EXPERIMENTAL
|
2020-08-12 16:08:35 +00:00
|
|
|
M: Matan Azrad <matan@nvidia.com>
|
2018-01-18 13:51:42 +00:00
|
|
|
F: drivers/net/vdev_netvsc/
|
|
|
|
F: doc/guides/nics/vdev_netvsc.rst
|
|
|
|
|
2018-07-13 17:06:43 +00:00
|
|
|
Microsoft Hyper-V netvsc - EXPERIMENTAL
|
|
|
|
M: Stephen Hemminger <sthemmin@microsoft.com>
|
|
|
|
M: K. Y. Srinivasan <kys@microsoft.com>
|
|
|
|
M: Haiyang Zhang <haiyangz@microsoft.com>
|
2020-06-25 20:29:46 +00:00
|
|
|
M: Long Li <longli@microsoft.com>
|
2018-07-13 17:06:43 +00:00
|
|
|
F: drivers/net/netvsc/
|
2018-07-13 17:06:44 +00:00
|
|
|
F: doc/guides/nics/netvsc.rst
|
|
|
|
F: doc/guides/nics/features/netvsc.ini
|
2018-07-13 17:06:43 +00:00
|
|
|
|
2017-04-07 20:12:47 +00:00
|
|
|
Netcope szedata2
|
2020-06-10 09:12:42 +00:00
|
|
|
M: Martin Spinler <spinler@cesnet.cz>
|
2017-04-07 20:12:47 +00:00
|
|
|
F: drivers/net/szedata2/
|
|
|
|
F: doc/guides/nics/szedata2.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/szedata2.ini
|
2017-04-07 20:12:47 +00:00
|
|
|
|
2019-04-07 15:03:21 +00:00
|
|
|
Netcope nfb
|
2020-06-10 09:12:42 +00:00
|
|
|
M: Martin Spinler <spinler@cesnet.cz>
|
2019-04-07 15:03:21 +00:00
|
|
|
F: drivers/net/nfb/
|
|
|
|
F: doc/guides/nics/nfb.rst
|
|
|
|
F: doc/guides/nics/features/nfb.ini
|
|
|
|
|
ethdev: remove old close behaviour
The temporary flag RTE_ETH_DEV_CLOSE_REMOVE is removed.
It was introduced in DPDK 18.11 in order to give time for PMDs to migrate.
The old behaviour was to free only queues when closing a port.
The new behaviour is calling rte_eth_dev_release_port() which does
three more tasks:
- trigger event callback
- reset state and few pointers
- free all generic port resources
The private port resources must be released in the .dev_close callback.
The .remove callback should:
- call .dev_close callback
- call rte_eth_dev_release_port()
- free multi-port device shared resources
Despite waiting two years, some drivers have not migrated,
so they may hit issues with the incompatible new behaviour.
After sending emails, adding logs, and announcing the deprecation,
the only last solution is to declare these drivers as unmaintained:
ionic, liquidio, nfp
Below is a summary of what to implement in those drivers.
* The freeing of private port resources must be moved
from the ".remove(device)" function to the ".dev_close(port)" function.
* If a generic resource (.mac_addrs or .hash_mac_addrs) cannot be freed,
it must be set to NULL in ".dev_close" function to protect from
subsequent rte_eth_dev_release_port() freeing.
* Note 1:
The generic resources are freed in rte_eth_dev_release_port(),
after ".dev_close" is called in rte_eth_dev_close(), but not when
calling ".dev_close" directly from the ".remove" PMD function.
That's why rte_eth_dev_release_port() must still be called explicitly
from ".remove(device)" after calling the ".dev_close" PMD function.
* Note 2:
If a device can have multiple ports, the common resources must be freed
only in the ".remove(device)" function.
* Note 3:
The port is supposed to be in a stopped state when it is closed.
If it is not the case, it is free to the PMD implementation
how to react when trying to close a non-stopped port:
either try to stop it automatically or just return an error.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Liron Himi <lironh@marvell.com>
Reviewed-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
2020-09-28 23:14:29 +00:00
|
|
|
Netronome nfp - UNMAINTAINED
|
2019-11-27 11:36:15 +00:00
|
|
|
M: Heinrich Kuhn <heinrich.kuhn@netronome.com>
|
2015-11-30 10:25:35 +00:00
|
|
|
F: drivers/net/nfp/
|
2015-11-30 10:25:42 +00:00
|
|
|
F: doc/guides/nics/nfp.rst
|
2017-09-01 14:12:21 +00:00
|
|
|
F: doc/guides/nics/features/nfp*.ini
|
2015-11-30 10:25:35 +00:00
|
|
|
|
2017-09-28 12:29:22 +00:00
|
|
|
NXP dpaa
|
|
|
|
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
2020-09-14 14:06:03 +00:00
|
|
|
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
|
2017-09-28 12:29:39 +00:00
|
|
|
F: drivers/mempool/dpaa/
|
2017-09-28 12:29:42 +00:00
|
|
|
F: drivers/net/dpaa/
|
2017-09-28 12:29:37 +00:00
|
|
|
F: doc/guides/nics/dpaa.rst
|
|
|
|
F: doc/guides/nics/features/dpaa.ini
|
2017-09-28 12:29:22 +00:00
|
|
|
|
2017-04-11 13:37:08 +00:00
|
|
|
NXP dpaa2
|
|
|
|
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
2020-09-14 14:06:03 +00:00
|
|
|
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
|
2017-04-11 13:42:39 +00:00
|
|
|
F: drivers/mempool/dpaa2/
|
2017-04-11 13:49:17 +00:00
|
|
|
F: drivers/net/dpaa2/
|
2017-04-11 13:49:18 +00:00
|
|
|
F: doc/guides/nics/dpaa2.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/dpaa2.ini
|
2017-04-11 13:37:08 +00:00
|
|
|
|
2018-10-03 13:36:05 +00:00
|
|
|
NXP enetc
|
|
|
|
M: Gagandeep Singh <g.singh@nxp.com>
|
2020-09-14 14:06:03 +00:00
|
|
|
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
|
2018-10-03 13:36:05 +00:00
|
|
|
F: drivers/net/enetc/
|
2018-10-03 13:36:08 +00:00
|
|
|
F: doc/guides/nics/enetc.rst
|
2018-10-03 13:36:05 +00:00
|
|
|
F: doc/guides/nics/features/enetc.ini
|
|
|
|
|
2019-10-10 06:32:22 +00:00
|
|
|
NXP pfe
|
|
|
|
M: Gagandeep Singh <g.singh@nxp.com>
|
|
|
|
M: Akhil Goyal <akhil.goyal@nxp.com>
|
|
|
|
F: doc/guides/nics/pfe.rst
|
|
|
|
F: drivers/net/pfe/
|
|
|
|
F: doc/guides/nics/features/pfe.ini
|
|
|
|
|
ethdev: remove old close behaviour
The temporary flag RTE_ETH_DEV_CLOSE_REMOVE is removed.
It was introduced in DPDK 18.11 in order to give time for PMDs to migrate.
The old behaviour was to free only queues when closing a port.
The new behaviour is calling rte_eth_dev_release_port() which does
three more tasks:
- trigger event callback
- reset state and few pointers
- free all generic port resources
The private port resources must be released in the .dev_close callback.
The .remove callback should:
- call .dev_close callback
- call rte_eth_dev_release_port()
- free multi-port device shared resources
Despite waiting two years, some drivers have not migrated,
so they may hit issues with the incompatible new behaviour.
After sending emails, adding logs, and announcing the deprecation,
the only last solution is to declare these drivers as unmaintained:
ionic, liquidio, nfp
Below is a summary of what to implement in those drivers.
* The freeing of private port resources must be moved
from the ".remove(device)" function to the ".dev_close(port)" function.
* If a generic resource (.mac_addrs or .hash_mac_addrs) cannot be freed,
it must be set to NULL in ".dev_close" function to protect from
subsequent rte_eth_dev_release_port() freeing.
* Note 1:
The generic resources are freed in rte_eth_dev_release_port(),
after ".dev_close" is called in rte_eth_dev_close(), but not when
calling ".dev_close" directly from the ".remove" PMD function.
That's why rte_eth_dev_release_port() must still be called explicitly
from ".remove(device)" after calling the ".dev_close" PMD function.
* Note 2:
If a device can have multiple ports, the common resources must be freed
only in the ".remove(device)" function.
* Note 3:
The port is supposed to be in a stopped state when it is closed.
If it is not the case, it is free to the PMD implementation
how to react when trying to close a non-stopped port:
either try to stop it automatically or just return an error.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Liron Himi <lironh@marvell.com>
Reviewed-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
2020-09-28 23:14:29 +00:00
|
|
|
Pensando ionic - UNMAINTAINED
|
2020-01-19 15:53:39 +00:00
|
|
|
M: Alfredo Cardigliano <cardigliano@ntop.org>
|
|
|
|
F: drivers/net/ionic/
|
|
|
|
F: doc/guides/nics/ionic.rst
|
|
|
|
F: doc/guides/nics/features/ionic.ini
|
|
|
|
|
2015-12-11 06:36:41 +00:00
|
|
|
QLogic bnx2x
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Rasesh Mody <rmody@marvell.com>
|
|
|
|
M: Shahed Shaikh <shshaikh@marvell.com>
|
2019-06-25 05:42:41 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mrvl
|
2015-12-11 06:36:41 +00:00
|
|
|
F: drivers/net/bnx2x/
|
|
|
|
F: doc/guides/nics/bnx2x.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/bnx2x*.ini
|
2015-12-11 06:36:41 +00:00
|
|
|
|
2016-04-27 14:18:36 +00:00
|
|
|
QLogic qede PMD
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Rasesh Mody <rmody@marvell.com>
|
|
|
|
M: Shahed Shaikh <shshaikh@marvell.com>
|
2019-06-25 05:42:41 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-mrvl
|
2016-04-27 14:18:36 +00:00
|
|
|
F: drivers/net/qede/
|
2016-04-27 14:18:37 +00:00
|
|
|
F: doc/guides/nics/qede.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/qede*.ini
|
2016-04-27 14:18:36 +00:00
|
|
|
|
2016-11-29 16:18:33 +00:00
|
|
|
Solarflare sfc_efx
|
2020-09-24 13:40:22 +00:00
|
|
|
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
|
2020-09-17 06:34:31 +00:00
|
|
|
F: drivers/common/sfc_efx/
|
2016-11-29 16:18:33 +00:00
|
|
|
F: drivers/net/sfc/
|
|
|
|
F: doc/guides/nics/sfc_efx.rst
|
|
|
|
F: doc/guides/nics/features/sfc_efx.ini
|
|
|
|
|
2017-01-12 06:24:58 +00:00
|
|
|
VMware vmxnet3
|
2018-03-30 21:57:02 +00:00
|
|
|
M: Yong Wang <yongwang@vmware.com>
|
2017-01-12 06:24:58 +00:00
|
|
|
F: drivers/net/vmxnet3/
|
|
|
|
F: doc/guides/nics/vmxnet3.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/vmxnet3.ini
|
2017-01-12 06:24:58 +00:00
|
|
|
|
|
|
|
Vhost-user
|
2017-02-17 08:31:42 +00:00
|
|
|
M: Maxime Coquelin <maxime.coquelin@redhat.com>
|
2020-07-30 13:46:31 +00:00
|
|
|
M: Chenbo Xia <chenbo.xia@intel.com>
|
2018-06-12 08:01:27 +00:00
|
|
|
M: Zhihong Wang <zhihong.wang@intel.com>
|
2016-07-19 04:17:49 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-virtio
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_vhost/
|
|
|
|
F: doc/guides/prog_guide/vhost_lib.rst
|
|
|
|
F: examples/vhost/
|
|
|
|
F: doc/guides/sample_app_ug/vhost.rst
|
2019-11-04 16:36:26 +00:00
|
|
|
F: examples/vhost_blk/
|
|
|
|
F: doc/guides/sample_app_ug/vhost_blk.rst
|
2018-04-05 16:01:36 +00:00
|
|
|
F: examples/vhost_crypto/
|
2018-09-28 21:47:47 +00:00
|
|
|
F: examples/vdpa/
|
|
|
|
F: doc/guides/sample_app_ug/vdpa.rst
|
2015-01-23 12:31:59 +00:00
|
|
|
|
vhost: add driver on top of the library
The patch introduces a new PMD. This PMD is implemented as thin wrapper
of librte_vhost. It means librte_vhost is also needed to compile the PMD.
The vhost messages will be handled only when a port is started. So start
a port first, then invoke QEMU.
The PMD has 2 parameters.
- iface: The parameter is used to specify a path to connect to a
virtio-net device.
- queues: The parameter is used to specify the number of the queues
virtio-net device has.
(Default: 1)
Here is an example.
$ ./testpmd -c f -n 4 --vdev 'eth_vhost0,iface=/tmp/sock0,queues=1' -- -i
To connect above testpmd, here is qemu command example.
$ qemu-system-x86_64 \
<snip>
-chardev socket,id=chr0,path=/tmp/sock0 \
-netdev vhost-user,id=net0,chardev=chr0,vhostforce,queues=1 \
-device virtio-net-pci,netdev=net0,mq=on
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Rich Lane <rich.lane@bigswitch.com>
Tested-by: Rich Lane <rich.lane@bigswitch.com>
Update for queue state event name:
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2016-03-21 05:45:08 +00:00
|
|
|
Vhost PMD
|
2017-02-17 08:31:42 +00:00
|
|
|
M: Maxime Coquelin <maxime.coquelin@redhat.com>
|
2020-07-30 13:46:31 +00:00
|
|
|
M: Chenbo Xia <chenbo.xia@intel.com>
|
2018-06-12 08:01:27 +00:00
|
|
|
M: Zhihong Wang <zhihong.wang@intel.com>
|
2016-07-19 04:17:49 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-virtio
|
vhost: add driver on top of the library
The patch introduces a new PMD. This PMD is implemented as thin wrapper
of librte_vhost. It means librte_vhost is also needed to compile the PMD.
The vhost messages will be handled only when a port is started. So start
a port first, then invoke QEMU.
The PMD has 2 parameters.
- iface: The parameter is used to specify a path to connect to a
virtio-net device.
- queues: The parameter is used to specify the number of the queues
virtio-net device has.
(Default: 1)
Here is an example.
$ ./testpmd -c f -n 4 --vdev 'eth_vhost0,iface=/tmp/sock0,queues=1' -- -i
To connect above testpmd, here is qemu command example.
$ qemu-system-x86_64 \
<snip>
-chardev socket,id=chr0,path=/tmp/sock0 \
-netdev vhost-user,id=net0,chardev=chr0,vhostforce,queues=1 \
-device virtio-net-pci,netdev=net0,mq=on
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Rich Lane <rich.lane@bigswitch.com>
Tested-by: Rich Lane <rich.lane@bigswitch.com>
Update for queue state event name:
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2016-03-21 05:45:08 +00:00
|
|
|
F: drivers/net/vhost/
|
2018-05-22 14:28:30 +00:00
|
|
|
F: doc/guides/nics/vhost.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/vhost.ini
|
vhost: add driver on top of the library
The patch introduces a new PMD. This PMD is implemented as thin wrapper
of librte_vhost. It means librte_vhost is also needed to compile the PMD.
The vhost messages will be handled only when a port is started. So start
a port first, then invoke QEMU.
The PMD has 2 parameters.
- iface: The parameter is used to specify a path to connect to a
virtio-net device.
- queues: The parameter is used to specify the number of the queues
virtio-net device has.
(Default: 1)
Here is an example.
$ ./testpmd -c f -n 4 --vdev 'eth_vhost0,iface=/tmp/sock0,queues=1' -- -i
To connect above testpmd, here is qemu command example.
$ qemu-system-x86_64 \
<snip>
-chardev socket,id=chr0,path=/tmp/sock0 \
-netdev vhost-user,id=net0,chardev=chr0,vhostforce,queues=1 \
-device virtio-net-pci,netdev=net0,mq=on
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Rich Lane <rich.lane@bigswitch.com>
Tested-by: Rich Lane <rich.lane@bigswitch.com>
Update for queue state event name:
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2016-03-21 05:45:08 +00:00
|
|
|
|
2017-01-12 06:24:58 +00:00
|
|
|
Virtio PMD
|
2017-02-17 08:31:42 +00:00
|
|
|
M: Maxime Coquelin <maxime.coquelin@redhat.com>
|
2020-07-30 13:46:31 +00:00
|
|
|
M: Chenbo Xia <chenbo.xia@intel.com>
|
2018-06-12 08:01:27 +00:00
|
|
|
M: Zhihong Wang <zhihong.wang@intel.com>
|
2017-01-12 06:24:58 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-virtio
|
|
|
|
F: drivers/net/virtio/
|
|
|
|
F: doc/guides/nics/virtio.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/virtio*.ini
|
2017-01-12 06:24:58 +00:00
|
|
|
|
2017-03-28 11:53:56 +00:00
|
|
|
Wind River AVP
|
2019-11-07 20:48:34 +00:00
|
|
|
M: Steven Webster <steven.webster@windriver.com>
|
2017-03-28 11:53:56 +00:00
|
|
|
M: Matt Peters <matt.peters@windriver.com>
|
|
|
|
F: drivers/net/avp/
|
2017-03-28 11:54:09 +00:00
|
|
|
F: doc/guides/nics/avp.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/avp.ini
|
2017-03-28 11:53:56 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
PCAP PMD
|
2016-04-08 17:03:28 +00:00
|
|
|
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
2015-05-15 15:56:56 +00:00
|
|
|
F: drivers/net/pcap/
|
2015-01-31 22:06:06 +00:00
|
|
|
F: doc/guides/nics/pcap_ring.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/pcap.ini
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2016-12-12 14:38:38 +00:00
|
|
|
Tap PMD
|
2018-05-17 09:44:58 +00:00
|
|
|
M: Keith Wiles <keith.wiles@intel.com>
|
2016-12-12 14:38:38 +00:00
|
|
|
F: drivers/net/tap/
|
|
|
|
F: doc/guides/nics/tap.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/nics/features/tap.ini
|
2016-12-12 14:38:38 +00:00
|
|
|
|
2017-02-17 13:42:38 +00:00
|
|
|
KNI PMD
|
|
|
|
M: Ferruh Yigit <ferruh.yigit@intel.com>
|
|
|
|
F: drivers/net/kni/
|
|
|
|
F: doc/guides/nics/kni.rst
|
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Ring PMD
|
2015-03-11 10:31:54 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
2015-05-15 15:56:57 +00:00
|
|
|
F: drivers/net/ring/
|
2015-01-31 22:06:06 +00:00
|
|
|
F: doc/guides/nics/pcap_ring.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_pmd_ring.c
|
|
|
|
F: app/test/test_pmd_ring_perf.c
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2016-07-20 10:34:45 +00:00
|
|
|
Null Networking PMD
|
2016-07-28 05:53:59 +00:00
|
|
|
M: Tetsuya Mukawa <mtetsuyah@gmail.com>
|
2015-05-15 15:56:55 +00:00
|
|
|
F: drivers/net/null/
|
2015-02-23 05:12:34 +00:00
|
|
|
|
2017-07-18 12:48:14 +00:00
|
|
|
Fail-safe PMD
|
2020-01-08 14:13:32 +00:00
|
|
|
M: Gaetan Rivet <grive@u256.net>
|
2017-07-18 12:48:14 +00:00
|
|
|
F: drivers/net/failsafe/
|
|
|
|
F: doc/guides/nics/fail_safe.rst
|
2018-05-22 14:28:30 +00:00
|
|
|
F: doc/guides/nics/features/failsafe.ini
|
2017-07-18 12:48:14 +00:00
|
|
|
|
2017-10-10 10:18:14 +00:00
|
|
|
Softnic PMD
|
|
|
|
M: Jasvinder Singh <jasvinder.singh@intel.com>
|
|
|
|
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
|
|
|
F: drivers/net/softnic/
|
2018-07-24 15:50:24 +00:00
|
|
|
F: doc/guides/nics/softnic.rst
|
2017-10-10 10:18:14 +00:00
|
|
|
|
2019-06-06 11:38:50 +00:00
|
|
|
Memif PMD
|
|
|
|
M: Jakub Grajciar <jgrajcia@cisco.com>
|
|
|
|
F: drivers/net/memif/
|
|
|
|
F: doc/guides/nics/memif.rst
|
|
|
|
F: doc/guides/nics/features/memif.ini
|
|
|
|
|
2016-07-20 10:34:45 +00:00
|
|
|
|
|
|
|
Crypto Drivers
|
|
|
|
--------------
|
2016-09-15 23:25:32 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/cryptodevs/features/default.ini
|
2016-07-20 10:34:45 +00:00
|
|
|
|
2018-03-19 12:23:35 +00:00
|
|
|
AMD CCP Crypto
|
2020-04-27 06:11:45 +00:00
|
|
|
M: Somalapuram Amaranath <asomalap@amd.com>
|
2018-03-19 12:23:35 +00:00
|
|
|
F: drivers/crypto/ccp/
|
2018-03-19 12:23:53 +00:00
|
|
|
F: doc/guides/cryptodevs/ccp.rst
|
|
|
|
F: doc/guides/cryptodevs/features/ccp.ini
|
2018-03-19 12:23:35 +00:00
|
|
|
|
2017-10-13 13:52:08 +00:00
|
|
|
ARMv8 Crypto
|
2019-11-27 08:47:08 +00:00
|
|
|
M: Ruifeng Wang <ruifeng.wang@arm.com>
|
2017-01-18 20:01:54 +00:00
|
|
|
F: drivers/crypto/armv8/
|
2017-01-18 20:01:58 +00:00
|
|
|
F: doc/guides/cryptodevs/armv8.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/cryptodevs/features/armv8.ini
|
2017-01-18 20:01:54 +00:00
|
|
|
|
2020-10-07 17:18:53 +00:00
|
|
|
Broadcom FlexSparc
|
|
|
|
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
|
|
|
|
M: Raveendra Padasalagi <raveendra.padasalagi@broadcom.com>
|
|
|
|
M: Vikas Gupta <vikas.gupta@broadcom.com>
|
|
|
|
F: drivers/crypto/bcmfs/
|
|
|
|
F: doc/guides/cryptodevs/bcmfs.rst
|
2020-10-07 17:18:58 +00:00
|
|
|
F: doc/guides/cryptodevs/features/bcmfs.ini
|
2020-10-07 17:18:53 +00:00
|
|
|
|
2018-10-09 09:07:34 +00:00
|
|
|
Cavium OCTEON TX crypto
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Anoob Joseph <anoobj@marvell.com>
|
2018-10-09 09:07:34 +00:00
|
|
|
F: drivers/common/cpt/
|
|
|
|
F: drivers/crypto/octeontx/
|
2018-10-09 09:07:56 +00:00
|
|
|
F: doc/guides/cryptodevs/octeontx.rst
|
|
|
|
F: doc/guides/cryptodevs/features/octeontx.ini
|
2018-10-09 09:07:34 +00:00
|
|
|
|
2017-10-13 13:52:08 +00:00
|
|
|
Crypto Scheduler
|
|
|
|
M: Fan Zhang <roy.fan.zhang@intel.com>
|
|
|
|
F: drivers/crypto/scheduler/
|
|
|
|
F: doc/guides/cryptodevs/scheduler.rst
|
|
|
|
|
|
|
|
Intel AES-NI GCM
|
2016-03-10 16:41:46 +00:00
|
|
|
M: Declan Doherty <declan.doherty@intel.com>
|
2019-09-11 09:10:30 +00:00
|
|
|
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
2016-03-10 16:41:46 +00:00
|
|
|
F: drivers/crypto/aesni_gcm/
|
|
|
|
F: doc/guides/cryptodevs/aesni_gcm.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/cryptodevs/features/aesni_gcm.ini
|
2016-03-10 16:41:46 +00:00
|
|
|
|
2015-11-25 13:25:15 +00:00
|
|
|
Intel AES-NI Multi-Buffer
|
|
|
|
M: Declan Doherty <declan.doherty@intel.com>
|
2019-09-11 09:10:30 +00:00
|
|
|
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
2015-11-25 13:25:15 +00:00
|
|
|
F: drivers/crypto/aesni_mb/
|
2016-03-10 22:35:37 +00:00
|
|
|
F: doc/guides/cryptodevs/aesni_mb.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/cryptodevs/features/aesni_mb.ini
|
2015-11-25 13:25:15 +00:00
|
|
|
|
2015-11-25 13:25:14 +00:00
|
|
|
Intel QuickAssist
|
2016-02-05 16:36:01 +00:00
|
|
|
M: John Griffin <john.griffin@intel.com>
|
|
|
|
M: Fiona Trahe <fiona.trahe@intel.com>
|
|
|
|
M: Deepak Kumar Jain <deepak.k.jain@intel.com>
|
2015-11-25 13:25:14 +00:00
|
|
|
F: drivers/crypto/qat/
|
2018-07-02 09:39:13 +00:00
|
|
|
F: drivers/common/qat/
|
2016-03-10 22:35:37 +00:00
|
|
|
F: doc/guides/cryptodevs/qat.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/cryptodevs/features/qat.ini
|
2015-11-25 13:25:14 +00:00
|
|
|
|
2017-10-13 13:52:08 +00:00
|
|
|
KASUMI
|
|
|
|
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
|
|
|
F: drivers/crypto/kasumi/
|
|
|
|
F: doc/guides/cryptodevs/kasumi.rst
|
|
|
|
F: doc/guides/cryptodevs/features/kasumi.ini
|
|
|
|
|
2019-02-20 15:01:59 +00:00
|
|
|
Marvell mvsam
|
2019-05-20 16:35:12 +00:00
|
|
|
M: Michael Shamis <michaelsh@marvell.com>
|
2019-02-20 15:01:59 +00:00
|
|
|
M: Liron Himi <lironh@marvell.com>
|
2018-05-08 08:14:04 +00:00
|
|
|
F: drivers/crypto/mvsam/
|
|
|
|
F: doc/guides/cryptodevs/mvsam.rst
|
|
|
|
F: doc/guides/cryptodevs/features/mvsam.ini
|
2017-10-10 12:17:19 +00:00
|
|
|
|
2019-10-01 06:41:20 +00:00
|
|
|
Marvell Nitrox
|
|
|
|
M: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
|
|
|
|
M: Srikanth Jampala <jsrikanth@marvell.com>
|
|
|
|
F: drivers/crypto/nitrox/
|
|
|
|
F: doc/guides/cryptodevs/nitrox.rst
|
|
|
|
F: doc/guides/cryptodevs/features/nitrox.ini
|
|
|
|
|
2019-10-16 15:25:34 +00:00
|
|
|
Marvell OCTEON TX2 crypto
|
|
|
|
M: Ankur Dwivedi <adwivedi@marvell.com>
|
|
|
|
M: Anoob Joseph <anoobj@marvell.com>
|
|
|
|
F: drivers/crypto/octeontx2/
|
|
|
|
F: doc/guides/cryptodevs/octeontx2.rst
|
|
|
|
F: doc/guides/cryptodevs/features/octeontx2.ini
|
|
|
|
|
2017-10-13 13:52:08 +00:00
|
|
|
Null Crypto
|
|
|
|
M: Declan Doherty <declan.doherty@intel.com>
|
|
|
|
F: drivers/crypto/null/
|
|
|
|
F: doc/guides/cryptodevs/null.rst
|
|
|
|
F: doc/guides/cryptodevs/features/null.ini
|
|
|
|
|
2018-10-12 14:40:42 +00:00
|
|
|
NXP CAAM JR
|
|
|
|
M: Gagandeep Singh <g.singh@nxp.com>
|
|
|
|
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
|
|
|
F: drivers/crypto/caam_jr/
|
2018-10-16 12:48:57 +00:00
|
|
|
F: doc/guides/cryptodevs/caam_jr.rst
|
|
|
|
F: doc/guides/cryptodevs/features/caam_jr.ini
|
2018-10-12 14:40:42 +00:00
|
|
|
|
2017-10-09 14:21:40 +00:00
|
|
|
NXP DPAA_SEC
|
|
|
|
M: Akhil Goyal <akhil.goyal@nxp.com>
|
|
|
|
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
|
|
|
F: drivers/crypto/dpaa_sec/
|
2017-10-09 14:21:42 +00:00
|
|
|
F: doc/guides/cryptodevs/dpaa_sec.rst
|
|
|
|
F: doc/guides/cryptodevs/features/dpaa_sec.ini
|
2017-10-09 14:21:40 +00:00
|
|
|
|
2017-04-20 05:44:16 +00:00
|
|
|
NXP DPAA2_SEC
|
|
|
|
M: Akhil Goyal <akhil.goyal@nxp.com>
|
|
|
|
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
|
|
|
F: drivers/crypto/dpaa2_sec/
|
2017-04-20 05:44:24 +00:00
|
|
|
F: doc/guides/cryptodevs/dpaa2_sec.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/cryptodevs/features/dpaa2_sec.ini
|
2017-04-20 05:44:16 +00:00
|
|
|
|
2017-10-13 13:52:08 +00:00
|
|
|
OpenSSL
|
|
|
|
M: Declan Doherty <declan.doherty@intel.com>
|
|
|
|
F: drivers/crypto/openssl/
|
|
|
|
F: doc/guides/cryptodevs/openssl.rst
|
|
|
|
F: doc/guides/cryptodevs/features/openssl.ini
|
|
|
|
|
|
|
|
SNOW 3G
|
2016-03-10 16:33:12 +00:00
|
|
|
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
|
|
|
F: drivers/crypto/snow3g/
|
|
|
|
F: doc/guides/cryptodevs/snow3g.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/cryptodevs/features/snow3g.ini
|
2016-03-10 16:33:12 +00:00
|
|
|
|
2018-04-17 09:23:17 +00:00
|
|
|
Virtio
|
|
|
|
M: Jay Zhou <jianjay.zhou@huawei.com>
|
|
|
|
F: drivers/crypto/virtio/
|
2018-04-17 09:23:26 +00:00
|
|
|
F: doc/guides/cryptodevs/virtio.rst
|
|
|
|
F: doc/guides/cryptodevs/features/virtio.ini
|
2018-04-17 09:23:17 +00:00
|
|
|
|
2017-10-13 13:52:08 +00:00
|
|
|
ZUC
|
2016-09-29 02:59:47 +00:00
|
|
|
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
|
|
|
F: drivers/crypto/zuc/
|
|
|
|
F: doc/guides/cryptodevs/zuc.rst
|
2017-05-10 13:33:50 +00:00
|
|
|
F: doc/guides/cryptodevs/features/zuc.ini
|
2016-09-29 02:59:47 +00:00
|
|
|
|
2017-06-30 08:54:16 +00:00
|
|
|
|
2018-05-09 16:14:26 +00:00
|
|
|
Compression Drivers
|
|
|
|
-------------------
|
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
|
|
|
|
2018-10-10 02:50:56 +00:00
|
|
|
Cavium OCTEON TX zipvf
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Ashish Gupta <ashish.gupta@marvell.com>
|
2018-07-25 17:04:51 +00:00
|
|
|
F: drivers/compress/octeontx/
|
2018-07-25 17:04:55 +00:00
|
|
|
F: doc/guides/compressdevs/octeontx.rst
|
|
|
|
F: doc/guides/compressdevs/features/octeontx.ini
|
2018-07-25 17:04:51 +00:00
|
|
|
|
2018-07-13 02:28:11 +00:00
|
|
|
Intel QuickAssist
|
|
|
|
M: Fiona Trahe <fiona.trahe@intel.com>
|
|
|
|
F: drivers/compress/qat/
|
|
|
|
F: drivers/common/qat/
|
|
|
|
|
2018-05-09 16:14:26 +00:00
|
|
|
ISA-L
|
|
|
|
M: Lee Daly <lee.daly@intel.com>
|
|
|
|
F: drivers/compress/isal/
|
2018-05-09 16:14:35 +00:00
|
|
|
F: doc/guides/compressdevs/isal.rst
|
|
|
|
F: doc/guides/compressdevs/features/isal.ini
|
2018-05-09 16:14:26 +00:00
|
|
|
|
2018-07-24 15:05:32 +00:00
|
|
|
ZLIB
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Sunila Sahu <ssahu@marvell.com>
|
2018-07-24 15:05:32 +00:00
|
|
|
F: drivers/compress/zlib/
|
2018-07-24 15:05:36 +00:00
|
|
|
F: doc/guides/compressdevs/zlib.rst
|
|
|
|
F: doc/guides/compressdevs/features/zlib.ini
|
2018-07-24 15:05:32 +00:00
|
|
|
|
2018-05-09 16:14:26 +00:00
|
|
|
|
2020-07-20 06:26:05 +00:00
|
|
|
RegEx Drivers
|
|
|
|
-------------
|
|
|
|
|
2020-10-13 10:10:10 +00:00
|
|
|
Marvell OCTEON TX2 regex
|
|
|
|
M: Guy Kaneti <guyk@marvell.com>
|
|
|
|
F: drivers/regex/octeontx2/
|
|
|
|
F: doc/guides/regexdevs/octeontx2.rst
|
|
|
|
F: doc/guides/regexdevs/features/octeontx2.ini
|
|
|
|
|
2020-07-20 06:26:05 +00:00
|
|
|
Mellanox mlx5
|
2020-08-12 16:08:35 +00:00
|
|
|
M: Ori Kam <orika@nvidia.com>
|
2020-07-20 06:26:05 +00:00
|
|
|
F: drivers/regex/mlx5/
|
|
|
|
F: doc/guides/regexdevs/mlx5.rst
|
|
|
|
F: doc/guides/regexdevs/features/mlx5.ini
|
|
|
|
|
|
|
|
|
2020-01-09 11:00:15 +00:00
|
|
|
vDPA Drivers
|
|
|
|
------------
|
|
|
|
T: git://dpdk.org/next/dpdk-next-virtio
|
|
|
|
|
2020-01-09 11:00:17 +00:00
|
|
|
Intel ifc
|
|
|
|
M: Xiao Wang <xiao.w.wang@intel.com>
|
|
|
|
F: drivers/vdpa/ifc/
|
|
|
|
F: doc/guides/vdpadevs/ifc.rst
|
|
|
|
F: doc/guides/vdpadevs/features/ifcvf.ini
|
|
|
|
|
2020-02-02 16:03:41 +00:00
|
|
|
Mellanox mlx5 vDPA
|
2020-08-12 16:08:35 +00:00
|
|
|
M: Matan Azrad <matan@nvidia.com>
|
|
|
|
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
|
2020-02-02 16:03:41 +00:00
|
|
|
F: drivers/vdpa/mlx5/
|
|
|
|
F: doc/guides/vdpadevs/mlx5.rst
|
|
|
|
F: doc/guides/vdpadevs/features/mlx5.ini
|
|
|
|
|
2020-01-09 11:00:15 +00:00
|
|
|
|
2017-04-01 10:41:16 +00:00
|
|
|
Eventdev Drivers
|
|
|
|
----------------
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
2017-04-01 10:41:16 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-eventdev
|
|
|
|
|
2018-10-10 02:50:56 +00:00
|
|
|
Cavium OCTEON TX ssovf
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
2017-03-03 17:28:21 +00:00
|
|
|
F: drivers/event/octeontx/
|
|
|
|
F: doc/guides/eventdevs/octeontx.rst
|
|
|
|
|
2018-10-10 02:50:56 +00:00
|
|
|
Cavium OCTEON TX timvf
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
|
2018-04-09 21:00:26 +00:00
|
|
|
F: drivers/event/octeontx/timvf_*
|
|
|
|
|
2019-06-28 18:23:12 +00:00
|
|
|
Marvell OCTEON TX2
|
|
|
|
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
|
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
|
|
|
F: drivers/event/octeontx2/
|
|
|
|
F: doc/guides/eventdevs/octeontx2.rst
|
|
|
|
|
2018-01-16 20:43:58 +00:00
|
|
|
NXP DPAA eventdev
|
|
|
|
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
2019-07-15 11:38:29 +00:00
|
|
|
M: Nipun Gupta <nipun.gupta@nxp.com>
|
2018-01-16 20:43:58 +00:00
|
|
|
F: drivers/event/dpaa/
|
2018-01-16 20:44:03 +00:00
|
|
|
F: doc/guides/eventdevs/dpaa.rst
|
2018-01-16 20:43:58 +00:00
|
|
|
|
2018-04-23 01:18:35 +00:00
|
|
|
NXP DPAA2 eventdev
|
|
|
|
M: Hemant Agrawal <hemant.agrawal@nxp.com>
|
|
|
|
M: Nipun Gupta <nipun.gupta@nxp.com>
|
|
|
|
F: drivers/event/dpaa2/
|
|
|
|
F: doc/guides/eventdevs/dpaa2.rst
|
|
|
|
|
2017-04-01 10:41:16 +00:00
|
|
|
Software Eventdev PMD
|
|
|
|
M: Harry van Haaren <harry.van.haaren@intel.com>
|
|
|
|
F: drivers/event/sw/
|
|
|
|
F: doc/guides/eventdevs/sw.rst
|
2018-01-10 11:10:12 +00:00
|
|
|
F: examples/eventdev_pipeline/
|
|
|
|
F: doc/guides/sample_app_ug/eventdev_pipeline.rst
|
2017-04-01 10:41:16 +00:00
|
|
|
|
2018-09-18 12:45:05 +00:00
|
|
|
Distributed Software Eventdev PMD
|
|
|
|
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
|
|
|
|
F: drivers/event/dsw/
|
2018-09-18 12:45:14 +00:00
|
|
|
F: doc/guides/eventdevs/dsw.rst
|
2018-09-18 12:45:05 +00:00
|
|
|
|
2018-01-09 14:18:50 +00:00
|
|
|
Software OPDL Eventdev PMD
|
|
|
|
M: Liang Ma <liang.j.ma@intel.com>
|
|
|
|
M: Peter Mccarthy <peter.mccarthy@intel.com>
|
|
|
|
F: drivers/event/opdl/
|
2018-01-09 14:19:01 +00:00
|
|
|
F: doc/guides/eventdevs/opdl.rst
|
2018-01-09 14:18:50 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2018-05-03 16:06:07 +00:00
|
|
|
Rawdev Drivers
|
|
|
|
--------------
|
|
|
|
|
2018-05-11 08:31:30 +00:00
|
|
|
Intel FPGA
|
2018-05-11 08:31:31 +00:00
|
|
|
M: Rosen Xu <rosen.xu@intel.com>
|
2018-05-11 08:31:30 +00:00
|
|
|
M: Tianfei zhang <tianfei.zhang@intel.com>
|
2019-10-28 05:47:16 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net-intel
|
2019-07-05 09:34:00 +00:00
|
|
|
F: drivers/raw/ifpga/
|
|
|
|
F: doc/guides/rawdevs/ifpga.rst
|
2018-05-11 08:31:30 +00:00
|
|
|
|
2019-07-02 14:12:23 +00:00
|
|
|
IOAT Rawdev
|
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
|
|
|
F: drivers/raw/ioat/
|
2019-07-05 09:34:00 +00:00
|
|
|
F: doc/guides/rawdevs/ioat.rst
|
2019-10-07 11:08:04 +00:00
|
|
|
F: examples/ioat/
|
2019-10-07 11:08:09 +00:00
|
|
|
F: doc/guides/sample_app_ug/ioat.rst
|
2019-07-02 14:12:23 +00:00
|
|
|
|
2018-05-03 16:06:07 +00:00
|
|
|
NXP DPAA2 QDMA
|
|
|
|
M: Nipun Gupta <nipun.gupta@nxp.com>
|
|
|
|
F: drivers/raw/dpaa2_qdma/
|
2018-05-03 16:06:10 +00:00
|
|
|
F: doc/guides/rawdevs/dpaa2_qdma.rst
|
2018-05-03 16:06:07 +00:00
|
|
|
|
2018-05-04 10:11:26 +00:00
|
|
|
DPAA2 CMDIF
|
|
|
|
M: Nipun Gupta <nipun.gupta@nxp.com>
|
|
|
|
F: drivers/raw/dpaa2_cmdif/
|
2018-05-04 10:11:29 +00:00
|
|
|
F: doc/guides/rawdevs/dpaa2_cmdif.rst
|
2018-05-04 10:11:26 +00:00
|
|
|
|
2019-07-05 08:37:58 +00:00
|
|
|
Marvell OCTEON TX2 DMA
|
|
|
|
M: Satha Rao <skoteshwar@marvell.com>
|
|
|
|
F: drivers/raw/octeontx2_dma/
|
|
|
|
F: doc/guides/rawdevs/octeontx2_dma.rst
|
|
|
|
|
2020-01-13 06:00:36 +00:00
|
|
|
Marvell OCTEON TX2 EP
|
|
|
|
M: Mahipal Challa <mchalla@marvell.com>
|
|
|
|
F: drivers/raw/octeontx2_ep/
|
|
|
|
F: doc/guides/rawdevs/octeontx2_ep.rst
|
|
|
|
|
2019-07-02 06:25:17 +00:00
|
|
|
NTB
|
|
|
|
M: Xiaoyun Li <xiaoyun.li@intel.com>
|
|
|
|
M: Jingjing Wu <jingjing.wu@intel.com>
|
|
|
|
F: drivers/raw/ntb/
|
|
|
|
F: doc/guides/rawdevs/ntb.rst
|
2019-07-02 06:25:21 +00:00
|
|
|
F: examples/ntb/
|
|
|
|
F: doc/guides/sample_app_ug/ntb.rst
|
2019-07-02 06:25:17 +00:00
|
|
|
|
2018-05-03 16:06:07 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Packet processing
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
Network headers
|
2016-10-03 08:38:45 +00:00
|
|
|
M: Olivier Matz <olivier.matz@6wind.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_net/
|
|
|
|
|
2017-04-05 20:49:49 +00:00
|
|
|
Packet CRC
|
|
|
|
M: Jasvinder Singh <jasvinder.singh@intel.com>
|
2020-10-09 13:50:44 +00:00
|
|
|
F: lib/librte_net/net_crc.h
|
2017-04-05 20:49:49 +00:00
|
|
|
F: lib/librte_net/rte_net_crc*
|
2020-10-09 13:50:45 +00:00
|
|
|
F: lib/librte_net/net_crc_avx512.c
|
2020-10-09 13:50:44 +00:00
|
|
|
F: lib/librte_net/net_crc_sse.c
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_crc.c
|
2017-04-05 20:49:49 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
IP fragmentation & reassembly
|
2015-02-06 12:35:49 +00:00
|
|
|
M: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_ip_frag/
|
|
|
|
F: doc/guides/prog_guide/ip_fragment_reassembly_lib.rst
|
2020-04-20 19:25:23 +00:00
|
|
|
F: app/test/test_ipfrag.c
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/ip_fragmentation/
|
|
|
|
F: doc/guides/sample_app_ug/ip_frag.rst
|
|
|
|
F: examples/ip_reassembly/
|
|
|
|
F: doc/guides/sample_app_ug/ip_reassembly.rst
|
|
|
|
|
lib/gro: add Generic Receive Offload API framework
Generic Receive Offload (GRO) is a widely used SW-based offloading
technique to reduce per-packet processing overhead. It gains
performance by reassembling small packets into large ones. This
patchset is to support GRO in DPDK. To support GRO, this patch
implements a GRO API framework.
To enable more flexibility to applications, DPDK GRO is implemented as
a user library. Applications explicitly use the GRO library to merge
small packets into large ones. DPDK GRO provides two reassembly modes.
One is called lightweight mode, the other is called heavyweight mode.
If applications want to merge packets in a simple way and the number
of packets is relatively small, they can use the lightweight mode.
If applications need more fine-grained controls, they can choose the
heavyweight mode.
rte_gro_reassemble_burst is the main reassembly API which is used in
lightweight mode and processes N packets at a time. For applications,
performing GRO in lightweight mode is simple. They just need to invoke
rte_gro_reassemble_burst. Applications can get GROed packets as soon as
rte_gro_reassemble_burst returns.
rte_gro_reassemble is the main reassembly API which is used in
heavyweight mode and tries to merge N inputted packets with the packets
in GRO reassembly tables. For applications, performing GRO in heavyweight
mode is relatively complicated. Before performing GRO, applications need
to create a GRO context object, which keeps reassembly tables of
desired GRO types, by rte_gro_ctx_create. Then applications can use
rte_gro_reassemble to merge packets. The GROed packets are in the
reassembly tables of the GRO context object. If applications want to get
them, applications need to manually flush them by flush API.
Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
2017-07-09 05:46:44 +00:00
|
|
|
Generic Receive Offload - EXPERIMENTAL
|
|
|
|
M: Jiayu Hu <jiayu.hu@intel.com>
|
|
|
|
F: lib/librte_gro/
|
2017-08-04 09:59:16 +00:00
|
|
|
F: doc/guides/prog_guide/generic_receive_offload_lib.rst
|
lib/gro: add Generic Receive Offload API framework
Generic Receive Offload (GRO) is a widely used SW-based offloading
technique to reduce per-packet processing overhead. It gains
performance by reassembling small packets into large ones. This
patchset is to support GRO in DPDK. To support GRO, this patch
implements a GRO API framework.
To enable more flexibility to applications, DPDK GRO is implemented as
a user library. Applications explicitly use the GRO library to merge
small packets into large ones. DPDK GRO provides two reassembly modes.
One is called lightweight mode, the other is called heavyweight mode.
If applications want to merge packets in a simple way and the number
of packets is relatively small, they can use the lightweight mode.
If applications need more fine-grained controls, they can choose the
heavyweight mode.
rte_gro_reassemble_burst is the main reassembly API which is used in
lightweight mode and processes N packets at a time. For applications,
performing GRO in lightweight mode is simple. They just need to invoke
rte_gro_reassemble_burst. Applications can get GROed packets as soon as
rte_gro_reassemble_burst returns.
rte_gro_reassemble is the main reassembly API which is used in
heavyweight mode and tries to merge N inputted packets with the packets
in GRO reassembly tables. For applications, performing GRO in heavyweight
mode is relatively complicated. Before performing GRO, applications need
to create a GRO context object, which keeps reassembly tables of
desired GRO types, by rte_gro_ctx_create. Then applications can use
rte_gro_reassemble to merge packets. The GROed packets are in the
reassembly tables of the GRO context object. If applications want to get
them, applications need to manually flush them by flush API.
Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
2017-07-09 05:46:44 +00:00
|
|
|
|
2017-10-07 14:56:44 +00:00
|
|
|
Generic Segmentation Offload
|
|
|
|
M: Jiayu Hu <jiayu.hu@intel.com>
|
|
|
|
F: lib/librte_gso/
|
|
|
|
F: doc/guides/prog_guide/generic_segmentation_offload_lib.rst
|
|
|
|
|
2020-09-14 14:10:44 +00:00
|
|
|
IPsec
|
2019-01-10 21:06:28 +00:00
|
|
|
M: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
|
|
|
F: lib/librte_ipsec/
|
|
|
|
M: Bernard Iremonger <bernard.iremonger@intel.com>
|
2020-04-23 15:25:04 +00:00
|
|
|
F: app/test/test_ipsec*
|
2019-01-10 21:06:34 +00:00
|
|
|
F: doc/guides/prog_guide/ipsec_lib.rst
|
2019-10-21 14:35:45 +00:00
|
|
|
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
|
2019-10-21 14:35:46 +00:00
|
|
|
F: app/test-sad/
|
2019-01-10 21:06:28 +00:00
|
|
|
|
2017-10-24 17:28:00 +00:00
|
|
|
Flow Classify - EXPERIMENTAL
|
|
|
|
M: Bernard Iremonger <bernard.iremonger@intel.com>
|
|
|
|
F: lib/librte_flow_classify/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_flow_classify*
|
2017-11-03 11:13:55 +00:00
|
|
|
F: doc/guides/prog_guide/flow_classify_lib.rst
|
2017-10-24 17:28:00 +00:00
|
|
|
F: examples/flow_classify/
|
2017-11-03 11:13:55 +00:00
|
|
|
F: doc/guides/sample_app_ug/flow_classify.rst
|
2017-10-24 17:28:00 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Distributor
|
2017-03-20 10:08:42 +00:00
|
|
|
M: David Hunt <david.hunt@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_distributor/
|
|
|
|
F: doc/guides/prog_guide/packet_distrib_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_distributor*
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/distributor/
|
|
|
|
F: doc/guides/sample_app_ug/dist_app.rst
|
|
|
|
|
2015-02-18 14:58:18 +00:00
|
|
|
Reorder
|
2015-10-21 10:50:43 +00:00
|
|
|
M: Reshma Pattan <reshma.pattan@intel.com>
|
2015-02-18 14:58:18 +00:00
|
|
|
F: lib/librte_reorder/
|
|
|
|
F: doc/guides/prog_guide/reorder_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_reorder*
|
2015-02-18 14:58:18 +00:00
|
|
|
F: examples/packet_ordering/
|
|
|
|
F: doc/guides/sample_app_ug/packet_ordering.rst
|
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Hierarchical scheduler
|
2015-02-04 15:53:25 +00:00
|
|
|
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
2019-07-26 16:42:15 +00:00
|
|
|
M: Jasvinder Singh <jasvinder.singh@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_sched/
|
|
|
|
F: doc/guides/prog_guide/qos_framework.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_red.c
|
|
|
|
F: app/test/test_sched.c
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/qos_sched/
|
|
|
|
F: doc/guides/sample_app_ug/qos_scheduler.rst
|
|
|
|
|
pdump: add new library for packet capture
The librte_pdump library provides a framework for
packet capturing in dpdk. The library provides set of
APIs to initialize the packet capture framework, to
enable or disable the packet capture, and to uninitialize
it.
The librte_pdump library works on a client/server model.
The server is responsible for enabling or disabling the
packet capture and the clients are responsible
for requesting the enabling or disabling of the packet
capture.
Enabling APIs are supported with port, queue, ring and
mempool parameters. Applications should pass on this information
to get the packets from the dpdk ports.
For enabling requests from applications, library creates the client
request containing the mempool, ring, port and queue information and
sends the request to the server. After receiving the request, server
registers the Rx and Tx callbacks for all the port and queues.
After the callbacks registration, registered callbacks will get the
Rx and Tx packets. Packets then will be copied to the new mbufs that
are allocated from the user passed mempool. These new mbufs then will
be enqueued to the application passed ring. Applications need to dequeue
the mbufs from the rings and direct them to the devices like
pcap vdev for viewing the packets outside of the dpdk
using the packet capture tools.
For disabling requests, library creates the client request containing
the port and queue information and sends the request to the server.
After receiving the request, server removes the Rx and Tx callback
for all the port and queues.
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-06-15 14:06:22 +00:00
|
|
|
Packet capture
|
|
|
|
M: Reshma Pattan <reshma.pattan@intel.com>
|
|
|
|
F: lib/librte_pdump/
|
|
|
|
F: doc/guides/prog_guide/pdump_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_pdump.*
|
2016-06-15 14:06:23 +00:00
|
|
|
F: app/pdump/
|
2016-08-31 07:50:09 +00:00
|
|
|
F: doc/guides/tools/pdump.rst
|
pdump: add new library for packet capture
The librte_pdump library provides a framework for
packet capturing in dpdk. The library provides set of
APIs to initialize the packet capture framework, to
enable or disable the packet capture, and to uninitialize
it.
The librte_pdump library works on a client/server model.
The server is responsible for enabling or disabling the
packet capture and the clients are responsible
for requesting the enabling or disabling of the packet
capture.
Enabling APIs are supported with port, queue, ring and
mempool parameters. Applications should pass on this information
to get the packets from the dpdk ports.
For enabling requests from applications, library creates the client
request containing the mempool, ring, port and queue information and
sends the request to the server. After receiving the request, server
registers the Rx and Tx callbacks for all the port and queues.
After the callbacks registration, registered callbacks will get the
Rx and Tx packets. Packets then will be copied to the new mbufs that
are allocated from the user passed mempool. These new mbufs then will
be enqueued to the application passed ring. Applications need to dequeue
the mbufs from the rings and direct them to the devices like
pcap vdev for viewing the packets outside of the dpdk
using the packet capture tools.
For disabling requests, library creates the client request containing
the port and queue information and sends the request to the server.
After receiving the request, server removes the Rx and Tx callback
for all the port and queues.
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-06-15 14:06:22 +00:00
|
|
|
|
2018-10-08 12:12:47 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Packet Framework
|
|
|
|
----------------
|
2015-02-04 15:53:25 +00:00
|
|
|
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_pipeline/
|
|
|
|
F: lib/librte_port/
|
|
|
|
F: lib/librte_table/
|
|
|
|
F: doc/guides/prog_guide/packet_framework.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_table*
|
2019-02-26 12:19:01 +00:00
|
|
|
F: app/test-pipeline/
|
2015-01-23 12:31:59 +00:00
|
|
|
F: doc/guides/sample_app_ug/test_pipeline.rst
|
|
|
|
F: examples/ip_pipeline/
|
2020-10-01 10:20:04 +00:00
|
|
|
F: examples/pipeline/
|
2015-08-11 16:47:08 +00:00
|
|
|
F: doc/guides/sample_app_ug/ip_pipeline.rst
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
Algorithms
|
|
|
|
----------
|
|
|
|
|
|
|
|
ACL
|
2015-02-06 12:35:49 +00:00
|
|
|
M: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_acl/
|
|
|
|
F: doc/guides/prog_guide/packet_classif_access_ctrl.rst
|
2019-02-26 12:19:00 +00:00
|
|
|
F: app/test-acl/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_acl.*
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/l3fwd-acl/
|
|
|
|
F: doc/guides/sample_app_ug/l3_forward_access_ctrl.rst
|
|
|
|
|
2017-01-17 22:23:51 +00:00
|
|
|
EFD
|
|
|
|
M: Byron Marohn <byron.marohn@intel.com>
|
2019-09-11 18:06:37 +00:00
|
|
|
M: Yipeng Wang <yipeng1.wang@intel.com>
|
2017-01-17 22:23:51 +00:00
|
|
|
F: lib/librte_efd/
|
2017-01-17 22:23:55 +00:00
|
|
|
F: doc/guides/prog_guide/efd_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_efd*
|
2017-01-24 09:06:14 +00:00
|
|
|
F: examples/server_node_efd/
|
|
|
|
F: doc/guides/sample_app_ug/server_node_efd.rst
|
2017-01-17 22:23:51 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Hashes
|
2019-01-08 15:08:34 +00:00
|
|
|
M: Yipeng Wang <yipeng1.wang@intel.com>
|
|
|
|
M: Sameh Gobriel <sameh.gobriel@intel.com>
|
2015-02-06 13:57:07 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_hash/
|
|
|
|
F: doc/guides/prog_guide/hash_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_*hash*
|
|
|
|
F: app/test/test_func_reentrancy.c
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
LPM
|
2015-02-06 13:57:07 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
2019-02-05 13:57:33 +00:00
|
|
|
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_lpm/
|
|
|
|
F: doc/guides/prog_guide/lpm*
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_lpm*
|
|
|
|
F: app/test/test_func_reentrancy.c
|
|
|
|
F: app/test/test_xmmt_ops.h
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2017-10-04 03:12:19 +00:00
|
|
|
Membership - EXPERIMENTAL
|
|
|
|
M: Yipeng Wang <yipeng1.wang@intel.com>
|
|
|
|
M: Sameh Gobriel <sameh.gobriel@intel.com>
|
|
|
|
F: lib/librte_member/
|
2017-10-04 03:12:25 +00:00
|
|
|
F: doc/guides/prog_guide/member_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_member*
|
2017-10-04 03:12:19 +00:00
|
|
|
|
2019-11-01 15:21:38 +00:00
|
|
|
RIB/FIB - EXPERIMENTAL
|
2019-11-01 15:21:34 +00:00
|
|
|
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
|
|
|
|
F: lib/librte_rib/
|
2019-11-01 15:21:35 +00:00
|
|
|
F: app/test/test_rib*
|
2019-11-01 15:21:38 +00:00
|
|
|
F: lib/librte_fib/
|
2019-11-01 15:21:42 +00:00
|
|
|
F: app/test/test_fib*
|
2019-12-11 18:45:04 +00:00
|
|
|
F: app/test-fib/
|
2019-11-01 15:21:34 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Traffic metering
|
2015-02-04 15:53:25 +00:00
|
|
|
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_meter/
|
|
|
|
F: doc/guides/sample_app_ug/qos_scheduler.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_meter.c
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/qos_meter/
|
|
|
|
F: doc/guides/sample_app_ug/qos_metering.rst
|
|
|
|
|
2018-04-23 01:18:35 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Other libraries
|
|
|
|
---------------
|
|
|
|
|
|
|
|
Configuration file
|
2015-02-04 15:53:25 +00:00
|
|
|
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_cfgfile/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_cfgfile.c
|
|
|
|
F: app/test/test_cfgfiles/
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Interactive command line
|
2015-01-30 15:52:22 +00:00
|
|
|
M: Olivier Matz <olivier.matz@6wind.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_cmdline/
|
2019-02-26 12:18:59 +00:00
|
|
|
F: app/test-cmdline/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_cmdline*
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/cmdline/
|
|
|
|
F: doc/guides/sample_app_ug/cmd_line.rst
|
|
|
|
|
|
|
|
Key/Value parsing
|
2015-01-30 15:52:22 +00:00
|
|
|
M: Olivier Matz <olivier.matz@6wind.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_kvargs/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_kvargs.c
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2020-09-11 05:45:33 +00:00
|
|
|
RCU
|
2019-05-01 03:54:16 +00:00
|
|
|
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
|
|
|
|
F: lib/librte_rcu/
|
2019-05-02 14:53:45 +00:00
|
|
|
F: app/test/test_rcu*
|
2019-05-01 03:54:16 +00:00
|
|
|
F: doc/guides/prog_guide/rcu_lib.rst
|
|
|
|
|
2017-10-26 10:06:08 +00:00
|
|
|
PCI
|
2020-01-08 14:13:32 +00:00
|
|
|
M: Gaetan Rivet <grive@u256.net>
|
2017-10-26 10:06:08 +00:00
|
|
|
F: lib/librte_pci/
|
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Power management
|
2017-08-04 14:07:34 +00:00
|
|
|
M: David Hunt <david.hunt@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_power/
|
|
|
|
F: doc/guides/prog_guide/power_man.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_power*
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/l3fwd-power/
|
|
|
|
F: doc/guides/sample_app_ug/l3_forward_power_man.rst
|
|
|
|
F: examples/vm_power_manager/
|
|
|
|
F: doc/guides/sample_app_ug/vm_power_management.rst
|
|
|
|
|
|
|
|
Timers
|
2015-02-25 20:18:05 +00:00
|
|
|
M: Robert Sanford <rsanford@akamai.com>
|
2019-03-11 16:13:09 +00:00
|
|
|
M: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: lib/librte_timer/
|
|
|
|
F: doc/guides/prog_guide/timer_lib.rst
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_timer*
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/timer/
|
|
|
|
F: doc/guides/sample_app_ug/timer.rst
|
|
|
|
|
2015-02-24 16:33:25 +00:00
|
|
|
Job statistics
|
|
|
|
F: lib/librte_jobstats/
|
|
|
|
F: examples/l2fwd-jobstats/
|
2015-03-18 10:20:39 +00:00
|
|
|
F: doc/guides/sample_app_ug/l2_forward_job_stats.rst
|
2015-02-24 16:33:25 +00:00
|
|
|
|
2017-03-30 21:00:57 +00:00
|
|
|
Metrics
|
|
|
|
F: lib/librte_metrics/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_metrics.c
|
2017-03-30 21:00:57 +00:00
|
|
|
|
2017-03-30 21:00:59 +00:00
|
|
|
Bit-rate statistics
|
|
|
|
F: lib/librte_bitratestats/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_bitratestats.c
|
2017-03-30 21:00:59 +00:00
|
|
|
|
2017-03-30 21:01:01 +00:00
|
|
|
Latency statistics
|
|
|
|
M: Reshma Pattan <reshma.pattan@intel.com>
|
|
|
|
F: lib/librte_latencystats/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_latencystats.c
|
2017-03-30 21:01:01 +00:00
|
|
|
|
2018-10-27 09:17:41 +00:00
|
|
|
Telemetry - EXPERIMENTAL
|
|
|
|
M: Kevin Laatz <kevin.laatz@intel.com>
|
|
|
|
F: lib/librte_telemetry/
|
2020-04-30 16:01:24 +00:00
|
|
|
F: app/test/test_telemetry*
|
2020-04-30 16:01:28 +00:00
|
|
|
F: usertools/dpdk-telemetry*
|
2018-10-27 09:17:48 +00:00
|
|
|
F: doc/guides/howto/telemetry.rst
|
2018-10-27 09:17:41 +00:00
|
|
|
|
2020-09-14 14:11:42 +00:00
|
|
|
BPF
|
2018-05-10 10:23:03 +00:00
|
|
|
M: Konstantin Ananyev <konstantin.ananyev@intel.com>
|
|
|
|
F: lib/librte_bpf/
|
2019-02-26 12:19:02 +00:00
|
|
|
F: examples/bpf/
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_bpf.c
|
2018-05-10 10:23:11 +00:00
|
|
|
F: doc/guides/prog_guide/bpf_lib.rst
|
2018-05-10 10:23:03 +00:00
|
|
|
|
2020-04-11 14:14:00 +00:00
|
|
|
Graph - EXPERIMENTAL
|
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
|
|
|
M: Kiran Kumar K <kirankumark@marvell.com>
|
|
|
|
F: lib/librte_graph/
|
2020-04-11 14:14:27 +00:00
|
|
|
F: doc/guides/prog_guide/graph_lib.rst
|
2020-04-11 14:14:12 +00:00
|
|
|
F: app/test/test_graph*
|
2020-04-11 14:14:24 +00:00
|
|
|
M: Nithin Dabilpuram <ndabilpuram@marvell.com>
|
|
|
|
F: examples/l3fwd-graph/
|
2020-04-11 14:14:28 +00:00
|
|
|
F: doc/guides/sample_app_ug/l3_forward_graph.rst
|
2020-04-11 14:14:00 +00:00
|
|
|
|
2020-04-11 14:14:14 +00:00
|
|
|
Nodes - EXPERIMENTAL
|
|
|
|
M: Nithin Dabilpuram <ndabilpuram@marvell.com>
|
|
|
|
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
|
|
|
|
F: lib/librte_node/
|
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Test Applications
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
Unit tests framework
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/autotest*
|
|
|
|
F: app/test/commands.c
|
2020-01-20 12:22:18 +00:00
|
|
|
F: app/test/get-coremask.sh
|
2020-04-09 16:41:49 +00:00
|
|
|
F: app/test/has-hugepage.sh
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/packet_burst_generator.c
|
|
|
|
F: app/test/packet_burst_generator.h
|
|
|
|
F: app/test/process.h
|
|
|
|
F: app/test/resource.*
|
|
|
|
F: app/test/test.c
|
|
|
|
F: app/test/test.h
|
|
|
|
F: app/test/test_pmd_perf.c
|
|
|
|
F: app/test/test_resource.c
|
|
|
|
F: app/test/virtual_pmd.c
|
|
|
|
F: app/test/virtual_pmd.h
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2018-10-08 12:12:44 +00:00
|
|
|
Sample packet helper functions for unit test
|
|
|
|
M: Reshma Pattan <reshma.pattan@intel.com>
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/sample_packet_forward.c
|
|
|
|
F: app/test/sample_packet_forward.h
|
2018-10-08 12:12:44 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
Driver testing tool
|
2017-12-04 06:18:26 +00:00
|
|
|
M: Wenzhuo Lu <wenzhuo.lu@intel.com>
|
2020-04-26 08:21:53 +00:00
|
|
|
M: Beilei Xing <beilei.xing@intel.com>
|
2018-05-10 09:29:04 +00:00
|
|
|
M: Bernard Iremonger <bernard.iremonger@intel.com>
|
2020-01-14 09:18:15 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-net
|
2015-01-23 12:31:59 +00:00
|
|
|
F: app/test-pmd/
|
|
|
|
F: doc/guides/testpmd_app_ug/
|
|
|
|
|
2020-06-04 13:34:58 +00:00
|
|
|
Flow performance tool
|
2020-08-12 16:08:35 +00:00
|
|
|
M: Wisam Jaddo <wisamm@nvidia.com>
|
2020-06-04 13:34:58 +00:00
|
|
|
F: app/test-flow-perf/
|
|
|
|
F: doc/guides/tools/flow-perf.rst
|
|
|
|
|
2018-12-12 12:08:03 +00:00
|
|
|
Compression performance test application
|
2020-01-14 09:18:15 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
2018-12-12 12:08:03 +00:00
|
|
|
F: app/test-compress-perf/
|
|
|
|
F: doc/guides/tools/comp_perf.rst
|
|
|
|
|
2017-01-25 16:27:33 +00:00
|
|
|
Crypto performance test application
|
|
|
|
M: Declan Doherty <declan.doherty@intel.com>
|
2020-01-14 09:18:15 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-crypto
|
2017-01-25 16:27:33 +00:00
|
|
|
F: app/test-crypto-perf/
|
2017-01-25 16:27:35 +00:00
|
|
|
F: doc/guides/tools/cryptoperf.rst
|
2017-01-25 16:27:33 +00:00
|
|
|
|
2017-07-04 04:52:56 +00:00
|
|
|
Eventdev test application
|
2018-12-16 15:43:25 +00:00
|
|
|
M: Jerin Jacob <jerinj@marvell.com>
|
2020-01-14 09:18:15 +00:00
|
|
|
T: git://dpdk.org/next/dpdk-next-eventdev
|
2017-07-04 04:52:56 +00:00
|
|
|
F: app/test-eventdev/
|
2017-07-04 04:53:23 +00:00
|
|
|
F: doc/guides/tools/testeventdev.rst
|
2017-07-04 04:53:24 +00:00
|
|
|
F: doc/guides/tools/img/eventdev_*
|
2019-02-26 12:19:03 +00:00
|
|
|
F: app/test/test_event_ring.c
|
2017-07-04 04:52:56 +00:00
|
|
|
|
2016-11-18 17:09:26 +00:00
|
|
|
Procinfo tool
|
2015-07-15 13:11:32 +00:00
|
|
|
M: Maryam Tahhan <maryam.tahhan@intel.com>
|
2016-11-18 17:09:26 +00:00
|
|
|
M: Reshma Pattan <reshma.pattan@intel.com>
|
2018-02-16 16:53:35 +00:00
|
|
|
F: app/proc-info/
|
2016-08-31 07:50:09 +00:00
|
|
|
F: doc/guides/tools/proc_info.rst
|
2015-07-15 13:11:32 +00:00
|
|
|
|
2015-01-23 12:31:59 +00:00
|
|
|
|
|
|
|
Other Example Applications
|
|
|
|
--------------------------
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
Ethtool example
|
2015-12-07 13:48:59 +00:00
|
|
|
F: examples/ethtool/
|
|
|
|
F: doc/guides/sample_app_ug/ethtool.rst
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
FIPS validation example
|
2018-11-02 09:55:28 +00:00
|
|
|
M: Marko Kovacevic <marko.kovacevic@intel.com>
|
|
|
|
F: examples/fips_validation/
|
|
|
|
F: doc/guides/sample_app_ug/fips_validation.rst
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
Flow filtering example
|
2020-08-12 16:08:35 +00:00
|
|
|
M: Ori Kam <orika@nvidia.com>
|
2017-11-01 09:42:37 +00:00
|
|
|
F: examples/flow_filtering/
|
|
|
|
F: doc/guides/sample_app_ug/flow_filtering.rst
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
Helloworld example
|
2015-03-11 10:48:07 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/helloworld/
|
|
|
|
F: doc/guides/sample_app_ug/hello_world.rst
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
IPsec security gateway example
|
2017-10-18 12:06:15 +00:00
|
|
|
M: Radu Nicolau <radu.nicolau@intel.com>
|
2018-01-18 11:20:47 +00:00
|
|
|
M: Akhil Goyal <akhil.goyal@nxp.com>
|
2016-03-11 02:12:40 +00:00
|
|
|
F: examples/ipsec-secgw/
|
|
|
|
F: doc/guides/sample_app_ug/ipsec_secgw.rst
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
IPv4 multicast example
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/ipv4_multicast/
|
|
|
|
F: doc/guides/sample_app_ug/ipv4_multicast.rst
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
L2 forwarding example
|
2015-03-11 10:48:07 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/l2fwd/
|
|
|
|
F: doc/guides/sample_app_ug/l2_forward_real_virtual.rst
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
L2 forwarding with cache allocation example
|
2016-03-22 09:59:52 +00:00
|
|
|
M: Tomasz Kantecki <tomasz.kantecki@intel.com>
|
|
|
|
F: doc/guides/sample_app_ug/l2_forward_cat.rst
|
|
|
|
F: examples/l2fwd-cat/
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
L2 forwarding with eventdev example
|
2019-10-30 16:26:42 +00:00
|
|
|
M: Sunil Kumar Kori <skori@marvell.com>
|
|
|
|
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
|
|
|
|
T: git://dpdk.org/next/dpdk-next-eventdev
|
|
|
|
F: examples/l2fwd-event/
|
2019-10-30 17:03:47 +00:00
|
|
|
F: doc/guides/sample_app_ug/l2_forward_event.rst
|
2019-10-30 16:26:42 +00:00
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
L3 forwarding example
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/l3fwd/
|
|
|
|
F: doc/guides/sample_app_ug/l3_forward.rst
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
Link status interrupt example
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/link_status_interrupt/
|
|
|
|
F: doc/guides/sample_app_ug/link_status_intr.rst
|
|
|
|
|
2015-12-10 12:24:58 +00:00
|
|
|
L-threads - EXPERIMENTAL
|
2016-11-18 17:09:51 +00:00
|
|
|
M: John McNamara <john.mcnamara@intel.com>
|
2015-12-08 06:05:16 +00:00
|
|
|
F: examples/performance-thread/
|
|
|
|
F: doc/guides/sample_app_ug/performance_thread.rst
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
PTP client example
|
2019-10-15 13:45:35 +00:00
|
|
|
M: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
|
2016-03-22 09:59:52 +00:00
|
|
|
F: examples/ptpclient/
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
Rx/Tx callbacks example
|
2015-02-23 18:30:10 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
|
|
|
M: John McNamara <john.mcnamara@intel.com>
|
|
|
|
F: examples/rxtx_callbacks/
|
2015-02-25 19:46:02 +00:00
|
|
|
F: doc/guides/sample_app_ug/rxtx_callbacks.rst
|
2015-02-23 18:30:10 +00:00
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
Service cores example
|
2017-10-19 10:31:11 +00:00
|
|
|
M: Harry van Haaren <harry.van.haaren@intel.com>
|
|
|
|
F: examples/service_cores/
|
|
|
|
F: doc/guides/sample_app_ug/service_cores.rst
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
Skeleton example
|
2015-03-11 10:48:07 +00:00
|
|
|
M: Bruce Richardson <bruce.richardson@intel.com>
|
2015-02-25 19:46:01 +00:00
|
|
|
M: John McNamara <john.mcnamara@intel.com>
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/skeleton/
|
2015-02-25 19:46:01 +00:00
|
|
|
F: doc/guides/sample_app_ug/skeleton.rst
|
2015-01-23 12:31:59 +00:00
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
TEP termination example
|
2018-06-22 09:13:59 +00:00
|
|
|
M: Xiaoyun Li <xiaoyun.li@intel.com>
|
2015-06-22 16:40:56 +00:00
|
|
|
F: examples/tep_termination/
|
|
|
|
|
2020-10-06 07:03:02 +00:00
|
|
|
VMDq examples
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/vmdq/
|
2020-03-25 06:32:47 +00:00
|
|
|
F: doc/guides/sample_app_ug/vmdq_forwarding.rst
|
2015-01-23 12:31:59 +00:00
|
|
|
F: examples/vmdq_dcb/
|
|
|
|
F: doc/guides/sample_app_ug/vmdq_dcb_forwarding.rst
|