* [dpdk-dev] [PATCH v2 22/37] doc: remove references to make in contributing guides
` (2 preceding siblings ...)
2020-08-20 12:41 4% ` [dpdk-dev] [PATCH v2 14/37] devtools: remove use of make in scripts Ciara Power
@ 2020-08-20 12:41 5% ` Ciara Power
3 siblings, 0 replies; 200+ results
From: Ciara Power @ 2020-08-20 12:41 UTC (permalink / raw)
To: dev; +Cc: Ciara Power, Louise Kilheeney, John McNamara, Marko Kovacevic
Make is no longer supported for compiling DPDK, references are now
removed in the documentation.
Signed-off-by: Ciara Power <ciara.power@intel.com>
Signed-off-by: Louise Kilheeney <louise.kilheeney@intel.com>
---
doc/guides/contributing/coding_style.rst | 46 +-------
doc/guides/contributing/design.rst | 127 ++--------------------
doc/guides/contributing/documentation.rst | 31 +-----
doc/guides/contributing/patches.rst | 45 --------
4 files changed, 18 insertions(+), 231 deletions(-)
diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst
index b55075eaa2..dc352d03ca 100644
--- a/doc/guides/contributing/coding_style.rst
+++ b/doc/guides/contributing/coding_style.rst
@@ -773,52 +773,16 @@ The ``pep8`` tool can be used for testing compliance with the guidelines.
Integrating with the Build System
---------------------------------
-DPDK supports being built in two different ways:
-
-* using ``make`` - or more specifically "GNU make", i.e. ``gmake`` on FreeBSD
-* using the tools ``meson`` and ``ninja``
+DPDK supports being built by using the tools ``meson`` and ``ninja``
Any new library or driver to be integrated into DPDK should support being
-built with both systems. While building using ``make`` is a legacy approach, and
-most build-system enhancements are being done using ``meson`` and ``ninja``
-there are no plans at this time to deprecate the legacy ``make`` build system.
+built with this system.
-Therefore all new component additions should include both a ``Makefile`` and a
-``meson.build`` file, and should be added to the component lists in both the
-``Makefile`` and ``meson.build`` files in the relevant top-level directory:
+Therefore all new component additions should include a ``meson.build`` file,
+and should be added to the component lists in the ``meson.build`` files in the
+relevant top-level directory:
either ``lib`` directory or a ``driver`` subdirectory.
-Makefile Contents
-~~~~~~~~~~~~~~~~~
-
-The ``Makefile`` for the component should be of the following format, where
-``<name>`` corresponds to the name of the library in question, e.g. hash,
-lpm, etc. For drivers, the same format of Makefile is used.
-
-.. code-block:: none
-
- # pull in basic DPDK definitions, including whether library is to be
- # built or not
- include $(RTE_SDK)/mk/rte.vars.mk
-
- # library name
- LIB = librte_<name>.a
-
- # any library cflags needed. Generally add "-O3 $(WERROR_FLAGS)"
- CFLAGS += -O3
- CFLAGS += $(WERROR_FLAGS)
-
- # the symbol version information for the library
- EXPORT_MAP := rte_<name>_version.map
-
- # all source filenames are stored in SRCS-y
- SRCS-$(CONFIG_RTE_LIBRTE_<NAME>) += rte_<name>.c
-
- # install includes
- SYMLINK-$(CONFIG_RTE_LIBRTE_<NAME>)-include += rte_<name>.h
-
- # pull in rules to build the library
- include $(RTE_SDK)/mk/rte.lib.mk
Meson Build File Contents - Libraries
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/guides/contributing/design.rst b/doc/guides/contributing/design.rst
index 5fe7f63942..6ce0de97ac 100644
--- a/doc/guides/contributing/design.rst
+++ b/doc/guides/contributing/design.rst
@@ -21,7 +21,7 @@ A file located in a subdir of "linux" is specific to this execution environment.
When absolutely necessary, there are several ways to handle specific code:
-* Use a ``#ifdef`` with the CONFIG option in the C code.
+* Use a ``#ifdef`` with a build definition macro in the C code.
This can be done when the differences are small and they can be embedded in the same C file:
.. code-block:: c
@@ -32,30 +32,22 @@ When absolutely necessary, there are several ways to handle specific code:
titi();
#endif
-* Use the CONFIG option in the Makefile. This is done when the differences are more significant.
- In this case, the code is split into two separate files that are architecture or environment specific.
- This should only apply inside the EAL library.
-
-.. note::
-
- As in the linux kernel, the ``CONFIG_`` prefix is not used in C code.
- This is only needed in Makefiles or shell scripts.
Per Architecture Sources
~~~~~~~~~~~~~~~~~~~~~~~~
-The following config options can be used:
+The following macro options can be used:
-* ``CONFIG_RTE_ARCH`` is a string that contains the name of the architecture.
-* ``CONFIG_RTE_ARCH_I686``, ``CONFIG_RTE_ARCH_X86_64``, ``CONFIG_RTE_ARCH_X86_64_32`` or ``CONFIG_RTE_ARCH_PPC_64`` are defined only if we are building for those architectures.
+* ``RTE_ARCH`` is a string that contains the name of the architecture.
+* ``RTE_ARCH_I686``, ``RTE_ARCH_X86_64``, ``RTE_ARCH_X86_64_32`` or ``RTE_ARCH_PPC_64`` are defined only if we are building for those architectures.
Per Execution Environment Sources
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The following config options can be used:
+The following macro options can be used:
-* ``CONFIG_RTE_EXEC_ENV`` is a string that contains the name of the executive environment.
-* ``CONFIG_RTE_EXEC_ENV_FREEBSD`` or ``CONFIG_RTE_EXEC_ENV_LINUX`` are defined only if we are building for this execution environment.
+* ``RTE_EXEC_ENV`` is a string that contains the name of the executive environment.
+* ``RTE_EXEC_ENV_FREEBSD`` or ``RTE_EXEC_ENV_LINUX`` are defined only if we are building for this execution environment.
Mbuf features
-------------
@@ -73,111 +65,6 @@ Adding a new static field or flag must be an exception matching many criteria
like (non exhaustive): wide usage, performance, size.
-Library Statistics
-------------------
-
-Description
-~~~~~~~~~~~
-
-This document describes the guidelines for DPDK library-level statistics counter
-support. This includes guidelines for turning library statistics on and off and
-requirements for preventing ABI changes when implementing statistics.
-
-
-Mechanism to allow the application to turn library statistics on and off
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Each library that maintains statistics counters should provide a single build
-time flag that decides whether the statistics counter collection is enabled or
-not. This flag should be exposed as a variable within the DPDK configuration
-file. When this flag is set, all the counters supported by current library are
-collected for all the instances of every object type provided by the library.
-When this flag is cleared, none of the counters supported by the current library
-are collected for any instance of any object type provided by the library:
-
-.. code-block:: console
-
- # DPDK file config/common_linux, config/common_freebsd, etc.
- CONFIG_RTE_<LIBRARY_NAME>_STATS_COLLECT=y/n
-
-The default value for this DPDK configuration file variable (either "yes" or
-"no") is decided by each library.
-
-
-Prevention of ABI changes due to library statistics support
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The layout of data structures and prototype of functions that are part of the
-library API should not be affected by whether the collection of statistics
-counters is turned on or off for the current library. In practical terms, this
-means that space should always be allocated in the API data structures for
-statistics counters and the statistics related API functions are always built
-into the code, regardless of whether the statistics counter collection is turned
-on or off for the current library.
-
-When the collection of statistics counters for the current library is turned
-off, the counters retrieved through the statistics related API functions should
-have a default value of zero.
-
-
-Motivation to allow the application to turn library statistics on and off
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It is highly recommended that each library provides statistics counters to allow
-an application to monitor the library-level run-time events. Typical counters
-are: number of packets received/dropped/transmitted, number of buffers
-allocated/freed, number of occurrences for specific events, etc.
-
-However, the resources consumed for library-level statistics counter collection
-have to be spent out of the application budget and the counters collected by
-some libraries might not be relevant to the current application. In order to
-avoid any unwanted waste of resources and/or performance impacts, the
-application should decide at build time whether the collection of library-level
-statistics counters should be turned on or off for each library individually.
-
-Library-level statistics counters can be relevant or not for specific
-applications:
-
-* For Application A, counters maintained by Library X are always relevant and
- the application needs to use them to implement certain features, such as traffic
- accounting, logging, application-level statistics, etc. In this case,
- the application requires that collection of statistics counters for Library X is
- always turned on.
-
-* For Application B, counters maintained by Library X are only useful during the
- application debug stage and are not relevant once debug phase is over. In this
- case, the application may decide to turn on the collection of Library X
- statistics counters during the debug phase and at a later stage turn them off.
-
-* For Application C, counters maintained by Library X are not relevant at all.
- It might be that the application maintains its own set of statistics counters
- that monitor a different set of run-time events (e.g. number of connection
- requests, number of active users, etc). It might also be that the application
- uses multiple libraries (Library X, Library Y, etc) and it is interested in the
- statistics counters of Library Y, but not in those of Library X. In this case,
- the application may decide to turn the collection of statistics counters off for
- Library X and on for Library Y.
-
-The statistics collection consumes a certain amount of CPU resources (cycles,
-cache bandwidth, memory bandwidth, etc) that depends on:
-
-* Number of libraries used by the current application that have statistics
- counters collection turned on.
-
-* Number of statistics counters maintained by each library per object type
- instance (e.g. per port, table, pipeline, thread, etc).
-
-* Number of instances created for each object type supported by each library.
-
-* Complexity of the statistics logic collection for each counter: when only
- some occurrences of a specific event are valid, additional logic is typically
- needed to decide whether the current occurrence of the event should be counted
- or not. For example, in the event of packet reception, when only TCP packets
- with destination port within a certain range should be recorded, conditional
- branches are usually required. When processing a burst of packets that have been
- validated for header integrity, counting the number of bits set in a bitmask
- might be needed.
-
PF and VF Considerations
------------------------
diff --git a/doc/guides/contributing/documentation.rst b/doc/guides/contributing/documentation.rst
index 375ea64ba8..768453126f 100644
--- a/doc/guides/contributing/documentation.rst
+++ b/doc/guides/contributing/documentation.rst
@@ -222,25 +222,14 @@ Build commands
~~~~~~~~~~~~~~
The documentation is built using the standard DPDK build system.
-Some examples are shown below:
-* Generate all the documentation targets::
+To enable doc building::
- make doc
+ meson configure -Denable_docs=true
-* Generate the Doxygen API documentation in Html::
+See :doc:`../linux_gsg/build_dpdk` for more detail on compiling DPDK with meson.
- make doc-api-html
-
-* Generate the guides documentation in Html::
-
- make doc-guides-html
-
-* Generate the guides documentation in Pdf::
-
- make doc-guides-pdf
-
-The output of these commands is generated in the ``build`` directory::
+The output is generated in the ``build`` directory::
build/doc
|-- html
@@ -255,10 +244,6 @@ The output of these commands is generated in the ``build`` directory::
Make sure to fix any Sphinx or Doxygen warnings when adding or updating documentation.
-The documentation output files can be removed as follows::
-
- make doc-clean
-
Document Guidelines
-------------------
@@ -308,7 +293,7 @@ Line Length
Long literal command lines can be shown wrapped with backslashes. For
example::
- testpmd -l 2-3 -n 4 \
+ dpdk-testpmd -l 2-3 -n 4 \
--vdev=virtio_user0,path=/dev/vhost-net,queues=2,queue_size=1024 \
-- -i --tx-offloads=0x0000002c --enable-lro --txq=2 --rxq=2 \
--txd=1024 --rxd=1024
@@ -460,7 +445,7 @@ Code and Literal block sections
For long literal lines that exceed that limit try to wrap the text at sensible locations.
For example a long command line could be documented like this and still work if copied directly from the docs::
- build/app/testpmd -l 0-2 -n3 --vdev=net_pcap0,iface=eth0 \
+ ./<build_dir>/app/dpdk-testpmd -l 0-2 -n3 --vdev=net_pcap0,iface=eth0 \
--vdev=net_pcap1,iface=eth1 \
-- -i --nb-cores=2 --nb-ports=2 \
--total-num-mbufs=2048
@@ -743,9 +728,5 @@ The following are some guidelines for use of Doxygen in the DPDK API documentati
/** Array of physical page addresses for the mempool buffer. */
phys_addr_t elt_pa[MEMPOOL_PG_NUM_DEFAULT];
-* Check for Doxygen warnings in new code by checking the API documentation build::
-
- make doc-api-html >/dev/null
-
* Read the rendered section of the documentation that you have added for correctness, clarity and consistency
with the surrounding text.
diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst
index 425bb874f8..bafa95be59 100644
--- a/doc/guides/contributing/patches.rst
+++ b/doc/guides/contributing/patches.rst
@@ -464,51 +464,6 @@ and the -r option allows the user specify a ``git log`` range.
Checking Compilation
--------------------
-Makefile System
-~~~~~~~~~~~~~~~
-
-Compilation of patches and changes should be tested using the ``test-build.sh`` script in the ``devtools``
-directory of the DPDK repo::
-
- devtools/test-build.sh x86_64-native-linux-gcc+next+shared
-
-The script usage is::
-
- test-build.sh [-h] [-jX] [-s] [config1 [config2] ...]]
-
-Where:
-
-* ``-h``: help, usage.
-* ``-jX``: use X parallel jobs in "make".
-* ``-s``: short test with only first config and without examples/doc.
-* ``config``: default config name plus config switches delimited with a ``+`` sign.
-
-Examples of configs are::
-
- x86_64-native-linux-gcc
- x86_64-native-linux-gcc+next+shared
- x86_64-native-linux-clang+shared
-
-The builds can be modified via the following environmental variables:
-
-* ``DPDK_BUILD_TEST_CONFIGS`` (target1+option1+option2 target2)
-* ``DPDK_BUILD_TEST_DIR``
-* ``DPDK_DEP_CFLAGS``
-* ``DPDK_DEP_LDFLAGS``
-* ``DPDK_DEP_PCAP`` (y/[n])
-* ``DPDK_NOTIFY`` (notify-send)
-
-These can be set from the command line or in the config files shown above in the :ref:`contrib_checkpatch`.
-
-The recommended configurations and options to test compilation prior to submitting patches are::
-
- x86_64-native-linux-gcc+shared+next
- x86_64-native-linux-clang+shared
- i686-native-linux-gcc
-
- export DPDK_DEP_ZLIB=y
- export DPDK_DEP_PCAP=y
- export DPDK_DEP_SSL=y
Meson System
~~~~~~~~~~~~
--
2.17.1
^ permalink raw reply [relevance 5%]
* [dpdk-dev] [PATCH v2 14/37] devtools: remove use of make in scripts
2020-08-20 12:41 1% ` [dpdk-dev] [PATCH v2 10/37] build: remove makefiles and mk directory Ciara Power
2020-08-20 12:41 1% ` [dpdk-dev] [PATCH v2 11/37] config: remove all config files used by make Ciara Power
@ 2020-08-20 12:41 4% ` Ciara Power
2020-08-20 12:41 5% ` [dpdk-dev] [PATCH v2 22/37] doc: remove references to make in contributing guides Ciara Power
3 siblings, 0 replies; 200+ results
From: Ciara Power @ 2020-08-20 12:41 UTC (permalink / raw)
To: dev; +Cc: Ciara Power, Thomas Monjalon
Make is no longer supported, the test script for make builds is no
longer required. Uses of make in other tool scripts are replaced.
Signed-off-by: Ciara Power <ciara.power@intel.com>
---
MAINTAINERS | 1 -
devtools/build-tags.sh | 14 +-
devtools/check-includes.sh | 3 +-
devtools/git-log-fixes.sh | 2 +-
devtools/test-build.sh | 315 -------------------------------------
5 files changed, 4 insertions(+), 331 deletions(-)
delete mode 100755 devtools/test-build.sh
diff --git a/MAINTAINERS b/MAINTAINERS
index 392150fc3b..0fec96558e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -90,7 +90,6 @@ F: devtools/checkpatches.sh
F: devtools/get-maintainer.sh
F: devtools/git-log-fixes.sh
F: devtools/load-devel-config
-F: devtools/test-build.sh
F: devtools/test-meson-builds.sh
F: devtools/words-case.txt
F: license/
diff --git a/devtools/build-tags.sh b/devtools/build-tags.sh
index 276fff647b..614ce4c3a4 100755
--- a/devtools/build-tags.sh
+++ b/devtools/build-tags.sh
@@ -19,8 +19,8 @@ arm_64=true
print_usage()
{
echo "Usage: $(basename $0) [-h] [-v] tags|cscope|gtags|etags [config]"
- echo "Valid configs are:"
- make showconfigs | sed 's,^,\t,'
+ echo "Examples of valid configs are: "
+ echo "x86_64-native-linux-gcc, arm64-armv8a-linux-gcc, ppc_64-power8-linux-gcc"
}
# Move to the root of the git tree
@@ -125,17 +125,7 @@ ppc_64_sources()
find_sources "$source_dirs" '*altivec*.[chS]'
}
-check_valid_target()
-{
- if [ ! -f "config/defconfig_$1" ] ; then
- echo "Invalid config: $1"
- print_usage
- exit 0
- fi
-}
-
if [ -n "$2" ]; then
- check_valid_target $2
echo $2 | grep -q "linux" || linux=false
echo $2 | grep -q "bsd" || bsd=false
diff --git a/devtools/check-includes.sh b/devtools/check-includes.sh
index 749b9b26d2..15594f08a3 100755
--- a/devtools/check-includes.sh
+++ b/devtools/check-includes.sh
@@ -17,8 +17,7 @@
#
# SUMMARY=1 is the same as -s.
#
-# CC, CPPFLAGS, CFLAGS, EXTRA_CPPFLAGS, EXTRA_CFLAGS, CXX, CXXFLAGS and
-# EXTRA_CXXFLAGS are taken into account.
+# CC, CPPFLAGS, CFLAGS, CXX, CXXFLAGS are taken into account.
#
# PEDANTIC_CFLAGS, PEDANTIC_CXXFLAGS and PEDANTIC_CPPFLAGS provide strict
# C/C++ compilation flags.
diff --git a/devtools/git-log-fixes.sh b/devtools/git-log-fixes.sh
index 6d468d6731..210c8dcf25 100755
--- a/devtools/git-log-fixes.sh
+++ b/devtools/git-log-fixes.sh
@@ -50,7 +50,7 @@ commit_version () # <hash>
head -n1)
if [ -z "$tag" ] ; then
# before -rc1 tag of release in progress
- make showversion | cut -d'.' -f-2
+ cat VERSION | cut -d'.' -f-2
else
echo $tag | sed 's,^v,,' | sed 's,-rc.*,,'
fi
diff --git a/devtools/test-build.sh b/devtools/test-build.sh
deleted file mode 100755
index f013656024..0000000000
--- a/devtools/test-build.sh
+++ /dev/null
@@ -1,315 +0,0 @@
-#! /bin/sh -e
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2015 6WIND S.A.
-
-default_path=$PATH
-
-# Load config options:
-# - ARMV8_CRYPTO_LIB_PATH
-# - DPDK_ABI_REF_DIR
-# - DPDK_ABI_REF_VERSION
-# - DPDK_BUILD_TEST_CONFIGS (defconfig1+option1+option2 defconfig2)
-# - DPDK_BUILD_TEST_DIR
-# - DPDK_DEP_ARCHIVE
-# - DPDK_DEP_BPF (y/[n])
-# - DPDK_DEP_CFLAGS
-# - DPDK_DEP_ELF (y/[n])
-# - DPDK_DEP_FDT (y/[n])
-# - DPDK_DEP_ISAL (y/[n])
-# - DPDK_DEP_JSON (y/[n])
-# - DPDK_DEP_LDFLAGS
-# - DPDK_DEP_MLX (y/[n])
-# - DPDK_DEP_NFB (y/[n])
-# - DPDK_DEP_NUMA ([y]/n)
-# - DPDK_DEP_PCAP (y/[n])
-# - DPDK_DEP_SSL (y/[n])
-# - DPDK_DEP_IPSEC_MB (y/[n])
-# - DPDK_DEP_SZE (y/[n])
-# - DPDK_DEP_ZLIB (y/[n])
-# - DPDK_MAKE_JOBS (int)
-# - DPDK_NOTIFY (notify-send)
-# - FLEXRAN_SDK
-# - LIBMUSDK_PATH
-devtools_dir=$(dirname $(readlink -f $0))
-. $devtools_dir/load-devel-config
-
-print_usage () {
- echo "usage: $(basename $0) [-h] [-jX] [-s] [config1 [config2] ...]]"
-}
-
-print_help () {
- echo 'Test building several targets with different options'
- echo
- print_usage
- cat <<- END_OF_HELP
-
- options:
- -h this help
- -jX use X parallel jobs in "make"
- -s short test only first config without tests|examples|doc
- -v verbose build
-
- config: defconfig[[~][+]option1[[~][+]option2...]]
- Example: x86_64-native-linux-gcc+debug~RXTX_CALLBACKS
- The lowercase options are defined inside $(basename $0).
- The uppercase options can be the end of a defconfig option
- to enable if prefixed with '+' or to disable if prefixed with '~'.
- Default is to automatically enable most of the options.
- The external dependencies are setup with DPDK_DEP_* variables.
- If no config on command line, DPDK_BUILD_TEST_CONFIGS is used.
- END_OF_HELP
-}
-
-[ -z $MAKE ] && command -v gmake > /dev/null && MAKE=gmake
-[ -z $MAKE ] && command -v make > /dev/null && MAKE=make
-[ -z $MAKE ] && echo "Cannot find make or gmake" && exit 1
-
-J=$DPDK_MAKE_JOBS
-builds_dir=${DPDK_BUILD_TEST_DIR:-.}
-short=false
-unset verbose
-while getopts hj:sv ARG ; do
- case $ARG in
- j ) J=$OPTARG ;;
- s ) short=true ;;
- v ) verbose='V=1' ;;
- h ) print_help ; exit 0 ;;
- ? ) print_usage ; exit 1 ;;
- esac
-done
-shift $(($OPTIND - 1))
-configs=${*:-$DPDK_BUILD_TEST_CONFIGS}
-
-success=false
-on_exit ()
-{
- if $success ; then
- [ "$DPDK_NOTIFY" != notify-send ] || \
- notify-send -u low --icon=dialog-information 'DPDK build' 'finished'
- elif [ -z "$signal" ] ; then
- [ -z "$dir" ] || echo "failed to build $dir" >&2
- [ "$DPDK_NOTIFY" != notify-send ] || \
- notify-send -u low --icon=dialog-error 'DPDK build' 'failed'
- fi
-}
-# catch manual interrupt to ignore notification
-trap "signal=INT ; trap - INT ; kill -INT $$" INT
-# notify result on exit
-trap on_exit EXIT
-
-cd $devtools_dir/..
-
-reset_env ()
-{
- export PATH=$default_path
- unset CROSS
- unset DPDK_DEP_ARCHIVE
- unset DPDK_DEP_BPF
- unset DPDK_DEP_CFLAGS
- unset DPDK_DEP_ELF
- unset DPDK_DEP_FDT
- unset DPDK_DEP_ISAL
- unset DPDK_DEP_JSON
- unset DPDK_DEP_LDFLAGS
- unset DPDK_DEP_MLX
- unset DPDK_DEP_NFB
- unset DPDK_DEP_NUMA
- unset DPDK_DEP_PCAP
- unset DPDK_DEP_SSL
- unset DPDK_DEP_IPSEC_MB
- unset DPDK_DEP_SZE
- unset DPDK_DEP_ZLIB
- unset ARMV8_CRYPTO_LIB_PATH
- unset FLEXRAN_SDK
- unset LIBMUSDK_PATH
- unset PQOS_INSTALL_PATH
-}
-
-config () # <directory> <target> <options>
-{
- reconfig=false
- if git rev-parse 2>&- && [ -n "$(git diff HEAD~ -- config)" ] ; then
- echo 'Default config may have changed'
- reconfig=true
- fi
- if [ ! -e $1/.config ] || $reconfig ; then
- echo "================== Configure $1"
- ${MAKE} T=$2 O=$1 config
-
- echo 'Customize configuration'
- # Built-in options (lowercase)
- ! echo $3 | grep -q '+default' || \
- sed -ri="" 's,(RTE_MACHINE=")native,\1default,' $1/.config
- ! echo $3 | grep -q '+kmods' || \
- sed -ri="" 's,(IGB_UIO=|KNI_KMOD=)n,\1y,' $1/.config
- echo $3 | grep -q '+next' || \
- sed -ri="" 's,(NEXT_ABI=)y,\1n,' $1/.config
- ! echo $3 | grep -q '+shared' || \
- sed -ri="" 's,(SHARED_LIB=)n,\1y,' $1/.config
- ! echo $3 | grep -q '+debug' || ( \
- sed -ri="" 's,(RTE_LOG_DP_LEVEL=).*,\1RTE_LOG_DEBUG,' $1/.config
- sed -ri="" 's,(_DEBUG.*=)n,\1y,' $1/.config
- sed -ri="" 's,(_STAT)([S_].*=|=)n,\1\2y,' $1/.config
- sed -ri="" 's,(TEST_PMD_RECORD_.*=)n,\1y,' $1/.config )
-
- # Automatic configuration
- ! echo $2 | grep -q 'arm64' || \
- sed -ri="" 's,(ARM_USE_WFE=)n,\1y,' $1/.config
- test "$DPDK_DEP_NUMA" != n || \
- sed -ri="" 's,(NUMA.*=)y,\1n,' $1/.config
- sed -ri="" 's,(LIBRTE_IEEE1588=)n,\1y,' $1/.config
- sed -ri="" 's,(BYPASS=)n,\1y,' $1/.config
- test "$DPDK_DEP_ARCHIVE" != y || \
- sed -ri="" 's,(RESOURCE_TAR=)n,\1y,' $1/.config
- test "$DPDK_DEP_BPF" != y || \
- sed -ri="" 's,(PMD_AF_XDP=)n,\1y,' $1/.config
- test "$DPDK_DEP_FDT" != y || \
- sed -ri="" 's,(PMD_IFPGA_RAWDEV=)n,\1y,' $1/.config
- test "$DPDK_DEP_FDT" != y || \
- sed -ri="" 's,(IPN3KE_PMD=)n,\1y,' $1/.config
- test "$DPDK_DEP_ISAL" != y || \
- sed -ri="" 's,(PMD_ISAL=)n,\1y,' $1/.config
- test "$DPDK_DEP_MLX" != y || \
- sed -ri="" 's,(MLX.*_PMD=)n,\1y,' $1/.config
- test "$DPDK_DEP_NFB" != y || \
- sed -ri="" 's,(NFB_PMD=)n,\1y,' $1/.config
- test "$DPDK_DEP_SZE" != y || \
- sed -ri="" 's,(PMD_SZEDATA2=)n,\1y,' $1/.config
- test "$DPDK_DEP_ZLIB" != y || \
- sed -ri="" 's,(BNX2X_PMD=)n,\1y,' $1/.config
- test "$DPDK_DEP_ZLIB" != y || \
- sed -ri="" 's,(PMD_ZLIB=)n,\1y,' $1/.config
- test "$DPDK_DEP_ZLIB" != y || \
- sed -ri="" 's,(COMPRESSDEV_TEST=)n,\1y,' $1/.config
- test "$DPDK_DEP_PCAP" != y || \
- sed -ri="" 's,(PCAP=)n,\1y,' $1/.config
- test -z "$ARMV8_CRYPTO_LIB_PATH" || \
- sed -ri="" 's,(PMD_ARMV8_CRYPTO=)n,\1y,' $1/.config
- test "$DPDK_DEP_IPSEC_MB" != y || \
- sed -ri="" 's,(PMD_AESNI_MB=)n,\1y,' $1/.config
- test "$DPDK_DEP_IPSEC_MB" != y || \
- sed -ri="" 's,(PMD_AESNI_GCM=)n,\1y,' $1/.config
- test "$DPDK_DEP_IPSEC_MB" != y || \
- sed -ri="" 's,(PMD_ZUC=)n,\1y,' $1/.config
- test "$DPDK_DEP_IPSEC_MB" != y || \
- sed -ri="" 's,(PMD_KASUMI=)n,\1y,' $1/.config
- test "$DPDK_DEP_IPSEC_MB" != y || \
- sed -ri="" 's,(PMD_SNOW3G=)n,\1y,' $1/.config
- test "$DPDK_DEP_SSL" != y || \
- sed -ri="" 's,(PMD_CCP=)n,\1y,' $1/.config
- test "$DPDK_DEP_SSL" != y || \
- sed -ri="" 's,(PMD_OPENSSL=)n,\1y,' $1/.config
- test "$DPDK_DEP_SSL" != y || \
- sed -ri="" 's,(QAT_SYM=)n,\1y,' $1/.config
- test -z "$FLEXRAN_SDK" || \
- sed -ri="" 's,(BBDEV_TURBO_SW=)n,\1y,' $1/.config
- sed -ri="" 's,(SCHED_.*=)n,\1y,' $1/.config
- test -z "$LIBMUSDK_PATH" || \
- sed -ri="" 's,(PMD_MVSAM_CRYPTO=)n,\1y,' $1/.config
- test -z "$LIBMUSDK_PATH" || \
- sed -ri="" 's,(MVPP2_PMD=)n,\1y,' $1/.config
- test -z "$LIBMUSDK_PATH" || \
- sed -ri="" 's,(MVNETA_PMD=)n,\1y,' $1/.config
- test "$DPDK_DEP_ELF" != y || \
- sed -ri="" 's,(BPF_ELF=)n,\1y,' $1/.config
- test "$DPDK_DEP_JSON" != y || \
- sed -ri="" 's,(TELEMETRY=)n,\1y,' $1/.config
- build_config_hook $1 $2 $3
-
- # Explicit enabler/disabler (uppercase)
- for option in $(echo $3 | sed 's,[~+], &,g') ; do
- pattern=$(echo $option | cut -c2-)
- if echo $option | grep -q '^~' ; then
- sed -ri="" "s,($pattern=)y,\1n," $1/.config
- elif echo $option | grep -q '^+' ; then
- sed -ri="" "s,($pattern=)n,\1y," $1/.config
- fi
- done
- fi
-}
-
-# default empty hook to override in devel config
-build_config_hook () # <directory> <target> <options>
-{
- :
-}
-
-for conf in $configs ; do
- target=$(echo $conf | sed 's,[~+].*,,')
- # reload config with DPDK_TARGET set
- DPDK_TARGET=$target
- reset_env
- . $devtools_dir/load-devel-config
-
- options=$(echo $conf | sed 's,[^~+]*,,')
- dir=$builds_dir/$conf
- config $dir $target $options
-
- echo "================== Build $conf"
- ${MAKE} -j$J EXTRA_CFLAGS="-Wfatal-errors -g $DPDK_DEP_CFLAGS" \
- EXTRA_LDFLAGS="$DPDK_DEP_LDFLAGS" $verbose O=$dir
- ! $short || break
- export RTE_TARGET=$target
- rm -rf $dir/install
- ${MAKE} install O=$dir DESTDIR=$dir/install prefix=
- echo "================== Build examples for $conf"
- export RTE_SDK=$(readlink -f $dir)/install/share/dpdk
- ln -sTf $(pwd)/lib $RTE_SDK/lib # workaround for vm_power_manager
- grep -q 'SHARED_LIB=n' $dir/.config || # skip examples with static libs
- ${MAKE} -j$J -sC examples \
- EXTRA_LDFLAGS="$DPDK_DEP_LDFLAGS" $verbose \
- O=$(readlink -f $dir)/examples
- unset RTE_TARGET
- grep -q 'SHARED_LIB=n' $dir/.config || # skip ABI check with static libs
- if [ -n "$DPDK_ABI_REF_VERSION" ]; then
- abirefdir=${DPDK_ABI_REF_DIR:-reference}/$DPDK_ABI_REF_VERSION
- if [ ! -d $abirefdir/$conf ]; then
- # clone current sources
- if [ ! -d $abirefdir/src ]; then
- git clone --local --no-hardlinks \
- --single-branch \
- -b $DPDK_ABI_REF_VERSION \
- $(pwd) $abirefdir/src
- fi
-
- cd $abirefdir/src
-
- rm -rf $abirefdir/build
- config $abirefdir/build $target $options
-
- echo -n "================== Build $conf "
- echo "($DPDK_ABI_REF_VERSION)"
- ${MAKE} -j$J \
- EXTRA_CFLAGS="-Wno-error -g $DPDK_DEP_CFLAGS" \
- EXTRA_LDFLAGS="$DPDK_DEP_LDFLAGS" $verbose \
- O=$abirefdir/build
- export RTE_TARGET=$target
- ${MAKE} install O=$abirefdir/build \
- DESTDIR=$abirefdir/$conf \
- prefix=
- unset RTE_TARGET
- $devtools_dir/gen-abi.sh $abirefdir/$conf
-
- # back to current workdir
- cd $devtools_dir/..
- fi
-
- echo "================== Check ABI $conf"
- $devtools_dir/gen-abi.sh $dir/install
- $devtools_dir/check-abi.sh $abirefdir/$conf $dir/install
- fi
- echo "################## $conf done."
- unset dir
-done
-
-if ! $short ; then
- mkdir -p .check
- echo "================== Build doxygen HTML API"
- ${MAKE} doc-api-html >/dev/null 2>.check/doc.txt
- echo "================== Build sphinx HTML guides"
- ${MAKE} doc-guides-html >/dev/null 2>>.check/doc.txt
- echo "================== Check docs"
- diff -u /dev/null .check/doc.txt
-fi
-
-success=true
--
2.17.1
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH v2 11/37] config: remove all config files used by make
2020-08-20 12:41 1% ` [dpdk-dev] [PATCH v2 10/37] build: remove makefiles and mk directory Ciara Power
@ 2020-08-20 12:41 1% ` Ciara Power
2020-08-20 12:41 4% ` [dpdk-dev] [PATCH v2 14/37] devtools: remove use of make in scripts Ciara Power
2020-08-20 12:41 5% ` [dpdk-dev] [PATCH v2 22/37] doc: remove references to make in contributing guides Ciara Power
3 siblings, 0 replies; 200+ results
From: Ciara Power @ 2020-08-20 12:41 UTC (permalink / raw)
To: dev; +Cc: Ciara Power, Thomas Monjalon, Anatoly Burakov
Make is not supported for compiling DPDK, the config files are no
longer needed.
Signed-off-by: Ciara Power <ciara.power@intel.com>
---
config/common_armv8a_linux | 43 -
config/common_base | 1154 -----------------
config/common_freebsd | 15 -
config/common_linux | 68 -
config/defconfig_arm-armv7a-linux-gcc | 1 -
config/defconfig_arm-armv7a-linuxapp-gcc | 49 -
config/defconfig_arm64-armada-linux-gcc | 1 -
config/defconfig_arm64-armada-linuxapp-gcc | 41 -
config/defconfig_arm64-armv8a-linux-clang | 1 -
config/defconfig_arm64-armv8a-linux-gcc | 1 -
config/defconfig_arm64-armv8a-linuxapp-clang | 8 -
config/defconfig_arm64-armv8a-linuxapp-gcc | 9 -
config/defconfig_arm64-bluefield-linux-gcc | 1 -
config/defconfig_arm64-bluefield-linuxapp-gcc | 18 -
config/defconfig_arm64-dpaa-linux-gcc | 1 -
config/defconfig_arm64-dpaa-linuxapp-gcc | 31 -
config/defconfig_arm64-emag-linux-gcc | 1 -
config/defconfig_arm64-emag-linuxapp-gcc | 11 -
config/defconfig_arm64-n1sdp-linux-gcc | 1 -
config/defconfig_arm64-n1sdp-linuxapp-gcc | 14 -
config/defconfig_arm64-octeontx2-linux-gcc | 1 -
config/defconfig_arm64-octeontx2-linuxapp-gcc | 18 -
config/defconfig_arm64-stingray-linux-gcc | 1 -
config/defconfig_arm64-stingray-linuxapp-gcc | 14 -
config/defconfig_arm64-thunderx-linux-gcc | 1 -
config/defconfig_arm64-thunderx-linuxapp-gcc | 17 -
config/defconfig_arm64-thunderx2-linux-gcc | 1 -
config/defconfig_arm64-thunderx2-linuxapp-gcc | 12 -
config/defconfig_arm64-xgene1-linux-gcc | 1 -
config/defconfig_arm64-xgene1-linuxapp-gcc | 8 -
config/defconfig_i686-native-linux-gcc | 1 -
config/defconfig_i686-native-linux-icc | 1 -
config/defconfig_i686-native-linuxapp-gcc | 66 -
config/defconfig_i686-native-linuxapp-icc | 66 -
config/defconfig_ppc_64-power8-linux-gcc | 1 -
config/defconfig_ppc_64-power8-linuxapp-gcc | 35 -
config/defconfig_x86_64-native-bsdapp-clang | 14 -
config/defconfig_x86_64-native-bsdapp-gcc | 14 -
config/defconfig_x86_64-native-freebsd-clang | 1 -
config/defconfig_x86_64-native-freebsd-gcc | 1 -
config/defconfig_x86_64-native-linux-clang | 1 -
config/defconfig_x86_64-native-linux-gcc | 1 -
config/defconfig_x86_64-native-linux-icc | 1 -
config/defconfig_x86_64-native-linuxapp-clang | 14 -
config/defconfig_x86_64-native-linuxapp-gcc | 14 -
config/defconfig_x86_64-native-linuxapp-icc | 29 -
config/defconfig_x86_x32-native-linux-gcc | 1 -
config/defconfig_x86_x32-native-linuxapp-gcc | 46 -
48 files changed, 1850 deletions(-)
delete mode 100644 config/common_armv8a_linux
delete mode 100644 config/common_base
delete mode 100644 config/common_freebsd
delete mode 100644 config/common_linux
delete mode 120000 config/defconfig_arm-armv7a-linux-gcc
delete mode 100644 config/defconfig_arm-armv7a-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-armada-linux-gcc
delete mode 100644 config/defconfig_arm64-armada-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-armv8a-linux-clang
delete mode 120000 config/defconfig_arm64-armv8a-linux-gcc
delete mode 100644 config/defconfig_arm64-armv8a-linuxapp-clang
delete mode 100644 config/defconfig_arm64-armv8a-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-bluefield-linux-gcc
delete mode 100644 config/defconfig_arm64-bluefield-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-dpaa-linux-gcc
delete mode 100644 config/defconfig_arm64-dpaa-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-emag-linux-gcc
delete mode 100644 config/defconfig_arm64-emag-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-n1sdp-linux-gcc
delete mode 100644 config/defconfig_arm64-n1sdp-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-octeontx2-linux-gcc
delete mode 100644 config/defconfig_arm64-octeontx2-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-stingray-linux-gcc
delete mode 100644 config/defconfig_arm64-stingray-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-thunderx-linux-gcc
delete mode 100644 config/defconfig_arm64-thunderx-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-thunderx2-linux-gcc
delete mode 100644 config/defconfig_arm64-thunderx2-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-xgene1-linux-gcc
delete mode 100644 config/defconfig_arm64-xgene1-linuxapp-gcc
delete mode 120000 config/defconfig_i686-native-linux-gcc
delete mode 120000 config/defconfig_i686-native-linux-icc
delete mode 100644 config/defconfig_i686-native-linuxapp-gcc
delete mode 100644 config/defconfig_i686-native-linuxapp-icc
delete mode 120000 config/defconfig_ppc_64-power8-linux-gcc
delete mode 100644 config/defconfig_ppc_64-power8-linuxapp-gcc
delete mode 100644 config/defconfig_x86_64-native-bsdapp-clang
delete mode 100644 config/defconfig_x86_64-native-bsdapp-gcc
delete mode 120000 config/defconfig_x86_64-native-freebsd-clang
delete mode 120000 config/defconfig_x86_64-native-freebsd-gcc
delete mode 120000 config/defconfig_x86_64-native-linux-clang
delete mode 120000 config/defconfig_x86_64-native-linux-gcc
delete mode 120000 config/defconfig_x86_64-native-linux-icc
delete mode 100644 config/defconfig_x86_64-native-linuxapp-clang
delete mode 100644 config/defconfig_x86_64-native-linuxapp-gcc
delete mode 100644 config/defconfig_x86_64-native-linuxapp-icc
delete mode 120000 config/defconfig_x86_x32-native-linux-gcc
delete mode 100644 config/defconfig_x86_x32-native-linuxapp-gcc
diff --git a/config/common_armv8a_linux b/config/common_armv8a_linux
deleted file mode 100644
index e942657a0f..0000000000
--- a/config/common_armv8a_linux
+++ /dev/null
@@ -1,43 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="armv8a"
-
-CONFIG_RTE_ARCH="arm64"
-CONFIG_RTE_ARCH_ARM64=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_FORCE_INTRINSICS=y
-
-# Maximum available cache line size in arm64 implementations.
-# Setting to maximum available cache line size in generic config
-# to address minimum DMA alignment across all arm64 implementations.
-CONFIG_RTE_CACHE_LINE_SIZE=128
-
-CONFIG_RTE_USE_C11_MEM_MODEL=y
-
-# Accelarate rte_memcpy. Be sure to run unit test (memcpy_perf_autotest)
-# to determine the best threshold in code. Refer to notes in source file
-# (lib/librte_eal/arm/include/rte_memcpy_64.h) for more info.
-CONFIG_RTE_ARCH_ARM64_MEMCPY=n
-#CONFIG_RTE_ARM64_MEMCPY_ALIGNED_THRESHOLD=2048
-#CONFIG_RTE_ARM64_MEMCPY_UNALIGNED_THRESHOLD=512
-# Leave below RTE_ARM64_MEMCPY_xxx options commented out, unless there're
-# strong reasons.
-#CONFIG_RTE_ARM64_MEMCPY_SKIP_GCC_VER_CHECK=n
-#CONFIG_RTE_ARM64_MEMCPY_ALIGN_MASK=0xF
-#CONFIG_RTE_ARM64_MEMCPY_STRICT_ALIGN=n
-
-CONFIG_RTE_LIBRTE_IONIC_PMD=n
-CONFIG_RTE_LIBRTE_FM10K_PMD=n
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n
-
-#
-# NXP PFE PMD Driver
-#
-CONFIG_RTE_LIBRTE_PFE_PMD=y
diff --git a/config/common_base b/config/common_base
deleted file mode 100644
index fbf0ee70c8..0000000000
--- a/config/common_base
+++ /dev/null
@@ -1,1154 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-#
-# String that appears before the version number
-#
-CONFIG_RTE_VER_PREFIX="DPDK"
-
-#
-# Version information completed when this file is processed for a build
-#
-CONFIG_RTE_VER_YEAR=__YEAR
-CONFIG_RTE_VER_MONTH=__MONTH
-CONFIG_RTE_VER_MINOR=__MINOR
-CONFIG_RTE_VER_SUFFIX=__SUFFIX
-CONFIG_RTE_VER_RELEASE=__RELEASE
-
-#
-# define executive environment
-# RTE_EXEC_ENV values are the directories in mk/exec-env/
-#
-CONFIG_RTE_EXEC_ENV=
-
-#
-# define the architecture we compile for.
-# RTE_ARCH values are the directories in mk/arch/
-#
-CONFIG_RTE_ARCH=
-
-#
-# machine can define specific variables or action for a specific board
-# RTE_MACHINE values are the directories in mk/machine/
-#
-CONFIG_RTE_MACHINE=
-
-#
-# The compiler we use.
-# RTE_TOOLCHAIN values are the directories in mk/toolchain/
-#
-CONFIG_RTE_TOOLCHAIN=
-
-#
-# Use intrinsics or assembly code for key routines
-#
-CONFIG_RTE_FORCE_INTRINSICS=n
-
-#
-# Machine forces strict alignment constraints.
-#
-CONFIG_RTE_ARCH_STRICT_ALIGN=n
-
-#
-# Enable link time optimization
-#
-CONFIG_RTE_ENABLE_LTO=n
-
-#
-# Compile to share library
-#
-CONFIG_RTE_BUILD_SHARED_LIB=n
-
-#
-# Use newest code breaking previous ABI
-#
-CONFIG_RTE_NEXT_ABI=y
-
-#
-# Machine's cache line size
-#
-CONFIG_RTE_CACHE_LINE_SIZE=64
-
-#
-# Memory model
-#
-CONFIG_RTE_USE_C11_MEM_MODEL=n
-
-#
-# Compile Environment Abstraction Layer
-#
-CONFIG_RTE_LIBRTE_EAL=y
-CONFIG_RTE_MAX_LCORE=128
-CONFIG_RTE_MAX_NUMA_NODES=8
-CONFIG_RTE_MAX_HEAPS=32
-CONFIG_RTE_MAX_MEMSEG_LISTS=64
-# each memseg list will be limited to either RTE_MAX_MEMSEG_PER_LIST pages
-# or RTE_MAX_MEM_MB_PER_LIST megabytes worth of memory, whichever is smaller
-CONFIG_RTE_MAX_MEMSEG_PER_LIST=8192
-CONFIG_RTE_MAX_MEM_MB_PER_LIST=32768
-# a "type" is a combination of page size and NUMA node. total number of memseg
-# lists per type will be limited to either RTE_MAX_MEMSEG_PER_TYPE pages (split
-# over multiple lists of RTE_MAX_MEMSEG_PER_LIST pages), or
-# RTE_MAX_MEM_MB_PER_TYPE megabytes of memory (split over multiple lists of
-# RTE_MAX_MEM_MB_PER_LIST), whichever is smaller
-CONFIG_RTE_MAX_MEMSEG_PER_TYPE=32768
-CONFIG_RTE_MAX_MEM_MB_PER_TYPE=131072
-# global maximum usable amount of VA, in megabytes
-CONFIG_RTE_MAX_MEM_MB=524288
-CONFIG_RTE_MAX_MEMZONE=2560
-CONFIG_RTE_MAX_TAILQ=32
-CONFIG_RTE_ENABLE_ASSERT=n
-CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO
-CONFIG_RTE_ENABLE_TRACE_FP=n
-CONFIG_RTE_LOG_HISTORY=256
-CONFIG_RTE_BACKTRACE=y
-CONFIG_RTE_LIBEAL_USE_HPET=n
-CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n
-CONFIG_RTE_EAL_IGB_UIO=n
-CONFIG_RTE_EAL_VFIO=n
-CONFIG_RTE_MAX_VFIO_GROUPS=64
-CONFIG_RTE_MAX_VFIO_CONTAINERS=64
-CONFIG_RTE_MALLOC_DEBUG=n
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_USE_LIBBSD=n
-# Use WFE instructions to implement the rte_wait_for_equal_xxx APIs,
-# calling these APIs put the cores in low power state while waiting
-# for the memory address to become equal to the expected value.
-# This is supported only by aarch64.
-CONFIG_RTE_ARM_USE_WFE=n
-
-#
-# Recognize/ignore the AVX/AVX512 CPU flags for performance/power testing.
-# AVX512 is marked as experimental for now, will enable it after enough
-# field test and possible optimization.
-#
-CONFIG_RTE_ENABLE_AVX=y
-CONFIG_RTE_ENABLE_AVX512=n
-
-# Use ARM LSE ATOMIC instructions
-CONFIG_RTE_ARM_FEATURE_ATOMICS=n
-
-# Default driver path (or "" to disable)
-CONFIG_RTE_EAL_PMD_PATH=""
-
-#
-# Compile Environment Abstraction Layer to support Vmware TSC map
-#
-CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=y
-
-#
-# Compile the PCI library
-#
-CONFIG_RTE_LIBRTE_PCI=y
-
-#
-# Compile the argument parser library
-#
-CONFIG_RTE_LIBRTE_KVARGS=y
-
-#
-# Compile generic ethernet library
-#
-CONFIG_RTE_LIBRTE_ETHER=y
-CONFIG_RTE_LIBRTE_ETHDEV_DEBUG=n
-CONFIG_RTE_MAX_ETHPORTS=32
-CONFIG_RTE_MAX_QUEUES_PER_PORT=1024
-CONFIG_RTE_LIBRTE_IEEE1588=n
-CONFIG_RTE_ETHDEV_QUEUE_STAT_CNTRS=16
-CONFIG_RTE_ETHDEV_RXTX_CALLBACKS=y
-CONFIG_RTE_ETHDEV_PROFILE_WITH_VTUNE=n
-
-#
-# Turn off Tx preparation stage
-#
-# Warning: rte_eth_tx_prepare() can be safely disabled only if using a
-# driver which do not implement any Tx preparation.
-#
-CONFIG_RTE_ETHDEV_TX_PREPARE_NOOP=n
-
-#
-# Common libraries, before Bus/PMDs
-#
-CONFIG_RTE_LIBRTE_COMMON_DPAAX=n
-
-#
-# Compile the Intel FPGA bus
-#
-CONFIG_RTE_LIBRTE_IFPGA_BUS=y
-
-#
-# Compile PCI bus driver
-#
-CONFIG_RTE_LIBRTE_PCI_BUS=y
-
-#
-# Compile the vdev bus
-#
-CONFIG_RTE_LIBRTE_VDEV_BUS=y
-
-#
-# Compile ARK PMD
-#
-CONFIG_RTE_LIBRTE_ARK_PMD=y
-CONFIG_RTE_LIBRTE_ARK_PAD_TX=y
-CONFIG_RTE_LIBRTE_ARK_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_ARK_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_ARK_DEBUG_STATS=n
-CONFIG_RTE_LIBRTE_ARK_DEBUG_TRACE=n
-
-#
-# Compile Aquantia Atlantic PMD driver
-#
-CONFIG_RTE_LIBRTE_ATLANTIC_PMD=y
-
-#
-# Compile AMD PMD
-#
-CONFIG_RTE_LIBRTE_AXGBE_PMD=y
-CONFIG_RTE_LIBRTE_AXGBE_PMD_DEBUG=n
-
-#
-# Compile burst-oriented Broadcom PMD driver
-#
-CONFIG_RTE_LIBRTE_BNX2X_PMD=n
-CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=n
-CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC=n
-
-#
-# Compile burst-oriented Broadcom BNXT PMD driver
-#
-CONFIG_RTE_LIBRTE_BNXT_PMD=y
-
-#
-# Compile burst-oriented Chelsio Terminator (CXGBE) PMD
-#
-CONFIG_RTE_LIBRTE_CXGBE_PMD=y
-
-#
-# Compile burst-oriented NXP PFE PMD driver
-#
-CONFIG_RTE_LIBRTE_PFE_PMD=n
-
-# NXP DPAA Bus
-CONFIG_RTE_LIBRTE_DPAA_BUS=n
-CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=n
-CONFIG_RTE_LIBRTE_DPAA_PMD=n
-CONFIG_RTE_LIBRTE_DPAA_HWDEBUG=n
-
-#
-# Compile NXP DPAA2 FSL-MC Bus
-#
-CONFIG_RTE_LIBRTE_FSLMC_BUS=n
-
-#
-# Compile Support Libraries for NXP DPAA2
-#
-CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=n
-CONFIG_RTE_LIBRTE_DPAA2_USE_PHYS_IOVA=y
-
-#
-# Compile burst-oriented NXP DPAA2 PMD driver
-#
-CONFIG_RTE_LIBRTE_DPAA2_PMD=n
-CONFIG_RTE_LIBRTE_DPAA2_DEBUG_DRIVER=n
-
-#
-# Compile NXP ENETC PMD Driver
-#
-CONFIG_RTE_LIBRTE_ENETC_PMD=n
-
-#
-# Compile burst-oriented Amazon ENA PMD driver
-#
-CONFIG_RTE_LIBRTE_ENA_PMD=y
-CONFIG_RTE_LIBRTE_ENA_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_ENA_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_ENA_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_ENA_COM_DEBUG=n
-
-#
-# Compile burst-oriented Cisco ENIC PMD driver
-#
-CONFIG_RTE_LIBRTE_ENIC_PMD=y
-
-#
-# Compile burst-oriented IGB & EM PMD drivers
-#
-CONFIG_RTE_LIBRTE_EM_PMD=y
-CONFIG_RTE_LIBRTE_IGB_PMD=y
-CONFIG_RTE_LIBRTE_E1000_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_E1000_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_E1000_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_E1000_PF_DISABLE_STRIP_CRC=n
-
-#
-# Compile burst-oriented HINIC PMD driver
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-
-#
-# Compile burst-oriented HNS3 PMD driver
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
-
-#
-# Compile Pensando IONIC PMD driver
-#
-CONFIG_RTE_LIBRTE_IONIC_PMD=y
-
-#
-# Compile burst-oriented IXGBE PMD driver
-#
-CONFIG_RTE_LIBRTE_IXGBE_PMD=y
-CONFIG_RTE_LIBRTE_IXGBE_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n
-CONFIG_RTE_LIBRTE_IXGBE_BYPASS=n
-
-#
-# Compile burst-oriented I40E PMD driver
-#
-CONFIG_RTE_LIBRTE_I40E_PMD=y
-CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
-CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
-CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
-CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
-CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=4
-
-#
-# Compile burst-oriented FM10K PMD
-#
-CONFIG_RTE_LIBRTE_FM10K_PMD=y
-CONFIG_RTE_LIBRTE_FM10K_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_FM10K_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_FM10K_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_FM10K_RX_OLFLAGS_ENABLE=y
-CONFIG_RTE_LIBRTE_FM10K_INC_VECTOR=y
-
-#
-# Compile burst-oriented ICE PMD driver
-#
-CONFIG_RTE_LIBRTE_ICE_PMD=y
-CONFIG_RTE_LIBRTE_ICE_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_ICE_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_ICE_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_ICE_16BYTE_RX_DESC=n
-
-# Compile burst-oriented IAVF PMD driver
-#
-CONFIG_RTE_LIBRTE_IAVF_PMD=y
-CONFIG_RTE_LIBRTE_IAVF_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_IAVF_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_IAVF_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_IAVF_DEBUG_DUMP_DESC=n
-CONFIG_RTE_LIBRTE_IAVF_16BYTE_RX_DESC=n
-#
-# Compile burst-oriented IPN3KE PMD driver
-#
-CONFIG_RTE_LIBRTE_IPN3KE_PMD=n
-
-#
-# Compile burst-oriented IGC PMD drivers
-#
-CONFIG_RTE_LIBRTE_IGC_PMD=y
-CONFIG_RTE_LIBRTE_IGC_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_IGC_DEBUG_TX=n
-
-#
-# Compile burst-oriented Mellanox ConnectX-3 (MLX4) PMD
-#
-CONFIG_RTE_LIBRTE_MLX4_PMD=n
-CONFIG_RTE_LIBRTE_MLX4_DEBUG=n
-
-#
-# Compile burst-oriented Mellanox ConnectX-4, ConnectX-5,
-# ConnectX-6 & BlueField (MLX5) PMD
-#
-CONFIG_RTE_LIBRTE_MLX5_PMD=n
-CONFIG_RTE_LIBRTE_MLX5_DEBUG=n
-
-#
-# Compile regex-oriented Mellanox PMD
-#
-CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD=n
-
-#
-# Compile vdpa-oriented Mellanox ConnectX-6 & BlueField (MLX5) PMD
-#
-CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD=n
-
-# Linking method for mlx4/5 dependency on ibverbs and related libraries
-# Default linking is dynamic by linker.
-# Other options are: dynamic by dlopen at run-time, or statically embedded.
-CONFIG_RTE_IBVERBS_LINK_DLOPEN=n
-CONFIG_RTE_IBVERBS_LINK_STATIC=n
-
-#
-# Compile burst-oriented Netronome NFP PMD driver
-#
-CONFIG_RTE_LIBRTE_NFP_PMD=n
-CONFIG_RTE_LIBRTE_NFP_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_NFP_DEBUG_RX=n
-
-# QLogic 10G/25G/40G/50G/100G PMD
-#
-CONFIG_RTE_LIBRTE_QEDE_PMD=y
-CONFIG_RTE_LIBRTE_QEDE_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_QEDE_DEBUG_RX=n
-#Provides abs path/name of the firmware file.
-#Empty string denotes driver will use default firmware
-CONFIG_RTE_LIBRTE_QEDE_FW=""
-
-#
-# Compile burst-oriented Solarflare libefx-based PMD
-#
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=y
-CONFIG_RTE_LIBRTE_SFC_EFX_DEBUG=n
-
-#
-# Compile software PMD backed by SZEDATA2 device
-#
-CONFIG_RTE_LIBRTE_PMD_SZEDATA2=n
-
-#
-# Compile software PMD backed by NFB device
-#
-CONFIG_RTE_LIBRTE_NFB_PMD=n
-
-#
-# Compile burst-oriented Cavium Thunderx NICVF PMD driver
-#
-CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=y
-CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_TX=n
-
-#
-# Compile burst-oriented Cavium LiquidIO PMD driver
-#
-CONFIG_RTE_LIBRTE_LIO_PMD=y
-CONFIG_RTE_LIBRTE_LIO_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_LIO_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_LIO_DEBUG_MBOX=n
-CONFIG_RTE_LIBRTE_LIO_DEBUG_REGS=n
-
-#
-# Compile burst-oriented Cavium OCTEONTX network PMD driver
-#
-CONFIG_RTE_LIBRTE_OCTEONTX_PMD=y
-
-#
-# Compile burst-oriented Marvell OCTEON TX2 network PMD driver
-#
-CONFIG_RTE_LIBRTE_OCTEONTX2_PMD=y
-
-#
-# Compile WRS accelerated virtual port (AVP) guest PMD driver
-#
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-CONFIG_RTE_LIBRTE_AVP_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_AVP_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_AVP_DEBUG_BUFFERS=n
-
-#
-# Compile burst-oriented VIRTIO PMD driver
-#
-CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
-CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DUMP=n
-
-#
-# Compile virtio device emulation inside virtio PMD driver
-#
-CONFIG_RTE_VIRTIO_USER=n
-
-#
-# Compile burst-oriented VMXNET3 PMD driver
-#
-CONFIG_RTE_LIBRTE_VMXNET3_PMD=y
-CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX_FREE=n
-
-#
-# Compile software PMD backed by AF_PACKET sockets (Linux only)
-#
-CONFIG_RTE_LIBRTE_PMD_AF_PACKET=n
-
-#
-# Compile software PMD backed by AF_XDP sockets (Linux only)
-#
-CONFIG_RTE_LIBRTE_PMD_AF_XDP=n
-
-#
-# Compile Memory Interface PMD driver (Linux only)
-#
-CONFIG_RTE_LIBRTE_PMD_MEMIF=n
-
-#
-# Compile link bonding PMD library
-#
-CONFIG_RTE_LIBRTE_PMD_BOND=y
-CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB=n
-CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB_L1=n
-
-#
-# Compile fail-safe PMD
-#
-CONFIG_RTE_LIBRTE_PMD_FAILSAFE=y
-
-#
-# Compile Marvell PMD driver
-#
-CONFIG_RTE_LIBRTE_MVPP2_PMD=n
-
-#
-# Compile Marvell MVNETA PMD driver
-#
-CONFIG_RTE_LIBRTE_MVNETA_PMD=n
-
-#
-# Compile support for VMBus library
-#
-CONFIG_RTE_LIBRTE_VMBUS=n
-
-#
-# Compile native PMD for Hyper-V/Azure
-#
-CONFIG_RTE_LIBRTE_NETVSC_PMD=n
-CONFIG_RTE_LIBRTE_NETVSC_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_NETVSC_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_NETVSC_DEBUG_DUMP=n
-
-#
-# Compile virtual device driver for NetVSC on Hyper-V/Azure
-#
-CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD=n
-
-#
-# Compile null PMD
-#
-CONFIG_RTE_LIBRTE_PMD_NULL=y
-
-#
-# Compile software PMD backed by PCAP files
-#
-CONFIG_RTE_LIBRTE_PMD_PCAP=n
-
-#
-# Compile example software rings based PMD
-#
-CONFIG_RTE_LIBRTE_PMD_RING=y
-CONFIG_RTE_PMD_RING_MAX_RX_RINGS=16
-CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16
-
-#
-# Compile SOFTNIC PMD
-#
-CONFIG_RTE_LIBRTE_PMD_SOFTNIC=n
-
-#
-# Compile the TAP PMD
-# It is enabled by default for Linux only.
-#
-CONFIG_RTE_LIBRTE_PMD_TAP=n
-
-#
-# Do prefetch of packet data within PMD driver receive function
-#
-CONFIG_RTE_PMD_PACKET_PREFETCH=y
-
-# Compile generic wireless base band device library
-# EXPERIMENTAL: API may change without prior notice
-#
-CONFIG_RTE_LIBRTE_BBDEV=y
-CONFIG_RTE_LIBRTE_BBDEV_DEBUG=n
-CONFIG_RTE_BBDEV_MAX_DEVS=128
-CONFIG_RTE_BBDEV_OFFLOAD_COST=y
-CONFIG_RTE_BBDEV_SDK_AVX2=n
-CONFIG_RTE_BBDEV_SDK_AVX512=n
-
-#
-# Compile PMD for NULL bbdev device
-#
-CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL=y
-
-#
-# Compile PMD for turbo software bbdev device
-#
-CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW=y
-
-#
-# Compile PMD for Intel FPGA LTE FEC bbdev device
-#
-CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC=y
-
-#
-# Compile PMD for Intel FPGA 5GNR FEC bbdev device
-#
-CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC=y
-
-#
-# Compile generic crypto device library
-#
-CONFIG_RTE_LIBRTE_CRYPTODEV=y
-CONFIG_RTE_CRYPTO_MAX_DEVS=64
-
-#
-# Compile PMD for ARMv8 Crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO=n
-
-#
-# Compile NXP CAAM JR crypto Driver
-#
-CONFIG_RTE_LIBRTE_PMD_CAAM_JR=n
-CONFIG_RTE_LIBRTE_PMD_CAAM_JR_BE=n
-
-#
-# Compile NXP DPAA2 crypto sec driver for CAAM HW
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=n
-
-#
-# NXP DPAA caam - crypto driver
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=n
-CONFIG_RTE_LIBRTE_DPAA_MAX_CRYPTODEV=4
-
-#
-# Compile PMD for Cavium OCTEON TX crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO=y
-
-#
-# Compile PMD for Marvell OCTEON TX2 crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO=y
-
-#
-# Compile PMD for QuickAssist based devices - see docs for details
-#
-CONFIG_RTE_LIBRTE_PMD_QAT=y
-CONFIG_RTE_LIBRTE_PMD_QAT_SYM=n
-CONFIG_RTE_LIBRTE_PMD_QAT_ASYM=n
-#
-# Max. number of QuickAssist devices, which can be detected and attached
-#
-CONFIG_RTE_PMD_QAT_MAX_PCI_DEVICES=48
-CONFIG_RTE_PMD_QAT_COMP_IM_BUFFER_SIZE=65536
-
-#
-# Compile PMD for virtio crypto devices
-#
-CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO=y
-#
-# Number of maximum virtio crypto devices
-#
-CONFIG_RTE_MAX_VIRTIO_CRYPTO=32
-
-#
-# Compile PMD for AESNI backed device
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n
-
-#
-# Compile PMD for Software backed device
-#
-CONFIG_RTE_LIBRTE_PMD_OPENSSL=n
-
-#
-# Compile PMD for AESNI GCM device
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=n
-
-#
-# Compile PMD for SNOW 3G device
-#
-CONFIG_RTE_LIBRTE_PMD_SNOW3G=n
-CONFIG_RTE_LIBRTE_PMD_SNOW3G_DEBUG=n
-
-#
-# Compile PMD for KASUMI device
-#
-CONFIG_RTE_LIBRTE_PMD_KASUMI=n
-
-#
-# Compile PMD for ZUC device
-#
-CONFIG_RTE_LIBRTE_PMD_ZUC=n
-
-# Compile PMD for Crypto Scheduler device
-#
-CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER=y
-
-#
-# Compile PMD for NULL Crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO=y
-
-#
-# Compile PMD for AMD CCP crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_CCP=n
-
-#
-# Compile PMD for Marvell Crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO=n
-
-#
-# Compile PMD for NITROX crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_NITROX=y
-
-#
-# Compile generic security library
-#
-CONFIG_RTE_LIBRTE_SECURITY=y
-
-#
-# Compile generic compression device library
-#
-CONFIG_RTE_LIBRTE_COMPRESSDEV=y
-CONFIG_RTE_COMPRESS_MAX_DEVS=64
-
-#
-# Compile compressdev unit test
-#
-CONFIG_RTE_COMPRESSDEV_TEST=n
-
-#
-# Compile PMD for Octeontx ZIPVF compression device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF=y
-
-#
-# Compile PMD for ISA-L compression device
-#
-CONFIG_RTE_LIBRTE_PMD_ISAL=n
-
-#
-# Compile PMD for ZLIB compression device
-#
-CONFIG_RTE_LIBRTE_PMD_ZLIB=n
-
-#
-# Compile RegEx device support
-#
-CONFIG_RTE_LIBRTE_REGEXDEV=y
-CONFIG_RTE_LIBRTE_REGEXDEV_DEBUG=n
-CONFIG_RTE_MAX_REGEXDEV_DEVS=32
-
-#
-# Compile generic event device library
-#
-CONFIG_RTE_LIBRTE_EVENTDEV=y
-CONFIG_RTE_LIBRTE_EVENTDEV_DEBUG=n
-CONFIG_RTE_EVENT_MAX_DEVS=16
-CONFIG_RTE_EVENT_MAX_QUEUES_PER_DEV=64
-CONFIG_RTE_EVENT_TIMER_ADAPTER_NUM_MAX=32
-CONFIG_RTE_EVENT_ETH_INTR_RING_SIZE=1024
-CONFIG_RTE_EVENT_CRYPTO_ADAPTER_MAX_INSTANCE=32
-CONFIG_RTE_EVENT_ETH_TX_ADAPTER_MAX_INSTANCE=32
-
-#
-# Compile PMD for skeleton event device
-#
-CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV=y
-CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV_DEBUG=n
-
-#
-# Compile PMD for software event device
-#
-CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV=y
-
-#
-# Compile PMD for distributed software event device
-#
-CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV=y
-
-#
-# Compile PMD for octeontx sso event device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=y
-
-#
-# Compile PMD for octeontx2 sso event device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV=y
-
-#
-# Compile PMD for OPDL event device
-#
-CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV=y
-
-#
-# Compile PMD for NXP DPAA event device
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=n
-
-#
-# Compile PMD for NXP DPAA2 event device
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=n
-
-#
-# Compile raw device support
-# EXPERIMENTAL: API may change without prior notice
-#
-CONFIG_RTE_LIBRTE_RAWDEV=y
-CONFIG_RTE_RAWDEV_MAX_DEVS=64
-CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV=y
-
-#
-# Compile PMD for NXP DPAA2 CMDIF raw device
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV=n
-
-#
-# Compile PMD for NXP DPAA2 QDMA raw device
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV=n
-
-#
-# Compile PMD for Intel FPGA raw device
-#
-CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV=n
-
-#
-# Compile PMD for Intel IOAT raw device
-#
-CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=y
-
-#
-# Compile PMD for octeontx2 DMA raw device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV=y
-
-#
-# Compile PMD for octeontx2 EP raw device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV=y
-
-#
-# Compile PMD for NTB raw device
-#
-CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV=y
-
-#
-# Compile librte_ring
-#
-CONFIG_RTE_LIBRTE_RING=y
-
-#
-# Compile librte_stack
-#
-CONFIG_RTE_LIBRTE_STACK=y
-
-#
-# Compile librte_mempool
-#
-CONFIG_RTE_LIBRTE_MEMPOOL=y
-CONFIG_RTE_MEMPOOL_CACHE_MAX_SIZE=512
-CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=n
-
-#
-# Compile Mempool drivers
-#
-CONFIG_RTE_DRIVER_MEMPOOL_BUCKET=y
-CONFIG_RTE_DRIVER_MEMPOOL_BUCKET_SIZE_KB=64
-CONFIG_RTE_DRIVER_MEMPOOL_RING=y
-CONFIG_RTE_DRIVER_MEMPOOL_STACK=y
-
-#
-# Compile PMD for octeontx fpa mempool device
-#
-CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL=y
-
-#
-# Compile PMD for octeontx2 npa mempool device
-#
-CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL=y
-
-#
-# Compile librte_mbuf
-#
-CONFIG_RTE_LIBRTE_MBUF=y
-CONFIG_RTE_LIBRTE_MBUF_DEBUG=n
-CONFIG_RTE_MBUF_DEFAULT_MEMPOOL_OPS="ring_mp_mc"
-CONFIG_RTE_MBUF_REFCNT_ATOMIC=y
-CONFIG_RTE_PKTMBUF_HEADROOM=128
-
-#
-# Compile librte_timer
-#
-CONFIG_RTE_LIBRTE_TIMER=y
-CONFIG_RTE_LIBRTE_TIMER_DEBUG=n
-
-#
-# Compile librte_cfgfile
-#
-CONFIG_RTE_LIBRTE_CFGFILE=y
-
-#
-# Compile librte_cmdline
-#
-CONFIG_RTE_LIBRTE_CMDLINE=y
-CONFIG_RTE_LIBRTE_CMDLINE_DEBUG=n
-
-#
-# Compile librte_hash
-#
-CONFIG_RTE_LIBRTE_HASH=y
-CONFIG_RTE_LIBRTE_HASH_DEBUG=n
-
-#
-# Compile librte_efd
-#
-CONFIG_RTE_LIBRTE_EFD=y
-
-#
-# Compile librte_member
-#
-CONFIG_RTE_LIBRTE_MEMBER=y
-
-#
-# Compile librte_jobstats
-#
-CONFIG_RTE_LIBRTE_JOBSTATS=y
-
-#
-# Compile the device metrics library
-#
-CONFIG_RTE_LIBRTE_METRICS=y
-
-#
-# Compile the bitrate statistics library
-#
-CONFIG_RTE_LIBRTE_BITRATE=y
-
-#
-# Compile the latency statistics library
-#
-CONFIG_RTE_LIBRTE_LATENCY_STATS=y
-
-#
-# Compile librte_telemetry legacy support
-#
-CONFIG_RTE_LIBRTE_TELEMETRY=n
-
-#
-# Compile librte_rcu
-#
-CONFIG_RTE_LIBRTE_RCU=y
-CONFIG_RTE_LIBRTE_RCU_DEBUG=n
-
-#
-# Compile librte_rib
-#
-CONFIG_RTE_LIBRTE_RIB=y
-
-#
-# Compile librte_fib
-#
-CONFIG_RTE_LIBRTE_FIB=y
-CONFIG_RTE_LIBRTE_FIB_DEBUG=n
-
-#
-# Compile librte_lpm
-#
-CONFIG_RTE_LIBRTE_LPM=y
-CONFIG_RTE_LIBRTE_LPM_DEBUG=n
-
-#
-# Compile librte_acl
-#
-CONFIG_RTE_LIBRTE_ACL=y
-CONFIG_RTE_LIBRTE_ACL_DEBUG=n
-
-#
-# Compile librte_power
-#
-CONFIG_RTE_LIBRTE_POWER=n
-CONFIG_RTE_LIBRTE_POWER_DEBUG=n
-CONFIG_RTE_MAX_LCORE_FREQS=64
-
-#
-# Compile librte_net
-#
-CONFIG_RTE_LIBRTE_NET=y
-
-#
-# Compile librte_ip_frag
-#
-CONFIG_RTE_LIBRTE_IP_FRAG=y
-CONFIG_RTE_LIBRTE_IP_FRAG_DEBUG=n
-CONFIG_RTE_LIBRTE_IP_FRAG_MAX_FRAG=4
-CONFIG_RTE_LIBRTE_IP_FRAG_TBL_STAT=n
-
-#
-# Compile GRO library
-#
-CONFIG_RTE_LIBRTE_GRO=y
-
-#
-# Compile GSO library
-#
-CONFIG_RTE_LIBRTE_GSO=y
-
-#
-# Compile librte_meter
-#
-CONFIG_RTE_LIBRTE_METER=y
-
-#
-# Compile librte_classify
-#
-CONFIG_RTE_LIBRTE_FLOW_CLASSIFY=y
-
-#
-# Compile librte_sched
-#
-CONFIG_RTE_LIBRTE_SCHED=y
-CONFIG_RTE_SCHED_DEBUG=n
-CONFIG_RTE_SCHED_RED=n
-CONFIG_RTE_SCHED_COLLECT_STATS=n
-CONFIG_RTE_SCHED_SUBPORT_TC_OV=n
-CONFIG_RTE_SCHED_PORT_N_GRINDERS=8
-CONFIG_RTE_SCHED_VECTOR=n
-
-#
-# Compile the distributor library
-#
-CONFIG_RTE_LIBRTE_DISTRIBUTOR=y
-
-#
-# Compile the reorder library
-#
-CONFIG_RTE_LIBRTE_REORDER=y
-
-#
-# Compile librte_port
-#
-CONFIG_RTE_LIBRTE_PORT=y
-CONFIG_RTE_PORT_STATS_COLLECT=n
-CONFIG_RTE_PORT_PCAP=n
-
-#
-# Compile librte_table
-#
-CONFIG_RTE_LIBRTE_TABLE=y
-CONFIG_RTE_TABLE_STATS_COLLECT=n
-
-#
-# Compile librte_pipeline
-#
-CONFIG_RTE_LIBRTE_PIPELINE=y
-CONFIG_RTE_PIPELINE_STATS_COLLECT=n
-
-#
-# Compile librte_kni
-#
-CONFIG_RTE_LIBRTE_KNI=n
-CONFIG_RTE_LIBRTE_PMD_KNI=n
-CONFIG_RTE_KNI_KMOD=n
-CONFIG_RTE_KNI_PREEMPT_DEFAULT=y
-
-#
-# Compile the pdump library
-#
-CONFIG_RTE_LIBRTE_PDUMP=y
-
-#
-# Compile vhost user library
-#
-CONFIG_RTE_LIBRTE_VHOST=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-CONFIG_RTE_LIBRTE_VHOST_DEBUG=n
-
-#
-# Compile vhost PMD
-# To compile, CONFIG_RTE_LIBRTE_VHOST should be enabled.
-#
-CONFIG_RTE_LIBRTE_PMD_VHOST=n
-
-#
-# Compile IFC driver
-# To compile, CONFIG_RTE_LIBRTE_VHOST and CONFIG_RTE_EAL_VFIO
-# should be enabled.
-#
-CONFIG_RTE_LIBRTE_IFC_PMD=n
-
-#
-# Compile librte_bpf
-#
-CONFIG_RTE_LIBRTE_BPF=y
-# allow load BPF from ELF files (requires libelf)
-CONFIG_RTE_LIBRTE_BPF_ELF=n
-
-#
-# Compile librte_ipsec
-#
-CONFIG_RTE_LIBRTE_IPSEC=y
-
-#
-# Compile librte_graph
-#
-CONFIG_RTE_LIBRTE_GRAPH=y
-CONFIG_RTE_GRAPH_BURST_SIZE=256
-CONFIG_RTE_LIBRTE_GRAPH_STATS=y
-
-#
-# Compile librte_node
-#
-CONFIG_RTE_LIBRTE_NODE=y
-
-#
-# Compile the test application
-#
-CONFIG_RTE_APP_TEST=y
-CONFIG_RTE_APP_TEST_RESOURCE_TAR=n
-
-#
-# Compile the procinfo application
-#
-CONFIG_RTE_PROC_INFO=n
-
-#
-# Compile the PMD test application
-#
-CONFIG_RTE_TEST_PMD=y
-CONFIG_RTE_TEST_PMD_RECORD_CORE_CYCLES=n
-CONFIG_RTE_TEST_PMD_RECORD_BURST_STATS=n
-
-#
-# Compile the rte flow perf application
-#
-CONFIG_RTE_TEST_FLOW_PERF=y
-
-#
-# Compile the bbdev test application
-#
-CONFIG_RTE_TEST_BBDEV=y
-
-#
-# Compile the compression performance application
-#
-CONFIG_RTE_APP_COMPRESS_PERF=y
-
-#
-# Compile the crypto performance application
-#
-CONFIG_RTE_APP_CRYPTO_PERF=y
-
-#
-# Compile the eventdev application
-#
-CONFIG_RTE_APP_EVENTDEV=y
diff --git a/config/common_freebsd b/config/common_freebsd
deleted file mode 100644
index 456b394c4d..0000000000
--- a/config/common_freebsd
+++ /dev/null
@@ -1,15 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-#include "common_base"
-
-CONFIG_RTE_EXEC_ENV="bsdapp"
-CONFIG_RTE_EXEC_ENV_BSDAPP=y
-CONFIG_RTE_EXEC_ENV_FREEBSD=y
-
-#
-# FreeBSD contiguous memory driver settings
-#
-CONFIG_RTE_CONTIGMEM_MAX_NUM_BUFS=64
-CONFIG_RTE_CONTIGMEM_DEFAULT_NUM_BUFS=2
-CONFIG_RTE_CONTIGMEM_DEFAULT_BUF_SIZE=1024*1024*1024
diff --git a/config/common_linux b/config/common_linux
deleted file mode 100644
index 816810671a..0000000000
--- a/config/common_linux
+++ /dev/null
@@ -1,68 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-#include "common_base"
-
-CONFIG_RTE_EXEC_ENV="linuxapp"
-CONFIG_RTE_EXEC_ENV_LINUX=y
-CONFIG_RTE_EXEC_ENV_LINUXAPP=y
-
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=y
-CONFIG_RTE_EAL_VFIO=y
-CONFIG_RTE_LIBRTE_KNI=y
-CONFIG_RTE_LIBRTE_PMD_KNI=y
-CONFIG_RTE_LIBRTE_VHOST=y
-CONFIG_RTE_LIBRTE_VHOST_NUMA=y
-CONFIG_RTE_LIBRTE_VHOST_POSTCOPY=n
-CONFIG_RTE_LIBRTE_PMD_VHOST=y
-CONFIG_RTE_LIBRTE_IFC_PMD=y
-CONFIG_RTE_LIBRTE_PMD_AF_PACKET=y
-CONFIG_RTE_LIBRTE_PMD_MEMIF=y
-CONFIG_RTE_LIBRTE_PMD_SOFTNIC=y
-CONFIG_RTE_LIBRTE_PMD_TAP=y
-CONFIG_RTE_LIBRTE_AVP_PMD=y
-CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD=y
-CONFIG_RTE_LIBRTE_NFP_PMD=y
-CONFIG_RTE_LIBRTE_POWER=y
-CONFIG_RTE_VIRTIO_USER=y
-CONFIG_RTE_PROC_INFO=y
-
-CONFIG_RTE_LIBRTE_VMBUS=y
-CONFIG_RTE_LIBRTE_NETVSC_PMD=y
-
-#
-# Common libraries, before Bus/PMDs
-#
-CONFIG_RTE_LIBRTE_COMMON_DPAAX=y
-
-# NXP DPAA BUS and drivers
-CONFIG_RTE_LIBRTE_DPAA_BUS=y
-CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=y
-CONFIG_RTE_LIBRTE_DPAA_PMD=y
-CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=y
-CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=y
-CONFIG_RTE_LIBRTE_PMD_CAAM_JR=y
-
-# NXP FSLMC BUS and DPAA2 drivers
-CONFIG_RTE_LIBRTE_FSLMC_BUS=y
-CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=y
-CONFIG_RTE_LIBRTE_DPAA2_PMD=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV=y
-
-#
-# NXP ENETC PMD Driver
-#
-CONFIG_RTE_LIBRTE_ENETC_PMD=y
-
-#
-# HINIC PMD driver
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=y
-
-#
-# Hisilicon HNS3 PMD driver
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=y
diff --git a/config/defconfig_arm-armv7a-linux-gcc b/config/defconfig_arm-armv7a-linux-gcc
deleted file mode 120000
index 84619de43a..0000000000
--- a/config/defconfig_arm-armv7a-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm-armv7a-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm-armv7a-linuxapp-gcc b/config/defconfig_arm-armv7a-linuxapp-gcc
deleted file mode 100644
index ac91120868..0000000000
--- a/config/defconfig_arm-armv7a-linuxapp-gcc
+++ /dev/null
@@ -1,49 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) 2015 RehiveTech. All right reserved.
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="armv7a"
-
-CONFIG_RTE_ARCH="arm"
-CONFIG_RTE_ARCH_ARM=y
-CONFIG_RTE_ARCH_ARMv7=y
-CONFIG_RTE_ARCH_ARM_TUNE="cortex-a9"
-
-# Accelerate memcpy operations. Consider enabling for Cortex-A15.
-# For Cortex-A7 and Cortex-A9, It might accelerate short data copies (< 64 B).
-CONFIG_RTE_ARCH_ARM_NEON_MEMCPY=n
-
-CONFIG_RTE_FORCE_INTRINSICS=y
-CONFIG_RTE_ARCH_STRICT_ALIGN=y
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
-
-# NUMA is not supported on ARM
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-
-# ARM doesn't have support for vmware TSC map
-CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=n
-
-# KNI is not supported on 32-bit
-CONFIG_RTE_LIBRTE_KNI=n
-
-# cannot use those on ARM
-CONFIG_RTE_LIBRTE_ARK_PMD=n
-CONFIG_RTE_LIBRTE_EM_PMD=n
-CONFIG_RTE_LIBRTE_IGB_PMD=n
-CONFIG_RTE_LIBRTE_CXGBE_PMD=n
-CONFIG_RTE_LIBRTE_E1000_PMD=n
-CONFIG_RTE_LIBRTE_ENIC_PMD=n
-CONFIG_RTE_LIBRTE_FM10K_PMD=n
-CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
-CONFIG_RTE_LIBRTE_QEDE_PMD=n
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-CONFIG_RTE_LIBRTE_NFP_PMD=n
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
-CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n
-CONFIG_RTE_LIBRTE_IONIC_PMD=n
diff --git a/config/defconfig_arm64-armada-linux-gcc b/config/defconfig_arm64-armada-linux-gcc
deleted file mode 120000
index 64ce2a5687..0000000000
--- a/config/defconfig_arm64-armada-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-armada-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-armada-linuxapp-gcc b/config/defconfig_arm64-armada-linuxapp-gcc
deleted file mode 100644
index a49bebe374..0000000000
--- a/config/defconfig_arm64-armada-linuxapp-gcc
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-#
-# Compile Environment Abstraction Layer
-#
-CONFIG_RTE_MAX_LCORE=16
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_CACHE_LINE_SIZE=64
-
-# Enable PMDs
-CONFIG_RTE_LIBRTE_MVEP_COMMON=y
-CONFIG_RTE_LIBRTE_MVPP2_PMD=y
-CONFIG_RTE_LIBRTE_MVNETA_PMD=y
-CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO=y
-
-# Disable NXP as it is conflict with MUSDK
-CONFIG_RTE_LIBRTE_DPAA_BUS=n
-CONFIG_RTE_LIBRTE_COMMON_DPAAX=n
-CONFIG_RTE_LIBRTE_FSLMC_BUS=n
-CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=n
-CONFIG_RTE_LIBRTE_DPAA2_PMD=n
-CONFIG_RTE_LIBRTE_DPAA_BUS=n
-CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=n
-CONFIG_RTE_LIBRTE_DPAA_PMD=n
-CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=n
-CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=n
-CONFIG_RTE_LIBRTE_PMD_CAAM_JR=n
-CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=n
-CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=n
-CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV=n
-CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV=n
-CONFIG_RTE_LIBRTE_PFE_PMD=n
-CONFIG_RTE_LIBRTE_ENETC_PMD=n
-
-# Doesn't support NUMA
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
diff --git a/config/defconfig_arm64-armv8a-linux-clang b/config/defconfig_arm64-armv8a-linux-clang
deleted file mode 120000
index 196808b982..0000000000
--- a/config/defconfig_arm64-armv8a-linux-clang
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-armv8a-linuxapp-clang
\ No newline at end of file
diff --git a/config/defconfig_arm64-armv8a-linux-gcc b/config/defconfig_arm64-armv8a-linux-gcc
deleted file mode 120000
index 0949519562..0000000000
--- a/config/defconfig_arm64-armv8a-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-armv8a-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-armv8a-linuxapp-clang b/config/defconfig_arm64-armv8a-linuxapp-clang
deleted file mode 100644
index d3b4dad532..0000000000
--- a/config/defconfig_arm64-armv8a-linuxapp-clang
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-#include "common_armv8a_linux"
-
-CONFIG_RTE_TOOLCHAIN="clang"
-CONFIG_RTE_TOOLCHAIN_CLANG=y
diff --git a/config/defconfig_arm64-armv8a-linuxapp-gcc b/config/defconfig_arm64-armv8a-linuxapp-gcc
deleted file mode 100644
index 58c4a4029a..0000000000
--- a/config/defconfig_arm64-armv8a-linuxapp-gcc
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#include "common_armv8a_linux"
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
-CONFIG_RTE_MAX_LCORE=256
diff --git a/config/defconfig_arm64-bluefield-linux-gcc b/config/defconfig_arm64-bluefield-linux-gcc
deleted file mode 120000
index dad37d5e79..0000000000
--- a/config/defconfig_arm64-bluefield-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-bluefield-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-bluefield-linuxapp-gcc b/config/defconfig_arm64-bluefield-linuxapp-gcc
deleted file mode 100644
index b496538819..0000000000
--- a/config/defconfig_arm64-bluefield-linuxapp-gcc
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2019 Mellanox Technologies, Ltd
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-# Mellanox BlueField
-CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72"
-
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_CACHE_LINE_SIZE=64
-
-# UMA architecture
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-
-# PMD for ConnectX-5
-CONFIG_RTE_LIBRTE_MLX5_PMD=y
diff --git a/config/defconfig_arm64-dpaa-linux-gcc b/config/defconfig_arm64-dpaa-linux-gcc
deleted file mode 120000
index dc05caacf3..0000000000
--- a/config/defconfig_arm64-dpaa-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-dpaa-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-dpaa-linuxapp-gcc b/config/defconfig_arm64-dpaa-linuxapp-gcc
deleted file mode 100644
index 4ae4cd8502..0000000000
--- a/config/defconfig_arm64-dpaa-linuxapp-gcc
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 Freescale Semiconductor, Inc.
-# Copyright 2017-2019 NXP
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-# NXP (Freescale) - Soc Architecture for DPAA or DPAA2 support
-# DPAA - FMAN, QMAN & BMAN support (e.g. LS1043, LS1046)
-# DPAA2 - WRIOP and QBMAN (e.g. LS1088, LS2088, LX2160 etc)
-#
-CONFIG_RTE_MACHINE="dpaa"
-CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72"
-
-#
-# Compile Environment Abstraction Layer
-#
-CONFIG_RTE_MAX_LCORE=16
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_CACHE_LINE_SIZE=64
-CONFIG_RTE_PKTMBUF_HEADROOM=128
-
-# Doesn't support NUMA
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-
-# Enable PHY mode when using VM-VFIO target
-CONFIG_RTE_LIBRTE_DPAA2_USE_PHYS_IOVA=n
-
-# NXP DPAA Bus
-CONFIG_RTE_LIBRTE_DPAA_DEBUG_DRIVER=n
-CONFIG_RTE_LIBRTE_DPAA_HWDEBUG=n
diff --git a/config/defconfig_arm64-emag-linux-gcc b/config/defconfig_arm64-emag-linux-gcc
deleted file mode 120000
index 21894a31a8..0000000000
--- a/config/defconfig_arm64-emag-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-emag-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-emag-linuxapp-gcc b/config/defconfig_arm64-emag-linuxapp-gcc
deleted file mode 100644
index 1db654c899..0000000000
--- a/config/defconfig_arm64-emag-linuxapp-gcc
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Ampere Computing
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="emag"
-
-CONFIG_RTE_CACHE_LINE_SIZE=64
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_MAX_LCORE=32
diff --git a/config/defconfig_arm64-n1sdp-linux-gcc b/config/defconfig_arm64-n1sdp-linux-gcc
deleted file mode 120000
index 103bbea90f..0000000000
--- a/config/defconfig_arm64-n1sdp-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-n1sdp-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-n1sdp-linuxapp-gcc b/config/defconfig_arm64-n1sdp-linuxapp-gcc
deleted file mode 100644
index f9138093b5..0000000000
--- a/config/defconfig_arm64-n1sdp-linuxapp-gcc
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Arm Ltd.
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="n1sdp"
-CONFIG_RTE_MAX_LCORE=4
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_CACHE_LINE_SIZE=64
-
-# Doesn't support NUMA
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
diff --git a/config/defconfig_arm64-octeontx2-linux-gcc b/config/defconfig_arm64-octeontx2-linux-gcc
deleted file mode 120000
index e251505311..0000000000
--- a/config/defconfig_arm64-octeontx2-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-octeontx2-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-octeontx2-linuxapp-gcc b/config/defconfig_arm64-octeontx2-linuxapp-gcc
deleted file mode 100644
index 0d83becf54..0000000000
--- a/config/defconfig_arm64-octeontx2-linuxapp-gcc
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="octeontx2"
-
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_MAX_LCORE=36
-CONFIG_RTE_ARM_FEATURE_ATOMICS=y
-
-# Doesn't support NUMA
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-
-# Max supported NIX LFs
-CONFIG_RTE_MAX_VFIO_GROUPS=128
diff --git a/config/defconfig_arm64-stingray-linux-gcc b/config/defconfig_arm64-stingray-linux-gcc
deleted file mode 120000
index 829dd65f05..0000000000
--- a/config/defconfig_arm64-stingray-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-stingray-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-stingray-linuxapp-gcc b/config/defconfig_arm64-stingray-linuxapp-gcc
deleted file mode 100644
index 2a6f6cee28..0000000000
--- a/config/defconfig_arm64-stingray-linuxapp-gcc
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) Broadcom 2017-2018. All rights reserved.
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-# Broadcom - Stingray
-CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72"
-
-# Doesn't support NUMA
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-
-CONFIG_RTE_EAL_IGB_UIO=y
diff --git a/config/defconfig_arm64-thunderx-linux-gcc b/config/defconfig_arm64-thunderx-linux-gcc
deleted file mode 120000
index 1b9c4ad211..0000000000
--- a/config/defconfig_arm64-thunderx-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-thunderx-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-thunderx-linuxapp-gcc b/config/defconfig_arm64-thunderx-linuxapp-gcc
deleted file mode 100644
index 946906b67a..0000000000
--- a/config/defconfig_arm64-thunderx-linuxapp-gcc
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="thunderx"
-
-CONFIG_RTE_USE_C11_MEM_MODEL=n
-CONFIG_RTE_MAX_NUMA_NODES=2
-CONFIG_RTE_MAX_LCORE=96
-CONFIG_RTE_MAX_VFIO_GROUPS=128
-
-#
-# Compile PMD for octeontx sso event device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=y
diff --git a/config/defconfig_arm64-thunderx2-linux-gcc b/config/defconfig_arm64-thunderx2-linux-gcc
deleted file mode 120000
index b40a760b1d..0000000000
--- a/config/defconfig_arm64-thunderx2-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-thunderx2-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-thunderx2-linuxapp-gcc b/config/defconfig_arm64-thunderx2-linuxapp-gcc
deleted file mode 100644
index af4a89c480..0000000000
--- a/config/defconfig_arm64-thunderx2-linuxapp-gcc
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="thunderx2"
-
-CONFIG_RTE_CACHE_LINE_SIZE=64
-CONFIG_RTE_MAX_NUMA_NODES=2
-CONFIG_RTE_MAX_LCORE=256
-CONFIG_RTE_ARM_FEATURE_ATOMICS=y
diff --git a/config/defconfig_arm64-xgene1-linux-gcc b/config/defconfig_arm64-xgene1-linux-gcc
deleted file mode 120000
index d5e8b5e550..0000000000
--- a/config/defconfig_arm64-xgene1-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-xgene1-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-xgene1-linuxapp-gcc b/config/defconfig_arm64-xgene1-linuxapp-gcc
deleted file mode 100644
index fbf576c4aa..0000000000
--- a/config/defconfig_arm64-xgene1-linuxapp-gcc
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="xgene1"
-CONFIG_RTE_CACHE_LINE_SIZE=64
diff --git a/config/defconfig_i686-native-linux-gcc b/config/defconfig_i686-native-linux-gcc
deleted file mode 120000
index 927141d5dd..0000000000
--- a/config/defconfig_i686-native-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_i686-native-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_i686-native-linux-icc b/config/defconfig_i686-native-linux-icc
deleted file mode 120000
index e6a466b3e3..0000000000
--- a/config/defconfig_i686-native-linux-icc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_i686-native-linuxapp-icc
\ No newline at end of file
diff --git a/config/defconfig_i686-native-linuxapp-gcc b/config/defconfig_i686-native-linuxapp-gcc
deleted file mode 100644
index 61ea1606f4..0000000000
--- a/config/defconfig_i686-native-linuxapp-gcc
+++ /dev/null
@@ -1,66 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="i686"
-CONFIG_RTE_ARCH_I686=y
-CONFIG_RTE_ARCH_X86=y
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
-
-#
-# KNI is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_KNI=n
-
-#
-# Solarflare PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-
-#
-# AES-NI multi-buffer PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n
-
-#
-# AES-NI GCM PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=n
-
-#
-# KASUMI PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_KASUMI=n
-
-#
-# ZUC PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_ZUC=n
-
-#
-# AVP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-
-#
-# NFP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_NFP_PMD=n
-
-# 32-bit doesn't break up memory in lists, but does have VA allocation limit
-CONFIG_RTE_MAX_MEM_MB=2048
-
-#
-# HINIC PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-
-#
-# HNS3 PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
diff --git a/config/defconfig_i686-native-linuxapp-icc b/config/defconfig_i686-native-linuxapp-icc
deleted file mode 100644
index 7f614d3467..0000000000
--- a/config/defconfig_i686-native-linuxapp-icc
+++ /dev/null
@@ -1,66 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="i686"
-CONFIG_RTE_ARCH_I686=y
-CONFIG_RTE_ARCH_X86=y
-
-CONFIG_RTE_TOOLCHAIN="icc"
-CONFIG_RTE_TOOLCHAIN_ICC=y
-
-#
-# KNI is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_KNI=n
-
-#
-# Solarflare PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-
-#
-# AES-NI multi-buffer PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n
-
-#
-# AES-NI GCM PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=n
-
-#
-# KASUMI PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_KASUMI=n
-
-#
-# ZUC PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_ZUC=n
-
-#
-# AVP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-
-#
-# NFP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_NFP_PMD=n
-
-# 32-bit doesn't break up memory in lists, but does have VA allocation limit
-CONFIG_RTE_MAX_MEM_MB=2048
-
-#
-# HINIC PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-
-#
-# HNS3 PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
diff --git a/config/defconfig_ppc_64-power8-linux-gcc b/config/defconfig_ppc_64-power8-linux-gcc
deleted file mode 120000
index 580c92e12e..0000000000
--- a/config/defconfig_ppc_64-power8-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_ppc_64-power8-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_ppc_64-power8-linuxapp-gcc b/config/defconfig_ppc_64-power8-linuxapp-gcc
deleted file mode 100644
index c917c47746..0000000000
--- a/config/defconfig_ppc_64-power8-linuxapp-gcc
+++ /dev/null
@@ -1,35 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) IBM Corporation 2014.
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="power8"
-
-CONFIG_RTE_ARCH="ppc_64"
-CONFIG_RTE_ARCH_PPC_64=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_MAX_LCORE=1536
-CONFIG_RTE_MAX_NUMA_NODES=32
-CONFIG_RTE_CACHE_LINE_SIZE=128
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
-
-# Note: Power doesn't have this support
-CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=n
-
-# Note: Initially, all of the PMD drivers compilation are turned off on Power
-# Will turn on them only after the successful testing on Power
-CONFIG_RTE_LIBRTE_ATLANTIC_PMD=n
-CONFIG_RTE_LIBRTE_IXGBE_PMD=n
-CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
-CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
-CONFIG_RTE_LIBRTE_ENIC_PMD=n
-CONFIG_RTE_LIBRTE_FM10K_PMD=n
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
-CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n
-CONFIG_RTE_LIBRTE_IONIC_PMD=n
diff --git a/config/defconfig_x86_64-native-bsdapp-clang b/config/defconfig_x86_64-native-bsdapp-clang
deleted file mode 100644
index 7204738e14..0000000000
--- a/config/defconfig_x86_64-native-bsdapp-clang
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_freebsd"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_64"
-CONFIG_RTE_ARCH_X86_64=y
-CONFIG_RTE_ARCH_X86=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_TOOLCHAIN="clang"
-CONFIG_RTE_TOOLCHAIN_CLANG=y
diff --git a/config/defconfig_x86_64-native-bsdapp-gcc b/config/defconfig_x86_64-native-bsdapp-gcc
deleted file mode 100644
index b24e2e6d5a..0000000000
--- a/config/defconfig_x86_64-native-bsdapp-gcc
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_freebsd"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_64"
-CONFIG_RTE_ARCH_X86_64=y
-CONFIG_RTE_ARCH_X86=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
diff --git a/config/defconfig_x86_64-native-freebsd-clang b/config/defconfig_x86_64-native-freebsd-clang
deleted file mode 120000
index 76115fd5a6..0000000000
--- a/config/defconfig_x86_64-native-freebsd-clang
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_64-native-bsdapp-clang
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-freebsd-gcc b/config/defconfig_x86_64-native-freebsd-gcc
deleted file mode 120000
index 72dd4b44be..0000000000
--- a/config/defconfig_x86_64-native-freebsd-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_64-native-bsdapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linux-clang b/config/defconfig_x86_64-native-linux-clang
deleted file mode 120000
index 3bcf89d6a4..0000000000
--- a/config/defconfig_x86_64-native-linux-clang
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_64-native-linuxapp-clang
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linux-gcc b/config/defconfig_x86_64-native-linux-gcc
deleted file mode 120000
index d707965941..0000000000
--- a/config/defconfig_x86_64-native-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_64-native-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linux-icc b/config/defconfig_x86_64-native-linux-icc
deleted file mode 120000
index a36b47131a..0000000000
--- a/config/defconfig_x86_64-native-linux-icc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_64-native-linuxapp-icc
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linuxapp-clang b/config/defconfig_x86_64-native-linuxapp-clang
deleted file mode 100644
index 7508c0f2da..0000000000
--- a/config/defconfig_x86_64-native-linuxapp-clang
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_64"
-CONFIG_RTE_ARCH_X86_64=y
-CONFIG_RTE_ARCH_X86=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_TOOLCHAIN="clang"
-CONFIG_RTE_TOOLCHAIN_CLANG=y
diff --git a/config/defconfig_x86_64-native-linuxapp-gcc b/config/defconfig_x86_64-native-linuxapp-gcc
deleted file mode 100644
index db67066a57..0000000000
--- a/config/defconfig_x86_64-native-linuxapp-gcc
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_64"
-CONFIG_RTE_ARCH_X86_64=y
-CONFIG_RTE_ARCH_X86=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
diff --git a/config/defconfig_x86_64-native-linuxapp-icc b/config/defconfig_x86_64-native-linuxapp-icc
deleted file mode 100644
index 8aa7af7e20..0000000000
--- a/config/defconfig_x86_64-native-linuxapp-icc
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_64"
-CONFIG_RTE_ARCH_X86_64=y
-CONFIG_RTE_ARCH_X86=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_TOOLCHAIN="icc"
-CONFIG_RTE_TOOLCHAIN_ICC=y
-
-#
-# Solarflare PMD build is not supported using icc toolchain
-#
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-
-#
-# HINIC PMD build is not supported using icc toolchain
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-
-#
-# HNS3 PMD build is not supported using icc toolchain
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
diff --git a/config/defconfig_x86_x32-native-linux-gcc b/config/defconfig_x86_x32-native-linux-gcc
deleted file mode 120000
index 7ea00cecb3..0000000000
--- a/config/defconfig_x86_x32-native-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_x32-native-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_x86_x32-native-linuxapp-gcc b/config/defconfig_x86_x32-native-linuxapp-gcc
deleted file mode 100644
index c188f4331c..0000000000
--- a/config/defconfig_x86_x32-native-linuxapp-gcc
+++ /dev/null
@@ -1,46 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_x32"
-CONFIG_RTE_ARCH_X86_X32=y
-CONFIG_RTE_ARCH_X86=y
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
-
-#
-# KNI is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_KNI=n
-
-#
-# Solarflare PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-
-#
-# AVP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-
-#
-# NFP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_NFP_PMD=n
-
-# 32-bit doesn't break up memory in lists, but does have VA allocation limit
-CONFIG_RTE_MAX_MEM_MB=2048
-
-#
-# HINIC PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-
-#
-# HNS3 PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
--
2.17.1
^ permalink raw reply [relevance 1%]
* [dpdk-dev] [PATCH v2 10/37] build: remove makefiles and mk directory
@ 2020-08-20 12:41 1% ` Ciara Power
2020-08-20 12:41 1% ` [dpdk-dev] [PATCH v2 11/37] config: remove all config files used by make Ciara Power
` (2 subsequent siblings)
3 siblings, 0 replies; 200+ results
From: Ciara Power @ 2020-08-20 12:41 UTC (permalink / raw)
To: dev
Cc: Ciara Power, Thomas Monjalon, Reshma Pattan, Maryam Tahhan,
Konstantin Ananyev, Nicolas Chautru, Olivier Matz,
Declan Doherty, Jerin Jacob, Vladimir Medvedkin, Wisam Jaddo,
Cristian Dumitrescu, Wenzhuo Lu, Beilei Xing, Bernard Iremonger,
Ori Kam, Neil Horman, Hemant Agrawal, Sachin Saxena, Rosen Xu,
Stephen Hemminger, Long Li, Anoob Joseph, Jingjing Wu,
Matan Azrad, Shahaf Shuler, Viacheslav Ovsiienko, Liron Himi,
Harman Kalra, Nithin Dabilpuram, Fiona Trahe, John Griffin,
Deepak Kumar Jain, Ashish Gupta, Lee Daly, Sunila Sahu,
Pablo de Lara, Ruifeng Wang, Gagandeep Singh,
Somalapuram Amaranath, Akhil Goyal, Michael Shamis,
Nagadheeraj Rottela, Srikanth Jampala, Ankur Dwivedi, Fan Zhang,
Jay Zhou, Nipun Gupta, Mattias Rönnblom, Pavan Nikhilesh,
Liang Ma, Peter Mccarthy, Harry van Haaren, Artem V. Andreev,
Andrew Rybchenko, Gage Eads, John W. Linville, Ciara Loftus,
Qi Zhang, Shepard Siegel, Ed Czeck, John Miller, Igor Russkikh,
Pavel Belous, Steven Webster, Matt Peters, Rasesh Mody,
Shahed Shaikh, Ajit Khaparde, Somnath Kotur, Chas Williams,
Wei Hu (Xavier),
Rahul Lakkireddy, Wei Zhao, Jeff Guo, Marcin Wojtas,
Michal Krawczyk, Guy Tzalik, Evgeny Schemeilin, Igor Chauskin,
John Daley, Hyong Youb Kim, Gaetan Rivet, Xiao Wang, Ziyang Xuan,
Xiaoyun Wang, Guoyang Zhou, Min Hu (Connor),
Yisen Zhuang, Qiming Yang, Alfredo Cardigliano, Ferruh Yigit,
Shijith Thotton, Srisivasubramanian Srinivasan, Jakub Grajciar,
Zyta Szpak, K. Y. Srinivasan, Haiyang Zhang, Martin Spinler,
Heinrich Kuhn, Tetsuya Mukawa, Kiran Kumar K, Bruce Richardson,
Jasvinder Singh, Keith Wiles, Maciej Czekaj, Maxime Coquelin,
Chenbo Xia, Zhihong Wang, Yong Wang, Tianfei zhang, Xiaoyun Li,
Satha Rao, Mahipal Challa, David Hunt, Byron Marohn, Yipeng Wang,
Jiayu Hu, Sameh Gobriel, Honnappa Nagarahalli, Kevin Laatz,
Robert Sanford, Erik Gabriel Carrillo, Anatoly Burakov
A decision was made [1] to no longer support Make in DPDK, this patch
removes all Makefiles that do not make use of pkg-config, along with
the mk directory previously used by make.
[1] https://mails.dpdk.org/archives/dev/2020-April/162839.html
Signed-off-by: Ciara Power <ciara.power@intel.com>
---
GNUmakefile | 17 -
MAINTAINERS | 4 -
app/Makefile | 34 --
app/pdump/Makefile | 18 -
app/proc-info/Makefile | 14 -
app/test-acl/Makefile | 17 -
app/test-bbdev/Makefile | 30 --
app/test-cmdline/Makefile | 24 -
app/test-compress-perf/Makefile | 19 -
app/test-crypto-perf/Makefile | 28 --
app/test-eventdev/Makefile | 32 --
app/test-fib/Makefile | 18 -
app/test-flow-perf/Makefile | 26 --
app/test-pipeline/Makefile | 33 --
app/test-pmd/Makefile | 73 ---
app/test-regex/Makefile | 13 -
app/test-sad/Makefile | 17 -
app/test/Makefile | 310 -------------
buildtools/Makefile | 9 -
buildtools/pmdinfogen/Makefile | 20 -
drivers/Makefile | 34 --
drivers/baseband/Makefile | 18 -
drivers/baseband/fpga_5gnr_fec/Makefile | 28 --
drivers/baseband/fpga_lte_fec/Makefile | 25 -
drivers/baseband/null/Makefile | 21 -
drivers/baseband/turbo_sw/Makefile | 52 ---
drivers/bus/Makefile | 15 -
drivers/bus/dpaa/Makefile | 48 --
drivers/bus/fslmc/Makefile | 47 --
drivers/bus/ifpga/Makefile | 28 --
drivers/bus/pci/Makefile | 33 --
drivers/bus/pci/bsd/Makefile | 4 -
drivers/bus/pci/linux/Makefile | 6 -
drivers/bus/vdev/Makefile | 27 --
drivers/bus/vmbus/Makefile | 33 --
drivers/bus/vmbus/linux/Makefile | 3 -
drivers/common/Makefile | 39 --
drivers/common/cpt/Makefile | 24 -
drivers/common/dpaax/Makefile | 30 --
drivers/common/iavf/Makefile | 27 --
drivers/common/mlx5/Makefile | 404 ----------------
drivers/common/mvep/Makefile | 35 --
drivers/common/octeontx/Makefile | 22 -
drivers/common/octeontx2/Makefile | 39 --
drivers/common/qat/Makefile | 74 ---
drivers/compress/Makefile | 10 -
drivers/compress/isal/Makefile | 27 --
drivers/compress/octeontx/Makefile | 26 --
drivers/compress/zlib/Makefile | 25 -
drivers/crypto/Makefile | 31 --
drivers/crypto/aesni_gcm/Makefile | 43 --
drivers/crypto/aesni_mb/Makefile | 42 --
drivers/crypto/armv8/Makefile | 36 --
drivers/crypto/caam_jr/Makefile | 39 --
drivers/crypto/ccp/Makefile | 32 --
drivers/crypto/dpaa2_sec/Makefile | 45 --
drivers/crypto/dpaa_sec/Makefile | 38 --
drivers/crypto/kasumi/Makefile | 42 --
drivers/crypto/mvsam/Makefile | 40 --
drivers/crypto/nitrox/Makefile | 30 --
drivers/crypto/null/Makefile | 27 --
drivers/crypto/octeontx/Makefile | 36 --
drivers/crypto/octeontx2/Makefile | 49 --
drivers/crypto/openssl/Makefile | 26 --
drivers/crypto/scheduler/Makefile | 34 --
drivers/crypto/snow3g/Makefile | 43 --
drivers/crypto/virtio/Makefile | 33 --
drivers/crypto/zuc/Makefile | 42 --
drivers/event/Makefile | 20 -
drivers/event/dpaa/Makefile | 39 --
drivers/event/dpaa2/Makefile | 41 --
drivers/event/dsw/Makefile | 26 --
drivers/event/octeontx/Makefile | 51 ---
drivers/event/octeontx2/Makefile | 47 --
drivers/event/opdl/Makefile | 29 --
drivers/event/skeleton/Makefile | 24 -
drivers/event/sw/Makefile | 29 --
drivers/mempool/Makefile | 18 -
drivers/mempool/bucket/Makefile | 25 -
drivers/mempool/dpaa/Makefile | 30 --
drivers/mempool/dpaa2/Makefile | 31 --
drivers/mempool/octeontx/Makefile | 39 --
drivers/mempool/octeontx2/Makefile | 40 --
drivers/mempool/ring/Makefile | 19 -
drivers/mempool/stack/Makefile | 22 -
drivers/net/Makefile | 84 ----
drivers/net/af_packet/Makefile | 27 --
drivers/net/af_xdp/Makefile | 26 --
drivers/net/ark/Makefile | 39 --
drivers/net/atlantic/Makefile | 34 --
drivers/net/avp/Makefile | 29 --
drivers/net/axgbe/Makefile | 33 --
drivers/net/bnx2x/Makefile | 33 --
drivers/net/bnxt/Makefile | 63 ---
drivers/net/bnxt/hcapi/Makefile | 5 -
drivers/net/bnxt/tf_core/Makefile | 31 --
drivers/net/bnxt/tf_ulp/Makefile | 20 -
drivers/net/bonding/Makefile | 36 --
drivers/net/cxgbe/Makefile | 57 ---
drivers/net/dpaa/Makefile | 41 --
drivers/net/dpaa2/Makefile | 47 --
drivers/net/e1000/Makefile | 79 ----
drivers/net/ena/Makefile | 30 --
drivers/net/enetc/Makefile | 23 -
drivers/net/enic/Makefile | 68 ---
drivers/net/failsafe/Makefile | 43 --
drivers/net/fm10k/Makefile | 77 ----
drivers/net/hinic/Makefile | 67 ---
drivers/net/hns3/Makefile | 42 --
drivers/net/i40e/Makefile | 112 -----
drivers/net/iavf/Makefile | 54 ---
drivers/net/ice/Makefile | 96 ----
drivers/net/igc/Makefile | 40 --
drivers/net/ionic/Makefile | 31 --
drivers/net/ipn3ke/Makefile | 38 --
drivers/net/ixgbe/Makefile | 110 -----
drivers/net/kni/Makefile | 30 --
drivers/net/liquidio/Makefile | 30 --
drivers/net/memif/Makefile | 26 --
drivers/net/mlx4/Makefile | 142 ------
drivers/net/mlx5/Makefile | 82 ----
drivers/net/mvneta/Makefile | 39 --
drivers/net/mvpp2/Makefile | 42 --
drivers/net/netvsc/Makefile | 21 -
drivers/net/nfb/Makefile | 40 --
drivers/net/nfp/Makefile | 41 --
drivers/net/null/Makefile | 24 -
drivers/net/octeontx/Makefile | 53 ---
drivers/net/octeontx2/Makefile | 63 ---
drivers/net/pcap/Makefile | 32 --
drivers/net/pfe/Makefile | 31 --
drivers/net/qede/Makefile | 109 -----
drivers/net/ring/Makefile | 29 --
drivers/net/sfc/Makefile | 133 ------
drivers/net/softnic/Makefile | 54 ---
drivers/net/szedata2/Makefile | 30 --
drivers/net/tap/Makefile | 97 ----
drivers/net/thunderx/Makefile | 41 --
drivers/net/vdev_netvsc/Makefile | 30 --
drivers/net/vhost/Makefile | 31 --
drivers/net/virtio/Makefile | 82 ----
drivers/net/vmxnet3/Makefile | 53 ---
drivers/raw/Makefile | 18 -
drivers/raw/dpaa2_cmdif/Makefile | 35 --
drivers/raw/dpaa2_qdma/Makefile | 36 --
drivers/raw/ifpga/Makefile | 39 --
drivers/raw/ifpga/base/Makefile | 32 --
drivers/raw/ioat/Makefile | 28 --
drivers/raw/ntb/Makefile | 28 --
drivers/raw/octeontx2_dma/Makefile | 34 --
drivers/raw/octeontx2_ep/Makefile | 42 --
drivers/raw/skeleton/Makefile | 26 --
drivers/regex/Makefile | 8 -
drivers/regex/mlx5/Makefile | 41 --
drivers/vdpa/Makefile | 12 -
drivers/vdpa/ifc/Makefile | 33 --
drivers/vdpa/mlx5/Makefile | 58 ---
examples/Makefile | 90 ----
kernel/Makefile | 9 -
kernel/freebsd/Makefile | 9 -
kernel/freebsd/contigmem/Makefile | 24 -
kernel/freebsd/nic_uio/Makefile | 24 -
kernel/linux/Makefile | 9 -
kernel/linux/igb_uio/Makefile | 25 -
kernel/linux/kni/Makefile | 34 --
lib/Makefile | 138 ------
lib/librte_acl/Makefile | 65 ---
lib/librte_bbdev/Makefile | 25 -
lib/librte_bitratestats/Makefile | 20 -
lib/librte_bpf/Makefile | 40 --
lib/librte_cfgfile/Makefile | 26 --
lib/librte_cmdline/Makefile | 34 --
lib/librte_compressdev/Makefile | 27 --
lib/librte_cryptodev/Makefile | 30 --
lib/librte_distributor/Makefile | 28 --
lib/librte_eal/Makefile | 12 -
lib/librte_eal/freebsd/Makefile | 104 -----
lib/librte_eal/include/Makefile | 19 -
lib/librte_eal/linux/Makefile | 112 -----
lib/librte_efd/Makefile | 21 -
lib/librte_ethdev/Makefile | 46 --
lib/librte_eventdev/Makefile | 47 --
lib/librte_fib/Makefile | 22 -
lib/librte_flow_classify/Makefile | 23 -
lib/librte_graph/Makefile | 28 --
lib/librte_gro/Makefile | 23 -
lib/librte_gso/Makefile | 25 -
lib/librte_hash/Makefile | 31 --
lib/librte_ip_frag/Makefile | 27 --
lib/librte_ipsec/Makefile | 29 --
lib/librte_jobstats/Makefile | 21 -
lib/librte_kni/Makefile | 20 -
lib/librte_kvargs/Makefile | 21 -
lib/librte_latencystats/Makefile | 22 -
lib/librte_lpm/Makefile | 29 --
lib/librte_mbuf/Makefile | 26 --
lib/librte_member/Makefile | 22 -
lib/librte_mempool/Makefile | 24 -
lib/librte_meter/Makefile | 27 --
lib/librte_metrics/Makefile | 30 --
lib/librte_net/Makefile | 25 -
lib/librte_node/Makefile | 33 --
lib/librte_pci/Makefile | 19 -
lib/librte_pdump/Makefile | 20 -
lib/librte_pipeline/Makefile | 28 --
lib/librte_port/Makefile | 59 ---
lib/librte_power/Makefile | 24 -
lib/librte_rawdev/Makefile | 24 -
lib/librte_rcu/Makefile | 20 -
lib/librte_regexdev/Makefile | 32 --
lib/librte_reorder/Makefile | 21 -
lib/librte_rib/Makefile | 22 -
lib/librte_ring/Makefile | 30 --
lib/librte_sched/Makefile | 29 --
lib/librte_security/Makefile | 24 -
lib/librte_stack/Makefile | 27 --
lib/librte_table/Makefile | 59 ---
lib/librte_telemetry/Makefile | 30 --
lib/librte_timer/Makefile | 20 -
lib/librte_vhost/Makefile | 54 ---
mk/arch/arm/rte.vars.mk | 16 -
mk/arch/arm64/rte.vars.mk | 37 --
mk/arch/i686/rte.vars.mk | 36 --
mk/arch/ppc_64/rte.vars.mk | 17 -
mk/arch/x86_64/rte.vars.mk | 36 --
mk/arch/x86_x32/rte.vars.mk | 40 --
mk/exec-env/bsdapp | 1 -
mk/exec-env/freebsd/rte.app.mk | 8 -
mk/exec-env/freebsd/rte.vars.mk | 36 --
mk/exec-env/linux/rte.app.mk | 8 -
mk/exec-env/linux/rte.vars.mk | 44 --
mk/exec-env/linuxapp | 1 -
mk/internal/rte.build-post.mk | 34 --
mk/internal/rte.build-pre.mk | 7 -
mk/internal/rte.clean-post.mk | 34 --
mk/internal/rte.clean-pre.mk | 4 -
mk/internal/rte.compile-post.mk | 5 -
mk/internal/rte.compile-pre.mk | 164 -------
mk/internal/rte.extvars.mk | 55 ---
mk/internal/rte.install-post.mk | 71 ---
mk/internal/rte.install-pre.mk | 32 --
mk/machine/armv7a/rte.vars.mk | 36 --
mk/machine/armv8a/rte.vars.mk | 31 --
mk/machine/default/rte.vars.mk | 30 --
mk/machine/dpaa/rte.vars.mk | 37 --
mk/machine/emag/rte.vars.mk | 32 --
mk/machine/hsw/rte.vars.mk | 30 --
mk/machine/ivb/rte.vars.mk | 30 --
mk/machine/n1sdp/rte.vars.mk | 34 --
mk/machine/native/rte.vars.mk | 39 --
mk/machine/nhm/rte.vars.mk | 30 --
mk/machine/octeontx2/rte.vars.mk | 34 --
mk/machine/power8/rte.vars.mk | 30 --
mk/machine/silvermont/rte.vars.mk | 30 --
mk/machine/snb/rte.vars.mk | 30 --
mk/machine/thunderx/rte.vars.mk | 31 --
mk/machine/thunderx2/rte.vars.mk | 34 --
mk/machine/wsm/rte.vars.mk | 30 --
mk/machine/xgene1/rte.vars.mk | 31 --
mk/rte.app.mk | 509 ---------------------
mk/rte.bsdmodule.mk | 89 ----
mk/rte.combinedlib.mk | 30 --
mk/rte.cpuflags.mk | 124 -----
mk/rte.extapp.mk | 24 -
mk/rte.extlib.mk | 26 --
mk/rte.extobj.mk | 24 -
mk/rte.extshared.mk | 26 --
mk/rte.extsubdir.mk | 39 --
mk/rte.gnuconfigure.mk | 44 --
mk/rte.helper.mk | 10 -
mk/rte.hostapp.mk | 93 ----
mk/rte.hostlib.mk | 86 ----
mk/rte.install.mk | 28 --
mk/rte.lib.mk | 156 -------
mk/rte.module.mk | 86 ----
mk/rte.obj.mk | 82 ----
mk/rte.sdkbuild.mk | 77 ----
mk/rte.sdkconfig.mk | 142 ------
mk/rte.sdkdepdirs.mk | 9 -
mk/rte.sdkdoc.mk | 104 -----
mk/rte.sdkexamples.mk | 50 --
mk/rte.sdkgcov.mk | 39 --
mk/rte.sdkinstall.mk | 152 ------
mk/rte.sdkroot.mk | 115 -----
mk/rte.sdktest.mk | 76 ---
mk/rte.shared.mk | 108 -----
mk/rte.subdir.mk | 65 ---
mk/rte.vars.mk | 102 -----
mk/target/generic/rte.app.mk | 13 -
mk/target/generic/rte.vars.mk | 132 ------
mk/toolchain/clang/rte.toolchain-compat.mk | 22 -
mk/toolchain/clang/rte.vars.mk | 60 ---
mk/toolchain/gcc/rte.toolchain-compat.mk | 120 -----
mk/toolchain/gcc/rte.vars.mk | 109 -----
mk/toolchain/icc/rte.toolchain-compat.mk | 58 ---
mk/toolchain/icc/rte.vars.mk | 62 ---
296 files changed, 12992 deletions(-)
delete mode 100644 GNUmakefile
delete mode 100644 app/Makefile
delete mode 100644 app/pdump/Makefile
delete mode 100644 app/proc-info/Makefile
delete mode 100644 app/test-acl/Makefile
delete mode 100644 app/test-bbdev/Makefile
delete mode 100644 app/test-cmdline/Makefile
delete mode 100644 app/test-compress-perf/Makefile
delete mode 100644 app/test-crypto-perf/Makefile
delete mode 100644 app/test-eventdev/Makefile
delete mode 100644 app/test-fib/Makefile
delete mode 100644 app/test-flow-perf/Makefile
delete mode 100644 app/test-pipeline/Makefile
delete mode 100644 app/test-pmd/Makefile
delete mode 100644 app/test-regex/Makefile
delete mode 100644 app/test-sad/Makefile
delete mode 100644 app/test/Makefile
delete mode 100644 buildtools/Makefile
delete mode 100644 buildtools/pmdinfogen/Makefile
delete mode 100644 drivers/Makefile
delete mode 100644 drivers/baseband/Makefile
delete mode 100644 drivers/baseband/fpga_5gnr_fec/Makefile
delete mode 100644 drivers/baseband/fpga_lte_fec/Makefile
delete mode 100644 drivers/baseband/null/Makefile
delete mode 100644 drivers/baseband/turbo_sw/Makefile
delete mode 100644 drivers/bus/Makefile
delete mode 100644 drivers/bus/dpaa/Makefile
delete mode 100644 drivers/bus/fslmc/Makefile
delete mode 100644 drivers/bus/ifpga/Makefile
delete mode 100644 drivers/bus/pci/Makefile
delete mode 100644 drivers/bus/pci/bsd/Makefile
delete mode 100644 drivers/bus/pci/linux/Makefile
delete mode 100644 drivers/bus/vdev/Makefile
delete mode 100644 drivers/bus/vmbus/Makefile
delete mode 100644 drivers/bus/vmbus/linux/Makefile
delete mode 100644 drivers/common/Makefile
delete mode 100644 drivers/common/cpt/Makefile
delete mode 100644 drivers/common/dpaax/Makefile
delete mode 100644 drivers/common/iavf/Makefile
delete mode 100644 drivers/common/mlx5/Makefile
delete mode 100644 drivers/common/mvep/Makefile
delete mode 100644 drivers/common/octeontx/Makefile
delete mode 100644 drivers/common/octeontx2/Makefile
delete mode 100644 drivers/common/qat/Makefile
delete mode 100644 drivers/compress/Makefile
delete mode 100644 drivers/compress/isal/Makefile
delete mode 100644 drivers/compress/octeontx/Makefile
delete mode 100644 drivers/compress/zlib/Makefile
delete mode 100644 drivers/crypto/Makefile
delete mode 100644 drivers/crypto/aesni_gcm/Makefile
delete mode 100644 drivers/crypto/aesni_mb/Makefile
delete mode 100644 drivers/crypto/armv8/Makefile
delete mode 100644 drivers/crypto/caam_jr/Makefile
delete mode 100644 drivers/crypto/ccp/Makefile
delete mode 100644 drivers/crypto/dpaa2_sec/Makefile
delete mode 100644 drivers/crypto/dpaa_sec/Makefile
delete mode 100644 drivers/crypto/kasumi/Makefile
delete mode 100644 drivers/crypto/mvsam/Makefile
delete mode 100644 drivers/crypto/nitrox/Makefile
delete mode 100644 drivers/crypto/null/Makefile
delete mode 100644 drivers/crypto/octeontx/Makefile
delete mode 100644 drivers/crypto/octeontx2/Makefile
delete mode 100644 drivers/crypto/openssl/Makefile
delete mode 100644 drivers/crypto/scheduler/Makefile
delete mode 100644 drivers/crypto/snow3g/Makefile
delete mode 100644 drivers/crypto/virtio/Makefile
delete mode 100644 drivers/crypto/zuc/Makefile
delete mode 100644 drivers/event/Makefile
delete mode 100644 drivers/event/dpaa/Makefile
delete mode 100644 drivers/event/dpaa2/Makefile
delete mode 100644 drivers/event/dsw/Makefile
delete mode 100644 drivers/event/octeontx/Makefile
delete mode 100644 drivers/event/octeontx2/Makefile
delete mode 100644 drivers/event/opdl/Makefile
delete mode 100644 drivers/event/skeleton/Makefile
delete mode 100644 drivers/event/sw/Makefile
delete mode 100644 drivers/mempool/Makefile
delete mode 100644 drivers/mempool/bucket/Makefile
delete mode 100644 drivers/mempool/dpaa/Makefile
delete mode 100644 drivers/mempool/dpaa2/Makefile
delete mode 100644 drivers/mempool/octeontx/Makefile
delete mode 100644 drivers/mempool/octeontx2/Makefile
delete mode 100644 drivers/mempool/ring/Makefile
delete mode 100644 drivers/mempool/stack/Makefile
delete mode 100644 drivers/net/Makefile
delete mode 100644 drivers/net/af_packet/Makefile
delete mode 100644 drivers/net/af_xdp/Makefile
delete mode 100644 drivers/net/ark/Makefile
delete mode 100644 drivers/net/atlantic/Makefile
delete mode 100644 drivers/net/avp/Makefile
delete mode 100644 drivers/net/axgbe/Makefile
delete mode 100644 drivers/net/bnx2x/Makefile
delete mode 100644 drivers/net/bnxt/Makefile
delete mode 100644 drivers/net/bnxt/hcapi/Makefile
delete mode 100644 drivers/net/bnxt/tf_core/Makefile
delete mode 100644 drivers/net/bnxt/tf_ulp/Makefile
delete mode 100644 drivers/net/bonding/Makefile
delete mode 100644 drivers/net/cxgbe/Makefile
delete mode 100644 drivers/net/dpaa/Makefile
delete mode 100644 drivers/net/dpaa2/Makefile
delete mode 100644 drivers/net/e1000/Makefile
delete mode 100644 drivers/net/ena/Makefile
delete mode 100644 drivers/net/enetc/Makefile
delete mode 100644 drivers/net/enic/Makefile
delete mode 100644 drivers/net/failsafe/Makefile
delete mode 100644 drivers/net/fm10k/Makefile
delete mode 100644 drivers/net/hinic/Makefile
delete mode 100644 drivers/net/hns3/Makefile
delete mode 100644 drivers/net/i40e/Makefile
delete mode 100644 drivers/net/iavf/Makefile
delete mode 100644 drivers/net/ice/Makefile
delete mode 100644 drivers/net/igc/Makefile
delete mode 100644 drivers/net/ionic/Makefile
delete mode 100644 drivers/net/ipn3ke/Makefile
delete mode 100644 drivers/net/ixgbe/Makefile
delete mode 100644 drivers/net/kni/Makefile
delete mode 100644 drivers/net/liquidio/Makefile
delete mode 100644 drivers/net/memif/Makefile
delete mode 100644 drivers/net/mlx4/Makefile
delete mode 100644 drivers/net/mlx5/Makefile
delete mode 100644 drivers/net/mvneta/Makefile
delete mode 100644 drivers/net/mvpp2/Makefile
delete mode 100644 drivers/net/netvsc/Makefile
delete mode 100644 drivers/net/nfb/Makefile
delete mode 100644 drivers/net/nfp/Makefile
delete mode 100644 drivers/net/null/Makefile
delete mode 100644 drivers/net/octeontx/Makefile
delete mode 100644 drivers/net/octeontx2/Makefile
delete mode 100644 drivers/net/pcap/Makefile
delete mode 100644 drivers/net/pfe/Makefile
delete mode 100644 drivers/net/qede/Makefile
delete mode 100644 drivers/net/ring/Makefile
delete mode 100644 drivers/net/sfc/Makefile
delete mode 100644 drivers/net/softnic/Makefile
delete mode 100644 drivers/net/szedata2/Makefile
delete mode 100644 drivers/net/tap/Makefile
delete mode 100644 drivers/net/thunderx/Makefile
delete mode 100644 drivers/net/vdev_netvsc/Makefile
delete mode 100644 drivers/net/vhost/Makefile
delete mode 100644 drivers/net/virtio/Makefile
delete mode 100644 drivers/net/vmxnet3/Makefile
delete mode 100644 drivers/raw/Makefile
delete mode 100644 drivers/raw/dpaa2_cmdif/Makefile
delete mode 100644 drivers/raw/dpaa2_qdma/Makefile
delete mode 100644 drivers/raw/ifpga/Makefile
delete mode 100644 drivers/raw/ifpga/base/Makefile
delete mode 100644 drivers/raw/ioat/Makefile
delete mode 100644 drivers/raw/ntb/Makefile
delete mode 100644 drivers/raw/octeontx2_dma/Makefile
delete mode 100644 drivers/raw/octeontx2_ep/Makefile
delete mode 100644 drivers/raw/skeleton/Makefile
delete mode 100644 drivers/regex/Makefile
delete mode 100644 drivers/regex/mlx5/Makefile
delete mode 100644 drivers/vdpa/Makefile
delete mode 100644 drivers/vdpa/ifc/Makefile
delete mode 100644 drivers/vdpa/mlx5/Makefile
delete mode 100644 examples/Makefile
delete mode 100644 kernel/Makefile
delete mode 100644 kernel/freebsd/Makefile
delete mode 100644 kernel/freebsd/contigmem/Makefile
delete mode 100644 kernel/freebsd/nic_uio/Makefile
delete mode 100644 kernel/linux/Makefile
delete mode 100644 kernel/linux/igb_uio/Makefile
delete mode 100644 kernel/linux/kni/Makefile
delete mode 100644 lib/Makefile
delete mode 100644 lib/librte_acl/Makefile
delete mode 100644 lib/librte_bbdev/Makefile
delete mode 100644 lib/librte_bitratestats/Makefile
delete mode 100644 lib/librte_bpf/Makefile
delete mode 100644 lib/librte_cfgfile/Makefile
delete mode 100644 lib/librte_cmdline/Makefile
delete mode 100644 lib/librte_compressdev/Makefile
delete mode 100644 lib/librte_cryptodev/Makefile
delete mode 100644 lib/librte_distributor/Makefile
delete mode 100644 lib/librte_eal/Makefile
delete mode 100644 lib/librte_eal/freebsd/Makefile
delete mode 100644 lib/librte_eal/include/Makefile
delete mode 100644 lib/librte_eal/linux/Makefile
delete mode 100644 lib/librte_efd/Makefile
delete mode 100644 lib/librte_ethdev/Makefile
delete mode 100644 lib/librte_eventdev/Makefile
delete mode 100644 lib/librte_fib/Makefile
delete mode 100644 lib/librte_flow_classify/Makefile
delete mode 100644 lib/librte_graph/Makefile
delete mode 100644 lib/librte_gro/Makefile
delete mode 100644 lib/librte_gso/Makefile
delete mode 100644 lib/librte_hash/Makefile
delete mode 100644 lib/librte_ip_frag/Makefile
delete mode 100644 lib/librte_ipsec/Makefile
delete mode 100644 lib/librte_jobstats/Makefile
delete mode 100644 lib/librte_kni/Makefile
delete mode 100644 lib/librte_kvargs/Makefile
delete mode 100644 lib/librte_latencystats/Makefile
delete mode 100644 lib/librte_lpm/Makefile
delete mode 100644 lib/librte_mbuf/Makefile
delete mode 100644 lib/librte_member/Makefile
delete mode 100644 lib/librte_mempool/Makefile
delete mode 100644 lib/librte_meter/Makefile
delete mode 100644 lib/librte_metrics/Makefile
delete mode 100644 lib/librte_net/Makefile
delete mode 100644 lib/librte_node/Makefile
delete mode 100644 lib/librte_pci/Makefile
delete mode 100644 lib/librte_pdump/Makefile
delete mode 100644 lib/librte_pipeline/Makefile
delete mode 100644 lib/librte_port/Makefile
delete mode 100644 lib/librte_power/Makefile
delete mode 100644 lib/librte_rawdev/Makefile
delete mode 100644 lib/librte_rcu/Makefile
delete mode 100644 lib/librte_regexdev/Makefile
delete mode 100644 lib/librte_reorder/Makefile
delete mode 100644 lib/librte_rib/Makefile
delete mode 100644 lib/librte_ring/Makefile
delete mode 100644 lib/librte_sched/Makefile
delete mode 100644 lib/librte_security/Makefile
delete mode 100644 lib/librte_stack/Makefile
delete mode 100644 lib/librte_table/Makefile
delete mode 100644 lib/librte_telemetry/Makefile
delete mode 100644 lib/librte_timer/Makefile
delete mode 100644 lib/librte_vhost/Makefile
delete mode 100644 mk/arch/arm/rte.vars.mk
delete mode 100644 mk/arch/arm64/rte.vars.mk
delete mode 100644 mk/arch/i686/rte.vars.mk
delete mode 100644 mk/arch/ppc_64/rte.vars.mk
delete mode 100644 mk/arch/x86_64/rte.vars.mk
delete mode 100644 mk/arch/x86_x32/rte.vars.mk
delete mode 120000 mk/exec-env/bsdapp
delete mode 100644 mk/exec-env/freebsd/rte.app.mk
delete mode 100644 mk/exec-env/freebsd/rte.vars.mk
delete mode 100644 mk/exec-env/linux/rte.app.mk
delete mode 100644 mk/exec-env/linux/rte.vars.mk
delete mode 120000 mk/exec-env/linuxapp
delete mode 100644 mk/internal/rte.build-post.mk
delete mode 100644 mk/internal/rte.build-pre.mk
delete mode 100644 mk/internal/rte.clean-post.mk
delete mode 100644 mk/internal/rte.clean-pre.mk
delete mode 100644 mk/internal/rte.compile-post.mk
delete mode 100644 mk/internal/rte.compile-pre.mk
delete mode 100644 mk/internal/rte.extvars.mk
delete mode 100644 mk/internal/rte.install-post.mk
delete mode 100644 mk/internal/rte.install-pre.mk
delete mode 100644 mk/machine/armv7a/rte.vars.mk
delete mode 100644 mk/machine/armv8a/rte.vars.mk
delete mode 100644 mk/machine/default/rte.vars.mk
delete mode 100644 mk/machine/dpaa/rte.vars.mk
delete mode 100644 mk/machine/emag/rte.vars.mk
delete mode 100644 mk/machine/hsw/rte.vars.mk
delete mode 100644 mk/machine/ivb/rte.vars.mk
delete mode 100644 mk/machine/n1sdp/rte.vars.mk
delete mode 100644 mk/machine/native/rte.vars.mk
delete mode 100644 mk/machine/nhm/rte.vars.mk
delete mode 100644 mk/machine/octeontx2/rte.vars.mk
delete mode 100644 mk/machine/power8/rte.vars.mk
delete mode 100644 mk/machine/silvermont/rte.vars.mk
delete mode 100644 mk/machine/snb/rte.vars.mk
delete mode 100644 mk/machine/thunderx/rte.vars.mk
delete mode 100644 mk/machine/thunderx2/rte.vars.mk
delete mode 100644 mk/machine/wsm/rte.vars.mk
delete mode 100644 mk/machine/xgene1/rte.vars.mk
delete mode 100644 mk/rte.app.mk
delete mode 100644 mk/rte.bsdmodule.mk
delete mode 100644 mk/rte.combinedlib.mk
delete mode 100644 mk/rte.cpuflags.mk
delete mode 100644 mk/rte.extapp.mk
delete mode 100644 mk/rte.extlib.mk
delete mode 100644 mk/rte.extobj.mk
delete mode 100644 mk/rte.extshared.mk
delete mode 100644 mk/rte.extsubdir.mk
delete mode 100644 mk/rte.gnuconfigure.mk
delete mode 100644 mk/rte.helper.mk
delete mode 100644 mk/rte.hostapp.mk
delete mode 100644 mk/rte.hostlib.mk
delete mode 100644 mk/rte.install.mk
delete mode 100644 mk/rte.lib.mk
delete mode 100644 mk/rte.module.mk
delete mode 100644 mk/rte.obj.mk
delete mode 100644 mk/rte.sdkbuild.mk
delete mode 100644 mk/rte.sdkconfig.mk
delete mode 100644 mk/rte.sdkdepdirs.mk
delete mode 100644 mk/rte.sdkdoc.mk
delete mode 100644 mk/rte.sdkexamples.mk
delete mode 100644 mk/rte.sdkgcov.mk
delete mode 100644 mk/rte.sdkinstall.mk
delete mode 100644 mk/rte.sdkroot.mk
delete mode 100644 mk/rte.sdktest.mk
delete mode 100644 mk/rte.shared.mk
delete mode 100644 mk/rte.subdir.mk
delete mode 100644 mk/rte.vars.mk
delete mode 100644 mk/target/generic/rte.app.mk
delete mode 100644 mk/target/generic/rte.vars.mk
delete mode 100644 mk/toolchain/clang/rte.toolchain-compat.mk
delete mode 100644 mk/toolchain/clang/rte.vars.mk
delete mode 100644 mk/toolchain/gcc/rte.toolchain-compat.mk
delete mode 100644 mk/toolchain/gcc/rte.vars.mk
delete mode 100644 mk/toolchain/icc/rte.toolchain-compat.mk
delete mode 100644 mk/toolchain/icc/rte.vars.mk
diff --git a/GNUmakefile b/GNUmakefile
deleted file mode 100644
index e8de422df8..0000000000
--- a/GNUmakefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-#
-# Head Makefile for compiling rte SDK
-#
-
-RTE_SDK := $(CURDIR)
-export RTE_SDK
-
-#
-# directory list
-#
-
-ROOTDIRS-y := buildtools lib kernel drivers app
-
-include $(RTE_SDK)/mk/rte.sdkroot.mk
diff --git a/MAINTAINERS b/MAINTAINERS
index ed163f5d59..ccaecabea0 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -100,10 +100,8 @@ F: .editorconfig
Build System
------------
M: Thomas Monjalon <thomas@monjalon.net>
-F: GNUmakefile
F: Makefile
F: config/
-F: mk/
F: buildtools/auto-config-h.sh
F: buildtools/gen-build-mk.sh
F: buildtools/gen-config-h.sh
@@ -354,7 +352,6 @@ Memory pool
M: Olivier Matz <olivier.matz@6wind.com>
M: Andrew Rybchenko <arybchenko@solarflare.com>
F: lib/librte_mempool/
-F: drivers/mempool/Makefile
F: drivers/mempool/ring/
F: doc/guides/prog_guide/mempool_lib.rst
F: app/test/test_mempool*
@@ -1519,7 +1516,6 @@ Test Applications
-----------------
Unit tests framework
-F: app/test/Makefile
F: app/test/autotest*
F: app/test/commands.c
F: app/test/get-coremask.sh
diff --git a/app/Makefile b/app/Makefile
deleted file mode 100644
index 453c4fed6d..0000000000
--- a/app/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_APP_TEST) += test
-DIRS-$(CONFIG_RTE_TEST_PMD) += test-pmd
-DIRS-$(CONFIG_RTE_PROC_INFO) += proc-info
-DIRS-$(CONFIG_RTE_LIBRTE_PDUMP) += pdump
-DIRS-$(CONFIG_RTE_LIBRTE_ACL) += test-acl
-DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test-cmdline
-DIRS-$(CONFIG_RTE_LIBRTE_FIB) += test-fib
-DIRS-$(CONFIG_RTE_TEST_FLOW_PERF) += test-flow-perf
-DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += test-pipeline
-DIRS-$(CONFIG_RTE_LIBRTE_IPSEC) += test-sad
-DIRS-$(CONFIG_RTE_LIBRTE_REGEXDEV) += test-regex
-
-ifeq ($(CONFIG_RTE_LIBRTE_BBDEV),y)
-DIRS-$(CONFIG_RTE_TEST_BBDEV) += test-bbdev
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y)
-DIRS-$(CONFIG_RTE_APP_COMPRESS_PERF) += test-compress-perf
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
-DIRS-$(CONFIG_RTE_APP_CRYPTO_PERF) += test-crypto-perf
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y)
-DIRS-$(CONFIG_RTE_APP_EVENTDEV) += test-eventdev
-endif
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/app/pdump/Makefile b/app/pdump/Makefile
deleted file mode 100644
index e6b9eea91b..0000000000
--- a/app/pdump/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_PDUMP),y)
-
-APP = dpdk-pdump
-
-CFLAGS += $(WERROR_FLAGS)
-
-# all source are stored in SRCS-y
-
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/proc-info/Makefile b/app/proc-info/Makefile
deleted file mode 100644
index 214f3f54a1..0000000000
--- a/app/proc-info/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-APP = dpdk-procinfo
-
-CFLAGS += $(WERROR_FLAGS)
-
-# all source are stored in SRCS-y
-
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-acl/Makefile b/app/test-acl/Makefile
deleted file mode 100644
index 5f26294cf1..0000000000
--- a/app/test-acl/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
-
-APP = testacl
-
-CFLAGS += $(WERROR_FLAGS)
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-bbdev/Makefile b/app/test-bbdev/Makefile
deleted file mode 100644
index dc29557f37..0000000000
--- a/app/test-bbdev/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-APP = testbbdev
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-#
-# all sources are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_TEST_BBDEV) += main.c
-SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev.c
-SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev_perf.c
-SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev_vector.c
-
-LDLIBS += -lm
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC),y)
-LDLIBS += -lrte_pmd_bbdev_fpga_lte_fec
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC),y)
-LDLIBS += -lrte_pmd_bbdev_fpga_5gnr_fec
-endif
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-cmdline/Makefile b/app/test-cmdline/Makefile
deleted file mode 100644
index 3e7421906b..0000000000
--- a/app/test-cmdline/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_CMDLINE),y)
-
-#
-# library name
-#
-APP = cmdline_test
-
-#
-# all sources are stored in SRCS-y
-#
-SRCS-y += cmdline_test.c
-SRCS-y += commands.c
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-compress-perf/Makefile b/app/test-compress-perf/Makefile
deleted file mode 100644
index 2bff531836..0000000000
--- a/app/test-compress-perf/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-APP = dpdk-test-compress-perf
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-SRCS-y += comp_perf_options_parse.c
-SRCS-y += comp_perf_test_verify.c
-SRCS-y += comp_perf_test_throughput.c
-SRCS-y += comp_perf_test_cyclecount.c
-SRCS-y += comp_perf_test_common.c
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-crypto-perf/Makefile b/app/test-crypto-perf/Makefile
deleted file mode 100644
index 0dced790f0..0000000000
--- a/app/test-crypto-perf/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-
-APP = dpdk-test-crypto-perf
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-SRCS-y += cperf_ops.c
-SRCS-y += cperf_options_parsing.c
-SRCS-y += cperf_test_vectors.c
-SRCS-y += cperf_test_throughput.c
-SRCS-y += cperf_test_latency.c
-SRCS-y += cperf_test_pmd_cyclecount.c
-SRCS-y += cperf_test_verify.c
-SRCS-y += cperf_test_vector_parsing.c
-SRCS-y += cperf_test_common.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER),y)
-LDLIBS += -lrte_pmd_crypto_scheduler
-endif
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-eventdev/Makefile b/app/test-eventdev/Makefile
deleted file mode 100644
index e600e21c41..0000000000
--- a/app/test-eventdev/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-APP = dpdk-test-eventdev
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := evt_main.c
-SRCS-y += evt_options.c
-SRCS-y += evt_test.c
-SRCS-y += parser.c
-
-SRCS-y += test_order_common.c
-SRCS-y += test_order_queue.c
-SRCS-y += test_order_atq.c
-
-SRCS-y += test_perf_common.c
-SRCS-y += test_perf_queue.c
-SRCS-y += test_perf_atq.c
-
-SRCS-y += test_pipeline_common.c
-SRCS-y += test_pipeline_queue.c
-SRCS-y += test_pipeline_atq.c
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-fib/Makefile b/app/test-fib/Makefile
deleted file mode 100644
index 2ea799c0e9..0000000000
--- a/app/test-fib/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_FIB),y)
-
-APP = testfib
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-flow-perf/Makefile b/app/test-flow-perf/Makefile
deleted file mode 100644
index 4f2db75910..0000000000
--- a/app/test-flow-perf/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2020 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_TEST_FLOW_PERF),y)
-
-#
-# library name
-#
-APP = dpdk-test-flow-perf
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += actions_gen.c
-SRCS-y += flow_gen.c
-SRCS-y += items_gen.c
-SRCS-y += main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-pipeline/Makefile b/app/test-pipeline/Makefile
deleted file mode 100644
index fc3a504409..0000000000
--- a/app/test-pipeline/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_PIPELINE),y)
-
-#
-# library name
-#
-APP = testpipeline
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := main.c
-SRCS-y += config.c
-SRCS-y += init.c
-SRCS-y += runtime.c
-SRCS-y += pipeline_stub.c
-SRCS-y += pipeline_hash.c
-SRCS-y += pipeline_lpm.c
-SRCS-y += pipeline_lpm_ipv6.c
-
-# include ACL lib if available
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += pipeline_acl.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile
deleted file mode 100644
index e739797f8a..0000000000
--- a/app/test-pmd/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_TEST_PMD),y)
-
-#
-# library name
-#
-APP = testpmd
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-deprecated-declarations
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := testpmd.c
-SRCS-y += parameters.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_mtr.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_tm.c
-SRCS-y += config.c
-SRCS-y += iofwd.c
-SRCS-y += macfwd.c
-SRCS-y += macswap.c
-SRCS-y += flowgen.c
-SRCS-y += rxonly.c
-SRCS-y += txonly.c
-SRCS-y += csumonly.c
-SRCS-y += icmpecho.c
-SRCS-y += noisy_vnf.c
-SRCS-y += 5tswap.c
-SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ieee1588fwd.c
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_cmd.c
-SRCS-y += util.c
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y)
-LDLIBS += -lrte_pmd_bond
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS)$(CONFIG_RTE_LIBRTE_DPAA_PMD),yy)
-LDLIBS += -lrte_pmd_dpaa
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_mempool_dpaa
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y)
-LDLIBS += -lrte_pmd_ixgbe
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_I40E_PMD),y)
-LDLIBS += -lrte_pmd_i40e
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_BNXT_PMD),y)
-LDLIBS += -lrte_pmd_bnxt
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_SOFTNIC),y)
-LDLIBS += -lrte_pmd_softnic
-endif
-
-endif
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-regex/Makefile b/app/test-regex/Makefile
deleted file mode 100644
index bb8f150871..0000000000
--- a/app/test-regex/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2020 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-APP = dpdk-test-regex
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-sad/Makefile b/app/test-sad/Makefile
deleted file mode 100644
index 9b5a7ddc61..0000000000
--- a/app/test-sad/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_IPSEC),y)
-
-APP = testsad
-
-CFLAGS += $(WERROR_FLAGS)
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test/Makefile b/app/test/Makefile
deleted file mode 100644
index f4065271e4..0000000000
--- a/app/test/Makefile
+++ /dev/null
@@ -1,310 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_APP_TEST),y)
-
-# default rule
-all:
-
-# Define an externally linked resource. A linked resource is an arbitrary
-# file that is linked into the test binary. The application refers to this
-# resource by name. The linked generates identifiers beg_<name> and end_<name>
-# for referencing by the C code.
-#
-# Parameters: <unique name>, <file to be linked>
-define linked_resource
-SRCS-y += $(1).res.o
-$(1).res.o: $(2)
- @ echo ' MKRES $$@'
- $Q [ "$$(<D)" = . ] || ln -fs $$<
- $Q $(OBJCOPY) -I binary -B $(RTE_OBJCOPY_ARCH) -O $(RTE_OBJCOPY_TARGET) \
- --rename-section \
- .data=.rodata,alloc,load,data,contents,readonly \
- --redefine-sym _binary_$$(subst .,_,$$(<F))_start=beg_$(1) \
- --redefine-sym _binary_$$(subst .,_,$$(<F))_end=end_$(1) \
- --redefine-sym _binary_$$(subst .,_,$$(<F))_size=siz_$(1) \
- $$(<F) $$@
-endef
-
-ifeq ($(CONFIG_RTE_APP_TEST_RESOURCE_TAR),y)
-define linked_tar_resource
-$(1).tar: $(2)
- @ echo ' TAR $$@'
- $Q tar -C $$(dir $$<) -cf $$@ $$(notdir $$<)
-$(call linked_resource,$(1),$(1).tar)
-endef
-else # ! CONFIG_RTE_APP_TEST_RESOURCE_TAR
-linked_tar_resource =
-endif # CONFIG_RTE_APP_TEST_RESOURCE_TAR
-
-#
-# library name
-#
-APP = test
-
-#
-# all sources are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) := commands.c
-SRCS-y += test.c
-SRCS-y += resource.c
-SRCS-y += test_resource.c
-test_resource.res: test_resource.c
- @ cp $< $@
-$(eval $(call linked_resource,test_resource_c,test_resource.res))
-$(eval $(call linked_tar_resource,test_resource_tar,test_resource.c))
-SRCS-$(CONFIG_RTE_APP_TEST_RESOURCE_TAR) += test_cfgfile.c
-$(eval $(call linked_tar_resource,test_cfgfiles,test_cfgfiles))
-SRCS-y += test_prefetch.c
-SRCS-y += test_byteorder.c
-SRCS-y += test_per_lcore.c
-SRCS-y += test_atomic.c
-SRCS-y += test_barrier.c
-SRCS-y += test_malloc.c
-SRCS-y += test_cycles.c
-SRCS-y += test_mcslock.c
-SRCS-y += test_spinlock.c
-SRCS-y += test_ticketlock.c
-SRCS-y += test_memory.c
-SRCS-y += test_memzone.c
-SRCS-y += test_bitmap.c
-SRCS-y += test_bitops.c
-SRCS-y += test_reciprocal_division.c
-SRCS-y += test_reciprocal_division_perf.c
-SRCS-y += test_fbarray.c
-SRCS-y += test_external_mem.c
-SRCS-y += test_rand_perf.c
-
-SRCS-y += test_ring.c
-SRCS-y += test_ring_mpmc_stress.c
-SRCS-y += test_ring_hts_stress.c
-SRCS-y += test_ring_perf.c
-SRCS-y += test_ring_mt_peek_stress.c
-SRCS-y += test_ring_rts_stress.c
-SRCS-y += test_ring_st_peek_stress.c
-SRCS-y += test_ring_stress.c
-SRCS-y += test_pmd_perf.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_TABLE),y)
-SRCS-y += test_table.c
-SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += test_table_pipeline.c
-SRCS-y += test_table_tables.c
-SRCS-y += test_table_ports.c
-SRCS-y += test_table_combined.c
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += test_table_acl.c
-SRCS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += test_flow_classify.c
-endif
-
-SRCS-y += test_rwlock.c
-SRCS-y += test_lcores.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_STACK) += test_stack.c
-SRCS-$(CONFIG_RTE_LIBRTE_STACK) += test_stack_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_TIMER) += test_timer.c
-SRCS-$(CONFIG_RTE_LIBRTE_TIMER) += test_timer_perf.c
-SRCS-$(CONFIG_RTE_LIBRTE_TIMER) += test_timer_racecond.c
-SRCS-$(CONFIG_RTE_LIBRTE_TIMER) += test_timer_secondary.c
-
-SRCS-y += test_mempool.c
-SRCS-y += test_mempool_perf.c
-
-SRCS-y += test_mbuf.c
-SRCS-y += test_logs.c
-
-SRCS-y += test_memcpy.c
-SRCS-y += test_memcpy_perf.c
-
-
-SRCS-$(CONFIG_RTE_LIBRTE_MEMBER) += test_member.c
-SRCS-$(CONFIG_RTE_LIBRTE_MEMBER) += test_member_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_EFD) += test_efd.c
-SRCS-$(CONFIG_RTE_LIBRTE_EFD) += test_efd_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_thash.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash_perf.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash_functions.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash_multiwriter.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash_readwrite.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash_readwrite_lf_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_RIB) += test_rib.c
-SRCS-$(CONFIG_RTE_LIBRTE_RIB) += test_rib6.c
-SRCS-$(CONFIG_RTE_LIBRTE_FIB) += test_fib.c
-SRCS-$(CONFIG_RTE_LIBRTE_FIB) += test_fib6.c
-SRCS-$(CONFIG_RTE_LIBRTE_FIB) += test_fib_perf.c
-SRCS-$(CONFIG_RTE_LIBRTE_FIB) += test_fib6_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_LPM) += test_lpm.c
-SRCS-$(CONFIG_RTE_LIBRTE_LPM) += test_lpm_perf.c
-SRCS-$(CONFIG_RTE_LIBRTE_LPM) += test_lpm6.c
-SRCS-$(CONFIG_RTE_LIBRTE_LPM) += test_lpm6_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += test_telemetry_json.c
-
-SRCS-y += test_debug.c
-SRCS-y += test_errno.c
-SRCS-y += test_tailq.c
-SRCS-y += test_string_fns.c
-SRCS-y += test_cpuflags.c
-SRCS-y += test_mp_secondary.c
-SRCS-y += test_eal_flags.c
-SRCS-y += test_eal_fs.c
-SRCS-y += test_alarm.c
-SRCS-y += test_interrupts.c
-SRCS-y += test_version.c
-SRCS-y += test_func_reentrancy.c
-SRCS-y += test_trace.c
-SRCS-y += test_trace_register.c
-SRCS-y += test_trace_perf.c
-SRCS-y += test_service_cores.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_RING),y)
-SRCS-y += sample_packet_forward.c
-SRCS-$(CONFIG_RTE_LIBRTE_BITRATE) += test_bitratestats.c
-SRCS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS) += test_latencystats.c
-SRCS-$(CONFIG_RTE_LIBRTE_PDUMP) += test_pdump.c
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_num.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_etheraddr.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_portlist.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_ipaddr.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_cirbuf.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_string.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_lib.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_NET) += test_crc.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_SCHED),y)
-SRCS-y += test_red.c
-SRCS-y += test_sched.c
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_METER) += test_meter.c
-SRCS-$(CONFIG_RTE_LIBRTE_KNI) += test_kni.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += test_power.c test_power_cpufreq.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += test_power_kvm_vm.c
-SRCS-y += test_common.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += test_distributor.c
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += test_distributor_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_REORDER) += test_reorder.c
-
-SRCS-y += virtual_pmd.c
-SRCS-y += packet_burst_generator.c
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += test_acl.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_RING),y)
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += test_link_bonding.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += test_link_bonding_mode4.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_NULL),y)
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += test_link_bonding_rssconf.c
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_RING) += test_pmd_ring.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_RING) += test_pmd_ring_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += test_cryptodev_blockcipher.c
-SRCS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += test_cryptodev.c
-SRCS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += test_cryptodev_asym.c
-SRCS-$(CONFIG_RTE_LIBRTE_SECURITY) += test_cryptodev_security_pdcp.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_METRICS) += test_metrics.c
-
-ifeq ($(CONFIG_RTE_COMPRESSDEV_TEST),y)
-SRCS-$(CONFIG_RTE_LIBRTE_COMPRESSDEV) += test_compressdev.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y)
-SRCS-y += test_eventdev.c
-SRCS-y += test_event_ring.c
-SRCS-y += test_event_eth_rx_adapter.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_RING) += test_event_eth_tx_adapter.c
-SRCS-y += test_event_timer_adapter.c
-SRCS-y += test_event_crypto_adapter.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_GRAPH), y)
-SRCS-y += test_graph.c
-SRCS-y += test_graph_perf.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_RAWDEV),y)
-SRCS-y += test_rawdev.c
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) += test_kvargs.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += test_bpf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_RCU) += test_rcu_qsbr.c test_rcu_qsbr_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_SECURITY) += test_security.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += test_ipsec.c test_ipsec_perf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += test_ipsec_sad.c
-ifeq ($(CONFIG_RTE_LIBRTE_IPSEC),y)
-LDLIBS += -lrte_ipsec
-endif
-
-CFLAGS += -O3
-# Strict-aliasing rules are violated by uint8_t[] to context size casts.
-CFLAGS += -fno-strict-aliasing
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lm
-
-ifeq ($(CONFIG_RTE_LIBRTE_PDUMP),y)
-LDLIBS += -lpthread
-endif
-
-ifeq ($(CONFIG_RTE_COMPRESSDEV_TEST),y)
-ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y)
-LDLIBS += -lz
-endif
-endif
-
-# Disable VTA for memcpy test
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS_test_memcpy.o += -fno-var-tracking-assignments
-CFLAGS_test_memcpy_perf.o += -fno-var-tracking-assignments
-endif
-endif
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y)
-LDLIBS += -lrte_pmd_bond
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_NULL),y)
-LDLIBS += -lrte_pmd_null
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_RING),y)
-LDLIBS += -lrte_pmd_ring
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER),y)
-LDLIBS += -lrte_pmd_crypto_scheduler
-endif
-
-endif
-
-ifeq ($(CONFIG_RTE_APP_TEST_RESOURCE_TAR),y)
-LDLIBS += -larchive
-endif
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/buildtools/Makefile b/buildtools/Makefile
deleted file mode 100644
index 7f76fd7d65..0000000000
--- a/buildtools/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Neil Horman <nhorman@tuxdriver.com>
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-y += pmdinfogen
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/buildtools/pmdinfogen/Makefile b/buildtools/pmdinfogen/Makefile
deleted file mode 100644
index a97a7648fe..0000000000
--- a/buildtools/pmdinfogen/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Neil Horman <nhorman@tuxdriver.com>
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-HOSTAPP = dpdk-pmdinfogen
-
-#
-# all sources are stored in SRCS-y
-#
-SRCS-y += pmdinfogen.c
-
-HOST_CFLAGS += $(HOST_WERROR_FLAGS) -g
-HOST_CFLAGS += -I$(RTE_OUTPUT)/include
-
-include $(RTE_SDK)/mk/rte.hostapp.mk
diff --git a/drivers/Makefile b/drivers/Makefile
deleted file mode 100644
index 7f06162dc4..0000000000
--- a/drivers/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-y += common
-DIRS-y += bus
-DEPDIRS-bus := common
-DIRS-y += mempool
-DEPDIRS-mempool := common bus
-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)
-DIRS-y += common/mlx5
-DEPDIRS-common/mlx5 := bus
-endif
-DIRS-y += net
-DEPDIRS-net := common bus mempool common/mlx5
-DIRS-$(CONFIG_RTE_LIBRTE_BBDEV) += baseband
-DEPDIRS-baseband := common bus mempool
-DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += crypto
-DEPDIRS-crypto := common bus mempool
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += common/qat
-DEPDIRS-common/qat := bus mempool
-DIRS-$(CONFIG_RTE_LIBRTE_COMPRESSDEV) += compress
-DEPDIRS-compress := bus mempool
-DIRS-$(CONFIG_RTE_LIBRTE_REGEXDEV) += regex
-DEPDIRS-regex := common bus common/mlx5
-DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += vdpa
-DEPDIRS-vdpa := common bus mempool common/mlx5
-DIRS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += event
-DEPDIRS-event := common bus mempool net crypto
-DIRS-$(CONFIG_RTE_LIBRTE_RAWDEV) += raw
-DEPDIRS-raw := common bus mempool net event
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/baseband/Makefile b/drivers/baseband/Makefile
deleted file mode 100644
index dcc0969175..0000000000
--- a/drivers/baseband/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-core-libs := librte_eal librte_mbuf librte_mempool librte_ring
-core-libs += librte_bbdev librte_kvargs librte_cfgfile
-
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL) += null
-DEPDIRS-null = $(core-libs)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += turbo_sw
-DEPDIRS-turbo_sw = $(core-libs)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC) += fpga_lte_fec
-DEPDIRS-fpga_lte_fec = $(core-libs)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC) += fpga_5gnr_fec
-DEPDIRS-fpga_5gnr_fec = $(core-libs)
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/baseband/fpga_5gnr_fec/Makefile b/drivers/baseband/fpga_5gnr_fec/Makefile
deleted file mode 100644
index 7b7017c6dc..0000000000
--- a/drivers/baseband/fpga_5gnr_fec/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_bbdev_fpga_5gnr_fec.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_bbdev
-LDLIBS += -lrte_pci -lrte_bus_pci
-
-# versioning export map
-EXPORT_MAP := rte_pmd_bbdev_fpga_5gnr_fec_version.map
-
-# library version
-LIBABIVER := 1
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC) += rte_fpga_5gnr_fec.c
-
-# export include files
-SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC)-include += rte_pmd_fpga_5gnr_fec.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/baseband/fpga_lte_fec/Makefile b/drivers/baseband/fpga_lte_fec/Makefile
deleted file mode 100644
index 30caafe3db..0000000000
--- a/drivers/baseband/fpga_lte_fec/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_bbdev_fpga_lte_fec.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_bbdev
-LDLIBS += -lrte_pci -lrte_bus_pci
-
-# versioning export map
-EXPORT_MAP := rte_pmd_bbdev_fpga_lte_fec_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC) += fpga_lte_fec.c
-
-# export include files
-SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC)-include += fpga_lte_fec.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/baseband/null/Makefile b/drivers/baseband/null/Makefile
deleted file mode 100644
index 0ee500166d..0000000000
--- a/drivers/baseband/null/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-# library name
-LIB = librte_pmd_bbdev_null.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lrte_kvargs
-LDLIBS += -lrte_bbdev
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_bbdev_null_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL) += bbdev_null.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/baseband/turbo_sw/Makefile b/drivers/baseband/turbo_sw/Makefile
deleted file mode 100644
index c2a6fe0f81..0000000000
--- a/drivers/baseband/turbo_sw/Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_bbdev_turbo_sw.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lrte_kvargs
-LDLIBS += -lrte_bbdev
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_bbdev_turbo_sw_version.map
-
-# external library dependencies if available
-ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX2),y)
-ifeq ($(FLEXRAN_SDK),)
-$(error "Please define FLEXRAN_SDK environment variable")
-endif
-CFLAGS += -I$(FLEXRAN_SDK)/lib_common
-CFLAGS += -I$(FLEXRAN_SDK)/lib_turbo
-CFLAGS += -I$(FLEXRAN_SDK)/lib_crc
-CFLAGS += -I$(FLEXRAN_SDK)/lib_rate_matching
-LDLIBS += -L$(FLEXRAN_SDK)/lib_turbo -lturbo
-LDLIBS += -L$(FLEXRAN_SDK)/lib_crc -lcrc
-LDLIBS += -L$(FLEXRAN_SDK)/lib_rate_matching -lrate_matching
-LDLIBS += -L$(FLEXRAN_SDK)/lib_common -lcommon
-LDLIBS += -lstdc++ -lirc -limf -lipps -lsvml
-endif
-
-ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX512),y)
-ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX2),n)
-$(error "CONFIG_RTE_BBDEV_SDK_AVX512 requires CONFIG_RTE_BBDEV_SDK_AVX2 set")
-endif
-CFLAGS += -I$(FLEXRAN_SDK)/lib_ldpc_encoder_5gnr
-CFLAGS += -I$(FLEXRAN_SDK)/lib_ldpc_decoder_5gnr
-CFLAGS += -I$(FLEXRAN_SDK)/lib_LDPC_ratematch_5gnr
-CFLAGS += -I$(FLEXRAN_SDK)/lib_rate_dematching_5gnr
-LDLIBS += -L$(FLEXRAN_SDK)/lib_ldpc_encoder_5gnr -lldpc_encoder_5gnr
-LDLIBS += -L$(FLEXRAN_SDK)/lib_ldpc_decoder_5gnr -lldpc_decoder_5gnr
-LDLIBS += -L$(FLEXRAN_SDK)/lib_LDPC_ratematch_5gnr -lLDPC_ratematch_5gnr
-LDLIBS += -L$(FLEXRAN_SDK)/lib_rate_dematching_5gnr -lrate_dematching_5gnr
-endif
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += bbdev_turbo_software.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/Makefile b/drivers/bus/Makefile
deleted file mode 100644
index cea3b55e60..0000000000
--- a/drivers/bus/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_DPAA_BUS) += dpaa
-ifeq ($(CONFIG_RTE_EAL_VFIO),y)
-DIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += ifpga
-DIRS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += pci
-DIRS-$(CONFIG_RTE_LIBRTE_VDEV_BUS) += vdev
-DIRS-$(CONFIG_RTE_LIBRTE_VMBUS) += vmbus
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/bus/dpaa/Makefile b/drivers/bus/dpaa/Makefile
deleted file mode 100644
index ba40b21166..0000000000
--- a/drivers/bus/dpaa/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-RTE_BUS_DPAA=$(RTE_SDK)/drivers/bus/dpaa
-
-#
-# library name
-#
-LIB = librte_bus_dpaa.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -Wno-cast-qual
-CFLAGS += -I$(RTE_BUS_DPAA)/
-CFLAGS += -I$(RTE_BUS_DPAA)/include
-CFLAGS += -I$(RTE_BUS_DPAA)/base/qbman
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-
-# versioning export map
-EXPORT_MAP := rte_bus_dpaa_version.map
-
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA_BUS) += \
- dpaa_bus.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA_BUS) += \
- base/fman/fman.c \
- base/fman/fman_hw.c \
- base/fman/netcfg_layer.c \
- base/qbman/process.c \
- base/qbman/bman.c \
- base/qbman/bman_driver.c \
- base/qbman/qman.c \
- base/qbman/qman_driver.c \
- base/qbman/dpaa_alloc.c \
- base/qbman/dpaa_sys.c
-
-# Link Pthread
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/fslmc/Makefile b/drivers/bus/fslmc/Makefile
deleted file mode 100644
index b98d758ee0..0000000000
--- a/drivers/bus/fslmc/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_bus_fslmc.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev
-LDLIBS += -lrte_common_dpaax
-
-# versioning export map
-EXPORT_MAP := rte_bus_fslmc_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += \
- qbman/qbman_portal.c \
- qbman/qbman_debug.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += \
- mc/dpmng.c \
- mc/dpbp.c \
- mc/dpio.c \
- mc/mc_sys.c \
- mc/dpcon.c \
- mc/dpci.c \
- mc/dpdmai.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += portal/dpaa2_hw_dpio.c
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += portal/dpaa2_hw_dpbp.c
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += portal/dpaa2_hw_dpci.c
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc_vfio.c
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc_bus.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/ifpga/Makefile b/drivers/bus/ifpga/Makefile
deleted file mode 100644
index 1df369103c..0000000000
--- a/drivers/bus/ifpga/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_bus_ifpga.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_kvargs
-
-# versioning export map
-EXPORT_MAP := rte_bus_ifpga_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += ifpga_bus.c
-SRCS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += ifpga_common.c
-
-#
-# Export include files
-#
-SYMLINK-$(CONFIG_RTE_LIBRTE_IFPGA_BUS)-include += rte_bus_ifpga.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/pci/Makefile b/drivers/bus/pci/Makefile
deleted file mode 100644
index f4102d0a7f..0000000000
--- a/drivers/bus/pci/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 6WIND S.A.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_bus_pci.a
-EXPORT_MAP := rte_bus_pci_version.map
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += -O3 $(WERROR_FLAGS)
-
-ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),)
-SYSTEM := linux
-endif
-ifneq ($(CONFIG_RTE_EXEC_ENV_FREEBSD),)
-SYSTEM := bsd
-endif
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/pci/$(SYSTEM)
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_pci -lrte_kvargs
-
-include $(RTE_SDK)/drivers/bus/pci/$(SYSTEM)/Makefile
-SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) := $(addprefix $(SYSTEM)/,$(SRCS))
-SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += pci_params.c
-SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += pci_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += pci_common_uio.c
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_PCI_BUS)-include += rte_bus_pci.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/pci/bsd/Makefile b/drivers/bus/pci/bsd/Makefile
deleted file mode 100644
index c1b54c05ef..0000000000
--- a/drivers/bus/pci/bsd/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 6WIND S.A.
-
-SRCS += pci.c
diff --git a/drivers/bus/pci/linux/Makefile b/drivers/bus/pci/linux/Makefile
deleted file mode 100644
index 90404468b0..0000000000
--- a/drivers/bus/pci/linux/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 6WIND S.A.
-
-SRCS += pci.c
-SRCS += pci_uio.c
-SRCS += pci_vfio.c
diff --git a/drivers/bus/vdev/Makefile b/drivers/bus/vdev/Makefile
deleted file mode 100644
index 01747f03a4..0000000000
--- a/drivers/bus/vdev/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_bus_vdev.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_bus_vdev_version.map
-
-SRCS-y += vdev.c
-SRCS-y += vdev_params.c
-
-LDLIBS += -lrte_eal -lrte_kvargs
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_bus_vdev.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/vmbus/Makefile b/drivers/bus/vmbus/Makefile
deleted file mode 100644
index 335df6a0ba..0000000000
--- a/drivers/bus/vmbus/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_bus_vmbus.a
-EXPORT_MAP := rte_bus_vmbus_version.map
-
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -O3 $(WERROR_FLAGS)
-
-ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),)
-SYSTEM := linux
-endif
-ifneq ($(CONFIG_RTE_EXEC_ENV_FREEBSD),)
-$(error "VMBUS not implemented for BSD yet")
-endif
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/vmbus/$(SYSTEM)
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev
-
-include $(RTE_SDK)/drivers/bus/vmbus/$(SYSTEM)/Makefile
-SRCS-$(CONFIG_RTE_LIBRTE_VMBUS) := $(addprefix $(SYSTEM)/,$(SRCS))
-SRCS-$(CONFIG_RTE_LIBRTE_VMBUS) += vmbus_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_VMBUS) += vmbus_channel.c vmbus_bufring.c
-SRCS-$(CONFIG_RTE_LIBRTE_VMBUS) += vmbus_common_uio.c
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_VMBUS)-include += rte_bus_vmbus.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_VMBUS)-include += rte_vmbus_reg.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/vmbus/linux/Makefile b/drivers/bus/vmbus/linux/Makefile
deleted file mode 100644
index ef0d30b2d3..0000000000
--- a/drivers/bus/vmbus/linux/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-
-SRCS += vmbus_bus.c vmbus_uio.c
diff --git a/drivers/common/Makefile b/drivers/common/Makefile
deleted file mode 100644
index cfb6b4dc88..0000000000
--- a/drivers/common/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-CPT-y := $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO)
-CPT-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO)
-ifneq (,$(findstring y,$(CPT-y)))
-DIRS-y += cpt
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF)$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL),yy)
-DIRS-y += octeontx
-endif
-OCTEONTX2-y := $(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO)
-ifeq ($(findstring y,$(OCTEONTX2-y)),y)
-DIRS-y += octeontx2
-endif
-
-MVEP-y := $(CONFIG_RTE_LIBRTE_MVPP2_PMD)
-MVEP-y += $(CONFIG_RTE_LIBRTE_MVNETA_PMD)
-MVEP-y += $(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO)
-ifneq (,$(findstring y,$(MVEP-y)))
-DIRS-y += mvep
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_COMMON_DPAAX),y)
-DIRS-y += dpaax
-endif
-
-IAVF-y := $(CONFIG_RTE_LIBRTE_IAVF_PMD)
-IAVF-y += $(CONFIG_RTE_LIBRTE_ICE_PMD)
-ifneq (,$(findstring y,$(IAVF-y)))
-DIRS-y += iavf
-endif
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/common/cpt/Makefile b/drivers/common/cpt/Makefile
deleted file mode 100644
index cab9da73c8..0000000000
--- a/drivers/common/cpt/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_common_cpt.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/bus/pci
-EXPORT_MAP := rte_common_cpt_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += cpt_fpm_tables.c
-SRCS-y += cpt_pmd_ops_helper.c
-
-LDLIBS += -lrte_eal
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/dpaax/Makefile b/drivers/common/dpaax/Makefile
deleted file mode 100644
index 2f4b924fda..0000000000
--- a/drivers/common/dpaax/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_common_dpaax.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -Wno-cast-qual
-
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib
-
-# versioning export map
-EXPORT_MAP := rte_common_dpaax_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += dpaax_iova_table.c dpaa_of.c caamflib.c
-
-LDLIBS += -lrte_eal
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/iavf/Makefile b/drivers/common/iavf/Makefile
deleted file mode 100644
index f06dafd408..0000000000
--- a/drivers/common/iavf/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_common_iavf.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -Wno-cast-qual
-
-EXPORT_MAP := rte_common_iavf_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += iavf_adminq.c
-SRCS-y += iavf_common.c
-SRCS-y += iavf_impl.c
-
-LDLIBS += -lrte_eal
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/mlx5/Makefile b/drivers/common/mlx5/Makefile
deleted file mode 100644
index 4edd541042..0000000000
--- a/drivers/common/mlx5/Makefile
+++ /dev/null
@@ -1,404 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2019 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name.
-LIB = librte_common_mlx5.a
-LIB_GLUE = $(LIB_GLUE_BASE).$(LIB_GLUE_VERSION)
-LIB_GLUE_BASE = librte_pmd_mlx5_glue.so
-LIB_GLUE_VERSION = 20.02.0
-
-# Sources.
-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)
-ifneq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-SRCS-y += linux/mlx5_glue.c
-endif
-SRCS-y += mlx5_devx_cmds.c
-SRCS-y += mlx5_common.c
-SRCS-y += linux/mlx5_common_os.c
-SRCS-y += linux/mlx5_nl.c
-SRCS-y += linux/mlx5_common_verbs.c
-SRCS-y += mlx5_common_mp.c
-SRCS-y += mlx5_common_mr.c
-SRCS-y += mlx5_malloc.c
-SRCS-y += mlx5_common_pci.c
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-INSTALL-y-lib += $(LIB_GLUE)
-endif
-endif
-
-# Basic CFLAGS.
-CFLAGS += -O3
-CFLAGS += -std=c11 -Wall -Wextra
-CFLAGS += -g
-CFLAGS += -I.
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -I$(SRCDIR)/linux
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-strict-prototypes
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-CFLAGS += -DMLX5_GLUE='"$(LIB_GLUE)"'
-CFLAGS += -DMLX5_GLUE_VERSION='"$(LIB_GLUE_VERSION)"'
-CFLAGS_linux/mlx5_glue.o += -fPIC
-LDLIBS += -ldl
-else ifeq ($(CONFIG_RTE_IBVERBS_LINK_STATIC),y)
-LDLIBS += $(shell $(RTE_SDK)/buildtools/options-ibverbs-static.sh)
-else
-LDLIBS += -libverbs -lmlx5
-endif
-
-LDLIBS += -lrte_eal -lrte_pci -lrte_kvargs -lrte_net
-LDLIBS += -lrte_bus_pci
-
-# A few warnings cannot be avoided in external headers.
-CFLAGS += -Wno-error=cast-qual -UPEDANTIC
-
-EXPORT_MAP := rte_common_mlx5_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
-
-# Generate and clean-up mlx5_autoconf.h.
-
-export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS
-export AUTO_CONFIG_CFLAGS = -Wno-error
-
-ifndef V
-AUTOCONF_OUTPUT := >/dev/null
-endif
-
-mlx5_autoconf.h.new: FORCE
-
-mlx5_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh
- $Q $(RM) -f -- '$@'
- $Q sh -- '$<' '$@' \
- HAVE_IBV_RELAXED_ORDERING \
- infiniband/verbs.h \
- enum IBV_ACCESS_RELAXED_ORDERING \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT \
- infiniband/mlx5dv.h \
- enum MLX5DV_CQE_RES_FORMAT_CSUM_STRIDX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVICE_TUNNEL_SUPPORT \
- infiniband/mlx5dv.h \
- enum MLX5DV_CONTEXT_MASK_TUNNEL_OFFLOADS \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVICE_MPLS_SUPPORT \
- infiniband/verbs.h \
- enum IBV_FLOW_SPEC_MPLS \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_WQ_FLAGS_PCI_WRITE_END_PADDING \
- infiniband/verbs.h \
- enum IBV_WQ_FLAGS_PCI_WRITE_END_PADDING \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_WQ_FLAG_RX_END_PADDING \
- infiniband/verbs.h \
- enum IBV_WQ_FLAG_RX_END_PADDING \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX5_MOD_SWP \
- infiniband/mlx5dv.h \
- type 'struct mlx5dv_sw_parsing_caps' \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX5_MOD_MPW \
- infiniband/mlx5dv.h \
- enum MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX5_MOD_CQE_128B_COMP \
- infiniband/mlx5dv.h \
- enum MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX5_MOD_CQE_128B_PAD \
- infiniband/mlx5dv.h \
- enum MLX5DV_CQ_INIT_ATTR_FLAGS_CQE_PAD \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_FLOW_DV_SUPPORT \
- infiniband/mlx5dv.h \
- func mlx5dv_create_flow_action_packet_reformat \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR \
- infiniband/mlx5dv.h \
- enum MLX5DV_DR_DOMAIN_TYPE_NIC_RX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR_ESWITCH \
- infiniband/mlx5dv.h \
- enum MLX5DV_DR_DOMAIN_TYPE_FDB \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR_VLAN \
- infiniband/mlx5dv.h \
- func mlx5dv_dr_action_create_push_vlan \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR_DEVX_PORT \
- infiniband/mlx5dv.h \
- func mlx5dv_query_devx_port \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVX_OBJ \
- infiniband/mlx5dv.h \
- func mlx5dv_devx_obj_create \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_FLOW_DEVX_COUNTERS \
- infiniband/mlx5dv.h \
- enum MLX5DV_FLOW_ACTION_COUNTERS_DEVX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_DR_CREATE_ACTION_DEFAULT_MISS \
- infiniband/mlx5dv.h \
- enum MLX5DV_FLOW_ACTION_DEFAULT_MISS \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVX_ASYNC \
- infiniband/mlx5dv.h \
- func mlx5dv_devx_obj_query_async \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVX_QP \
- infiniband/mlx5dv.h \
- func mlx5dv_devx_qp_query \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DEVX_UAR_OFFSET \
- infiniband/mlx5dv.h \
- field "struct mlx5dv_devx_uar.mmap_off" \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_PP_ALLOC \
- infiniband/mlx5dv.h \
- func mlx5dv_pp_alloc \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR_ACTION_DEST_DEVX_TIR \
- infiniband/mlx5dv.h \
- func mlx5dv_dr_action_create_dest_devx_tir \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVX_EVENT \
- infiniband/mlx5dv.h \
- func mlx5dv_devx_get_event \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_DR_CREATE_ACTION_FLOW_METER \
- infiniband/mlx5dv.h \
- func mlx5dv_dr_action_create_flow_meter \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_DR_FLOW_DUMP \
- infiniband/mlx5dv.h \
- func mlx5dv_dump_dr_domain \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_MMAP_GET_NC_PAGES_CMD \
- infiniband/mlx5dv.h \
- enum MLX5_MMAP_GET_NC_PAGES_CMD \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_VAR \
- infiniband/mlx5dv.h \
- func mlx5dv_alloc_var \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR_MEM_RECLAIM \
- infiniband/mlx5dv.h \
- func mlx5dv_dr_domain_set_reclaim_device_memory \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_OPCODE_ENHANCED_MPSW \
- infiniband/mlx5dv.h \
- enum MLX5_OPCODE_ENHANCED_MPSW \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_OPCODE_SEND_EN \
- infiniband/mlx5dv.h \
- enum MLX5_OPCODE_SEND_EN \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_OPCODE_WAIT \
- infiniband/mlx5dv.h \
- enum MLX5_OPCODE_WAIT \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_ETHTOOL_LINK_MODE_25G \
- /usr/include/linux/ethtool.h \
- enum ETHTOOL_LINK_MODE_25000baseCR_Full_BIT \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_ETHTOOL_LINK_MODE_50G \
- /usr/include/linux/ethtool.h \
- enum ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_ETHTOOL_LINK_MODE_100G \
- /usr/include/linux/ethtool.h \
- enum ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVICE_COUNTERS_SET_V42 \
- infiniband/verbs.h \
- type 'struct ibv_counter_set_init_attr' \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVICE_COUNTERS_SET_V45 \
- infiniband/verbs.h \
- type 'struct ibv_counters_init_attr' \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NL_NLDEV \
- rdma/rdma_netlink.h \
- enum RDMA_NL_NLDEV \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_CMD_GET \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_CMD_GET \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_CMD_PORT_GET \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_CMD_PORT_GET \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_ATTR_DEV_INDEX \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_ATTR_DEV_INDEX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_ATTR_DEV_NAME \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_ATTR_DEV_NAME \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_ATTR_PORT_INDEX \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_ATTR_PORT_INDEX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_ATTR_NDEV_INDEX \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_ATTR_NDEV_INDEX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IFLA_NUM_VF \
- linux/if_link.h \
- enum IFLA_NUM_VF \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IFLA_EXT_MASK \
- linux/if_link.h \
- enum IFLA_EXT_MASK \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IFLA_PHYS_SWITCH_ID \
- linux/if_link.h \
- enum IFLA_PHYS_SWITCH_ID \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IFLA_PHYS_PORT_NAME \
- linux/if_link.h \
- enum IFLA_PHYS_PORT_NAME \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_DEVLINK \
- linux/devlink.h \
- define DEVLINK_GENL_NAME \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_40000baseKR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_40000baseKR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_40000baseCR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_40000baseCR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_40000baseSR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_40000baseSR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_40000baseLR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_40000baseLR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_56000baseKR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_56000baseKR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_56000baseCR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_56000baseCR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_56000baseSR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_56000baseSR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_56000baseLR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_56000baseLR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_STATIC_ASSERT \
- /usr/include/assert.h \
- define static_assert \
- $(AUTOCONF_OUTPUT)
-
-# Create mlx5_autoconf.h or update it in case it differs from the new one.
-
-mlx5_autoconf.h: mlx5_autoconf.h.new
- $Q [ -f '$@' ] && \
- cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
- mv '$<' '$@'
-
-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)
-$(SRCS-y:.c=.o): mlx5_autoconf.h
-endif
-
-# Generate dependency plug-in for rdma-core when the PMD must not be linked
-# directly, so that applications do not inherit this dependency.
-
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-
-$(LIB): $(LIB_GLUE)
-
-ifeq ($(LINK_USING_CC),1)
-GLUE_LDFLAGS := $(call linkerprefix,$(LDFLAGS))
-else
-GLUE_LDFLAGS := $(LDFLAGS)
-endif
-$(LIB_GLUE): linux/mlx5_glue.o
- $Q $(LD) $(GLUE_LDFLAGS) $(EXTRA_LDFLAGS) \
- -Wl,-h,$(LIB_GLUE) \
- -shared -o $@ $< -libverbs -lmlx5
-
-linux/mlx5_glue.o: mlx5_autoconf.h
-
-endif
-
-clean_mlx5: FORCE
- $Q rm -f -- mlx5_autoconf.h mlx5_autoconf.h.new
- $Q rm -f -- linux/mlx5_glue.o $(LIB_GLUE_BASE)*
-
-clean: clean_mlx5
diff --git a/drivers/common/mvep/Makefile b/drivers/common/mvep/Makefile
deleted file mode 100644
index f91d295e5c..0000000000
--- a/drivers/common/mvep/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),config)
-ifeq ($(LIBMUSDK_PATH),)
-$(error "Please define LIBMUSDK_PATH environment variable")
-endif
-endif
-endif
-
-# library name
-LIB = librte_common_mvep.a
-
-# versioning export map
-EXPORT_MAP := rte_common_mvep_version.map
-
-# external library dependencies
-CFLAGS += -I$($RTE_SDK)/drivers/common/mvep
-CFLAGS += -I$(LIBMUSDK_PATH)/include
-CFLAGS += -DMVCONF_TYPES_PUBLIC
-CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_PUBLIC
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-LDLIBS += -L$(LIBMUSDK_PATH)/lib
-LDLIBS += -lmusdk
-LDLIBS += -lrte_eal -lrte_kvargs
-
-# library source files
-SRCS-y += mvep_common.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/octeontx/Makefile b/drivers/common/octeontx/Makefile
deleted file mode 100644
index 5e67df0583..0000000000
--- a/drivers/common/octeontx/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_common_octeontx.a
-
-CFLAGS += $(WERROR_FLAGS)
-EXPORT_MAP := rte_common_octeontx_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += octeontx_mbox.c
-
-LDLIBS += -lrte_eal
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/octeontx2/Makefile b/drivers/common/octeontx2/Makefile
deleted file mode 100644
index 260da8dd3e..0000000000
--- a/drivers/common/octeontx2/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_common_octeontx2.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/bus/pci
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_common_octeontx2_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += otx2_dev.c
-SRCS-y += otx2_irq.c
-SRCS-y += otx2_mbox.c
-SRCS-y += otx2_common.c
-SRCS-y += otx2_sec_idev.c
-
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_ethdev -lrte_kvargs
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/qat/Makefile b/drivers/common/qat/Makefile
deleted file mode 100644
index 85d4207099..0000000000
--- a/drivers/common/qat/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015-2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# build directories
-QAT_CRYPTO_DIR := $(RTE_SDK)/drivers/crypto/qat
-QAT_COMPRESS_DIR := $(RTE_SDK)/drivers/compress/qat
-VPATH=$(QAT_CRYPTO_DIR):$(QAT_COMPRESS_DIR)
-
-# external library include paths
-CFLAGS += -I$(SRCDIR)/qat_adf
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -I$(QAT_CRYPTO_DIR)
-CFLAGS += -I$(QAT_COMPRESS_DIR)
-
-
-ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y)
- LDLIBS += -lrte_compressdev
- SRCS-y += qat_comp.c
- SRCS-y += qat_comp_pmd.c
- build_qat = yes
-endif
-
-# library symmetric crypto source files
-ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT_ASYM),y)
- LDLIBS += -lrte_cryptodev
- LDLIBS += -lcrypto
- CFLAGS += -DBUILD_QAT_ASYM
- SRCS-y += qat_asym.c
- SRCS-y += qat_asym_pmd.c
- build_qat = yes
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT_SYM),y)
- LDLIBS += -lrte_cryptodev
- LDLIBS += -lcrypto
-ifeq ($(CONFIG_RTE_LIBRTE_SECURITY),y)
- LDLIBS += -lrte_net
-endif
- CFLAGS += -DBUILD_QAT_SYM
- SRCS-y += qat_sym.c
- SRCS-y += qat_sym_session.c
- SRCS-y += qat_sym_pmd.c
- build_qat = yes
-endif
-endif
-
-ifdef build_qat
-
- # library name
- LIB = librte_pmd_qat.a
-
- # build flags
- CFLAGS += $(WERROR_FLAGS)
- CFLAGS += -O3
-
- # library common source files
- SRCS-y += qat_device.c
- SRCS-y += qat_common.c
- SRCS-y += qat_logs.c
- SRCS-y += qat_qp.c
-
- LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
- LDLIBS += -lrte_pci -lrte_bus_pci
-
- # export include files
- SYMLINK-y-include +=
-
- # versioning export map
- EXPORT_MAP := ../../compress/qat/rte_pmd_qat_version.map
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/compress/Makefile b/drivers/compress/Makefile
deleted file mode 100644
index 286ea6ee84..0000000000
--- a/drivers/compress/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += isal
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF) += octeontx
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += zlib
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/compress/isal/Makefile b/drivers/compress/isal/Makefile
deleted file mode 100644
index 1e225ab434..0000000000
--- a/drivers/compress/isal/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_isal_comp.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# external library dependencies
-LDLIBS += -lisal
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_compressdev
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_isal_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += isal_compress_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += isal_compress_pmd_ops.c
-
-# export include files
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/compress/octeontx/Makefile b/drivers/compress/octeontx/Makefile
deleted file mode 100644
index 9ba1db791e..0000000000
--- a/drivers/compress/octeontx/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium, Inc
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_octeontx_zip.a
-
-# build flags
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-CFLAGS += -I$(RTE_SDK)/drivers/compress/octeontx/include
-
-# external library include paths
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_compressdev
-LDLIBS += -lrte_pci -lrte_bus_pci
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF) += otx_zip_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF) += otx_zip.c
-
-# versioning export map
-EXPORT_MAP := rte_pmd_octeontx_compress_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/compress/zlib/Makefile b/drivers/compress/zlib/Makefile
deleted file mode 100644
index 9f695f7d9a..0000000000
--- a/drivers/compress/zlib/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium Networks
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_zlib.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_zlib_version.map
-
-# external library dependencies
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lz
-LDLIBS += -lrte_compressdev
-LDLIBS += -lrte_bus_vdev
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += zlib_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += zlib_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
deleted file mode 100644
index 47a2a9e794..0000000000
--- a/drivers/crypto/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += aesni_gcm
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += aesni_mb
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) += armv8
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += octeontx
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += octeontx2
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) += openssl
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += snow3g
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += kasumi
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += zuc
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO) += mvsam
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += null
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += dpaa2_sec
-endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC) += dpaa_sec
-endif # CONFIG_RTE_LIBRTE_PMD_DPAA_SEC
-ifeq ($(CONFIG_RTE_LIBRTE_SECURITY),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += caam_jr
-endif # CONFIG_RTE_LIBRTE_SECURITY
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += virtio
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/crypto/aesni_gcm/Makefile b/drivers/crypto/aesni_gcm/Makefile
deleted file mode 100644
index 01cb4fddfe..0000000000
--- a/drivers/crypto/aesni_gcm/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_aesni_gcm.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_aesni_gcm_version.map
-
-# external library dependencies
-LDLIBS += -lIPSec_MB
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-H := \#
-IMB_HDR = $(shell echo '$Hinclude <intel-ipsec-mb.h>' | \
- $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \
- head -n1 | cut -d'"' -f2)
-
-# Detect library version
-IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
-IMB_VERSION_NUM = $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | cut -d' ' -f3)
-
-ifeq ($(IMB_VERSION),)
-$(error "IPSec_MB version >= 0.52 is required")
-endif
-
-ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3400), 1)
-$(error "IPSec_MB version >= 0.52 is required")
-endif
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += aesni_gcm_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += aesni_gcm_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/aesni_mb/Makefile b/drivers/crypto/aesni_mb/Makefile
deleted file mode 100644
index f0dc82f395..0000000000
--- a/drivers/crypto/aesni_mb/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015-2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_aesni_mb.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_aesni_mb_version.map
-
-# external library dependencies
-LDLIBS += -lIPSec_MB
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-H := \#
-IMB_HDR = $(shell echo '$Hinclude <intel-ipsec-mb.h>' | \
- $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \
- head -n1 | cut -d'"' -f2)
-
-# Detect library version
-IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
-IMB_VERSION_NUM = $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | cut -d' ' -f3)
-
-ifeq ($(IMB_VERSION),)
-$(error "IPSec_MB version >= 0.52 is required")
-endif
-
-ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3400), 1)
-$(error "IPSec_MB version >= 0.52 is required")
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += rte_aesni_mb_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += rte_aesni_mb_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/armv8/Makefile b/drivers/crypto/armv8/Makefile
deleted file mode 100644
index 0e3bc9fb70..0000000000
--- a/drivers/crypto/armv8/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),config)
-ifeq ($(ARMV8_CRYPTO_LIB_PATH),)
-$(error "Please define ARMV8_CRYPTO_LIB_PATH environment variable")
-endif
-endif
-endif
-
-# library name
-LIB = librte_pmd_armv8.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_armv8_version.map
-
-# external library dependencies
-CFLAGS += -I$(ARMV8_CRYPTO_LIB_PATH)
-LDLIBS += -L$(ARMV8_CRYPTO_LIB_PATH) -lAArch64crypto
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) += rte_armv8_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) += rte_armv8_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/caam_jr/Makefile b/drivers/crypto/caam_jr/Makefile
deleted file mode 100644
index 89d3238172..0000000000
--- a/drivers/crypto/caam_jr/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_caam_jr.a
-
-# build flags
-CFLAGS += -D _GNU_SOURCE
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib/
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/caam_jr
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-
-# versioning export map
-EXPORT_MAP := rte_pmd_caam_jr_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += caam_jr.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += caam_jr_capabilities.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += caam_jr_hw.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += caam_jr_uio.c
-# library dependencies
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/ccp/Makefile b/drivers/crypto/ccp/Makefile
deleted file mode 100644
index 3f5da2adf3..0000000000
--- a/drivers/crypto/ccp/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Advanced Micro Devices, Inc. All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_ccp.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += -I$(SRCDIR)
-CFLAGS += $(WERROR_FLAGS)
-
-# external library include paths
-LDLIBS += -lcrypto
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_kvargs
-
-# versioning export map
-EXPORT_MAP := rte_pmd_ccp_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += rte_ccp_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp_crypto.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp_pci.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/dpaa2_sec/Makefile b/drivers/crypto/dpaa2_sec/Makefile
deleted file mode 100644
index a0a2795575..0000000000
--- a/drivers/crypto/dpaa2_sec/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
-# Copyright 2016 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-#
-# library name
-#
-LIB = librte_pmd_dpaa2_sec.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-ifeq ($(shell test $(GCC_VERSION) -gt 70 && echo 1), 1)
-CFLAGS += -Wno-implicit-fallthrough
-endif
-endif
-
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa2_sec/
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa2_sec/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/portal
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa2/
-
-# versioning export map
-EXPORT_MAP := rte_pmd_dpaa2_sec_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += dpaa2_sec_dpseci.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += mc/dpseci.c
-
-LDLIBS += -lrte_bus_fslmc
-LDLIBS += -lrte_mempool_dpaa2
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/dpaa_sec/Makefile b/drivers/crypto/dpaa_sec/Makefile
deleted file mode 100644
index ea266962a3..0000000000
--- a/drivers/crypto/dpaa_sec/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_dpaa_sec.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/base/qbman
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa_sec/
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib/
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_dpaa_sec_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC) += dpaa_sec.c
-
-# library dependencies
-
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_mempool_dpaa
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/kasumi/Makefile b/drivers/crypto/kasumi/Makefile
deleted file mode 100644
index a7d0d079d2..0000000000
--- a/drivers/crypto/kasumi/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_kasumi.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_kasumi_version.map
-
-# external library dependencies
-LDLIBS += -lIPSec_MB
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-H := \#
-IMB_HDR = $(shell echo '$Hinclude <intel-ipsec-mb.h>' | \
- $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \
- head -n1 | cut -d'"' -f2)
-
-# Detect library version
-IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
-IMB_VERSION_NUM = $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | cut -d' ' -f3)
-
-ifeq ($(IMB_VERSION),)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-
-ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3400), 1)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += rte_kasumi_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += rte_kasumi_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/mvsam/Makefile b/drivers/crypto/mvsam/Makefile
deleted file mode 100644
index f0641ae7d9..0000000000
--- a/drivers/crypto/mvsam/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Marvell International Ltd.
-# Copyright(c) 2017 Semihalf.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),config)
-ifeq ($(LIBMUSDK_PATH),)
-$(error "Please define LIBMUSDK_PATH environment variable")
-endif
-endif
-endif
-
-# library name
-LIB = librte_pmd_mvsam_crypto.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/mvep
-CFLAGS += -I$(LIBMUSDK_PATH)/include
-CFLAGS += -DMVCONF_TYPES_PUBLIC
-CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_PUBLIC
-
-# versioning export map
-EXPORT_MAP := rte_pmd_mvsam_version.map
-
-# external library dependencies
-LDLIBS += -L$(LIBMUSDK_PATH)/lib -lmusdk
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_kvargs
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev -lrte_common_mvep
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO) += rte_mrvl_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO) += rte_mrvl_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/nitrox/Makefile b/drivers/crypto/nitrox/Makefile
deleted file mode 100644
index 535121196b..0000000000
--- a/drivers/crypto/nitrox/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_nitrox.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_nitrox_version.map
-
-# external library dependencies
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_cryptodev
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_device.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_hal.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_logs.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_sym.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_sym_capabilities.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_sym_reqmgr.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_qp.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/null/Makefile b/drivers/crypto/null/Makefile
deleted file mode 100644
index 4595055f01..0000000000
--- a/drivers/crypto/null/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-
-# library name
-LIB = librte_pmd_null_crypto.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_null_crypto_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += null_crypto_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += null_crypto_pmd_ops.c
-
-# export include files
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/octeontx/Makefile b/drivers/crypto/octeontx/Makefile
deleted file mode 100644
index 296755ee90..0000000000
--- a/drivers/crypto/octeontx/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_octeontx_crypto.a
-
-# build flags
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_common_cpt
-
-VPATH += $(RTE_SDK)/drivers/crypto/octeontx
-
-CFLAGS += -O3
-CFLAGS += -I$(RTE_SDK)/drivers/common/cpt
-
-# PMD code
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_capabilities.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_hw_access.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_mbox.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_ops.c
-
-# export include files
-SYMLINK-y-include +=
-
-# versioning export map
-EXPORT_MAP := rte_pmd_octeontx_crypto_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/octeontx2/Makefile b/drivers/crypto/octeontx2/Makefile
deleted file mode 100644
index 14152c6117..0000000000
--- a/drivers/crypto/octeontx2/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_octeontx2_crypto.a
-
-# build flags
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lrte_eal -lrte_ethdev -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev -lrte_security
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_common_cpt -lrte_common_octeontx2
-
-VPATH += $(RTE_SDK)/drivers/crypto/octeontx2
-
-CFLAGS += -O3
-CFLAGS += -I$(RTE_SDK)/drivers/common/cpt
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx2
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-# PMD code
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev_capabilities.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev_hw_access.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev_mbox.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev_sec.c
-
-# export include files
-SYMLINK-y-include +=
-
-# versioning export map
-EXPORT_MAP := rte_pmd_octeontx2_crypto_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/openssl/Makefile b/drivers/crypto/openssl/Makefile
deleted file mode 100644
index b85c816551..0000000000
--- a/drivers/crypto/openssl/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_openssl.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_openssl_version.map
-
-# external library dependencies
-LDLIBS += -lcrypto
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) += rte_openssl_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) += rte_openssl_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/scheduler/Makefile b/drivers/crypto/scheduler/Makefile
deleted file mode 100644
index 67aac024c4..0000000000
--- a/drivers/crypto/scheduler/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_crypto_scheduler.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev -lrte_kvargs -lrte_reorder
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_crypto_scheduler_version.map
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_cryptodev_scheduler_operations.h
-SYMLINK-y-include += rte_cryptodev_scheduler.h
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_pmd_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += rte_cryptodev_scheduler.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_roundrobin.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_pkt_size_distr.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_failover.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_multicore.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/snow3g/Makefile b/drivers/crypto/snow3g/Makefile
deleted file mode 100644
index 469aefaa56..0000000000
--- a/drivers/crypto/snow3g/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_snow3g.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_snow3g_version.map
-
-# external library dependencies
-LDLIBS += -lIPSec_MB
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-H := \#
-IMB_HDR = $(shell echo '$Hinclude <intel-ipsec-mb.h>' | \
- $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \
- head -n1 | cut -d'"' -f2)
-
-# Detect library version
-IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
-IMB_VERSION_NUM = $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | cut -d' ' -f3)
-
-ifeq ($(IMB_VERSION),)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-
-ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3400), 1)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += rte_snow3g_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += rte_snow3g_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/virtio/Makefile b/drivers/crypto/virtio/Makefile
deleted file mode 100644
index 32e2e4d5e9..0000000000
--- a/drivers/crypto/virtio/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 HUAWEI TECHNOLOGIES CO., LTD.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_virtio_crypto.a
-
-#
-# include virtio_crypto.h
-#
-CFLAGS += -I$(RTE_SDK)/lib/librte_vhost
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_virtio_crypto_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += virtqueue.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += virtio_pci.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += virtio_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += virtio_cryptodev.c
-
-# this lib depends upon:
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_pci -lrte_bus_pci
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/zuc/Makefile b/drivers/crypto/zuc/Makefile
deleted file mode 100644
index 529b47f25e..0000000000
--- a/drivers/crypto/zuc/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_zuc.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_zuc_version.map
-
-# external library dependencies
-LDLIBS += -lIPSec_MB
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-H := \#
-IMB_HDR = $(shell echo '$Hinclude <intel-ipsec-mb.h>' | \
- $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \
- head -n1 | cut -d'"' -f2)
-
-# Detect library version
-IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
-IMB_VERSION_NUM = $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | cut -d' ' -f3)
-
-ifeq ($(IMB_VERSION),)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-
-ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3400), 1)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += rte_zuc_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += rte_zuc_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/Makefile b/drivers/event/Makefile
deleted file mode 100644
index 86be41b9eb..0000000000
--- a/drivers/event/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += skeleton
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += dsw
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += octeontx
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += octeontx2
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += dpaa
-endif
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/event/dpaa/Makefile b/drivers/event/dpaa/Makefile
deleted file mode 100644
index a39dc27c62..0000000000
--- a/drivers/event/dpaa/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-RTE_SDK_DPAA=$(RTE_SDK)/drivers/net/dpaa
-
-#
-# library name
-#
-LIB = librte_pmd_dpaa_event.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -I$(RTE_SDK_DPAA)/
-CFLAGS += -I$(RTE_SDK_DPAA)/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include/
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-
-LDLIBS += -lrte_pmd_dpaa_sec
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa_sec
-
-EXPORT_MAP := rte_pmd_dpaa_event_version.map
-
-# Interfaces with DPDK
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += dpaa_eventdev.c
-
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_mempool_dpaa
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_eventdev -lrte_pmd_dpaa -lrte_bus_vdev
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/dpaa2/Makefile b/drivers/event/dpaa2/Makefile
deleted file mode 100644
index 75cf197c5c..0000000000
--- a/drivers/event/dpaa2/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017,2019 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_dpaa2_event.a
-
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/portal
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa2
-CFLAGS += -I$(RTE_SDK)/drivers/event/dpaa2
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-LDLIBS += -lrte_eal -lrte_eventdev
-LDLIBS += -lrte_common_dpaax
-LDLIBS += -lrte_bus_fslmc -lrte_mempool_dpaa2 -lrte_pmd_dpaa2
-LDLIBS += -lrte_bus_vdev -lrte_mempool -lrte_mbuf -lrte_ethdev
-CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2
-CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2/mc
-
-LDLIBS += -lrte_pmd_dpaa2_sec
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa2_sec
-
-# versioning export map
-EXPORT_MAP := rte_pmd_dpaa2_event_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2_hw_dpcon.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2_eventdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2_eventdev_selftest.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/dsw/Makefile b/drivers/event/dsw/Makefile
deleted file mode 100644
index f6e7dda1fd..0000000000
--- a/drivers/event/dsw/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Ericsson AB
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_pmd_dsw_event.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -Wno-format-nonliteral
-endif
-
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_mbuf
-LDLIBS += -lrte_mempool
-LDLIBS += -lrte_ring
-LDLIBS += -lrte_eventdev
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_dsw_event_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += \
- dsw_evdev.c dsw_event.c dsw_xstats.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/octeontx/Makefile b/drivers/event/octeontx/Makefile
deleted file mode 100644
index c1233e098d..0000000000
--- a/drivers/event/octeontx/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_octeontx_ssovf.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx/
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx/
-CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx/
-
-LDLIBS += -lrte_eal -lrte_eventdev -lrte_common_octeontx -lrte_pmd_octeontx
-LDLIBS += -lrte_bus_pci -lrte_mempool -lrte_mbuf -lrte_kvargs
-LDLIBS += -lrte_bus_vdev -lrte_ethdev
-
-EXPORT_MAP := rte_pmd_octeontx_event_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_worker.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_evdev_selftest.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_probe.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += timvf_worker.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += timvf_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += timvf_probe.c
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_ssovf_worker.o += -fno-prefetch-loop-arrays
-CFLAGS_timvf_worker.o += -fno-prefetch-loop-arrays
-
-ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
-CFLAGS_ssovf_worker.o += -Ofast
-CFLAGS_timvf_worker.o += -Ofast
-else
-CFLAGS_ssovf_worker.o += -O3 -ffast-math
-CFLAGS_timvf_worker.o += -O3 -ffast-math
-endif
-
-else
-CFLAGS_ssovf_worker.o += -Ofast
-CFLAGS_timvf_worker.o += -Ofast
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/octeontx2/Makefile b/drivers/event/octeontx2/Makefile
deleted file mode 100644
index 9d67b00c69..0000000000
--- a/drivers/event/octeontx2/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_octeontx2_event.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/event/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx2
-CFLAGS += -O3
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_pmd_octeontx2_event_version.map
-
-#
-# all source are stored in SRCS-y
-#
-
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_worker_dual.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_worker.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_tim_worker.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_evdev_adptr.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_tim_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_evdev_selftest.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_evdev_irq.c
-
-LDLIBS += -lrte_eal -lrte_bus_pci -lrte_pci -lrte_kvargs
-LDLIBS += -lrte_mempool -lrte_eventdev -lrte_mbuf -lrte_ethdev
-LDLIBS += -lrte_common_octeontx2 -lrte_mempool_octeontx2
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/opdl/Makefile b/drivers/event/opdl/Makefile
deleted file mode 100644
index 71713b00ae..0000000000
--- a/drivers/event/opdl/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_opdl_event.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lrte_eal -lrte_eventdev -lrte_kvargs
-LDLIBS += -lrte_bus_vdev -lrte_mbuf -lrte_mempool
-
-# versioning export map
-EXPORT_MAP := rte_pmd_opdl_event_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_ring.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_evdev_init.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_evdev_xstats.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_test.c
-
-# export include files
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/skeleton/Makefile b/drivers/event/skeleton/Makefile
deleted file mode 100644
index dc85ad3c4b..0000000000
--- a/drivers/event/skeleton/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_skeleton_event.a
-
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_eventdev
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_skeleton_event_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += skeleton_eventdev.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/sw/Makefile b/drivers/event/sw/Makefile
deleted file mode 100644
index 8ea5cceb8b..0000000000
--- a/drivers/event/sw/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_sw_event.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_eventdev -lrte_kvargs -lrte_ring
-LDLIBS += -lrte_mempool -lrte_mbuf
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_sw_event_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw_evdev_worker.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw_evdev_scheduler.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw_evdev_xstats.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw_evdev_selftest.c
-
-# export include files
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/Makefile b/drivers/mempool/Makefile
deleted file mode 100644
index 29ef73bf44..0000000000
--- a/drivers/mempool/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_DRIVER_MEMPOOL_BUCKET) += bucket
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-DIRS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL) += dpaa
-endif
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL) += dpaa2
-endif
-DIRS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += ring
-DIRS-$(CONFIG_RTE_DRIVER_MEMPOOL_STACK) += stack
-DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += octeontx
-DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL) += octeontx2
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/mempool/bucket/Makefile b/drivers/mempool/bucket/Makefile
deleted file mode 100644
index c766c35b2c..0000000000
--- a/drivers/mempool/bucket/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-#
-# Copyright (c) 2017-2018 Solarflare Communications Inc.
-# All rights reserved.
-#
-# This software was jointly developed between OKTET Labs (under contract
-# for Solarflare) and Solarflare Communications, Inc.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_bucket.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring
-
-EXPORT_MAP := rte_mempool_bucket_version.map
-
-SRCS-$(CONFIG_RTE_DRIVER_MEMPOOL_BUCKET) += rte_mempool_bucket.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/dpaa/Makefile b/drivers/mempool/dpaa/Makefile
deleted file mode 100644
index 144969c627..0000000000
--- a/drivers/mempool/dpaa/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_dpaa.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include/
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa
-CFLAGS += -I$(RTE_SDK)/lib/librte_mempool
-
-# versioning export map
-EXPORT_MAP := rte_mempool_dpaa_version.map
-
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL) += dpaa_mempool.c
-
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/dpaa2/Makefile b/drivers/mempool/dpaa2/Makefile
deleted file mode 100644
index 04db6d27de..0000000000
--- a/drivers/mempool/dpaa2/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_dpaa2.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-
-# versioning export map
-EXPORT_MAP := rte_mempool_dpaa2_version.map
-
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL) += dpaa2_hw_mempool.c
-
-LDLIBS += -lrte_bus_fslmc
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring
-LDLIBS += -lrte_common_dpaax
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL)-include := rte_dpaa2_mempool.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/octeontx/Makefile b/drivers/mempool/octeontx/Makefile
deleted file mode 100644
index 9c840620d9..0000000000
--- a/drivers/mempool/octeontx/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_octeontx.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx/
-
-EXPORT_MAP := rte_mempool_octeontx_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += octeontx_fpavf.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += rte_mempool_octeontx.c
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_rte_mempool_octeontx.o += -fno-prefetch-loop-arrays
-
-ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
-CFLAGS_rte_mempool_octeontx.o += -Ofast
-else
-CFLAGS_rte_mempool_octeontx.o += -O3 -ffast-math
-endif
-
-else
-CFLAGS_rte_mempool_octeontx.o += -Ofast
-endif
-
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring -lrte_mbuf
-LDLIBS += -lrte_bus_pci -lrte_common_octeontx
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/octeontx2/Makefile b/drivers/mempool/octeontx2/Makefile
deleted file mode 100644
index 3828219b11..0000000000
--- a/drivers/mempool/octeontx2/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_octeontx2.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/bus/pci
-CFLAGS += -O3
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_mempool_octeontx2_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL) += \
- otx2_mempool_ops.c \
- otx2_mempool.c \
- otx2_mempool_irq.c \
- otx2_mempool_debug.c
-
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf
-LDLIBS += -lrte_common_octeontx2 -lrte_kvargs -lrte_bus_pci
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/ring/Makefile b/drivers/mempool/ring/Makefile
deleted file mode 100644
index 8624502da9..0000000000
--- a/drivers/mempool/ring/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_ring.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring
-
-EXPORT_MAP := rte_mempool_ring_version.map
-
-SRCS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += rte_mempool_ring.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/stack/Makefile b/drivers/mempool/stack/Makefile
deleted file mode 100644
index ccfd970400..0000000000
--- a/drivers/mempool/stack/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_stack.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# Headers
-CFLAGS += -I$(RTE_SDK)/lib/librte_mempool
-LDLIBS += -lrte_eal -lrte_mempool -lrte_stack
-
-EXPORT_MAP := rte_mempool_stack_version.map
-
-SRCS-$(CONFIG_RTE_DRIVER_MEMPOOL_STACK) += rte_mempool_stack.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
deleted file mode 100644
index 361974eacf..0000000000
--- a/drivers/net/Makefile
+++ /dev/null
@@ -1,84 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# set in mk/toolchain/xxx/rte.toolchain-compat.mk
-ifeq ($(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD),d)
- $(warning thunderx pmd is not supported by old compilers)
-endif
-
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += af_packet
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP) += af_xdp
-DIRS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark
-DIRS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += atlantic
-DIRS-$(CONFIG_RTE_LIBRTE_AVP_PMD) += avp
-DIRS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe
-DIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bonding
-DIRS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-DIRS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa
-endif
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000
-DIRS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena
-DIRS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += enetc
-DIRS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe
-DIRS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k
-DIRS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic
-DIRS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3
-DIRS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e
-DIRS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf
-DIRS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice
-DIRS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc
-DIRS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic
-DIRS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += ipn3ke
-DIRS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe
-DIRS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += liquidio
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_MEMIF) += memif
-DIRS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4
-DIRS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5
-DIRS-$(CONFIG_RTE_LIBRTE_MVNETA_PMD) += mvneta
-DIRS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mvpp2
-DIRS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += netvsc
-DIRS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb
-DIRS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp
-DIRS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += null
-DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx
-DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD) += octeontx2
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += pcap
-DIRS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe
-DIRS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_RING) += ring
-DIRS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += szedata2
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap
-DIRS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += thunderx
-DIRS-$(CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD) += vdev_netvsc
-DIRS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio
-DIRS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3
-
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_KNI) += kni
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_SCHED),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += softnic
-endif # $(CONFIG_RTE_LIBRTE_SCHED)
-
-ifeq ($(CONFIG_RTE_LIBRTE_VHOST),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_VHOST) += vhost
-endif # $(CONFIG_RTE_LIBRTE_VHOST)
-
-ifeq ($(CONFIG_RTE_LIBRTE_MVPP2_PMD),y)
-ifeq ($(CONFIG_RTE_LIBRTE_CFGFILE),n)
-$(error "RTE_LIBRTE_CFGFILE must be enabled in configuration!")
-endif
-endif
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/net/af_packet/Makefile b/drivers/net/af_packet/Makefile
deleted file mode 100644
index 91dbf0a692..0000000000
--- a/drivers/net/af_packet/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2014 John W. Linville <linville@redhat.com>
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright(c) 2014 6WIND S.A.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_af_packet.a
-
-EXPORT_MAP := rte_pmd_af_packet_version.map
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += rte_eth_af_packet.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/af_xdp/Makefile b/drivers/net/af_xdp/Makefile
deleted file mode 100644
index 55db6085ac..0000000000
--- a/drivers/net/af_xdp/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_af_xdp.a
-
-EXPORT_MAP := rte_pmd_af_xdp_version.map
-
-CFLAGS += -O3
-
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-LDLIBS += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --libs libbpf || echo "-lbpf")
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP) += rte_eth_af_xdp.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ark/Makefile b/drivers/net/ark/Makefile
deleted file mode 100644
index c02080bdd0..0000000000
--- a/drivers/net/ark/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2015-2018 Atomic Rules LLC
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ark.a
-
-CFLAGS += -O3 -I./
-CFLAGS += $(WERROR_FLAGS) -Werror
-
-EXPORT_MAP := rte_pmd_ark_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_ddm.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_ethdev_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_ethdev_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_mpu.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_pktchkr.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_pktdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_pktgen.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_rqp.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_udm.c
-
-# this lib depends upon:
-LDLIBS += -lpthread
-ifdef CONFIG_RTE_EXEC_ENV_LINUX
-LDLIBS += -ldl
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/atlantic/Makefile b/drivers/net/atlantic/Makefile
deleted file mode 100644
index 0d0d0a502d..0000000000
--- a/drivers/net/atlantic/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Aquantia Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_atlantic.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_atlantic_version.map
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net
-LDLIBS += -lrte_bus_pci
-
-VPATH += $(SRCDIR)/hw_atl
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += atl_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += atl_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += atl_hw_regs.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += hw_atl_utils.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += hw_atl_llh.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += hw_atl_utils_fw2x.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += hw_atl_b0.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += rte_pmd_atlantic.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/avp/Makefile b/drivers/net/avp/Makefile
deleted file mode 100644
index 075247b13a..0000000000
--- a/drivers/net/avp/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2013-2017, Wind River Systems, Inc.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_avp.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_avp_version.map
-
-# install public header files to enable compilation of the hypervisor level
-# dpdk application
-SYMLINK-$(CONFIG_RTE_LIBRTE_AVP_PMD)-include += rte_avp_common.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_AVP_PMD)-include += rte_avp_fifo.h
-
-#
-# all source files are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_AVP_PMD) += avp_ethdev.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/axgbe/Makefile b/drivers/net/axgbe/Makefile
deleted file mode 100644
index e421d0da11..0000000000
--- a/drivers/net/axgbe/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2018 Advanced Micro Devices, Inc. All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_axgbe.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_axgbe_version.map
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_ethdev -lrte_net
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_mdio.c
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_phy_impl.c
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_i2c.c
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_rxtx.c
-ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_rxtx_vec_sse.c
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/bnx2x/Makefile b/drivers/net/bnx2x/Makefile
deleted file mode 100644
index 451434cc18..0000000000
--- a/drivers/net/bnx2x/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2014 - 2018 Cavium Inc.
-# All rights reserved.
-# www.cavium.com
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_bnx2x.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DZLIB_CONST
-LDLIBS += -lz
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_bnx2x_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += ecore_sp.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += elink.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_vfpf.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/bnxt/Makefile b/drivers/net/bnxt/Makefile
deleted file mode 100644
index 0c5b74918d..0000000000
--- a/drivers/net/bnxt/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright(c) 2014 6WIND S.A.
-# Copyright(c) Broadcom Limited.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_bnxt.a
-
-EXPORT_MAP := rte_pmd_bnxt_version.map
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci -pthread
-
-EXPORT_MAP := rte_pmd_bnxt_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_cpr.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_hwrm.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_ring.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_rxq.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_rxr.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_txq.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_txr.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_vnic.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_irq.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_util.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_reps.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += rte_pmd_bnxt.c
-ifeq ($(CONFIG_RTE_ARCH_X86), y)
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_rxtx_vec_sse.c
-endif
-ifeq ($(CONFIG_RTE_ARCH_ARM64), y)
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_rxtx_vec_neon.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_BNXT_PMD), y)
-CFLAGS += -I$(SRCDIR) -I$(SRCDIR)/tf_ulp -I$(SRCDIR)/tf_core -I$(SRCDIR)/hcapi
-include $(SRCDIR)/tf_ulp/Makefile
-include $(SRCDIR)/tf_core/Makefile
-include $(SRCDIR)/hcapi/Makefile
-endif
-
-#
-# Export include files
-#
-SYMLINK-y-include +=
-SYMLINK-$(CONFIG_RTE_LIBRTE_BNXT_PMD)-include += rte_pmd_bnxt.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/bnxt/hcapi/Makefile b/drivers/net/bnxt/hcapi/Makefile
deleted file mode 100644
index a5bb398ad7..0000000000
--- a/drivers/net/bnxt/hcapi/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019-2020 Broadcom Limited.
-# All rights reserved.
-
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += hcapi/hcapi_cfa_p4.c
diff --git a/drivers/net/bnxt/tf_core/Makefile b/drivers/net/bnxt/tf_core/Makefile
deleted file mode 100644
index 84840366ab..0000000000
--- a/drivers/net/bnxt/tf_core/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright(c) 2014 6WIND S.A.
-# Copyright(c) Broadcom Limited.
-# All rights reserved.
-
-
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/bitalloc.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/rand.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/stack.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/ll.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_core.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_rm.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tfp.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_msg.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_tbl.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_em_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_em_internal.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_em_host.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_session.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_device.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_device_p4.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_identifier.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_shadow_tbl.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_shadow_tcam.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_tcam.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_util.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_if_tbl.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_global_cfg.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_shadow_identifier.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_hash.c
diff --git a/drivers/net/bnxt/tf_ulp/Makefile b/drivers/net/bnxt/tf_ulp/Makefile
deleted file mode 100644
index abb68150d1..0000000000
--- a/drivers/net/bnxt/tf_ulp/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright(c) 2014 6WIND S.A.
-# Copyright(c) Broadcom Limited.
-# All rights reserved.
-
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_template_db_tbl.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_template_db_class.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_template_db_act.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_rte_parser.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/bnxt_ulp_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_matcher.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_utils.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_mapper.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/bnxt_ulp.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_mark_mgr.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_flow_db.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_port_db.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_def_rules.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_fc_mgr.c
diff --git a/drivers/net/bonding/Makefile b/drivers/net/bonding/Makefile
deleted file mode 100644
index 728551a846..0000000000
--- a/drivers/net/bonding/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_bond.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_bond_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_args.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_8023ad.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_alb.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_flow.c
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_eth_bond.h
-SYMLINK-y-include += rte_eth_bond_8023ad.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/cxgbe/Makefile b/drivers/net/cxgbe/Makefile
deleted file mode 100644
index 53b2bb56dc..0000000000
--- a/drivers/net/cxgbe/Makefile
+++ /dev/null
@@ -1,57 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2014-2018 Chelsio Communications.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_cxgbe.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_cxgbe_version.map
-
-#
-# CFLAGS for gcc/clang
-#
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS += -Wno-deprecated
-endif
-endif
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-#
-# Add extra flags for base driver files (also known as shared code)
-# to disable warnings in them
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbevf_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe_main.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbevf_main.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += sge.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += t4_hw.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += clip_tbl.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += mps_tcam.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += l2t.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += smt.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += t4vf_hw.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/dpaa/Makefile b/drivers/net/dpaa/Makefile
deleted file mode 100644
index d7bbc0e158..0000000000
--- a/drivers/net/dpaa/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-RTE_SDK_DPAA=$(RTE_SDK)/drivers/net/dpaa
-
-#
-# library name
-#
-LIB = librte_pmd_dpaa.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -I$(RTE_SDK_DPAA)/
-CFLAGS += -I$(RTE_SDK_DPAA)/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include/
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/base/qbman
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/event/dpaa
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-
-EXPORT_MAP := rte_pmd_dpaa_version.map
-
-# Interfaces with DPDK
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa_rxtx.c
-
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_mempool_dpaa
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_common_dpaax
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_DPAA_PMD)-include := rte_pmd_dpaa.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/dpaa2/Makefile b/drivers/net/dpaa2/Makefile
deleted file mode 100644
index 6f38c18b9b..0000000000
--- a/drivers/net/dpaa2/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
-# Copyright 2016-2019 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_dpaa2.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2
-CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/portal
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa2
-
-# versioning export map
-EXPORT_MAP := rte_pmd_dpaa2_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += base/dpaa2_hw_dpni.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_mux.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_sparser.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += mc/dpni.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += mc/dpkg.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += mc/dpdmux.c
-SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += mc/dprtc.c
-SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += dpaa2_ptp.c
-
-LDLIBS += -lrte_bus_fslmc
-LDLIBS += -lrte_mempool_dpaa2
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_common_dpaax
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)-include := rte_pmd_dpaa2.h
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/e1000/Makefile b/drivers/net/e1000/Makefile
deleted file mode 100644
index f186f8d0e9..0000000000
--- a/drivers/net/e1000/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_e1000.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_e1000_version.map
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-#
-# CFLAGS for icc
-#
-CFLAGS_BASE_DRIVER = -diag-disable 177 -diag-disable 181
-CFLAGS_BASE_DRIVER += -diag-disable 869 -diag-disable 2259
-else
-#
-# CFLAGS for gcc/clang
-#
-CFLAGS_BASE_DRIVER = -Wno-uninitialized -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-ifeq ($(shell test $(GCC_VERSION) -ge 60 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-misleading-indentation
-ifeq ($(shell test $(GCC_VERSION) -ge 70 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-implicit-fallthrough
-endif
-endif
-endif
-endif
-
-#
-# Add extra flags for base driver files (also known as shared code)
-# to disable warnings in them
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_base.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_80003es2lan.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82540.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82541.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82542.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82543.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82571.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82575.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_i210.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_ich8lan.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_logs.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_manage.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_mbx.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_nvm.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_osdep.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGB_PMD) += igb_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGB_PMD) += igb_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGB_PMD) += igb_pf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGB_PMD) += igb_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_EM_PMD) += em_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_EM_PMD) += em_rxtx.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ena/Makefile b/drivers/net/ena/Makefile
deleted file mode 100644
index 8ccff36db7..0000000000
--- a/drivers/net/ena/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ena.a
-CFLAGS += $(WERROR_FLAGS) -O2
-INCLUDES :=-I$(SRCDIR) -I$(SRCDIR)/base/ena_defs -I$(SRCDIR)/base
-
-EXPORT_MAP := rte_pmd_ena_version.map
-
-VPATH += $(SRCDIR)/base
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena_com.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena_eth_com.c
-
-CFLAGS += $(INCLUDES)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_timer
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/enetc/Makefile b/drivers/net/enetc/Makefile
deleted file mode 100644
index 7276026e37..0000000000
--- a/drivers/net/enetc/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_enetc.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-EXPORT_MAP := rte_pmd_enetc_version.map
-SRCS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += enetc_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += enetc_rxtx.c
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_ethdev -lrte_net
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/enic/Makefile b/drivers/net/enic/Makefile
deleted file mode 100644
index d098a474a1..0000000000
--- a/drivers/net/enic/Makefile
+++ /dev/null
@@ -1,68 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2008-2017 Cisco Systems, Inc. All rights reserved.
-# Copyright 2007 Nuova Systems, Inc. All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_enic.a
-
-EXPORT_MAP := rte_pmd_enic_version.map
-
-CFLAGS += -I$(SRCDIR)/base/
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -Wno-strict-aliasing
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_pci
-
-VPATH += $(SRCDIR)/src
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_main.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_clsf.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_res.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_fm_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += base/vnic_cq.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += base/vnic_wq.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += base/vnic_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += base/vnic_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += base/vnic_rq.c
-
-# The current implementation assumes 64-bit pointers
-CC_AVX2_SUPPORT=0
-ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
-# Figure out if the compiler supports avx2. The extra check using
-# -march=core-avx2 is necessary to support users who build for the
-# 'default' machine (corei7 which has no avx2) and run the binary on
-# newer CPUs that have avx2.
-# This part is verbatim from i40e makefile.
-ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
- CC_AVX2_SUPPORT=1
-else
- CC_AVX2_SUPPORT=\
- $(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
- grep -q AVX2 && echo 1)
- ifeq ($(CC_AVX2_SUPPORT), 1)
- ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
- CFLAGS_enic_rxtx_vec_avx2.o += -march=core-avx2
- else
- CFLAGS_enic_rxtx_vec_avx2.o += -mavx2
- endif
- endif
-endif
-endif
-
-ifeq ($(CC_AVX2_SUPPORT), 1)
- SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_rxtx_vec_avx2.c
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/failsafe/Makefile b/drivers/net/failsafe/Makefile
deleted file mode 100644
index 464fd0515d..0000000000
--- a/drivers/net/failsafe/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 6WIND S.A.
-# Copyright 2017 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name
-LIB = librte_pmd_failsafe.a
-
-EXPORT_MAP := rte_pmd_failsafe_version.map
-
-# Sources are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_args.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_eal.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_ether.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_intr.c
-ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-CFLAGS += -DLINUX
-else
-CFLAGS += -DBSD
-endif
-
-# No exported include files
-
-# Basic CFLAGS:
-CFLAGS += -std=gnu99 -Wextra
-CFLAGS += -O3
-CFLAGS += -I.
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=700
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-strict-prototypes
-CFLAGS += -pedantic
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lpthread
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/fm10k/Makefile b/drivers/net/fm10k/Makefile
deleted file mode 100644
index d486389928..0000000000
--- a/drivers/net/fm10k/Makefile
+++ /dev/null
@@ -1,77 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2013-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_fm10k.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_fm10k_version.map
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-#
-# CFLAGS for icc
-#
-CFLAGS_BASE_DRIVER = -diag-disable 174 -diag-disable 593 -diag-disable 869
-CFLAGS_BASE_DRIVER += -diag-disable 981 -diag-disable 2259
-
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-
-#
-## CFLAGS for clang
-#
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-
-else
-#
-# CFLAGS for gcc
-#
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS += -Wno-deprecated
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-ifeq ($(shell test $(GCC_VERSION) -ge 70 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-implicit-fallthrough
-endif
-endif
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_pci
-
-#
-# Add extra flags for base driver source files to disable warnings in them
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-# base driver is based on the package of cid-fm10k.2017.01.24.tar.gz
-#
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_rxtx.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_pf.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_tlv.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_mbx.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_api.c
-ifeq ($(CONFIG_RTE_ARCH_X86), y)
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_INC_VECTOR) += fm10k_rxtx_vec.c
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/hinic/Makefile b/drivers/net/hinic/Makefile
deleted file mode 100644
index 87fd843e41..0000000000
--- a/drivers/net/hinic/Makefile
+++ /dev/null
@@ -1,67 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Huawei Technologies Co., Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_hinic.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
-CFLAGS += -D__ARM64_NEON__
-else ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
-CFLAGS += -D__X86_64_SSE__
-endif
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_hash
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lpthread
-
-EXPORT_MAP := rte_pmd_hinic_version.map
-
-#
-# CFLAGS for 32-bits platforms
-#
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-#
-# CFLAGS for icc
-#
-CFLAGS += -diag-disable 2259
-else
-#
-# CFLAGS for gcc
-#
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-endif
-endif
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_api_cmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_cfg.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_cmdq.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_eqs.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_hwdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_hwif.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_mgmt.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_niccfg.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_nicio.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_wq.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_mbox.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_flow.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_tx.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/hns3/Makefile b/drivers/net/hns3/Makefile
deleted file mode 100644
index d7798a4706..0000000000
--- a/drivers/net/hns3/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018-2019 Hisilicon Limited.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_hns3.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-# Experimantal APIs:
-# - rte_mp_action_register
-# - rte_mp_action_unregister
-# - rte_mp_reply
-# - rte_mp_request_sync
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_hash
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_hns3_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_ethdev_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_cmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_mbx.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_rss.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_fdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_regs.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_dcb.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_mp.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/i40e/Makefile b/drivers/net/i40e/Makefile
deleted file mode 100644
index 43f10941b2..0000000000
--- a/drivers/net/i40e/Makefile
+++ /dev/null
@@ -1,112 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_i40e.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -DPF_DRIVER -DVF_DRIVER -DINTEGRATED_VF
-CFLAGS += -DX722_A0_SUPPORT
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_i40e_version.map
-
-#
-# Add extra flags for base driver files (also known as shared code)
-# to disable warnings
-#
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS_BASE_DRIVER = -diag-disable 593
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-CFLAGS_BASE_DRIVER += -Wno-sign-compare
-CFLAGS_BASE_DRIVER += -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing
-CFLAGS_BASE_DRIVER += -Wno-format
-CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast
-CFLAGS_BASE_DRIVER += -Wno-format-nonliteral
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-else
-CFLAGS_BASE_DRIVER = -Wno-sign-compare
-CFLAGS_BASE_DRIVER += -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing
-CFLAGS_BASE_DRIVER += -Wno-format
-CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast
-CFLAGS_BASE_DRIVER += -Wno-format-nonliteral
-CFLAGS_BASE_DRIVER += -Wno-format-security
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-endif
-
-CFLAGS_i40e_lan_hmc.o += -Wno-error
-endif
-OBJS_BASE_DRIVER=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(OBJS_BASE_DRIVER), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-# base driver is based on the package of dpdk-i40e.2016.04.18.12.tar.gz.
-#
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_adminq.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_diag.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_hmc.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_lan_hmc.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_nvm.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_dcb.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_rxtx.c
-ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_neon.c
-else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y)
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_altivec.c
-else
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_sse.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_ethdev_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_pf.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_fdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += rte_pmd_i40e.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_tm.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_vf_representor.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR),y)
-ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
- CC_AVX2_SUPPORT=1
-else
- CC_AVX2_SUPPORT=\
- $(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
- grep -q AVX2 && echo 1)
- ifeq ($(CC_AVX2_SUPPORT), 1)
- ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
- CFLAGS_i40e_rxtx_vec_avx2.o += -march=core-avx2
- else
- CFLAGS_i40e_rxtx_vec_avx2.o += -mavx2
- endif
- endif
-endif
-endif
-
-ifeq ($(CC_AVX2_SUPPORT), 1)
- SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_avx2.c
- CFLAGS_i40e_rxtx.o += -DCC_AVX2_SUPPORT
-endif
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_I40E_PMD)-include := rte_pmd_i40e.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/iavf/Makefile b/drivers/net/iavf/Makefile
deleted file mode 100644
index 792cbb7f79..0000000000
--- a/drivers/net/iavf/Makefile
+++ /dev/null
@@ -1,54 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_iavf.a
-
-CFLAGS += -I$(RTE_SDK)/drivers/common/iavf
-CFLAGS += -O3 $(WERROR_FLAGS) -Wno-strict-aliasing
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_common_iavf
-
-EXPORT_MAP := rte_pmd_iavf_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_vchnl.c
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_generic_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_fdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_hash.c
-ifeq ($(CONFIG_RTE_ARCH_X86), y)
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_rxtx_vec_sse.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_IAVF_PMD), y)
- ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
- CC_AVX2_SUPPORT=1
- else
- CC_AVX2_SUPPORT=\
- $(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
- grep -q AVX2 && echo 1)
- ifeq ($(CC_AVX2_SUPPORT), 1)
- ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
- CFLAGS_iavf_rxtx_vec_avx2.o += -march=core-avx2
- else
- CFLAGS_iavf_rxtx_vec_avx2.o += -mavx2
- endif
- endif
- endif
-endif
-
-ifeq ($(CC_AVX2_SUPPORT), 1)
- SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_rxtx_vec_avx2.c
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ice/Makefile b/drivers/net/ice/Makefile
deleted file mode 100644
index 34cd4024b3..0000000000
--- a/drivers/net/ice/Makefile
+++ /dev/null
@@ -1,96 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ice.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/iavf
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev -lrte_kvargs
-LDLIBS += -lrte_bus_pci -lrte_mempool -lrte_hash
-LDLIBS += -lrte_net -lrte_common_iavf
-LDLIBS += -lpthread
-
-EXPORT_MAP := rte_pmd_ice_version.map
-
-#
-# Add extra flags for base driver files (also known as shared code)
-# to disable warnings
-#
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS_BASE_DRIVER +=
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-CFLAGS_BASE_DRIVER += -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-else
-CFLAGS_BASE_DRIVER += -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-endif
-
-endif
-OBJS_BASE_DRIVER=$(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c)))
-$(foreach obj, $(OBJS_BASE_DRIVER), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_controlq.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_sched.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_switch.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_nvm.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_flex_pipe.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_dcb.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_fdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_acl.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_acl_ctrl.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_rxtx.c
-ifeq ($(CONFIG_RTE_ARCH_X86), y)
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_rxtx_vec_sse.c
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_switch_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_fdir_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_hash.c
-ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
- CC_AVX2_SUPPORT=1
-else
- CC_AVX2_SUPPORT=\
- $(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
- grep -q AVX2 && echo 1)
- ifeq ($(CC_AVX2_SUPPORT), 1)
- ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
- CFLAGS_ice_rxtx_vec_avx2.o += -march=core-avx2
- else
- CFLAGS_ice_rxtx_vec_avx2.o += -mavx2
- endif
- endif
-endif
-
-ifeq ($(CC_AVX2_SUPPORT), 1)
- SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_rxtx_vec_avx2.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_generic_flow.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_dcf.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_dcf_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_dcf_parent.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_ICE_PMD)-include := rte_pmd_ice.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/igc/Makefile b/drivers/net/igc/Makefile
deleted file mode 100644
index d6d7959d2d..0000000000
--- a/drivers/net/igc/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019-2020 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_igc.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_ethdev
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_mbuf
-LDLIBS += -lrte_mempool
-
-EXPORT_MAP := rte_pmd_igc_version.map
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_base.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_i225.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_manage.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_nvm.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_osdep.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_logs.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_txrx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_flow.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ionic/Makefile b/drivers/net/ionic/Makefile
deleted file mode 100644
index 7442e2c5cb..0000000000
--- a/drivers/net/ionic/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
-# Copyright(c) 2018-2019 Pensando Systems, Inc. All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ionic.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_ionic_version.map
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net
-LDLIBS += -lrte_bus_pci
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_mac_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_rx_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_lif.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_main.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ipn3ke/Makefile b/drivers/net/ipn3ke/Makefile
deleted file mode 100644
index 40696dbde8..0000000000
--- a/drivers/net/ipn3ke/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ipn3ke.a
-
-#
-# Add the experimenatal APIs called from this PMD
-# rte_eth_switch_domain_alloc()
-# rte_eth_dev_create()
-# rte_eth_dev_destroy()
-# rte_eth_switch_domain_free()
-#
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/bus/ifpga
-CFLAGS += -I$(RTE_SDK)/drivers/raw/ifpga
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_ifpga
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lpthread
-
-EXPORT_MAP := rte_pmd_ipn3ke_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += ipn3ke_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += ipn3ke_representor.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += ipn3ke_tm.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += ipn3ke_flow.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ixgbe/Makefile b/drivers/net/ixgbe/Makefile
deleted file mode 100644
index aebf3b286c..0000000000
--- a/drivers/net/ixgbe/Makefile
+++ /dev/null
@@ -1,110 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ixgbe.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_ixgbe_version.map
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-#
-# CFLAGS for icc
-#
-CFLAGS_BASE_DRIVER = -diag-disable 174 -diag-disable 593 -diag-disable 869
-CFLAGS_BASE_DRIVER += -diag-disable 981 -diag-disable 2259
-
-CFLAGS_ixgbe_rxtx.o += -diag-disable 3656
-
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-#
-# CFLAGS for clang
-#
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-
-else
-#
-# CFLAGS for gcc
-#
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS += -Wno-deprecated
-CFLAGS_ixgbe_common.o += -Wno-unused-but-set-variable
-CFLAGS_ixgbe_x550.o += -Wno-unused-but-set-variable
-endif
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-
-ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
-CFLAGS_ixgbe_x550.o += -Wno-maybe-uninitialized
-endif
-
-ifeq ($(shell test $(GCC_VERSION) -ge 50 && echo 1), 1)
-CFLAGS_ixgbe_common.o += -Wno-logical-not-parentheses
-ifeq ($(shell test $(GCC_VERSION) -ge 70 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-implicit-fallthrough
-endif
-endif
-
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lpthread
-
-#
-# Add extra flags for base driver files (also known as shared code)
-# to disable warnings in them
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_82598.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_82599.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_x540.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_x550.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_hv_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_dcb.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_dcb_82599.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_dcb_82598.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_mbx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_fdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_pf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_flow.c
-ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_rxtx_vec_neon.c
-else ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_rxtx_vec_sse.c
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_BYPASS),y)
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_bypass.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_82599_bypass.c
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_SECURITY),y)
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_ipsec.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += rte_pmd_ixgbe.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_tm.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_vf_representor.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_IXGBE_PMD)-include := rte_pmd_ixgbe.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/kni/Makefile b/drivers/net/kni/Makefile
deleted file mode 100644
index 0694ffd021..0000000000
--- a/drivers/net/kni/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_kni.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_kni
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_kni_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_KNI) += rte_eth_kni.c
-
-#
-# Export include files
-#
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/liquidio/Makefile b/drivers/net/liquidio/Makefile
deleted file mode 100644
index d7fda7f527..0000000000
--- a/drivers/net/liquidio/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_lio.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)/base -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_liquidio_version.map
-
-VPATH += $(RTE_SDK)/drivers/net/liquidio/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += lio_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += lio_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += lio_23xx_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += lio_mbox.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/memif/Makefile b/drivers/net/memif/Makefile
deleted file mode 100644
index 3bf4ddce4c..0000000000
--- a/drivers/net/memif/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018-2019 Cisco Systems, Inc. All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_memif.a
-
-EXPORT_MAP := rte_pmd_memif_version.map
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_ethdev -lrte_kvargs -lrte_net
-LDLIBS += -lrte_hash
-LDLIBS += -lrte_bus_vdev
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_MEMIF) += rte_eth_memif.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_MEMIF) += memif_socket.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile
deleted file mode 100644
index 02e9b2ec07..0000000000
--- a/drivers/net/mlx4/Makefile
+++ /dev/null
@@ -1,142 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2012 6WIND S.A.
-# Copyright 2012 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name.
-LIB = librte_pmd_mlx4.a
-LIB_GLUE = $(LIB_GLUE_BASE).$(LIB_GLUE_VERSION)
-LIB_GLUE_BASE = librte_pmd_mlx4_glue.so
-LIB_GLUE_VERSION = 18.02.0
-
-# Sources.
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_flow.c
-ifneq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_glue.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_mp.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_mr.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_rxq.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_txq.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_utils.c
-
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-INSTALL-$(CONFIG_RTE_LIBRTE_MLX4_PMD)-lib += $(LIB_GLUE)
-endif
-
-# Basic CFLAGS.
-CFLAGS += -O3
-CFLAGS += -std=c11 -Wall -Wextra
-CFLAGS += -g
-CFLAGS += -I.
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += $(WERROR_FLAGS)
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-CFLAGS += -DMLX4_GLUE='"$(LIB_GLUE)"'
-CFLAGS += -DMLX4_GLUE_VERSION='"$(LIB_GLUE_VERSION)"'
-CFLAGS_mlx4_glue.o += -fPIC
-LDLIBS += -ldl
-else ifeq ($(CONFIG_RTE_IBVERBS_LINK_STATIC),y)
-LDLIBS += $(shell $(RTE_SDK)/buildtools/options-ibverbs-static.sh)
-else
-LDLIBS += -libverbs -lmlx4
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-# A few warnings cannot be avoided in external headers.
-CFLAGS += -Wno-error=cast-qual
-
-EXPORT_MAP := rte_pmd_mlx4_version.map
-# DEBUG which is usually provided on the command-line may enable
-# CONFIG_RTE_LIBRTE_MLX4_DEBUG.
-ifeq ($(DEBUG),1)
-CONFIG_RTE_LIBRTE_MLX4_DEBUG := y
-endif
-
-# User-defined CFLAGS.
-ifeq ($(CONFIG_RTE_LIBRTE_MLX4_DEBUG),y)
-CFLAGS += -pedantic
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -DPEDANTIC
-endif
-AUTO_CONFIG_CFLAGS += -Wno-pedantic
-else
-CFLAGS += -UPEDANTIC
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
-
-# Generate and clean-up mlx4_autoconf.h.
-
-export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS
-export AUTO_CONFIG_CFLAGS += -Wno-error
-
-ifndef V
-AUTOCONF_OUTPUT := >/dev/null
-endif
-
-mlx4_autoconf.h.new: FORCE
-
-mlx4_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh
- $Q $(RM) -f -- '$@'
- $Q : > '$@'
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX4_BUF_ALLOCATORS \
- infiniband/mlx4dv.h \
- enum MLX4DV_SET_CTX_ATTR_BUF_ALLOCATORS \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX4_UAR_MMAP_OFFSET \
- infiniband/mlx4dv.h \
- enum MLX4DV_QP_MASK_UAR_MMAP_OFFSET \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX4_WQE_LSO_SEG \
- infiniband/mlx4dv.h \
- type 'struct mlx4_wqe_lso_seg' \
- $(AUTOCONF_OUTPUT)
-
-# Create mlx4_autoconf.h or update it in case it differs from the new one.
-
-mlx4_autoconf.h: mlx4_autoconf.h.new
- $Q [ -f '$@' ] && \
- cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
- mv '$<' '$@'
-
-$(SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD):.c=.o): mlx4_autoconf.h
-
-# Generate dependency plug-in for rdma-core when the PMD must not be linked
-# directly, so that applications do not inherit this dependency.
-
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-
-$(LIB): $(LIB_GLUE)
-
-ifeq ($(LINK_USING_CC),1)
-GLUE_LDFLAGS := $(call linkerprefix,$(LDFLAGS))
-else
-GLUE_LDFLAGS := $(LDFLAGS)
-endif
-$(LIB_GLUE): mlx4_glue.o
- $Q $(LD) $(GLUE_LDFLAGS) $(EXTRA_LDFLAGS) \
- -Wl,-h,$(LIB_GLUE) \
- -shared -o $@ $< -libverbs -lmlx4
-
-mlx4_glue.o: mlx4_autoconf.h
-
-endif
-
-clean_mlx4: FORCE
- $Q rm -f -- mlx4_autoconf.h mlx4_autoconf.h.new
- $Q rm -f -- mlx4_glue.o $(LIB_GLUE_BASE)*
-
-clean: clean_mlx4
diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile
deleted file mode 100644
index 568c772415..0000000000
--- a/drivers/net/mlx5/Makefile
+++ /dev/null
@@ -1,82 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2015 6WIND S.A.
-# Copyright 2015 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name.
-LIB = librte_pmd_mlx5.a
-
-# Sources.
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_rxq.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_txq.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_txpp.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_rxtx.c
-ifneq ($(filter y,$(CONFIG_RTE_ARCH_X86_64) \
- $(CONFIG_RTE_ARCH_PPC_64) \
- $(CONFIG_RTE_ARCH_ARM64)),)
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_rxtx_vec.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_trigger.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_rxmode.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_vlan.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_rss.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_mr.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_flow_meter.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_flow_dv.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_flow_verbs.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_utils.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_socket.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_os.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_ethdev_os.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_verbs.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_mp_os.c
-
-# Basic CFLAGS.
-CFLAGS += -O3
-CFLAGS += -std=c11 -Wall -Wextra
-CFLAGS += -g
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5/linux
-CFLAGS += -I$(RTE_SDK)/drivers/net/mlx5
-CFLAGS += -I$(RTE_SDK)/drivers/net/mlx5/linux
-CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-strict-prototypes
-LDLIBS += -lrte_common_mlx5
-LDLIBS += -lm
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-
-# A few warnings cannot be avoided in external headers.
-CFLAGS += -Wno-error=cast-qual
-
-EXPORT_MAP := rte_pmd_mlx5_version.map
-
-# DEBUG which is usually provided on the command-line may enable
-# CONFIG_RTE_LIBRTE_MLX5_DEBUG.
-ifeq ($(DEBUG),1)
-CONFIG_RTE_LIBRTE_MLX5_DEBUG := y
-endif
-
-# User-defined CFLAGS.
-ifeq ($(CONFIG_RTE_LIBRTE_MLX5_DEBUG),y)
-CFLAGS += -pedantic
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -DPEDANTIC
-endif
-AUTO_CONFIG_CFLAGS += -Wno-pedantic
-else
-CFLAGS += -UPEDANTIC
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
-
diff --git a/drivers/net/mvneta/Makefile b/drivers/net/mvneta/Makefile
deleted file mode 100644
index 41e50479ff..0000000000
--- a/drivers/net/mvneta/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd.
-# Copyright(c) 2018 Semihalf.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),config)
-ifeq ($(LIBMUSDK_PATH),)
-$(error "Please define LIBMUSDK_PATH environment variable")
-endif
-endif
-endif
-
-# library name
-LIB = librte_pmd_mvneta.a
-
-# versioning export map
-EXPORT_MAP := rte_pmd_mvneta_version.map
-
-# external library dependencies
-CFLAGS += -I$(RTE_SDK)/drivers/common/mvep
-CFLAGS += -I$(LIBMUSDK_PATH)/include
-CFLAGS += -DMVCONF_TYPES_PUBLIC
-CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_PUBLIC
-CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_SIZE=64
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-LDLIBS += -L$(LIBMUSDK_PATH)/lib
-LDLIBS += -lmusdk
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_cfgfile
-LDLIBS += -lrte_bus_vdev -lrte_common_mvep
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_MVNETA_PMD) += mvneta_ethdev.c mvneta_rxtx.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/mvpp2/Makefile b/drivers/net/mvpp2/Makefile
deleted file mode 100644
index 8a3ec93a60..0000000000
--- a/drivers/net/mvpp2/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Marvell International Ltd.
-# Copyright(c) 2017 Semihalf.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),config)
-ifeq ($(LIBMUSDK_PATH),)
-$(error "Please define LIBMUSDK_PATH environment variable")
-endif
-endif
-endif
-
-# library name
-LIB = librte_pmd_mvpp2.a
-
-# versioning export map
-EXPORT_MAP := rte_pmd_mvpp2_version.map
-
-# external library dependencies
-CFLAGS += -I$(RTE_SDK)/drivers/common/mvep
-CFLAGS += -I$(LIBMUSDK_PATH)/include
-CFLAGS += -DMVCONF_TYPES_PUBLIC
-CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_PUBLIC
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-LDLIBS += -L$(LIBMUSDK_PATH)/lib
-LDLIBS += -lmusdk
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_cfgfile
-LDLIBS += -lrte_bus_vdev -lrte_common_mvep
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mrvl_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mrvl_qos.c
-SRCS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mrvl_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mrvl_mtr.c
-SRCS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mrvl_tm.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/netvsc/Makefile b/drivers/net/netvsc/Makefile
deleted file mode 100644
index da8991584a..0000000000
--- a/drivers/net/netvsc/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_pmd_netvsc.a
-
-CFLAGS += -O3 $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_netvsc_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += hn_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += hn_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += hn_rndis.c
-SRCS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += hn_nvs.c
-SRCS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += hn_vf.c
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vmbus
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/nfb/Makefile b/drivers/net/nfb/Makefile
deleted file mode 100644
index e92d29dcd3..0000000000
--- a/drivers/net/nfb/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Cesnet
-# Copyright(c) 2019 Netcope Technologies, a.s. <info@netcope.com>
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_nfb.a
-
-INCLUDES :=-I$(SRCDIR)
-
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --cflags netcope-common)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_kvargs
-LDLIBS += -lrte_ethdev -lrte_net
-LDLIBS += -lrte_bus_pci
-LDLIBS += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --libs netcope-common)
-
-EXPORT_MAP := rte_pmd_nfb_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb_rxmode.c
-
-#
-# Export include files
-#
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/nfp/Makefile b/drivers/net/nfp/Makefile
deleted file mode 100644
index 289b3a60e3..0000000000
--- a/drivers/net/nfp/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_nfp.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lm
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_nfp_version.map
-
-VPATH += $(SRCDIR)/nfpcore
-
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_cppcore.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_cpp_pcie_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_mutex.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_resource.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_crc.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_mip.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_nffw.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_hwinfo.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_rtsym.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_nsp.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_nsp_cmds.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_nsp_eth.c
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_net.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/null/Makefile b/drivers/net/null/Makefile
deleted file mode 100644
index f51150c131..0000000000
--- a/drivers/net/null/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 IGEL Co.,Ltd.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_null.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_null_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += rte_eth_null.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/octeontx/Makefile b/drivers/net/octeontx/Makefile
deleted file mode 100644
index c4db878009..0000000000
--- a/drivers/net/octeontx/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_octeontx.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx/
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx/
-
-EXPORT_MAP := rte_pmd_octeontx_version.map
-
-OBJS_BASE_DRIVER=$(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c)))
-$(foreach obj, $(OBJS_BASE_DRIVER), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_pkovf.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_pkivf.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_bgx.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_ethdev_ops.c
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_octeontx_rxtx.o += -fno-prefetch-loop-arrays
-
-ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
-CFLAGS_octeontx_rxtx.o += -O3 -Ofast
-else
-CFLAGS_octeontx_rxtx.o += -O3 -ffast-math
-endif
-
-else
-CFLAGS_octeontx_rxtx.o += -O3 -Ofast
-endif
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_common_octeontx
-LDLIBS += -lrte_mempool_octeontx
-LDLIBS += -lrte_eventdev
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_bus_vdev
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/octeontx2/Makefile b/drivers/net/octeontx2/Makefile
deleted file mode 100644
index 0de43e36af..0000000000
--- a/drivers/net/octeontx2/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_octeontx2.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/cpt
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx2
-CFLAGS += -O3
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -flax-vector-conversions
-endif
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_pmd_octeontx2_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD) += \
- otx2_rx.c \
- otx2_tx.c \
- otx2_tm.c \
- otx2_rss.c \
- otx2_mac.c \
- otx2_ptp.c \
- otx2_flow.c \
- otx2_link.c \
- otx2_vlan.c \
- otx2_stats.c \
- otx2_mcast.c \
- otx2_lookup.c \
- otx2_ethdev.c \
- otx2_flow_ctrl.c \
- otx2_flow_parse.c \
- otx2_flow_utils.c \
- otx2_ethdev_irq.c \
- otx2_ethdev_ops.c \
- otx2_ethdev_sec.c \
- otx2_ethdev_debug.c \
- otx2_ethdev_devargs.c
-
-LDLIBS += -lrte_common_octeontx2 -lrte_mempool_octeontx2 -lrte_eal -lrte_net
-LDLIBS += -lrte_ethdev -lrte_bus_pci -lrte_kvargs -lrte_mbuf -lrte_mempool -lm
-LDLIBS += -lrte_cryptodev -lrte_eventdev -lrte_security
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/pcap/Makefile b/drivers/net/pcap/Makefile
deleted file mode 100644
index f243d1a0fa..0000000000
--- a/drivers/net/pcap/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright(c) 2014 6WIND S.A.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_pcap.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lpcap
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_pcap_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += rte_eth_pcap.c
-
-#
-# Export include files
-#
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/pfe/Makefile b/drivers/net/pfe/Makefile
deleted file mode 100644
index 75d30b01aa..0000000000
--- a/drivers/net/pfe/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018-2019 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_pfe.a
-
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -I$(RTE_SDK)/drivers/net/pfe/base/
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-
-EXPORT_MAP := rte_pmd_pfe_version.map
-
-# Interfaces with DPDK
-SRCS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe_hal.c
-SRCS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe_hif_lib.c
-SRCS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe_hif.c
-
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_common_dpaax
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_ethdev -lrte_kvargs
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/qede/Makefile b/drivers/net/qede/Makefile
deleted file mode 100644
index 0e8a67b0da..0000000000
--- a/drivers/net/qede/Makefile
+++ /dev/null
@@ -1,109 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2016 - 2018 Cavium Inc.
-# All rights reserved.
-# www.cavium.com
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_qede.a
-
-CFLAGS += -O3
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_qede_version.map
-
-#
-# OS
-#
-OS_TYPE := $(shell uname -s)
-
-#
-# CFLAGS
-#
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-sign-compare
-CFLAGS_BASE_DRIVER += -Wno-missing-prototypes
-CFLAGS_BASE_DRIVER += -Wno-cast-qual
-CFLAGS_BASE_DRIVER += -Wno-unused-function
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing
-CFLAGS_BASE_DRIVER += -Wno-missing-prototypes
-
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS_BASE_DRIVER += -Wno-unused-value
-ifeq ($(OS_TYPE),Linux)
-ifeq ($(shell clang -Wno-shift-negative-value -Werror -E - < /dev/null > /dev/null 2>&1; echo $$?),0)
-CFLAGS_BASE_DRIVER += -Wno-shift-negative-value
-endif
-endif
-endif
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-CFLAGS += -Wno-format-nonliteral
-endif
-CFLAGS_BASE_DRIVER += -Wno-missing-declarations
-ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-maybe-uninitialized
-endif
-CFLAGS_BASE_DRIVER += -Wno-strict-prototypes
-ifeq ($(shell test $(GCC_VERSION) -ge 60 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-shift-negative-value
-ifeq ($(shell test $(GCC_VERSION) -ge 70 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-implicit-fallthrough
-endif
-endif
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-CFLAGS_BASE_DRIVER += -Wno-format-extra-args
-CFLAGS_BASE_DRIVER += -Wno-visibility
-CFLAGS_BASE_DRIVER += -Wno-empty-body
-CFLAGS_BASE_DRIVER += -Wno-invalid-source-encoding
-CFLAGS_BASE_DRIVER += -Wno-sometimes-uninitialized
-ifeq ($(shell clang -Wno-pointer-bool-conversion -Werror -E - < /dev/null > /dev/null 2>&1; echo $$?),0)
-CFLAGS_BASE_DRIVER += -Wno-pointer-bool-conversion
-endif
-else #ICC
-CFLAGS_qede_ethdev.o += -diag-disable 279 #279: controlling expression is constant
-endif
-
-#
-# Add extra flags for base ecore driver files
-# to disable warnings in them
-#
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_hw.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_cxt.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_l2.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_sp_commands.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_init_fw_funcs.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_spq.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_init_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_mcp.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_int.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_dcbx.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += bcm_osal.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_sriov.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_main.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_debug.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_regs.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ring/Makefile b/drivers/net/ring/Makefile
deleted file mode 100644
index d6a3dec350..0000000000
--- a/drivers/net/ring/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ring.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_ring_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_RING) += rte_eth_ring.c
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_eth_ring.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/sfc/Makefile b/drivers/net/sfc/Makefile
deleted file mode 100644
index 20bf343814..0000000000
--- a/drivers/net/sfc/Makefile
+++ /dev/null
@@ -1,133 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-#
-# Copyright(c) 2019-2020 Xilinx, Inc.
-# Copyright(c) 2016-2019 Solarflare Communications Inc.
-#
-# This software was jointly developed between OKTET Labs (under contract
-# for Solarflare) and Solarflare Communications, Inc.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_sfc_efx.a
-
-CFLAGS += -I$(SRCDIR)/base/
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-# Strict-aliasing rules are violated by rte_eth_link to uint64_t casts
-CFLAGS += -Wno-strict-aliasing
-
-# Enable extra warnings
-CFLAGS += -Wextra
-
-# More warnings not enabled by above aggregators
-CFLAGS += -Wdisabled-optimization
-
-# Extra CFLAGS for base driver files
-CFLAGS_BASE_DRIVER += -Wno-sign-compare
-CFLAGS_BASE_DRIVER += -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-
-# Compiler and version dependent flags
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS += -Waggregate-return
-CFLAGS += -Wnested-externs
-CFLAGS_BASE_DRIVER += -Wno-empty-body
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-CFLAGS += -Waggregate-return
-CFLAGS += -Wbad-function-cast
-CFLAGS_BASE_DRIVER += -Wno-empty-body
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-# Suppress ICC false positive warning on 'bulk' may be used before its
-# value is set
-CFLAGS_sfc_ef10_tx.o += -diag-disable 3656
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci -lrte_pci
-
-#
-# List of base driver object files for which
-# special CFLAGS above should be applied
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), \
- $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-EXPORT_MAP := rte_pmd_sfc_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_kvargs.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_mcdi.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ev.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_port.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_tso.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_dp.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_essb_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_tx.c
-
-VPATH += $(SRCDIR)/base
-
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_bootcfg.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_crc32.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_ev.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_evb.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_hash.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_lic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mcdi.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mon.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_nic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_nvram.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_port.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_proxy.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_sram.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_tunnel.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_vpd.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += mcdi_mon.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_mcdi.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_nic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_nvram.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_sram.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_vpd.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_ev.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_evb.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_image.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_mcdi.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_nic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_nvram.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_proxy.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_vpd.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += hunt_nic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += medford_nic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += medford2_nic.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/softnic/Makefile b/drivers/net/softnic/Makefile
deleted file mode 100644
index dabbe13a5f..0000000000
--- a/drivers/net/softnic/Makefile
+++ /dev/null
@@ -1,54 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_softnic.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_pipeline -lrte_port -lrte_table
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_sched
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_softnic_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_mempool.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_swq.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_link.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_tm.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_tap.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_action.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_pipeline.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_thread.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_cli.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_meter.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_cryptodev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += parser.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += conn.c
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_eth_softnic.h
-
-ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info Softnic PMD can only operate in a linux environment, \
-please change the definition of the RTE_TARGET environment variable)
-all:
-clean:
-else
-
-include $(RTE_SDK)/mk/rte.lib.mk
-
-endif
diff --git a/drivers/net/szedata2/Makefile b/drivers/net/szedata2/Makefile
deleted file mode 100644
index 675d0938a2..0000000000
--- a/drivers/net/szedata2/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 CESNET
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_szedata2.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lsze2
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_szedata2_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += rte_eth_szedata2.c
-
-#
-# Export include files
-#
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/tap/Makefile b/drivers/net/tap/Makefile
deleted file mode 100644
index cbf87af401..0000000000
--- a/drivers/net/tap/Makefile
+++ /dev/null
@@ -1,97 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_tap.a
-
-EXPORT_MAP := rte_pmd_tap_version.map
-
-#
-# TAP_MAX_QUEUES must be a power of 2
-#
-ifeq ($(TAP_MAX_QUEUES),)
- TAP_MAX_QUEUES = 16
-endif
-CFLAGS += -O3
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -I.
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_vdev -lrte_gso
-
-CFLAGS += -DTAP_MAX_QUEUES=$(TAP_MAX_QUEUES)
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += rte_eth_tap.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_netlink.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_tcmsgs.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_bpf_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_intr.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
-
-# Generate and clean-up tap_autoconf.h.
-
-export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS
-export AUTO_CONFIG_CFLAGS = -Wno-error
-
-ifndef V
-AUTOCONF_OUTPUT := >/dev/null
-endif
-
-tap_autoconf.h.new: FORCE
-
-tap_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh
- $Q $(RM) -f -- '$@'
- $Q sh -- '$<' '$@' \
- HAVE_TC_FLOWER \
- linux/pkt_cls.h \
- enum TCA_FLOWER_UNSPEC \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_TC_VLAN_ID \
- linux/pkt_cls.h \
- enum TCA_FLOWER_KEY_VLAN_PRIO \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_TC_BPF \
- linux/pkt_cls.h \
- enum TCA_BPF_UNSPEC \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_TC_BPF_FD \
- linux/pkt_cls.h \
- enum TCA_BPF_FD \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_TC_ACT_BPF \
- linux/tc_act/tc_bpf.h \
- enum TCA_ACT_BPF_UNSPEC \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_TC_ACT_BPF_FD \
- linux/tc_act/tc_bpf.h \
- enum TCA_ACT_BPF_FD \
- $(AUTOCONF_OUTPUT)
-
-# Create tap_autoconf.h or update it in case it differs from the new one.
-
-tap_autoconf.h: tap_autoconf.h.new
- $Q [ -f '$@' ] && \
- cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
- mv '$<' '$@'
-
-$(SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP):.c=.o): tap_autoconf.h
-
-clean_tap: FORCE
- $Q rm -f -- tap_autoconf.h tap_autoconf.h.new
-
-clean: clean_tap
diff --git a/drivers/net/thunderx/Makefile b/drivers/net/thunderx/Makefile
deleted file mode 100644
index 149638a499..0000000000
--- a/drivers/net/thunderx/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_thunderx_nicvf.a
-
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lm
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_thunderx_version.map
-
-OBJS_BASE_DRIVER=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(OBJS_BASE_DRIVER), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_hw.c
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_mbox.c
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_bsvf.c
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_svf.c
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_nicvf_rxtx.o += -fno-prefetch-loop-arrays
-endif
-CFLAGS_nicvf_rxtx.o += -Ofast
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/vdev_netvsc/Makefile b/drivers/net/vdev_netvsc/Makefile
deleted file mode 100644
index 01d26fb798..0000000000
--- a/drivers/net/vdev_netvsc/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 6WIND S.A.
-# Copyright 2017 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Properties of the generated library.
-LIB = librte_pmd_vdev_netvsc.a
-EXPORT_MAP := rte_pmd_vdev_netvsc_version.map
-
-# Additional compilation flags.
-CFLAGS += -O3
-CFLAGS += -g
-CFLAGS += -Wall -Wextra
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += $(WERROR_FLAGS)
-
-# Dependencies.
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_ethdev
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_net
-
-# Source files.
-SRCS-$(CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD) += vdev_netvsc.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/vhost/Makefile b/drivers/net/vhost/Makefile
deleted file mode 100644
index 0461e29f2c..0000000000
--- a/drivers/net/vhost/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_vhost.a
-
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_vhost
-LDLIBS += -lrte_bus_vdev
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_vhost_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_VHOST) += rte_eth_vhost.c
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_eth_vhost.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/virtio/Makefile b/drivers/net/virtio/Makefile
deleted file mode 100644
index 102b1deab8..0000000000
--- a/drivers/net/virtio/Makefile
+++ /dev/null
@@ -1,82 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_virtio.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-ifeq ($(CONFIG_RTE_VIRTIO_USER),y)
-LDLIBS += -lrte_bus_vdev
-endif
-
-EXPORT_MAP := rte_pmd_virtio_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtqueue.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_pci.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_simple.c
-
-ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_simple_sse.c
-else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y)
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_simple_altivec.c
-else ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_simple_neon.c
-endif
-
-ifneq ($(FORCE_DISABLE_AVX512), y)
- CC_AVX512_SUPPORT=\
- $(shell $(CC) -march=native -dM -E - </dev/null 2>&1 | \
- sed '/./{H;$$!d} ; x ; /AVX512F/!d; /AVX512BW/!d; /AVX512VL/!d' | \
- grep -q AVX512 && echo 1)
-endif
-
-ifeq ($(CC_AVX512_SUPPORT), 1)
-CFLAGS += -DCC_AVX512_SUPPORT
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_packed_avx.c
-
-ifeq ($(RTE_TOOLCHAIN), gcc)
-ifeq ($(shell test $(GCC_VERSION) -ge 83 && echo 1), 1)
-CFLAGS += -DVIRTIO_GCC_UNROLL_PRAGMA
-endif
-endif
-
-ifeq ($(RTE_TOOLCHAIN), clang)
-ifeq ($(shell test $(CLANG_MAJOR_VERSION)$(CLANG_MINOR_VERSION) -ge 37 && echo 1), 1)
-CFLAGS += -DVIRTIO_CLANG_UNROLL_PRAGMA
-endif
-endif
-
-ifeq ($(RTE_TOOLCHAIN), icc)
-ifeq ($(shell test $(ICC_MAJOR_VERSION) -ge 16 && echo 1), 1)
-CFLAGS += -DVIRTIO_ICC_UNROLL_PRAGMA
-endif
-endif
-
-CFLAGS_virtio_rxtx_packed_avx.o += -mavx512f -mavx512bw -mavx512vl
-ifeq ($(shell test $(GCC_VERSION) -ge 100 && echo 1), 1)
-CFLAGS_virtio_rxtx_packed_avx.o += -Wno-zero-length-bounds
-endif
-endif
-
-ifeq ($(CONFIG_RTE_VIRTIO_USER),y)
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user/vhost_user.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user/vhost_kernel.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user/vhost_kernel_tap.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user/virtio_user_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user_ethdev.c
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/vmxnet3/Makefile b/drivers/net/vmxnet3/Makefile
deleted file mode 100644
index 4390fedee0..0000000000
--- a/drivers/net/vmxnet3/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_vmxnet3_uio.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-#
-# CFLAGS for icc
-#
-CFLAGS_BASE_DRIVER = -diag-disable 174 -diag-disable 593 -diag-disable 869
-CFLAGS_BASE_DRIVER += -diag-disable 981 -diag-disable 2259
-
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-#
-# CFLAGS for clang
-#
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-
-else
-#
-# CFLAGS for gcc
-#
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS += -Wno-deprecated
-endif
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-VPATH += $(SRCDIR)/base
-
-EXPORT_MAP := rte_pmd_vmxnet3_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3_ethdev.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/Makefile b/drivers/raw/Makefile
deleted file mode 100644
index 80b043eb14..0000000000
--- a/drivers/raw/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# DIRS-$(<configuration>) += <directory>
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += skeleton
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV) += dpaa2_cmdif
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV) += dpaa2_qdma
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV) += ifpga
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += ioat
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV) += ntb
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) += octeontx2_dma
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += octeontx2_ep
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/raw/dpaa2_cmdif/Makefile b/drivers/raw/dpaa2_cmdif/Makefile
deleted file mode 100644
index 227ec4896e..0000000000
--- a/drivers/raw/dpaa2_cmdif/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_rawdev_dpaa2_cmdif.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-
-LDLIBS += -lrte_bus_fslmc
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_mempool_dpaa2
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_common_dpaax
-
-EXPORT_MAP := rte_rawdev_dpaa2_cmdif_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV) += dpaa2_cmdif.c
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV)-include += rte_pmd_dpaa2_cmdif.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/dpaa2_qdma/Makefile b/drivers/raw/dpaa2_qdma/Makefile
deleted file mode 100644
index 7b2abdddb4..0000000000
--- a/drivers/raw/dpaa2_qdma/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_rawdev_dpaa2_qdma.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-
-LDLIBS += -lrte_bus_fslmc
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_mempool
-LDLIBS += -lrte_mempool_dpaa2
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_ring
-LDLIBS += -lrte_common_dpaax
-
-EXPORT_MAP := rte_rawdev_dpaa2_qdma_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV) += dpaa2_qdma.c
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV)-include += rte_pmd_dpaa2_qdma.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/ifpga/Makefile b/drivers/raw/ifpga/Makefile
deleted file mode 100644
index 371e127f19..0000000000
--- a/drivers/raw/ifpga/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_rawdev_ifpga.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/bus/ifpga
-CFLAGS += -I$(RTE_SDK)/drivers/raw/ifpga_rawdev
-CFLAGS += -I$(RTE_SDK)/drivers/net/i40e
-CFLAGS += -I$(RTE_SDK)/drivers/net/ipn3ke
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_bus_ifpga
-LDLIBS += -lpthread
-LDLIBS += -lfdt
-LDLIBS += -lrte_pmd_i40e
-LDLIBS += -lrte_pmd_ipn3ke
-
-EXPORT_MAP := rte_rawdev_ifpga_version.map
-
-VPATH += $(SRCDIR)/base
-
-include $(RTE_SDK)/drivers/raw/ifpga/base/Makefile
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV) += ifpga_rawdev.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/ifpga/base/Makefile b/drivers/raw/ifpga/base/Makefile
deleted file mode 100644
index c5bbcbd5f8..0000000000
--- a/drivers/raw/ifpga/base/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-#SPDX-License-Identifier: BSD-3-Clause
-#Copyright(c) 2010-2018 Intel Corporation
-
-ifneq ($(CONFIG_RTE_LIBRTE_EAL),)
-OSDEP := osdep_rte
-else
-OSDEP := osdep_raw
-endif
-
-CFLAGS += -I$(RTE_SDK)/drivers/raw/ifpga_rawdev/base/$(OSDEP)
-
-SRCS-y += ifpga_api.c
-SRCS-y += ifpga_enumerate.c
-SRCS-y += ifpga_feature_dev.c
-SRCS-y += ifpga_fme.c
-SRCS-y += ifpga_fme_iperf.c
-SRCS-y += ifpga_fme_dperf.c
-SRCS-y += ifpga_fme_error.c
-SRCS-y += ifpga_port.c
-SRCS-y += ifpga_port_error.c
-SRCS-y += opae_hw_api.c
-SRCS-y += opae_ifpga_hw_api.c
-SRCS-y += opae_debug.c
-SRCS-y += ifpga_fme_pr.c
-SRCS-y += opae_spi.c
-SRCS-y += opae_spi_transaction.c
-SRCS-y += opae_intel_max10.c
-SRCS-y += opae_i2c.c
-SRCS-y += opae_at24_eeprom.c
-SRCS-y += opae_eth_group.c
-
-SRCS-y += $(wildcard $(SRCDIR)/base/$(OSDEP)/*.c)
diff --git a/drivers/raw/ioat/Makefile b/drivers/raw/ioat/Makefile
deleted file mode 100644
index 1609fe5e6c..0000000000
--- a/drivers/raw/ioat/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_rawdev_ioat.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lrte_eal -lrte_rawdev
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_mbuf -lrte_mempool
-
-# versioning export map
-EXPORT_MAP := rte_rawdev_ioat_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += ioat_rawdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += ioat_rawdev_test.c
-
-# export include files
-SYMLINK-y-include += rte_ioat_rawdev.h
-SYMLINK-y-include += rte_ioat_spec.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/ntb/Makefile b/drivers/raw/ntb/Makefile
deleted file mode 100644
index 8f0bff9b02..0000000000
--- a/drivers/raw/ntb/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_rawdev_ntb.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_rawdev
-
-EXPORT_MAP := rte_rawdev_ntb_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV) += ntb.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV) += ntb_hw_intel.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV)-include := rte_pmd_ntb.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/octeontx2_dma/Makefile b/drivers/raw/octeontx2_dma/Makefile
deleted file mode 100644
index c64ca3497a..0000000000
--- a/drivers/raw/octeontx2_dma/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_rawdev_octeontx2_dma.a
-
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2/
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2/
-CFLAGS += -I$(RTE_SDK)/drivers/raw/octeontx2_dma/
-LDLIBS += -lrte_eal -lrte_rawdev -lrte_bus_pci -lrte_mbuf
-LDLIBS += -lrte_common_octeontx2 -lrte_mempool
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_rawdev_octeontx2_dma_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) += otx2_dpi_rawdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) += otx2_dpi_msg.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) += otx2_dpi_test.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/octeontx2_ep/Makefile b/drivers/raw/octeontx2_ep/Makefile
deleted file mode 100644
index 1a54bf56f0..0000000000
--- a/drivers/raw/octeontx2_ep/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name
-LIB = librte_rawdev_octeontx2_ep.a
-
-# Build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2/
-CFLAGS += -I$(RTE_SDK)/drivers/raw/octeontx2_ep/
-
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_mempool
-LDLIBS += -lrte_common_octeontx2
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_rawdev_octeontx2_ep_version.map
-
-#
-# All source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += otx2_ep_rawdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += otx2_ep_enqdeq.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += otx2_ep_test.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += otx2_ep_vf.c
-
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/skeleton/Makefile b/drivers/raw/skeleton/Makefile
deleted file mode 100644
index 2ac66fbd45..0000000000
--- a/drivers/raw/skeleton/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_rawdev_skeleton.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_kvargs
-
-EXPORT_MAP := rte_rawdev_skeleton_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += skeleton_rawdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += skeleton_rawdev_test.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/regex/Makefile b/drivers/regex/Makefile
deleted file mode 100644
index 906b20546f..0000000000
--- a/drivers/regex/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2020 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/regex/mlx5/Makefile b/drivers/regex/mlx5/Makefile
deleted file mode 100644
index 11e3325feb..0000000000
--- a/drivers/regex/mlx5/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2020 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name.
-LIB = librte_pmd_mlx5_regex.a
-
-# Sources.
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_regex.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_rxp.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_regex_devx.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_regex_control.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_regex_fastpath.c
-
-# Basic CFLAGS.
-CFLAGS += -O3
-CFLAGS += -std=c11 -Wall -Wextra
-CFLAGS += -g
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5
-CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5/linux
-CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5/linux
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-strict-prototypes
-LDLIBS += -lrte_common_mlx5
-LDLIBS += -lm
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_regexdev
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_pci
-
-# A few warnings cannot be avoided in external headers.
-CFLAGS += -Wno-error=cast-qual
-
-EXPORT_MAP := rte_pmd_mlx5_regex_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/vdpa/Makefile b/drivers/vdpa/Makefile
deleted file mode 100644
index 6e8835948e..0000000000
--- a/drivers/vdpa/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2019 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_EAL_VFIO),y)
-DIRS-$(CONFIG_RTE_LIBRTE_IFC_PMD) += ifc
-endif
-
-DIRS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/vdpa/ifc/Makefile b/drivers/vdpa/ifc/Makefile
deleted file mode 100644
index b468bfdbdd..0000000000
--- a/drivers/vdpa/ifc/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ifc.a
-
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_pci -lrte_vhost -lrte_bus_pci
-LDLIBS += -lrte_kvargs
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-#
-# Add extra flags for base driver source files to disable warnings in them
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-
-VPATH += $(SRCDIR)/base
-
-EXPORT_MAP := rte_pmd_ifc_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IFC_PMD) += ifcvf_vdpa.c
-SRCS-$(CONFIG_RTE_LIBRTE_IFC_PMD) += ifcvf.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/vdpa/mlx5/Makefile b/drivers/vdpa/mlx5/Makefile
deleted file mode 100644
index d46699fbc9..0000000000
--- a/drivers/vdpa/mlx5/Makefile
+++ /dev/null
@@ -1,58 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2019 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name.
-LIB = librte_pmd_mlx5_vdpa.a
-
-# Sources.
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa_mem.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa_event.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa_virtq.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa_steer.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa_lm.c
-
-
-# Basic CFLAGS.
-CFLAGS += -O3
-CFLAGS += -std=c11 -Wall -Wextra
-CFLAGS += -g
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5/linux
-CFLAGS += -I$(RTE_SDK)/drivers/net/mlx5_vdpa
-CFLAGS += -I$(RTE_SDK)/lib/librte_sched
-CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-strict-prototypes
-LDLIBS += -lrte_common_mlx5
-LDLIBS += -lrte_eal -lrte_vhost -lrte_kvargs -lrte_pci -lrte_sched
-LDLIBS += -pthread
-
-# A few warnings cannot be avoided in external headers.
-CFLAGS += -Wno-error=cast-qual
-
-EXPORT_MAP := rte_pmd_mlx5_vdpa_version.map
-
-# DEBUG which is usually provided on the command-line may enable
-# CONFIG_RTE_LIBRTE_MLX5_DEBUG.
-ifeq ($(DEBUG),1)
-CONFIG_RTE_LIBRTE_MLX5_DEBUG := y
-endif
-
-# User-defined CFLAGS.
-ifeq ($(CONFIG_RTE_LIBRTE_MLX5_DEBUG),y)
-CFLAGS += -pedantic
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -DPEDANTIC
-endif
-AUTO_CONFIG_CFLAGS += -Wno-pedantic
-else
-CFLAGS += -UPEDANTIC
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/examples/Makefile b/examples/Makefile
deleted file mode 100644
index b7e99a2f78..0000000000
--- a/examples/Makefile
+++ /dev/null
@@ -1,90 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 6WIND S.A.
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_BBDEV) += bbdev_app
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bond
-DIRS-y += cmdline
-ifeq ($(CONFIG_RTE_LIBRTE_POWER),y)
-DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += distributor
-endif
-DIRS-y += ethtool
-DIRS-$(CONFIG_RTE_LIBRTE_EFD) += server_node_efd
-DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += fips_validation
-DIRS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += flow_classify
-DIRS-y += flow_filtering
-DIRS-y += helloworld
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += ioat
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += ip_pipeline
-ifeq ($(CONFIG_RTE_LIBRTE_LPM),y)
-DIRS-$(CONFIG_RTE_IP_FRAG) += ip_reassembly
-DIRS-$(CONFIG_RTE_IP_FRAG) += ip_fragmentation
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_ACL)$(CONFIG_RTE_LIBRTE_HASH)$(CONFIG_RTE_LIBRTE_LPM)$(CONFIG_RTE_LIBRTE_SECURITY),yyyy)
-DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += ipsec-secgw
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_HASH) += ipv4_multicast
-DIRS-$(CONFIG_RTE_LIBRTE_KNI) += kni
-DIRS-y += l2fwd
-DIRS-y += l2fwd-event
-ifneq ($(PQOS_INSTALL_PATH),)
-DIRS-y += l2fwd-cat
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += l2fwd-crypto
-DIRS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += l2fwd-jobstats
-DIRS-y += l2fwd-keepalive
-DIRS-y += l2fwd-keepalive/ka-agent
-ifeq ($(CONFIG_RTE_LIBRTE_HASH),y)
-DIRS-$(CONFIG_RTE_LIBRTE_LPM) += l3fwd
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_ACL) += l3fwd-acl
-ifeq ($(CONFIG_RTE_LIBRTE_LPM)$(CONFIG_RTE_LIBRTE_HASH),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_POWER) += l3fwd-power
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_GRAPH),y)
-DIRS-y += l3fwd-graph
-endif
-DIRS-y += link_status_interrupt
-DIRS-y += multi_process
-DIRS-y += ntb
-DIRS-$(CONFIG_RTE_LIBRTE_REORDER) += packet_ordering
-ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
-DIRS-y += performance-thread
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ptpclient
-DIRS-$(CONFIG_RTE_LIBRTE_METER) += qos_meter
-DIRS-$(CONFIG_RTE_LIBRTE_SCHED) += qos_sched
-DIRS-$(CONFIG_RTE_ETHDEV_RXTX_CALLBACKS) += rxtx_callbacks
-DIRS-y += service_cores
-DIRS-y += skeleton
-ifeq ($(CONFIG_RTE_LIBRTE_HASH),y)
-DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += tep_termination
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_TIMER) += timer
-DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += vhost vdpa vhost_blk
-ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
-DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += vhost_crypto
-endif
-DIRS-y += vmdq
-DIRS-y += vmdq_dcb
-ifeq ($(CONFIG_RTE_LIBRTE_POWER), y)
-ifeq ($(shell pkg-config --atleast-version=0.9.3 libvirt; echo $$?), 0)
-DIRS-y += vm_power_manager
-else
-$(info vm_power_manager requires libvirt >= 0.9.3)
-endif
-endif
-
-DIRS-y += eventdev_pipeline
-
-include $(RTE_SDK)/mk/rte.extsubdir.mk
diff --git a/kernel/Makefile b/kernel/Makefile
deleted file mode 100644
index 5d51fd94bb..0000000000
--- a/kernel/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += linux
-DIRS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += freebsd
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/kernel/freebsd/Makefile b/kernel/freebsd/Makefile
deleted file mode 100644
index 522d3f68ff..0000000000
--- a/kernel/freebsd/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += contigmem
-DIRS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += nic_uio
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/kernel/freebsd/contigmem/Makefile b/kernel/freebsd/contigmem/Makefile
deleted file mode 100644
index 428a7edee5..0000000000
--- a/kernel/freebsd/contigmem/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# module name and path
-#
-MODULE = contigmem
-
-#
-# CFLAGS
-#
-MODULE_CFLAGS += -I$(SRCDIR)
-MODULE_CFLAGS += -I$(RTE_OUTPUT)/include
-MODULE_CFLAGS += -Winline -Wall -Werror
-MODULE_CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := contigmem.c
-
-include $(RTE_SDK)/mk/rte.bsdmodule.mk
diff --git a/kernel/freebsd/nic_uio/Makefile b/kernel/freebsd/nic_uio/Makefile
deleted file mode 100644
index 376ef3a3ab..0000000000
--- a/kernel/freebsd/nic_uio/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# module name and path
-#
-MODULE = nic_uio
-
-#
-# CFLAGS
-#
-MODULE_CFLAGS += -I$(SRCDIR)
-MODULE_CFLAGS += -I$(RTE_OUTPUT)/include
-MODULE_CFLAGS += -Winline -Wall -Werror
-MODULE_CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := nic_uio.c
-
-include $(RTE_SDK)/mk/rte.bsdmodule.mk
diff --git a/kernel/linux/Makefile b/kernel/linux/Makefile
deleted file mode 100644
index c2c45a3e67..0000000000
--- a/kernel/linux/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_EAL_IGB_UIO) += igb_uio
-DIRS-$(CONFIG_RTE_KNI_KMOD) += kni
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/kernel/linux/igb_uio/Makefile b/kernel/linux/igb_uio/Makefile
deleted file mode 100644
index f83bcc7c69..0000000000
--- a/kernel/linux/igb_uio/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# module name and path
-#
-MODULE = igb_uio
-MODULE_PATH = drivers/net/igb_uio
-
-#
-# CFLAGS
-#
-MODULE_CFLAGS += -I$(SRCDIR) --param max-inline-insns-single=100
-MODULE_CFLAGS += -I$(RTE_OUTPUT)/include
-MODULE_CFLAGS += -Winline -Wall -Werror
-MODULE_CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := igb_uio.c
-
-include $(RTE_SDK)/mk/rte.module.mk
diff --git a/kernel/linux/kni/Makefile b/kernel/linux/kni/Makefile
deleted file mode 100644
index 595bac2612..0000000000
--- a/kernel/linux/kni/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# module name and path
-#
-MODULE = rte_kni
-
-#
-# CFLAGS
-#
-MODULE_CFLAGS += -I$(SRCDIR) --param max-inline-insns-single=50
-MODULE_CFLAGS += -I$(RTE_OUTPUT)/include
-MODULE_CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-MODULE_CFLAGS += -Wall -Werror
-
--include /etc/lsb-release
-
-ifeq ($(DISTRIB_ID),Ubuntu)
-MODULE_CFLAGS += -DUBUNTU_RELEASE_CODE=$(subst .,,$(DISTRIB_RELEASE))
-UBUNTU_KERNEL_CODE := $(shell echo `grep UTS_RELEASE $(RTE_KERNELDIR)/include/generated/utsrelease.h \
- | cut -d '"' -f2 | cut -d- -f1,2 | tr .- ,`,1)
-MODULE_CFLAGS += -D"UBUNTU_KERNEL_CODE=UBUNTU_KERNEL_VERSION($(UBUNTU_KERNEL_CODE))"
-endif
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := kni_misc.c
-SRCS-y += kni_net.c
-
-include $(RTE_SDK)/mk/rte.module.mk
diff --git a/lib/Makefile b/lib/Makefile
deleted file mode 100644
index 8f5b68a2d4..0000000000
--- a/lib/Makefile
+++ /dev/null
@@ -1,138 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_KVARGS) += librte_kvargs
-DIRS-y += librte_telemetry
-DIRS-$(CONFIG_RTE_LIBRTE_EAL) += librte_eal
-DEPDIRS-librte_eal := librte_kvargs librte_telemetry
-DIRS-$(CONFIG_RTE_LIBRTE_PCI) += librte_pci
-DEPDIRS-librte_pci := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_RING) += librte_ring
-DEPDIRS-librte_ring := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_STACK) += librte_stack
-DEPDIRS-librte_stack := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += librte_mempool
-DEPDIRS-librte_mempool := librte_eal librte_ring
-DIRS-$(CONFIG_RTE_LIBRTE_MBUF) += librte_mbuf
-DEPDIRS-librte_mbuf := librte_eal librte_mempool
-DIRS-$(CONFIG_RTE_LIBRTE_TIMER) += librte_timer
-DEPDIRS-librte_timer := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_CFGFILE) += librte_cfgfile
-DEPDIRS-librte_cfgfile := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += librte_cmdline
-DEPDIRS-librte_cmdline := librte_eal librte_net
-DIRS-$(CONFIG_RTE_LIBRTE_ETHER) += librte_ethdev
-DEPDIRS-librte_ethdev := librte_net librte_eal librte_mempool librte_ring
-DEPDIRS-librte_ethdev += librte_mbuf
-DEPDIRS-librte_ethdev += librte_kvargs
-DEPDIRS-librte_ethdev += librte_meter
-DIRS-$(CONFIG_RTE_LIBRTE_BBDEV) += librte_bbdev
-DEPDIRS-librte_bbdev := librte_eal librte_mempool librte_mbuf
-DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += librte_cryptodev
-DEPDIRS-librte_cryptodev := librte_eal librte_mempool librte_ring librte_mbuf
-DEPDIRS-librte_cryptodev += librte_kvargs
-DIRS-$(CONFIG_RTE_LIBRTE_SECURITY) += librte_security
-DEPDIRS-librte_security := librte_eal librte_mempool librte_ring librte_mbuf
-DEPDIRS-librte_security += librte_ethdev
-DEPDIRS-librte_security += librte_cryptodev
-DIRS-$(CONFIG_RTE_LIBRTE_COMPRESSDEV) += librte_compressdev
-DEPDIRS-librte_compressdev := librte_eal librte_mempool librte_ring librte_mbuf
-DEPDIRS-librte_compressdev += librte_kvargs
-DIRS-$(CONFIG_RTE_LIBRTE_REGEXDEV) += librte_regexdev
-DEPDIRS-librte_regexdev := librte_eal librte_mbuf
-DIRS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += librte_eventdev
-DEPDIRS-librte_eventdev := librte_eal librte_ring librte_ethdev librte_hash \
- librte_mempool librte_timer librte_cryptodev
-DIRS-$(CONFIG_RTE_LIBRTE_RAWDEV) += librte_rawdev
-DEPDIRS-librte_rawdev := librte_eal librte_ethdev
-DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += librte_vhost
-DEPDIRS-librte_vhost := librte_eal librte_mempool librte_mbuf librte_ethdev \
- librte_net librte_hash librte_cryptodev
-DIRS-$(CONFIG_RTE_LIBRTE_HASH) += librte_hash
-DEPDIRS-librte_hash := librte_eal librte_ring
-DIRS-$(CONFIG_RTE_LIBRTE_EFD) += librte_efd
-DEPDIRS-librte_efd := librte_eal librte_ring librte_hash
-DIRS-$(CONFIG_RTE_LIBRTE_RIB) += librte_rib
-DEPDIRS-librte_rib := librte_eal librte_mempool
-DIRS-$(CONFIG_RTE_LIBRTE_FIB) += librte_fib
-DEPDIRS-librte_fib := librte_eal librte_rib
-DIRS-$(CONFIG_RTE_LIBRTE_LPM) += librte_lpm
-DEPDIRS-librte_lpm := librte_eal librte_hash librte_rcu
-DIRS-$(CONFIG_RTE_LIBRTE_ACL) += librte_acl
-DEPDIRS-librte_acl := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_MEMBER) += librte_member
-DEPDIRS-librte_member := librte_eal librte_hash
-DIRS-$(CONFIG_RTE_LIBRTE_NET) += librte_net
-DEPDIRS-librte_net := librte_mbuf librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += librte_ip_frag
-DEPDIRS-librte_ip_frag := librte_eal librte_mempool librte_mbuf librte_ethdev
-DEPDIRS-librte_ip_frag += librte_hash
-DIRS-$(CONFIG_RTE_LIBRTE_GRO) += librte_gro
-DEPDIRS-librte_gro := librte_eal librte_mbuf librte_ethdev librte_net
-DIRS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += librte_jobstats
-DEPDIRS-librte_jobstats := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_METRICS) += librte_metrics
-DEPDIRS-librte_metrics := librte_eal librte_ethdev
-ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y)
-DEPDIRS-librte_metrics += librte_telemetry
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_BITRATE) += librte_bitratestats
-DEPDIRS-librte_bitratestats := librte_eal librte_metrics librte_ethdev
-DIRS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS) += librte_latencystats
-DEPDIRS-librte_latencystats := librte_eal librte_metrics librte_ethdev librte_mbuf
-DIRS-$(CONFIG_RTE_LIBRTE_POWER) += librte_power
-DEPDIRS-librte_power := librte_eal librte_timer
-DIRS-$(CONFIG_RTE_LIBRTE_METER) += librte_meter
-DEPDIRS-librte_meter := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += librte_flow_classify
-DEPDIRS-librte_flow_classify := librte_net librte_table librte_acl
-DIRS-$(CONFIG_RTE_LIBRTE_SCHED) += librte_sched
-DEPDIRS-librte_sched := librte_eal librte_mempool librte_mbuf librte_net
-DEPDIRS-librte_sched += librte_timer
-DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += librte_distributor
-DEPDIRS-librte_distributor := librte_eal librte_mbuf librte_ethdev
-DIRS-$(CONFIG_RTE_LIBRTE_PORT) += librte_port
-DEPDIRS-librte_port := librte_eal librte_mempool librte_mbuf librte_ethdev
-DEPDIRS-librte_port += librte_ip_frag librte_sched librte_eventdev
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-DEPDIRS-librte_port += librte_kni
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_TABLE) += librte_table
-DEPDIRS-librte_table := librte_eal librte_mempool librte_mbuf
-DEPDIRS-librte_table += librte_port librte_lpm librte_hash
-ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
-DEPDIRS-librte_table += librte_acl
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += librte_pipeline
-DEPDIRS-librte_pipeline := librte_eal librte_mempool librte_mbuf
-DEPDIRS-librte_pipeline += librte_table librte_port
-DIRS-$(CONFIG_RTE_LIBRTE_REORDER) += librte_reorder
-DEPDIRS-librte_reorder := librte_eal librte_mempool librte_mbuf
-DIRS-$(CONFIG_RTE_LIBRTE_PDUMP) += librte_pdump
-DEPDIRS-librte_pdump := librte_eal librte_mempool librte_mbuf librte_ethdev
-DIRS-$(CONFIG_RTE_LIBRTE_GSO) += librte_gso
-DEPDIRS-librte_gso := librte_eal librte_mbuf librte_ethdev librte_net
-DEPDIRS-librte_gso += librte_mempool
-DIRS-$(CONFIG_RTE_LIBRTE_BPF) += librte_bpf
-DEPDIRS-librte_bpf := librte_eal librte_mempool librte_mbuf librte_ethdev
-DIRS-$(CONFIG_RTE_LIBRTE_IPSEC) += librte_ipsec
-DEPDIRS-librte_ipsec := librte_eal librte_mbuf librte_cryptodev librte_security \
- librte_net librte_hash
-DIRS-$(CONFIG_RTE_LIBRTE_RCU) += librte_rcu
-DEPDIRS-librte_rcu := librte_eal librte_ring
-
-DIRS-$(CONFIG_RTE_LIBRTE_GRAPH) += librte_graph
-DEPDIRS-librte_graph := librte_eal
-
-DIRS-$(CONFIG_RTE_LIBRTE_NODE) += librte_node
-DEPDIRS-librte_node := librte_graph librte_lpm librte_ethdev librte_mbuf
-
-ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-DIRS-$(CONFIG_RTE_LIBRTE_KNI) += librte_kni
-endif
-DEPDIRS-librte_kni := librte_eal librte_mempool librte_mbuf librte_ethdev
-DEPDIRS-librte_kni += librte_pci
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile
deleted file mode 100644
index f4332b0448..0000000000
--- a/lib/librte_acl/Makefile
+++ /dev/null
@@ -1,65 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_acl.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_acl_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += rte_acl.c
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_bld.c
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_gen.c
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_scalar.c
-
-ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_neon.c
-CFLAGS_acl_run_neon.o += -flax-vector-conversions
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_acl_run_neon.o += -Wno-maybe-uninitialized
-endif
-else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y)
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_altivec.c
-else
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_sse.c
-endif
-
-#
-# If the compiler supports AVX2 instructions,
-# then add support for AVX2 classify method.
-#
-
-#check if flag for AVX2 is already on, if not set it up manually
-ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
- CC_AVX2_SUPPORT=1
-else
- CC_AVX2_SUPPORT=\
- $(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
- grep -q AVX2 && echo 1)
- ifeq ($(CC_AVX2_SUPPORT), 1)
- ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
- CFLAGS_acl_run_avx2.o += -march=core-avx2
- else
- CFLAGS_acl_run_avx2.o += -mavx2
- endif
- endif
-endif
-
-ifeq ($(CC_AVX2_SUPPORT), 1)
- SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_avx2.c
- CFLAGS_rte_acl.o += -DCC_AVX2_SUPPORT
-endif
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_ACL)-include := rte_acl_osdep.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_ACL)-include += rte_acl.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_bbdev/Makefile b/lib/librte_bbdev/Makefile
deleted file mode 100644
index 9d7576b358..0000000000
--- a/lib/librte_bbdev/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_bbdev.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf
-
-# library source files
-SRCS-y += rte_bbdev.c
-
-# export include files
-SYMLINK-y-include += rte_bbdev_op.h
-SYMLINK-y-include += rte_bbdev.h
-SYMLINK-y-include += rte_bbdev_pmd.h
-
-# versioning export map
-EXPORT_MAP := rte_bbdev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_bitratestats/Makefile b/lib/librte_bitratestats/Makefile
deleted file mode 100644
index 4862c44b83..0000000000
--- a/lib/librte_bitratestats/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_bitratestats.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal -lrte_metrics -lrte_ethdev
-
-EXPORT_MAP := rte_bitratestats_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_BITRATE) := rte_bitrate.c
-
-# Install header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_BITRATE)-include += rte_bitrate.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_bpf/Makefile b/lib/librte_bpf/Makefile
deleted file mode 100644
index 3be6750432..0000000000
--- a/lib/librte_bpf/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_bpf.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_net -lrte_eal
-LDLIBS += -lrte_mempool -lrte_ring
-LDLIBS += -lrte_mbuf -lrte_ethdev
-ifeq ($(CONFIG_RTE_LIBRTE_BPF_ELF),y)
-LDLIBS += -lelf
-endif
-
-EXPORT_MAP := rte_bpf_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf.c
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_exec.c
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_load.c
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_pkt.c
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_validate.c
-ifeq ($(CONFIG_RTE_LIBRTE_BPF_ELF),y)
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_load_elf.c
-endif
-ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_jit_x86.c
-else ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_jit_arm64.c
-endif
-
-# install header files
-SYMLINK-$(CONFIG_RTE_LIBRTE_BPF)-include += bpf_def.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_BPF)-include += rte_bpf.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_BPF)-include += rte_bpf_ethdev.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_cfgfile/Makefile b/lib/librte_cfgfile/Makefile
deleted file mode 100644
index 7c10a4e56c..0000000000
--- a/lib/librte_cfgfile/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_cfgfile.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(SRCDIR)/../librte_eal/include
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_cfgfile_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_CFGFILE) += rte_cfgfile.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_CFGFILE)-include += rte_cfgfile.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_cmdline/Makefile b/lib/librte_cmdline/Makefile
deleted file mode 100644
index 619d9a2426..0000000000
--- a/lib/librte_cmdline/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_cmdline.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-
-EXPORT_MAP := rte_cmdline_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) := cmdline.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_cirbuf.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse_etheraddr.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse_ipaddr.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse_num.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse_string.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_rdline.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_vt100.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_socket.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse_portlist.c
-
-LDLIBS += -lrte_net -lrte_eal
-
-# install includes
-INCS := cmdline.h cmdline_parse.h cmdline_parse_num.h cmdline_parse_ipaddr.h
-INCS += cmdline_parse_etheraddr.h cmdline_parse_string.h cmdline_rdline.h
-INCS += cmdline_vt100.h cmdline_socket.h cmdline_cirbuf.h cmdline_parse_portlist.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_CMDLINE)-include := $(INCS)
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_compressdev/Makefile b/lib/librte_compressdev/Makefile
deleted file mode 100644
index 53679d69b8..0000000000
--- a/lib/librte_compressdev/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017-2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_compressdev.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_kvargs
-
-# library source files
-SRCS-y += rte_compressdev.c rte_compressdev_pmd.c rte_comp.c
-
-# export include files
-SYMLINK-y-include += rte_comp.h
-SYMLINK-y-include += rte_compressdev.h
-# export include files (for PMDs)
-SYMLINK-y-include += rte_compressdev_pmd.h
-SYMLINK-y-include += rte_compressdev_internal.h
-
-# versioning export map
-EXPORT_MAP := rte_compressdev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_cryptodev/Makefile b/lib/librte_cryptodev/Makefile
deleted file mode 100644
index 73e77a27c6..0000000000
--- a/lib/librte_cryptodev/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_cryptodev.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring -lrte_mbuf
-LDLIBS += -lrte_kvargs
-
-# library source files
-SRCS-y += rte_cryptodev.c rte_cryptodev_pmd.c cryptodev_trace_points.c
-
-# export include files
-SYMLINK-y-include += rte_crypto.h
-SYMLINK-y-include += rte_crypto_asym.h
-SYMLINK-y-include += rte_crypto_sym.h
-SYMLINK-y-include += rte_cryptodev.h
-SYMLINK-y-include += rte_cryptodev_pmd.h
-SYMLINK-y-include += rte_cryptodev_trace.h
-SYMLINK-y-include += rte_cryptodev_trace_fp.h
-
-# versioning export map
-EXPORT_MAP := rte_cryptodev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_distributor/Makefile b/lib/librte_distributor/Makefile
deleted file mode 100644
index fc32fb3a8f..0000000000
--- a/lib/librte_distributor/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_distributor.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev
-
-EXPORT_MAP := rte_distributor_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) := rte_distributor_single.c
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += rte_distributor.c
-ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += rte_distributor_match_sse.c
-else
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += rte_distributor_match_generic.c
-endif
-
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR)-include := rte_distributor.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eal/Makefile b/lib/librte_eal/Makefile
deleted file mode 100644
index 2fda40d230..0000000000
--- a/lib/librte_eal/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-y += include
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += linux
-DEPDIRS-linux := include
-DIRS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += freebsd
-DEPDIRS-freebsd := include
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/lib/librte_eal/freebsd/Makefile b/lib/librte_eal/freebsd/Makefile
deleted file mode 100644
index 9a89556742..0000000000
--- a/lib/librte_eal/freebsd/Makefile
+++ /dev/null
@@ -1,104 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_eal.a
-
-ARCH_DIR ?= $(RTE_ARCH)
-VPATH += $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)
-VPATH += $(RTE_SDK)/lib/librte_eal/unix
-VPATH += $(RTE_SDK)/lib/librte_eal/common
-
-CFLAGS += -I$(SRCDIR)/include
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-CFLAGS += $(WERROR_FLAGS) -O3
-
-LDLIBS += -lexecinfo
-LDLIBS += -lpthread
-LDLIBS += -lgcc_s
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_telemetry
-
-EXPORT_MAP := ../rte_eal_version.map
-
-# specific to freebsd exec-env
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) := eal.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_hugepage_info.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_debug.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_interrupts.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_alarm.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_dev.c
-
-# from common dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_config.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memzone.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_log.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_launch.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_mcfg.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_tailqs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_errno.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_hypervisor.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_string_fns.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_hexdump.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_debug.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_devargs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_class.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_bus.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_dev.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_options.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_proc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_fbarray.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_uuid.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_trace.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_trace_ctf.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_trace_points.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_trace_utils.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_malloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += hotplug_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_elem.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_heap.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_keepalive.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_service.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_random.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_reciprocal.c
-
-# from unix dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_file.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_unix_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_unix_timer.c
-
-# from arch dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_hypervisor.c
-SRCS-$(CONFIG_RTE_ARCH_X86) += rte_spinlock.c
-SRCS-y += rte_cycles.c
-
-CFLAGS_eal_common_cpuflags.o := $(CPUFLAGS_LIST)
-
-# workaround for a gcc bug with noreturn attribute
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_eal_thread.o += -Wno-return-type
-CFLAGS_eal_hpet.o += -Wno-return-type
-endif
-
-INC := rte_os.h
-
-SYMLINK-$(CONFIG_RTE_EXEC_ENV_FREEBSD)-include := $(addprefix include/,$(INC))
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eal/include/Makefile b/lib/librte_eal/include/Makefile
deleted file mode 100644
index eb99190d10..0000000000
--- a/lib/librte_eal/include/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include := \
- $(sort $(notdir \
- $(wildcard $(RTE_SDK)/lib/librte_eal/include/*.h)))
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include/generic := \
- $(sort $(addprefix generic/, $(notdir \
- $(wildcard $(RTE_SDK)/lib/librte_eal/include/generic/*.h))))
-
-ARCH_DIR ?= $(RTE_ARCH)
-SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include += \
- $(sort $(addprefix ../$(ARCH_DIR)/include/, $(notdir \
- $(wildcard $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)/include/*.h))))
-
-include $(RTE_SDK)/mk/rte.install.mk
diff --git a/lib/librte_eal/linux/Makefile b/lib/librte_eal/linux/Makefile
deleted file mode 100644
index 9939b3d147..0000000000
--- a/lib/librte_eal/linux/Makefile
+++ /dev/null
@@ -1,112 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_eal.a
-
-ARCH_DIR ?= $(RTE_ARCH)
-VPATH += $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)
-VPATH += $(RTE_SDK)/lib/librte_eal/unix
-VPATH += $(RTE_SDK)/lib/librte_eal/common
-
-CFLAGS += -I$(SRCDIR)/include
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-CFLAGS += $(WERROR_FLAGS) -O3
-
-LDLIBS += -ldl
-LDLIBS += -lpthread
-LDLIBS += -lgcc_s
-LDLIBS += -lrt
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_telemetry
-ifeq ($(CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES),y)
-LDLIBS += -lnuma
-endif
-
-EXPORT_MAP := ../rte_eal_version.map
-
-# specific to linux exec-env
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) := eal.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_hugepage_info.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_log.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_vfio.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_vfio_mp_sync.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_debug.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_interrupts.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_alarm.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_dev.c
-
-# from common dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_config.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memzone.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_log.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_launch.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_dynmem.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_mcfg.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_tailqs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_errno.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_hypervisor.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_string_fns.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_hexdump.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_debug.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_devargs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_class.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_bus.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_dev.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_options.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_proc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_fbarray.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_uuid.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_trace.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_trace_ctf.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_trace_points.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_trace_utils.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_malloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += hotplug_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_elem.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_heap.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_keepalive.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_service.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_random.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_reciprocal.c
-
-# from unix dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_file.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_unix_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_unix_timer.c
-
-# from arch dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_hypervisor.c
-SRCS-$(CONFIG_RTE_ARCH_X86) += rte_spinlock.c
-SRCS-y += rte_cycles.c
-
-CFLAGS_eal_common_cpuflags.o := $(CPUFLAGS_LIST)
-
-# workaround for a gcc bug with noreturn attribute
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_eal_thread.o += -Wno-return-type
-endif
-
-INC := rte_kni_common.h
-INC += rte_os.h
-
-SYMLINK-$(CONFIG_RTE_EXEC_ENV_LINUX)-include := $(addprefix include/,$(INC))
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_efd/Makefile b/lib/librte_efd/Makefile
deleted file mode 100644
index 2dc97132e0..0000000000
--- a/lib/librte_efd/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_efd.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_ring -lrte_hash
-
-EXPORT_MAP := rte_efd_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_EFD) := rte_efd.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_EFD)-include := rte_efd.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_ethdev/Makefile b/lib/librte_ethdev/Makefile
deleted file mode 100644
index 47747150b2..0000000000
--- a/lib/librte_ethdev/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_ethdev.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_net -lrte_eal -lrte_mempool -lrte_ring
-LDLIBS += -lrte_mbuf -lrte_kvargs -lrte_meter -lrte_telemetry
-
-EXPORT_MAP := rte_ethdev_version.map
-
-SRCS-y += ethdev_private.c
-SRCS-y += rte_ethdev.c
-SRCS-y += rte_class_eth.c
-SRCS-y += rte_flow.c
-SRCS-y += rte_tm.c
-SRCS-y += rte_mtr.c
-SRCS-y += ethdev_profile.c
-SRCS-y += ethdev_trace_points.c
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_ethdev.h
-SYMLINK-y-include += rte_ethdev_driver.h
-SYMLINK-y-include += rte_ethdev_core.h
-SYMLINK-y-include += rte_ethdev_pci.h
-SYMLINK-y-include += rte_ethdev_trace.h
-SYMLINK-y-include += rte_ethdev_trace_fp.h
-SYMLINK-y-include += rte_ethdev_vdev.h
-SYMLINK-y-include += rte_eth_ctrl.h
-SYMLINK-y-include += rte_dev_info.h
-SYMLINK-y-include += rte_flow.h
-SYMLINK-y-include += rte_flow_driver.h
-SYMLINK-y-include += rte_tm.h
-SYMLINK-y-include += rte_tm_driver.h
-SYMLINK-y-include += rte_mtr.h
-SYMLINK-y-include += rte_mtr_driver.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eventdev/Makefile b/lib/librte_eventdev/Makefile
deleted file mode 100644
index 0715256bb4..0000000000
--- a/lib/librte_eventdev/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_eventdev.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-CFLAGS += -DLINUX
-else
-CFLAGS += -DBSD
-endif
-LDLIBS += -lrte_eal -lrte_ring -lrte_ethdev -lrte_hash -lrte_mempool -lrte_timer
-LDLIBS += -lrte_mbuf -lrte_cryptodev -lpthread
-
-# library source files
-SRCS-y += rte_eventdev.c
-SRCS-y += rte_event_ring.c
-SRCS-y += eventdev_trace_points.c
-SRCS-y += rte_event_eth_rx_adapter.c
-SRCS-y += rte_event_timer_adapter.c
-SRCS-y += rte_event_crypto_adapter.c
-SRCS-y += rte_event_eth_tx_adapter.c
-
-# export include files
-SYMLINK-y-include += rte_eventdev.h
-SYMLINK-y-include += rte_eventdev_pmd.h
-SYMLINK-y-include += rte_eventdev_pmd_pci.h
-SYMLINK-y-include += rte_eventdev_pmd_vdev.h
-SYMLINK-y-include += rte_eventdev_trace.h
-SYMLINK-y-include += rte_eventdev_trace_fp.h
-SYMLINK-y-include += rte_event_ring.h
-SYMLINK-y-include += rte_event_eth_rx_adapter.h
-SYMLINK-y-include += rte_event_timer_adapter.h
-SYMLINK-y-include += rte_event_timer_adapter_pmd.h
-SYMLINK-y-include += rte_event_crypto_adapter.h
-SYMLINK-y-include += rte_event_eth_tx_adapter.h
-
-# versioning export map
-EXPORT_MAP := rte_eventdev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_fib/Makefile b/lib/librte_fib/Makefile
deleted file mode 100644
index 1dd2a495b1..0000000000
--- a/lib/librte_fib/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Vladimir Medvedkin <medvedkinv@gmail.com>
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_fib.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_rib
-
-EXPORT_MAP := rte_fib_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_FIB) := rte_fib.c rte_fib6.c dir24_8.c trie.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_FIB)-include := rte_fib.h rte_fib6.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_flow_classify/Makefile b/lib/librte_flow_classify/Makefile
deleted file mode 100644
index ca3cae82dd..0000000000
--- a/lib/librte_flow_classify/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_flow_classify.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-
-EXPORT_MAP := rte_flow_classify_version.map
-
-LDLIBS += -lrte_eal -lrte_ethdev -lrte_net -lrte_table -lrte_acl
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += rte_flow_classify.c
-SRCS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += rte_flow_classify_parse.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY)-include := rte_flow_classify.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_graph/Makefile b/lib/librte_graph/Makefile
deleted file mode 100644
index b66279c675..0000000000
--- a/lib/librte_graph/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2020 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_graph.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_graph_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += node.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph_debug.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph_populate.c
-
-# install header files
-SYMLINK-$(CONFIG_RTE_LIBRTE_GRAPH)-include += rte_graph.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_GRAPH)-include += rte_graph_worker.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_gro/Makefile b/lib/librte_gro/Makefile
deleted file mode 100644
index e848687acd..0000000000
--- a/lib/librte_gro/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_gro.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev -lrte_net
-
-EXPORT_MAP := rte_gro_version.map
-
-# source files
-SRCS-$(CONFIG_RTE_LIBRTE_GRO) += rte_gro.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRO) += gro_tcp4.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRO) += gro_vxlan_tcp4.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_GRO)-include += rte_gro.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_gso/Makefile b/lib/librte_gso/Makefile
deleted file mode 100644
index a34846e920..0000000000
--- a/lib/librte_gso/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_gso.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev -lrte_net
-LDLIBS += -lrte_mempool
-
-EXPORT_MAP := rte_gso_version.map
-
-#source files
-SRCS-$(CONFIG_RTE_LIBRTE_GSO) += rte_gso.c
-SRCS-$(CONFIG_RTE_LIBRTE_GSO) += gso_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_GSO) += gso_tcp4.c
-SRCS-$(CONFIG_RTE_LIBRTE_GSO) += gso_tunnel_tcp4.c
-SRCS-$(CONFIG_RTE_LIBRTE_GSO) += gso_udp4.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_GSO)-include += rte_gso.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_hash/Makefile b/lib/librte_hash/Makefile
deleted file mode 100644
index ec9f864992..0000000000
--- a/lib/librte_hash/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_hash.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_ring
-
-EXPORT_MAP := rte_hash_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) := rte_cuckoo_hash.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += rte_fbk_hash.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include := rte_hash.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include += rte_hash_crc.h
-ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
-ifneq ($(findstring RTE_MACHINE_CPUFLAG_CRC32,$(CFLAGS)),)
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include += rte_crc_arm64.h
-endif
-endif
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include += rte_jhash.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include += rte_thash.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include += rte_fbk_hash.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_ip_frag/Makefile b/lib/librte_ip_frag/Makefile
deleted file mode 100644
index 6b80d9f1f2..0000000000
--- a/lib/librte_ip_frag/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_ip_frag.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev
-LDLIBS += -lrte_hash
-
-EXPORT_MAP := rte_ip_frag_version.map
-
-#source files
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_fragmentation.c
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv6_fragmentation.c
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_reassembly.c
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv6_reassembly.c
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ip_frag_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += ip_frag_internal.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_IP_FRAG)-include += rte_ip_frag.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_ipsec/Makefile b/lib/librte_ipsec/Makefile
deleted file mode 100644
index e4c69646b0..0000000000
--- a/lib/librte_ipsec/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_ipsec.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_net
-LDLIBS += -lrte_cryptodev -lrte_security -lrte_hash
-
-EXPORT_MAP := rte_ipsec_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += esp_inb.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += esp_outb.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += sa.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += ses.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += ipsec_sad.c
-
-# install header files
-SYMLINK-$(CONFIG_RTE_LIBRTE_IPSEC)-include += rte_ipsec.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_IPSEC)-include += rte_ipsec_group.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_IPSEC)-include += rte_ipsec_sa.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_IPSEC)-include += rte_ipsec_sad.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_jobstats/Makefile b/lib/librte_jobstats/Makefile
deleted file mode 100644
index b30d046829..0000000000
--- a/lib/librte_jobstats/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_jobstats.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_jobstats_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_JOBSTATS) := rte_jobstats.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_JOBSTATS)-include := rte_jobstats.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_kni/Makefile b/lib/librte_kni/Makefile
deleted file mode 100644
index 9d440aa135..0000000000
--- a/lib/librte_kni/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_kni.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev
-
-EXPORT_MAP := rte_kni_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_KNI) := rte_kni.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_KNI)-include := rte_kni.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_kvargs/Makefile b/lib/librte_kvargs/Makefile
deleted file mode 100644
index 24b1c3c5b9..0000000000
--- a/lib/librte_kvargs/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2014 6WIND S.A.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_kvargs.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-
-EXPORT_MAP := rte_kvargs_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) := rte_kvargs.c
-
-# install includes
-INCS := rte_kvargs.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_KVARGS)-include := $(INCS)
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_latencystats/Makefile b/lib/librte_latencystats/Makefile
deleted file mode 100644
index b19e0b1788..0000000000
--- a/lib/librte_latencystats/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_latencystats.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lm
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_metrics -lrte_ethdev -lrte_mbuf
-
-EXPORT_MAP := rte_latencystats_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS) := rte_latencystats.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_LATENCY_STATS)-include := rte_latencystats.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_lpm/Makefile b/lib/librte_lpm/Makefile
deleted file mode 100644
index 6f06c5c034..0000000000
--- a/lib/librte_lpm/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_lpm.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_hash -lrte_rcu
-
-EXPORT_MAP := rte_lpm_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_LPM) := rte_lpm.c rte_lpm6.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_LPM)-include := rte_lpm.h rte_lpm6.h
-
-ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
-SYMLINK-$(CONFIG_RTE_LIBRTE_LPM)-include += rte_lpm_neon.h
-else ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_LPM)-include += rte_lpm_sse.h
-else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_LPM)-include += rte_lpm_altivec.h
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_mbuf/Makefile b/lib/librte_mbuf/Makefile
deleted file mode 100644
index 41ea5496e3..0000000000
--- a/lib/librte_mbuf/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_mbuf.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-
-LDLIBS += -lrte_eal -lrte_mempool
-
-EXPORT_MAP := rte_mbuf_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_MBUF) := rte_mbuf.c rte_mbuf_ptype.c rte_mbuf_pool_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_MBUF) += rte_mbuf_dyn.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_MBUF)-include := rte_mbuf.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MBUF)-include += rte_mbuf_core.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MBUF)-include += rte_mbuf_ptype.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MBUF)-include += rte_mbuf_pool_ops.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MBUF)-include += rte_mbuf_dyn.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_member/Makefile b/lib/librte_member/Makefile
deleted file mode 100644
index ef9e2faeaf..0000000000
--- a/lib/librte_member/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_member.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += $(WERROR_FLAGS) -O3
-
-LDLIBS += -lm
-LDLIBS += -lrte_eal -lrte_hash
-
-EXPORT_MAP := rte_member_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_MEMBER) += rte_member.c rte_member_ht.c rte_member_vbf.c
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_MEMBER)-include := rte_member.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_mempool/Makefile b/lib/librte_mempool/Makefile
deleted file mode 100644
index 432d6217ec..0000000000
--- a/lib/librte_mempool/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_mempool.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal -lrte_ring
-
-EXPORT_MAP := rte_mempool_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool.c
-SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool_ops_default.c
-SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += mempool_trace_points.c
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_MEMPOOL)-include := rte_mempool.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MEMPOOL)-include += rte_mempool_trace.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MEMPOOL)-include += rte_mempool_trace_fp.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_meter/Makefile b/lib/librte_meter/Makefile
deleted file mode 100644
index 48366e82b0..0000000000
--- a/lib/librte_meter/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_meter.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lm
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_meter_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_METER) := rte_meter.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_METER)-include := rte_meter.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_metrics/Makefile b/lib/librte_metrics/Makefile
deleted file mode 100644
index 1264d3bbb0..0000000000
--- a/lib/librte_metrics/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_metrics.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_metrics_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_METRICS) := rte_metrics.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y)
-SRCS-y += rte_metrics_telemetry.c
-SYMLINK-$(CONFIG_RTE_LIBRTE_METRICS)-include += rte_metrics_telemetry.h
-
-LDLIBS += -lrte_ethdev -lrte_telemetry
-LDLIBS += -ljansson
-
-CFLAGS += -I$(RTE_SDK)/lib/librte_telemetry/
-endif
-
-# Install header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_METRICS)-include += rte_metrics.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_net/Makefile b/lib/librte_net/Makefile
deleted file mode 100644
index 9830e771b3..0000000000
--- a/lib/librte_net/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_net.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_mbuf -lrte_eal -lrte_mempool
-
-EXPORT_MAP := rte_net_version.map
-SRCS-$(CONFIG_RTE_LIBRTE_NET) := rte_net.c
-SRCS-$(CONFIG_RTE_LIBRTE_NET) += rte_net_crc.c
-SRCS-$(CONFIG_RTE_LIBRTE_NET) += rte_ether.c
-SRCS-$(CONFIG_RTE_LIBRTE_NET) += rte_arp.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include := rte_ip.h rte_tcp.h rte_udp.h rte_esp.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include += rte_sctp.h rte_icmp.h rte_arp.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include += rte_ether.h rte_gre.h rte_net.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include += rte_net_crc.h rte_mpls.h rte_higig.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include += rte_gtp.h rte_vxlan.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include += rte_ecpri.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_node/Makefile b/lib/librte_node/Makefile
deleted file mode 100644
index 3ec02104d3..0000000000
--- a/lib/librte_node/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2020 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_node.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-# Strict-aliasing rules are violated by uint8_t[] to context size casts.
-CFLAGS += -fno-strict-aliasing
-LDLIBS += -lrte_eal -lrte_graph -lrte_mbuf -lrte_lpm -lrte_ethdev -lrte_mempool
-
-EXPORT_MAP := rte_node_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += null.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += log.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += ethdev_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += ethdev_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += ethdev_ctrl.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += ip4_lookup.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += ip4_rewrite.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += pkt_cls.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += pkt_drop.c
-
-# install header files
-SYMLINK-$(CONFIG_RTE_LIBRTE_NODE)-include += rte_node_ip4_api.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NODE)-include += rte_node_eth_api.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_pci/Makefile b/lib/librte_pci/Makefile
deleted file mode 100644
index 7943f30cab..0000000000
--- a/lib/librte_pci/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 6WIND S.A.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pci.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += $(WERROR_FLAGS) -O3
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_pci_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_PCI) += rte_pci.c
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_PCI)-include += rte_pci.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_pdump/Makefile b/lib/librte_pdump/Makefile
deleted file mode 100644
index ece8aaacc1..0000000000
--- a/lib/librte_pdump/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pdump.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev
-
-EXPORT_MAP := rte_pdump_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_PDUMP) := rte_pdump.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_PDUMP)-include := rte_pdump.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_pipeline/Makefile b/lib/librte_pipeline/Makefile
deleted file mode 100644
index cfbbd18282..0000000000
--- a/lib/librte_pipeline/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pipeline.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_table
-LDLIBS += -lrte_port -lrte_meter -lrte_sched -lrte_cryptodev
-
-EXPORT_MAP := rte_pipeline_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) := rte_pipeline.c
-SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += rte_port_in_action.c
-SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += rte_table_action.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_PIPELINE)-include += rte_pipeline.h rte_port_in_action.h rte_table_action.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_port/Makefile b/lib/librte_port/Makefile
deleted file mode 100644
index 57d2aedbc5..0000000000
--- a/lib/librte_port/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_port.a
-ifeq ($(CONFIG_RTE_PORT_PCAP),y)
-LDLIBS += -lpcap
-endif
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev
-LDLIBS += -lrte_ip_frag -lrte_sched -lrte_cryptodev -lrte_eventdev
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-LDLIBS += -lrte_kni
-endif
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_port_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_ring.c
-ifeq ($(CONFIG_RTE_LIBRTE_IP_FRAG),y)
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_frag.c
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_ras.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_sched.c
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_fd.c
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_kni.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_source_sink.c
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_sym_crypto.c
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_eventdev.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_ethdev.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_ring.h
-ifeq ($(CONFIG_RTE_LIBRTE_IP_FRAG),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_frag.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_ras.h
-endif
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_sched.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_fd.h
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_kni.h
-endif
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_source_sink.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_sym_crypto.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_eventdev.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_power/Makefile b/lib/librte_power/Makefile
deleted file mode 100644
index 3b067b615f..0000000000
--- a/lib/librte_power/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_power.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
-LDLIBS += -lrte_eal -lrte_timer
-
-EXPORT_MAP := rte_power_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) := rte_power.c power_acpi_cpufreq.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += power_kvm_vm.c guest_channel.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += rte_power_empty_poll.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += power_pstate_cpufreq.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += power_common.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_POWER)-include := rte_power.h rte_power_empty_poll.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_rawdev/Makefile b/lib/librte_rawdev/Makefile
deleted file mode 100644
index 99f5d2a471..0000000000
--- a/lib/librte_rawdev/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_rawdev.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_telemetry
-
-# library source files
-SRCS-y += rte_rawdev.c
-
-# export include files
-SYMLINK-y-include += rte_rawdev.h
-SYMLINK-y-include += rte_rawdev_pmd.h
-
-# versioning export map
-EXPORT_MAP := rte_rawdev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_rcu/Makefile b/lib/librte_rcu/Makefile
deleted file mode 100644
index 553bca2ef4..0000000000
--- a/lib/librte_rcu/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Arm Limited
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_rcu.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal -lrte_ring
-
-EXPORT_MAP := rte_rcu_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_RCU) := rte_rcu_qsbr.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_RCU)-include := rte_rcu_qsbr.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_regexdev/Makefile b/lib/librte_regexdev/Makefile
deleted file mode 100644
index c123fcaf5c..0000000000
--- a/lib/librte_regexdev/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-# Copyright 2020 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_regexdev.a
-
-EXPORT_MAP := rte_regex_version.map
-
-# library version
-LIBABIVER := 1
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf
-
-# library source files
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_REGEXDEV) := rte_regexdev.c
-
-# export include files
-SYMLINK-$(CONFIG_RTE_LIBRTE_REGEXDEV)-include += rte_regexdev.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_REGEXDEV)-include += rte_regexdev_core.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_REGEXDEV)-include += rte_regexdev_driver.h
-
-# versioning export map
-EXPORT_MAP := rte_regexdev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_reorder/Makefile b/lib/librte_reorder/Makefile
deleted file mode 100644
index 1914411d52..0000000000
--- a/lib/librte_reorder/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_reorder.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf
-
-EXPORT_MAP := rte_reorder_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_REORDER) := rte_reorder.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_REORDER)-include := rte_reorder.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_rib/Makefile b/lib/librte_rib/Makefile
deleted file mode 100644
index be80ce5d3f..0000000000
--- a/lib/librte_rib/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Vladimir Medvedkin <medvedkinv@gmail.com>
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_rib.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mempool
-
-EXPORT_MAP := rte_rib_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_RIB) := rte_rib.c rte_rib6.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_RIB)-include := rte_rib.h rte_rib6.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_ring/Makefile b/lib/librte_ring/Makefile
deleted file mode 100644
index 83a9d0840e..0000000000
--- a/lib/librte_ring/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_ring.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_ring_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_RING) := rte_ring.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_RING)-include := rte_ring.h \
- rte_ring_core.h \
- rte_ring_elem.h \
- rte_ring_generic.h \
- rte_ring_c11_mem.h \
- rte_ring_hts.h \
- rte_ring_hts_c11_mem.h \
- rte_ring_peek.h \
- rte_ring_peek_c11_mem.h \
- rte_ring_rts.h \
- rte_ring_rts_c11_mem.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_sched/Makefile b/lib/librte_sched/Makefile
deleted file mode 100644
index aee93a1205..0000000000
--- a/lib/librte_sched/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_sched.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lm
-LDLIBS += -lrt
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_net
-LDLIBS += -lrte_timer
-
-EXPORT_MAP := rte_sched_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_SCHED) += rte_sched.c rte_red.c rte_approx.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_SCHED)-include := rte_sched.h rte_sched_common.h rte_red.h rte_approx.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_security/Makefile b/lib/librte_security/Makefile
deleted file mode 100644
index 825eaeff8e..0000000000
--- a/lib/librte_security/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_security.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool
-
-# library source files
-SRCS-y += rte_security.c
-
-# export include files
-SYMLINK-y-include += rte_security.h
-SYMLINK-y-include += rte_security_driver.h
-
-# versioning export map
-EXPORT_MAP := rte_security_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_stack/Makefile b/lib/librte_stack/Makefile
deleted file mode 100644
index 020ef102b5..0000000000
--- a/lib/librte_stack/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_stack.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_stack_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_STACK) := rte_stack.c \
- rte_stack_std.c \
- rte_stack_lf.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_STACK)-include := rte_stack.h \
- rte_stack_std.h \
- rte_stack_lf.h \
- rte_stack_lf_generic.h \
- rte_stack_lf_c11.h \
- rte_stack_lf_stubs.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_table/Makefile b/lib/librte_table/Makefile
deleted file mode 100644
index 6ad8a6b17d..0000000000
--- a/lib/librte_table/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_table.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_port
-LDLIBS += -lrte_lpm -lrte_hash
-ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
-LDLIBS += -lrte_acl
-endif
-
-EXPORT_MAP := rte_table_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_lpm.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_lpm_ipv6.c
-ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_acl.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_cuckoo.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_key8.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_key16.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_key32.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_ext.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_lru.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_array.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_stub.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_lpm.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_lpm_ipv6.h
-ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_acl.h
-endif
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_hash.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_hash_cuckoo.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_hash_func.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_hash_func_arm64.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_lru.h
-ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_lru_x86.h
-endif
-ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_lru_arm64.h
-endif
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_array.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_stub.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_telemetry/Makefile b/lib/librte_telemetry/Makefile
deleted file mode 100644
index c62cbd86dc..0000000000
--- a/lib/librte_telemetry/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_telemetry.a
-
-ARCH_DIR ?= $(RTE_ARCH)
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-CFLAGS += -I$(RTE_SDK)/lib/librte_metrics/
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)/include
-CFLAGS += -pthread
-
-LDLIBS += -lpthread
-
-EXPORT_MAP := rte_telemetry_version.map
-
-# library source files
-SRCS-y += telemetry.c
-SRCS-y += telemetry_data.c
-SRCS-y += telemetry_legacy.c
-
-# export include files
-SYMLINK-y-include := rte_telemetry.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_timer/Makefile b/lib/librte_timer/Makefile
deleted file mode 100644
index 7e95d120c0..0000000000
--- a/lib/librte_timer/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_timer.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_timer_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_TIMER) := rte_timer.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_TIMER)-include := rte_timer.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_vhost/Makefile b/lib/librte_vhost/Makefile
deleted file mode 100644
index 4f2f3e47da..0000000000
--- a/lib/librte_vhost/Makefile
+++ /dev/null
@@ -1,54 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_vhost.a
-
-EXPORT_MAP := rte_vhost_version.map
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-CFLAGS += -I vhost_user
-CFLAGS += -fno-strict-aliasing
-LDLIBS += -lpthread
-
-ifeq ($(RTE_TOOLCHAIN), gcc)
-ifeq ($(shell test $(GCC_VERSION) -ge 83 && echo 1), 1)
-CFLAGS += -DVHOST_GCC_UNROLL_PRAGMA
-endif
-endif
-
-ifeq ($(RTE_TOOLCHAIN), clang)
-ifeq ($(shell test $(CLANG_MAJOR_VERSION)$(CLANG_MINOR_VERSION) -ge 37 && echo 1), 1)
-CFLAGS += -DVHOST_CLANG_UNROLL_PRAGMA
-endif
-endif
-
-ifeq ($(RTE_TOOLCHAIN), icc)
-ifeq ($(shell test $(ICC_MAJOR_VERSION) -ge 16 && echo 1), 1)
-CFLAGS += -DVHOST_ICC_UNROLL_PRAGMA
-endif
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y)
-LDLIBS += -lnuma
-endif
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev -lrte_net
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_VHOST) := fd_man.c iotlb.c socket.c vhost.c \
- vhost_user.c virtio_net.c vdpa.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_VHOST)-include += rte_vhost.h rte_vdpa.h \
- rte_vdpa_dev.h rte_vhost_async.h
-
-# only compile vhost crypto when cryptodev is enabled
-ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
-LDLIBS += -lrte_cryptodev -lrte_hash
-SRCS-$(CONFIG_RTE_LIBRTE_VHOST) += vhost_crypto.c
-SYMLINK-$(CONFIG_RTE_LIBRTE_VHOST)-include += rte_vhost_crypto.h
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/mk/arch/arm/rte.vars.mk b/mk/arch/arm/rte.vars.mk
deleted file mode 100644
index dc8c10a24c..0000000000
--- a/mk/arch/arm/rte.vars.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) 2015 RehiveTech. All rights reserved.
-
-ARCH ?= arm
-CROSS ?=
-
-CPU_CFLAGS ?= -marm -munaligned-access -D_FILE_OFFSET_BITS=64
-CPU_LDFLAGS ?=
-CPU_ASFLAGS ?= -felf
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf32-littlearm
-RTE_OBJCOPY_ARCH = arm
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/arch/arm64/rte.vars.mk b/mk/arch/arm64/rte.vars.mk
deleted file mode 100644
index a75b80c222..0000000000
--- a/mk/arch/arm64/rte.vars.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#
-# arch:
-#
-# - define ARCH variable (overridden by cmdline or by previous
-# optional define in machine .mk)
-# - define CROSS variable (overridden by cmdline or previous define
-# in machine .mk)
-# - define CPU_CFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_LDFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_ASFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - may override any previously defined variable
-#
-# examples for CONFIG_RTE_ARCH: i686, x86_64, x86_64_32
-#
-
-ARCH ?= arm64
-# common arch dir in eal headers
-ARCH_DIR := arm
-CROSS ?=
-
-CPU_CFLAGS ?=
-CPU_LDFLAGS ?=
-CPU_ASFLAGS ?= -felf
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf64-littleaarch64
-RTE_OBJCOPY_ARCH = aarch64
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/arch/i686/rte.vars.mk b/mk/arch/i686/rte.vars.mk
deleted file mode 100644
index c867883f15..0000000000
--- a/mk/arch/i686/rte.vars.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# arch:
-#
-# - define ARCH variable (overridden by cmdline or by previous
-# optional define in machine .mk)
-# - define CROSS variable (overridden by cmdline or previous define
-# in machine .mk)
-# - define CPU_CFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_LDFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_ASFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - may override any previously defined variable
-#
-# examples for CONFIG_RTE_ARCH: i686, x86_64, x86_64_32
-#
-
-ARCH ?= i386
-# common arch dir in eal headers
-ARCH_DIR := x86
-CROSS ?=
-
-CPU_CFLAGS ?= -m32 -D_FILE_OFFSET_BITS=64
-CPU_LDFLAGS ?= -melf_i386
-CPU_ASFLAGS ?= -felf
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf32-i386
-RTE_OBJCOPY_ARCH = i386
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/arch/ppc_64/rte.vars.mk b/mk/arch/ppc_64/rte.vars.mk
deleted file mode 100644
index 9f7ab22f42..0000000000
--- a/mk/arch/ppc_64/rte.vars.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) IBM Corporation 2014.
-
-ARCH ?= powerpc
-ARCH_DIR := ppc
-CROSS ?=
-
-CPU_CFLAGS ?= -m64
-CPU_LDFLAGS ?=
-CPU_ASFLAGS ?= -felf64
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf64-powerpcle
-RTE_OBJCOPY_ARCH = powerpc:common64
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/arch/x86_64/rte.vars.mk b/mk/arch/x86_64/rte.vars.mk
deleted file mode 100644
index e1689be9b4..0000000000
--- a/mk/arch/x86_64/rte.vars.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# arch:
-#
-# - define ARCH variable (overridden by cmdline or by previous
-# optional define in machine .mk)
-# - define CROSS variable (overridden by cmdline or previous define
-# in machine .mk)
-# - define CPU_CFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_LDFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_ASFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - may override any previously defined variable
-#
-# examples for CONFIG_RTE_ARCH: i686, x86_64, x86_64_32
-#
-
-ARCH ?= x86_64
-# common arch dir in eal headers
-ARCH_DIR := x86
-CROSS ?=
-
-CPU_CFLAGS ?= -m64
-CPU_LDFLAGS ?=
-CPU_ASFLAGS ?= -felf64
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf64-x86-64
-RTE_OBJCOPY_ARCH = i386:x86-64
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/arch/x86_x32/rte.vars.mk b/mk/arch/x86_x32/rte.vars.mk
deleted file mode 100644
index c59b37a2c8..0000000000
--- a/mk/arch/x86_x32/rte.vars.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# arch:
-#
-# - define ARCH variable (overridden by cmdline or by previous
-# optional define in machine .mk)
-# - define CROSS variable (overridden by cmdline or previous define
-# in machine .mk)
-# - define CPU_CFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_LDFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_ASFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - may override any previously defined variable
-#
-# examples for CONFIG_RTE_ARCH: i686, x86_64, x86_64_32
-#
-
-ARCH ?= x86_64
-ARCH_DIR := x86
-CROSS ?=
-
-CPU_CFLAGS ?= -mx32
-CPU_LDFLAGS ?= -melf32_x86_64
-#CPU_ASFLAGS ?= -felf64
-# x32 is supported by Linux distribution with gcc4.8 and newer in some
-# cases there is backported support in gcc4.6
-ifneq ($(shell echo | $(CC) $(CPU_CFLAGS) -E - 2>/dev/null 1>/dev/null && echo 0), 0)
- $(error This version of GCC does not support x32 ABI)
-endif
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf32-x86-64
-RTE_OBJCOPY_ARCH = i386:x86-64
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/exec-env/bsdapp b/mk/exec-env/bsdapp
deleted file mode 120000
index 69f5cba2c2..0000000000
--- a/mk/exec-env/bsdapp
+++ /dev/null
@@ -1 +0,0 @@
-freebsd/
\ No newline at end of file
diff --git a/mk/exec-env/freebsd/rte.app.mk b/mk/exec-env/freebsd/rte.app.mk
deleted file mode 100644
index a2af7266a6..0000000000
--- a/mk/exec-env/freebsd/rte.app.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-exec-env-appinstall:
- @true
-
-exec-env-appclean:
- @true
diff --git a/mk/exec-env/freebsd/rte.vars.mk b/mk/exec-env/freebsd/rte.vars.mk
deleted file mode 100644
index 630eb55f73..0000000000
--- a/mk/exec-env/freebsd/rte.vars.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2019 Intel Corporation
-
-#
-# exec-env:
-#
-# - define EXECENV_CFLAGS variable (overridden by cmdline)
-# - define EXECENV_LDFLAGS variable (overridden by cmdline)
-# - define EXECENV_ASFLAGS variable (overridden by cmdline)
-# - may override any previously defined variable
-#
-# examples for RTE_EXEC_ENV: linux, freebsd
-#
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_CFLAGS = -pthread -fPIC
-else
-EXECENV_CFLAGS = -pthread
-endif
-
-# include in every library to build
-EXECENV_CFLAGS += -I$(RTE_SDK)/lib/librte_eal/freebsd/include
-
-EXECENV_LDFLAGS =
-EXECENV_LDLIBS = -lexecinfo
-EXECENV_ASFLAGS =
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_LDLIBS += -lgcc_s
-endif
-
-# force applications to link with gcc/icc instead of using ld
-LINK_USING_CC := 1
-
-BSDMAKE=/usr/bin/make
-
-export EXECENV_CFLAGS EXECENV_LDFLAGS EXECENV_ASFLAGS
diff --git a/mk/exec-env/linux/rte.app.mk b/mk/exec-env/linux/rte.app.mk
deleted file mode 100644
index a2af7266a6..0000000000
--- a/mk/exec-env/linux/rte.app.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-exec-env-appinstall:
- @true
-
-exec-env-appclean:
- @true
diff --git a/mk/exec-env/linux/rte.vars.mk b/mk/exec-env/linux/rte.vars.mk
deleted file mode 100644
index 41ef4195b0..0000000000
--- a/mk/exec-env/linux/rte.vars.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2019 Intel Corporation
-
-#
-# exec-env:
-#
-# - define EXECENV_CFLAGS variable (overridden by cmdline)
-# - define EXECENV_LDFLAGS variable (overridden by cmdline)
-# - define EXECENV_ASFLAGS variable (overridden by cmdline)
-# - may override any previously defined variable
-#
-# examples for RTE_EXEC_ENV: linux, freebsd
-#
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_CFLAGS = -pthread -fPIC
-else
-EXECENV_CFLAGS = -pthread
-endif
-
-# include in every library to build
-EXECENV_CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linux/include
-
-EXECENV_LDLIBS =
-EXECENV_ASFLAGS =
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_LDLIBS += -lgcc_s
-endif
-
-EXECENV_LDLIBS-$(CONFIG_RTE_USE_LIBBSD) += -lbsd
-
-# force applications to link with gcc/icc instead of using ld
-LINK_USING_CC := 1
-
-# For shared libraries
-EXECENV_LDFLAGS += -export-dynamic
-# Add library to the group to resolve symbols
-EXECENV_LDLIBS += -ldl
-
-# EXECENV_LDLIBS-y applies to lib.so and app linking
-# while EXECENV_LDLIBS applies only to app linking.
-EXECENV_LDLIBS += $(EXECENV_LDLIBS-y)
-
-export EXECENV_CFLAGS EXECENV_LDFLAGS EXECENV_ASFLAGS EXECENV_LDLIBS
diff --git a/mk/exec-env/linuxapp b/mk/exec-env/linuxapp
deleted file mode 120000
index ce5e2c77b2..0000000000
--- a/mk/exec-env/linuxapp
+++ /dev/null
@@ -1 +0,0 @@
-linux/
\ No newline at end of file
diff --git a/mk/internal/rte.build-post.mk b/mk/internal/rte.build-post.mk
deleted file mode 100644
index a6b6a9a46a..0000000000
--- a/mk/internal/rte.build-post.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# build helper .mk
-
-# fast way, no need to do prebuild and postbuild
-ifeq ($(PREBUILD)$(POSTBUILD),)
-
-_postbuild: $(_BUILD)
- @touch _postbuild
-
-else # slower way
-
-_prebuild: $(PREBUILD)
- @touch _prebuild
-
-ifneq ($(_BUILD),)
-$(_BUILD): _prebuild
-else
-_BUILD = _prebuild
-endif
-
-_build: $(_BUILD)
- @touch _build
-
-ifneq ($(POSTBUILD),)
-$(POSTBUILD): _build
-else
-POSTBUILD = _build
-endif
-
-_postbuild: $(POSTBUILD)
- @touch _postbuild
-endif
\ No newline at end of file
diff --git a/mk/internal/rte.build-pre.mk b/mk/internal/rte.build-pre.mk
deleted file mode 100644
index 137612f19b..0000000000
--- a/mk/internal/rte.build-pre.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-_BUILD_TARGETS := _prebuild _build _postbuild
-
-comma := ,
-linkerprefix = $(subst -Wl$(comma)-L,-L,$(addprefix -Wl$(comma),$1))
diff --git a/mk/internal/rte.clean-post.mk b/mk/internal/rte.clean-post.mk
deleted file mode 100644
index 77685edd99..0000000000
--- a/mk/internal/rte.clean-post.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# clean helper .mk
-
-# fast way, no need to do preclean and postclean
-ifeq ($(PRECLEAN)$(POSTCLEAN),)
-
-_postclean: $(_CLEAN)
- @touch _postclean
-
-else # slower way
-
-_preclean: $(PRECLEAN)
- @touch _preclean
-
-ifneq ($(_CLEAN),)
-$(_CLEAN): _preclean
-else
-_CLEAN = _preclean
-endif
-
-_clean: $(_CLEAN)
- @touch _clean
-
-ifneq ($(POSTCLEAN),)
-$(POSTCLEAN): _clean
-else
-POSTCLEAN = _clean
-endif
-
-_postclean: $(POSTCLEAN)
- @touch _postclean
-endif
diff --git a/mk/internal/rte.clean-pre.mk b/mk/internal/rte.clean-pre.mk
deleted file mode 100644
index e21607bff9..0000000000
--- a/mk/internal/rte.clean-pre.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-_CLEAN_TARGETS := _preclean _clean _postclean
diff --git a/mk/internal/rte.compile-post.mk b/mk/internal/rte.compile-post.mk
deleted file mode 100644
index 01525bee1b..0000000000
--- a/mk/internal/rte.compile-post.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# no rule no build these files
-$(DEPS-y) $(CMDS-y):
diff --git a/mk/internal/rte.compile-pre.mk b/mk/internal/rte.compile-pre.mk
deleted file mode 100644
index df05b55769..0000000000
--- a/mk/internal/rte.compile-pre.mk
+++ /dev/null
@@ -1,164 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# Common to rte.lib.mk, rte.app.mk, rte.obj.mk
-#
-
-SRCS-all := $(SRCS-y) $(SRCS-n) $(SRCS-)
-
-# convert source to obj file
-src2obj = $(strip $(patsubst %.c,%.o,\
- $(patsubst %.S,%_s.o,$(1))))
-
-# add a dot in front of the file name
-dotfile = $(strip $(foreach f,$(1),\
- $(join $(dir $f),.$(notdir $f))))
-
-# convert source/obj files into dot-dep filename (does not
-# include .S files)
-src2dep = $(strip $(call dotfile,$(patsubst %.c,%.o.d, \
- $(patsubst %.S,,$(1)))))
-obj2dep = $(strip $(call dotfile,$(patsubst %.o,%.o.d,$(1))))
-
-# convert source/obj files into dot-cmd filename
-src2cmd = $(strip $(call dotfile,$(patsubst %.c,%.o.cmd, \
- $(patsubst %.S,%_s.o.cmd,$(1)))))
-obj2cmd = $(strip $(call dotfile,$(patsubst %.o,%.o.cmd,$(1))))
-
-OBJS-y := $(call src2obj,$(SRCS-y))
-OBJS-n := $(call src2obj,$(SRCS-n))
-OBJS- := $(call src2obj,$(SRCS-))
-OBJS-all := $(filter-out $(SRCS-all),$(OBJS-y) $(OBJS-n) $(OBJS-))
-
-DEPS-y := $(call src2dep,$(SRCS-y))
-DEPS-n := $(call src2dep,$(SRCS-n))
-DEPS- := $(call src2dep,$(SRCS-))
-DEPS-all := $(DEPS-y) $(DEPS-n) $(DEPS-)
-DEPSTMP-all := $(DEPS-all:%.d=%.d.tmp)
-
-CMDS-y := $(call src2cmd,$(SRCS-y))
-CMDS-n := $(call src2cmd,$(SRCS-n))
-CMDS- := $(call src2cmd,$(SRCS-))
-CMDS-all := $(CMDS-y) $(CMDS-n) $(CMDS-)
-
--include $(DEPS-y) $(CMDS-y)
-
-# command to compile a .c file to generate an object
-ifeq ($(USE_HOST),1)
-C_TO_O = $(HOSTCC) -Wp,-MD,$(call obj2dep,$(@)).tmp $(HOST_CPPFLAGS) $(HOST_CFLAGS) \
- $(CFLAGS_$(@)) $(HOST_EXTRA_CPPFLAGS) $(HOST_EXTRA_CFLAGS) -o $@ -c $<
-C_TO_O_STR = $(subst ','\'',$(C_TO_O)) #'# fix syntax highlight
-C_TO_O_DISP = $(if $(V),"$(C_TO_O_STR)"," HOSTCC $(@)")
-else
-C_TO_O = $(CC) -Wp,-MD,$(call obj2dep,$(@)).tmp $(CPPFLAGS) $(CFLAGS) \
- $(CFLAGS_$(@)) $(EXTRA_CPPFLAGS) $(EXTRA_CFLAGS) -o $@ -c $<
-C_TO_O_STR = $(subst ','\'',$(C_TO_O)) #'# fix syntax highlight
-C_TO_O_DISP = $(if $(V),"$(C_TO_O_STR)"," CC $(@)")
-endif
-CHECK_SYMBOLS_SCRIPT = $(RTE_SDK)/buildtools/check-symbols.sh
-CHECK_SYMBOLS = $(CHECK_SYMBOLS_SCRIPT) $(SRCDIR)/$(EXPORT_MAP) $@
-
-PMDINFO_GEN = $(RTE_SDK_BIN)/app/dpdk-pmdinfogen $@ $@.pmd.c
-PMDINFO_CC = $(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@.pmd.o $@.pmd.c
-PMDINFO_LD = $(CROSS)ld -r $(filter-out -export-dynamic,$(LDFLAGS)) -o $@.o $@.pmd.o $@
-PMDINFO_TO_O = if grep -q 'RTE_PMD_REGISTER_.*(.*)' $<; then \
- echo "$(if $V,$(PMDINFO_GEN), PMDINFO $@.pmd.c)" && \
- $(PMDINFO_GEN) && \
- echo "$(if $V,$(PMDINFO_CC), CC $@.pmd.o)" && \
- $(PMDINFO_CC) && \
- echo "$(if $V,$(PMDINFO_LD), LD $@)" && \
- $(PMDINFO_LD) && \
- mv -f $@.o $@; fi
-C_TO_O_CMD = 'cmd_$@ = $(C_TO_O_STR)'
-C_TO_O_DO = @set -e; \
- echo $(C_TO_O_DISP); \
- $(C_TO_O) && \
- $(PMDINFO_TO_O) && \
- $(CHECK_SYMBOLS) && \
- echo $(C_TO_O_CMD) > $(call obj2cmd,$(@)) && \
- sed 's,'$@':,dep_'$@' =,' $(call obj2dep,$(@)).tmp > $(call obj2dep,$(@)) && \
- rm -f $(call obj2dep,$(@)).tmp
-
-# return an empty string if string are equal
-compare = $(strip $(subst $(1),,$(2)) $(subst $(2),,$(1)))
-
-# return a non-empty string if the dst file does not exist
-file_missing = $(call compare,$(wildcard $@),$@)
-
-# return a non-empty string if cmdline changed
-cmdline_changed = $(call compare,$(strip $(cmd_$@)),$(strip $(1)))
-
-# return a non-empty string if a dependency file does not exist
-depfile_missing = $(call compare,$(wildcard $(dep_$@)),$(dep_$@))
-
-# return an empty string if no prereq is newer than target
-# - $^ -> names of all the prerequisites
-# - $(wildcard $^) -> every existing prereq
-# - $(filter-out $(wildcard $^),$^) -> every prereq that don't
-# exist (filter-out removes existing ones from the list)
-# - $? -> names of all the prerequisites newer than target
-depfile_newer = $(strip $(filter-out FORCE,$? \
- $(filter-out $(wildcard $^),$^)))
-
-# return 1 if parameter is a non-empty string, else 0
-boolean = $(if $1,1,0)
-
-#
-# Compile .c file if needed
-# Note: dep_$$@ is from the .d file and DEP_$$@ can be specified by
-# user (by default it is empty)
-#
-.SECONDEXPANSION:
-%.o: %.c $$(wildcard $$(dep_$$@)) $$(DEP_$$(@)) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(C_TO_O))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer))")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(C_TO_O)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(C_TO_O_DO))
-
-# command to assemble a .S file to generate an object
-ifeq ($(USE_HOST),1)
-S_TO_O = $(CPP) $(HOST_CPPFLAGS) $($(@)_CPPFLAGS) $(HOST_EXTRA_CPPFLAGS) $< $(@).tmp && \
- $(HOSTAS) $(HOST_ASFLAGS) $($(@)_ASFLAGS) $(HOST_EXTRA_ASFLAGS) -o $@ $(@).tmp
-S_TO_O_STR = $(subst ','\'',$(S_TO_O)) #'# fix syntax highlight
-S_TO_O_DISP = $(if $(V),"$(S_TO_O_STR)"," HOSTAS $(@)")
-else
-S_TO_O = $(CPP) $(CPPFLAGS) $($(@)_CPPFLAGS) $(EXTRA_CPPFLAGS) $< -o $(@).tmp && \
- $(AS) $(ASFLAGS) $($(@)_ASFLAGS) $(EXTRA_ASFLAGS) -o $@ $(@).tmp
-S_TO_O_STR = $(subst ','\'',$(S_TO_O)) #'# fix syntax highlight
-S_TO_O_DISP = $(if $(V),"$(S_TO_O_STR)"," AS $(@)")
-endif
-
-S_TO_O_CMD = "cmd_$@ = $(S_TO_O_STR)"
-S_TO_O_DO = @set -e; \
- echo $(S_TO_O_DISP); \
- $(S_TO_O) && \
- echo $(S_TO_O_CMD) > $(call obj2cmd,$(@))
-
-#
-# Compile .S file if needed
-# Note: DEP_$$@ can be specified by user (by default it is empty)
-#
-%_s.o: %.S $$(DEP_$$@) FORCE
- @[ ! -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(S_TO_O_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(S_TO_O_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(S_TO_O_DO))
diff --git a/mk/internal/rte.extvars.mk b/mk/internal/rte.extvars.mk
deleted file mode 100644
index 98c860628a..0000000000
--- a/mk/internal/rte.extvars.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# directory where sources are located
-#
-ifdef S
-ifeq ("$(origin S)", "command line")
-RTE_SRCDIR := $(abspath $(S))
-endif
-endif
-RTE_SRCDIR ?= $(CURDIR)
-export RTE_SRCDIR
-
-#
-# Makefile to call once $(RTE_OUTPUT) is created
-#
-ifdef M
-ifeq ("$(origin M)", "command line")
-RTE_EXTMK := $(abspath $(M))
-endif
-endif
-RTE_EXTMK ?= $(RTE_SRCDIR)/$(notdir $(firstword $(MAKEFILE_LIST)))
-export RTE_EXTMK
-
-# RTE_SDK_BIN must point to .config, include/ and lib/.
-RTE_SDK_BIN := $(RTE_SDK)/$(RTE_TARGET)
-ifeq ($(wildcard $(RTE_SDK_BIN)/.config),)
-$(error Cannot find .config in $(RTE_SDK_BIN))
-endif
-
-#
-# Output files wil go in a separate directory: default output is
-# $(RTE_SRCDIR)/build
-# Output dir can be given as command line using "O="
-#
-ifdef O
-ifeq ("$(origin O)", "command line")
-RTE_OUTPUT := $(abspath $(O))
-endif
-endif
-RTE_OUTPUT ?= $(RTE_SRCDIR)/build
-export RTE_OUTPUT
-
-# if we are building an external application, include SDK
-# configuration and include project configuration if any
-include $(RTE_SDK_BIN)/.config
-ifneq ($(wildcard $(RTE_OUTPUT)/.config),)
- include $(RTE_OUTPUT)/.config
-endif
-# remove double-quotes from config names
-RTE_ARCH := $(CONFIG_RTE_ARCH:"%"=%)
-RTE_MACHINE := $(CONFIG_RTE_MACHINE:"%"=%)
-RTE_EXEC_ENV := $(CONFIG_RTE_EXEC_ENV:"%"=%)
-RTE_TOOLCHAIN := $(CONFIG_RTE_TOOLCHAIN:"%"=%)
diff --git a/mk/internal/rte.install-post.mk b/mk/internal/rte.install-post.mk
deleted file mode 100644
index a1aa0ca4ff..0000000000
--- a/mk/internal/rte.install-post.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# install helper .mk
-
-#
-# generate rules to install files in RTE_OUTPUT.
-#
-# arg1: relative install dir in RTE_OUTPUT
-# arg2: relative file name in a source dir (VPATH)
-#
-define install_rule
-$(addprefix $(RTE_OUTPUT)/$(1)/,$(notdir $(2))): $(2)
- @echo " INSTALL-FILE $(addprefix $(1)/,$(notdir $(2)))"
- @[ -d $(RTE_OUTPUT)/$(1) ] || mkdir -p $(RTE_OUTPUT)/$(1)
- $(Q)cp -rf $$(<) $(RTE_OUTPUT)/$(1)
-endef
-
-$(foreach dir,$(INSTALL-DIRS-y),\
- $(foreach file,$(INSTALL-y-$(dir)),\
- $(eval $(call install_rule,$(dir),$(file)))))
-
-
-#
-# generate rules to install symbolic links of files in RTE_OUTPUT.
-#
-# arg1: relative install dir in RTE_OUTPUT
-# arg2: relative file name in a source dir (VPATH)
-#
-define symlink_rule
-$(addprefix $(RTE_OUTPUT)/$(1)/,$(notdir $(2))): $(2)
- @echo " SYMLINK-FILE $(addprefix $(1)/,$(notdir $(2)))"
- @[ -d $(RTE_OUTPUT)/$(1) ] || mkdir -p $(RTE_OUTPUT)/$(1)
- $(Q)ln -nsf `$(RTE_SDK)/buildtools/relpath.sh $$(<) $(RTE_OUTPUT)/$(1)` \
- $(RTE_OUTPUT)/$(1)
-endef
-
-$(foreach dir,$(SYMLINK-DIRS-y),\
- $(foreach file,$(SYMLINK-y-$(dir)),\
- $(eval $(call symlink_rule,$(dir),$(file)))))
-
-
-# fast way, no need to do preinstall and postinstall
-ifeq ($(PREINSTALL)$(POSTINSTALL),)
-
-_postinstall: $(_INSTALL)
- @touch _postinstall
-
-else # slower way
-
-_preinstall: $(PREINSTALL)
- @touch _preinstall
-
-ifneq ($(_INSTALL),)
-$(_INSTALL): _preinstall
-else
-_INSTALL = _preinstall
-endif
-
-_install: $(_INSTALL)
- @touch _install
-
-ifneq ($(POSTINSTALL),)
-$(POSTINSTALL): _install
-else
-POSTINSTALL = _install
-endif
-
-_postinstall: $(POSTINSTALL)
- @touch _postinstall
-endif
diff --git a/mk/internal/rte.install-pre.mk b/mk/internal/rte.install-pre.mk
deleted file mode 100644
index 4786d3b28b..0000000000
--- a/mk/internal/rte.install-pre.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# get all variables starting with "INSTALL-y-", and extract the
-# installation dir and path
-#
-INSTALL-y := $(filter INSTALL-y-%,$(.VARIABLES))
-INSTALL-n := $(filter INSTALL-n-%,$(.VARIABLES))
-INSTALL- := $(filter INSTALL--%,$(.VARIABLES))
-INSTALL-DIRS-y := $(patsubst INSTALL-y-%,%,$(INSTALL-y))
-INSTALL-FILES-y := $(foreach i,$(INSTALL-DIRS-y),\
- $(addprefix $(RTE_OUTPUT)/$(i)/,$(notdir $(INSTALL-y-$(i)))))
-INSTALL-FILES-all := $(foreach i,$(INSTALL-DIRS-y) $(INSTALL-DIRS-n) $(INSTALL-DIRS-),\
- $(addprefix $(RTE_OUTPUT)/$(i)/,$(notdir $(INSTALL-y-$(i)))))
-
-_INSTALL_TARGETS := _preinstall _install _postinstall
-
-#
-# get all variables starting with "SYMLINK-y-", and extract the
-# installation dir and path
-#
-SYMLINK-y := $(filter SYMLINK-y-%,$(.VARIABLES))
-SYMLINK-n := $(filter SYMLINK-n-%,$(.VARIABLES))
-SYMLINK- := $(filter SYMLINK--%,$(.VARIABLES))
-SYMLINK-DIRS-y := $(patsubst SYMLINK-y-%,%,$(SYMLINK-y))
-SYMLINK-FILES-y := $(foreach i,$(SYMLINK-DIRS-y),\
- $(addprefix $(RTE_OUTPUT)/$(i)/,$(notdir $(SYMLINK-y-$(i)))))
-SYMLINK-FILES-all := $(foreach i,$(SYMLINK-DIRS-y) $(SYMLINK-DIRS-n) $(SYMLINK-DIRS-),\
- $(addprefix $(RTE_OUTPUT)/$(i)/,$(notdir $(SYMLINK-y-$(i)))))
-
-_SYMLINK_TARGETS := _presymlink _symlink _postsymlink
diff --git a/mk/machine/armv7a/rte.vars.mk b/mk/machine/armv7a/rte.vars.mk
deleted file mode 100644
index 44ebd68dae..0000000000
--- a/mk/machine/armv7a/rte.vars.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) 2015 RehiveTech. All rights reserved.
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=armv7-a
-
-ifdef CONFIG_RTE_ARCH_ARM_TUNE
-MACHINE_CFLAGS += -mtune=$(CONFIG_RTE_ARCH_ARM_TUNE:"%"=%)
-endif
-
-MACHINE_CFLAGS += -mfpu=neon
diff --git a/mk/machine/armv8a/rte.vars.mk b/mk/machine/armv8a/rte.vars.mk
deleted file mode 100644
index 5e3ffc3adf..0000000000
--- a/mk/machine/armv8a/rte.vars.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=armv8-a+crc
diff --git a/mk/machine/default/rte.vars.mk b/mk/machine/default/rte.vars.mk
deleted file mode 100644
index df08d3b038..0000000000
--- a/mk/machine/default/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=corei7
diff --git a/mk/machine/dpaa/rte.vars.mk b/mk/machine/dpaa/rte.vars.mk
deleted file mode 100644
index 75df626ff2..0000000000
--- a/mk/machine/dpaa/rte.vars.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
-# Copyright 2017 NXP
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-MACHINE_CFLAGS += -march=armv8-a+crc
-
-ifdef CONFIG_RTE_ARCH_ARM_TUNE
-MACHINE_CFLAGS += -mtune=$(CONFIG_RTE_ARCH_ARM_TUNE:"%"=%)
-endif
-
-# To avoid TLS corruption issue.
-MACHINE_CFLAGS += -mtls-dialect=trad
diff --git a/mk/machine/emag/rte.vars.mk b/mk/machine/emag/rte.vars.mk
deleted file mode 100644
index 50342dfa27..0000000000
--- a/mk/machine/emag/rte.vars.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Ampere Computing
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=armv8-a+crc+crypto
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -mtune=emag)
diff --git a/mk/machine/hsw/rte.vars.mk b/mk/machine/hsw/rte.vars.mk
deleted file mode 100644
index 39099e760e..0000000000
--- a/mk/machine/hsw/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=core-avx2
diff --git a/mk/machine/ivb/rte.vars.mk b/mk/machine/ivb/rte.vars.mk
deleted file mode 100644
index 5b6563742a..0000000000
--- a/mk/machine/ivb/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=core-avx-i
diff --git a/mk/machine/n1sdp/rte.vars.mk b/mk/machine/n1sdp/rte.vars.mk
deleted file mode 100644
index 6d69de03c9..0000000000
--- a/mk/machine/n1sdp/rte.vars.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Arm Ltd
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-include $(RTE_SDK)/mk/rte.helper.mk
-
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -march=armv8.2-a+crc+crypto)
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -mcpu=neoverse-n1)
diff --git a/mk/machine/native/rte.vars.mk b/mk/machine/native/rte.vars.mk
deleted file mode 100644
index 8c96e3fa04..0000000000
--- a/mk/machine/native/rte.vars.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=native
-
-# On FreeBSD systems, sometimes the correct CPU type is not picked up.
-# To get everything to compile, we need SSE4.2 support, so check if that is
-# reported by compiler. If not, check if the CPU actually supports it, and if
-# so, set the compilation target to be a corei7, minimum target with SSE4.2.
-SSE42_SUPPORT=$(shell $(CC) -march=native -dM -E - </dev/null | grep SSE4_2)
-ifeq ($(SSE42_SUPPORT),)
- MACHINE_CFLAGS = -march=corei7
-endif
diff --git a/mk/machine/nhm/rte.vars.mk b/mk/machine/nhm/rte.vars.mk
deleted file mode 100644
index 91de5d9bed..0000000000
--- a/mk/machine/nhm/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=corei7
diff --git a/mk/machine/octeontx2/rte.vars.mk b/mk/machine/octeontx2/rte.vars.mk
deleted file mode 100644
index e209cf4920..0000000000
--- a/mk/machine/octeontx2/rte.vars.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-include $(RTE_SDK)/mk/rte.helper.mk
-
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -march=armv8.2-a+crc+crypto+lse)
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -mcpu=octeontx2)
diff --git a/mk/machine/power8/rte.vars.mk b/mk/machine/power8/rte.vars.mk
deleted file mode 100644
index 00e0834b8a..0000000000
--- a/mk/machine/power8/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) IBM Corporation 2014.
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS =
diff --git a/mk/machine/silvermont/rte.vars.mk b/mk/machine/silvermont/rte.vars.mk
deleted file mode 100644
index e4f3fe42bd..0000000000
--- a/mk/machine/silvermont/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=silvermont
diff --git a/mk/machine/snb/rte.vars.mk b/mk/machine/snb/rte.vars.mk
deleted file mode 100644
index efe2f32d70..0000000000
--- a/mk/machine/snb/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=corei7-avx
diff --git a/mk/machine/thunderx/rte.vars.mk b/mk/machine/thunderx/rte.vars.mk
deleted file mode 100644
index 047741668c..0000000000
--- a/mk/machine/thunderx/rte.vars.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=armv8-a+crc+crypto -mcpu=thunderx
diff --git a/mk/machine/thunderx2/rte.vars.mk b/mk/machine/thunderx2/rte.vars.mk
deleted file mode 100644
index b80dc8680c..0000000000
--- a/mk/machine/thunderx2/rte.vars.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-include $(RTE_SDK)/mk/rte.helper.mk
-
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -march=armv8.1-a+crc+crypto)
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -mcpu=thunderx2t99)
diff --git a/mk/machine/wsm/rte.vars.mk b/mk/machine/wsm/rte.vars.mk
deleted file mode 100644
index e9bc3f9848..0000000000
--- a/mk/machine/wsm/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=corei7 -maes -mpclmul
diff --git a/mk/machine/xgene1/rte.vars.mk b/mk/machine/xgene1/rte.vars.mk
deleted file mode 100644
index e632f3139b..0000000000
--- a/mk/machine/xgene1/rte.vars.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=armv8-a
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
deleted file mode 100644
index a544259970..0000000000
--- a/mk/rte.app.mk
+++ /dev/null
@@ -1,509 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation.
-# Copyright(c) 2014-2015 6WIND S.A.
-
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(APP)
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y)
-_INSTALL += $(RTE_OUTPUT)/app/$(APP) $(RTE_OUTPUT)/app/$(APP).map
-POSTINSTALL += target-appinstall
-_CLEAN = doclean
-POSTCLEAN += target-appclean
-
-ifeq ($(NO_LDSCRIPT),)
-LDSCRIPT = $(RTE_LDSCRIPT)
-endif
-
-# Link only the libraries used in the application
-LDFLAGS += --as-needed
-
-# default path for libs
-_LDLIBS-y += -L$(RTE_SDK_BIN)/lib
-
-#
-# Order is important: from higher level to lower level
-#
-_LDLIBS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += -lrte_flow_classify
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PIPELINE) += --whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PIPELINE) += -lrte_pipeline
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PIPELINE) += --no-whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_TABLE) += --whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_TABLE) += -lrte_table
-_LDLIBS-$(CONFIG_RTE_LIBRTE_TABLE) += --no-whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PORT) += --whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PORT) += -lrte_port
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PORT) += --no-whole-archive
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PDUMP) += -lrte_pdump
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += -lrte_distributor
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += -lrte_ip_frag
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METER) += -lrte_meter
-_LDLIBS-$(CONFIG_RTE_LIBRTE_FIB) += -lrte_fib
-_LDLIBS-$(CONFIG_RTE_LIBRTE_RIB) += -lrte_rib
-_LDLIBS-$(CONFIG_RTE_LIBRTE_LPM) += -lrte_lpm
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ACL) += -lrte_acl
-_LDLIBS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += -lrte_jobstats
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += --whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += -lrte_metrics
-ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += -ljansson
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += --no-whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BITRATE) += -lrte_bitratestats
-_LDLIBS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS) += -lrte_latencystats
-_LDLIBS-$(CONFIG_RTE_LIBRTE_POWER) += -lrte_power
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_EFD) += -lrte_efd
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BPF) += -lrte_bpf
-ifeq ($(CONFIG_RTE_LIBRTE_BPF_ELF),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BPF) += -lelf
-endif
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IPSEC) += -lrte_ipsec
-
-_LDLIBS-y += --whole-archive
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_CFGFILE) += -lrte_cfgfile
-_LDLIBS-$(CONFIG_RTE_LIBRTE_GRO) += -lrte_gro
-_LDLIBS-$(CONFIG_RTE_LIBRTE_GSO) += -lrte_gso
-_LDLIBS-$(CONFIG_RTE_LIBRTE_HASH) += -lrte_hash
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMBER) += -lrte_member
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lrte_vhost
-_LDLIBS-$(CONFIG_RTE_LIBRTE_KVARGS) += -lrte_kvargs
-_LDLIBS-y += -lrte_telemetry
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MBUF) += -lrte_mbuf
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NET) += -lrte_net
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ETHER) += -lrte_ethdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BBDEV) += -lrte_bbdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += -lrte_cryptodev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SECURITY) += -lrte_security
-_LDLIBS-$(CONFIG_RTE_LIBRTE_COMPRESSDEV) += -lrte_compressdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_REGEXDEV) += -lrte_regexdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += -lrte_eventdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_RAWDEV) += -lrte_rawdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_TIMER) += -lrte_timer
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += -lrte_mempool
-_LDLIBS-$(CONFIG_RTE_LIBRTE_STACK) += -lrte_stack
-_LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += -lrte_mempool_ring
-_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL) += -lrte_mempool_octeontx2
-_LDLIBS-$(CONFIG_RTE_LIBRTE_RING) += -lrte_ring
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PCI) += -lrte_pci
-_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lrte_eal
-_LDLIBS-$(CONFIG_RTE_LIBRTE_CMDLINE) += -lrte_cmdline
-_LDLIBS-$(CONFIG_RTE_LIBRTE_REORDER) += -lrte_reorder
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lrte_sched
-_LDLIBS-$(CONFIG_RTE_LIBRTE_RCU) += -lrte_rcu
-_LDLIBS-$(CONFIG_RTE_LIBRTE_GRAPH) += -lrte_graph
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NODE) += -lrte_node
-
-ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_KNI) += -lrte_kni
-endif
-
-OTX-CPT-y := $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO)
-OTX-CPT-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO)
-ifeq ($(findstring y,$(OTX-CPT-y)),y)
-_LDLIBS-y += -lrte_common_cpt
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF)$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL),yy)
-_LDLIBS-y += -lrte_common_octeontx
-endif
-OCTEONTX2-y := $(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD)
-ifeq ($(findstring y,$(OCTEONTX2-y)),y)
-_LDLIBS-y += -lrte_common_octeontx2
-endif
-
-MVEP-y := $(CONFIG_RTE_LIBRTE_MVPP2_PMD)
-MVEP-y += $(CONFIG_RTE_LIBRTE_MVNETA_PMD)
-MVEP-y += $(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO)
-ifneq (,$(findstring y,$(MVEP-y)))
-_LDLIBS-y += -lrte_common_mvep -L$(LIBMUSDK_PATH)/lib -lmusdk
-endif
-
-DPAAX-y := $(CONFIG_RTE_LIBRTE_DPAA_BUS)
-DPAAX-y += $(CONFIG_RTE_LIBRTE_FSLMC_BUS)
-DPAAX-y += $(CONFIG_RTE_LIBRTE_ENETC_PMD)
-DPAAX-y += $(CONFIG_RTE_LIBRTE_PMD_CAAM_JR)
-DPAAX-y += $(CONFIG_RTE_LIBRTE_PFE_PMD)
-ifeq ($(findstring y,$(DPAAX-y)),y)
- _LDLIBS-y += -lrte_common_dpaax
-endif
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += -lrte_bus_pci
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VDEV_BUS) += -lrte_bus_vdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_BUS) += -lrte_bus_dpaa
-ifeq ($(CONFIG_RTE_EAL_VFIO),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += -lrte_bus_fslmc
-endif
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),n)
-# plugins (link only if static libraries)
-
-_LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_BUCKET) += -lrte_mempool_bucket
-_LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_STACK) += -lrte_mempool_stack
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL) += -lrte_mempool_dpaa
-endif
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL) += -lrte_mempool_dpaa2
-endif
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += -lrte_pmd_af_packet
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP) += -lrte_pmd_af_xdp -lbpf
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += -lrte_pmd_ark
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += -lrte_pmd_atlantic
-_LDLIBS-$(CONFIG_RTE_LIBRTE_AVP_PMD) += -lrte_pmd_avp
-_LDLIBS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += -lrte_pmd_axgbe
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += -lrte_pmd_bnx2x -lz
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += -lrte_pmd_bnxt
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += -lrte_pmd_bond
-_LDLIBS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += -lrte_pmd_cxgbe
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += -lrte_pmd_dpaa
-endif
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += -lrte_pmd_dpaa2
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += -lrte_pmd_e1000
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += -lrte_pmd_ena
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += -lrte_pmd_enetc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += -lrte_pmd_enic
-_LDLIBS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += -lrte_pmd_fm10k
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += -lrte_pmd_failsafe
-_LDLIBS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += -lrte_pmd_hinic
-_LDLIBS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += -lrte_pmd_hns3
-_LDLIBS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += -lrte_pmd_i40e
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += -lrte_pmd_iavf
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += -lrte_pmd_ice
-IAVF-y := $(CONFIG_RTE_LIBRTE_IAVF_PMD)
-IAVF-y += $(CONFIG_RTE_LIBRTE_ICE_PMD)
-ifeq ($(findstring y,$(IAVF-y)),y)
-_LDLIBS-y += -lrte_common_iavf
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += -lrte_pmd_igc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += -lrte_pmd_ionic
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_KNI) += -lrte_pmd_kni
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += -lrte_pmd_lio
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_MEMIF) += -lrte_pmd_memif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += -lrte_pmd_mlx4
-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)
-_LDLIBS-y += -lrte_common_mlx5
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += -lrte_pmd_mlx5
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += -lrte_pmd_mlx5_vdpa
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += -lrte_pmd_mlx5_regex
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-_LDLIBS-y += -ldl
-else ifeq ($(CONFIG_RTE_IBVERBS_LINK_STATIC),y)
-LIBS_IBVERBS_STATIC = $(shell $(RTE_SDK)/buildtools/options-ibverbs-static.sh)
-_LDLIBS-y += --no-whole-archive
-_LDLIBS-y += $(LIBS_IBVERBS_STATIC)
-_LDLIBS-y += --whole-archive
-else
-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)
-_LDLIBS-y += -libverbs -lmlx5
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += -libverbs -lmlx4
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += -lrte_pmd_mvpp2
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MVNETA_PMD) += -lrte_pmd_mvneta
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += -lrte_pmd_nfp
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += -lrte_pmd_null
-_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD) += -lrte_pmd_octeontx2 -lm
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += -lrte_pmd_pcap -lpcap
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += -lrte_pmd_pfe
-_LDLIBS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += -lrte_pmd_qede
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_RING) += -lrte_pmd_ring
-ifeq ($(CONFIG_RTE_LIBRTE_SCHED),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += -lrte_pmd_softnic
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += -lrte_pmd_sfc_efx
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += -lrte_pmd_szedata2 -lsze2
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += -lrte_pmd_nfb
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --libs netcope-common)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += -lrte_pmd_tap
-_LDLIBS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += -lrte_pmd_thunderx_nicvf
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD) += -lrte_pmd_vdev_netvsc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += -lrte_pmd_virtio
-ifeq ($(CONFIG_RTE_LIBRTE_VHOST),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_VHOST) += -lrte_pmd_vhost
-ifeq ($(CONFIG_RTE_EAL_VFIO),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IFC_PMD) += -lrte_pmd_ifc
-endif # $(CONFIG_RTE_EAL_VFIO)
-endif # $(CONFIG_RTE_LIBRTE_VHOST)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += -lrte_pmd_vmxnet3_uio
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VMBUS) += -lrte_bus_vmbus
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += -lrte_pmd_netvsc
-
-ifeq ($(CONFIG_RTE_LIBRTE_BBDEV),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL) += -lrte_pmd_bbdev_null
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC) += -lrte_pmd_bbdev_fpga_lte_fec
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC) += -lrte_pmd_bbdev_fpga_5gnr_fec
-
-# TURBO SOFTWARE PMD is dependent on the FLEXRAN library
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lrte_pmd_bbdev_turbo_sw
-ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX2),y)
-# Dependency on the FLEXRAN SDK library if available
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_crc -lcrc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_turbo -lturbo
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_rate_matching -lrate_matching
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_common -lcommon
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lirc -limf -lstdc++ -lipps -lsvml
-ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX512),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_LDPC_ratematch_5gnr -lLDPC_ratematch_5gnr
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_ldpc_encoder_5gnr -lldpc_encoder_5gnr
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_ldpc_decoder_5gnr -lldpc_decoder_5gnr
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_rate_dematching_5gnr -lrate_dematching_5gnr
-endif # CONFIG_RTE_BBDEV_SDK_AVX512
-endif # CONFIG_RTE_BBDEV_SDK_AVX2
-endif # CONFIG_RTE_LIBRTE_BBDEV
-
-ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -lrte_pmd_aesni_mb
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -lIPSec_MB
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += -lrte_pmd_aesni_gcm
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += -lIPSec_MB
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += -lrte_pmd_ccp -lcrypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) += -lrte_pmd_openssl -lcrypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += -lrte_pmd_null_crypto
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT_SYM) += -lrte_pmd_qat -lcrypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT_ASYM) += -lrte_pmd_qat -lcrypto
-endif # CONFIG_RTE_LIBRTE_PMD_QAT
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += -lrte_pmd_snow3g
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += -lIPSec_MB
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += -lrte_pmd_kasumi
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += -lIPSec_MB
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += -lrte_pmd_zuc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += -lIPSec_MB
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) += -lrte_pmd_armv8
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) += -L$(ARMV8_CRYPTO_LIB_PATH) -lAArch64crypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO) += -L$(LIBMUSDK_PATH)/lib -lrte_pmd_mvsam_crypto -lmusdk
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += -lrte_pmd_nitrox
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += -lrte_pmd_octeontx_crypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += -lrte_pmd_octeontx2_crypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += -lrte_pmd_crypto_scheduler
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += -lrte_pmd_dpaa2_sec
-endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC) += -lrte_pmd_dpaa_sec
-endif # CONFIG_RTE_LIBRTE_DPAA_BUS
-ifeq ($(CONFIG_RTE_LIBRTE_SECURITY),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += -lrte_pmd_caam_jr
-endif # CONFIG_RTE_LIBRTE_SECURITY
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += -lrte_pmd_virtio_crypto
-endif # CONFIG_RTE_LIBRTE_CRYPTODEV
-
-ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += -lrte_pmd_isal_comp
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += -lisal
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF) += -lrte_pmd_octeontx_zip
-# Link QAT driver if it has not been linked yet
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT_SYM),n)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += -lrte_pmd_qat
-endif # CONFIG_RTE_LIBRTE_PMD_QAT_SYM
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += -lrte_pmd_zlib
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += -lz
-endif # CONFIG_RTE_LIBRTE_COMPRESSDEV
-
-ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += -lrte_pmd_skeleton_event
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += -lrte_pmd_sw_event
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += -lrte_pmd_dsw_event
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += -lrte_pmd_octeontx_ssovf
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += -lrte_pmd_dpaa_event
-endif # CONFIG_RTE_LIBRTE_DPAA_BUS
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += -lrte_pmd_dpaa2_event
-endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += -lrte_mempool_octeontx
-_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += -lrte_pmd_octeontx
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += -lrte_pmd_octeontx2_event
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += -lrte_pmd_opdl_event
-endif # CONFIG_RTE_LIBRTE_EVENTDEV
-
-ifeq ($(CONFIG_RTE_LIBRTE_RAWDEV),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += -lrte_rawdev_skeleton
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV) += -lrte_rawdev_dpaa2_cmdif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV) += -lrte_rawdev_dpaa2_qdma
-endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += -lrte_bus_ifpga
-ifeq ($(CONFIG_RTE_LIBRTE_IFPGA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV) += -lrte_rawdev_ifpga -lfdt
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += -lrte_pmd_ipn3ke
-endif # CONFIG_RTE_LIBRTE_IFPGA_BUS
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += -lrte_rawdev_ioat
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV) += -lrte_rawdev_ntb
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) += -lrte_rawdev_octeontx2_dma
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += -lrte_rawdev_octeontx2_ep
-endif # CONFIG_RTE_LIBRTE_RAWDEV
-
-endif # !CONFIG_RTE_BUILD_SHARED_LIBS
-
-_LDLIBS-y += --no-whole-archive
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),n)
-# The static libraries do not know their dependencies.
-# So linking with static library requires explicit dependencies.
-_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lrt
-ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX)$(CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lnuma
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lm
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lrt
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMBER) += -lm
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METER) += -lm
-ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lnuma
-endif
-_LDLIBS-$(CONFIG_RTE_PORT_PCAP) += -lpcap
-endif # !CONFIG_RTE_BUILD_SHARED_LIBS
-
-_LDLIBS-y += $(EXECENV_LDLIBS)
-
-LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS)
-
-# all the words except the first one
-allbutfirst = $(wordlist 2,$(words $(1)),$(1))
-
-# Eliminate duplicates without sorting, only keep the last occurrence
-filter-libs = \
- $(if $(1),$(strip\
- $(if \
- $(and \
- $(filter $(firstword $(1)),$(call allbutfirst,$(1))),\
- $(filter -l%,$(firstword $(1)))),\
- ,\
- $(firstword $(1))) \
- $(call filter-libs,$(call allbutfirst,$(1)))))
-
-LDLIBS := $(call filter-libs,$(LDLIBS))
-
-MAPFLAGS = -Map=$@.map --cref
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-ifeq ($(LINK_USING_CC),1)
-O_TO_EXE = $(CC) -o $@ $(CFLAGS) $(EXTRA_CFLAGS) $(OBJS-y) $(call linkerprefix, \
- $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \
- $(MAPFLAGS))
-else
-O_TO_EXE = $(LD) -o $@ $(OBJS-y) \
- $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \
- $(MAPFLAGS)
-endif
-O_TO_EXE_STR = $(subst ','\'',$(O_TO_EXE)) #'# fix syntax highlight
-O_TO_EXE_DISP = $(if $(V),"$(O_TO_EXE_STR)"," LD $(@)")
-O_TO_EXE_CMD = "cmd_$@ = $(O_TO_EXE_STR)"
-O_TO_EXE_DO = @set -e; \
- echo $(O_TO_EXE_DISP); \
- $(O_TO_EXE) && \
- echo $(O_TO_EXE_CMD) > $(call exe2cmd,$(@))
-
--include .$(APP).cmd
-
-# path where libraries are retrieved
-LDLIBS_PATH := $(subst -Wl$(comma)-L,,$(filter -Wl$(comma)-L%,$(LDLIBS)))
-LDLIBS_PATH += $(subst -L,,$(filter -L%,$(LDLIBS)))
-
-# list of .a files that are linked to this application
-LDLIBS_NAMES := $(patsubst -l%,lib%.a,$(filter -l%,$(LDLIBS)))
-LDLIBS_NAMES += $(patsubst -Wl$(comma)-l%,lib%.a,$(filter -Wl$(comma)-l%,$(LDLIBS)))
-
-# list of found libraries files (useful for deps). If not found, the
-# library is silently ignored and dep won't be checked
-LDLIBS_FILES := $(sort $(wildcard $(foreach dir,$(LDLIBS_PATH),\
- $(addprefix $(dir)/,$(LDLIBS_NAMES)))))
-
-#
-# Compile executable file if needed
-#
-$(APP): $(OBJS-y) $(LDLIBS_FILES) $(DEP_$(APP)) $(LDSCRIPT) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_EXE_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_EXE_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_EXE_DO))
-
-#
-# install app in $(RTE_OUTPUT)/app
-#
-$(RTE_OUTPUT)/app/$(APP): $(APP)
- @echo " INSTALL-APP $(APP)"
- @[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
- $(Q)cp -f $(APP) $(RTE_OUTPUT)/app
-
-#
-# install app map file in $(RTE_OUTPUT)/app
-#
-$(RTE_OUTPUT)/app/$(APP).map: $(APP)
- @echo " INSTALL-MAP $(APP).map"
- @[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
- $(Q)cp -f $(APP).map $(RTE_OUTPUT)/app
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-.PHONY: doclean
-doclean:
- $(Q)rm -rf $(APP) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) $(INSTALL-FILES-all) .$(APP).cmd $(APP).map
-
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-ifneq ($(wildcard $(RTE_SDK)/mk/target/$(RTE_TARGET)/rte.app.mk),)
-include $(RTE_SDK)/mk/target/$(RTE_TARGET)/rte.app.mk
-else
-include $(RTE_SDK)/mk/target/generic/rte.app.mk
-endif
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.bsdmodule.mk b/mk/rte.bsdmodule.mk
deleted file mode 100644
index df8bf9ef35..0000000000
--- a/mk/rte.bsdmodule.mk
+++ /dev/null
@@ -1,89 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-##### if sourced from kernel Kbuild system
-ifneq ($(KERNELRELEASE),)
-override EXTRA_CFLAGS = $(MODULE_CFLAGS) $(EXTRA_KERNEL_CFLAGS)
-obj-m += $(MODULE).o
-ifneq ($(MODULE),$(notdir $(SRCS-y:%.c=%)))
-$(MODULE)-objs += $(notdir $(SRCS-y:%.c=%.o))
-endif
-
-##### if launched from rte build system
-else
-
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# DPDK uses a more up-to-date gcc, so clear the override here.
-unexport CC
-override CFLAGS = $(MODULE_CFLAGS)
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(MODULE).ko
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) \
- $(RTE_OUTPUT)/kmod/$(MODULE).ko
-_CLEAN = doclean
-
-SRCS_LINKS = $(addsuffix _link,$(SRCS-y))
-
-compare = $(strip $(subst $(1),,$(2)) $(subst $(2),,$(1)))
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-# Link all sources in build directory
-%_link: FORCE
- $(if $(call compare,$(notdir $*),$*),\
- $(Q)if [ ! -f $(notdir $(*)) ]; then ln -nfs $(SRCDIR)/$(*) . ; fi,\
- $(Q)if [ ! -f $(notdir $(*)) ]; then ln -nfs $(SRCDIR)/$(*) . ; fi)
-
-# build module
-$(MODULE).ko: $(SRCS_LINKS)
- $(Q)if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
- $(Q)if [ ! -f $(notdir BSDmakefile) ]; then ln -nfs $(SRCDIR)/BSDmakefile . ; fi
- $(Q)MAKEFLAGS= $(BSDMAKE)
-
-# install module in $(RTE_OUTPUT)/kmod
-$(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
- $(Q)echo INSTALL-MODULE $(MODULE).ko
- $(Q)[ -d $(RTE_OUTPUT)/kmod ] || mkdir -p $(RTE_OUTPUT)/kmod
- $(Q)cp -f $(MODULE).ko $(RTE_OUTPUT)/kmod
-
-# install module
-modules_install:
- $(Q)MAKEFLAGS= $(BSDMAKE) install
-
-.PHONY: clean
-clean: _postclean
-
-# do a make clean and remove links
-.PHONY: doclean
-doclean:
- $(Q)if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
- $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
- $(Q)$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
- if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
- $(Q)if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS) \
- $(INSTALL-FILES-all)
-
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
-
-endif
diff --git a/mk/rte.combinedlib.mk b/mk/rte.combinedlib.mk
deleted file mode 100644
index 9d0f935358..0000000000
--- a/mk/rte.combinedlib.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-default: all
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXT:=.so
-else
-EXT:=.a
-endif
-
-RTE_LIBNAME := dpdk
-COMBINEDLIB := lib$(RTE_LIBNAME)$(EXT)
-
-LIBS := $(filter-out $(COMBINEDLIB), $(sort $(notdir $(wildcard $(RTE_OUTPUT)/lib/*$(EXT)))))
-
-all: FORCE
- $(Q)echo "GROUP ( $(LIBS) )" > $(RTE_OUTPUT)/lib/$(COMBINEDLIB)
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean:
- $(Q)rm -f $(RTE_OUTPUT)/lib/$(COMBINEDLIB)
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
deleted file mode 100644
index fa87535312..0000000000
--- a/mk/rte.cpuflags.mk
+++ /dev/null
@@ -1,124 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# this makefile is called from the generic rte.vars.mk and is
-# used to set the RTE_CPUFLAG_* environment variables giving details
-# of what instruction sets the target cpu supports.
-
-AUTO_CPUFLAGS := $(shell $(CC) $(MACHINE_CFLAGS) $(WERROR_FLAGS) $(EXTRA_CFLAGS) -dM -E - < /dev/null)
-
-# adding flags to CPUFLAGS
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSE__),)
-CPUFLAGS += SSE
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSE2__),)
-CPUFLAGS += SSE2
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSE3__),)
-CPUFLAGS += SSE3
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSSE3__),)
-CPUFLAGS += SSSE3
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSE4_1__),)
-CPUFLAGS += SSE4_1
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSE4_2__),)
-CPUFLAGS += SSE4_2
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__AES__),)
-CPUFLAGS += AES
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__PCLMUL__),)
-CPUFLAGS += PCLMULQDQ
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__AVX__),)
-ifeq ($(CONFIG_RTE_ENABLE_AVX),y)
-CPUFLAGS += AVX
-endif
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__RDRND__),)
-CPUFLAGS += RDRAND
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__RDSEED__),)
-CPUFLAGS += RDSEED
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__FSGSBASE__),)
-CPUFLAGS += FSGSBASE
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__F16C__),)
-CPUFLAGS += F16C
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__AVX2__),)
-ifeq ($(CONFIG_RTE_ENABLE_AVX),y)
-CPUFLAGS += AVX2
-endif
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__AVX512F__),)
-ifeq ($(CONFIG_RTE_ENABLE_AVX512),y)
-CPUFLAGS += AVX512F
-else
-# disable AVX512F support for GCC & binutils 2.30 as a workaround for Bug 97
-ifeq ($(FORCE_DISABLE_AVX512),y)
-MACHINE_CFLAGS += -mno-avx512f
-endif
-endif
-endif
-
-# IBM Power CPU flags
-ifneq ($(filter $(AUTO_CPUFLAGS),__PPC64__),)
-CPUFLAGS += PPC64
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__PPC32__),)
-CPUFLAGS += PPC32
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__vector),)
-CPUFLAGS += ALTIVEC
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__builtin_vsx_xvnmaddadp),)
-CPUFLAGS += VSX
-endif
-
-# ARM flags
-ifneq ($(filter __ARM_NEON __aarch64__,$(AUTO_CPUFLAGS)),)
-CPUFLAGS += NEON
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__ARM_FEATURE_CRC32),)
-CPUFLAGS += CRC32
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__ARM_FEATURE_CRYPTO),)
-CPUFLAGS += AES
-CPUFLAGS += PMULL
-CPUFLAGS += SHA1
-CPUFLAGS += SHA2
-endif
-
-MACHINE_CFLAGS += $(addprefix -DRTE_MACHINE_CPUFLAG_,$(CPUFLAGS))
-
-# To strip whitespace
-comma:= ,
-empty:=
-space:= $(empty) $(empty)
-CPUFLAGSTMP1 := $(addprefix RTE_CPUFLAG_,$(CPUFLAGS))
-CPUFLAGSTMP2 := $(subst $(space),$(comma),$(CPUFLAGSTMP1))
-CPUFLAGS_LIST := -DRTE_COMPILE_TIME_CPUFLAGS=$(CPUFLAGSTMP2)
diff --git a/mk/rte.extapp.mk b/mk/rte.extapp.mk
deleted file mode 100644
index 427bb52306..0000000000
--- a/mk/rte.extapp.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-MAKEFLAGS += --no-print-directory
-
-# we must create the output dir first and recall the same Makefile
-# from this directory
-ifeq ($(NOT_FIRST_CALL),)
-
-NOT_FIRST_CALL = 1
-export NOT_FIRST_CALL
-
-all:
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-
-%::
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) $@ \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-else
-include $(RTE_SDK)/mk/rte.app.mk
-endif
diff --git a/mk/rte.extlib.mk b/mk/rte.extlib.mk
deleted file mode 100644
index 977873325d..0000000000
--- a/mk/rte.extlib.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-MAKEFLAGS += --no-print-directory
-
-EXTLIB_BUILD := y
-
-# we must create the output dir first and recall the same Makefile
-# from this directory
-ifeq ($(NOT_FIRST_CALL),)
-
-NOT_FIRST_CALL = 1
-export NOT_FIRST_CALL
-
-all:
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-
-%::
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) $@ \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-else
-include $(RTE_SDK)/mk/rte.lib.mk
-endif
diff --git a/mk/rte.extobj.mk b/mk/rte.extobj.mk
deleted file mode 100644
index c761a5de1e..0000000000
--- a/mk/rte.extobj.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-MAKEFLAGS += --no-print-directory
-
-# we must create the output dir first and recall the same Makefile
-# from this directory
-ifeq ($(NOT_FIRST_CALL),)
-
-NOT_FIRST_CALL = 1
-export NOT_FIRST_CALL
-
-all:
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-
-%::
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) $@ \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-else
-include $(RTE_SDK)/mk/rte.obj.mk
-endif
diff --git a/mk/rte.extshared.mk b/mk/rte.extshared.mk
deleted file mode 100644
index 64269e1a85..0000000000
--- a/mk/rte.extshared.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2012-2013 6WIND S.A.
-
-MAKEFLAGS += --no-print-directory
-
-# we must create the output dir first and recall the same Makefile
-# from this directory
-ifeq ($(NOT_FIRST_CALL),)
-
-NOT_FIRST_CALL = 1
-export NOT_FIRST_CALL
-
-all:
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
- @echo $(RTE_OUTPUT)/lib must be added to /etc/ld.so.conf or \
- LD_LIBRARY_PATH variable to allow binary to link with dynamic library
-
-%::
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) $@ \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-else
-include $(RTE_SDK)/mk/rte.shared.mk
-endif
diff --git a/mk/rte.extsubdir.mk b/mk/rte.extsubdir.mk
deleted file mode 100644
index 0f8ef94c50..0000000000
--- a/mk/rte.extsubdir.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2014 6WIND S.A.
-
-MAKEFLAGS += --no-print-directory
-
-ALL_DEPDIRS := $(patsubst DEPDIRS-%,%,$(filter DEPDIRS-%,$(.VARIABLES)))
-
-# output directory
-O ?= $(CURDIR)
-BASE_OUTPUT ?= $(abspath $(O))
-CUR_SUBDIR ?= .
-
-.PHONY: all
-all: $(DIRS-y)
-
-.PHONY: clean
-clean: $(DIRS-y)
-
-.PHONY: $(DIRS-y)
-$(DIRS-y):
- @echo "== $@"
- $(Q)$(MAKE) -C $(@) \
- M=$(CURDIR)/$(@)/Makefile \
- O=$(BASE_OUTPUT)/$(CUR_SUBDIR)/$(@)/$(RTE_TARGET) \
- BASE_OUTPUT=$(BASE_OUTPUT) \
- CUR_SUBDIR=$(CUR_SUBDIR)/$(@) \
- S=$(CURDIR)/$(@) \
- $(filter-out $(DIRS-y),$(MAKECMDGOALS))
-
-define depdirs_rule
-$(DEPDIRS-$(1)):
-
-$(1): | $(DEPDIRS-$(1))
-
-$(if $(D),$(info $(1) depends on $(DEPDIRS-$(1))))
-endef
-
-$(foreach dir,$(ALL_DEPDIRS),\
- $(eval $(call depdirs_rule,$(dir))))
diff --git a/mk/rte.gnuconfigure.mk b/mk/rte.gnuconfigure.mk
deleted file mode 100644
index 72e99aafc3..0000000000
--- a/mk/rte.gnuconfigure.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-_BUILD = configure
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y)
-_CLEAN = doclean
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-configure:
- $(Q)cd $(CONFIGURE_PATH) ; \
- ./configure --prefix $(CONFIGURE_PREFIX) $(CONFIGURE_ARGS) ; \
- make ; \
- make install
-
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- $(Q)cd $(CONFIGURE_PATH) ; make clean
- $(Q)rm -f $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.helper.mk b/mk/rte.helper.mk
deleted file mode 100644
index 6e7fd03d7f..0000000000
--- a/mk/rte.helper.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-
-# rte_cc_has_argument
-# Usage: MACHINE_CFLAGS += $(call rte_cc_has_argument, -mno-avx512f)
-# Return the argument if the argument is supported by the compiler.
-#
-define rte_cc_has_argument
- $(shell $(CC) -E $(1) -xc /dev/null 1>/dev/null 2>/dev/null && echo $(1))
-endef
diff --git a/mk/rte.hostapp.mk b/mk/rte.hostapp.mk
deleted file mode 100644
index 68e32b5780..0000000000
--- a/mk/rte.hostapp.mk
+++ /dev/null
@@ -1,93 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# tell rte.compile-pre.mk to use HOSTCC instead of CC
-USE_HOST := 1
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(HOSTAPP)
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) $(RTE_OUTPUT)/app/$(HOSTAPP)
-_CLEAN = doclean
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-O_TO_EXE = $(HOSTCC) $(HOST_LDFLAGS) $(LDFLAGS_$(@)) \
- $(EXTRA_HOST_LDFLAGS) -o $@ $(OBJS-y) $(LDLIBS)
-O_TO_EXE_STR = $(subst ','\'',$(O_TO_EXE)) #'# fix syntax highlight
-O_TO_EXE_DISP = $(if $(V),"$(O_TO_EXE_STR)"," HOSTLD $(@)")
-O_TO_EXE_CMD = "cmd_$@ = $(O_TO_EXE_STR)"
-O_TO_EXE_DO = @set -e; \
- echo $(O_TO_EXE_DISP); \
- $(O_TO_EXE) && \
- echo $(O_TO_EXE_CMD) > $(call exe2cmd,$(@))
-
--include .$(HOSTAPP).cmd
-
-# list of .a files that are linked to this application
-LDLIBS_FILES := $(sort $(wildcard \
- $(addprefix $(RTE_OUTPUT)/lib/, \
- $(patsubst -l%,lib%.a,$(filter -l%,$(LDLIBS))))))
-
-#
-# Compile executable file if needed
-#
-$(HOSTAPP): $(OBJS-y) $(LDLIBS_FILES) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$@ -> $< " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_EXE_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_EXE_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_EXE_DO))
-
-#
-# install app in $(RTE_OUTPUT)/hostapp
-#
-$(RTE_OUTPUT)/app/$(HOSTAPP): $(HOSTAPP)
- @echo " INSTALL-HOSTAPP $(HOSTAPP)"
- @[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
- $(Q)cp -f $(HOSTAPP) $(RTE_OUTPUT)/app
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-.PHONY: doclean
-doclean:
- $(Q)rm -rf $(HOSTAPP) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) $(INSTALL-FILES-all) .$(HOSTAPP).cmd
-
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.hostlib.mk b/mk/rte.hostlib.mk
deleted file mode 100644
index 0ccaa55f09..0000000000
--- a/mk/rte.hostlib.mk
+++ /dev/null
@@ -1,86 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# tell rte.compile-pre.mk to use HOSTCC instead of CC
-USE_HOST := 1
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(HOSTLIB)
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) $(RTE_OUTPUT)/hostlib/$(HOSTLIB)
-_CLEAN = doclean
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-O_TO_A = $(AR) crus $(HOSTLIB) $(OBJS-y)
-O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight
-O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)"," HOSTAR $(@)")
-O_TO_A_CMD = "cmd_$@ = $(O_TO_A_STR)"
-O_TO_A_DO = @set -e; \
- echo $(O_TO_A_DISP); \
- $(O_TO_A) && \
- echo $(O_TO_A_CMD) > $(call exe2cmd,$(@))
-
--include .$(HOSTLIB).cmd
-
-#
-# Archive objects in .a file if needed
-#
-$(HOSTLIB): $(OBJS-y) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$@ -> $< " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_A_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_A_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_A_DO))
-
-#
-# install lib in $(RTE_OUTPUT)/hostlib
-#
-$(RTE_OUTPUT)/hostlib/$(HOSTLIB): $(HOSTLIB)
- @echo " INSTALL-HOSTLIB $(HOSTLIB)"
- @[ -d $(RTE_OUTPUT)/hostlib ] || mkdir -p $(RTE_OUTPUT)/hostlib
- $(Q)cp -f $(HOSTLIB) $(RTE_OUTPUT)/hostlib
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- $(Q)rm -rf $(HOSTLIB) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) $(INSTALL-FILES-all)
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.install.mk b/mk/rte.install.mk
deleted file mode 100644
index e56daf457c..0000000000
--- a/mk/rte.install.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# install-only makefile (no build target)
-
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y)
-_CLEAN = doclean
-
-.PHONY: all
-all: _postinstall
- @true
-
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- @rm -rf $(INSTALL-FILES-all)
- @rm -f $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
deleted file mode 100644
index 229ae16814..0000000000
--- a/mk/rte.lib.mk
+++ /dev/null
@@ -1,156 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-EXTLIB_BUILD ?= n
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-LIBABIVER ?= $(shell cat $(RTE_SRCDIR)/ABI_VERSION)
-SOVER := $(basename $(LIBABIVER))
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-SONAME := $(patsubst %.a,%.so.$(SOVER),$(LIB))
-LIB := $(patsubst %.a,%.so.$(LIBABIVER),$(LIB))
-ifeq ($(EXTLIB_BUILD),n)
-CPU_LDFLAGS += --version-script=$(SRCDIR)/$(EXPORT_MAP)
-endif
-endif
-
-
-_BUILD = $(LIB)
-PREINSTALL = $(SYMLINK-FILES-y)
-_INSTALL = $(INSTALL-FILES-y) $(RTE_OUTPUT)/lib/$(LIB)
-_CLEAN = doclean
-
-LDLIBS += $(EXECENV_LDLIBS-y)
-
-.PHONY: all
-all: install
-
-.PHONY: install
-ifeq ($(SYMLINK-FILES-y),)
-install: build _postinstall
-else
-install: _preinstall build _postinstall
-build: _preinstall
-endif
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-ifeq ($(LINK_USING_CC),1)
-# Override the definition of LD here, since we're linking with CC
-LD := $(CC) $(CPU_CFLAGS) $(EXTRA_CFLAGS)
-_CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS))
-override EXTRA_LDFLAGS := $(call linkerprefix,$(EXTRA_LDFLAGS))
-else
-_CPU_LDFLAGS := $(CPU_LDFLAGS)
-endif
-
-O_TO_A = $(AR) crDs $(LIB) $(OBJS-y)
-O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight
-O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)"," AR $(@)")
-O_TO_A_CMD = "cmd_$@ = $(O_TO_A_STR)"
-O_TO_A_DO = @set -e; \
- echo $(O_TO_A_DISP); \
- $(O_TO_A) && \
- echo $(O_TO_A_CMD) > $(call exe2cmd,$(@))
-
-ifneq ($(CC_SUPPORTS_Z),false)
-NO_UNDEFINED := -z defs
-endif
-
-O_TO_S = $(LD) -L$(RTE_SDK_BIN)/lib $(_CPU_LDFLAGS) $(EXTRA_LDFLAGS) \
- -shared $(OBJS-y) $(NO_UNDEFINED) $(LDLIBS) -Wl,-soname,$(SONAME) -o $(LIB)
-O_TO_S_STR = $(subst ','\'',$(O_TO_S)) #'# fix syntax highlight
-O_TO_S_DISP = $(if $(V),"$(O_TO_S_STR)"," LD $(@)")
-O_TO_S_DO = @set -e; \
- echo $(O_TO_S_DISP); \
- $(O_TO_S) && \
- echo $(O_TO_S_CMD) > $(call exe2cmd,$(@))
-
--include .$(LIB).cmd
-
-#
-# Archive objects in .a file if needed
-#
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-$(LIB): $(OBJS-y) $(DEP_$(LIB)) FORCE
-ifeq ($(LIBABIVER),)
- @echo "Must Specify a $(LIB) ABI version"
- @false
-endif
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_S_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_S_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_S_DO))
-
-else
-$(LIB): $(OBJS-y) $(DEP_$(LIB)) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_A_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_A_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_A_DO))
-endif
-
-#
-# install lib in $(RTE_OUTPUT)/lib
-#
-$(RTE_OUTPUT)/lib/$(LIB): $(LIB)
- @echo " INSTALL-LIB $(LIB)"
- @[ -d $(RTE_OUTPUT)/lib ] || mkdir -p $(RTE_OUTPUT)/lib
- $(Q)cp -f $(LIB) $(RTE_OUTPUT)/lib
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
- $(Q)ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so/')
- $(Q)if [ $(SOVER) != $(LIBABIVER) ]; then \
- ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so.$(SOVER)/') ; \
- fi
-endif
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- $(Q)rm -rf $(LIB) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) .$(LIB).cmd $(INSTALL-FILES-all) *.pmd.c *.pmd.o
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.module.mk b/mk/rte.module.mk
deleted file mode 100644
index 1ada528a00..0000000000
--- a/mk/rte.module.mk
+++ /dev/null
@@ -1,86 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-##### if sourced from kernel Kbuild system
-ifneq ($(KERNELRELEASE),)
-override EXTRA_CFLAGS = $(MODULE_CFLAGS) $(EXTRA_KERNEL_CFLAGS)
-obj-m += $(MODULE).o
-ifneq ($(MODULE),$(notdir $(SRCS-y:%.c=%)))
-$(MODULE)-objs += $(notdir $(SRCS-y:%.c=%.o))
-endif
-
-##### if launched from rte build system
-else
-
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(MODULE).ko
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) \
- $(RTE_OUTPUT)/kmod/$(MODULE).ko
-_CLEAN = doclean
-
-SRCS_LINKS = $(addsuffix _link,$(SRCS-y))
-
-compare = $(strip $(subst $(1),,$(2)) $(subst $(2),,$(1)))
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-# Link all sources in build directory
-%_link: FORCE
- $(if $(call compare,$(notdir $*),$*),\
- @if [ ! -f $(notdir $(*)) ]; then ln -nfs $(SRCDIR)/$(*) . ; fi,\
- @if [ ! -f $(notdir $(*)) ]; then ln -nfs $(SRCDIR)/$(*) . ; fi)
-
-# build module
-$(MODULE).ko: $(SRCS_LINKS)
- @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
- @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
- CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
-
-# install module in $(RTE_OUTPUT)/kmod
-$(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
- @echo INSTALL-MODULE $(MODULE).ko
- @[ -d $(RTE_OUTPUT)/kmod ] || mkdir -p $(RTE_OUTPUT)/kmod
- @cp -f $(MODULE).ko $(RTE_OUTPUT)/kmod
-
-# install module
-modules_install:
- @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
- modules_install
-
-.PHONY: clean
-clean: _postclean
-
-# do a make clean and remove links
-.PHONY: doclean
-doclean:
- @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
- $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
- @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
- if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
- @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
- @rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS) \
- $(INSTALL-FILES-all)
-
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
-
-endif
diff --git a/mk/rte.obj.mk b/mk/rte.obj.mk
deleted file mode 100644
index 1641a52e75..0000000000
--- a/mk/rte.obj.mk
+++ /dev/null
@@ -1,82 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-ifneq ($(OBJ),)
-_BUILD = $(OBJ)
-else
-_BUILD = $(OBJS-y)
-endif
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y)
-_CLEAN = doclean
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-ifneq ($(OBJ),)
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-O_TO_O = $(LD) -r -o $(OBJ) $(OBJS-y)
-O_TO_O_STR = $(subst ','\'',$(O_TO_O)) #'# fix syntax highlight
-O_TO_O_DISP = $(if $(V),"$(O_TO_O_STR)"," LD $(@)")
-O_TO_O_CMD = "cmd_$@ = $(O_TO_O_STR)"
-O_TO_O_DO = @set -e; \
- echo $(O_TO_O_DISP); \
- $(O_TO_O) && \
- echo $(O_TO_O_CMD) > $(call exe2cmd,$(@))
-
--include .$(OBJ).cmd
-
-#
-# Archive objects in .a file if needed
-#
-$(OBJ): $(OBJS-y) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_O_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_O_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_O_DO))
-endif
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- @rm -rf $(OBJ) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) $(INSTALL-FILES-all)
- @rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.sdkbuild.mk b/mk/rte.sdkbuild.mk
deleted file mode 100644
index d1d57b6695..0000000000
--- a/mk/rte.sdkbuild.mk
+++ /dev/null
@@ -1,77 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-#
-# include rte.vars.mk if config file exists
-#
-ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
- $(error "need a make config first")
-else
- include $(RTE_SDK)/mk/rte.vars.mk
-endif
-
-# allow exec-env specific targets
--include $(RTE_SDK)/mk/exec-env/$(RTE_EXEC_ENV)/rte.custom.mk
-
-buildtools: | lib
-kernel: | lib
-drivers: | lib buildtools
-app: | lib buildtools drivers
-test: | lib buildtools drivers
-
-#
-# build and clean targets
-#
-
-CLEANDIRS = $(addsuffix _clean,$(ROOTDIRS-y) $(ROOTDIRS-n) $(ROOTDIRS-))
-
-.PHONY: build
-build: $(ROOTDIRS-y)
- @echo "Build complete [$(RTE_TARGET)]"
- @echo "==== NOTE ===="
- @echo "It is recommended to build DPDK using 'meson' and 'ninja'"
- @echo "See https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html for instructions"
- @echo "Building DPDK with 'make' will be deprecated in a future release"
- @echo "=============="
-
-.PHONY: clean
-clean: $(CLEANDIRS)
- @rm -rf $(RTE_OUTPUT)/include $(RTE_OUTPUT)/app \
- $(RTE_OUTPUT)/lib \
- $(RTE_OUTPUT)/hostlib $(RTE_OUTPUT)/kmod
- @[ -d $(RTE_OUTPUT)/include ] || mkdir -p $(RTE_OUTPUT)/include
- @$(RTE_SDK)/buildtools/gen-config-h.sh $(RTE_OUTPUT)/.config \
- > $(RTE_OUTPUT)/include/rte_config.h
- $(Q)$(MAKE) -f $(RTE_SDK)/GNUmakefile gcovclean
- @echo Clean complete
-
-.SECONDEXPANSION:
-.PHONY: $(ROOTDIRS-y) $(ROOTDIRS-)
-$(ROOTDIRS-y) $(ROOTDIRS-):
- @[ -d $(BUILDDIR)/$@ ] || mkdir -p $(BUILDDIR)/$@
- @echo "== Build $@"
- $(Q)$(MAKE) S=$@ -f $(RTE_SRCDIR)/$@/Makefile -C $(BUILDDIR)/$@ all
- @if [ $@ = drivers ]; then \
- $(MAKE) -f $(RTE_SDK)/mk/rte.combinedlib.mk; \
- fi
-
-%_clean:
- @echo "== Clean $*"
- $(Q)if [ -f $(RTE_SRCDIR)/$*/Makefile -a -d $(BUILDDIR)/$* ]; then \
- $(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile -C $(BUILDDIR)/$* clean ; \
- fi
-
-RTE_MAKE_SUBTARGET ?= all
-
-%_sub: $(addsuffix _sub,$(*))
- @echo $(addsuffix _sub,$(*))
- @[ -d $(BUILDDIR)/$* ] || mkdir -p $(BUILDDIR)/$*
- @echo "== Build $*"
- $(Q)$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile -C $(BUILDDIR)/$* \
- $(RTE_MAKE_SUBTARGET)
-
-.PHONY: all
-all: build
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk
deleted file mode 100644
index f538649f22..0000000000
--- a/mk/rte.sdkconfig.mk
+++ /dev/null
@@ -1,142 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-.PHONY: showversion
-showversion:
- @cat $(RTE_SRCDIR)/VERSION
-
-.PHONY: showversionum
-showversionum:
- @cat $(RTE_SRCDIR)/VERSION | awk -F '.' '{print $$1$$2}'
-
-INSTALL_CONFIGS := $(sort $(filter-out %app-icc,$(filter-out %app-clang,\
- $(filter-out %app-gcc,$(filter-out %~,\
- $(patsubst $(RTE_SRCDIR)/config/defconfig_%,%,\
- $(wildcard $(RTE_SRCDIR)/config/defconfig_*)))))))
-INSTALL_TARGETS := $(addsuffix _install,$(INSTALL_CONFIGS))
-
-.PHONY: showconfigs
-showconfigs:
- @$(foreach CONFIG, $(INSTALL_CONFIGS), echo $(CONFIG);)
-
-.PHONY: notemplate
-notemplate:
- @printf "No template specified. Use 'make defconfig' or "
- @echo "use T=template from the following list:"
- @$(MAKE) -rR showconfigs | sed 's,^, ,'
-
-.PHONY: defconfig
-defconfig:
- @$(MAKE) config T=$(shell \
- uname -m | awk '{ \
- if ($$0 == "aarch64") { \
- print "arm64-armv8a"} \
- else if ($$0 == "armv7l") { \
- print "arm-armv7a"} \
- else if ($$0 == "ppc64") { \
- print "ppc_64-power8"} \
- else if ($$0 == "amd64") { \
- print "x86_64-native"} \
- else { \
- printf "%s-native", $$0} }' \
- )-$(shell \
- uname | awk '{ \
- if ($$0 == "Linux") { \
- print "linux"} \
- else { \
- print "freebsd"} }' \
- )-$(shell \
- ${CC} --version | grep -o 'cc\|gcc\|icc\|clang' | awk \
- '{ \
- if ($$1 == "cc") { \
- print "gcc" } \
- else { \
- print $$1 } \
- }' \
- )
-
-.PHONY: config
-ifeq ($(RTE_CONFIG_TEMPLATE),)
-config: notemplate
-else
-config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile
- @echo "Configuration done using" \
- $(patsubst defconfig_%,%,$(notdir $(RTE_CONFIG_TEMPLATE)))
-endif
-
-$(RTE_OUTPUT):
- $(Q)mkdir -p $@
-
-ifdef NODOTCONF
-$(RTE_OUTPUT)/.config: ;
-else
-# Generate config from template, if there are duplicates keep only the last.
-# To do so the temp config is checked for duplicate keys with cut/sort/uniq
-# Then for each of those identified duplicates as long as there are more than
-# just one left the last match is removed.
-# Part of the config includes the version information taken from "VERSION"
-# in the repo. This needs to be split into the various parts using sed and awk.
-# To ensure correct version comparison, we append ".99" to the version number
-# so that the version of a release is higher than that of its rc's.
-$(RTE_OUTPUT)/.config: $(RTE_CONFIG_TEMPLATE) FORCE | $(RTE_OUTPUT)
- $(Q)if [ "$(RTE_CONFIG_TEMPLATE)" != "" -a -f "$(RTE_CONFIG_TEMPLATE)" ]; then \
- $(CPP) -undef -P -x assembler-with-cpp \
- `cat $(RTE_SRCDIR)/VERSION | \
- sed -e 's/-rc/.-rc./' -e 's/$$/..99/' | \
- awk -F '.' '{print "-D__YEAR="int($$1), "-D__MONTH="int($$2), "-D__MINOR="int($$3), "-D__SUFFIX=\""$$4"\"", "-D__RELEASE="int($$5)}'` \
- -ffreestanding \
- -o $(RTE_OUTPUT)/.config_tmp $(RTE_CONFIG_TEMPLATE) ; \
- config=$$(cat $(RTE_OUTPUT)/.config_tmp) ; \
- echo "$$config" | awk -F '=' 'BEGIN {i=1} \
- /^#/ {pos[i++]=$$0} \
- !/^#/ {if (!s[$$1]) {pos[i]=$$0; s[$$1]=i++} \
- else {pos[s[$$1]]=$$0}} END \
- {for (j=1; j<i; j++) print pos[j]}' \
- > $(RTE_OUTPUT)/.config_tmp ; \
- if ! cmp -s $(RTE_OUTPUT)/.config_tmp $(RTE_OUTPUT)/.config; then \
- cp $(RTE_OUTPUT)/.config_tmp $(RTE_OUTPUT)/.config ; \
- cp $(RTE_OUTPUT)/.config_tmp $(RTE_OUTPUT)/.config.orig ; \
- fi ; \
- rm -f $(RTE_OUTPUT)/.config_tmp ; \
- else \
- $(MAKE) -rRf $(RTE_SDK)/mk/rte.sdkconfig.mk notemplate; \
- fi
-endif
-
-# generate a Makefile for this build directory
-# use a relative path so it will continue to work even if we move the directory
-SDK_RELPATH=$(shell $(RTE_SDK)/buildtools/relpath.sh $(abspath $(RTE_SRCDIR)) \
- $(abspath $(RTE_OUTPUT)))
-OUTPUT_RELPATH=$(shell $(RTE_SDK)/buildtools/relpath.sh $(abspath $(RTE_OUTPUT)) \
- $(abspath $(RTE_SRCDIR)))
-$(RTE_OUTPUT)/Makefile: | $(RTE_OUTPUT)
- $(Q)$(RTE_SDK)/buildtools/gen-build-mk.sh $(SDK_RELPATH) > $@
-
-# clean installed files, and generate a new config header file
-# if NODOTCONF variable is defined, don't try to rebuild .config
-$(RTE_OUTPUT)/include/rte_config.h: $(RTE_OUTPUT)/.config
- $(Q)rm -rf $(RTE_OUTPUT)/include $(RTE_OUTPUT)/app \
- $(RTE_OUTPUT)/lib \
- $(RTE_OUTPUT)/hostlib $(RTE_OUTPUT)/kmod $(RTE_OUTPUT)/build
- $(Q)mkdir -p $(RTE_OUTPUT)/include
- $(Q)$(RTE_SDK)/buildtools/gen-config-h.sh $(RTE_OUTPUT)/.config \
- > $(RTE_OUTPUT)/include/rte_config.h
-
-# generate the rte_config.h
-.PHONY: headerconfig
-headerconfig: $(RTE_OUTPUT)/include/rte_config.h
- @true
-
-# check that .config is present, and if yes, check that rte_config.h
-# is up to date
-.PHONY: checkconfig
-checkconfig:
- @if [ ! -f $(RTE_OUTPUT)/.config ]; then \
- echo "No .config in build directory"; \
- exit 1; \
- fi
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk \
- headerconfig NODOTCONF=1
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.sdkdepdirs.mk b/mk/rte.sdkdepdirs.mk
deleted file mode 100644
index 7adeb0e11b..0000000000
--- a/mk/rte.sdkdepdirs.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
- $(error "need a make config first")
-endif
-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
- $(error "need a make config first")
-endif
diff --git a/mk/rte.sdkdoc.mk b/mk/rte.sdkdoc.mk
deleted file mode 100644
index fd77e41867..0000000000
--- a/mk/rte.sdkdoc.mk
+++ /dev/null
@@ -1,104 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation.
-# Copyright(c) 2013-2015 6WIND S.A.
-
-ifdef T
-ifeq ("$(origin T)", "command line")
-$(error "Cannot use T= with doc target")
-endif
-endif
-
-RTE_SPHINX_BUILD = sphinx-build
-RTE_PDFLATEX_VERBOSE := --interaction=nonstopmode
-
-ifndef V
-RTE_SPHINX_VERBOSE := -q
-RTE_PDFLATEX_VERBOSE := --interaction=batchmode
-RTE_INKSCAPE_VERBOSE := >/dev/null 2>&1
-endif
-ifeq '$V' '0'
-RTE_SPHINX_VERBOSE := -q
-RTE_PDFLATEX_VERBOSE := --interaction=batchmode
-RTE_INKSCAPE_VERBOSE := >/dev/null 2>&1
-endif
-
-RTE_PDF_DPI ?= 300
-
-RTE_GUIDES := $(filter %/, $(wildcard $(RTE_SDK)/doc/guides/*/))
-
-API_EXAMPLES := $(RTE_OUTPUT)/doc/html/examples.dox
-
-.PHONY: help
-help:
- @cat $(RTE_SDK)/doc/build-sdk-quick.txt
- @$(MAKE) -rR showconfigs | sed 's,^,\t\t\t\t,'
-
-.PHONY: all
-all: api-html guides-html guides-pdf
-
-.PHONY: clean
-clean: api-html-clean guides-html-clean guides-pdf-clean guides-man-clean
-
-.PHONY: api-html
-api-html: $(API_EXAMPLES)
- @echo 'doxygen for API...'
- $(Q)mkdir -p $(RTE_OUTPUT)/doc/html
- $(Q)(sed -e "s|@VERSION@|`$(MAKE) -rRs showversion`|" \
- -e "s|@API_EXAMPLES@|$(API_EXAMPLES)|" \
- -e "s|@OUTPUT@|$(RTE_OUTPUT)/doc|" \
- -e "s|@HTML_OUTPUT@|html/api|" \
- -e "s|@TOPDIR@|./|g" \
- -e "s|@STRIP_FROM_PATH@|./|g" \
- $(RTE_SDK)/doc/api/doxy-api.conf.in)| \
- doxygen -
- $(Q)$(RTE_SDK)/doc/api/doxy-html-custom.sh $(RTE_OUTPUT)/doc/html/api/doxygen.css
-
-.PHONY: api-html-clean
-api-html-clean:
- $(Q)rm -f $(API_EXAMPLES)
- $(Q)rm -rf $(RTE_OUTPUT)/doc/html/api/search
- $(Q)rm -f $(RTE_OUTPUT)/doc/html/api/*
- $(Q)rmdir -p --ignore-fail-on-non-empty $(RTE_OUTPUT)/doc/html/api 2>&- || true
-
-$(API_EXAMPLES): api-html-clean
- $(Q)mkdir -p $(@D)
- $(Q)doc/api/generate_examples.sh examples $(API_EXAMPLES)
-
-guides-pdf-clean: guides-pdf-img-clean
-guides-pdf-img-clean:
- $(Q)rm -f $(RTE_SDK)/doc/guides/*/img/*.pdf
-
-guides-%-clean:
- $(Q)rm -rf $(RTE_OUTPUT)/doc/$*/guides
- $(Q)rmdir -p --ignore-fail-on-non-empty $(RTE_OUTPUT)/doc/$* 2>&- || true
-
-guides-pdf: $(addprefix guides-pdf-, $(notdir $(RTE_GUIDES:/=))) ;
-guides-pdf-%:
- @echo 'sphinx processing $@...'
- $(Q)$(RTE_SPHINX_BUILD) -b latex $(RTE_SPHINX_VERBOSE) \
- -c $(RTE_SDK)/doc/guides $(RTE_SDK)/doc/guides/$* \
- $(RTE_OUTPUT)/doc/pdf/guides/$*
- $(if $^,$(Q)rm -f $^)
- @echo 'pdflatex processing $@...'
- $(Q)$(MAKE) all-pdf -sC $(RTE_OUTPUT)/doc/pdf/guides/$* \
- LATEXOPTS=$(RTE_PDFLATEX_VERBOSE)
- $(Q)mv $(RTE_OUTPUT)/doc/pdf/guides/$*/doc.pdf \
- $(RTE_OUTPUT)/doc/pdf/guides/$*.pdf
-
-guides-html-prepare:
- $(Q)install -D -m0644 $(RTE_SDK)/doc/guides/custom.css \
- $(RTE_OUTPUT)/doc/html/guides/_static/css/custom.css
-
-guides-%-prepare: ;
-
-guides-%: guides-%-prepare
- @echo 'sphinx processing $@...'
- $(Q)$(RTE_SPHINX_BUILD) -b $* $(RTE_SPHINX_VERBOSE) \
- -c $(RTE_SDK)/doc/guides $(RTE_SDK)/doc/guides \
- $(RTE_OUTPUT)/doc/$*/guides
-
-# Each PDF depends on generated images *.pdf from *.svg
-$(foreach guide, $(RTE_GUIDES), $(foreach img, $(wildcard $(guide)img/*.svg), \
- $(eval guides-pdf-$(notdir $(guide:/=)): $(img:svg=pdf))))
-%.pdf: %.svg
- $(Q)inkscape -d $(RTE_PDF_DPI) -D -f $< -A $@ $(RTE_INKSCAPE_VERBOSE)
diff --git a/mk/rte.sdkexamples.mk b/mk/rte.sdkexamples.mk
deleted file mode 100644
index 5eeec36494..0000000000
--- a/mk/rte.sdkexamples.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2014 6WIND S.A.
-
-# examples application are seen as external applications which are
-# not part of SDK.
-BUILDING_RTE_SDK :=
-export BUILDING_RTE_SDK
-
-# Build directory is given with O=
-O ?= $(RTE_SDK)/examples
-
-# Target for which examples should be built.
-T ?= *
-
-# list all available configurations
-EXAMPLES_CONFIGS := $(patsubst $(RTE_SRCDIR)/config/defconfig_%,%,\
- $(wildcard $(RTE_SRCDIR)/config/defconfig_$(T)))
-EXAMPLES_TARGETS := $(addsuffix _examples,\
- $(filter-out %~,$(EXAMPLES_CONFIGS)))
-
-.PHONY: examples
-examples: $(EXAMPLES_TARGETS)
-
-%_examples:
- @echo ================== Build examples for $*
- $(Q)if [ ! -d "${RTE_SDK}/${*}" ]; then \
- echo "Target ${*} does not exist in ${RTE_SDK}/${*}." ; \
- echo -n "Please install DPDK first (make install) or use another " ; \
- echo "target argument (T=target)." ; \
- false ; \
- else \
- $(MAKE) -C examples O=$(abspath $(O)) RTE_TARGET=$(*); \
- fi
-
-EXAMPLES_CLEAN_TARGETS := $(addsuffix _examples_clean,\
- $(filter-out %~,$(EXAMPLES_CONFIGS)))
-
-.PHONY: examples_clean
-examples_clean: $(EXAMPLES_CLEAN_TARGETS)
-
-%_examples_clean:
- @echo ================== Clean examples for $*
- $(Q)if [ ! -d "${RTE_SDK}/${*}" ]; then \
- echo "Target ${*} does not exist in ${RTE_SDK}/${*}." ; \
- echo -n "Please install DPDK first (make install) or use another " ; \
- echo "target argument (T=target)." ; \
- false ; \
- else \
- $(MAKE) -C examples O=$(abspath $(O)) RTE_TARGET=$(*) clean; \
- fi
diff --git a/mk/rte.sdkgcov.mk b/mk/rte.sdkgcov.mk
deleted file mode 100644
index ab528b18b8..0000000000
--- a/mk/rte.sdkgcov.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifdef T
-ifeq ("$(origin T)", "command line")
-$(error "Cannot use T= with gcov target")
-endif
-endif
-
-ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
- $(error "need a make config first")
-else
- include $(RTE_SDK)/mk/rte.vars.mk
-endif
-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
- $(error "need a make config first")
-endif
-
-INPUTDIR = $(RTE_OUTPUT)
-OUTPUTDIR = $(RTE_OUTPUT)/gcov
-
-.PHONY: gcovclean
-gcovclean:
- $(Q)find $(INPUTDIR)/build -name "*.gcno" -o -name "*.gcda" -exec rm {} \;
- $(Q)rm -rf $(OUTPUTDIR)
-
-.PHONY: gcov
-gcov:
- $(Q)for APP in test ; do \
- mkdir -p $(OUTPUTDIR)/$$APP ; cd $(OUTPUTDIR)/$$APP ; \
- for FIC in `strings $(RTE_OUTPUT)/app/$$APP | grep gcda | sed s,gcda,o,` ; do \
- SUBDIR=`basename $$FIC`;\
- mkdir $$SUBDIR ;\
- cd $$SUBDIR ;\
- $(GCOV) $(RTE_OUTPUT)/app/$$APP -o $$FIC > gcov.log; \
- cd - >/dev/null;\
- done ; \
- cd - >/dev/null; \
- done
diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
deleted file mode 100644
index 32bed5d951..0000000000
--- a/mk/rte.sdkinstall.mk
+++ /dev/null
@@ -1,152 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright 2015 6WIND S.A.
-
-# Configuration, compilation and installation can be done at once
-# with make install T=<config>
-
-ifdef T # config, build and install combined
-# The build directory is T and may be prepended with O
-O ?= .
-RTE_OUTPUT := $O/$T
-else # standard install
-# Build directory is given with O=
-O ?= build
-RTE_OUTPUT := $O
-endif
-
-ifneq ($(MAKECMDGOALS),pre_install)
-include $(RTE_SDK)/mk/rte.vars.mk
-endif
-
-ifdef T # defaults with T= will install an almost flat staging tree
-export prefix ?=
-kerneldir ?= $(prefix)/kmod
-else
-ifeq ($(RTE_EXEC_ENV),linuxapp)
-RTE_EXEC_ENV=linux
-endif
-ifeq ($(RTE_EXEC_ENV),linux)
-kerneldir ?= $(RTE_KERNELDIR:/build=/extra/dpdk)
-else
-kerneldir ?= /boot/modules
-endif
-prefix ?= /usr/local
-endif
-exec_prefix ?= $(prefix)
-bindir ?= $(exec_prefix)/bin
-sbindir ?= $(exec_prefix)/sbin
-libdir ?= $(exec_prefix)/lib
-includedir ?= $(prefix)/include/dpdk
-datarootdir ?= $(prefix)/share
-docdir ?= $(datarootdir)/doc/dpdk
-datadir ?= $(datarootdir)/dpdk
-mandir ?= $(datarootdir)/man
-sdkdir ?= $(datadir)
-targetdir ?= $(datadir)/$(RTE_TARGET)
-
-# The install directories may be staged in DESTDIR
-
-# Create the directory $1 if not exists
-rte_mkdir = test -d $1 || mkdir -p $1
-
-# Create the relative symbolic link $2 -> $1
-# May be replaced with --relative option of ln from coreutils-8.16
-rte_symlink = ln -snf $$($(RTE_SDK)/buildtools/relpath.sh $1 $(dir $2)) $2
-
-.PHONY: pre_install
-pre_install:
-ifdef T
- $(Q)if [ ! -f $(RTE_OUTPUT)/.config ]; then \
- $(MAKE) config O=$(RTE_OUTPUT); \
- elif cmp -s $(RTE_OUTPUT)/.config.orig $(RTE_OUTPUT)/.config; then \
- $(MAKE) config O=$(RTE_OUTPUT); \
- else \
- if [ -f $(RTE_OUTPUT)/.config.orig ] ; then \
- tmp_build=$(RTE_OUTPUT)/.config.tmp; \
- $(MAKE) config O=$$tmp_build; \
- if ! cmp -s $(RTE_OUTPUT)/.config.orig $$tmp_build/.config ; then \
- echo "Conflict: local config and template config have both changed"; \
- exit 1; \
- fi; \
- fi; \
- echo "Using local configuration"; \
- fi
- $(Q)$(MAKE) all O=$(RTE_OUTPUT)
-endif
-
-.PHONY: install
-install:
-ifeq ($(DESTDIR)$(if $T,,+),)
- @echo Installation cannot run with T defined and DESTDIR undefined
-else
- @echo ================== Installing $(DESTDIR)$(prefix)/
- $(Q)$(MAKE) O=$(RTE_OUTPUT) T= install-runtime
- $(Q)$(MAKE) O=$(RTE_OUTPUT) T= install-kmod
- $(Q)$(MAKE) O=$(RTE_OUTPUT) T= install-sdk
- $(Q)$(MAKE) O=$(RTE_OUTPUT) T= install-doc
- @echo Installation in $(DESTDIR)$(prefix)/ complete
-endif
-
-# when installing we want recursive copies preserving timestamps only, no
-# preservation of user/group ids or permissions
-CP_FLAGS=-dR --preserve=timestamps
-TAR_X_FLAGS=--strip-components=1 --keep-newer-files --no-same-owner --no-same-permissions
-
-install-runtime:
- $(Q)$(call rte_mkdir, $(DESTDIR)$(libdir))
- $(Q)cp $(CP_FLAGS) $O/lib/* $(DESTDIR)$(libdir)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(bindir))
- $(Q)tar -cf - -C $O --exclude 'app/*.map' \
- --exclude app/dpdk-pmdinfogen \
- --exclude 'app/cmdline*' --exclude app/test \
- --exclude app/testacl --exclude app/testpipeline app | \
- tar -xf - -C $(DESTDIR)$(bindir) $(TAR_X_FLAGS)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir)/usertools)
- $(Q)tar -cf - -C $(RTE_SDK) --exclude meson.build usertools | \
- tar -xf - -C $(DESTDIR)$(datadir)/usertools $(TAR_X_FLAGS)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(sbindir))
- $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/usertools/dpdk-devbind.py, \
- $(DESTDIR)$(sbindir)/dpdk-devbind)
- $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/usertools/dpdk-pmdinfo.py, \
- $(DESTDIR)$(bindir)/dpdk-pmdinfo)
-ifneq ($(wildcard $O/doc/man/*/*.1),)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(mandir)/man1)
- $(Q)cp $(CP_FLAGS) $O/doc/man/*/*.1 $(DESTDIR)$(mandir)/man1
-endif
-ifneq ($(wildcard $O/doc/man/*/*.8),)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(mandir)/man8)
- $(Q)cp $(CP_FLAGS) $O/doc/man/*/*.8 $(DESTDIR)$(mandir)/man8
-endif
-
-install-kmod:
-ifneq ($(wildcard $O/kmod/*),)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(kerneldir))
- $(Q)cp $(CP_FLAGS) $O/kmod/* $(DESTDIR)$(kerneldir)
-endif
-
-install-sdk:
- $(Q)$(call rte_mkdir, $(DESTDIR)$(includedir))
- $(Q)tar -chf - -C $O include | \
- tar -xf - -C $(DESTDIR)$(includedir) $(TAR_X_FLAGS)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(sdkdir))
- $(Q)cp $(CP_FLAGS) $(RTE_SDK)/mk $(DESTDIR)$(sdkdir)
- $(Q)cp $(CP_FLAGS) $(RTE_SDK)/buildtools $(DESTDIR)$(sdkdir)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(targetdir)/app)
- $(Q)cp $(CP_FLAGS) $O/.config $(DESTDIR)$(targetdir)
- $(Q)cp $(CP_FLAGS) $O/app/dpdk-pmdinfogen $(DESTDIR)$(targetdir)/app
- $(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
- $(Q)$(call rte_symlink, $(DESTDIR)$(libdir), $(DESTDIR)$(targetdir)/lib)
-
-install-doc:
-ifneq ($(wildcard $O/doc/html),)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(docdir))
- $(Q)tar -cf - -C $O/doc --exclude 'html/guides/.*' html | \
- tar -xf - -C $(DESTDIR)$(docdir) $(TAR_X_FLAGS)
-endif
-ifneq ($(wildcard $O/doc/*/*/*pdf),)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(docdir)/guides)
- $(Q)cp $(CP_FLAGS) $O/doc/*/*/*pdf $(DESTDIR)$(docdir)/guides
-endif
- $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir))
- $(Q)cp $(CP_FLAGS) $(RTE_SDK)/examples $(DESTDIR)$(datadir)
diff --git a/mk/rte.sdkroot.mk b/mk/rte.sdkroot.mk
deleted file mode 100644
index fbee6e96d9..0000000000
--- a/mk/rte.sdkroot.mk
+++ /dev/null
@@ -1,115 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-MAKEFLAGS += --no-print-directory
-
-# define Q to '@' or not. $(Q) is used to prefix all shell commands to
-# be executed silently.
-Q=@
-ifeq '$V' '0'
-override V=
-endif
-ifdef V
-ifeq ("$(origin V)", "command line")
-Q=
-endif
-endif
-export Q
-
-ifeq ($(RTE_SDK),)
-$(error RTE_SDK is not defined)
-endif
-
-RTE_SRCDIR = $(CURDIR)
-export RTE_SRCDIR
-
-BUILDING_RTE_SDK := 1
-export BUILDING_RTE_SDK
-
-#
-# We can specify the configuration template when doing the "make
-# config". For instance: make config T=x86_64-native-linux-gcc
-#
-RTE_CONFIG_TEMPLATE :=
-ifdef T
-ifeq ("$(origin T)", "command line")
-RTE_CONFIG_TEMPLATE := $(RTE_SRCDIR)/config/defconfig_$(T)
-endif
-endif
-export RTE_CONFIG_TEMPLATE
-
-#
-# Default output is $(RTE_SRCDIR)/build
-# output files wil go in a separate directory
-#
-ifdef O
-ifeq ("$(origin O)", "command line")
-RTE_OUTPUT := $(abspath $(O))
-endif
-endif
-RTE_OUTPUT ?= $(RTE_SRCDIR)/build
-export RTE_OUTPUT
-
-# the directory where intermediate build files are stored, like *.o,
-# *.d, *.cmd, ...
-BUILDDIR = $(RTE_OUTPUT)/build
-export BUILDDIR
-
-export ROOTDIRS-y ROOTDIRS- ROOTDIRS-n
-
-.PHONY: default test-build
-default test-build: all
-
-.PHONY: warning
-warning:
- @echo
- @echo "=========================== WARNING ============================"
- @echo "It is recommended to build DPDK using 'meson' and 'ninja'"
- @echo "See https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html"
- @echo "Building DPDK with 'make' will be deprecated in a future release"
- @echo "================================================================"
- @echo
- @test "$(MAKE_PAUSE)" = n || ( \
- echo "This deprecation warning can be passed by adding MAKE_PAUSE=n"; \
- echo "to 'make' command line or as an exported environment variable."; \
- echo "Press enter to continue..."; read junk)
-
-.PHONY: config defconfig showconfigs showversion showversionum
-config: warning
-config defconfig showconfigs showversion showversionum:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk $@
-
-.PHONY: cscope gtags tags etags
-cscope gtags tags etags:
- $(Q)$(RTE_SDK)/devtools/build-tags.sh $@ $T
-
-.PHONY: test test-fast test-perf coverage test-drivers test-dump
-test test-fast test-perf coverage test-drivers test-dump:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdktest.mk $@
-
-.PHONY: install
-install:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk pre_install
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
-install-%:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
-
-.PHONY: doc help
-doc: doc-all
-help: doc-help
-doc-%:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkdoc.mk $*
-
-.PHONY: gcov gcovclean
-gcov gcovclean:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkgcov.mk $@
-
-.PHONY: examples examples_clean
-examples examples_clean:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkexamples.mk $@
-
-# all other build targets
-%:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk checkconfig
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkroot.mk warning
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkbuild.mk $@
diff --git a/mk/rte.sdktest.mk b/mk/rte.sdktest.mk
deleted file mode 100644
index 803018ba3a..0000000000
--- a/mk/rte.sdktest.mk
+++ /dev/null
@@ -1,76 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
- $(error "need a make config first")
-else
- include $(RTE_SDK)/mk/rte.vars.mk
-endif
-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
- $(error "need a make config first")
-endif
-
-DATE := $(shell date '+%Y%m%d-%H%M')
-AUTOTEST_DIR := $(RTE_OUTPUT)/autotest-$(DATE)
-
-DIR := $(shell basename $(RTE_OUTPUT))
-
-#
-# test: launch auto-tests, very simple for now.
-#
-.PHONY: test test-fast test-perf test-drivers test-dump coverage
-
-PERFLIST=ring_perf,mempool_perf,memcpy_perf,hash_perf,timer_perf,\
- reciprocal_division,reciprocal_division_perf,lpm_perf,red_all,\
- barrier,hash_multiwriter,timer_racecond,efd,hash_functions,\
- eventdev_selftest_sw,member_perf,efd_perf,lpm6_perf,red_perf,\
- distributor_perf,ring_pmd_perf,pmd_perf,ring_perf
-DRIVERSLIST=link_bonding,link_bonding_mode4,link_bonding_rssconf,\
- cryptodev_sw_mrvl,cryptodev_dpaa2_sec,cryptodev_dpaa_sec,\
- cryptodev_qat,cryptodev_aesni_mb,cryptodev_openssl,\
- cryptodev_scheduler,cryptodev_aesni_gcm,cryptodev_null,\
- cryptodev_sw_snow3g,cryptodev_sw_kasumi,cryptodev_sw_zuc
-DUMPLIST=dump_struct_sizes,dump_mempool,dump_malloc_stats,dump_devargs,\
- dump_log_types,dump_ring,dump_physmem,dump_memzone
-
-SPACESTR:=
-SPACESTR+=
-STRIPPED_PERFLIST=$(subst $(SPACESTR),,$(PERFLIST))
-STRIPPED_DRIVERSLIST=$(subst $(SPACESTR),,$(DRIVERSLIST))
-STRIPPED_DUMPLIST=$(subst $(SPACESTR),,$(DUMPLIST))
-
-coverage: BLACKLIST=-$(STRIPPED_PERFLIST)
-test-fast: BLACKLIST=-$(STRIPPED_PERFLIST),$(STRIPPED_DRIVERSLIST),$(STRIPPED_DUMPLIST)
-test-perf: WHITELIST=$(STRIPPED_PERFLIST)
-test-drivers: WHITELIST=$(STRIPPED_DRIVERSLIST)
-test-dump: WHITELIST=$(STRIPPED_DUMPLIST)
-
-test test-fast test-perf test-drivers test-dump:
- @mkdir -p $(AUTOTEST_DIR) ; \
- cd $(AUTOTEST_DIR) ; \
- if [ -f $(RTE_OUTPUT)/app/test ]; then \
- python $(RTE_SDK)/app/test/autotest.py \
- $(RTE_OUTPUT)/app/test \
- $(RTE_TARGET) \
- $(BLACKLIST) $(WHITELIST); \
- else \
- echo "No test found, please do a 'make' first, or specify O=" ; \
- fi
-
-# this is a special target to ease the pain of running coverage tests
-# this runs all the autotests, cmdline_test script and dpdk-procinfo
-coverage:
- @mkdir -p $(AUTOTEST_DIR) ; \
- cd $(AUTOTEST_DIR) ; \
- if [ -f $(RTE_OUTPUT)/app/test ]; then \
- python $(RTE_SDK)/test/cmdline_test/cmdline_test.py \
- $(RTE_OUTPUT)/app/cmdline_test; \
- ulimit -S -n 100 ; \
- python $(RTE_SDK)/app/test/autotest.py \
- $(RTE_OUTPUT)/app/test \
- $(RTE_TARGET) \
- $(BLACKLIST) $(WHITELIST) ; \
- $(RTE_OUTPUT)/app/dpdk-procinfo --file-prefix=ring_perf -- -m; \
- else \
- echo "No test found, please do a 'make' first, or specify O=" ;\
- fi
diff --git a/mk/rte.shared.mk b/mk/rte.shared.mk
deleted file mode 100644
index 2b501ddb84..0000000000
--- a/mk/rte.shared.mk
+++ /dev/null
@@ -1,108 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2012-2013 6WIND S.A.
-
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(SHARED)
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) $(RTE_OUTPUT)/lib/$(SHARED)
-_CLEAN = doclean
-
-# Set fPIC in CFLAGS for .so generation
-CFLAGS += -fPIC
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-ifeq ($(LINK_USING_CC),1)
-override EXTRA_LDFLAGS := $(call linkerprefix,$(EXTRA_LDFLAGS))
-O_TO_SO = $(CC) $(call linkerprefix,$(LDFLAGS)) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \
- -shared -o $@ $(OBJS-y) $(call linkerprefix,$(LDLIBS))
-else
-O_TO_SO = $(LD) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \
- -shared -o $@ $(OBJS-y) $(LDLIBS)
-endif
-
-O_TO_SO_STR = $(subst ','\'',$(O_TO_SO)) #'# fix syntax highlight
-O_TO_SO_DISP = $(if $(V),"$(O_TO_SO_STR)"," LD $(@)")
-O_TO_SO_CMD = "cmd_$@ = $(O_TO_SO_STR)"
-O_TO_SO_DO = @set -e; \
- echo $(O_TO_SO_DISP); \
- $(O_TO_SO) && \
- echo $(O_TO_SO_CMD) > $(call exe2cmd,$(@))
-
--include .$(SHARED).cmd
-
-# path where libraries are retrieved
-LDLIBS_PATH := $(subst -Wl$(comma)-L,,$(filter -Wl$(comma)-L%,$(LDLIBS)))
-LDLIBS_PATH += $(subst -L,,$(filter -L%,$(LDLIBS)))
-
-# list of .a files that are linked to this application
-LDLIBS_NAMES := $(patsubst -l%,lib%.a,$(filter -l%,$(LDLIBS)))
-LDLIBS_NAMES += $(patsubst -Wl$(comma)-l%,lib%.a,$(filter -Wl$(comma)-l%,$(LDLIBS)))
-
-# list of found libraries files (useful for deps). If not found, the
-# library is silently ignored and dep won't be checked
-LDLIBS_FILES := $(sort $(wildcard $(foreach dir,$(LDLIBS_PATH),\
- $(addprefix $(dir)/,$(LDLIBS_NAMES)))))
-
-#
-# Archive objects in .so file if needed
-#
-$(SHARED): $(OBJS-y) $(LDLIBS_FILES) $(DEP_$(SHARED)) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_SO_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_SO_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_SO_DO))
-
-#
-# install lib in $(RTE_OUTPUT)/lib
-#
-$(RTE_OUTPUT)/lib/$(SHARED): $(SHARED)
- @echo " INSTALL-SHARED $(SHARED)"
- @[ -d $(RTE_OUTPUT)/lib ] || mkdir -p $(RTE_OUTPUT)/lib
- $(Q)cp -f $(SHARED) $(RTE_OUTPUT)/lib
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- $(Q)rm -rf $(SHARED) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) $(INSTALL-FILES-all)
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.subdir.mk b/mk/rte.subdir.mk
deleted file mode 100644
index d6e64a2460..0000000000
--- a/mk/rte.subdir.mk
+++ /dev/null
@@ -1,65 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# .mk to build subdirectories
-#
-
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-ALL_DEPDIRS := $(patsubst DEPDIRS-%,%,$(filter DEPDIRS-%,$(.VARIABLES)))
-
-CLEANDIRS = $(addsuffix _clean,$(DIRS-y) $(DIRS-n) $(DIRS-))
-
-VPATH += $(SRCDIR)
-_BUILD = $(DIRS-y)
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y)
-_CLEAN = $(CLEANDIRS)
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-.SECONDEXPANSION:
-.PHONY: $(DIRS-y)
-$(DIRS-y):
- @[ -d $(CURDIR)/$@ ] || mkdir -p $(CURDIR)/$@
- @echo "== Build $S/$@"
- @$(MAKE) S=$S/$@ -f $(SRCDIR)/$@/Makefile -C $(CURDIR)/$@ all
-
-.PHONY: clean
-clean: _postclean
-
-%_clean:
- @echo "== Clean $S/$*"
- @if [ -f $(SRCDIR)/$*/Makefile -a -d $(CURDIR)/$* ]; then \
- $(MAKE) S=$S/$* -f $(SRCDIR)/$*/Makefile -C $(CURDIR)/$* clean ; \
- fi
- @rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-define depdirs_rule
-$(DEPDIRS-$(1)):
-
-$(1): | $(DEPDIRS-$(1))
-
-$(if $(D),$(info $(1) depends on $(DEPDIRS-$(1))))
-endef
-
-$(foreach dir,$(ALL_DEPDIRS),\
- $(eval $(call depdirs_rule,$(dir))))
-
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.vars.mk b/mk/rte.vars.mk
deleted file mode 100644
index 07b0db127f..0000000000
--- a/mk/rte.vars.mk
+++ /dev/null
@@ -1,102 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# To be included at the beginning of all RTE user Makefiles. This
-# .mk will define the RTE environment variables by including the
-# config file of SDK. It also includes the config file from external
-# application if any.
-#
-
-ifeq ($(RTE_SDK),)
-$(error RTE_SDK is not defined)
-endif
-ifeq ($(wildcard $(RTE_SDK)),)
-$(error RTE_SDK variable points to an invalid location)
-endif
-
-# define Q to '@' or not. $(Q) is used to prefix all shell commands to
-# be executed silently.
-Q=@
-ifeq '$V' '0'
-override V=
-endif
-ifdef V
-ifeq ("$(origin V)", "command line")
-Q=
-endif
-endif
-export Q
-
-# if we are building SDK, only includes SDK configuration
-ifneq ($(BUILDING_RTE_SDK),)
- include $(RTE_OUTPUT)/.config
- # remove double-quotes from config names
- RTE_ARCH := $(CONFIG_RTE_ARCH:"%"=%)
- RTE_MACHINE := $(CONFIG_RTE_MACHINE:"%"=%)
- RTE_EXEC_ENV := $(CONFIG_RTE_EXEC_ENV:"%"=%)
- RTE_TOOLCHAIN := $(CONFIG_RTE_TOOLCHAIN:"%"=%)
- RTE_SDK_BIN := $(RTE_OUTPUT)
-endif
-
-RTE_TARGET ?= $(RTE_ARCH)-$(RTE_MACHINE)-$(RTE_EXEC_ENV)-$(RTE_TOOLCHAIN)
-
-ifeq ($(BUILDING_RTE_SDK),)
-# if we are building an external app/lib, include internal/rte.extvars.mk that will
-# define RTE_OUTPUT, RTE_SRCDIR, RTE_EXTMK, RTE_SDK_BIN, (etc ...)
-include $(RTE_SDK)/mk/internal/rte.extvars.mk
-endif
-
-CONFIG_RTE_LIBRTE_E1000_PMD = $(CONFIG_RTE_LIBRTE_IGB_PMD)
-ifneq ($(CONFIG_RTE_LIBRTE_E1000_PMD),y)
- CONFIG_RTE_LIBRTE_E1000_PMD = $(CONFIG_RTE_LIBRTE_EM_PMD)
-endif
-
-ifeq ($(RTE_ARCH),)
-$(error RTE_ARCH is not defined)
-endif
-
-ifeq ($(RTE_MACHINE),)
-$(error RTE_MACHINE is not defined)
-endif
-
-ifeq ($(RTE_EXEC_ENV),)
-$(error RTE_EXEC_ENV is not defined)
-endif
-
-ifeq ($(RTE_TOOLCHAIN),)
-$(error RTE_TOOLCHAIN is not defined)
-endif
-
-# can be overridden by make command line or exported environment variable
-RTE_KERNELDIR ?= /lib/modules/$(shell uname -r)/build
-
-export RTE_TARGET
-export RTE_ARCH
-export RTE_MACHINE
-export RTE_EXEC_ENV
-export RTE_TOOLCHAIN
-
-# developer build automatically enabled in a git tree
-ifneq ($(wildcard $(RTE_SDK)/.git),)
-RTE_DEVEL_BUILD ?= y
-endif
-
-# SRCDIR is the current source directory
-ifdef S
-SRCDIR := $(abspath $(RTE_SRCDIR)/$(S))
-else
-SRCDIR := $(RTE_SRCDIR)
-endif
-
-# helper: return y if option is set to y, else return an empty string
-testopt = $(if $(strip $(subst y,,$(1)) $(subst $(1),,y)),,y)
-
-# helper: return an empty string if option is set, else return y
-not = $(if $(strip $(subst y,,$(1)) $(subst $(1),,y)),,y)
-
-ifneq ($(wildcard $(RTE_SDK)/mk/target/$(RTE_TARGET)/rte.vars.mk),)
-include $(RTE_SDK)/mk/target/$(RTE_TARGET)/rte.vars.mk
-else
-include $(RTE_SDK)/mk/target/generic/rte.vars.mk
-endif
diff --git a/mk/target/generic/rte.app.mk b/mk/target/generic/rte.app.mk
deleted file mode 100644
index ed82656f18..0000000000
--- a/mk/target/generic/rte.app.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# define Makefile targets that are specific to an environment.
-#
-include $(RTE_SDK)/mk/exec-env/$(RTE_EXEC_ENV)/rte.app.mk
-
-.PHONY: exec-env-appinstall
-target-appinstall: exec-env-appinstall
-
-.PHONY: exec-env-appclean
-target-appclean: exec-env-appclean
diff --git a/mk/target/generic/rte.vars.mk b/mk/target/generic/rte.vars.mk
deleted file mode 100644
index 11b0418e55..0000000000
--- a/mk/target/generic/rte.vars.mk
+++ /dev/null
@@ -1,132 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# This .mk is the generic target rte.var.mk ; it includes .mk for
-# the specified machine, architecture, toolchain (compiler) and
-# executive environment.
-#
-
-#
-# toolchain:
-#
-# - define CC, LD, AR, AS, ...
-# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value)
-# - may override any previously defined variable
-#
-include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.vars.mk
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-#
-ifneq ($(wildcard $(RTE_SDK)/mk/machine/$(RTE_MACHINE)/rte.vars.mk),)
-include $(RTE_SDK)/mk/machine/$(RTE_MACHINE)/rte.vars.mk
-else
-MACHINE_CFLAGS := -march=$(RTE_MACHINE)
-endif
-
-#
-# arch:
-#
-# - define ARCH variable (overridden by cmdline or by previous
-# optional define in machine .mk)
-# - define CROSS variable (overridden by cmdline or previous define
-# in machine .mk)
-# - define CPU_CFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_LDFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_ASFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - may override any previously defined variable
-#
-include $(RTE_SDK)/mk/arch/$(RTE_ARCH)/rte.vars.mk
-
-#
-# exec-env:
-#
-# - define EXECENV_CFLAGS variable (overridden by cmdline)
-# - define EXECENV_LDFLAGS variable (overridden by cmdline)
-# - define EXECENV_ASFLAGS variable (overridden by cmdline)
-# - may override any previously defined variable
-#
-include $(RTE_SDK)/mk/exec-env/$(RTE_EXEC_ENV)/rte.vars.mk
-
-# Don't set CFLAGS/LDFLAGS flags for kernel module, all flags are
-# provided by Kbuild framework.
-ifeq ($(KERNELRELEASE),)
-
-# now that the environment is mostly set up, including the machine type we will
-# be passing to the compiler, set up the specific CPU flags based on that info.
-include $(RTE_SDK)/mk/rte.cpuflags.mk
-
-# merge all CFLAGS
-CFLAGS := $(CPU_CFLAGS) $(EXECENV_CFLAGS) $(TOOLCHAIN_CFLAGS) $(MACHINE_CFLAGS)
-CFLAGS += $(TARGET_CFLAGS)
-
-# merge all LDFLAGS
-LDFLAGS := $(CPU_LDFLAGS) $(EXECENV_LDFLAGS) $(TOOLCHAIN_LDFLAGS) $(MACHINE_LDFLAGS)
-LDFLAGS += $(TARGET_LDFLAGS)
-
-# merge all ASFLAGS
-ASFLAGS := $(CPU_ASFLAGS) $(EXECENV_ASFLAGS) $(TOOLCHAIN_ASFLAGS) $(MACHINE_ASFLAGS)
-ASFLAGS += $(TARGET_ASFLAGS)
-
-# add default include and lib paths
-CFLAGS += -I$(RTE_OUTPUT)/include
-LDFLAGS += -L$(RTE_OUTPUT)/lib
-
-# add in flag for supporting function versioning. The define is used in meson
-# builds to ensure that the user has properly flagged the unit in question as
-# using function versioning so it can be built twice - once for static lib and
-# then a second time for the shared lib. Since make only builds one library
-# type at a time, such precautions aren't necessary, so we can globally define
-# the flag
-CFLAGS += -DRTE_USE_FUNCTION_VERSIONING
-
-# always include rte_config.h: the one in $(RTE_OUTPUT)/include is
-# the configuration of SDK when $(BUILDING_RTE_SDK) is true, or the
-# configuration of the application if $(BUILDING_RTE_SDK) is not
-# defined.
-ifeq ($(BUILDING_RTE_SDK),1)
-# building sdk
-CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-CFLAGS += -DALLOW_INTERNAL_API
-else
-# if we are building an external application, include SDK's lib and
-# includes too
-CFLAGS += -I$(RTE_SDK_BIN)/include
-ifneq ($(wildcard $(RTE_OUTPUT)/include/rte_config.h),)
-CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-endif
-CFLAGS += -include $(RTE_SDK_BIN)/include/rte_config.h
-LDFLAGS += -L$(RTE_SDK_BIN)/lib
-endif
-
-# always define _GNU_SOURCE
-CFLAGS += -D_GNU_SOURCE
-
-# define __BSD_VISIBLE when building for FreeBSD
-ifeq ($(CONFIG_RTE_EXEC_ENV_FREEBSD),y)
-CFLAGS += -D__BSD_VISIBLE
-endif
-
-export CFLAGS
-export LDFLAGS
-
-endif
diff --git a/mk/toolchain/clang/rte.toolchain-compat.mk b/mk/toolchain/clang/rte.toolchain-compat.mk
deleted file mode 100644
index e6189b498d..0000000000
--- a/mk/toolchain/clang/rte.toolchain-compat.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# CPUID-related options
-#
-# This was added to support compiler versions which might not support all the
-# flags we need
-#
-
-# find out CLANG version
-
-CLANG_VERSION := $(shell $(CC) -v 2>&1 | \
- sed -n "s/.*version \([0-9]*\.[0-9]*\).*/\1/p")
-
-CLANG_MAJOR_VERSION := $(shell echo $(CLANG_VERSION) | cut -f1 -d.)
-
-CLANG_MINOR_VERSION := $(shell echo $(CLANG_VERSION) | cut -f2 -d.)
-
-ifeq ($(shell test $(CLANG_MAJOR_VERSION)$(CLANG_MINOR_VERSION) -lt 35 && echo 1), 1)
- CC_SUPPORTS_Z := false
-endif
diff --git a/mk/toolchain/clang/rte.vars.mk b/mk/toolchain/clang/rte.vars.mk
deleted file mode 100644
index d441f6d8f3..0000000000
--- a/mk/toolchain/clang/rte.vars.mk
+++ /dev/null
@@ -1,60 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# toolchain:
-#
-# - define CC, LD, AR, AS, ... (overridden by cmdline value)
-# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value)
-#
-
-CC = $(CROSS)clang
-KERNELCC = $(CROSS)gcc
-CPP = $(CROSS)cpp
-# for now, we don't use as but nasm.
-# AS = $(CROSS)as
-AS = nasm
-AR = $(CROSS)ar
-LD = $(CROSS)ld
-OBJCOPY = $(CROSS)objcopy
-OBJDUMP = $(CROSS)objdump
-STRIP = $(CROSS)strip
-READELF = $(CROSS)readelf
-GCOV = $(CROSS)gcov
-
-ifeq ("$(origin CC)", "command line")
-HOSTCC = $(CC)
-else
-HOSTCC = clang
-endif
-HOSTAS = as
-
-TOOLCHAIN_ASFLAGS =
-TOOLCHAIN_CFLAGS =
-TOOLCHAIN_LDFLAGS =
-
-WERROR_FLAGS := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
-WERROR_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith
-WERROR_FLAGS += -Wnested-externs -Wcast-qual
-WERROR_FLAGS += -Wformat-nonliteral -Wformat-security
-WERROR_FLAGS += -Wundef -Wwrite-strings -Wdeprecated
-
-ifeq ($(RTE_DEVEL_BUILD),y)
-WERROR_FLAGS += -Werror
-endif
-
-# process cpu flags
-include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk
-
-# disable warning for non-initialised fields
-WERROR_FLAGS += -Wno-missing-field-initializers
-
-# disable packed member unalign warnings
-ifeq ($(shell test $(CLANG_MAJOR_VERSION) -ge 4 && echo 1), 1)
-WERROR_FLAGS += -Wno-address-of-packed-member
-endif
-
-export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
-export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS
diff --git a/mk/toolchain/gcc/rte.toolchain-compat.mk b/mk/toolchain/gcc/rte.toolchain-compat.mk
deleted file mode 100644
index 98dca3e786..0000000000
--- a/mk/toolchain/gcc/rte.toolchain-compat.mk
+++ /dev/null
@@ -1,120 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# CPUID-related options
-#
-# This was added to support compiler versions which might not support all the
-# flags we need
-#
-
-#find out GCC version
-
-GCC_MAJOR = $(shell echo __GNUC__ | $(CC) -E -x c - | tail -n 1)
-GCC_MINOR = $(shell echo __GNUC_MINOR__ | $(CC) -E -x c - | tail -n 1)
-GCC_PATCHLEVEL = $(shell echo __GNUC_PATCHLEVEL__ | $(CC) -E -x c - | tail -n 1)
-GCC_VERSION = $(GCC_MAJOR)$(GCC_MINOR)
-
-HOST_GCC_MAJOR = $(shell echo __GNUC__ | $(HOSTCC) -E -x c - | tail -n 1)
-HOST_GCC_MINOR = $(shell echo __GNUC_MINOR__ | $(HOSTCC) -E -x c - | tail -n 1)
-HOST_GCC_PATCHLEVEL = $(shell echo __GNUC_PATCHLEVEL__ | $(HOSTCC) -E -x c - | tail -n 1)
-HOST_GCC_VERSION = $(HOST_GCC_MAJOR)$(HOST_GCC_MINOR)
-
-LD_VERSION = $(shell $(LD) -v)
-# disable AVX512F support for GCC & binutils 2.30 as a workaround for Bug 97
-ifeq ($(CONFIG_RTE_ARCH_X86), y)
-ifneq ($(filter 2.30%,$(LD_VERSION)),)
-FORCE_DISABLE_AVX512 := y
-# print warning only once for librte_eal
-ifneq ($(filter %librte_eal,$(CURDIR)),)
-$(warning AVX512 support disabled because of binutils 2.30. See Bug 97)
-endif
-endif
-ifneq ($(filter 2.31%,$(LD_VERSION)),)
-FORCE_DISABLE_AVX512 := y
-# print warning only once for librte_eal
-ifneq ($(filter %librte_eal,$(CURDIR)),)
-$(warning AVX512 support disabled because of binutils 2.31. See Bug 249)
-endif
-endif
-endif
-
-# if GCC is older than 4.x
-ifeq ($(shell test $(GCC_VERSION) -lt 40 && echo 1), 1)
- MACHINE_CFLAGS =
-$(warning You are using GCC < 4.x. This is neither supported, nor tested.)
-
-
-else
-# GCC graceful degradation
-# GCC 4.2.x - added support for generic target
-# GCC 4.3.x - added support for core2, ssse3, sse4.1, sse4.2
-# GCC 4.4.x - added support for avx, aes, pclmul
-# GCC 4.5.x - added support for atom
-# GCC 4.6.x - added support for corei7, corei7-avx
-# GCC 4.7.x - added support for fsgsbase, rdrnd, f16c, core-avx-i, core-avx2
-# GCC 4.9.x - added support for armv8-a+crc
-#
- ifeq ($(shell test $(GCC_VERSION) -le 49 && echo 1), 1)
- MACHINE_CFLAGS := $(patsubst -march=armv8-a+crc,-march=armv8-a+crc -D__ARM_FEATURE_CRC32=1,$(MACHINE_CFLAGS))
- MACHINE_CFLAGS := $(patsubst -march=armv8-a+crc+crypto,-march=armv8-a+crc+crypto -D__ARM_FEATURE_CRC32=1,$(MACHINE_CFLAGS))
- endif
- ifeq ($(shell test $(GCC_VERSION) -le 47 && echo 1), 1)
- MACHINE_CFLAGS := $(patsubst -march=core-avx-i,-march=corei7-avx,$(MACHINE_CFLAGS))
- MACHINE_CFLAGS := $(patsubst -march=core-avx2,-march=core-avx2,$(MACHINE_CFLAGS))
- endif
- ifeq ($(shell test $(GCC_VERSION) -lt 46 && echo 1), 1)
- MACHINE_CFLAGS := $(patsubst -march=corei7-avx,-march=core2 -maes -mpclmul -mavx,$(MACHINE_CFLAGS))
- MACHINE_CFLAGS := $(patsubst -march=corei7,-march=core2 -maes -mpclmul,$(MACHINE_CFLAGS))
- endif
- ifeq ($(shell test $(GCC_VERSION) -lt 45 && echo 1), 1)
- MACHINE_CFLAGS := $(patsubst -march=atom,-march=core2 -mssse3,$(MACHINE_CFLAGS))
- endif
- ifeq ($(shell test $(GCC_VERSION) -lt 44 && echo 1), 1)
- MACHINE_CFLAGS := $(filter-out -mavx -mpclmul -maes,$(MACHINE_CFLAGS))
- ifneq ($(findstring SSE4_2, $(CPUFLAGS)),)
- MACHINE_CFLAGS += -msse4.2
- endif
- ifneq ($(findstring SSE4_1, $(CPUFLAGS)),)
- MACHINE_CFLAGS += -msse4.1
- endif
- endif
- ifeq ($(shell test $(GCC_VERSION) -lt 43 && echo 1), 1)
- MACHINE_CFLAGS := $(filter-out -msse% -mssse%,$(MACHINE_CFLAGS))
- MACHINE_CFLAGS := $(patsubst -march=core2,-march=generic,$(MACHINE_CFLAGS))
- MACHINE_CFLAGS += -msse3
- endif
- ifeq ($(shell test $(GCC_VERSION) -lt 42 && echo 1), 1)
- MACHINE_CFLAGS := $(filter-out -march% -mtune% -msse%,$(MACHINE_CFLAGS))
- endif
-
- ifeq ($(shell test $(GCC_VERSION) -lt 74 && echo 1), 1)
- CONFIG_RTE_ENABLE_LTO=n
- endif
-
- # Disable thunderx PMD for gcc < 4.7
- ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
- CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=d
- endif
-
- # Disable OPDL PMD for gcc < 4.7
- ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
- CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV=d
- endif
-
- # Disable OCTEON drivers and libs for arm64 gcc < 4.8.6
- ifeq ($(RTE_ARCH), arm64)
- ifeq ($(shell test $(GCC_VERSION)$(GCC_PATCHLEVEL) -lt 486 && echo 1), 1)
- CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=d
- CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL=d
- CONFIG_RTE_LIBRTE_OCTEONTX_PMD=d
- CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV=d
- CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV=d
- CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV=d
- CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO=d
- CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL=d
- CONFIG_RTE_LIBRTE_OCTEONTX2_PMD=d
- endif
- endif
-
-endif
diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
deleted file mode 100644
index 928f0e0830..0000000000
--- a/mk/toolchain/gcc/rte.vars.mk
+++ /dev/null
@@ -1,109 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# toolchain:
-#
-# - define CC, LD, AR, AS, ... (overridden by cmdline value)
-# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value)
-#
-
-CC = $(CROSS)gcc
-KERNELCC = $(CROSS)gcc
-CPP = $(CROSS)cpp
-# for now, we don't use as but nasm.
-# AS = $(CROSS)as
-AS = nasm
-AR = $(CROSS)ar
-LD = $(CROSS)ld
-OBJCOPY = $(CROSS)objcopy
-OBJDUMP = $(CROSS)objdump
-STRIP = $(CROSS)strip
-READELF = $(CROSS)readelf
-GCOV = $(CROSS)gcov
-
-ifeq ("$(origin CC)", "command line")
-HOSTCC = $(CC)
-else
-HOSTCC = gcc
-endif
-HOSTAS = as
-
-TOOLCHAIN_ASFLAGS =
-TOOLCHAIN_CFLAGS =
-TOOLCHAIN_LDFLAGS =
-
-ifeq ($(CONFIG_RTE_LIBRTE_GCOV),y)
-TOOLCHAIN_CFLAGS += --coverage
-TOOLCHAIN_LDFLAGS += --coverage
-ifeq (,$(findstring -O0,$(EXTRA_CFLAGS)))
- $(warning "EXTRA_CFLAGS doesn't contains -O0, coverage will be inaccurate with optimizations enabled")
-endif
-endif
-
-WERROR_FLAGS := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
-WERROR_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith
-WERROR_FLAGS += -Wcast-align -Wnested-externs -Wcast-qual
-WERROR_FLAGS += -Wformat-nonliteral -Wformat-security
-WERROR_FLAGS += -Wundef -Wwrite-strings -Wdeprecated
-
-ifeq ($(RTE_DEVEL_BUILD),y)
-WERROR_FLAGS += -Werror
-endif
-
-# There are many issues reported for strict alignment architectures
-# which are not necessarily fatal. Report as warnings.
-ifeq ($(CONFIG_RTE_ARCH_STRICT_ALIGN),y)
-WERROR_FLAGS += -Wno-error=cast-align
-endif
-
-# process cpu flags
-include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk
-
-ifeq ($(CONFIG_RTE_ENABLE_LTO),y)
-# 'fat-lto' is used since pmdinfogen needs to have 'this_pmd_nameX'
-# exported in symbol table and without this option only internal
-# representation is present.
-TOOLCHAIN_CFLAGS += -flto -ffat-lto-objects
-TOOLCHAIN_LDFLAGS += -flto
-# workaround for GCC bug 81440
-ifeq ($(shell test $(GCC_VERSION) -lt 80 && echo 1), 1)
-WERROR_FLAGS += -Wno-lto-type-mismatch
-endif
-endif
-
-# disable warning for non-initialised fields
-WERROR_FLAGS += -Wno-missing-field-initializers
-# workaround GCC bug with warning "may be used uninitialized"
-ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
-WERROR_FLAGS += -Wno-uninitialized
-endif
-
-ifeq ($(shell test $(GCC_VERSION) -ge 100 && echo 1), 1)
-# FIXME: Bugzilla 396
-WERROR_FLAGS += -Wno-zero-length-bounds
-endif
-
-HOST_WERROR_FLAGS := $(WERROR_FLAGS)
-
-ifeq ($(shell test $(HOST_GCC_VERSION) -gt 70 && echo 1), 1)
-# Tell GCC only to error for switch fallthroughs without a suitable comment
-HOST_WERROR_FLAGS += -Wimplicit-fallthrough=2
-# Ignore errors for snprintf truncation
-HOST_WERROR_FLAGS += -Wno-format-truncation
-endif
-
-ifeq ($(shell test $(GCC_VERSION) -gt 70 && echo 1), 1)
-# Tell GCC only to error for switch fallthroughs without a suitable comment
-WERROR_FLAGS += -Wimplicit-fallthrough=2
-# Ignore errors for snprintf truncation
-WERROR_FLAGS += -Wno-format-truncation
-endif
-
-# disable packed member unalign warnings
-WERROR_FLAGS += -Wno-address-of-packed-member
-
-export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
-export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS
diff --git a/mk/toolchain/icc/rte.toolchain-compat.mk b/mk/toolchain/icc/rte.toolchain-compat.mk
deleted file mode 100644
index 2d663b34ad..0000000000
--- a/mk/toolchain/icc/rte.toolchain-compat.mk
+++ /dev/null
@@ -1,58 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# CPUID-related options
-#
-# This was added to support compiler versions which might not support all the
-# flags we need
-#
-
-# find out ICC version
-
-ICC_MAJOR_VERSION = $(shell icc -dumpversion | cut -f1 -d.)
-
-ifeq ($(shell test $(ICC_MAJOR_VERSION) -lt 12 && echo 1), 1)
- MACHINE_CFLAGS = -xSSE4.2
-$(warning You are not using ICC 12.x or higher. This is neither supported, nor tested.)
-
-else
-# proceed to adjust compiler flags
-
- ICC_MINOR_VERSION = $(shell icc -dumpversion | cut -f2 -d.)
-
-# replace GCC flags with ICC flags
- # if icc version >= 12
- ifeq ($(shell test $(ICC_MAJOR_VERSION) -ge 12 && echo 1), 1)
- # Atom
- MACHINE_CFLAGS := $(patsubst -march=atom,-xSSSE3_ATOM -march=atom,$(MACHINE_CFLAGS))
- # nehalem/westmere
- MACHINE_CFLAGS := $(patsubst -march=corei7,-xSSE4.2 -march=corei7,$(MACHINE_CFLAGS))
- # sandy bridge
- MACHINE_CFLAGS := $(patsubst -march=corei7-avx,-xAVX,$(MACHINE_CFLAGS))
- # ivy bridge
- MACHINE_CFLAGS := $(patsubst -march=core-avx-i,-xCORE-AVX-I,$(MACHINE_CFLAGS))
- # hsw
- MACHINE_CFLAGS := $(patsubst -march=core-avx2,-xCORE-AVX2,$(MACHINE_CFLAGS))
- # remove westmere flags
- MACHINE_CFLAGS := $(filter-out -mpclmul -maes,$(MACHINE_CFLAGS))
- endif
- # if icc version == 12.0
- ifeq ($(shell test $(ICC_MAJOR_VERSION) -eq 12 && test $(ICC_MINOR_VERSION) -eq 0 && echo 1), 1)
- # Atom
- MACHINE_CFLAGS := $(patsubst -xSSSE3_ATOM,-xSSE3_ATOM,$(MACHINE_CFLAGS))
- # remove march options
- MACHINE_CFLAGS := $(patsubst -march=%,-xSSE3,$(MACHINE_CFLAGS))
- endif
-
- # Disable thunderx PMD for icc <= 16.0
- ifeq ($(shell test $(ICC_MAJOR_VERSION) -le 16 && echo 1), 1)
- CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=d
- endif
-
- # Disable event/opdl PMD for icc <= 16.0
- ifeq ($(shell test $(ICC_MAJOR_VERSION) -le 16 && echo 1), 1)
- CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV=d
- endif
-
-endif
diff --git a/mk/toolchain/icc/rte.vars.mk b/mk/toolchain/icc/rte.vars.mk
deleted file mode 100644
index 1729f3d849..0000000000
--- a/mk/toolchain/icc/rte.vars.mk
+++ /dev/null
@@ -1,62 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# toolchain:
-#
-# - define CC, LD, AR, AS, ... (overridden by cmdline value)
-# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value)
-#
-
-# Warning: we do not use CROSS environment variable as icc is mainly a
-# x86->x86 compiler
-
-CC = icc
-KERNELCC = gcc
-CPP = cpp
-AS = nasm
-AR = ar
-LD = ld
-OBJCOPY = objcopy
-OBJDUMP = objdump
-STRIP = strip
-READELF = readelf
-
-ifeq ($(KERNELRELEASE),)
-HOSTCC = icc
-else
-HOSTCC = gcc
-endif
-HOSTAS = as
-
-TOOLCHAIN_CFLAGS =
-TOOLCHAIN_LDFLAGS =
-TOOLCHAIN_ASFLAGS =
-
-# Turn off some ICC warnings -
-# Remark #271 : trailing comma is nonstandard
-# Warning #1478 : function "<func_name>" (declared at line N of "<filename>")
-# error #13368: loop was not vectorized with "vector always assert"
-# error #15527: loop was not vectorized: function call to fprintf cannot be vectorize
-# was declared "deprecated"
-# Warning #11074, 11076: to prevent "inline-max-size" warnings.
-WERROR_FLAGS := -Wall -w2 -diag-disable 271 -diag-warning 1478
-WERROR_FLAGS += -diag-disable 13368 -diag-disable 15527
-WERROR_FLAGS += -diag-disable 188
-WERROR_FLAGS += -diag-disable 11074 -diag-disable 11076 -Wdeprecated
-
-# process cpu flags
-include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk
-
-ifeq ($(CONFIG_RTE_ENABLE_LTO),y)
-# 'fat-lto' is used since pmdinfogen needs to have 'this_pmd_nameX'
-# exported in symbol table and without this option only internal
-# representation is present.
-TOOLCHAIN_CFLAGS += -flto -ffat-lto-objects
-TOOLCHAIN_LDFLAGS += -flto
-endif
-
-export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
-export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS
--
2.17.1
^ permalink raw reply [relevance 1%]
* Re: [dpdk-dev] [PATCH v2] common/iavf: mark internal symbols
2020-08-17 3:08 0% ` Xing, Beilei
@ 2020-08-18 15:48 0% ` Ferruh Yigit
0 siblings, 0 replies; 200+ results
From: Ferruh Yigit @ 2020-08-18 15:48 UTC (permalink / raw)
To: Xing, Beilei, Wang, Haiyue, dev
Cc: Zhang, Qi Z, Yang, Qiming, Wu, Jingjing, Ray Kinsella, Neil Horman
On 8/17/2020 4:08 AM, Xing, Beilei wrote:
>
>
>> -----Original Message-----
>> From: Wang, Haiyue <haiyue.wang@intel.com>
>> Sent: Saturday, August 15, 2020 12:31 AM
>> To: dev@dpdk.org
>> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Yang, Qiming
>> <qiming.yang@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>; Wu,
>> Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Ray
>> Kinsella <mdr@ashroe.eu>; Neil Horman <nhorman@tuxdriver.com>
>> Subject: [PATCH v2] common/iavf: mark internal symbols
>>
>> According to ABI policy, the internal functions should have the new tag
>> __rte_internal and linked into INTERNAL sessions.
>>
>> Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
>
> Acked-by: Beilei Xing <beilei.xing@intel.com>
>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] meter: remove experimental alias
2020-08-17 10:18 12% [dpdk-dev] [PATCH] meter: remove experimental alias Ferruh Yigit
2020-08-17 10:22 12% ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
@ 2020-08-18 8:21 0% ` Kinsella, Ray
1 sibling, 0 replies; 200+ results
From: Kinsella, Ray @ 2020-08-18 8:21 UTC (permalink / raw)
To: Ferruh Yigit, Cristian Dumitrescu, Neil Horman; +Cc: dev
On 17/08/2020 11:18, Ferruh Yigit wrote:
> Remove ABI versioning for APIs:
> 'rte_meter_trtcm_rfc4115_profile_config()'
> 'rte_meter_trtcm_rfc4115_config()'
>
> The alias was introduced in
> commit 60197bda97a0 ("meter: provide experimental alias for matured API")
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> lib/librte_meter/rte_meter.c | 73 ++------------------------
> lib/librte_meter/rte_meter_version.map | 7 ---
> 2 files changed, 3 insertions(+), 77 deletions(-)
>
> diff --git a/lib/librte_meter/rte_meter.c b/lib/librte_meter/rte_meter.c
> index 149cf58bdd..da01429a8b 100644
> --- a/lib/librte_meter/rte_meter.c
> +++ b/lib/librte_meter/rte_meter.c
> @@ -9,7 +9,6 @@
> #include <rte_common.h>
> #include <rte_log.h>
> #include <rte_cycles.h>
> -#include <rte_function_versioning.h>
>
> #include "rte_meter.h"
>
> @@ -120,15 +119,8 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
> return 0;
> }
>
> -/*
> - * ABI aliasing done for 'rte_meter_trtcm_rfc4115_profile_config'
> - * to support both EXPERIMENTAL and DPDK_21 versions
> - * This versioning will be removed on next ABI version (v20.11)
> - * and '__rte_meter_trtcm_rfc4115_profile_config' will be restrored back to
> - * 'rte_meter_trtcm_rfc4115_profile_config' without versioning.
> - */
> -static int
> -__rte_meter_trtcm_rfc4115_profile_config(
> +int
> +rte_meter_trtcm_rfc4115_profile_config(
> struct rte_meter_trtcm_rfc4115_profile *p,
> struct rte_meter_trtcm_rfc4115_params *params)
> {
> @@ -153,42 +145,7 @@ __rte_meter_trtcm_rfc4115_profile_config(
> }
>
> int
> -rte_meter_trtcm_rfc4115_profile_config_s(
> - struct rte_meter_trtcm_rfc4115_profile *p,
> - struct rte_meter_trtcm_rfc4115_params *params);
> -int
> -rte_meter_trtcm_rfc4115_profile_config_s(
> - struct rte_meter_trtcm_rfc4115_profile *p,
> - struct rte_meter_trtcm_rfc4115_params *params)
> -{
> - return __rte_meter_trtcm_rfc4115_profile_config(p, params);
> -}
> -BIND_DEFAULT_SYMBOL(rte_meter_trtcm_rfc4115_profile_config, _s, 21);
> -MAP_STATIC_SYMBOL(int rte_meter_trtcm_rfc4115_profile_config(struct rte_meter_trtcm_rfc4115_profile *p,
> - struct rte_meter_trtcm_rfc4115_params *params), rte_meter_trtcm_rfc4115_profile_config_s);
> -
> -int
> -rte_meter_trtcm_rfc4115_profile_config_e(
> - struct rte_meter_trtcm_rfc4115_profile *p,
> - struct rte_meter_trtcm_rfc4115_params *params);
> -int
> -rte_meter_trtcm_rfc4115_profile_config_e(
> - struct rte_meter_trtcm_rfc4115_profile *p,
> - struct rte_meter_trtcm_rfc4115_params *params)
> -{
> - return __rte_meter_trtcm_rfc4115_profile_config(p, params);
> -}
> -VERSION_SYMBOL_EXPERIMENTAL(rte_meter_trtcm_rfc4115_profile_config, _e);
> -
> -/*
> - * ABI aliasing done for 'rte_meter_trtcm_rfc4115_config'
> - * to support both EXPERIMENTAL and DPDK_21 versions
> - * This versioning will be removed on next ABI version (v20.11)
> - * and '__rte_meter_trtcm_rfc4115_config' will be restrored back to
> - * 'rte_meter_trtcm_rfc4115_config' without versioning.
> - */
> -static int
> -__rte_meter_trtcm_rfc4115_config(
> +rte_meter_trtcm_rfc4115_config(
> struct rte_meter_trtcm_rfc4115 *m,
> struct rte_meter_trtcm_rfc4115_profile *p)
> {
> @@ -203,27 +160,3 @@ __rte_meter_trtcm_rfc4115_config(
>
> return 0;
> }
> -
> -int
> -rte_meter_trtcm_rfc4115_config_s(struct rte_meter_trtcm_rfc4115 *m,
> - struct rte_meter_trtcm_rfc4115_profile *p);
> -int
> -rte_meter_trtcm_rfc4115_config_s(struct rte_meter_trtcm_rfc4115 *m,
> - struct rte_meter_trtcm_rfc4115_profile *p)
> -{
> - return __rte_meter_trtcm_rfc4115_config(m, p);
> -}
> -BIND_DEFAULT_SYMBOL(rte_meter_trtcm_rfc4115_config, _s, 21);
> -MAP_STATIC_SYMBOL(int rte_meter_trtcm_rfc4115_config(struct rte_meter_trtcm_rfc4115 *m,
> - struct rte_meter_trtcm_rfc4115_profile *p), rte_meter_trtcm_rfc4115_config_s);
> -
> -int
> -rte_meter_trtcm_rfc4115_config_e(struct rte_meter_trtcm_rfc4115 *m,
> - struct rte_meter_trtcm_rfc4115_profile *p);
> -int
> -rte_meter_trtcm_rfc4115_config_e(struct rte_meter_trtcm_rfc4115 *m,
> - struct rte_meter_trtcm_rfc4115_profile *p)
> -{
> - return __rte_meter_trtcm_rfc4115_config(m, p);
> -}
> -VERSION_SYMBOL_EXPERIMENTAL(rte_meter_trtcm_rfc4115_config, _e);
> diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
> index e2a2607f28..b67f860b15 100644
> --- a/lib/librte_meter/rte_meter_version.map
> +++ b/lib/librte_meter/rte_meter_version.map
> @@ -10,10 +10,3 @@ DPDK_21 {
>
> local: *;
> };
> -
> -EXPERIMENTAL {
> - global:
> -
> - rte_meter_trtcm_rfc4115_config;
> - rte_meter_trtcm_rfc4115_profile_config;
> -};
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] meter: remove experimental alias
2020-08-17 10:22 12% ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
@ 2020-08-17 10:54 0% ` Dumitrescu, Cristian
0 siblings, 0 replies; 200+ results
From: Dumitrescu, Cristian @ 2020-08-17 10:54 UTC (permalink / raw)
To: Yigit, Ferruh, Ray Kinsella, Neil Horman; +Cc: dev
> -----Original Message-----
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Monday, August 17, 2020 11:22 AM
> To: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Ray Kinsella
> <mdr@ashroe.eu>; Neil Horman <nhorman@tuxdriver.com>
> Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>
> Subject: [PATCH v2] meter: remove experimental alias
>
> Remove ABI versioning for APIs:
> 'rte_meter_trtcm_rfc4115_profile_config()'
> 'rte_meter_trtcm_rfc4115_config()'
>
> The alias was introduced in
> commit 60197bda97a0 ("meter: provide experimental alias for matured API")
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> v2:
> * Update meson to remove 'use_function_versioning' flag
> ---
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH v2] meter: remove experimental alias
2020-08-17 10:18 12% [dpdk-dev] [PATCH] meter: remove experimental alias Ferruh Yigit
@ 2020-08-17 10:22 12% ` Ferruh Yigit
2020-08-17 10:54 0% ` Dumitrescu, Cristian
2020-08-18 8:21 0% ` [dpdk-dev] [PATCH] " Kinsella, Ray
1 sibling, 1 reply; 200+ results
From: Ferruh Yigit @ 2020-08-17 10:22 UTC (permalink / raw)
To: Cristian Dumitrescu, Ray Kinsella, Neil Horman; +Cc: dev, Ferruh Yigit
Remove ABI versioning for APIs:
'rte_meter_trtcm_rfc4115_profile_config()'
'rte_meter_trtcm_rfc4115_config()'
The alias was introduced in
commit 60197bda97a0 ("meter: provide experimental alias for matured API")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
v2:
* Update meson to remove 'use_function_versioning' flag
---
lib/librte_meter/meson.build | 1 -
lib/librte_meter/rte_meter.c | 73 ++------------------------
lib/librte_meter/rte_meter_version.map | 7 ---
3 files changed, 3 insertions(+), 78 deletions(-)
diff --git a/lib/librte_meter/meson.build b/lib/librte_meter/meson.build
index fce0368437..646fd4d43f 100644
--- a/lib/librte_meter/meson.build
+++ b/lib/librte_meter/meson.build
@@ -3,4 +3,3 @@
sources = files('rte_meter.c')
headers = files('rte_meter.h')
-use_function_versioning = true
diff --git a/lib/librte_meter/rte_meter.c b/lib/librte_meter/rte_meter.c
index 149cf58bdd..da01429a8b 100644
--- a/lib/librte_meter/rte_meter.c
+++ b/lib/librte_meter/rte_meter.c
@@ -9,7 +9,6 @@
#include <rte_common.h>
#include <rte_log.h>
#include <rte_cycles.h>
-#include <rte_function_versioning.h>
#include "rte_meter.h"
@@ -120,15 +119,8 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
return 0;
}
-/*
- * ABI aliasing done for 'rte_meter_trtcm_rfc4115_profile_config'
- * to support both EXPERIMENTAL and DPDK_21 versions
- * This versioning will be removed on next ABI version (v20.11)
- * and '__rte_meter_trtcm_rfc4115_profile_config' will be restrored back to
- * 'rte_meter_trtcm_rfc4115_profile_config' without versioning.
- */
-static int
-__rte_meter_trtcm_rfc4115_profile_config(
+int
+rte_meter_trtcm_rfc4115_profile_config(
struct rte_meter_trtcm_rfc4115_profile *p,
struct rte_meter_trtcm_rfc4115_params *params)
{
@@ -153,42 +145,7 @@ __rte_meter_trtcm_rfc4115_profile_config(
}
int
-rte_meter_trtcm_rfc4115_profile_config_s(
- struct rte_meter_trtcm_rfc4115_profile *p,
- struct rte_meter_trtcm_rfc4115_params *params);
-int
-rte_meter_trtcm_rfc4115_profile_config_s(
- struct rte_meter_trtcm_rfc4115_profile *p,
- struct rte_meter_trtcm_rfc4115_params *params)
-{
- return __rte_meter_trtcm_rfc4115_profile_config(p, params);
-}
-BIND_DEFAULT_SYMBOL(rte_meter_trtcm_rfc4115_profile_config, _s, 21);
-MAP_STATIC_SYMBOL(int rte_meter_trtcm_rfc4115_profile_config(struct rte_meter_trtcm_rfc4115_profile *p,
- struct rte_meter_trtcm_rfc4115_params *params), rte_meter_trtcm_rfc4115_profile_config_s);
-
-int
-rte_meter_trtcm_rfc4115_profile_config_e(
- struct rte_meter_trtcm_rfc4115_profile *p,
- struct rte_meter_trtcm_rfc4115_params *params);
-int
-rte_meter_trtcm_rfc4115_profile_config_e(
- struct rte_meter_trtcm_rfc4115_profile *p,
- struct rte_meter_trtcm_rfc4115_params *params)
-{
- return __rte_meter_trtcm_rfc4115_profile_config(p, params);
-}
-VERSION_SYMBOL_EXPERIMENTAL(rte_meter_trtcm_rfc4115_profile_config, _e);
-
-/*
- * ABI aliasing done for 'rte_meter_trtcm_rfc4115_config'
- * to support both EXPERIMENTAL and DPDK_21 versions
- * This versioning will be removed on next ABI version (v20.11)
- * and '__rte_meter_trtcm_rfc4115_config' will be restrored back to
- * 'rte_meter_trtcm_rfc4115_config' without versioning.
- */
-static int
-__rte_meter_trtcm_rfc4115_config(
+rte_meter_trtcm_rfc4115_config(
struct rte_meter_trtcm_rfc4115 *m,
struct rte_meter_trtcm_rfc4115_profile *p)
{
@@ -203,27 +160,3 @@ __rte_meter_trtcm_rfc4115_config(
return 0;
}
-
-int
-rte_meter_trtcm_rfc4115_config_s(struct rte_meter_trtcm_rfc4115 *m,
- struct rte_meter_trtcm_rfc4115_profile *p);
-int
-rte_meter_trtcm_rfc4115_config_s(struct rte_meter_trtcm_rfc4115 *m,
- struct rte_meter_trtcm_rfc4115_profile *p)
-{
- return __rte_meter_trtcm_rfc4115_config(m, p);
-}
-BIND_DEFAULT_SYMBOL(rte_meter_trtcm_rfc4115_config, _s, 21);
-MAP_STATIC_SYMBOL(int rte_meter_trtcm_rfc4115_config(struct rte_meter_trtcm_rfc4115 *m,
- struct rte_meter_trtcm_rfc4115_profile *p), rte_meter_trtcm_rfc4115_config_s);
-
-int
-rte_meter_trtcm_rfc4115_config_e(struct rte_meter_trtcm_rfc4115 *m,
- struct rte_meter_trtcm_rfc4115_profile *p);
-int
-rte_meter_trtcm_rfc4115_config_e(struct rte_meter_trtcm_rfc4115 *m,
- struct rte_meter_trtcm_rfc4115_profile *p)
-{
- return __rte_meter_trtcm_rfc4115_config(m, p);
-}
-VERSION_SYMBOL_EXPERIMENTAL(rte_meter_trtcm_rfc4115_config, _e);
diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
index e2a2607f28..b67f860b15 100644
--- a/lib/librte_meter/rte_meter_version.map
+++ b/lib/librte_meter/rte_meter_version.map
@@ -10,10 +10,3 @@ DPDK_21 {
local: *;
};
-
-EXPERIMENTAL {
- global:
-
- rte_meter_trtcm_rfc4115_config;
- rte_meter_trtcm_rfc4115_profile_config;
-};
--
2.25.4
^ permalink raw reply [relevance 12%]
* [dpdk-dev] [PATCH] meter: remove experimental alias
@ 2020-08-17 10:18 12% Ferruh Yigit
2020-08-17 10:22 12% ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
2020-08-18 8:21 0% ` [dpdk-dev] [PATCH] " Kinsella, Ray
0 siblings, 2 replies; 200+ results
From: Ferruh Yigit @ 2020-08-17 10:18 UTC (permalink / raw)
To: Cristian Dumitrescu, Ray Kinsella, Neil Horman; +Cc: dev, Ferruh Yigit
Remove ABI versioning for APIs:
'rte_meter_trtcm_rfc4115_profile_config()'
'rte_meter_trtcm_rfc4115_config()'
The alias was introduced in
commit 60197bda97a0 ("meter: provide experimental alias for matured API")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_meter/rte_meter.c | 73 ++------------------------
lib/librte_meter/rte_meter_version.map | 7 ---
2 files changed, 3 insertions(+), 77 deletions(-)
diff --git a/lib/librte_meter/rte_meter.c b/lib/librte_meter/rte_meter.c
index 149cf58bdd..da01429a8b 100644
--- a/lib/librte_meter/rte_meter.c
+++ b/lib/librte_meter/rte_meter.c
@@ -9,7 +9,6 @@
#include <rte_common.h>
#include <rte_log.h>
#include <rte_cycles.h>
-#include <rte_function_versioning.h>
#include "rte_meter.h"
@@ -120,15 +119,8 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
return 0;
}
-/*
- * ABI aliasing done for 'rte_meter_trtcm_rfc4115_profile_config'
- * to support both EXPERIMENTAL and DPDK_21 versions
- * This versioning will be removed on next ABI version (v20.11)
- * and '__rte_meter_trtcm_rfc4115_profile_config' will be restrored back to
- * 'rte_meter_trtcm_rfc4115_profile_config' without versioning.
- */
-static int
-__rte_meter_trtcm_rfc4115_profile_config(
+int
+rte_meter_trtcm_rfc4115_profile_config(
struct rte_meter_trtcm_rfc4115_profile *p,
struct rte_meter_trtcm_rfc4115_params *params)
{
@@ -153,42 +145,7 @@ __rte_meter_trtcm_rfc4115_profile_config(
}
int
-rte_meter_trtcm_rfc4115_profile_config_s(
- struct rte_meter_trtcm_rfc4115_profile *p,
- struct rte_meter_trtcm_rfc4115_params *params);
-int
-rte_meter_trtcm_rfc4115_profile_config_s(
- struct rte_meter_trtcm_rfc4115_profile *p,
- struct rte_meter_trtcm_rfc4115_params *params)
-{
- return __rte_meter_trtcm_rfc4115_profile_config(p, params);
-}
-BIND_DEFAULT_SYMBOL(rte_meter_trtcm_rfc4115_profile_config, _s, 21);
-MAP_STATIC_SYMBOL(int rte_meter_trtcm_rfc4115_profile_config(struct rte_meter_trtcm_rfc4115_profile *p,
- struct rte_meter_trtcm_rfc4115_params *params), rte_meter_trtcm_rfc4115_profile_config_s);
-
-int
-rte_meter_trtcm_rfc4115_profile_config_e(
- struct rte_meter_trtcm_rfc4115_profile *p,
- struct rte_meter_trtcm_rfc4115_params *params);
-int
-rte_meter_trtcm_rfc4115_profile_config_e(
- struct rte_meter_trtcm_rfc4115_profile *p,
- struct rte_meter_trtcm_rfc4115_params *params)
-{
- return __rte_meter_trtcm_rfc4115_profile_config(p, params);
-}
-VERSION_SYMBOL_EXPERIMENTAL(rte_meter_trtcm_rfc4115_profile_config, _e);
-
-/*
- * ABI aliasing done for 'rte_meter_trtcm_rfc4115_config'
- * to support both EXPERIMENTAL and DPDK_21 versions
- * This versioning will be removed on next ABI version (v20.11)
- * and '__rte_meter_trtcm_rfc4115_config' will be restrored back to
- * 'rte_meter_trtcm_rfc4115_config' without versioning.
- */
-static int
-__rte_meter_trtcm_rfc4115_config(
+rte_meter_trtcm_rfc4115_config(
struct rte_meter_trtcm_rfc4115 *m,
struct rte_meter_trtcm_rfc4115_profile *p)
{
@@ -203,27 +160,3 @@ __rte_meter_trtcm_rfc4115_config(
return 0;
}
-
-int
-rte_meter_trtcm_rfc4115_config_s(struct rte_meter_trtcm_rfc4115 *m,
- struct rte_meter_trtcm_rfc4115_profile *p);
-int
-rte_meter_trtcm_rfc4115_config_s(struct rte_meter_trtcm_rfc4115 *m,
- struct rte_meter_trtcm_rfc4115_profile *p)
-{
- return __rte_meter_trtcm_rfc4115_config(m, p);
-}
-BIND_DEFAULT_SYMBOL(rte_meter_trtcm_rfc4115_config, _s, 21);
-MAP_STATIC_SYMBOL(int rte_meter_trtcm_rfc4115_config(struct rte_meter_trtcm_rfc4115 *m,
- struct rte_meter_trtcm_rfc4115_profile *p), rte_meter_trtcm_rfc4115_config_s);
-
-int
-rte_meter_trtcm_rfc4115_config_e(struct rte_meter_trtcm_rfc4115 *m,
- struct rte_meter_trtcm_rfc4115_profile *p);
-int
-rte_meter_trtcm_rfc4115_config_e(struct rte_meter_trtcm_rfc4115 *m,
- struct rte_meter_trtcm_rfc4115_profile *p)
-{
- return __rte_meter_trtcm_rfc4115_config(m, p);
-}
-VERSION_SYMBOL_EXPERIMENTAL(rte_meter_trtcm_rfc4115_config, _e);
diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
index e2a2607f28..b67f860b15 100644
--- a/lib/librte_meter/rte_meter_version.map
+++ b/lib/librte_meter/rte_meter_version.map
@@ -10,10 +10,3 @@ DPDK_21 {
local: *;
};
-
-EXPERIMENTAL {
- global:
-
- rte_meter_trtcm_rfc4115_config;
- rte_meter_trtcm_rfc4115_profile_config;
-};
--
2.25.4
^ permalink raw reply [relevance 12%]
* Re: [dpdk-dev] [RFC] ethdev: introduce GENEVE header extension item
2020-08-16 17:25 3% ` Stephen Hemminger
@ 2020-08-17 6:36 0% ` Shiri Kuzin
0 siblings, 0 replies; 200+ results
From: Shiri Kuzin @ 2020-08-17 6:36 UTC (permalink / raw)
To: Stephen Hemminger
Cc: dev, Slava Ovsiienko, NBU-Contact-Adrien Mazarguil, Raslan Darawsheh
Thanks, PSB.
> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Sunday, August 16, 2020 8:26 PM
> To: Shiri Kuzin <shirik@nvidia.com>
> Cc: dev@dpdk.org; Slava Ovsiienko <viacheslavo@nvidia.com>; NBU-
> Contact-Adrien Mazarguil <adrien.mazarguil@6wind.com>; Raslan
> Darawsheh <rasland@nvidia.com>
> Subject: Re: [dpdk-dev] [RFC] ethdev: introduce GENEVE header extension
> item
>
> On Sun, 16 Aug 2020 10:15:03 +0000
> Shiri Kuzin <shirik@nvidia.com> wrote:
>
> > The Geneve tunneling protocol is designed to allow the user to specify
> > some data context on the packet.
> > The header extension options is the mean intended to present the user
> > data. These ones are implemented in TLV (Type-Length-Value) fashion,
> > in order to support these Geneve protocol feature we will introduce
> > the new item "rte_flow_item_geneve_option"
> >
> > The support for new item will be added to testpmd and include values
> > and masks for the fields:
> > - class
> > - type
> > - data length
> > - data itself
> >
> > The usage example:
> >
> > "flow create 0 ingress pattern ipv4 / udp / geneve / geneve_opt class
> > is 102 type is 80 type mask ff data is 10002 data mask is 7fffffff /
> > end actions drop / end "
> >
> > New item will be added to testpmd to support raw encap/decap action.
> >
> > Signed-off-by: Shiri Kuzin <shirik@nvidia.com>
> > ---
> > lib/librte_ethdev/rte_flow.h | 25 +++++++++++++++++++++++++
> > 1 file changed, 25 insertions(+)
> >
> > diff --git a/lib/librte_ethdev/rte_flow.h
> > b/lib/librte_ethdev/rte_flow.h index da8bfa5..d04ee7c 100644
> > --- a/lib/librte_ethdev/rte_flow.h
> > +++ b/lib/librte_ethdev/rte_flow.h
> > @@ -347,6 +347,13 @@ enum rte_flow_item_type {
> > RTE_FLOW_ITEM_TYPE_GENEVE,
> >
> > /**
> > + * Matches a GENEVE Variable Length Option.
> > + *
> > + * See struct rte_flow_item_geneve_option.
> > + */
> > + RTE_FLOW_ITEM_TYPE_GENEVE_OPTION,
> > +
> > + /**
>
> Please don't break ABI by putting items in middle of enum.
> New items should go at the end.
> enum changes the val
Yes, thank you for the note.
I will move it to the end of the enum.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2 1/7] rawdev: add private data length parameter to info fn
2020-08-13 11:27 3% ` [dpdk-dev] [PATCH v2 1/7] rawdev: add private data length parameter to info fn Bruce Richardson
@ 2020-08-17 5:26 0% ` Xu, Rosen
0 siblings, 0 replies; 200+ results
From: Xu, Rosen @ 2020-08-17 5:26 UTC (permalink / raw)
To: Richardson, Bruce, Nipun Gupta, Hemant Agrawal
Cc: dev, Mcnamara, John, Kovacevic, Marko, Zhang, Tianfei, Li,
Xiaoyun, Wu, Jingjing
Hi,
> -----Original Message-----
> From: Richardson, Bruce <bruce.richardson@intel.com>
> Sent: Thursday, August 13, 2020 19:28
> To: Nipun Gupta <nipun.gupta@nxp.com>; Hemant Agrawal
> <hemant.agrawal@nxp.com>
> Cc: dev@dpdk.org; Richardson, Bruce <bruce.richardson@intel.com>; Xu,
> Rosen <rosen.xu@intel.com>; Mcnamara, John
> <john.mcnamara@intel.com>; Kovacevic, Marko
> <marko.kovacevic@intel.com>; Zhang, Tianfei <tianfei.zhang@intel.com>; Li,
> Xiaoyun <xiaoyun.li@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>
> Subject: [PATCH v2 1/7] rawdev: add private data length parameter to info fn
>
> Currently with the rawdev API there is no way to check that the structure
> passed in via the dev_private pointer in the dev_info structure is of the
> correct type - it's just checked that it is non-NULL. Adding in the length of the
> expected structure provides a measure of typechecking, and can also be used
> for ABI compatibility in future, since ABI changes involving structs almost
> always involve a change in size.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> Reviewed-by: Rosen Xu <rosen.xu@intel.com>
> ---
> app/test/test_rawdev.c | 2 +-
> doc/guides/rawdevs/ioat.rst | 2 +-
> doc/guides/sample_app_ug/ioat.rst | 2 +-
> drivers/bus/ifpga/ifpga_bus.c | 2 +-
> drivers/raw/ifpga/ifpga_rawdev.c | 5 +++--
> drivers/raw/ioat/ioat_rawdev.c | 5 +++--
> drivers/raw/ioat/ioat_rawdev_test.c | 4 ++--
> drivers/raw/ntb/ntb.c | 8 +++++++-
> drivers/raw/skeleton/skeleton_rawdev.c | 5 +++--
> drivers/raw/skeleton/skeleton_rawdev_test.c | 19 ++++++++++++-------
> examples/ioat/ioatfwd.c | 2 +-
> examples/ntb/ntb_fwd.c | 2 +-
> lib/librte_rawdev/rte_rawdev.c | 6 ++++--
> lib/librte_rawdev/rte_rawdev.h | 9 ++++++++-
> lib/librte_rawdev/rte_rawdev_pmd.h | 5 ++++-
> 15 files changed, 52 insertions(+), 26 deletions(-)
>
> diff --git a/app/test/test_rawdev.c b/app/test/test_rawdev.c index
> 524a9d5f3b..d8d9595be1 100644
> --- a/app/test/test_rawdev.c
> +++ b/app/test/test_rawdev.c
> @@ -34,7 +34,7 @@ test_rawdev_selftest_ioat(void)
>
> for (i = 0; i < count; i++) {
> struct rte_rawdev_info info = { .dev_private = NULL };
> - if (rte_rawdev_info_get(i, &info) == 0 &&
> + if (rte_rawdev_info_get(i, &info, 0) == 0 &&
> strstr(info.driver_name, "ioat") != NULL)
> return rte_rawdev_selftest(i) == 0 ?
> TEST_SUCCESS : TEST_FAILED;
> diff --git a/doc/guides/rawdevs/ioat.rst b/doc/guides/rawdevs/ioat.rst index
> d0eee5e237..dac52fabf1 100644
> --- a/doc/guides/rawdevs/ioat.rst
> +++ b/doc/guides/rawdevs/ioat.rst
> @@ -107,7 +107,7 @@ rawdev device for use by an application:
>
> for (i = 0; i < count && !found; i++) {
> struct rte_rawdev_info info = { .dev_private = NULL };
> - found = (rte_rawdev_info_get(i, &info) == 0 &&
> + found = (rte_rawdev_info_get(i, &info, 0) == 0 &&
> strcmp(info.driver_name,
> IOAT_PMD_RAWDEV_NAME_STR) == 0);
> }
> diff --git a/doc/guides/sample_app_ug/ioat.rst
> b/doc/guides/sample_app_ug/ioat.rst
> index bab7654b8d..b5188220ba 100644
> --- a/doc/guides/sample_app_ug/ioat.rst
> +++ b/doc/guides/sample_app_ug/ioat.rst
> @@ -265,7 +265,7 @@ functions:
> do {
> if (rdev_id == rte_rawdev_count())
> goto end;
> - rte_rawdev_info_get(rdev_id++, &rdev_info);
> + rte_rawdev_info_get(rdev_id++, &rdev_info, 0);
> } while (strcmp(rdev_info.driver_name,
> IOAT_PMD_RAWDEV_NAME_STR) != 0);
>
> diff --git a/drivers/bus/ifpga/ifpga_bus.c b/drivers/bus/ifpga/ifpga_bus.c
> index 6b16a20bb6..bb8b3dcfb9 100644
> --- a/drivers/bus/ifpga/ifpga_bus.c
> +++ b/drivers/bus/ifpga/ifpga_bus.c
> @@ -162,7 +162,7 @@ ifpga_scan_one(struct rte_rawdev *rawdev,
> afu_dev->id.port = afu_pr_conf.afu_id.port;
>
> if (rawdev->dev_ops && rawdev->dev_ops->dev_info_get)
> - rawdev->dev_ops->dev_info_get(rawdev, afu_dev);
> + rawdev->dev_ops->dev_info_get(rawdev, afu_dev,
> sizeof(*afu_dev));
>
> if (rawdev->dev_ops &&
> rawdev->dev_ops->dev_start &&
> diff --git a/drivers/raw/ifpga/ifpga_rawdev.c
> b/drivers/raw/ifpga/ifpga_rawdev.c
> index cc25c662bc..47cfa38778 100644
> --- a/drivers/raw/ifpga/ifpga_rawdev.c
> +++ b/drivers/raw/ifpga/ifpga_rawdev.c
> @@ -605,7 +605,8 @@ ifpga_fill_afu_dev(struct opae_accelerator *acc,
>
> static void
> ifpga_rawdev_info_get(struct rte_rawdev *dev,
> - rte_rawdev_obj_t dev_info)
> + rte_rawdev_obj_t dev_info,
> + size_t dev_info_size)
> {
> struct opae_adapter *adapter;
> struct opae_accelerator *acc;
> @@ -617,7 +618,7 @@ ifpga_rawdev_info_get(struct rte_rawdev *dev,
>
> IFPGA_RAWDEV_PMD_FUNC_TRACE();
>
> - if (!dev_info) {
> + if (!dev_info || dev_info_size != sizeof(*afu_dev)) {
> IFPGA_RAWDEV_PMD_ERR("Invalid request");
> return;
> }
> diff --git a/drivers/raw/ioat/ioat_rawdev.c b/drivers/raw/ioat/ioat_rawdev.c
> index 87fd088aac..a5c0452d7e 100644
> --- a/drivers/raw/ioat/ioat_rawdev.c
> +++ b/drivers/raw/ioat/ioat_rawdev.c
> @@ -111,12 +111,13 @@ ioat_dev_stop(struct rte_rawdev *dev) }
>
> static void
> -ioat_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info)
> +ioat_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info,
> + size_t dev_info_size)
> {
> struct rte_ioat_rawdev_config *cfg = dev_info;
> struct rte_ioat_rawdev *ioat = dev->dev_private;
>
> - if (cfg != NULL)
> + if (cfg != NULL && dev_info_size == sizeof(*cfg))
> cfg->ring_size = ioat->ring_size;
> }
>
> diff --git a/drivers/raw/ioat/ioat_rawdev_test.c
> b/drivers/raw/ioat/ioat_rawdev_test.c
> index c37351af2d..2b40222eb4 100644
> --- a/drivers/raw/ioat/ioat_rawdev_test.c
> +++ b/drivers/raw/ioat/ioat_rawdev_test.c
> @@ -148,7 +148,7 @@ ioat_rawdev_test(uint16_t dev_id)
> unsigned int nb_xstats;
> unsigned int i;
>
> - rte_rawdev_info_get(dev_id, &info);
> + rte_rawdev_info_get(dev_id, &info, sizeof(p));
> if (p.ring_size != expected_ring_size) {
> printf("Error, initial ring size is not as expected (Actual: %d,
> Expected: %d)\n",
> (int)p.ring_size, expected_ring_size); @@ -
> 160,7 +160,7 @@ ioat_rawdev_test(uint16_t dev_id)
> printf("Error with rte_rawdev_configure()\n");
> return -1;
> }
> - rte_rawdev_info_get(dev_id, &info);
> + rte_rawdev_info_get(dev_id, &info, sizeof(p));
> if (p.ring_size != IOAT_TEST_RINGSIZE) {
> printf("Error, ring size is not %d (%d)\n",
> IOAT_TEST_RINGSIZE, (int)p.ring_size); diff --
> git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c index
> e40412bb7e..c890c43a32 100644
> --- a/drivers/raw/ntb/ntb.c
> +++ b/drivers/raw/ntb/ntb.c
> @@ -801,11 +801,17 @@ ntb_dequeue_bufs(struct rte_rawdev *dev, }
>
> static void
> -ntb_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info)
> +ntb_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info,
> + size_t dev_info_size)
> {
> struct ntb_hw *hw = dev->dev_private;
> struct ntb_dev_info *info = dev_info;
>
> + if (dev_info_size != sizeof(*info)) {
> + NTB_LOG(ERR, "Invalid size parameter to %s", __func__);
> + return;
> + }
> +
> info->mw_cnt = hw->mw_cnt;
> info->mw_size = hw->mw_size;
>
> diff --git a/drivers/raw/skeleton/skeleton_rawdev.c
> b/drivers/raw/skeleton/skeleton_rawdev.c
> index 72ece887af..dc05f3ecf8 100644
> --- a/drivers/raw/skeleton/skeleton_rawdev.c
> +++ b/drivers/raw/skeleton/skeleton_rawdev.c
> @@ -42,14 +42,15 @@ static struct queue_buffers
> queue_buf[SKELETON_MAX_QUEUES] = {}; static void clear_queue_bufs(int
> queue_id);
>
> static void skeleton_rawdev_info_get(struct rte_rawdev *dev,
> - rte_rawdev_obj_t dev_info)
> + rte_rawdev_obj_t dev_info,
> + size_t dev_info_size)
> {
> struct skeleton_rawdev *skeldev;
> struct skeleton_rawdev_conf *skeldev_conf;
>
> SKELETON_PMD_FUNC_TRACE();
>
> - if (!dev_info) {
> + if (!dev_info || dev_info_size != sizeof(*skeldev_conf)) {
> SKELETON_PMD_ERR("Invalid request");
> return;
> }
> diff --git a/drivers/raw/skeleton/skeleton_rawdev_test.c
> b/drivers/raw/skeleton/skeleton_rawdev_test.c
> index 9ecfdee818..9b8390dfb7 100644
> --- a/drivers/raw/skeleton/skeleton_rawdev_test.c
> +++ b/drivers/raw/skeleton/skeleton_rawdev_test.c
> @@ -106,12 +106,12 @@ test_rawdev_info_get(void)
> struct rte_rawdev_info rdev_info = {0};
> struct skeleton_rawdev_conf skel_conf = {0};
>
> - ret = rte_rawdev_info_get(test_dev_id, NULL);
> + ret = rte_rawdev_info_get(test_dev_id, NULL, 0);
> RTE_TEST_ASSERT(ret == -EINVAL, "Expected -EINVAL, %d", ret);
>
> rdev_info.dev_private = &skel_conf;
>
> - ret = rte_rawdev_info_get(test_dev_id, &rdev_info);
> + ret = rte_rawdev_info_get(test_dev_id, &rdev_info,
> sizeof(skel_conf));
> RTE_TEST_ASSERT_SUCCESS(ret, "Failed to get raw dev info");
>
> return TEST_SUCCESS;
> @@ -142,7 +142,8 @@ test_rawdev_configure(void)
>
> rdev_info.dev_private = &rdev_conf_get;
> ret = rte_rawdev_info_get(test_dev_id,
> - (rte_rawdev_obj_t)&rdev_info);
> + (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_get));
> RTE_TEST_ASSERT_SUCCESS(ret,
> "Failed to obtain rawdev configuration (%d)",
> ret);
> @@ -170,7 +171,8 @@ test_rawdev_queue_default_conf_get(void)
> /* Get the current configuration */
> rdev_info.dev_private = &rdev_conf_get;
> ret = rte_rawdev_info_get(test_dev_id,
> - (rte_rawdev_obj_t)&rdev_info);
> + (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_get));
> RTE_TEST_ASSERT_SUCCESS(ret, "Failed to obtain rawdev
> configuration (%d)",
> ret);
>
> @@ -218,7 +220,8 @@ test_rawdev_queue_setup(void)
> /* Get the current configuration */
> rdev_info.dev_private = &rdev_conf_get;
> ret = rte_rawdev_info_get(test_dev_id,
> - (rte_rawdev_obj_t)&rdev_info);
> + (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_get));
> RTE_TEST_ASSERT_SUCCESS(ret,
> "Failed to obtain rawdev configuration (%d)",
> ret);
> @@ -327,7 +330,8 @@ test_rawdev_start_stop(void)
> dummy_firmware = NULL;
>
> rte_rawdev_start(test_dev_id);
> - ret = rte_rawdev_info_get(test_dev_id,
> (rte_rawdev_obj_t)&rdev_info);
> + ret = rte_rawdev_info_get(test_dev_id,
> (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_get));
> RTE_TEST_ASSERT_SUCCESS(ret,
> "Failed to obtain rawdev configuration (%d)",
> ret);
> @@ -336,7 +340,8 @@ test_rawdev_start_stop(void)
> rdev_conf_get.device_state);
>
> rte_rawdev_stop(test_dev_id);
> - ret = rte_rawdev_info_get(test_dev_id,
> (rte_rawdev_obj_t)&rdev_info);
> + ret = rte_rawdev_info_get(test_dev_id,
> (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_get));
> RTE_TEST_ASSERT_SUCCESS(ret,
> "Failed to obtain rawdev configuration (%d)",
> ret);
> diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c index
> 75d8d5b9fe..76932d3dd2 100644
> --- a/examples/ioat/ioatfwd.c
> +++ b/examples/ioat/ioatfwd.c
> @@ -757,7 +757,7 @@ assign_rawdevs(void)
> do {
> if (rdev_id == rte_rawdev_count())
> goto end;
> - rte_rawdev_info_get(rdev_id++, &rdev_info);
> + rte_rawdev_info_get(rdev_id++, &rdev_info,
> 0);
> } while (rdev_info.driver_name == NULL ||
> strcmp(rdev_info.driver_name,
>
> IOAT_PMD_RAWDEV_NAME_STR) != 0);
> diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c index
> eba8ebf9fa..11e224451c 100644
> --- a/examples/ntb/ntb_fwd.c
> +++ b/examples/ntb/ntb_fwd.c
> @@ -1389,7 +1389,7 @@ main(int argc, char **argv)
> rte_rawdev_set_attr(dev_id, NTB_QUEUE_NUM_NAME,
> num_queues);
> printf("Set queue number as %u.\n", num_queues);
> ntb_rawdev_info.dev_private = (rte_rawdev_obj_t)(&ntb_info);
> - rte_rawdev_info_get(dev_id, &ntb_rawdev_info);
> + rte_rawdev_info_get(dev_id, &ntb_rawdev_info, sizeof(ntb_info));
>
> nb_mbuf = nb_desc * num_queues * 2 * 2 + rte_lcore_count() *
> MEMPOOL_CACHE_SIZE;
> diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c
> index 8f84d0b228..a576890356 100644
> --- a/lib/librte_rawdev/rte_rawdev.c
> +++ b/lib/librte_rawdev/rte_rawdev.c
> @@ -78,7 +78,8 @@ rte_rawdev_socket_id(uint16_t dev_id) }
>
> int
> -rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info)
> +rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info,
> + size_t dev_private_size)
> {
> struct rte_rawdev *rawdev;
>
> @@ -89,7 +90,8 @@ rte_rawdev_info_get(uint16_t dev_id, struct
> rte_rawdev_info *dev_info)
>
> if (dev_info->dev_private != NULL) {
> RTE_FUNC_PTR_OR_ERR_RET(*rawdev->dev_ops-
> >dev_info_get, -ENOTSUP);
> - (*rawdev->dev_ops->dev_info_get)(rawdev, dev_info-
> >dev_private);
> + (*rawdev->dev_ops->dev_info_get)(rawdev, dev_info-
> >dev_private,
> + dev_private_size);
> }
>
> dev_info->driver_name = rawdev->driver_name; diff --git
> a/lib/librte_rawdev/rte_rawdev.h b/lib/librte_rawdev/rte_rawdev.h index
> 32f6b8bb03..cf6acfd261 100644
> --- a/lib/librte_rawdev/rte_rawdev.h
> +++ b/lib/librte_rawdev/rte_rawdev.h
> @@ -82,13 +82,20 @@ struct rte_rawdev_info;
> * will be returned. This can be used to safely query the type of a rawdev
> * instance without needing to know the size of the private data to return.
> *
> + * @param dev_private_size
> + * The length of the memory space pointed to by dev_private in dev_info.
> + * This should be set to the size of the expected private structure to be
> + * returned, and may be checked by drivers to ensure the expected struct
> + * type is provided.
> + *
> * @return
> * - 0: Success, driver updates the contextual information of the raw device
> * - <0: Error code returned by the driver info get function.
> *
> */
> int
> -rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info);
> +rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info,
> + size_t dev_private_size);
>
> /**
> * Configure a raw device.
> diff --git a/lib/librte_rawdev/rte_rawdev_pmd.h
> b/lib/librte_rawdev/rte_rawdev_pmd.h
> index 4395a2182d..0e72a92058 100644
> --- a/lib/librte_rawdev/rte_rawdev_pmd.h
> +++ b/lib/librte_rawdev/rte_rawdev_pmd.h
> @@ -138,12 +138,15 @@ rte_rawdev_pmd_is_valid_dev(uint8_t dev_id)
> * Raw device pointer
> * @param dev_info
> * Raw device information structure
> + * @param dev_private_size
> + * The size of the structure pointed to by dev_info->dev_private
> *
> * @return
> * Returns 0 on success
> */
> typedef void (*rawdev_info_get_t)(struct rte_rawdev *dev,
> - rte_rawdev_obj_t dev_info);
> + rte_rawdev_obj_t dev_info,
> + size_t dev_private_size);
>
> /**
> * Configure a device.
> --
> 2.25.1
Acked-by: Rosen Xu <rosen.xu@intel.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] common/iavf: mark internal symbols
2020-08-14 16:30 3% ` [dpdk-dev] [PATCH v2] common/iavf: mark internal symbols Haiyue Wang
@ 2020-08-17 3:08 0% ` Xing, Beilei
2020-08-18 15:48 0% ` Ferruh Yigit
0 siblings, 1 reply; 200+ results
From: Xing, Beilei @ 2020-08-17 3:08 UTC (permalink / raw)
To: Wang, Haiyue, dev
Cc: Zhang, Qi Z, Yang, Qiming, Wu, Jingjing, Ray Kinsella, Neil Horman
> -----Original Message-----
> From: Wang, Haiyue <haiyue.wang@intel.com>
> Sent: Saturday, August 15, 2020 12:31 AM
> To: dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Yang, Qiming
> <qiming.yang@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>; Wu,
> Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Ray
> Kinsella <mdr@ashroe.eu>; Neil Horman <nhorman@tuxdriver.com>
> Subject: [PATCH v2] common/iavf: mark internal symbols
>
> According to ABI policy, the internal functions should have the new tag
> __rte_internal and linked into INTERNAL sessions.
>
> Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
> ---
> v2: update the commit title
> ---
> drivers/common/iavf/iavf_prototype.h | 6 ++++++
> drivers/common/iavf/rte_common_iavf_version.map | 2 +-
> 2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/common/iavf/iavf_prototype.h
> b/drivers/common/iavf/iavf_prototype.h
> index 31ce2af49..f34e77db0 100644
> --- a/drivers/common/iavf/iavf_prototype.h
> +++ b/drivers/common/iavf/iavf_prototype.h
> @@ -17,7 +17,9 @@
> */
>
> /* adminq functions */
> +__rte_internal
> enum iavf_status iavf_init_adminq(struct iavf_hw *hw);
> +__rte_internal
> enum iavf_status iavf_shutdown_adminq(struct iavf_hw *hw); enum
> iavf_status iavf_init_asq(struct iavf_hw *hw); enum iavf_status
> iavf_init_arq(struct iavf_hw *hw); @@ -30,6 +32,7 @@ void
> iavf_free_adminq_asq(struct iavf_hw *hw); void iavf_free_adminq_arq(struct
> iavf_hw *hw); enum iavf_status iavf_validate_mac_addr(u8 *mac_addr);
> void iavf_adminq_init_ring_data(struct iavf_hw *hw);
> +__rte_internal
> enum iavf_status iavf_clean_arq_element(struct iavf_hw *hw,
> struct iavf_arq_event_info *e,
> u16 *events_pending);
> @@ -61,6 +64,7 @@ enum iavf_status iavf_aq_set_rss_key(struct iavf_hw *hw,
> const char *iavf_aq_str(struct iavf_hw *hw, enum iavf_admin_queue_err
> aq_err); const char *iavf_stat_str(struct iavf_hw *hw, enum iavf_status
> stat_err);
>
> +__rte_internal
> enum iavf_status iavf_set_mac_type(struct iavf_hw *hw);
>
> extern struct iavf_rx_ptype_decoded iavf_ptype_lookup[]; @@ -76,9 +80,11
> @@ void iavf_acquire_spinlock(struct iavf_spinlock *sp); void
> iavf_release_spinlock(struct iavf_spinlock *sp); void
> iavf_destroy_spinlock(struct iavf_spinlock *sp);
>
> +__rte_internal
> void iavf_vf_parse_hw_config(struct iavf_hw *hw,
> struct virtchnl_vf_resource *msg); enum iavf_status
> iavf_vf_reset(struct iavf_hw *hw);
> +__rte_internal
> enum iavf_status iavf_aq_send_msg_to_pf(struct iavf_hw *hw,
> enum virtchnl_ops v_opcode,
> enum iavf_status v_retval,
> diff --git a/drivers/common/iavf/rte_common_iavf_version.map
> b/drivers/common/iavf/rte_common_iavf_version.map
> index 44142499e..e0f117197 100644
> --- a/drivers/common/iavf/rte_common_iavf_version.map
> +++ b/drivers/common/iavf/rte_common_iavf_version.map
> @@ -1,4 +1,4 @@
> -DPDK_21 {
> +INTERNAL {
> global:
>
> iavf_aq_send_msg_to_pf;
> --
> 2.28.0
Acked-by: Beilei Xing <beilei.xing@intel.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [RFC] ethdev: introduce GENEVE header extension item
@ 2020-08-16 17:25 3% ` Stephen Hemminger
2020-08-17 6:36 0% ` Shiri Kuzin
0 siblings, 1 reply; 200+ results
From: Stephen Hemminger @ 2020-08-16 17:25 UTC (permalink / raw)
To: Shiri Kuzin
Cc: dev, Slava Ovsiienko, NBU-Contact-Adrien Mazarguil, Raslan Darawsheh
On Sun, 16 Aug 2020 10:15:03 +0000
Shiri Kuzin <shirik@nvidia.com> wrote:
> The Geneve tunneling protocol is designed to allow
> the user to specify some data context on the packet.
> The header extension options is the mean intended
> to present the user data. These ones are implemented
> in TLV (Type-Length-Value) fashion, in order to
> support these Geneve protocol feature we will
> introduce the new item "rte_flow_item_geneve_option"
>
> The support for new item will be added to testpmd
> and include values and masks for the fields:
> - class
> - type
> - data length
> - data itself
>
> The usage example:
>
> "flow create 0 ingress pattern ipv4 / udp /
> geneve / geneve_opt class is 102 type is 80
> type mask ff data is 10002 data mask is
> 7fffffff / end actions drop / end "
>
> New item will be added to testpmd to support
> raw encap/decap action.
>
> Signed-off-by: Shiri Kuzin <shirik@nvidia.com>
> ---
> lib/librte_ethdev/rte_flow.h | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
> index da8bfa5..d04ee7c 100644
> --- a/lib/librte_ethdev/rte_flow.h
> +++ b/lib/librte_ethdev/rte_flow.h
> @@ -347,6 +347,13 @@ enum rte_flow_item_type {
> RTE_FLOW_ITEM_TYPE_GENEVE,
>
> /**
> + * Matches a GENEVE Variable Length Option.
> + *
> + * See struct rte_flow_item_geneve_option.
> + */
> + RTE_FLOW_ITEM_TYPE_GENEVE_OPTION,
> +
> + /**
Please don't break ABI by putting items in middle of enum.
New items should go at the end.
enum changes the val
^ permalink raw reply [relevance 3%]
* [dpdk-dev] [PATCH v2] common/iavf: mark internal symbols
2020-08-14 16:23 3% [dpdk-dev] [PATCH v1] common/iavf: mark the global functions internal Haiyue Wang
@ 2020-08-14 16:30 3% ` Haiyue Wang
2020-08-17 3:08 0% ` Xing, Beilei
0 siblings, 1 reply; 200+ results
From: Haiyue Wang @ 2020-08-14 16:30 UTC (permalink / raw)
To: dev
Cc: qi.z.zhang, qiming.yang, Haiyue Wang, Jingjing Wu, Beilei Xing,
Ray Kinsella, Neil Horman
According to ABI policy, the internal functions should have the new tag
__rte_internal and linked into INTERNAL sessions.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
---
v2: update the commit title
---
drivers/common/iavf/iavf_prototype.h | 6 ++++++
drivers/common/iavf/rte_common_iavf_version.map | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/common/iavf/iavf_prototype.h b/drivers/common/iavf/iavf_prototype.h
index 31ce2af49..f34e77db0 100644
--- a/drivers/common/iavf/iavf_prototype.h
+++ b/drivers/common/iavf/iavf_prototype.h
@@ -17,7 +17,9 @@
*/
/* adminq functions */
+__rte_internal
enum iavf_status iavf_init_adminq(struct iavf_hw *hw);
+__rte_internal
enum iavf_status iavf_shutdown_adminq(struct iavf_hw *hw);
enum iavf_status iavf_init_asq(struct iavf_hw *hw);
enum iavf_status iavf_init_arq(struct iavf_hw *hw);
@@ -30,6 +32,7 @@ void iavf_free_adminq_asq(struct iavf_hw *hw);
void iavf_free_adminq_arq(struct iavf_hw *hw);
enum iavf_status iavf_validate_mac_addr(u8 *mac_addr);
void iavf_adminq_init_ring_data(struct iavf_hw *hw);
+__rte_internal
enum iavf_status iavf_clean_arq_element(struct iavf_hw *hw,
struct iavf_arq_event_info *e,
u16 *events_pending);
@@ -61,6 +64,7 @@ enum iavf_status iavf_aq_set_rss_key(struct iavf_hw *hw,
const char *iavf_aq_str(struct iavf_hw *hw, enum iavf_admin_queue_err aq_err);
const char *iavf_stat_str(struct iavf_hw *hw, enum iavf_status stat_err);
+__rte_internal
enum iavf_status iavf_set_mac_type(struct iavf_hw *hw);
extern struct iavf_rx_ptype_decoded iavf_ptype_lookup[];
@@ -76,9 +80,11 @@ void iavf_acquire_spinlock(struct iavf_spinlock *sp);
void iavf_release_spinlock(struct iavf_spinlock *sp);
void iavf_destroy_spinlock(struct iavf_spinlock *sp);
+__rte_internal
void iavf_vf_parse_hw_config(struct iavf_hw *hw,
struct virtchnl_vf_resource *msg);
enum iavf_status iavf_vf_reset(struct iavf_hw *hw);
+__rte_internal
enum iavf_status iavf_aq_send_msg_to_pf(struct iavf_hw *hw,
enum virtchnl_ops v_opcode,
enum iavf_status v_retval,
diff --git a/drivers/common/iavf/rte_common_iavf_version.map b/drivers/common/iavf/rte_common_iavf_version.map
index 44142499e..e0f117197 100644
--- a/drivers/common/iavf/rte_common_iavf_version.map
+++ b/drivers/common/iavf/rte_common_iavf_version.map
@@ -1,4 +1,4 @@
-DPDK_21 {
+INTERNAL {
global:
iavf_aq_send_msg_to_pf;
--
2.28.0
^ permalink raw reply [relevance 3%]
* [dpdk-dev] [PATCH v1] common/iavf: mark the global functions internal
@ 2020-08-14 16:23 3% Haiyue Wang
2020-08-14 16:30 3% ` [dpdk-dev] [PATCH v2] common/iavf: mark internal symbols Haiyue Wang
0 siblings, 1 reply; 200+ results
From: Haiyue Wang @ 2020-08-14 16:23 UTC (permalink / raw)
To: dev
Cc: qi.z.zhang, qiming.yang, Haiyue Wang, Jingjing Wu, Beilei Xing,
Ray Kinsella, Neil Horman
According to ABI policy, the internal functions should have the new tag
__rte_internal and linked into INTERNAL sessions.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
---
drivers/common/iavf/iavf_prototype.h | 6 ++++++
drivers/common/iavf/rte_common_iavf_version.map | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/common/iavf/iavf_prototype.h b/drivers/common/iavf/iavf_prototype.h
index 31ce2af49..f34e77db0 100644
--- a/drivers/common/iavf/iavf_prototype.h
+++ b/drivers/common/iavf/iavf_prototype.h
@@ -17,7 +17,9 @@
*/
/* adminq functions */
+__rte_internal
enum iavf_status iavf_init_adminq(struct iavf_hw *hw);
+__rte_internal
enum iavf_status iavf_shutdown_adminq(struct iavf_hw *hw);
enum iavf_status iavf_init_asq(struct iavf_hw *hw);
enum iavf_status iavf_init_arq(struct iavf_hw *hw);
@@ -30,6 +32,7 @@ void iavf_free_adminq_asq(struct iavf_hw *hw);
void iavf_free_adminq_arq(struct iavf_hw *hw);
enum iavf_status iavf_validate_mac_addr(u8 *mac_addr);
void iavf_adminq_init_ring_data(struct iavf_hw *hw);
+__rte_internal
enum iavf_status iavf_clean_arq_element(struct iavf_hw *hw,
struct iavf_arq_event_info *e,
u16 *events_pending);
@@ -61,6 +64,7 @@ enum iavf_status iavf_aq_set_rss_key(struct iavf_hw *hw,
const char *iavf_aq_str(struct iavf_hw *hw, enum iavf_admin_queue_err aq_err);
const char *iavf_stat_str(struct iavf_hw *hw, enum iavf_status stat_err);
+__rte_internal
enum iavf_status iavf_set_mac_type(struct iavf_hw *hw);
extern struct iavf_rx_ptype_decoded iavf_ptype_lookup[];
@@ -76,9 +80,11 @@ void iavf_acquire_spinlock(struct iavf_spinlock *sp);
void iavf_release_spinlock(struct iavf_spinlock *sp);
void iavf_destroy_spinlock(struct iavf_spinlock *sp);
+__rte_internal
void iavf_vf_parse_hw_config(struct iavf_hw *hw,
struct virtchnl_vf_resource *msg);
enum iavf_status iavf_vf_reset(struct iavf_hw *hw);
+__rte_internal
enum iavf_status iavf_aq_send_msg_to_pf(struct iavf_hw *hw,
enum virtchnl_ops v_opcode,
enum iavf_status v_retval,
diff --git a/drivers/common/iavf/rte_common_iavf_version.map b/drivers/common/iavf/rte_common_iavf_version.map
index 44142499e..e0f117197 100644
--- a/drivers/common/iavf/rte_common_iavf_version.map
+++ b/drivers/common/iavf/rte_common_iavf_version.map
@@ -1,4 +1,4 @@
-DPDK_21 {
+INTERNAL {
global:
iavf_aq_send_msg_to_pf;
--
2.28.0
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] Please note: v21 ABI notification
2020-08-14 15:16 9% [dpdk-dev] Please note: v21 ABI notification Kinsella, Ray
@ 2020-08-14 15:23 7% ` Kinsella, Ray
0 siblings, 0 replies; 200+ results
From: Kinsella, Ray @ 2020-08-14 15:23 UTC (permalink / raw)
To: dpdk-dev, Thomas Monjalon, Neil Horman, David Marchand,
Fiona Trahe, Arek Kusztal, Olivier Matz, Ferruh Yigit, Ori Kam
Hi folks,
Now is the time to remove old ABI compatibility preserving code.
Remove versioning code:
* Cryptodev
Fiona Trahe <fiona.trahe@intel.com>
Arek Kusztal <arkadiuszx.kusztal@intel.com>
* Mempool
Olivier Matz <olivier.matz@6wind.com>
Remove alias to experimental:
* Metering
Ferruh Yigit <ferruh.yigit@intel.com>
Finally,
Along the way I noted the following public symbols that are not assigned to a version node.
* Regex Device
Ori Kam <orika@mellanox.com>
Symbols: -
rte_regexdev_unregister
rte_regexdev_register
rte_regexdev_get_device_by_name
rte_regexdev_is_valid_dev
Thanks,
Ray Kinsella
On 14/08/2020 16:16, Kinsella, Ray wrote:
> Please note,
>
> ABI v21 has been declared aligned with the DPDK 20.11 release.
> (https://git.dpdk.org/dpdk/commit/?id=4f86c0ba19ba065c8c32a5b0111efc7bb74c9b96)
>
> The requirement to preserve compatibility with the previous major ABI version v20
> in DPDK 19.11 is now dropped. This is commonly known as the ABI breakage window,
> and some amended rules apply for the duration of this cycle:
>
> * The requirement to preserve compatibility with the previous major ABI
> version v20, no longer applies.
>
> * Contributors of compatibility preserving code and/or symbol aliases to
> experimental in previous releases, are now kindly asked to remove this code.
>
> I will send a direct notification to this group as a followup to this mail.
>
> * Symbol versioning references to the old ABI version v20, have been
> updated to reference the new ABI version v21.
>
> * Finally, please note, the ABI breakage window is *not* permission to
> circumvent the other aspects of the procedures to make ABI changes,
> that is, 3 ACKs of the requirement to break the ABI and
> the observance of a deprecation notice are still considered mandatory.
>
> Kinds regards,
>
> Ray Kinsella
> ABI Maintainer
>
^ permalink raw reply [relevance 7%]
* [dpdk-dev] Please note: v21 ABI notification
@ 2020-08-14 15:16 9% Kinsella, Ray
2020-08-14 15:23 7% ` Kinsella, Ray
0 siblings, 1 reply; 200+ results
From: Kinsella, Ray @ 2020-08-14 15:16 UTC (permalink / raw)
To: dpdk-dev, Thomas Monjalon, Neil Horman, David Marchand
Please note,
ABI v21 has been declared aligned with the DPDK 20.11 release.
(https://git.dpdk.org/dpdk/commit/?id=4f86c0ba19ba065c8c32a5b0111efc7bb74c9b96)
The requirement to preserve compatibility with the previous major ABI version v20
in DPDK 19.11 is now dropped. This is commonly known as the ABI breakage window,
and some amended rules apply for the duration of this cycle:
* The requirement to preserve compatibility with the previous major ABI
version v20, no longer applies.
* Contributors of compatibility preserving code and/or symbol aliases to
experimental in previous releases, are now kindly asked to remove this code.
I will send a direct notification to this group as a followup to this mail.
* Symbol versioning references to the old ABI version v20, have been
updated to reference the new ABI version v21.
* Finally, please note, the ABI breakage window is *not* permission to
circumvent the other aspects of the procedures to make ABI changes,
that is, 3 ACKs of the requirement to break the ABI and
the observance of a deprecation notice are still considered mandatory.
Kinds regards,
Ray Kinsella
ABI Maintainer
^ permalink raw reply [relevance 9%]
* [dpdk-dev] [PATCH] cryptodev: revert ABI compatibility for ChaCha20-Poly1305
@ 2020-08-14 9:59 14% Adam Dybkowski
0 siblings, 0 replies; 200+ results
From: Adam Dybkowski @ 2020-08-14 9:59 UTC (permalink / raw)
To: dev, fiona.trahe, akhil.goyal; +Cc: Adam Dybkowski, Arek Kusztal
This reverts commit a0f0de06d457753c94688d551a6e8659b4d4e041 as the
rte_cryptodev_info_get function versioning was a temporary solution
to maintain ABI compatibility for ChaCha20-Poly1305 and is not
needed in 20.11.
Fixes: a0f0de06d457 ("cryptodev: fix ABI compatibility for ChaCha20-Poly1305")
Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Reviewed-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
---
lib/librte_cryptodev/meson.build | 1 -
lib/librte_cryptodev/rte_cryptodev.c | 147 +-----------------
lib/librte_cryptodev/rte_cryptodev.h | 34 +---
.../rte_cryptodev_version.map | 6 -
4 files changed, 6 insertions(+), 182 deletions(-)
diff --git a/lib/librte_cryptodev/meson.build b/lib/librte_cryptodev/meson.build
index df1144058..c4c6b3b6a 100644
--- a/lib/librte_cryptodev/meson.build
+++ b/lib/librte_cryptodev/meson.build
@@ -1,7 +1,6 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017-2019 Intel Corporation
-use_function_versioning = true
sources = files('rte_cryptodev.c', 'rte_cryptodev_pmd.c', 'cryptodev_trace_points.c')
headers = files('rte_cryptodev.h',
'rte_cryptodev_pmd.h',
diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c
index 1dd795bcb..6c9a19f25 100644
--- a/lib/librte_cryptodev/rte_cryptodev.c
+++ b/lib/librte_cryptodev/rte_cryptodev.c
@@ -36,8 +36,6 @@
#include <rte_errno.h>
#include <rte_spinlock.h>
#include <rte_string_fns.h>
-#include <rte_compat.h>
-#include <rte_function_versioning.h>
#include "rte_crypto.h"
#include "rte_cryptodev.h"
@@ -59,14 +57,6 @@ static struct rte_cryptodev_global cryptodev_globals = {
/* spinlock for crypto device callbacks */
static rte_spinlock_t rte_cryptodev_cb_lock = RTE_SPINLOCK_INITIALIZER;
-static const struct rte_cryptodev_capabilities
- cryptodev_undefined_capabilities[] = {
- RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
-};
-
-static struct rte_cryptodev_capabilities
- *capability_copy[RTE_CRYPTO_MAX_DEVS];
-static uint8_t is_capability_checked[RTE_CRYPTO_MAX_DEVS];
/**
* The user application callback description.
@@ -291,43 +281,8 @@ rte_crypto_auth_operation_strings[] = {
[RTE_CRYPTO_AUTH_OP_GENERATE] = "generate"
};
-const struct rte_cryptodev_symmetric_capability __vsym *
-rte_cryptodev_sym_capability_get_v20(uint8_t dev_id,
- const struct rte_cryptodev_sym_capability_idx *idx)
-{
- const struct rte_cryptodev_capabilities *capability;
- struct rte_cryptodev_info dev_info;
- int i = 0;
-
- rte_cryptodev_info_get_v20(dev_id, &dev_info);
-
- while ((capability = &dev_info.capabilities[i++])->op !=
- RTE_CRYPTO_OP_TYPE_UNDEFINED) {
- if (capability->op != RTE_CRYPTO_OP_TYPE_SYMMETRIC)
- continue;
-
- if (capability->sym.xform_type != idx->type)
- continue;
-
- if (idx->type == RTE_CRYPTO_SYM_XFORM_AUTH &&
- capability->sym.auth.algo == idx->algo.auth)
- return &capability->sym;
-
- if (idx->type == RTE_CRYPTO_SYM_XFORM_CIPHER &&
- capability->sym.cipher.algo == idx->algo.cipher)
- return &capability->sym;
-
- if (idx->type == RTE_CRYPTO_SYM_XFORM_AEAD &&
- capability->sym.aead.algo == idx->algo.aead)
- return &capability->sym;
- }
-
- return NULL;
-}
-VERSION_SYMBOL(rte_cryptodev_sym_capability_get, _v20, 20.0);
-
-const struct rte_cryptodev_symmetric_capability __vsym *
-rte_cryptodev_sym_capability_get_v21(uint8_t dev_id,
+const struct rte_cryptodev_symmetric_capability *
+rte_cryptodev_sym_capability_get(uint8_t dev_id,
const struct rte_cryptodev_sym_capability_idx *idx)
{
const struct rte_cryptodev_capabilities *capability;
@@ -358,12 +313,8 @@ rte_cryptodev_sym_capability_get_v21(uint8_t dev_id,
}
return NULL;
+
}
-MAP_STATIC_SYMBOL(const struct rte_cryptodev_symmetric_capability *
- rte_cryptodev_sym_capability_get(uint8_t dev_id,
- const struct rte_cryptodev_sym_capability_idx *idx),
- rte_cryptodev_sym_capability_get_v21);
-BIND_DEFAULT_SYMBOL(rte_cryptodev_sym_capability_get, _v21, 21);
static int
param_range_check(uint16_t size, const struct rte_crypto_param_range *range)
@@ -1085,12 +1036,6 @@ rte_cryptodev_close(uint8_t dev_id)
retval = (*dev->dev_ops->dev_close)(dev);
rte_cryptodev_trace_close(dev_id, retval);
- if (capability_copy[dev_id]) {
- free(capability_copy[dev_id]);
- capability_copy[dev_id] = NULL;
- }
- is_capability_checked[dev_id] = 0;
-
if (retval < 0)
return retval;
@@ -1233,61 +1178,9 @@ rte_cryptodev_stats_reset(uint8_t dev_id)
(*dev->dev_ops->stats_reset)(dev);
}
-static void
-get_v20_capabilities(uint8_t dev_id, struct rte_cryptodev_info *dev_info)
-{
- const struct rte_cryptodev_capabilities *capability;
- uint8_t found_invalid_capa = 0;
- uint8_t counter = 0;
-
- for (capability = dev_info->capabilities;
- capability->op != RTE_CRYPTO_OP_TYPE_UNDEFINED;
- ++capability, ++counter) {
- if (capability->op == RTE_CRYPTO_OP_TYPE_SYMMETRIC &&
- capability->sym.xform_type ==
- RTE_CRYPTO_SYM_XFORM_AEAD
- && capability->sym.aead.algo >=
- RTE_CRYPTO_AEAD_CHACHA20_POLY1305) {
- found_invalid_capa = 1;
- counter--;
- }
- }
- is_capability_checked[dev_id] = 1;
- if (!found_invalid_capa)
- return;
- capability_copy[dev_id] = malloc(counter *
- sizeof(struct rte_cryptodev_capabilities));
- if (capability_copy[dev_id] == NULL) {
- /*
- * error case - no memory to store the trimmed
- * list, so have to return an empty list
- */
- dev_info->capabilities =
- cryptodev_undefined_capabilities;
- is_capability_checked[dev_id] = 0;
- } else {
- counter = 0;
- for (capability = dev_info->capabilities;
- capability->op !=
- RTE_CRYPTO_OP_TYPE_UNDEFINED;
- capability++) {
- if (!(capability->op ==
- RTE_CRYPTO_OP_TYPE_SYMMETRIC
- && capability->sym.xform_type ==
- RTE_CRYPTO_SYM_XFORM_AEAD
- && capability->sym.aead.algo >=
- RTE_CRYPTO_AEAD_CHACHA20_POLY1305)) {
- capability_copy[dev_id][counter++] =
- *capability;
- }
- }
- dev_info->capabilities =
- capability_copy[dev_id];
- }
-}
-void __vsym
-rte_cryptodev_info_get_v20(uint8_t dev_id, struct rte_cryptodev_info *dev_info)
+void
+rte_cryptodev_info_get(uint8_t dev_id, struct rte_cryptodev_info *dev_info)
{
struct rte_cryptodev *dev;
@@ -1303,40 +1196,10 @@ rte_cryptodev_info_get_v20(uint8_t dev_id, struct rte_cryptodev_info *dev_info)
RTE_FUNC_PTR_OR_RET(*dev->dev_ops->dev_infos_get);
(*dev->dev_ops->dev_infos_get)(dev, dev_info);
- if (capability_copy[dev_id] == NULL) {
- if (!is_capability_checked[dev_id])
- get_v20_capabilities(dev_id, dev_info);
- } else
- dev_info->capabilities = capability_copy[dev_id];
-
dev_info->driver_name = dev->device->driver->name;
dev_info->device = dev->device;
}
-VERSION_SYMBOL(rte_cryptodev_info_get, _v20, 20.0);
-void __vsym
-rte_cryptodev_info_get_v21(uint8_t dev_id, struct rte_cryptodev_info *dev_info)
-{
- struct rte_cryptodev *dev;
-
- if (!rte_cryptodev_pmd_is_valid_dev(dev_id)) {
- CDEV_LOG_ERR("Invalid dev_id=%d", dev_id);
- return;
- }
-
- dev = &rte_crypto_devices[dev_id];
-
- memset(dev_info, 0, sizeof(struct rte_cryptodev_info));
-
- RTE_FUNC_PTR_OR_RET(*dev->dev_ops->dev_infos_get);
- (*dev->dev_ops->dev_infos_get)(dev, dev_info);
-
- dev_info->driver_name = dev->device->driver->name;
- dev_info->device = dev->device;
-}
-MAP_STATIC_SYMBOL(void rte_cryptodev_info_get(uint8_t dev_id,
- struct rte_cryptodev_info *dev_info), rte_cryptodev_info_get_v21);
-BIND_DEFAULT_SYMBOL(rte_cryptodev_info_get, _v21, 21);
int
rte_cryptodev_callback_register(uint8_t dev_id,
diff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h
index 7b3ebc20f..26abd0c52 100644
--- a/lib/librte_cryptodev/rte_cryptodev.h
+++ b/lib/librte_cryptodev/rte_cryptodev.h
@@ -219,14 +219,6 @@ struct rte_cryptodev_asym_capability_idx {
* - Return NULL if the capability not exist.
*/
const struct rte_cryptodev_symmetric_capability *
-rte_cryptodev_sym_capability_get_v20(uint8_t dev_id,
- const struct rte_cryptodev_sym_capability_idx *idx);
-
-const struct rte_cryptodev_symmetric_capability *
-rte_cryptodev_sym_capability_get_v21(uint8_t dev_id,
- const struct rte_cryptodev_sym_capability_idx *idx);
-
-const struct rte_cryptodev_symmetric_capability *
rte_cryptodev_sym_capability_get(uint8_t dev_id,
const struct rte_cryptodev_sym_capability_idx *idx);
@@ -789,33 +781,9 @@ rte_cryptodev_stats_reset(uint8_t dev_id);
* the last valid element has it's op field set to
* RTE_CRYPTO_OP_TYPE_UNDEFINED.
*/
-
-void
+extern void
rte_cryptodev_info_get(uint8_t dev_id, struct rte_cryptodev_info *dev_info);
-/* An extra element RTE_CRYPTO_AEAD_CHACHA20_POLY1305 is added
- * to enum rte_crypto_aead_algorithm, also changing the value of
- * RTE_CRYPTO_AEAD_LIST_END. To maintain ABI compatibility with applications
- * which linked against earlier versions, preventing them, for example, from
- * picking up the new value and using it to index into an array sized too small
- * for it, it is necessary to have two versions of rte_cryptodev_info_get()
- * The latest version just returns directly the capabilities retrieved from
- * the device. The compatible version inspects the capabilities retrieved
- * from the device, but only returns them directly if the new value
- * is not included. If the new value is included, it allocates space
- * for a copy of the device capabilities, trims the new value from this
- * and returns this copy. It only needs to do this once per device.
- * For the corner case of a corner case when the alloc may fail,
- * an empty capability list is returned, as there is no mechanism to return
- * an error and adding such a mechanism would itself be an ABI breakage.
- * The compatible version can be removed after the next major ABI release.
- */
-
-void
-rte_cryptodev_info_get_v20(uint8_t dev_id, struct rte_cryptodev_info *dev_info);
-
-void
-rte_cryptodev_info_get_v21(uint8_t dev_id, struct rte_cryptodev_info *dev_info);
/**
* Register a callback function for specific device id.
diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map
index 02f6dcf72..7727286ac 100644
--- a/lib/librte_cryptodev/rte_cryptodev_version.map
+++ b/lib/librte_cryptodev/rte_cryptodev_version.map
@@ -58,12 +58,6 @@ DPDK_21 {
local: *;
};
-DPDK_20.0 {
- global:
- rte_cryptodev_info_get;
- rte_cryptodev_sym_capability_get;
-};
-
EXPERIMENTAL {
global:
--
2.25.1
^ permalink raw reply [relevance 14%]
* Re: [dpdk-dev] [RFC v2 1/5] eal: add power management intrinsics
@ 2020-08-13 18:04 3% ` Liang, Ma
0 siblings, 0 replies; 200+ results
From: Liang, Ma @ 2020-08-13 18:04 UTC (permalink / raw)
To: dev; +Cc: anatoly.burakov
On 11 Aug 11:27, Liang Ma wrote:
> Add two new power management intrinsics, and provide an implementation
> in eal/x86 based on UMONITOR/UMWAIT instructions. The instructions
> are implemented as raw byte opcodes because there is not yet widespread
> compiler support for these instructions.
>
> The power management instructions provide an architecture-specific
> function to either wait until a specified TSC timestamp is reached, or
> optionally wait until either a TSC timestamp is reached or a memory
> location is written to. The monitor function also provides an optional
> comparison, to avoid sleeping when the expected write has already
> happened, and no more writes are expected.
>
> Signed-off-by: Liang Ma <liang.j.ma@intel.com>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
<snip>
> diff --git a/lib/librte_eal/x86/include/rte_cpuflags.h b/lib/librte_eal/x86/include/rte_cpuflags.h
> index c1d20364d..94d6a4376 100644
> --- a/lib/librte_eal/x86/include/rte_cpuflags.h
> +++ b/lib/librte_eal/x86/include/rte_cpuflags.h
> @@ -110,6 +110,7 @@ enum rte_cpu_flag_t {
> RTE_CPUFLAG_RDTSCP, /**< RDTSCP */
> RTE_CPUFLAG_EM64T, /**< EM64T */
>
> + RTE_CPUFLAG_WAITPKG, /**< UMINITOR/UMWAIT/TPAUSE */
need re-work the order to avoid breaking ABI
> /* (EAX 80000007h) EDX features */
> RTE_CPUFLAG_INVTSC, /**< INVTSC */
>
</snip>
> --
> 2.17.1
>
^ permalink raw reply [relevance 3%]
* [dpdk-dev] [PATCH v2 0/8] Add Crypto PMD for Broadcom`s FlexSparc devices
2020-08-12 6:31 3% ` [dpdk-dev] [PATCH v1 " Vikas Gupta
@ 2020-08-13 17:23 3% ` Vikas Gupta
0 siblings, 0 replies; 200+ results
From: Vikas Gupta @ 2020-08-13 17:23 UTC (permalink / raw)
To: dev, akhil.goyal; +Cc: vikram.prakash, Vikas Gupta
Hi,
This patchset contains support for Crypto offload on Broadcom’s
Stingray/Stingray2 SoCs having FlexSparc unit.
BCMFS is an acronym for Broadcom FlexSparc device used in the patchest.
The patchset progressively adds major modules as below.
a) Detection of platform-device based on the known registered platforms and attaching with VFIO.
b) Creation of Cryptodevice.
c) Addition of session handling.
d) Add Cryptodevice into test Cryptodev framework.
The patchset has been tested on the above mentioned SoCs.
Regards,
Vikas
Changes from v0->v1:
Updated the ABI version in file .../crypto/bcmfs/rte_pmd_bcmfs_version.map
Changes from v1->v2:
- Fix compilation errors and coding style warnings.
- Use global test crypto suite suggested by Adam Dybkowski
Vikas Gupta (8):
crypto/bcmfs: add BCMFS driver
crypto/bcmfs: add vfio support
crypto/bcmfs: add apis for queue pair management
crypto/bcmfs: add hw queue pair operations
crypto/bcmfs: create a symmetric cryptodev
crypto/bcmfs: add session handling and capabilities
crypto/bcmfs: add crypto h/w module
crypto/bcmfs: add crypto pmd into cryptodev test
MAINTAINERS | 7 +
app/test/test_cryptodev.c | 17 +
app/test/test_cryptodev.h | 1 +
config/common_base | 5 +
doc/guides/cryptodevs/bcmfs.rst | 72 ++
doc/guides/cryptodevs/features/bcmfs.ini | 56 +
doc/guides/cryptodevs/index.rst | 1 +
drivers/crypto/bcmfs/bcmfs_dev_msg.h | 29 +
drivers/crypto/bcmfs/bcmfs_device.c | 331 ++++++
drivers/crypto/bcmfs/bcmfs_device.h | 76 ++
drivers/crypto/bcmfs/bcmfs_hw_defs.h | 38 +
drivers/crypto/bcmfs/bcmfs_logs.c | 38 +
drivers/crypto/bcmfs/bcmfs_logs.h | 34 +
drivers/crypto/bcmfs/bcmfs_qp.c | 383 +++++++
drivers/crypto/bcmfs/bcmfs_qp.h | 142 +++
drivers/crypto/bcmfs/bcmfs_sym.c | 316 ++++++
drivers/crypto/bcmfs/bcmfs_sym_capabilities.c | 764 ++++++++++++++
drivers/crypto/bcmfs/bcmfs_sym_capabilities.h | 16 +
drivers/crypto/bcmfs/bcmfs_sym_defs.h | 186 ++++
drivers/crypto/bcmfs/bcmfs_sym_engine.c | 994 ++++++++++++++++++
drivers/crypto/bcmfs/bcmfs_sym_engine.h | 103 ++
drivers/crypto/bcmfs/bcmfs_sym_pmd.c | 426 ++++++++
drivers/crypto/bcmfs/bcmfs_sym_pmd.h | 38 +
drivers/crypto/bcmfs/bcmfs_sym_req.h | 62 ++
drivers/crypto/bcmfs/bcmfs_sym_session.c | 424 ++++++++
drivers/crypto/bcmfs/bcmfs_sym_session.h | 99 ++
drivers/crypto/bcmfs/bcmfs_vfio.c | 107 ++
drivers/crypto/bcmfs/bcmfs_vfio.h | 17 +
drivers/crypto/bcmfs/hw/bcmfs4_rm.c | 742 +++++++++++++
drivers/crypto/bcmfs/hw/bcmfs5_rm.c | 677 ++++++++++++
drivers/crypto/bcmfs/hw/bcmfs_rm_common.c | 82 ++
drivers/crypto/bcmfs/hw/bcmfs_rm_common.h | 46 +
drivers/crypto/bcmfs/meson.build | 20 +
.../crypto/bcmfs/rte_pmd_bcmfs_version.map | 3 +
drivers/crypto/meson.build | 3 +-
mk/rte.app.mk | 1 +
36 files changed, 6355 insertions(+), 1 deletion(-)
create mode 100644 doc/guides/cryptodevs/bcmfs.rst
create mode 100644 doc/guides/cryptodevs/features/bcmfs.ini
create mode 100644 drivers/crypto/bcmfs/bcmfs_dev_msg.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_device.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_device.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_hw_defs.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_logs.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_logs.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_qp.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_qp.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_capabilities.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_capabilities.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_defs.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_engine.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_engine.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_pmd.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_pmd.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_req.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_session.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_session.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_vfio.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_vfio.h
create mode 100644 drivers/crypto/bcmfs/hw/bcmfs4_rm.c
create mode 100644 drivers/crypto/bcmfs/hw/bcmfs5_rm.c
create mode 100644 drivers/crypto/bcmfs/hw/bcmfs_rm_common.c
create mode 100644 drivers/crypto/bcmfs/hw/bcmfs_rm_common.h
create mode 100644 drivers/crypto/bcmfs/meson.build
create mode 100644 drivers/crypto/bcmfs/rte_pmd_bcmfs_version.map
--
2.17.1
^ permalink raw reply [relevance 3%]
* [dpdk-dev] [PATCH v2 7/7] doc: remove rawdev deprecation notice
2020-08-13 11:27 4% ` [dpdk-dev] [PATCH v2 0/7] Enhance rawdev APIs Bruce Richardson
` (2 preceding siblings ...)
2020-08-13 11:28 3% ` [dpdk-dev] [PATCH v2 4/7] rawdev: add private data length parameter to queue fns Bruce Richardson
@ 2020-08-13 11:28 4% ` Bruce Richardson
3 siblings, 0 replies; 200+ results
From: Bruce Richardson @ 2020-08-13 11:28 UTC (permalink / raw)
To: Nipun Gupta, Hemant Agrawal
Cc: dev, Bruce Richardson, Ray Kinsella, Neil Horman, John McNamara,
Marko Kovacevic
Since all changes covered by the deprecation notice have been applied, the
notice can be removed.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 7 -------
1 file changed, 7 deletions(-)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 345c38d5b6..c0b3b7a605 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -301,13 +301,6 @@ Deprecation Notices
- https://patches.dpdk.org/patch/71457/
- https://patches.dpdk.org/patch/71456/
-* rawdev: The rawdev APIs which take a device-specific structure as
- parameter directly, or indirectly via a "private" pointer inside another
- structure, will be modified to take an additional parameter of the
- structure size. The affected APIs will include ``rte_rawdev_info_get``,
- ``rte_rawdev_configure``, ``rte_rawdev_queue_conf_get`` and
- ``rte_rawdev_queue_setup``.
-
* acl: ``RTE_ACL_CLASSIFY_NUM`` enum value will be removed.
This enum value is not used inside DPDK, while it prevents to add new
classify algorithms without causing an ABI breakage.
--
2.25.1
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH v2 4/7] rawdev: add private data length parameter to queue fns
2020-08-13 11:27 4% ` [dpdk-dev] [PATCH v2 0/7] Enhance rawdev APIs Bruce Richardson
2020-08-13 11:27 3% ` [dpdk-dev] [PATCH v2 1/7] rawdev: add private data length parameter to info fn Bruce Richardson
2020-08-13 11:28 3% ` [dpdk-dev] [PATCH v2 3/7] rawdev: add private data length parameter to config fn Bruce Richardson
@ 2020-08-13 11:28 3% ` Bruce Richardson
2020-08-13 11:28 4% ` [dpdk-dev] [PATCH v2 7/7] doc: remove rawdev deprecation notice Bruce Richardson
3 siblings, 0 replies; 200+ results
From: Bruce Richardson @ 2020-08-13 11:28 UTC (permalink / raw)
To: Nipun Gupta, Hemant Agrawal
Cc: dev, Bruce Richardson, Xiaoyun Li, Jingjing Wu
The queue setup and queue defaults query functions take a void * parameter
as configuration data, preventing any compile-time checking of the
parameters and limiting runtime checks. Adding in the length of the
expected structure provides a measure of typechecking, and can also be used
for ABI compatibility in future, since ABI changes involving structs almost
always involve a change in size.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
drivers/raw/ntb/ntb.c | 25 ++++++++++++++++-----
drivers/raw/skeleton/skeleton_rawdev.c | 12 ++++++----
drivers/raw/skeleton/skeleton_rawdev_test.c | 8 +++----
examples/ntb/ntb_fwd.c | 3 ++-
lib/librte_rawdev/rte_rawdev.c | 12 ++++++----
lib/librte_rawdev/rte_rawdev.h | 10 +++++++--
lib/librte_rawdev/rte_rawdev_pmd.h | 6 +++--
7 files changed, 53 insertions(+), 23 deletions(-)
diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
index 7f6b835a4b..ad10857991 100644
--- a/drivers/raw/ntb/ntb.c
+++ b/drivers/raw/ntb/ntb.c
@@ -249,11 +249,15 @@ ntb_dev_intr_handler(void *param)
static void
ntb_queue_conf_get(struct rte_rawdev *dev,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf)
+ rte_rawdev_obj_t queue_conf,
+ size_t conf_size)
{
struct ntb_queue_conf *q_conf = queue_conf;
struct ntb_hw *hw = dev->dev_private;
+ if (conf_size != sizeof(*q_conf))
+ return;
+
q_conf->tx_free_thresh = hw->tx_queues[queue_id]->tx_free_thresh;
q_conf->nb_desc = hw->rx_queues[queue_id]->nb_rx_desc;
q_conf->rx_mp = hw->rx_queues[queue_id]->mpool;
@@ -294,12 +298,16 @@ ntb_rxq_release(struct ntb_rx_queue *rxq)
static int
ntb_rxq_setup(struct rte_rawdev *dev,
uint16_t qp_id,
- rte_rawdev_obj_t queue_conf)
+ rte_rawdev_obj_t queue_conf,
+ size_t conf_size)
{
struct ntb_queue_conf *rxq_conf = queue_conf;
struct ntb_hw *hw = dev->dev_private;
struct ntb_rx_queue *rxq;
+ if (conf_size != sizeof(*rxq_conf))
+ return -EINVAL;
+
/* Allocate the rx queue data structure */
rxq = rte_zmalloc_socket("ntb rx queue",
sizeof(struct ntb_rx_queue),
@@ -375,13 +383,17 @@ ntb_txq_release(struct ntb_tx_queue *txq)
static int
ntb_txq_setup(struct rte_rawdev *dev,
uint16_t qp_id,
- rte_rawdev_obj_t queue_conf)
+ rte_rawdev_obj_t queue_conf,
+ size_t conf_size)
{
struct ntb_queue_conf *txq_conf = queue_conf;
struct ntb_hw *hw = dev->dev_private;
struct ntb_tx_queue *txq;
uint16_t i, prev;
+ if (conf_size != sizeof(*txq_conf))
+ return -EINVAL;
+
/* Allocate the TX queue data structure. */
txq = rte_zmalloc_socket("ntb tx queue",
sizeof(struct ntb_tx_queue),
@@ -439,7 +451,8 @@ ntb_txq_setup(struct rte_rawdev *dev,
static int
ntb_queue_setup(struct rte_rawdev *dev,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf)
+ rte_rawdev_obj_t queue_conf,
+ size_t conf_size)
{
struct ntb_hw *hw = dev->dev_private;
int ret;
@@ -447,11 +460,11 @@ ntb_queue_setup(struct rte_rawdev *dev,
if (queue_id >= hw->queue_pairs)
return -EINVAL;
- ret = ntb_txq_setup(dev, queue_id, queue_conf);
+ ret = ntb_txq_setup(dev, queue_id, queue_conf, conf_size);
if (ret < 0)
return ret;
- ret = ntb_rxq_setup(dev, queue_id, queue_conf);
+ ret = ntb_rxq_setup(dev, queue_id, queue_conf, conf_size);
return ret;
}
diff --git a/drivers/raw/skeleton/skeleton_rawdev.c b/drivers/raw/skeleton/skeleton_rawdev.c
index 531d0450c8..801c707fb9 100644
--- a/drivers/raw/skeleton/skeleton_rawdev.c
+++ b/drivers/raw/skeleton/skeleton_rawdev.c
@@ -222,14 +222,16 @@ static int skeleton_rawdev_reset(struct rte_rawdev *dev)
static void skeleton_rawdev_queue_def_conf(struct rte_rawdev *dev,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf)
+ rte_rawdev_obj_t queue_conf,
+ size_t conf_size)
{
struct skeleton_rawdev *skeldev;
struct skeleton_rawdev_queue *skelq;
SKELETON_PMD_FUNC_TRACE();
- if (!dev || !queue_conf)
+ if (!dev || !queue_conf ||
+ conf_size != sizeof(struct skeleton_rawdev_queue))
return;
skeldev = skeleton_rawdev_get_priv(dev);
@@ -252,7 +254,8 @@ clear_queue_bufs(int queue_id)
static int skeleton_rawdev_queue_setup(struct rte_rawdev *dev,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf)
+ rte_rawdev_obj_t queue_conf,
+ size_t conf_size)
{
int ret = 0;
struct skeleton_rawdev *skeldev;
@@ -260,7 +263,8 @@ static int skeleton_rawdev_queue_setup(struct rte_rawdev *dev,
SKELETON_PMD_FUNC_TRACE();
- if (!dev || !queue_conf)
+ if (!dev || !queue_conf ||
+ conf_size != sizeof(struct skeleton_rawdev_queue))
return -EINVAL;
skeldev = skeleton_rawdev_get_priv(dev);
diff --git a/drivers/raw/skeleton/skeleton_rawdev_test.c b/drivers/raw/skeleton/skeleton_rawdev_test.c
index 7dc7c76847..bb4b6efe40 100644
--- a/drivers/raw/skeleton/skeleton_rawdev_test.c
+++ b/drivers/raw/skeleton/skeleton_rawdev_test.c
@@ -185,7 +185,7 @@ test_rawdev_queue_default_conf_get(void)
* depth = DEF_DEPTH
*/
for (i = 0; i < rdev_conf_get.num_queues; i++) {
- rte_rawdev_queue_conf_get(test_dev_id, i, &q);
+ rte_rawdev_queue_conf_get(test_dev_id, i, &q, sizeof(q));
RTE_TEST_ASSERT_EQUAL(q.depth, SKELETON_QUEUE_DEF_DEPTH,
"Invalid default depth of queue (%d)",
q.depth);
@@ -235,11 +235,11 @@ test_rawdev_queue_setup(void)
/* Modify the queue depth for Queue 0 and attach it */
qset.depth = 15;
qset.state = SKELETON_QUEUE_ATTACH;
- ret = rte_rawdev_queue_setup(test_dev_id, 0, &qset);
+ ret = rte_rawdev_queue_setup(test_dev_id, 0, &qset, sizeof(qset));
RTE_TEST_ASSERT_SUCCESS(ret, "Failed to setup queue (%d)", ret);
/* Now, fetching the queue 0 should show depth as 15 */
- ret = rte_rawdev_queue_conf_get(test_dev_id, 0, &qget);
+ ret = rte_rawdev_queue_conf_get(test_dev_id, 0, &qget, sizeof(qget));
RTE_TEST_ASSERT_SUCCESS(ret, "Failed to get queue config (%d)", ret);
RTE_TEST_ASSERT_EQUAL(qset.depth, qget.depth,
@@ -263,7 +263,7 @@ test_rawdev_queue_release(void)
RTE_TEST_ASSERT_SUCCESS(ret, "Failed to release queue 0; (%d)", ret);
/* Now, fetching the queue 0 should show depth as default */
- ret = rte_rawdev_queue_conf_get(test_dev_id, 0, &qget);
+ ret = rte_rawdev_queue_conf_get(test_dev_id, 0, &qget, sizeof(qget));
RTE_TEST_ASSERT_SUCCESS(ret, "Failed to get queue config (%d)", ret);
RTE_TEST_ASSERT_EQUAL(qget.depth, SKELETON_QUEUE_DEF_DEPTH,
diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c
index 656f736594..5a8439b8d3 100644
--- a/examples/ntb/ntb_fwd.c
+++ b/examples/ntb/ntb_fwd.c
@@ -1411,7 +1411,8 @@ main(int argc, char **argv)
ntb_q_conf.rx_mp = mbuf_pool;
for (i = 0; i < num_queues; i++) {
/* Setup rawdev queue */
- ret = rte_rawdev_queue_setup(dev_id, i, &ntb_q_conf);
+ ret = rte_rawdev_queue_setup(dev_id, i, &ntb_q_conf,
+ sizeof(ntb_q_conf));
if (ret < 0)
rte_exit(EXIT_FAILURE,
"Failed to setup ntb queue %u.\n", i);
diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c
index 6c4d783cc5..f48d8cf10b 100644
--- a/lib/librte_rawdev/rte_rawdev.c
+++ b/lib/librte_rawdev/rte_rawdev.c
@@ -137,7 +137,8 @@ rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf,
int
rte_rawdev_queue_conf_get(uint16_t dev_id,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf)
+ rte_rawdev_obj_t queue_conf,
+ size_t queue_conf_size)
{
struct rte_rawdev *dev;
@@ -145,14 +146,16 @@ rte_rawdev_queue_conf_get(uint16_t dev_id,
dev = &rte_rawdevs[dev_id];
RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->queue_def_conf, -ENOTSUP);
- (*dev->dev_ops->queue_def_conf)(dev, queue_id, queue_conf);
+ (*dev->dev_ops->queue_def_conf)(dev, queue_id, queue_conf,
+ queue_conf_size);
return 0;
}
int
rte_rawdev_queue_setup(uint16_t dev_id,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf)
+ rte_rawdev_obj_t queue_conf,
+ size_t queue_conf_size)
{
struct rte_rawdev *dev;
@@ -160,7 +163,8 @@ rte_rawdev_queue_setup(uint16_t dev_id,
dev = &rte_rawdevs[dev_id];
RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->queue_setup, -ENOTSUP);
- return (*dev->dev_ops->queue_setup)(dev, queue_id, queue_conf);
+ return (*dev->dev_ops->queue_setup)(dev, queue_id, queue_conf,
+ queue_conf_size);
}
int
diff --git a/lib/librte_rawdev/rte_rawdev.h b/lib/librte_rawdev/rte_rawdev.h
index 73e3bd5aea..bbd63913a0 100644
--- a/lib/librte_rawdev/rte_rawdev.h
+++ b/lib/librte_rawdev/rte_rawdev.h
@@ -146,6 +146,8 @@ rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf,
* previously supplied to rte_rawdev_configure().
* @param[out] queue_conf
* The pointer to the default raw queue configuration data.
+ * @param queue_conf_size
+ * The size of the structure pointed to by queue_conf
* @return
* - 0: Success, driver updates the default raw queue configuration data.
* - <0: Error code returned by the driver info get function.
@@ -156,7 +158,8 @@ rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf,
int
rte_rawdev_queue_conf_get(uint16_t dev_id,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf);
+ rte_rawdev_obj_t queue_conf,
+ size_t queue_conf_size);
/**
* Allocate and set up a raw queue for a raw device.
@@ -169,6 +172,8 @@ rte_rawdev_queue_conf_get(uint16_t dev_id,
* @param queue_conf
* The pointer to the configuration data to be used for the raw queue.
* NULL value is allowed, in which case default configuration used.
+ * @param queue_conf_size
+ * The size of the structure pointed to by queue_conf
*
* @see rte_rawdev_queue_conf_get()
*
@@ -179,7 +184,8 @@ rte_rawdev_queue_conf_get(uint16_t dev_id,
int
rte_rawdev_queue_setup(uint16_t dev_id,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf);
+ rte_rawdev_obj_t queue_conf,
+ size_t queue_conf_size);
/**
* Release and deallocate a raw queue from a raw device.
diff --git a/lib/librte_rawdev/rte_rawdev_pmd.h b/lib/librte_rawdev/rte_rawdev_pmd.h
index 050f8b0292..34eb667f62 100644
--- a/lib/librte_rawdev/rte_rawdev_pmd.h
+++ b/lib/librte_rawdev/rte_rawdev_pmd.h
@@ -218,7 +218,8 @@ typedef int (*rawdev_reset_t)(struct rte_rawdev *dev);
*/
typedef void (*rawdev_queue_conf_get_t)(struct rte_rawdev *dev,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf);
+ rte_rawdev_obj_t queue_conf,
+ size_t queue_conf_size);
/**
* Setup an raw queue.
@@ -235,7 +236,8 @@ typedef void (*rawdev_queue_conf_get_t)(struct rte_rawdev *dev,
*/
typedef int (*rawdev_queue_setup_t)(struct rte_rawdev *dev,
uint16_t queue_id,
- rte_rawdev_obj_t queue_conf);
+ rte_rawdev_obj_t queue_conf,
+ size_t queue_conf_size);
/**
* Release resources allocated by given raw queue.
--
2.25.1
^ permalink raw reply [relevance 3%]
* [dpdk-dev] [PATCH v2 3/7] rawdev: add private data length parameter to config fn
2020-08-13 11:27 4% ` [dpdk-dev] [PATCH v2 0/7] Enhance rawdev APIs Bruce Richardson
2020-08-13 11:27 3% ` [dpdk-dev] [PATCH v2 1/7] rawdev: add private data length parameter to info fn Bruce Richardson
@ 2020-08-13 11:28 3% ` Bruce Richardson
2020-08-13 11:28 3% ` [dpdk-dev] [PATCH v2 4/7] rawdev: add private data length parameter to queue fns Bruce Richardson
2020-08-13 11:28 4% ` [dpdk-dev] [PATCH v2 7/7] doc: remove rawdev deprecation notice Bruce Richardson
3 siblings, 0 replies; 200+ results
From: Bruce Richardson @ 2020-08-13 11:28 UTC (permalink / raw)
To: Nipun Gupta, Hemant Agrawal
Cc: dev, Bruce Richardson, Rosen Xu, John McNamara, Marko Kovacevic,
Satha Rao, Mahipal Challa, Tianfei zhang, Xiaoyun Li,
Jingjing Wu
Currently with the rawdev API there is no way to check that the structure
passed in via the dev_private pointer in the structure passed to configure
API is of the correct type - it's just checked that it is non-NULL. Adding
in the length of the expected structure provides a measure of typechecking,
and can also be used for ABI compatibility in future, since ABI changes
involving structs almost always involve a change in size.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Rosen Xu <rosen.xu@intel.com>
---
doc/guides/rawdevs/ioat.rst | 2 +-
doc/guides/rawdevs/octeontx2_dma.rst | 2 +-
doc/guides/rawdevs/octeontx2_ep.rst | 3 ++-
doc/guides/sample_app_ug/ioat.rst | 2 +-
drivers/raw/ifpga/ifpga_rawdev.c | 3 ++-
drivers/raw/ioat/ioat_rawdev.c | 5 +++--
drivers/raw/ioat/ioat_rawdev_test.c | 2 +-
drivers/raw/ntb/ntb.c | 6 +++++-
drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c | 7 ++++---
drivers/raw/octeontx2_dma/otx2_dpi_test.c | 3 ++-
drivers/raw/octeontx2_ep/otx2_ep_rawdev.c | 7 ++++---
drivers/raw/octeontx2_ep/otx2_ep_test.c | 2 +-
drivers/raw/skeleton/skeleton_rawdev.c | 5 +++--
drivers/raw/skeleton/skeleton_rawdev_test.c | 5 +++--
examples/ioat/ioatfwd.c | 2 +-
examples/ntb/ntb_fwd.c | 2 +-
lib/librte_rawdev/rte_rawdev.c | 6 ++++--
lib/librte_rawdev/rte_rawdev.h | 8 +++++++-
lib/librte_rawdev/rte_rawdev_pmd.h | 3 ++-
19 files changed, 48 insertions(+), 27 deletions(-)
diff --git a/doc/guides/rawdevs/ioat.rst b/doc/guides/rawdevs/ioat.rst
index dac52fabf1..c46460ff45 100644
--- a/doc/guides/rawdevs/ioat.rst
+++ b/doc/guides/rawdevs/ioat.rst
@@ -142,7 +142,7 @@ The following code shows how the device is configured in
/* ... */
p.ring_size = IOAT_TEST_RINGSIZE;
- if (rte_rawdev_configure(dev_id, &info) != 0) {
+ if (rte_rawdev_configure(dev_id, &info, sizeof(p)) != 0) {
printf("Error with rte_rawdev_configure()\n");
return -1;
}
diff --git a/doc/guides/rawdevs/octeontx2_dma.rst b/doc/guides/rawdevs/octeontx2_dma.rst
index 1e1dfbe931..4a9794489e 100644
--- a/doc/guides/rawdevs/octeontx2_dma.rst
+++ b/doc/guides/rawdevs/octeontx2_dma.rst
@@ -92,7 +92,7 @@ The following code shows how the device is configured
rte_mempool_set_ops_byname(conf.chunk_pool, rte_mbuf_platform_mempool_ops(), NULL);
rte_mempool_populate_default(conf.chunk_pool);
- rte_rawdev_configure(dev_id, (rte_rawdev_obj_t)&rdev_info);
+ rte_rawdev_configure(dev_id, (rte_rawdev_obj_t)&rdev_info, sizeof(conf));
Performing Data Transfer
------------------------
diff --git a/doc/guides/rawdevs/octeontx2_ep.rst b/doc/guides/rawdevs/octeontx2_ep.rst
index bbcf530a45..b03fcf789a 100644
--- a/doc/guides/rawdevs/octeontx2_ep.rst
+++ b/doc/guides/rawdevs/octeontx2_ep.rst
@@ -66,7 +66,8 @@ The following code shows how the device is configured
struct rte_rawdev_info rdev_info = {.dev_private = &config};
config.enqdeq_mpool = (void *)rte_mempool_create(...);
- rte_rawdev_configure(dev_id, (rte_rawdev_obj_t)&rdev_info);
+ rte_rawdev_configure(dev_id, (rte_rawdev_obj_t)&rdev_info,
+ sizeof(config));
Performing Data Transfer
------------------------
diff --git a/doc/guides/sample_app_ug/ioat.rst b/doc/guides/sample_app_ug/ioat.rst
index b5188220ba..3f7d5c34a6 100644
--- a/doc/guides/sample_app_ug/ioat.rst
+++ b/doc/guides/sample_app_ug/ioat.rst
@@ -296,7 +296,7 @@ is done in ``configure_rawdev_queue()``.
struct rte_ioat_rawdev_config dev_config = { .ring_size = ring_size };
struct rte_rawdev_info info = { .dev_private = &dev_config };
- if (rte_rawdev_configure(dev_id, &info) != 0) {
+ if (rte_rawdev_configure(dev_id, &info, sizeof(dev_config)) != 0) {
rte_exit(EXIT_FAILURE,
"Error with rte_rawdev_configure()\n");
}
diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c
index 32a2b96c90..a50173264c 100644
--- a/drivers/raw/ifpga/ifpga_rawdev.c
+++ b/drivers/raw/ifpga/ifpga_rawdev.c
@@ -684,7 +684,8 @@ ifpga_rawdev_info_get(struct rte_rawdev *dev,
static int
ifpga_rawdev_configure(const struct rte_rawdev *dev,
- rte_rawdev_obj_t config)
+ rte_rawdev_obj_t config,
+ size_t config_size __rte_unused)
{
IFPGA_RAWDEV_PMD_FUNC_TRACE();
diff --git a/drivers/raw/ioat/ioat_rawdev.c b/drivers/raw/ioat/ioat_rawdev.c
index e2fc787263..7f1a154360 100644
--- a/drivers/raw/ioat/ioat_rawdev.c
+++ b/drivers/raw/ioat/ioat_rawdev.c
@@ -39,7 +39,8 @@ RTE_LOG_REGISTER(ioat_pmd_logtype, rawdev.ioat, INFO);
#define COMPLETION_SZ sizeof(__m128i)
static int
-ioat_dev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config)
+ioat_dev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config,
+ size_t config_size)
{
struct rte_ioat_rawdev_config *params = config;
struct rte_ioat_rawdev *ioat = dev->dev_private;
@@ -49,7 +50,7 @@ ioat_dev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config)
if (dev->started)
return -EBUSY;
- if (params == NULL)
+ if (params == NULL || config_size != sizeof(*params))
return -EINVAL;
if (params->ring_size > 4096 || params->ring_size < 64 ||
diff --git a/drivers/raw/ioat/ioat_rawdev_test.c b/drivers/raw/ioat/ioat_rawdev_test.c
index 2b40222eb4..c463a82ad6 100644
--- a/drivers/raw/ioat/ioat_rawdev_test.c
+++ b/drivers/raw/ioat/ioat_rawdev_test.c
@@ -156,7 +156,7 @@ ioat_rawdev_test(uint16_t dev_id)
}
p.ring_size = IOAT_TEST_RINGSIZE;
- if (rte_rawdev_configure(dev_id, &info) != 0) {
+ if (rte_rawdev_configure(dev_id, &info, sizeof(p)) != 0) {
printf("Error with rte_rawdev_configure()\n");
return -1;
}
diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
index ced5b6d624..7f6b835a4b 100644
--- a/drivers/raw/ntb/ntb.c
+++ b/drivers/raw/ntb/ntb.c
@@ -837,13 +837,17 @@ ntb_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info,
}
static int
-ntb_dev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config)
+ntb_dev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config,
+ size_t config_size)
{
struct ntb_dev_config *conf = config;
struct ntb_hw *hw = dev->dev_private;
uint32_t xstats_num;
int ret;
+ if (conf == NULL || config_size != sizeof(*conf))
+ return -EINVAL;
+
hw->queue_pairs = conf->num_queues;
hw->queue_size = conf->queue_size;
hw->used_mw_num = conf->mz_num;
diff --git a/drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c b/drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c
index e398abb75b..5b496446ca 100644
--- a/drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c
+++ b/drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c
@@ -294,7 +294,8 @@ otx2_dpi_rawdev_reset(struct rte_rawdev *dev)
}
static int
-otx2_dpi_rawdev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config)
+otx2_dpi_rawdev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config,
+ size_t config_size)
{
struct dpi_rawdev_conf_s *conf = config;
struct dpi_vf_s *dpivf = NULL;
@@ -302,8 +303,8 @@ otx2_dpi_rawdev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config)
uintptr_t pool;
uint32_t gaura;
- if (conf == NULL) {
- otx2_dpi_dbg("NULL configuration");
+ if (conf == NULL || config_size != sizeof(*conf)) {
+ otx2_dpi_dbg("NULL or invalid configuration");
return -EINVAL;
}
dpivf = (struct dpi_vf_s *)dev->dev_private;
diff --git a/drivers/raw/octeontx2_dma/otx2_dpi_test.c b/drivers/raw/octeontx2_dma/otx2_dpi_test.c
index 276658af07..cec6ca91b0 100644
--- a/drivers/raw/octeontx2_dma/otx2_dpi_test.c
+++ b/drivers/raw/octeontx2_dma/otx2_dpi_test.c
@@ -182,7 +182,8 @@ test_otx2_dma_rawdev(uint16_t val)
/* Configure rawdev ports */
conf.chunk_pool = dpi_create_mempool();
rdev_info.dev_private = &conf;
- ret = rte_rawdev_configure(i, (rte_rawdev_obj_t)&rdev_info);
+ ret = rte_rawdev_configure(i, (rte_rawdev_obj_t)&rdev_info,
+ sizeof(conf));
if (ret) {
otx2_dpi_dbg("Unable to configure DPIVF %d", i);
return -ENODEV;
diff --git a/drivers/raw/octeontx2_ep/otx2_ep_rawdev.c b/drivers/raw/octeontx2_ep/otx2_ep_rawdev.c
index 0778603d5b..2b78a7941d 100644
--- a/drivers/raw/octeontx2_ep/otx2_ep_rawdev.c
+++ b/drivers/raw/octeontx2_ep/otx2_ep_rawdev.c
@@ -224,13 +224,14 @@ sdp_rawdev_close(struct rte_rawdev *dev)
}
static int
-sdp_rawdev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config)
+sdp_rawdev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config,
+ size_t config_size)
{
struct sdp_rawdev_info *app_info = (struct sdp_rawdev_info *)config;
struct sdp_device *sdpvf;
- if (app_info == NULL) {
- otx2_err("Application config info [NULL]");
+ if (app_info == NULL || config_size != sizeof(*app_info)) {
+ otx2_err("Application config info [NULL] or incorrect size");
return -EINVAL;
}
diff --git a/drivers/raw/octeontx2_ep/otx2_ep_test.c b/drivers/raw/octeontx2_ep/otx2_ep_test.c
index 091f1827c7..b876275f7a 100644
--- a/drivers/raw/octeontx2_ep/otx2_ep_test.c
+++ b/drivers/raw/octeontx2_ep/otx2_ep_test.c
@@ -108,7 +108,7 @@ sdp_rawdev_selftest(uint16_t dev_id)
dev_info.dev_private = &app_info;
- ret = rte_rawdev_configure(dev_id, &dev_info);
+ ret = rte_rawdev_configure(dev_id, &dev_info, sizeof(app_info));
if (ret) {
otx2_err("Unable to configure SDP_VF %d", dev_id);
rte_mempool_free(ioq_mpool);
diff --git a/drivers/raw/skeleton/skeleton_rawdev.c b/drivers/raw/skeleton/skeleton_rawdev.c
index dce300c358..531d0450c8 100644
--- a/drivers/raw/skeleton/skeleton_rawdev.c
+++ b/drivers/raw/skeleton/skeleton_rawdev.c
@@ -68,7 +68,8 @@ static int skeleton_rawdev_info_get(struct rte_rawdev *dev,
}
static int skeleton_rawdev_configure(const struct rte_rawdev *dev,
- rte_rawdev_obj_t config)
+ rte_rawdev_obj_t config,
+ size_t config_size)
{
struct skeleton_rawdev *skeldev;
struct skeleton_rawdev_conf *skeldev_conf;
@@ -77,7 +78,7 @@ static int skeleton_rawdev_configure(const struct rte_rawdev *dev,
RTE_FUNC_PTR_OR_ERR_RET(dev, -EINVAL);
- if (!config) {
+ if (config == NULL || config_size != sizeof(*skeldev_conf)) {
SKELETON_PMD_ERR("Invalid configuration");
return -EINVAL;
}
diff --git a/drivers/raw/skeleton/skeleton_rawdev_test.c b/drivers/raw/skeleton/skeleton_rawdev_test.c
index 9b8390dfb7..7dc7c76847 100644
--- a/drivers/raw/skeleton/skeleton_rawdev_test.c
+++ b/drivers/raw/skeleton/skeleton_rawdev_test.c
@@ -126,7 +126,7 @@ test_rawdev_configure(void)
struct skeleton_rawdev_conf rdev_conf_get = {0};
/* Check invalid configuration */
- ret = rte_rawdev_configure(test_dev_id, NULL);
+ ret = rte_rawdev_configure(test_dev_id, NULL, 0);
RTE_TEST_ASSERT(ret == -EINVAL,
"Null configure; Expected -EINVAL, got %d", ret);
@@ -137,7 +137,8 @@ test_rawdev_configure(void)
rdev_info.dev_private = &rdev_conf_set;
ret = rte_rawdev_configure(test_dev_id,
- (rte_rawdev_obj_t)&rdev_info);
+ (rte_rawdev_obj_t)&rdev_info,
+ sizeof(rdev_conf_set));
RTE_TEST_ASSERT_SUCCESS(ret, "Failed to configure rawdev (%d)", ret);
rdev_info.dev_private = &rdev_conf_get;
diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c
index 76932d3dd2..43a19843ee 100644
--- a/examples/ioat/ioatfwd.c
+++ b/examples/ioat/ioatfwd.c
@@ -734,7 +734,7 @@ configure_rawdev_queue(uint32_t dev_id)
struct rte_ioat_rawdev_config dev_config = { .ring_size = ring_size };
struct rte_rawdev_info info = { .dev_private = &dev_config };
- if (rte_rawdev_configure(dev_id, &info) != 0) {
+ if (rte_rawdev_configure(dev_id, &info, sizeof(dev_config)) != 0) {
rte_exit(EXIT_FAILURE,
"Error with rte_rawdev_configure()\n");
}
diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c
index 11e224451c..656f736594 100644
--- a/examples/ntb/ntb_fwd.c
+++ b/examples/ntb/ntb_fwd.c
@@ -1401,7 +1401,7 @@ main(int argc, char **argv)
ntb_conf.num_queues = num_queues;
ntb_conf.queue_size = nb_desc;
ntb_rawdev_conf.dev_private = (rte_rawdev_obj_t)(&ntb_conf);
- ret = rte_rawdev_configure(dev_id, &ntb_rawdev_conf);
+ ret = rte_rawdev_configure(dev_id, &ntb_rawdev_conf, sizeof(ntb_conf));
if (ret)
rte_exit(EXIT_FAILURE, "Can't config ntb dev: err=%d, "
"port=%u\n", ret, dev_id);
diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c
index bde33763ee..6c4d783cc5 100644
--- a/lib/librte_rawdev/rte_rawdev.c
+++ b/lib/librte_rawdev/rte_rawdev.c
@@ -104,7 +104,8 @@ rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info,
}
int
-rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf)
+rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf,
+ size_t dev_private_size)
{
struct rte_rawdev *dev;
int diag;
@@ -123,7 +124,8 @@ rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf)
}
/* Configure the device */
- diag = (*dev->dev_ops->dev_configure)(dev, dev_conf->dev_private);
+ diag = (*dev->dev_ops->dev_configure)(dev, dev_conf->dev_private,
+ dev_private_size);
if (diag != 0)
RTE_RDEV_ERR("dev%d dev_configure = %d", dev_id, diag);
else
diff --git a/lib/librte_rawdev/rte_rawdev.h b/lib/librte_rawdev/rte_rawdev.h
index cf6acfd261..73e3bd5aea 100644
--- a/lib/librte_rawdev/rte_rawdev.h
+++ b/lib/librte_rawdev/rte_rawdev.h
@@ -116,13 +116,19 @@ rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info,
* driver/implementation can use to configure the device. It is also assumed
* that once the configuration is done, a `queue_id` type field can be used
* to refer to some arbitrary internal representation of a queue.
+ * @dev_private_size
+ * The length of the memory space pointed to by dev_private in dev_info.
+ * This should be set to the size of the expected private structure to be
+ * used by the driver, and may be checked by drivers to ensure the expected
+ * struct type is provided.
*
* @return
* - 0: Success, device configured.
* - <0: Error code returned by the driver configuration function.
*/
int
-rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf);
+rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf,
+ size_t dev_private_size);
/**
diff --git a/lib/librte_rawdev/rte_rawdev_pmd.h b/lib/librte_rawdev/rte_rawdev_pmd.h
index 89e46412a3..050f8b0292 100644
--- a/lib/librte_rawdev/rte_rawdev_pmd.h
+++ b/lib/librte_rawdev/rte_rawdev_pmd.h
@@ -160,7 +160,8 @@ typedef int (*rawdev_info_get_t)(struct rte_rawdev *dev,
* Returns 0 on success
*/
typedef int (*rawdev_configure_t)(const struct rte_rawdev *dev,
- rte_rawdev_obj_t config);
+ rte_rawdev_obj_t config,
+ size_t config_size);
/**
* Start a configured device.
--
2.25.1
^ permalink raw reply [relevance 3%]
* [dpdk-dev] [PATCH v2 1/7] rawdev: add private data length parameter to info fn
2020-08-13 11:27 4% ` [dpdk-dev] [PATCH v2 0/7] Enhance rawdev APIs Bruce Richardson
@ 2020-08-13 11:27 3% ` Bruce Richardson
2020-08-17 5:26 0% ` Xu, Rosen
2020-08-13 11:28 3% ` [dpdk-dev] [PATCH v2 3/7] rawdev: add private data length parameter to config fn Bruce Richardson
` (2 subsequent siblings)
3 siblings, 1 reply; 200+ results
From: Bruce Richardson @ 2020-08-13 11:27 UTC (permalink / raw)
To: Nipun Gupta, Hemant Agrawal
Cc: dev, Bruce Richardson, Rosen Xu, John McNamara, Marko Kovacevic,
Tianfei zhang, Xiaoyun Li, Jingjing Wu
Currently with the rawdev API there is no way to check that the structure
passed in via the dev_private pointer in the dev_info structure is of the
correct type - it's just checked that it is non-NULL. Adding in the length
of the expected structure provides a measure of typechecking, and can also
be used for ABI compatibility in future, since ABI changes involving
structs almost always involve a change in size.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Rosen Xu <rosen.xu@intel.com>
---
app/test/test_rawdev.c | 2 +-
doc/guides/rawdevs/ioat.rst | 2 +-
doc/guides/sample_app_ug/ioat.rst | 2 +-
drivers/bus/ifpga/ifpga_bus.c | 2 +-
drivers/raw/ifpga/ifpga_rawdev.c | 5 +++--
drivers/raw/ioat/ioat_rawdev.c | 5 +++--
drivers/raw/ioat/ioat_rawdev_test.c | 4 ++--
drivers/raw/ntb/ntb.c | 8 +++++++-
drivers/raw/skeleton/skeleton_rawdev.c | 5 +++--
drivers/raw/skeleton/skeleton_rawdev_test.c | 19 ++++++++++++-------
examples/ioat/ioatfwd.c | 2 +-
examples/ntb/ntb_fwd.c | 2 +-
lib/librte_rawdev/rte_rawdev.c | 6 ++++--
lib/librte_rawdev/rte_rawdev.h | 9 ++++++++-
lib/librte_rawdev/rte_rawdev_pmd.h | 5 ++++-
15 files changed, 52 insertions(+), 26 deletions(-)
diff --git a/app/test/test_rawdev.c b/app/test/test_rawdev.c
index 524a9d5f3b..d8d9595be1 100644
--- a/app/test/test_rawdev.c
+++ b/app/test/test_rawdev.c
@@ -34,7 +34,7 @@ test_rawdev_selftest_ioat(void)
for (i = 0; i < count; i++) {
struct rte_rawdev_info info = { .dev_private = NULL };
- if (rte_rawdev_info_get(i, &info) == 0 &&
+ if (rte_rawdev_info_get(i, &info, 0) == 0 &&
strstr(info.driver_name, "ioat") != NULL)
return rte_rawdev_selftest(i) == 0 ?
TEST_SUCCESS : TEST_FAILED;
diff --git a/doc/guides/rawdevs/ioat.rst b/doc/guides/rawdevs/ioat.rst
index d0eee5e237..dac52fabf1 100644
--- a/doc/guides/rawdevs/ioat.rst
+++ b/doc/guides/rawdevs/ioat.rst
@@ -107,7 +107,7 @@ rawdev device for use by an application:
for (i = 0; i < count && !found; i++) {
struct rte_rawdev_info info = { .dev_private = NULL };
- found = (rte_rawdev_info_get(i, &info) == 0 &&
+ found = (rte_rawdev_info_get(i, &info, 0) == 0 &&
strcmp(info.driver_name,
IOAT_PMD_RAWDEV_NAME_STR) == 0);
}
diff --git a/doc/guides/sample_app_ug/ioat.rst b/doc/guides/sample_app_ug/ioat.rst
index bab7654b8d..b5188220ba 100644
--- a/doc/guides/sample_app_ug/ioat.rst
+++ b/doc/guides/sample_app_ug/ioat.rst
@@ -265,7 +265,7 @@ functions:
do {
if (rdev_id == rte_rawdev_count())
goto end;
- rte_rawdev_info_get(rdev_id++, &rdev_info);
+ rte_rawdev_info_get(rdev_id++, &rdev_info, 0);
} while (strcmp(rdev_info.driver_name,
IOAT_PMD_RAWDEV_NAME_STR) != 0);
diff --git a/drivers/bus/ifpga/ifpga_bus.c b/drivers/bus/ifpga/ifpga_bus.c
index 6b16a20bb6..bb8b3dcfb9 100644
--- a/drivers/bus/ifpga/ifpga_bus.c
+++ b/drivers/bus/ifpga/ifpga_bus.c
@@ -162,7 +162,7 @@ ifpga_scan_one(struct rte_rawdev *rawdev,
afu_dev->id.port = afu_pr_conf.afu_id.port;
if (rawdev->dev_ops && rawdev->dev_ops->dev_info_get)
- rawdev->dev_ops->dev_info_get(rawdev, afu_dev);
+ rawdev->dev_ops->dev_info_get(rawdev, afu_dev, sizeof(*afu_dev));
if (rawdev->dev_ops &&
rawdev->dev_ops->dev_start &&
diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c
index cc25c662bc..47cfa38778 100644
--- a/drivers/raw/ifpga/ifpga_rawdev.c
+++ b/drivers/raw/ifpga/ifpga_rawdev.c
@@ -605,7 +605,8 @@ ifpga_fill_afu_dev(struct opae_accelerator *acc,
static void
ifpga_rawdev_info_get(struct rte_rawdev *dev,
- rte_rawdev_obj_t dev_info)
+ rte_rawdev_obj_t dev_info,
+ size_t dev_info_size)
{
struct opae_adapter *adapter;
struct opae_accelerator *acc;
@@ -617,7 +618,7 @@ ifpga_rawdev_info_get(struct rte_rawdev *dev,
IFPGA_RAWDEV_PMD_FUNC_TRACE();
- if (!dev_info) {
+ if (!dev_info || dev_info_size != sizeof(*afu_dev)) {
IFPGA_RAWDEV_PMD_ERR("Invalid request");
return;
}
diff --git a/drivers/raw/ioat/ioat_rawdev.c b/drivers/raw/ioat/ioat_rawdev.c
index 87fd088aac..a5c0452d7e 100644
--- a/drivers/raw/ioat/ioat_rawdev.c
+++ b/drivers/raw/ioat/ioat_rawdev.c
@@ -111,12 +111,13 @@ ioat_dev_stop(struct rte_rawdev *dev)
}
static void
-ioat_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info)
+ioat_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info,
+ size_t dev_info_size)
{
struct rte_ioat_rawdev_config *cfg = dev_info;
struct rte_ioat_rawdev *ioat = dev->dev_private;
- if (cfg != NULL)
+ if (cfg != NULL && dev_info_size == sizeof(*cfg))
cfg->ring_size = ioat->ring_size;
}
diff --git a/drivers/raw/ioat/ioat_rawdev_test.c b/drivers/raw/ioat/ioat_rawdev_test.c
index c37351af2d..2b40222eb4 100644
--- a/drivers/raw/ioat/ioat_rawdev_test.c
+++ b/drivers/raw/ioat/ioat_rawdev_test.c
@@ -148,7 +148,7 @@ ioat_rawdev_test(uint16_t dev_id)
unsigned int nb_xstats;
unsigned int i;
- rte_rawdev_info_get(dev_id, &info);
+ rte_rawdev_info_get(dev_id, &info, sizeof(p));
if (p.ring_size != expected_ring_size) {
printf("Error, initial ring size is not as expected (Actual: %d, Expected: %d)\n",
(int)p.ring_size, expected_ring_size);
@@ -160,7 +160,7 @@ ioat_rawdev_test(uint16_t dev_id)
printf("Error with rte_rawdev_configure()\n");
return -1;
}
- rte_rawdev_info_get(dev_id, &info);
+ rte_rawdev_info_get(dev_id, &info, sizeof(p));
if (p.ring_size != IOAT_TEST_RINGSIZE) {
printf("Error, ring size is not %d (%d)\n",
IOAT_TEST_RINGSIZE, (int)p.ring_size);
diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
index e40412bb7e..c890c43a32 100644
--- a/drivers/raw/ntb/ntb.c
+++ b/drivers/raw/ntb/ntb.c
@@ -801,11 +801,17 @@ ntb_dequeue_bufs(struct rte_rawdev *dev,
}
static void
-ntb_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info)
+ntb_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info,
+ size_t dev_info_size)
{
struct ntb_hw *hw = dev->dev_private;
struct ntb_dev_info *info = dev_info;
+ if (dev_info_size != sizeof(*info)) {
+ NTB_LOG(ERR, "Invalid size parameter to %s", __func__);
+ return;
+ }
+
info->mw_cnt = hw->mw_cnt;
info->mw_size = hw->mw_size;
diff --git a/drivers/raw/skeleton/skeleton_rawdev.c b/drivers/raw/skeleton/skeleton_rawdev.c
index 72ece887af..dc05f3ecf8 100644
--- a/drivers/raw/skeleton/skeleton_rawdev.c
+++ b/drivers/raw/skeleton/skeleton_rawdev.c
@@ -42,14 +42,15 @@ static struct queue_buffers queue_buf[SKELETON_MAX_QUEUES] = {};
static void clear_queue_bufs(int queue_id);
static void skeleton_rawdev_info_get(struct rte_rawdev *dev,
- rte_rawdev_obj_t dev_info)
+ rte_rawdev_obj_t dev_info,
+ size_t dev_info_size)
{
struct skeleton_rawdev *skeldev;
struct skeleton_rawdev_conf *skeldev_conf;
SKELETON_PMD_FUNC_TRACE();
- if (!dev_info) {
+ if (!dev_info || dev_info_size != sizeof(*skeldev_conf)) {
SKELETON_PMD_ERR("Invalid request");
return;
}
diff --git a/drivers/raw/skeleton/skeleton_rawdev_test.c b/drivers/raw/skeleton/skeleton_rawdev_test.c
index 9ecfdee818..9b8390dfb7 100644
--- a/drivers/raw/skeleton/skeleton_rawdev_test.c
+++ b/drivers/raw/skeleton/skeleton_rawdev_test.c
@@ -106,12 +106,12 @@ test_rawdev_info_get(void)
struct rte_rawdev_info rdev_info = {0};
struct skeleton_rawdev_conf skel_conf = {0};
- ret = rte_rawdev_info_get(test_dev_id, NULL);
+ ret = rte_rawdev_info_get(test_dev_id, NULL, 0);
RTE_TEST_ASSERT(ret == -EINVAL, "Expected -EINVAL, %d", ret);
rdev_info.dev_private = &skel_conf;
- ret = rte_rawdev_info_get(test_dev_id, &rdev_info);
+ ret = rte_rawdev_info_get(test_dev_id, &rdev_info, sizeof(skel_conf));
RTE_TEST_ASSERT_SUCCESS(ret, "Failed to get raw dev info");
return TEST_SUCCESS;
@@ -142,7 +142,8 @@ test_rawdev_configure(void)
rdev_info.dev_private = &rdev_conf_get;
ret = rte_rawdev_info_get(test_dev_id,
- (rte_rawdev_obj_t)&rdev_info);
+ (rte_rawdev_obj_t)&rdev_info,
+ sizeof(rdev_conf_get));
RTE_TEST_ASSERT_SUCCESS(ret,
"Failed to obtain rawdev configuration (%d)",
ret);
@@ -170,7 +171,8 @@ test_rawdev_queue_default_conf_get(void)
/* Get the current configuration */
rdev_info.dev_private = &rdev_conf_get;
ret = rte_rawdev_info_get(test_dev_id,
- (rte_rawdev_obj_t)&rdev_info);
+ (rte_rawdev_obj_t)&rdev_info,
+ sizeof(rdev_conf_get));
RTE_TEST_ASSERT_SUCCESS(ret, "Failed to obtain rawdev configuration (%d)",
ret);
@@ -218,7 +220,8 @@ test_rawdev_queue_setup(void)
/* Get the current configuration */
rdev_info.dev_private = &rdev_conf_get;
ret = rte_rawdev_info_get(test_dev_id,
- (rte_rawdev_obj_t)&rdev_info);
+ (rte_rawdev_obj_t)&rdev_info,
+ sizeof(rdev_conf_get));
RTE_TEST_ASSERT_SUCCESS(ret,
"Failed to obtain rawdev configuration (%d)",
ret);
@@ -327,7 +330,8 @@ test_rawdev_start_stop(void)
dummy_firmware = NULL;
rte_rawdev_start(test_dev_id);
- ret = rte_rawdev_info_get(test_dev_id, (rte_rawdev_obj_t)&rdev_info);
+ ret = rte_rawdev_info_get(test_dev_id, (rte_rawdev_obj_t)&rdev_info,
+ sizeof(rdev_conf_get));
RTE_TEST_ASSERT_SUCCESS(ret,
"Failed to obtain rawdev configuration (%d)",
ret);
@@ -336,7 +340,8 @@ test_rawdev_start_stop(void)
rdev_conf_get.device_state);
rte_rawdev_stop(test_dev_id);
- ret = rte_rawdev_info_get(test_dev_id, (rte_rawdev_obj_t)&rdev_info);
+ ret = rte_rawdev_info_get(test_dev_id, (rte_rawdev_obj_t)&rdev_info,
+ sizeof(rdev_conf_get));
RTE_TEST_ASSERT_SUCCESS(ret,
"Failed to obtain rawdev configuration (%d)",
ret);
diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c
index 75d8d5b9fe..76932d3dd2 100644
--- a/examples/ioat/ioatfwd.c
+++ b/examples/ioat/ioatfwd.c
@@ -757,7 +757,7 @@ assign_rawdevs(void)
do {
if (rdev_id == rte_rawdev_count())
goto end;
- rte_rawdev_info_get(rdev_id++, &rdev_info);
+ rte_rawdev_info_get(rdev_id++, &rdev_info, 0);
} while (rdev_info.driver_name == NULL ||
strcmp(rdev_info.driver_name,
IOAT_PMD_RAWDEV_NAME_STR) != 0);
diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c
index eba8ebf9fa..11e224451c 100644
--- a/examples/ntb/ntb_fwd.c
+++ b/examples/ntb/ntb_fwd.c
@@ -1389,7 +1389,7 @@ main(int argc, char **argv)
rte_rawdev_set_attr(dev_id, NTB_QUEUE_NUM_NAME, num_queues);
printf("Set queue number as %u.\n", num_queues);
ntb_rawdev_info.dev_private = (rte_rawdev_obj_t)(&ntb_info);
- rte_rawdev_info_get(dev_id, &ntb_rawdev_info);
+ rte_rawdev_info_get(dev_id, &ntb_rawdev_info, sizeof(ntb_info));
nb_mbuf = nb_desc * num_queues * 2 * 2 + rte_lcore_count() *
MEMPOOL_CACHE_SIZE;
diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c
index 8f84d0b228..a576890356 100644
--- a/lib/librte_rawdev/rte_rawdev.c
+++ b/lib/librte_rawdev/rte_rawdev.c
@@ -78,7 +78,8 @@ rte_rawdev_socket_id(uint16_t dev_id)
}
int
-rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info)
+rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info,
+ size_t dev_private_size)
{
struct rte_rawdev *rawdev;
@@ -89,7 +90,8 @@ rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info)
if (dev_info->dev_private != NULL) {
RTE_FUNC_PTR_OR_ERR_RET(*rawdev->dev_ops->dev_info_get, -ENOTSUP);
- (*rawdev->dev_ops->dev_info_get)(rawdev, dev_info->dev_private);
+ (*rawdev->dev_ops->dev_info_get)(rawdev, dev_info->dev_private,
+ dev_private_size);
}
dev_info->driver_name = rawdev->driver_name;
diff --git a/lib/librte_rawdev/rte_rawdev.h b/lib/librte_rawdev/rte_rawdev.h
index 32f6b8bb03..cf6acfd261 100644
--- a/lib/librte_rawdev/rte_rawdev.h
+++ b/lib/librte_rawdev/rte_rawdev.h
@@ -82,13 +82,20 @@ struct rte_rawdev_info;
* will be returned. This can be used to safely query the type of a rawdev
* instance without needing to know the size of the private data to return.
*
+ * @param dev_private_size
+ * The length of the memory space pointed to by dev_private in dev_info.
+ * This should be set to the size of the expected private structure to be
+ * returned, and may be checked by drivers to ensure the expected struct
+ * type is provided.
+ *
* @return
* - 0: Success, driver updates the contextual information of the raw device
* - <0: Error code returned by the driver info get function.
*
*/
int
-rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info);
+rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info,
+ size_t dev_private_size);
/**
* Configure a raw device.
diff --git a/lib/librte_rawdev/rte_rawdev_pmd.h b/lib/librte_rawdev/rte_rawdev_pmd.h
index 4395a2182d..0e72a92058 100644
--- a/lib/librte_rawdev/rte_rawdev_pmd.h
+++ b/lib/librte_rawdev/rte_rawdev_pmd.h
@@ -138,12 +138,15 @@ rte_rawdev_pmd_is_valid_dev(uint8_t dev_id)
* Raw device pointer
* @param dev_info
* Raw device information structure
+ * @param dev_private_size
+ * The size of the structure pointed to by dev_info->dev_private
*
* @return
* Returns 0 on success
*/
typedef void (*rawdev_info_get_t)(struct rte_rawdev *dev,
- rte_rawdev_obj_t dev_info);
+ rte_rawdev_obj_t dev_info,
+ size_t dev_private_size);
/**
* Configure a device.
--
2.25.1
^ permalink raw reply [relevance 3%]
* [dpdk-dev] [PATCH v2 0/7] Enhance rawdev APIs
@ 2020-08-13 11:27 4% ` Bruce Richardson
2020-08-13 11:27 3% ` [dpdk-dev] [PATCH v2 1/7] rawdev: add private data length parameter to info fn Bruce Richardson
` (3 more replies)
2 siblings, 4 replies; 200+ results
From: Bruce Richardson @ 2020-08-13 11:27 UTC (permalink / raw)
To: Nipun Gupta, Hemant Agrawal; +Cc: dev, Bruce Richardson
This patchset proposes some internal and externally-visible changes to the
rawdev API, the ABI change of which were previously announced.
The changes are in two main areas:
* For any APIs which take a void * parameter for driver-specific structs,
add an additional parameter to provide the struct length. This allows
some runtime type-checking, as well as possible ABI-compatibility support
in the future as structure change generally involve a change in the size
of the structure.
* Ensure all APIs which can return error values have int type, rather than
void. Since functions like info_get and queue_default_get can now do some
typechecking, they need to be modified to allow them to return error
codes on failure.
V2:
- add additional patch to make start/stop functions optional
- remove deprecation notice once changes applied
Bruce Richardson (7):
rawdev: add private data length parameter to info fn
rawdev: allow drivers to return error from info function
rawdev: add private data length parameter to config fn
rawdev: add private data length parameter to queue fns
rawdev: allow queue default config query to return error
rawdev: mark start and stop functions optional
doc: remove rawdev deprecation notice
app/test/test_rawdev.c | 2 +-
doc/guides/rawdevs/ioat.rst | 4 +-
doc/guides/rawdevs/octeontx2_dma.rst | 2 +-
doc/guides/rawdevs/octeontx2_ep.rst | 3 +-
doc/guides/rel_notes/deprecation.rst | 7 ---
doc/guides/sample_app_ug/ioat.rst | 4 +-
drivers/bus/ifpga/ifpga_bus.c | 2 +-
drivers/raw/ifpga/ifpga_rawdev.c | 23 +++++-----
drivers/raw/ioat/ioat_rawdev.c | 17 ++++---
drivers/raw/ioat/ioat_rawdev_test.c | 6 +--
drivers/raw/ntb/ntb.c | 49 ++++++++++++++++-----
drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c | 7 +--
drivers/raw/octeontx2_dma/otx2_dpi_test.c | 3 +-
drivers/raw/octeontx2_ep/otx2_ep_rawdev.c | 7 +--
drivers/raw/octeontx2_ep/otx2_ep_test.c | 2 +-
drivers/raw/skeleton/skeleton_rawdev.c | 36 +++++++++------
drivers/raw/skeleton/skeleton_rawdev_test.c | 32 ++++++++------
examples/ioat/ioatfwd.c | 4 +-
examples/ntb/ntb_fwd.c | 7 +--
lib/librte_rawdev/rte_rawdev.c | 47 +++++++++++++-------
lib/librte_rawdev/rte_rawdev.h | 27 ++++++++++--
lib/librte_rawdev/rte_rawdev_pmd.h | 22 ++++++---
22 files changed, 201 insertions(+), 112 deletions(-)
--
2.25.1
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [dpdk-techboard] [PATCH] doc: scheduler API deprecation notice
2020-08-12 12:23 0% ` Thomas Monjalon
@ 2020-08-12 15:25 0% ` Stephen Hemminger
0 siblings, 0 replies; 200+ results
From: Stephen Hemminger @ 2020-08-12 15:25 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Maxime Coquelin, Bruce Richardson, Dybkowski, AdamX, Trahe,
Fiona, Hemant Agrawal, dev, Zhang, Roy Fan, Burakov, Anatoly,
bluca, Akhil Goyal, Mcnamara, John, techboard
On Wed, 12 Aug 2020 14:23:51 +0200
Thomas Monjalon <thomas@monjalon.net> wrote:
> 12/08/2020 12:57, Hemant Agrawal:
> > > -----Original Message-----
> > > From: techboard <techboard-bounces@dpdk.org> On Behalf Of Maxime
> > > Coquelin
> > >
> > > On 8/12/20 12:22 PM, Thomas Monjalon wrote:
> > > > 12/08/2020 11:52, Bruce Richardson:
> > > >> On Mon, Aug 10, 2020 at 02:50:57PM +0200, Thomas Monjalon wrote:
> > > >>> 10/08/2020 13:49, Trahe, Fiona:
> > > >>>> Sorry about that Thomas, Akhil, we should have chased up acks sooner.
> > > >>>>
> > > >>>> Given the proposed content of the patch, and the similar changes
> > > >>>> that are recommended and agreed throughout DPDK do you think an
> > > >>>> exception can be made and that this change can get into 20.11 even
> > > without the deprecation notice being in 20.08?
> > > >>>
> > > >>> That's a question for techboard.
> > > >>>
> > > >>> PS: please avoid top-posting
> > > >>>
> > > >> My initial 2c is that we should allow this, and add the required
> > > >> deprecation notice to the online docs immediately. I would assume
> > > >> most people use the online docs rather than building their own from
> > > >> the package, therefore adding in a deprecation notice to the online
> > > >> versions a few days after a release should not be a major problem IMHO.
> > > >>
> > > >> Also, given the fact that we have once-a-year at most to apply ABI
> > > >> changes, and this is the first time we are going this, so I think a
> > > >> little latitude should be given! :-)
> > > >
> > > > I agree
> > > >
> > > > We need more opinions from other techboard members to make it a
> > > decision.
> > > >
> > > >
> > >
> > > I agree too, let's give a bit more flexibility for the deprecation notice.
> > >
> > > Maxime
> >
> > +1
> > Hemant
>
> I've applied the patch after 20.11-rc0.
I am ok with changing this for 20.11 since there aren't a lot of users of
this subsystem and the change should be API compatiable
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v4] doc: add section describing new abi versions
2020-08-12 13:22 4% ` Thomas Monjalon
@ 2020-08-12 13:56 4% ` Kinsella, Ray
0 siblings, 0 replies; 200+ results
From: Kinsella, Ray @ 2020-08-12 13:56 UTC (permalink / raw)
To: Thomas Monjalon
Cc: dev, ferruh.yigit, david.marchand, kevin.laatz, bruce.richardson,
hemant.agrawal, Honnappa.Nagarahalli, Neil Horman, John McNamara,
Marko Kovacevic
On 12/08/2020 14:22, Thomas Monjalon wrote:
> 12/08/2020 13:26, Ray Kinsella:
>> Added a section describing new abi versions, this provides pointers to
>> the relevant amended rules that apply during the abi breakage window.
>> Also remove the large note at the head of the abi policy describing the
>> abi stability process that has taken place over the previous year.
>>
>> Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
>
> Applied, thanks
>
> Note: I changed the position of some line breaks
> to split lines at logical places in the sentences.
> I think rst files would be more pleasant if arranged this way.
>
I am a slave to emacs fill-paragraph :-)
Ray K
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH v4] doc: add section describing new abi versions
2020-08-12 11:26 9% ` [dpdk-dev] [PATCH v4] " Ray Kinsella
@ 2020-08-12 13:22 4% ` Thomas Monjalon
2020-08-12 13:56 4% ` Kinsella, Ray
0 siblings, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-08-12 13:22 UTC (permalink / raw)
To: Ray Kinsella
Cc: dev, ferruh.yigit, david.marchand, kevin.laatz, bruce.richardson,
hemant.agrawal, Honnappa.Nagarahalli, Ray Kinsella, Neil Horman,
John McNamara, Marko Kovacevic
12/08/2020 13:26, Ray Kinsella:
> Added a section describing new abi versions, this provides pointers to
> the relevant amended rules that apply during the abi breakage window.
> Also remove the large note at the head of the abi policy describing the
> abi stability process that has taken place over the previous year.
>
> Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Applied, thanks
Note: I changed the position of some line breaks
to split lines at logical places in the sentences.
I think rst files would be more pleasant if arranged this way.
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [dpdk-techboard] [PATCH] doc: scheduler API deprecation notice
2020-08-12 10:57 0% ` Hemant Agrawal
@ 2020-08-12 12:23 0% ` Thomas Monjalon
2020-08-12 15:25 0% ` Stephen Hemminger
0 siblings, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-08-12 12:23 UTC (permalink / raw)
To: Maxime Coquelin, Bruce Richardson, Dybkowski, AdamX, Trahe,
Fiona, Hemant Agrawal
Cc: dev, dev, Zhang, Roy Fan, stephen, Burakov, Anatoly, bluca,
Akhil Goyal, Mcnamara, John, techboard
12/08/2020 12:57, Hemant Agrawal:
> > -----Original Message-----
> > From: techboard <techboard-bounces@dpdk.org> On Behalf Of Maxime
> > Coquelin
> >
> > On 8/12/20 12:22 PM, Thomas Monjalon wrote:
> > > 12/08/2020 11:52, Bruce Richardson:
> > >> On Mon, Aug 10, 2020 at 02:50:57PM +0200, Thomas Monjalon wrote:
> > >>> 10/08/2020 13:49, Trahe, Fiona:
> > >>>> Sorry about that Thomas, Akhil, we should have chased up acks sooner.
> > >>>>
> > >>>> Given the proposed content of the patch, and the similar changes
> > >>>> that are recommended and agreed throughout DPDK do you think an
> > >>>> exception can be made and that this change can get into 20.11 even
> > without the deprecation notice being in 20.08?
> > >>>
> > >>> That's a question for techboard.
> > >>>
> > >>> PS: please avoid top-posting
> > >>>
> > >> My initial 2c is that we should allow this, and add the required
> > >> deprecation notice to the online docs immediately. I would assume
> > >> most people use the online docs rather than building their own from
> > >> the package, therefore adding in a deprecation notice to the online
> > >> versions a few days after a release should not be a major problem IMHO.
> > >>
> > >> Also, given the fact that we have once-a-year at most to apply ABI
> > >> changes, and this is the first time we are going this, so I think a
> > >> little latitude should be given! :-)
> > >
> > > I agree
> > >
> > > We need more opinions from other techboard members to make it a
> > decision.
> > >
> > >
> >
> > I agree too, let's give a bit more flexibility for the deprecation notice.
> >
> > Maxime
>
> +1
> Hemant
I've applied the patch after 20.11-rc0.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v3] doc: add section describing new abi versions
2020-08-12 11:19 4% ` Kinsella, Ray
@ 2020-08-12 12:14 4% ` Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-12 12:14 UTC (permalink / raw)
To: Kinsella, Ray
Cc: dev, ferruh.yigit, david.marchand, kevin.laatz, bruce.richardson,
hemant.agrawal, Honnappa.Nagarahalli, Neil Horman, John McNamara,
Marko Kovacevic
12/08/2020 13:19, Kinsella, Ray:
> On 12/08/2020 11:40, Thomas Monjalon wrote:
> >> --- a/doc/guides/contributing/abi_versioning.rst
> >> +++ b/doc/guides/contributing/abi_versioning.rst
> >> @@ -673,9 +673,9 @@ symbols.
> >> -BIND_DEFAULT_SYMBOL(rte_acl_create, _v20, 20);
> >> +BIND_DEFAULT_SYMBOL(rte_acl_create, _v21, 21);
> >
> > Why updating the version here? A lot of examples are given with v20.
>
> I didn't change this then - and + are in the documentation.
Ah ah, I got trapped :)
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH v4] doc: add section describing new abi versions
2020-08-11 15:16 32% [dpdk-dev] [PATCH] doc: add section describing new abi versions Ray Kinsella
2020-08-11 16:36 9% ` Ray Kinsella
2020-08-11 16:39 9% ` [dpdk-dev] [PATCH v3] " Ray Kinsella
@ 2020-08-12 11:26 9% ` Ray Kinsella
2020-08-12 13:22 4% ` Thomas Monjalon
2 siblings, 1 reply; 200+ results
From: Ray Kinsella @ 2020-08-12 11:26 UTC (permalink / raw)
To: dev
Cc: ferruh.yigit, david.marchand, thomas, kevin.laatz,
bruce.richardson, hemant.agrawal, Honnappa.Nagarahalli,
Ray Kinsella, Neil Horman, John McNamara, Marko Kovacevic
Added a section describing new abi versions, this provides pointers to
the relevant amended rules that apply during the abi breakage window.
Also remove the large note at the head of the abi policy describing the
abi stability process that has taken place over the previous year.
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
---
V4: Few minor changes proposed by Thomas Monjalon.
V3: Added the patch version.
V2: Updated to add removing aliases to experimental.
---
doc/guides/contributing/abi_policy.rst | 37 +++++++++++++++++++++++-------
doc/guides/contributing/abi_versioning.rst | 6 ++---
2 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/doc/guides/contributing/abi_policy.rst b/doc/guides/contributing/abi_policy.rst
index ab9daf5..d408439 100644
--- a/doc/guides/contributing/abi_policy.rst
+++ b/doc/guides/contributing/abi_policy.rst
@@ -14,8 +14,8 @@ General Guidelines
------------------
#. Major ABI versions are declared no more frequently than yearly. Compatibility
- with the major ABI version is mandatory in subsequent releases until a new
- major ABI version is declared.
+ with the major ABI version is mandatory in subsequent releases until a
+ :ref:`new major ABI version <new_abi_version>` is declared.
#. Major ABI versions are usually but not always declared aligned with a
:ref:`LTS release <stable_lts_releases>`.
#. The ABI version is managed at a project level in DPDK, and is reflected in
@@ -35,12 +35,6 @@ General Guidelines
.. note::
- In 2019, the DPDK community stated its intention to move to ABI stable
- releases, over a number of release cycles. This change begins with
- maintaining ABI stability through one year of DPDK releases starting from
- DPDK 19.11. This policy will be reviewed in 2020, with intention of
- lengthening the stability period. Additional implementation detail can be
- found in the :ref:`release notes <20_02_abi_changes>`.
Please note that this policy does not currently apply to the
:doc:`Windows build <../windows_gsg/intro>`.
@@ -288,6 +282,33 @@ added to the Release Notes:
these changes. Binaries using this library built prior to ABI version 21 will
require updating and recompilation.
+
+.. _new_abi_version:
+
+New ABI versions
+------------------
+
+A new ABI version may be declared aligned with a given release. The requirement
+to preserve compatibility with the previous major ABI version is then dropped
+for the duration of this release cycle. This is commonly known as the *ABI
+breakage window*, and some amended rules apply during this cycle:
+
+ * The requirement to preserve compatibility with the previous major ABI
+ version, as described in the section :ref:`abi_changes` does not apply.
+ * Contributors of compatibility preserving code in previous releases, are now
+ required to remove this compatibility code, as described in the section
+ :ref:`abi_changes`.
+ * Symbol versioning references to the old ABI version are updated to reference
+ the new ABI version, as described in the section
+ :ref:`deprecating_entire_abi`.
+ * Contributors of aliases to experimental in previous releases, as described in
+ section :ref:`aliasing_experimental_symbols`, are now required to remove
+ these aliases.
+ * Finally, the *ABI breakage window* is *not* permission to circumvent the
+ other aspects of the procedures to make ABI changes described in
+ :ref:`abi_changes`, that is, 3 ACKs of the requirement to break the ABI and
+ the observance of a deprecation notice are still considered mandatory.
+
.. _experimental_apis:
Experimental
diff --git a/doc/guides/contributing/abi_versioning.rst b/doc/guides/contributing/abi_versioning.rst
index b1d09c7..3d35b1a 100644
--- a/doc/guides/contributing/abi_versioning.rst
+++ b/doc/guides/contributing/abi_versioning.rst
@@ -673,9 +673,9 @@ symbols.
-BIND_DEFAULT_SYMBOL(rte_acl_create, _v20, 20);
+BIND_DEFAULT_SYMBOL(rte_acl_create, _v21, 21);
-Lastly, any VERSION_SYMBOL macros that point to the old version node should be
-removed, taking care to keep, where need old code in place to support newer
-versions of the symbol.
+Lastly, any VERSION_SYMBOL macros that point to the old version nodes should be
+removed, taking care to preserve any code that is shared with the new version
+node.
Running the ABI Validator
--
2.7.4
^ permalink raw reply [relevance 9%]
* Re: [dpdk-dev] [PATCH v3] doc: add section describing new abi versions
2020-08-12 10:40 8% ` Thomas Monjalon
@ 2020-08-12 11:19 4% ` Kinsella, Ray
2020-08-12 12:14 4% ` Thomas Monjalon
0 siblings, 1 reply; 200+ results
From: Kinsella, Ray @ 2020-08-12 11:19 UTC (permalink / raw)
To: Thomas Monjalon
Cc: dev, ferruh.yigit, david.marchand, kevin.laatz, bruce.richardson,
hemant.agrawal, Honnappa.Nagarahalli, Neil Horman, John McNamara,
Marko Kovacevic
v4 on the way, other notes are below.
On 12/08/2020 11:40, Thomas Monjalon wrote:
[SNIP]
>> Experimental
>> ------------
>>
>> +Major ABI versions are usually but not always declared aligned with a
>> +:ref:`LTS release <stable_lts_releases>`.
>
> Why adding this sentence here?
Will remove.
>
>
>> +
>> APIs
>> ~~~~
>>
>> diff --git a/doc/guides/contributing/abi_versioning.rst b/doc/guides/contributing/abi_versioning.rst
>> index b1d09c7..3d35b1a 100644
>> --- a/doc/guides/contributing/abi_versioning.rst
>> +++ b/doc/guides/contributing/abi_versioning.rst
>> @@ -673,9 +673,9 @@ symbols.
>> -BIND_DEFAULT_SYMBOL(rte_acl_create, _v20, 20);
>> +BIND_DEFAULT_SYMBOL(rte_acl_create, _v21, 21);
>
> Why updating the version here? A lot of examples are given with v20.
I didn't change this then - and + are in the documentation.
>
>
>> -Lastly, any VERSION_SYMBOL macros that point to the old version node should be
>> -removed, taking care to keep, where need old code in place to support newer
>> -versions of the symbol.
>> +Lastly, any VERSION_SYMBOL macros that point to the old version nodes should be
>> +removed, taking care to preserve any code that is shared with the new version
>> +node.
>
>
>
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [dpdk-techboard] [PATCH] doc: scheduler API deprecation notice
2020-08-12 10:49 0% ` [dpdk-dev] [dpdk-techboard] " Maxime Coquelin
@ 2020-08-12 10:57 0% ` Hemant Agrawal
2020-08-12 12:23 0% ` Thomas Monjalon
0 siblings, 1 reply; 200+ results
From: Hemant Agrawal @ 2020-08-12 10:57 UTC (permalink / raw)
To: Maxime Coquelin, Thomas Monjalon, Bruce Richardson
Cc: Dybkowski, AdamX, Trahe, Fiona, dev, Zhang, Roy Fan, stephen,
Burakov, Anatoly, bluca, Akhil Goyal, Mcnamara, John, techboard
> -----Original Message-----
> From: techboard <techboard-bounces@dpdk.org> On Behalf Of Maxime
> Coquelin
>
> On 8/12/20 12:22 PM, Thomas Monjalon wrote:
> > 12/08/2020 11:52, Bruce Richardson:
> >> On Mon, Aug 10, 2020 at 02:50:57PM +0200, Thomas Monjalon wrote:
> >>> 10/08/2020 13:49, Trahe, Fiona:
> >>>> Sorry about that Thomas, Akhil, we should have chased up acks sooner.
> >>>>
> >>>> Given the proposed content of the patch, and the similar changes
> >>>> that are recommended and agreed throughout DPDK do you think an
> >>>> exception can be made and that this change can get into 20.11 even
> without the deprecation notice being in 20.08?
> >>>
> >>> That's a question for techboard.
> >>>
> >>> PS: please avoid top-posting
> >>>
> >> My initial 2c is that we should allow this, and add the required
> >> deprecation notice to the online docs immediately. I would assume
> >> most people use the online docs rather than building their own from
> >> the package, therefore adding in a deprecation notice to the online
> >> versions a few days after a release should not be a major problem IMHO.
> >>
> >> Also, given the fact that we have once-a-year at most to apply ABI
> >> changes, and this is the first time we are going this, so I think a
> >> little latitude should be given! :-)
> >
> > I agree
> >
> > We need more opinions from other techboard members to make it a
> decision.
> >
> >
>
> I agree too, let's give a bit more flexibility for the deprecation notice.
>
> Maxime
+1
Hemant
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [dpdk-techboard] [PATCH] doc: scheduler API deprecation notice
2020-08-12 10:22 0% ` Thomas Monjalon
@ 2020-08-12 10:49 0% ` Maxime Coquelin
2020-08-12 10:57 0% ` Hemant Agrawal
0 siblings, 1 reply; 200+ results
From: Maxime Coquelin @ 2020-08-12 10:49 UTC (permalink / raw)
To: Thomas Monjalon, Bruce Richardson
Cc: Dybkowski, AdamX, Trahe, Fiona, dev, Zhang, Roy Fan, stephen,
Burakov, Anatoly, bluca, Akhil Goyal, Mcnamara, John, techboard
On 8/12/20 12:22 PM, Thomas Monjalon wrote:
> 12/08/2020 11:52, Bruce Richardson:
>> On Mon, Aug 10, 2020 at 02:50:57PM +0200, Thomas Monjalon wrote:
>>> 10/08/2020 13:49, Trahe, Fiona:
>>>> Sorry about that Thomas, Akhil, we should have chased up acks sooner.
>>>>
>>>> Given the proposed content of the patch, and the similar changes that are recommended and agreed
>>>> throughout DPDK do you think an exception can be made and that this change can get into 20.11 even
>>>> without the deprecation notice being in 20.08?
>>>
>>> That's a question for techboard.
>>>
>>> PS: please avoid top-posting
>>>
>> My initial 2c is that we should allow this, and add the required
>> deprecation notice to the online docs immediately. I would assume most
>> people use the online docs rather than building their own from the package,
>> therefore adding in a deprecation notice to the online versions a few days
>> after a release should not be a major problem IMHO.
>>
>> Also, given the fact that we have once-a-year at most to apply ABI
>> changes, and this is the first time we are going this, so I think a little
>> latitude should be given! :-)
>
> I agree
>
> We need more opinions from other techboard members to make it a decision.
>
>
I agree too, let's give a bit more flexibility for the deprecation
notice.
Maxime
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v3] doc: add section describing new abi versions
2020-08-11 16:39 9% ` [dpdk-dev] [PATCH v3] " Ray Kinsella
@ 2020-08-12 10:40 8% ` Thomas Monjalon
2020-08-12 11:19 4% ` Kinsella, Ray
0 siblings, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-08-12 10:40 UTC (permalink / raw)
To: Ray Kinsella
Cc: dev, ferruh.yigit, david.marchand, kevin.laatz, bruce.richardson,
hemant.agrawal, Honnappa.Nagarahalli, Neil Horman, John McNamara,
Marko Kovacevic
In the title and below, s/abi/ABI/
11/08/2020 18:39, Ray Kinsella:
> Added a section describing new abi versions, this provides pointers to
> the relevant amended rules that apply during the abi breakage window.
> Also remove the large note a the head of the abi policy describing the
s/a/at/
> abi stability process that has taken place over the previous year.
>
> Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
[...]
> #. Major ABI versions are declared no more frequently than yearly. Compatibility
> - with the major ABI version is mandatory in subsequent releases until a new
> - major ABI version is declared.
> + with the major ABI version is mandatory in subsequent releases until a
> + :ref:`new major ABI version <new_abi_version>` is declared.
Good idea adding a link here.
[...]
> - In 2019, the DPDK community stated its intention to move to ABI stable
> - releases, over a number of release cycles. This change begins with
> - maintaining ABI stability through one year of DPDK releases starting from
> - DPDK 19.11. This policy will be reviewed in 2020, with intention of
> - lengthening the stability period. Additional implementation detail can be
> - found in the :ref:`release notes <20_02_abi_changes>`.
OK removing past year considerations.
[...]
> +
> +.. _new_abi_version:
> +
> +New ABI versions
> +------------------
> +
> +A new ABI version may be declared aligned with a given release. The requirement
> +to preserve compatibility with the previous major ABI version is then dropped
> +for the duration of this release cycle. This is commonly known as the *ABI
> +breakage window*, and some amended rules apply during this cycle:
> +
> + * The requirement to preserve compatibility with the previous major ABI
> + version, as described in the section :ref:`abi_changes` does not apply.
> + * Contributors of compatibility preserving code in previous releases, are now
> + required to remove this compatibility code, as described in the section
> + :ref:`abi_changes`.
> + * Symbol versioning references to the old ABI version are updated to reference
> + the new ABI version, as described in the section.
The ending dot must be removed.
> + :ref:`deprecating_entire_abi`.
> + * Contributors of aliases to experimental in previous releases, as described in
> + section :ref:`aliasing_experimental_symbols`, are now required to remove
> + these aliases.
> + * Finally, the *ABI breakage window* is *not* permission to circumvent the
> + other aspects of the procedures to make ABI changes described in
> + :ref:`abi_changes`, that is, 3 ACKs of the requirement to break the ABI and
> + the observance of a deprecation notice are still considered mandatory.
> +
> .. _experimental_apis:
>
> Experimental
> ------------
>
> +Major ABI versions are usually but not always declared aligned with a
> +:ref:`LTS release <stable_lts_releases>`.
Why adding this sentence here?
> +
> APIs
> ~~~~
>
> diff --git a/doc/guides/contributing/abi_versioning.rst b/doc/guides/contributing/abi_versioning.rst
> index b1d09c7..3d35b1a 100644
> --- a/doc/guides/contributing/abi_versioning.rst
> +++ b/doc/guides/contributing/abi_versioning.rst
> @@ -673,9 +673,9 @@ symbols.
> -BIND_DEFAULT_SYMBOL(rte_acl_create, _v20, 20);
> +BIND_DEFAULT_SYMBOL(rte_acl_create, _v21, 21);
Why updating the version here? A lot of examples are given with v20.
> -Lastly, any VERSION_SYMBOL macros that point to the old version node should be
> -removed, taking care to keep, where need old code in place to support newer
> -versions of the symbol.
> +Lastly, any VERSION_SYMBOL macros that point to the old version nodes should be
> +removed, taking care to preserve any code that is shared with the new version
> +node.
^ permalink raw reply [relevance 8%]
* Re: [dpdk-dev] [PATCH] doc: scheduler API deprecation notice
2020-08-12 9:52 3% ` Bruce Richardson
@ 2020-08-12 10:22 0% ` Thomas Monjalon
2020-08-12 10:49 0% ` [dpdk-dev] [dpdk-techboard] " Maxime Coquelin
0 siblings, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-08-12 10:22 UTC (permalink / raw)
To: Bruce Richardson
Cc: Dybkowski, AdamX, Trahe, Fiona, dev, Zhang, Roy Fan, stephen,
Burakov, Anatoly, bluca, Akhil Goyal, Mcnamara, John, techboard
12/08/2020 11:52, Bruce Richardson:
> On Mon, Aug 10, 2020 at 02:50:57PM +0200, Thomas Monjalon wrote:
> > 10/08/2020 13:49, Trahe, Fiona:
> > > Sorry about that Thomas, Akhil, we should have chased up acks sooner.
> > >
> > > Given the proposed content of the patch, and the similar changes that are recommended and agreed
> > > throughout DPDK do you think an exception can be made and that this change can get into 20.11 even
> > > without the deprecation notice being in 20.08?
> >
> > That's a question for techboard.
> >
> > PS: please avoid top-posting
> >
> My initial 2c is that we should allow this, and add the required
> deprecation notice to the online docs immediately. I would assume most
> people use the online docs rather than building their own from the package,
> therefore adding in a deprecation notice to the online versions a few days
> after a release should not be a major problem IMHO.
>
> Also, given the fact that we have once-a-year at most to apply ABI
> changes, and this is the first time we are going this, so I think a little
> latitude should be given! :-)
I agree
We need more opinions from other techboard members to make it a decision.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: scheduler API deprecation notice
@ 2020-08-12 9:52 3% ` Bruce Richardson
2020-08-12 10:22 0% ` Thomas Monjalon
0 siblings, 1 reply; 200+ results
From: Bruce Richardson @ 2020-08-12 9:52 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Dybkowski, AdamX, Trahe, Fiona, dev, Zhang, Roy Fan, stephen,
Burakov, Anatoly, bluca, Akhil Goyal, Mcnamara, John, techboard
On Mon, Aug 10, 2020 at 02:50:57PM +0200, Thomas Monjalon wrote:
> 10/08/2020 13:49, Trahe, Fiona:
> > Sorry about that Thomas, Akhil, we should have chased up acks sooner.
> >
> > Given the proposed content of the patch, and the similar changes that are recommended and agreed
> > throughout DPDK do you think an exception can be made and that this change can get into 20.11 even
> > without the deprecation notice being in 20.08?
>
> That's a question for techboard.
>
> PS: please avoid top-posting
>
My initial 2c is that we should allow this, and add the required
deprecation notice to the online docs immediately. I would assume most
people use the online docs rather than building their own from the package,
therefore adding in a deprecation notice to the online versions a few days
after a release should not be a major problem IMHO.
Also, given the fact that we have once-a-year at most to apply ABI
changes, and this is the first time we are going this, so I think a little
latitude should be given! :-)
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v5 1/2] version: 20.11-rc0
2020-08-12 8:58 0% ` Kinsella, Ray
@ 2020-08-12 9:33 0% ` Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-12 9:33 UTC (permalink / raw)
To: dev; +Cc: david.marchand, nhorman, kevin.laatz, bruce.richardson, Kinsella, Ray
12/08/2020 10:58, Kinsella, Ray:
> On 11/08/2020 15:03, Thomas Monjalon wrote:
> > Start a new release cycle with empty release notes.
> >
> > The ABI version becomes 21.0.
> > The ABI major is back to normal, having only one number (21 vs 20.0).
> > The map files are updated to the new ABI major number (21).
> > The ABI exceptions are dropped.
> > Travis ABI check is disabled because compatibility is not preserved.
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
> > v5: drop all ABI exceptions
> > v4: add -rc0 and remove temporary ABI exceptions
> > v3: add minor number to ABI_VERSION and remove workaround in scripts
> > v2: bump major ABI number (including .map changes)
> > ---
> > .travis.yml | 26 ----
> > ABI_VERSION | 2 +-
> > VERSION | 2 +-
> > config/meson.build | 5 +-
> > devtools/libabigail.abignore | 103 -------------
> > doc/guides/rel_notes/index.rst | 1 +
> > doc/guides/rel_notes/release_20_11.rst | 136 ++++++++++++++++++
> > .../rte_pmd_bbdev_fpga_5gnr_fec_version.map | 2 +-
> [SNIP]
>
> Acked-by: Ray Kinsella <mdr@ashroe.eu>
Series applied.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v5 1/2] version: 20.11-rc0
2020-08-11 16:18 0% ` [dpdk-dev] [PATCH v5 1/2] version: 20.11-rc0 Kinsella, Ray
@ 2020-08-12 9:02 5% ` Kinsella, Ray
0 siblings, 0 replies; 200+ results
From: Kinsella, Ray @ 2020-08-12 9:02 UTC (permalink / raw)
To: Thomas Monjalon, dev
Cc: david.marchand, nhorman, kevin.laatz, bruce.richardson,
Fiona Trahe, Arek Kusztal, Olivier Matz, Ferruh Yigit, Ori Kam
Hi Thomas,
Regex has a similar set of issues,
Warning: symbol rte_regexdev_unregister (Base) should be annotated as ABI version DPDK_21 / DPDK_22, EXPERIMENTAL, or INTERNAL.
Warning: symbol rte_regexdev_register (Base) should be annotated as ABI version DPDK_21 / DPDK_22, EXPERIMENTAL, or INTERNAL.
Warning: symbol rte_regexdev_get_device_by_name (Base) should be annotated as ABI version DPDK_21 / DPDK_22, EXPERIMENTAL, or INTERNAL.
Warning: symbol rte_regexdev_is_valid_dev (Base) should be annotated as ABI version DPDK_21 / DPDK_22, EXPERIMENTAL, or INTERNAL.
So on second thoughts, I will chase resolving these ABI issues seperately.
Sent an ACK on patch, I will chase these once it merges.
Thanks,
Ray K
On 11/08/2020 17:18, Kinsella, Ray wrote:
> Hi Thomas,
>
> In general it looks good, however you are letting the old version node
> DPDK_20.0 linger in a few places. We need to include an explicit FYI to tidy this up.
>
> Remove versioning code:
>
> Cryptodev
> Fiona Trahe <fiona.trahe@intel.com>
> Arek Kusztal <arkadiuszx.kusztal@intel.com>
>
> Mempool
> Olivier Matz <olivier.matz@6wind.com>
>
> Remove alias to experimental:
>
> Metering
> Ferruh Yigit <ferruh.yigit@intel.com>
>
> Thanks,
>
> Ray K
>
> On 11/08/2020 15:03, Thomas Monjalon wrote:
>> Start a new release cycle with empty release notes.
>>
>> The ABI version becomes 21.0.
>> The ABI major is back to normal, having only one number (21 vs 20.0).
>> The map files are updated to the new ABI major number (21).
>> The ABI exceptions are dropped.
>> Travis ABI check is disabled because compatibility is not preserved.
>>
>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>> ---
>> v5: drop all ABI exceptions
>> v4: add -rc0 and remove temporary ABI exceptions
>> v3: add minor number to ABI_VERSION and remove workaround in scripts
>> v2: bump major ABI number (including .map changes)
>> ---
>> .travis.yml | 26 ----
>> ABI_VERSION | 2 +-
>> VERSION | 2 +-
>> config/meson.build | 5 +-
>> devtools/libabigail.abignore | 103 -------------
>> doc/guides/rel_notes/index.rst | 1 +
>> doc/guides/rel_notes/release_20_11.rst | 136 ++++++++++++++++++
>> .../rte_pmd_bbdev_fpga_5gnr_fec_version.map | 2 +-
>> .../rte_pmd_bbdev_fpga_lte_fec_version.map | 2 +-
>> .../null/rte_pmd_bbdev_null_version.map | 2 +-
>> .../rte_pmd_bbdev_turbo_sw_version.map | 2 +-
>> drivers/bus/ifpga/rte_bus_ifpga_version.map | 2 +-
>> drivers/bus/pci/rte_bus_pci_version.map | 2 +-
>> drivers/bus/vdev/rte_bus_vdev_version.map | 2 +-
>> drivers/bus/vmbus/rte_bus_vmbus_version.map | 2 +-
>> drivers/common/cpt/rte_common_cpt_version.map | 2 +-
>> .../common/iavf/rte_common_iavf_version.map | 4 +-
>> .../common/mlx5/rte_common_mlx5_version.map | 1 -
>> .../common/mvep/rte_common_mvep_version.map | 2 +-
>> .../octeontx/rte_common_octeontx_version.map | 2 +-
>> .../compress/isal/rte_pmd_isal_version.map | 2 +-
>> .../rte_pmd_octeontx_compress_version.map | 2 +-
>> drivers/compress/qat/rte_pmd_qat_version.map | 2 +-
>> .../compress/zlib/rte_pmd_zlib_version.map | 2 +-
>> .../aesni_gcm/rte_pmd_aesni_gcm_version.map | 2 +-
>> .../aesni_mb/rte_pmd_aesni_mb_version.map | 2 +-
>> .../crypto/armv8/rte_pmd_armv8_version.map | 2 +-
>> .../caam_jr/rte_pmd_caam_jr_version.map | 2 +-
>> drivers/crypto/ccp/rte_pmd_ccp_version.map | 2 +-
>> .../crypto/kasumi/rte_pmd_kasumi_version.map | 2 +-
>> .../crypto/mvsam/rte_pmd_mvsam_version.map | 2 +-
>> .../crypto/nitrox/rte_pmd_nitrox_version.map | 2 +-
>> .../null/rte_pmd_null_crypto_version.map | 2 +-
>> .../rte_pmd_octeontx_crypto_version.map | 2 +-
>> .../rte_pmd_octeontx2_crypto_version.map | 2 +-
>> .../openssl/rte_pmd_openssl_version.map | 2 +-
>> .../rte_pmd_crypto_scheduler_version.map | 2 +-
>> .../crypto/snow3g/rte_pmd_snow3g_version.map | 2 +-
>> .../virtio/rte_pmd_virtio_crypto_version.map | 2 +-
>> drivers/crypto/zuc/rte_pmd_zuc_version.map | 2 +-
>> .../event/dpaa/rte_pmd_dpaa_event_version.map | 2 +-
>> .../dpaa2/rte_pmd_dpaa2_event_version.map | 2 +-
>> .../event/dsw/rte_pmd_dsw_event_version.map | 2 +-
>> .../rte_pmd_octeontx_event_version.map | 2 +-
>> .../rte_pmd_octeontx2_event_version.map | 2 +-
>> .../event/opdl/rte_pmd_opdl_event_version.map | 2 +-
>> .../rte_pmd_skeleton_event_version.map | 2 +-
>> drivers/event/sw/rte_pmd_sw_event_version.map | 2 +-
>> .../bucket/rte_mempool_bucket_version.map | 2 +-
>> .../dpaa2/rte_mempool_dpaa2_version.map | 2 +-
>> .../octeontx/rte_mempool_octeontx_version.map | 2 +-
>> .../mempool/ring/rte_mempool_ring_version.map | 2 +-
>> .../stack/rte_mempool_stack_version.map | 2 +-
>> .../af_packet/rte_pmd_af_packet_version.map | 2 +-
>> drivers/net/af_xdp/rte_pmd_af_xdp_version.map | 2 +-
>> drivers/net/ark/rte_pmd_ark_version.map | 2 +-
>> .../net/atlantic/rte_pmd_atlantic_version.map | 2 +-
>> drivers/net/avp/rte_pmd_avp_version.map | 2 +-
>> drivers/net/axgbe/rte_pmd_axgbe_version.map | 2 +-
>> drivers/net/bnx2x/rte_pmd_bnx2x_version.map | 2 +-
>> drivers/net/bnxt/rte_pmd_bnxt_version.map | 2 +-
>> drivers/net/bonding/rte_pmd_bond_version.map | 2 +-
>> drivers/net/cxgbe/rte_pmd_cxgbe_version.map | 2 +-
>> drivers/net/dpaa/rte_pmd_dpaa_version.map | 2 +-
>> drivers/net/e1000/rte_pmd_e1000_version.map | 2 +-
>> drivers/net/ena/rte_pmd_ena_version.map | 2 +-
>> drivers/net/enetc/rte_pmd_enetc_version.map | 2 +-
>> drivers/net/enic/rte_pmd_enic_version.map | 2 +-
>> .../net/failsafe/rte_pmd_failsafe_version.map | 2 +-
>> drivers/net/fm10k/rte_pmd_fm10k_version.map | 2 +-
>> drivers/net/hinic/rte_pmd_hinic_version.map | 2 +-
>> drivers/net/hns3/rte_pmd_hns3_version.map | 2 +-
>> drivers/net/i40e/rte_pmd_i40e_version.map | 2 +-
>> drivers/net/iavf/rte_pmd_iavf_version.map | 2 +-
>> drivers/net/ice/rte_pmd_ice_version.map | 2 +-
>> drivers/net/ionic/rte_pmd_ionic_version.map | 1 -
>> drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map | 2 +-
>> drivers/net/ixgbe/rte_pmd_ixgbe_version.map | 2 +-
>> drivers/net/kni/rte_pmd_kni_version.map | 2 +-
>> .../net/liquidio/rte_pmd_liquidio_version.map | 2 +-
>> drivers/net/memif/rte_pmd_memif_version.map | 2 +-
>> drivers/net/mlx4/rte_pmd_mlx4_version.map | 2 +-
>> drivers/net/mlx5/rte_pmd_mlx5_version.map | 6 +-
>> drivers/net/mvneta/rte_pmd_mvneta_version.map | 2 +-
>> drivers/net/mvpp2/rte_pmd_mvpp2_version.map | 2 +-
>> drivers/net/netvsc/rte_pmd_netvsc_version.map | 2 +-
>> drivers/net/nfb/rte_pmd_nfb_version.map | 2 +-
>> drivers/net/nfp/rte_pmd_nfp_version.map | 2 +-
>> drivers/net/null/rte_pmd_null_version.map | 2 +-
>> .../net/octeontx/rte_pmd_octeontx_version.map | 2 +-
>> .../octeontx2/rte_pmd_octeontx2_version.map | 2 +-
>> drivers/net/pcap/rte_pmd_pcap_version.map | 2 +-
>> drivers/net/pfe/rte_pmd_pfe_version.map | 2 +-
>> drivers/net/qede/rte_pmd_qede_version.map | 2 +-
>> drivers/net/ring/rte_pmd_ring_version.map | 2 +-
>> drivers/net/sfc/rte_pmd_sfc_version.map | 2 +-
>> .../net/softnic/rte_pmd_softnic_version.map | 2 +-
>> .../net/szedata2/rte_pmd_szedata2_version.map | 2 +-
>> drivers/net/tap/rte_pmd_tap_version.map | 2 +-
>> .../net/thunderx/rte_pmd_thunderx_version.map | 2 +-
>> .../rte_pmd_vdev_netvsc_version.map | 2 +-
>> drivers/net/vhost/rte_pmd_vhost_version.map | 2 +-
>> drivers/net/virtio/rte_pmd_virtio_version.map | 2 +-
>> .../net/vmxnet3/rte_pmd_vmxnet3_version.map | 2 +-
>> .../rte_rawdev_dpaa2_cmdif_version.map | 2 +-
>> .../rte_rawdev_dpaa2_qdma_version.map | 2 +-
>> .../raw/ifpga/rte_rawdev_ifpga_version.map | 2 +-
>> drivers/raw/ioat/rte_rawdev_ioat_version.map | 2 +-
>> drivers/raw/ntb/rte_rawdev_ntb_version.map | 2 +-
>> .../rte_rawdev_octeontx2_dma_version.map | 2 +-
>> .../rte_rawdev_octeontx2_ep_version.map | 1 -
>> .../skeleton/rte_rawdev_skeleton_version.map | 2 +-
>> drivers/vdpa/ifc/rte_pmd_ifc_version.map | 2 +-
>> lib/librte_acl/rte_acl_version.map | 2 +-
>> .../rte_bitratestats_version.map | 2 +-
>> lib/librte_cfgfile/rte_cfgfile_version.map | 2 +-
>> lib/librte_cmdline/rte_cmdline_version.map | 2 +-
>> .../rte_cryptodev_version.map | 7 +-
>> .../rte_distributor_version.map | 2 +-
>> lib/librte_eal/rte_eal_version.map | 10 +-
>> lib/librte_efd/rte_efd_version.map | 2 +-
>> lib/librte_ethdev/rte_ethdev_version.map | 2 +-
>> lib/librte_eventdev/rte_eventdev_version.map | 2 +-
>> lib/librte_gro/rte_gro_version.map | 2 +-
>> lib/librte_gso/rte_gso_version.map | 2 +-
>> lib/librte_hash/rte_hash_version.map | 2 +-
>> lib/librte_ip_frag/rte_ip_frag_version.map | 2 +-
>> lib/librte_jobstats/rte_jobstats_version.map | 2 +-
>> lib/librte_kni/rte_kni_version.map | 2 +-
>> lib/librte_kvargs/rte_kvargs_version.map | 2 +-
>> .../rte_latencystats_version.map | 2 +-
>> lib/librte_lpm/rte_lpm_version.map | 2 +-
>> lib/librte_mbuf/rte_mbuf_version.map | 2 +-
>> lib/librte_member/rte_member_version.map | 2 +-
>> lib/librte_mempool/rte_mempool_version.map | 6 +-
>> lib/librte_meter/rte_meter_version.map | 14 +-
>> lib/librte_metrics/rte_metrics_version.map | 2 +-
>> lib/librte_net/rte_net_version.map | 2 +-
>> lib/librte_pci/rte_pci_version.map | 2 +-
>> lib/librte_pdump/rte_pdump_version.map | 2 +-
>> lib/librte_pipeline/rte_pipeline_version.map | 2 +-
>> lib/librte_port/rte_port_version.map | 2 +-
>> lib/librte_power/rte_power_version.map | 2 +-
>> lib/librte_rawdev/rte_rawdev_version.map | 2 +-
>> lib/librte_reorder/rte_reorder_version.map | 2 +-
>> lib/librte_ring/rte_ring_version.map | 13 +-
>> lib/librte_sched/rte_sched_version.map | 2 +-
>> lib/librte_security/rte_security_version.map | 2 +-
>> lib/librte_table/rte_table_version.map | 2 +-
>> lib/librte_timer/rte_timer_version.map | 2 +-
>> lib/librte_vhost/rte_vhost_version.map | 2 +-
>> 151 files changed, 295 insertions(+), 311 deletions(-)
>> create mode 100644 doc/guides/rel_notes/release_20_11.rst
>>
>> diff --git a/.travis.yml b/.travis.yml
>> index 14f8124233..d6eeab371d 100644
>> --- a/.travis.yml
>> +++ b/.travis.yml
>> @@ -2,9 +2,6 @@
>> language: c
>> cache:
>> ccache: true
>> - directories:
>> - - libabigail
>> - - reference
>>
>> dist: bionic
>>
>> @@ -21,9 +18,6 @@ _aarch64_packages: &aarch64_packages
>> - *required_packages
>> - [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
>>
>> -_libabigail_build_packages: &libabigail_build_packages
>> - - [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
>> -
>> _build_32b_packages: &build_32b_packages
>> - *required_packages
>> - [gcc-multilib]
>> @@ -34,10 +28,6 @@ _doc_packages: &doc_packages
>> before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
>> script: ./.ci/${TRAVIS_OS_NAME}-build.sh
>>
>> -env:
>> - global:
>> - - REF_GIT_TAG=v20.05
>> -
>> jobs:
>> include:
>> # x86_64 gcc jobs
>> @@ -55,14 +45,6 @@ jobs:
>> packages:
>> - *required_packages
>> - *doc_packages
>> - - env: DEF_LIB="shared" ABI_CHECKS=1
>> - arch: amd64
>> - compiler: gcc
>> - addons:
>> - apt:
>> - packages:
>> - - *required_packages
>> - - *libabigail_build_packages
>> # x86_64 clang jobs
>> - env: DEF_LIB="static"
>> arch: amd64
>> @@ -116,14 +98,6 @@ jobs:
>> packages:
>> - *required_packages
>> - *doc_packages
>> - - env: DEF_LIB="shared" ABI_CHECKS=1
>> - arch: arm64
>> - compiler: gcc
>> - addons:
>> - apt:
>> - packages:
>> - - *required_packages
>> - - *libabigail_build_packages
>> # aarch64 clang jobs
>> - env: DEF_LIB="static"
>> arch: arm64
>> diff --git a/ABI_VERSION b/ABI_VERSION
>> index a9ac8dacb0..5f39e91446 100644
>> --- a/ABI_VERSION
>> +++ b/ABI_VERSION
>> @@ -1 +1 @@
>> -20.0.3
>> +21.0
>> diff --git a/VERSION b/VERSION
>> index 85e33446f8..3f02088ffa 100644
>> --- a/VERSION
>> +++ b/VERSION
>> @@ -1 +1 @@
>> -20.08.0
>> +20.11.0-rc0
>> diff --git a/config/meson.build b/config/meson.build
>> index cff8b33dd2..6996e5cbea 100644
>> --- a/config/meson.build
>> +++ b/config/meson.build
>> @@ -29,10 +29,7 @@ abi_version = run_command(find_program('cat', 'more'),
>> # and have the soname be all but the final part of the abi_version.
>> # e.g. v20.1 => librte_foo.so.20.1
>> # sonames => librte_foo.so.20
>> -# e.g. v20.0.1 => librte_foo.so.20.0.1
>> -# sonames => librte_foo.so.20.0
>> -abi_va = abi_version.split('.')
>> -so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1]
>> +so_version = abi_version.split('.')[0]
>>
>> # extract all version information into the build configuration
>> dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int())
>> diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
>> index 9fea822f36..025f2c01bc 100644
>> --- a/devtools/libabigail.abignore
>> +++ b/devtools/libabigail.abignore
>> @@ -7,106 +7,3 @@
>> symbol_version = INTERNAL
>> [suppress_variable]
>> symbol_version = INTERNAL
>> -
>> -; Ignore ABI 20.0.1 replaced with ABI 21
>> -[suppress_function]
>> - symbol_version = DPDK_20.0.1
>> -[suppress_variable]
>> - symbol_version = DPDK_20.0.1
>> -
>> -; Explicit ignore for driver-only ABI
>> -[suppress_type]
>> - name = rte_cryptodev_ops
>> -; Ignore this enum update as it is part of an experimental API
>> -[suppress_type]
>> - type_kind = enum
>> - name = rte_crypto_asym_xform_type
>> - changed_enumerators = RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END
>> -; Ignore updates of ring prod/cons
>> -[suppress_type]
>> - type_kind = struct
>> - name = rte_ring
>> -[suppress_type]
>> - type_kind = struct
>> - name = rte_event_ring
>> -; Ignore ethdev event enum update because new event cannot be
>> -; received if not registered
>> -[suppress_type]
>> - type_kind = enum
>> - name = rte_eth_event_type
>> - changed_enumerators = RTE_ETH_EVENT_MAX
>> -; Ignore this enum update as new flags remain unknown to applications
>> -[suppress_type]
>> - type_kind = enum
>> - name = rte_cpu_flag_t
>> - changed_enumerators = RTE_CPUFLAG_NUMFLAGS
>> -; Ignore Cryptodev AEAD xform enum and AEAD xform strings change
>> -; due to addition of Chacha20-Poly1305
>> -[suppress_type]
>> - type_kind = enum
>> - name = rte_crypto_aead_algorithm
>> - changed_enumerators = RTE_CRYPTO_AEAD_LIST_END
>> -[suppress_variable]
>> - name = rte_crypto_aead_algorithm_strings
>> -; Ignore updates of epoll event
>> -[suppress_type]
>> - type_kind = struct
>> - name = rte_epoll_event
>> -; Ignore updates of rte_mbuf_ext_shared_info refcnt_atomic
>> -[suppress_type]
>> - name = rte_mbuf_ext_shared_info
>> - has_data_member_inserted_between = {offset_of(refcnt_atomic), offset_of(refcnt_atomic)}
>> -
>> -;;;;;;;;;;;;;;;;;;;;;;
>> -; Temporary exceptions till DPDK 20.11
>> -;;;;;;;;;;;;;;;;;;;;;;
>> -; Ignore moving OCTEONTX2 stable functions to INTERNAL
>> -[suppress_file]
>> - file_name_regexp = ^librte_common_octeontx2\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_mempool_octeontx2\.
>> -; Ignore moving mlx5 stable functions to INTERNAL
>> -[suppress_file]
>> - file_name_regexp = ^librte_common_mlx5\.
>> -; Ignore moving DPAAx stable functions to INTERNAL
>> -[suppress_file]
>> - file_name_regexp = ^librte_common_dpaax\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_bus_fslmc\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_bus_dpaa\.
>> -[suppress_variable]
>> - name = rte_dpaa_bpid_info
>> -[suppress_variable]
>> - name = rte_dpaa_memsegs
>> -[suppress_variable]
>> - name = rte_dpaa2_bpid_info
>> -[suppress_function]
>> - name = rte_dpaa2_mbuf_alloc_bulk
>> -[suppress_function]
>> - name_regexp = ^dpaa2?_.*tach$
>> -; Ignore soname changes for experimental libraries
>> -[suppress_file]
>> - file_name_regexp = ^librte_bbdev\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_bpf\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_compressdev\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_fib\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_flow_classify\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_graph\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_ipsec\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_node\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_rcu\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_rib\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_telemetry\.
>> -[suppress_file]
>> - file_name_regexp = ^librte_stack\.
>> diff --git a/doc/guides/rel_notes/index.rst b/doc/guides/rel_notes/index.rst
>> index 05c9d837a4..fb70d1a5f3 100644
>> --- a/doc/guides/rel_notes/index.rst
>> +++ b/doc/guides/rel_notes/index.rst
>> @@ -8,6 +8,7 @@ Release Notes
>> :maxdepth: 1
>> :numbered:
>>
>> + release_20_11
>> release_20_08
>> release_20_05
>> release_20_02
>> diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
>> new file mode 100644
>> index 0000000000..df227a1773
>> --- /dev/null
>> +++ b/doc/guides/rel_notes/release_20_11.rst
>> @@ -0,0 +1,136 @@
>> +.. SPDX-License-Identifier: BSD-3-Clause
>> + Copyright 2020 The DPDK contributors
>> +
>> +.. include:: <isonum.txt>
>> +
>> +DPDK Release 20.11
>> +==================
>> +
>> +.. **Read this first.**
>> +
>> + The text in the sections below explains how to update the release notes.
>> +
>> + Use proper spelling, capitalization and punctuation in all sections.
>> +
>> + Variable and config names should be quoted as fixed width text:
>> + ``LIKE_THIS``.
>> +
>> + Build the docs and view the output file to ensure the changes are correct::
>> +
>> + make doc-guides-html
>> + xdg-open build/doc/html/guides/rel_notes/release_20_11.html
>> +
>> +
>> +New Features
>> +------------
>> +
>> +.. This section should contain new features added in this release.
>> + Sample format:
>> +
>> + * **Add a title in the past tense with a full stop.**
>> +
>> + Add a short 1-2 sentence description in the past tense.
>> + The description should be enough to allow someone scanning
>> + the release notes to understand the new feature.
>> +
>> + If the feature adds a lot of sub-features you can use a bullet list
>> + like this:
>> +
>> + * Added feature foo to do something.
>> + * Enhanced feature bar to do something else.
>> +
>> + Refer to the previous release notes for examples.
>> +
>> + Suggested order in release notes items:
>> + * Core libs (EAL, mempool, ring, mbuf, buses)
>> + * Device abstraction libs and PMDs
>> + - ethdev (lib, PMDs)
>> + - cryptodev (lib, PMDs)
>> + - eventdev (lib, PMDs)
>> + - etc
>> + * Other libs
>> + * Apps, Examples, Tools (if significant)
>> +
>> + This section is a comment. Do not overwrite or remove it.
>> + Also, make sure to start the actual text at the margin.
>> + =======================================================
>> +
>> +
>> +Removed Items
>> +-------------
>> +
>> +.. This section should contain removed items in this release. Sample format:
>> +
>> + * Add a short 1-2 sentence description of the removed item
>> + in the past tense.
>> +
>> + This section is a comment. Do not overwrite or remove it.
>> + Also, make sure to start the actual text at the margin.
>> + =======================================================
>> +
>> +
>> +API Changes
>> +-----------
>> +
>> +.. This section should contain API changes. Sample format:
>> +
>> + * sample: Add a short 1-2 sentence description of the API change
>> + which was announced in the previous releases and made in this release.
>> + Start with a scope label like "ethdev:".
>> + Use fixed width quotes for ``function_names`` or ``struct_names``.
>> + Use the past tense.
>> +
>> + This section is a comment. Do not overwrite or remove it.
>> + Also, make sure to start the actual text at the margin.
>> + =======================================================
>> +
>> +
>> +ABI Changes
>> +-----------
>> +
>> +.. This section should contain ABI changes. Sample format:
>> +
>> + * sample: Add a short 1-2 sentence description of the ABI change
>> + which was announced in the previous releases and made in this release.
>> + Start with a scope label like "ethdev:".
>> + Use fixed width quotes for ``function_names`` or ``struct_names``.
>> + Use the past tense.
>> +
>> + This section is a comment. Do not overwrite or remove it.
>> + Also, make sure to start the actual text at the margin.
>> + =======================================================
>> +
>> +
>> +Known Issues
>> +------------
>> +
>> +.. This section should contain new known issues in this release. Sample format:
>> +
>> + * **Add title in present tense with full stop.**
>> +
>> + Add a short 1-2 sentence description of the known issue
>> + in the present tense. Add information on any known workarounds.
>> +
>> + This section is a comment. Do not overwrite or remove it.
>> + Also, make sure to start the actual text at the margin.
>> + =======================================================
>> +
>> +
>> +Tested Platforms
>> +----------------
>> +
>> +.. This section should contain a list of platforms that were tested
>> + with this release.
>> +
>> + The format is:
>> +
>> + * <vendor> platform with <vendor> <type of devices> combinations
>> +
>> + * List of CPU
>> + * List of OS
>> + * List of devices
>> + * Other relevant details...
>> +
>> + This section is a comment. Do not overwrite or remove it.
>> + Also, make sure to start the actual text at the margin.
>> + =======================================================
>> diff --git a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
>> index b0fb9717fa..d723bc9b0e 100644
>> --- a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
>> +++ b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>>
>> diff --git a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
>> index 6bcea2cc7f..a2ab086cd8 100644
>> --- a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
>> +++ b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>>
>> diff --git a/drivers/baseband/null/rte_pmd_bbdev_null_version.map b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/baseband/null/rte_pmd_bbdev_null_version.map
>> +++ b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
>> +++ b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/bus/ifpga/rte_bus_ifpga_version.map b/drivers/bus/ifpga/rte_bus_ifpga_version.map
>> index 05b4a28c1b..6e8f85da3c 100644
>> --- a/drivers/bus/ifpga/rte_bus_ifpga_version.map
>> +++ b/drivers/bus/ifpga/rte_bus_ifpga_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_ifpga_driver_register;
>> diff --git a/drivers/bus/pci/rte_bus_pci_version.map b/drivers/bus/pci/rte_bus_pci_version.map
>> index 012d817e14..5b75d23671 100644
>> --- a/drivers/bus/pci/rte_bus_pci_version.map
>> +++ b/drivers/bus/pci/rte_bus_pci_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_pci_dump;
>> diff --git a/drivers/bus/vdev/rte_bus_vdev_version.map b/drivers/bus/vdev/rte_bus_vdev_version.map
>> index 5abb10ecb0..61b6cefcee 100644
>> --- a/drivers/bus/vdev/rte_bus_vdev_version.map
>> +++ b/drivers/bus/vdev/rte_bus_vdev_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_vdev_add_custom_scan;
>> diff --git a/drivers/bus/vmbus/rte_bus_vmbus_version.map b/drivers/bus/vmbus/rte_bus_vmbus_version.map
>> index cbaaebc06c..fa8e91c282 100644
>> --- a/drivers/bus/vmbus/rte_bus_vmbus_version.map
>> +++ b/drivers/bus/vmbus/rte_bus_vmbus_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_vmbus_chan_close;
>> diff --git a/drivers/common/cpt/rte_common_cpt_version.map b/drivers/common/cpt/rte_common_cpt_version.map
>> index 8c65cde6cf..4d85021a87 100644
>> --- a/drivers/common/cpt/rte_common_cpt_version.map
>> +++ b/drivers/common/cpt/rte_common_cpt_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> cpt_pmd_ops_helper_asym_get_mlen;
>> diff --git a/drivers/common/iavf/rte_common_iavf_version.map b/drivers/common/iavf/rte_common_iavf_version.map
>> index 92ceac108d..44142499e0 100644
>> --- a/drivers/common/iavf/rte_common_iavf_version.map
>> +++ b/drivers/common/iavf/rte_common_iavf_version.map
>> @@ -1,11 +1,11 @@
>> DPDK_21 {
>> global:
>>
>> - iavf_init_adminq;
>> - iavf_shutdown_adminq;
>> iavf_aq_send_msg_to_pf;
>> iavf_clean_arq_element;
>> + iavf_init_adminq;
>> iavf_set_mac_type;
>> + iavf_shutdown_adminq;
>> iavf_vf_parse_hw_config;
>>
>> local: *;
>> diff --git a/drivers/common/mlx5/rte_common_mlx5_version.map b/drivers/common/mlx5/rte_common_mlx5_version.map
>> index 7729d0dd04..c4d57c08a7 100644
>> --- a/drivers/common/mlx5/rte_common_mlx5_version.map
>> +++ b/drivers/common/mlx5/rte_common_mlx5_version.map
>> @@ -93,4 +93,3 @@ INTERNAL {
>>
>> mlx5_pci_driver_register;
>> };
>> -
>> diff --git a/drivers/common/mvep/rte_common_mvep_version.map b/drivers/common/mvep/rte_common_mvep_version.map
>> index 030928439d..e5af82c61d 100644
>> --- a/drivers/common/mvep/rte_common_mvep_version.map
>> +++ b/drivers/common/mvep/rte_common_mvep_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_mvep_deinit;
>> diff --git a/drivers/common/octeontx/rte_common_octeontx_version.map b/drivers/common/octeontx/rte_common_octeontx_version.map
>> index 5f6aa8bd3a..30f3fa65e0 100644
>> --- a/drivers/common/octeontx/rte_common_octeontx_version.map
>> +++ b/drivers/common/octeontx/rte_common_octeontx_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> octeontx_get_global_domain;
>> diff --git a/drivers/compress/isal/rte_pmd_isal_version.map b/drivers/compress/isal/rte_pmd_isal_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/compress/isal/rte_pmd_isal_version.map
>> +++ b/drivers/compress/isal/rte_pmd_isal_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
>> +++ b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/compress/qat/rte_pmd_qat_version.map b/drivers/compress/qat/rte_pmd_qat_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/compress/qat/rte_pmd_qat_version.map
>> +++ b/drivers/compress/qat/rte_pmd_qat_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/compress/zlib/rte_pmd_zlib_version.map b/drivers/compress/zlib/rte_pmd_zlib_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/compress/zlib/rte_pmd_zlib_version.map
>> +++ b/drivers/compress/zlib/rte_pmd_zlib_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
>> +++ b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
>> +++ b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/armv8/rte_pmd_armv8_version.map b/drivers/crypto/armv8/rte_pmd_armv8_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/armv8/rte_pmd_armv8_version.map
>> +++ b/drivers/crypto/armv8/rte_pmd_armv8_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
>> +++ b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/ccp/rte_pmd_ccp_version.map b/drivers/crypto/ccp/rte_pmd_ccp_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/ccp/rte_pmd_ccp_version.map
>> +++ b/drivers/crypto/ccp/rte_pmd_ccp_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
>> +++ b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
>> +++ b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
>> +++ b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/null/rte_pmd_null_crypto_version.map b/drivers/crypto/null/rte_pmd_null_crypto_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/null/rte_pmd_null_crypto_version.map
>> +++ b/drivers/crypto/null/rte_pmd_null_crypto_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
>> +++ b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
>> +++ b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/openssl/rte_pmd_openssl_version.map b/drivers/crypto/openssl/rte_pmd_openssl_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/openssl/rte_pmd_openssl_version.map
>> +++ b/drivers/crypto/openssl/rte_pmd_openssl_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
>> index 077afedce7..ca6f102d9f 100644
>> --- a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
>> +++ b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_cryptodev_scheduler_load_user_scheduler;
>> diff --git a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
>> +++ b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
>> +++ b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/crypto/zuc/rte_pmd_zuc_version.map b/drivers/crypto/zuc/rte_pmd_zuc_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/crypto/zuc/rte_pmd_zuc_version.map
>> +++ b/drivers/crypto/zuc/rte_pmd_zuc_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
>> +++ b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
>> +++ b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/event/dsw/rte_pmd_dsw_event_version.map b/drivers/event/dsw/rte_pmd_dsw_event_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/event/dsw/rte_pmd_dsw_event_version.map
>> +++ b/drivers/event/dsw/rte_pmd_dsw_event_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
>> +++ b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
>> +++ b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/event/opdl/rte_pmd_opdl_event_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/event/opdl/rte_pmd_opdl_event_version.map
>> +++ b/drivers/event/opdl/rte_pmd_opdl_event_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
>> +++ b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/event/sw/rte_pmd_sw_event_version.map b/drivers/event/sw/rte_pmd_sw_event_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/event/sw/rte_pmd_sw_event_version.map
>> +++ b/drivers/event/sw/rte_pmd_sw_event_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/mempool/bucket/rte_mempool_bucket_version.map b/drivers/mempool/bucket/rte_mempool_bucket_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/mempool/bucket/rte_mempool_bucket_version.map
>> +++ b/drivers/mempool/bucket/rte_mempool_bucket_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
>> index 686b024624..473b8c90e8 100644
>> --- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
>> +++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_dpaa2_mbuf_from_buf_addr;
>> diff --git a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
>> +++ b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/mempool/ring/rte_mempool_ring_version.map b/drivers/mempool/ring/rte_mempool_ring_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/mempool/ring/rte_mempool_ring_version.map
>> +++ b/drivers/mempool/ring/rte_mempool_ring_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/mempool/stack/rte_mempool_stack_version.map b/drivers/mempool/stack/rte_mempool_stack_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/mempool/stack/rte_mempool_stack_version.map
>> +++ b/drivers/mempool/stack/rte_mempool_stack_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/af_packet/rte_pmd_af_packet_version.map b/drivers/net/af_packet/rte_pmd_af_packet_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/af_packet/rte_pmd_af_packet_version.map
>> +++ b/drivers/net/af_packet/rte_pmd_af_packet_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
>> +++ b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/ark/rte_pmd_ark_version.map b/drivers/net/ark/rte_pmd_ark_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/ark/rte_pmd_ark_version.map
>> +++ b/drivers/net/ark/rte_pmd_ark_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/atlantic/rte_pmd_atlantic_version.map b/drivers/net/atlantic/rte_pmd_atlantic_version.map
>> index 9b04838d84..6e17832684 100644
>> --- a/drivers/net/atlantic/rte_pmd_atlantic_version.map
>> +++ b/drivers/net/atlantic/rte_pmd_atlantic_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>>
>> diff --git a/drivers/net/avp/rte_pmd_avp_version.map b/drivers/net/avp/rte_pmd_avp_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/avp/rte_pmd_avp_version.map
>> +++ b/drivers/net/avp/rte_pmd_avp_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/axgbe/rte_pmd_axgbe_version.map b/drivers/net/axgbe/rte_pmd_axgbe_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/axgbe/rte_pmd_axgbe_version.map
>> +++ b/drivers/net/axgbe/rte_pmd_axgbe_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
>> +++ b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/bnxt/rte_pmd_bnxt_version.map b/drivers/net/bnxt/rte_pmd_bnxt_version.map
>> index bb52562347..a050d86ab7 100644
>> --- a/drivers/net/bnxt/rte_pmd_bnxt_version.map
>> +++ b/drivers/net/bnxt/rte_pmd_bnxt_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_pmd_bnxt_get_vf_rx_status;
>> diff --git a/drivers/net/bonding/rte_pmd_bond_version.map b/drivers/net/bonding/rte_pmd_bond_version.map
>> index 270c7d5d55..df81ee74c1 100644
>> --- a/drivers/net/bonding/rte_pmd_bond_version.map
>> +++ b/drivers/net/bonding/rte_pmd_bond_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_eth_bond_8023ad_agg_selection_get;
>> diff --git a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
>> +++ b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
>> index 774aa0de45..87ce8f5b6c 100644
>> --- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
>> +++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_pmd_dpaa_set_tx_loopback;
>> diff --git a/drivers/net/e1000/rte_pmd_e1000_version.map b/drivers/net/e1000/rte_pmd_e1000_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/e1000/rte_pmd_e1000_version.map
>> +++ b/drivers/net/e1000/rte_pmd_e1000_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/ena/rte_pmd_ena_version.map b/drivers/net/ena/rte_pmd_ena_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/ena/rte_pmd_ena_version.map
>> +++ b/drivers/net/ena/rte_pmd_ena_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/enetc/rte_pmd_enetc_version.map b/drivers/net/enetc/rte_pmd_enetc_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/enetc/rte_pmd_enetc_version.map
>> +++ b/drivers/net/enetc/rte_pmd_enetc_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/enic/rte_pmd_enic_version.map b/drivers/net/enic/rte_pmd_enic_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/enic/rte_pmd_enic_version.map
>> +++ b/drivers/net/enic/rte_pmd_enic_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/failsafe/rte_pmd_failsafe_version.map b/drivers/net/failsafe/rte_pmd_failsafe_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/failsafe/rte_pmd_failsafe_version.map
>> +++ b/drivers/net/failsafe/rte_pmd_failsafe_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/fm10k/rte_pmd_fm10k_version.map b/drivers/net/fm10k/rte_pmd_fm10k_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/fm10k/rte_pmd_fm10k_version.map
>> +++ b/drivers/net/fm10k/rte_pmd_fm10k_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/hinic/rte_pmd_hinic_version.map b/drivers/net/hinic/rte_pmd_hinic_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/hinic/rte_pmd_hinic_version.map
>> +++ b/drivers/net/hinic/rte_pmd_hinic_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/hns3/rte_pmd_hns3_version.map b/drivers/net/hns3/rte_pmd_hns3_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/hns3/rte_pmd_hns3_version.map
>> +++ b/drivers/net/hns3/rte_pmd_hns3_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/i40e/rte_pmd_i40e_version.map b/drivers/net/i40e/rte_pmd_i40e_version.map
>> index f6cd3b3566..413c58cb21 100644
>> --- a/drivers/net/i40e/rte_pmd_i40e_version.map
>> +++ b/drivers/net/i40e/rte_pmd_i40e_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_pmd_i40e_add_vf_mac_addr;
>> diff --git a/drivers/net/iavf/rte_pmd_iavf_version.map b/drivers/net/iavf/rte_pmd_iavf_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/iavf/rte_pmd_iavf_version.map
>> +++ b/drivers/net/iavf/rte_pmd_iavf_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/ice/rte_pmd_ice_version.map b/drivers/net/ice/rte_pmd_ice_version.map
>> index d04b194c13..91f40225e9 100644
>> --- a/drivers/net/ice/rte_pmd_ice_version.map
>> +++ b/drivers/net/ice/rte_pmd_ice_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>>
>> diff --git a/drivers/net/ionic/rte_pmd_ionic_version.map b/drivers/net/ionic/rte_pmd_ionic_version.map
>> index acdaf587d2..4a76d1d52d 100644
>> --- a/drivers/net/ionic/rte_pmd_ionic_version.map
>> +++ b/drivers/net/ionic/rte_pmd_ionic_version.map
>> @@ -1,4 +1,3 @@
>> DPDK_21 {
>> -
>> local: *;
>> };
>> diff --git a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
>> index 7e348e99b1..d8cc1026e0 100644
>> --- a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
>> +++ b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>>
>> diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
>> index 911f8083f1..9402802b04 100644
>> --- a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
>> +++ b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_pmd_ixgbe_bypass_event_show;
>> diff --git a/drivers/net/kni/rte_pmd_kni_version.map b/drivers/net/kni/rte_pmd_kni_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/kni/rte_pmd_kni_version.map
>> +++ b/drivers/net/kni/rte_pmd_kni_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/liquidio/rte_pmd_liquidio_version.map b/drivers/net/liquidio/rte_pmd_liquidio_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/liquidio/rte_pmd_liquidio_version.map
>> +++ b/drivers/net/liquidio/rte_pmd_liquidio_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/memif/rte_pmd_memif_version.map b/drivers/net/memif/rte_pmd_memif_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/memif/rte_pmd_memif_version.map
>> +++ b/drivers/net/memif/rte_pmd_memif_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/mlx4/rte_pmd_mlx4_version.map b/drivers/net/mlx4/rte_pmd_mlx4_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/mlx4/rte_pmd_mlx4_version.map
>> +++ b/drivers/net/mlx4/rte_pmd_mlx4_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/mlx5/rte_pmd_mlx5_version.map b/drivers/net/mlx5/rte_pmd_mlx5_version.map
>> index c8b1031b02..bc1d3d06bf 100644
>> --- a/drivers/net/mlx5/rte_pmd_mlx5_version.map
>> +++ b/drivers/net/mlx5/rte_pmd_mlx5_version.map
>> @@ -1,10 +1,10 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>>
>> EXPERIMENTAL {
>> - global:
>> + global:
>>
>> - # added in 20.02
>> + # added in 20.02
>> rte_pmd_mlx5_get_dyn_flag_names;
>> };
>> diff --git a/drivers/net/mvneta/rte_pmd_mvneta_version.map b/drivers/net/mvneta/rte_pmd_mvneta_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/mvneta/rte_pmd_mvneta_version.map
>> +++ b/drivers/net/mvneta/rte_pmd_mvneta_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
>> +++ b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/netvsc/rte_pmd_netvsc_version.map b/drivers/net/netvsc/rte_pmd_netvsc_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/netvsc/rte_pmd_netvsc_version.map
>> +++ b/drivers/net/netvsc/rte_pmd_netvsc_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/nfb/rte_pmd_nfb_version.map b/drivers/net/nfb/rte_pmd_nfb_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/nfb/rte_pmd_nfb_version.map
>> +++ b/drivers/net/nfb/rte_pmd_nfb_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/nfp/rte_pmd_nfp_version.map b/drivers/net/nfp/rte_pmd_nfp_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/nfp/rte_pmd_nfp_version.map
>> +++ b/drivers/net/nfp/rte_pmd_nfp_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/null/rte_pmd_null_version.map b/drivers/net/null/rte_pmd_null_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/null/rte_pmd_null_version.map
>> +++ b/drivers/net/null/rte_pmd_null_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/octeontx/rte_pmd_octeontx_version.map b/drivers/net/octeontx/rte_pmd_octeontx_version.map
>> index f7cae02fac..6dda72890c 100644
>> --- a/drivers/net/octeontx/rte_pmd_octeontx_version.map
>> +++ b/drivers/net/octeontx/rte_pmd_octeontx_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_octeontx_pchan_map;
>> diff --git a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
>> +++ b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/pcap/rte_pmd_pcap_version.map b/drivers/net/pcap/rte_pmd_pcap_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/pcap/rte_pmd_pcap_version.map
>> +++ b/drivers/net/pcap/rte_pmd_pcap_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/pfe/rte_pmd_pfe_version.map b/drivers/net/pfe/rte_pmd_pfe_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/pfe/rte_pmd_pfe_version.map
>> +++ b/drivers/net/pfe/rte_pmd_pfe_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/qede/rte_pmd_qede_version.map b/drivers/net/qede/rte_pmd_qede_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/qede/rte_pmd_qede_version.map
>> +++ b/drivers/net/qede/rte_pmd_qede_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/ring/rte_pmd_ring_version.map b/drivers/net/ring/rte_pmd_ring_version.map
>> index ebb6be2733..29770fe3e4 100644
>> --- a/drivers/net/ring/rte_pmd_ring_version.map
>> +++ b/drivers/net/ring/rte_pmd_ring_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_eth_from_ring;
>> diff --git a/drivers/net/sfc/rte_pmd_sfc_version.map b/drivers/net/sfc/rte_pmd_sfc_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/sfc/rte_pmd_sfc_version.map
>> +++ b/drivers/net/sfc/rte_pmd_sfc_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/softnic/rte_pmd_softnic_version.map b/drivers/net/softnic/rte_pmd_softnic_version.map
>> index 50f113d5a2..530d2e6b72 100644
>> --- a/drivers/net/softnic/rte_pmd_softnic_version.map
>> +++ b/drivers/net/softnic/rte_pmd_softnic_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_pmd_softnic_run;
>> diff --git a/drivers/net/szedata2/rte_pmd_szedata2_version.map b/drivers/net/szedata2/rte_pmd_szedata2_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/szedata2/rte_pmd_szedata2_version.map
>> +++ b/drivers/net/szedata2/rte_pmd_szedata2_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/tap/rte_pmd_tap_version.map b/drivers/net/tap/rte_pmd_tap_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/tap/rte_pmd_tap_version.map
>> +++ b/drivers/net/tap/rte_pmd_tap_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/thunderx/rte_pmd_thunderx_version.map b/drivers/net/thunderx/rte_pmd_thunderx_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/thunderx/rte_pmd_thunderx_version.map
>> +++ b/drivers/net/thunderx/rte_pmd_thunderx_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
>> +++ b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/vhost/rte_pmd_vhost_version.map b/drivers/net/vhost/rte_pmd_vhost_version.map
>> index 16b591ccc4..634255829e 100644
>> --- a/drivers/net/vhost/rte_pmd_vhost_version.map
>> +++ b/drivers/net/vhost/rte_pmd_vhost_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_eth_vhost_get_queue_event;
>> diff --git a/drivers/net/virtio/rte_pmd_virtio_version.map b/drivers/net/virtio/rte_pmd_virtio_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/virtio/rte_pmd_virtio_version.map
>> +++ b/drivers/net/virtio/rte_pmd_virtio_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
>> +++ b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
>> +++ b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
>> index ca6a0d7626..280c79ea9c 100644
>> --- a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
>> +++ b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_qdma_attr_get;
>> diff --git a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
>> +++ b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/raw/ioat/rte_rawdev_ioat_version.map b/drivers/raw/ioat/rte_rawdev_ioat_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/raw/ioat/rte_rawdev_ioat_version.map
>> +++ b/drivers/raw/ioat/rte_rawdev_ioat_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/raw/ntb/rte_rawdev_ntb_version.map b/drivers/raw/ntb/rte_rawdev_ntb_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/raw/ntb/rte_rawdev_ntb_version.map
>> +++ b/drivers/raw/ntb/rte_rawdev_ntb_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
>> +++ b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
>> index acdaf587d2..4a76d1d52d 100644
>> --- a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
>> +++ b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
>> @@ -1,4 +1,3 @@
>> DPDK_21 {
>> -
>> local: *;
>> };
>> diff --git a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
>> +++ b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/drivers/vdpa/ifc/rte_pmd_ifc_version.map b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
>> index f9f17e4f6e..4a76d1d52d 100644
>> --- a/drivers/vdpa/ifc/rte_pmd_ifc_version.map
>> +++ b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
>> @@ -1,3 +1,3 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> local: *;
>> };
>> diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
>> index c3daca8115..d97f2927bf 100644
>> --- a/lib/librte_acl/rte_acl_version.map
>> +++ b/lib/librte_acl/rte_acl_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_acl_add_rules;
>> diff --git a/lib/librte_bitratestats/rte_bitratestats_version.map b/lib/librte_bitratestats/rte_bitratestats_version.map
>> index 88fc2912db..463f78a53a 100644
>> --- a/lib/librte_bitratestats/rte_bitratestats_version.map
>> +++ b/lib/librte_bitratestats/rte_bitratestats_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_stats_bitrate_calc;
>> diff --git a/lib/librte_cfgfile/rte_cfgfile_version.map b/lib/librte_cfgfile/rte_cfgfile_version.map
>> index 22c999fe16..180c42b717 100644
>> --- a/lib/librte_cfgfile/rte_cfgfile_version.map
>> +++ b/lib/librte_cfgfile/rte_cfgfile_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_cfgfile_add_entry;
>> diff --git a/lib/librte_cmdline/rte_cmdline_version.map b/lib/librte_cmdline/rte_cmdline_version.map
>> index 95fce812ff..a99104457f 100644
>> --- a/lib/librte_cmdline/rte_cmdline_version.map
>> +++ b/lib/librte_cmdline/rte_cmdline_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> cirbuf_add_buf_head;
>> diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map
>> index a7a78dc41f..02f6dcf724 100644
>> --- a/lib/librte_cryptodev/rte_cryptodev_version.map
>> +++ b/lib/librte_cryptodev/rte_cryptodev_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_crypto_aead_algorithm_strings;
>> @@ -58,12 +58,11 @@ DPDK_20.0 {
>> local: *;
>> };
>>
>> -DPDK_21 {
>> +DPDK_20.0 {
>> global:
>> rte_cryptodev_info_get;
>> rte_cryptodev_sym_capability_get;
>> -} DPDK_20.0;
>> -
>> +};
>>
>> EXPERIMENTAL {
>> global:
>> diff --git a/lib/librte_distributor/rte_distributor_version.map b/lib/librte_distributor/rte_distributor_version.map
>> index 1b7c643005..1ddcd01fe6 100644
>> --- a/lib/librte_distributor/rte_distributor_version.map
>> +++ b/lib/librte_distributor/rte_distributor_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_distributor_clear_returns;
>> diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
>> index bf0c17c233..0b18e2ef85 100644
>> --- a/lib/librte_eal/rte_eal_version.map
>> +++ b/lib/librte_eal/rte_eal_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> __rte_panic;
>> @@ -6,6 +6,7 @@ DPDK_20.0 {
>> eal_timer_source;
>> per_lcore__lcore_id;
>> per_lcore__rte_errno;
>> + per_lcore__thread_id;
>> rte_bus_dump;
>> rte_bus_find;
>> rte_bus_find_by_device;
>> @@ -221,13 +222,6 @@ DPDK_20.0 {
>> local: *;
>> };
>>
>> -DPDK_21 {
>> - global:
>> -
>> - per_lcore__thread_id;
>> -
>> -} DPDK_20.0;
>> -
>> EXPERIMENTAL {
>> global:
>>
>> diff --git a/lib/librte_efd/rte_efd_version.map b/lib/librte_efd/rte_efd_version.map
>> index e010eecfe4..425c0a85a9 100644
>> --- a/lib/librte_efd/rte_efd_version.map
>> +++ b/lib/librte_efd/rte_efd_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_efd_create;
>> diff --git a/lib/librte_ethdev/rte_ethdev_version.map b/lib/librte_ethdev/rte_ethdev_version.map
>> index 1212a17d32..8d9d6b1c67 100644
>> --- a/lib/librte_ethdev/rte_ethdev_version.map
>> +++ b/lib/librte_ethdev/rte_ethdev_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> _rte_eth_dev_callback_process;
>> diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map
>> index 91a62cd077..3d9d0ca054 100644
>> --- a/lib/librte_eventdev/rte_eventdev_version.map
>> +++ b/lib/librte_eventdev/rte_eventdev_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_event_crypto_adapter_caps_get;
>> diff --git a/lib/librte_gro/rte_gro_version.map b/lib/librte_gro/rte_gro_version.map
>> index 9f6fe79e57..19dc66b0d4 100644
>> --- a/lib/librte_gro/rte_gro_version.map
>> +++ b/lib/librte_gro/rte_gro_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_gro_ctx_create;
>> diff --git a/lib/librte_gso/rte_gso_version.map b/lib/librte_gso/rte_gso_version.map
>> index 8505a59c27..60aa1b54e4 100644
>> --- a/lib/librte_gso/rte_gso_version.map
>> +++ b/lib/librte_gso/rte_gso_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_gso_segment;
>> diff --git a/lib/librte_hash/rte_hash_version.map b/lib/librte_hash/rte_hash_version.map
>> index c2a909443d..c0db81014f 100644
>> --- a/lib/librte_hash/rte_hash_version.map
>> +++ b/lib/librte_hash/rte_hash_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_fbk_hash_create;
>> diff --git a/lib/librte_ip_frag/rte_ip_frag_version.map b/lib/librte_ip_frag/rte_ip_frag_version.map
>> index 5dd34f828c..82b308ddb0 100644
>> --- a/lib/librte_ip_frag/rte_ip_frag_version.map
>> +++ b/lib/librte_ip_frag/rte_ip_frag_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_ip_frag_free_death_row;
>> diff --git a/lib/librte_jobstats/rte_jobstats_version.map b/lib/librte_jobstats/rte_jobstats_version.map
>> index dbd2664ae2..3e166ad548 100644
>> --- a/lib/librte_jobstats/rte_jobstats_version.map
>> +++ b/lib/librte_jobstats/rte_jobstats_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_jobstats_abort;
>> diff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map
>> index 9cd3cedc54..a93da95f36 100644
>> --- a/lib/librte_kni/rte_kni_version.map
>> +++ b/lib/librte_kni/rte_kni_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_kni_alloc;
>> diff --git a/lib/librte_kvargs/rte_kvargs_version.map b/lib/librte_kvargs/rte_kvargs_version.map
>> index 3ba0f4b59c..ed375bf4a3 100644
>> --- a/lib/librte_kvargs/rte_kvargs_version.map
>> +++ b/lib/librte_kvargs/rte_kvargs_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_kvargs_count;
>> diff --git a/lib/librte_latencystats/rte_latencystats_version.map b/lib/librte_latencystats/rte_latencystats_version.map
>> index e04e63463f..0c4360ab43 100644
>> --- a/lib/librte_latencystats/rte_latencystats_version.map
>> +++ b/lib/librte_latencystats/rte_latencystats_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_latencystats_get;
>> diff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map
>> index bfccd7eacc..b4d437cc75 100644
>> --- a/lib/librte_lpm/rte_lpm_version.map
>> +++ b/lib/librte_lpm/rte_lpm_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_lpm6_add;
>> diff --git a/lib/librte_mbuf/rte_mbuf_version.map b/lib/librte_mbuf/rte_mbuf_version.map
>> index ab161bcdc7..a011aaead3 100644
>> --- a/lib/librte_mbuf/rte_mbuf_version.map
>> +++ b/lib/librte_mbuf/rte_mbuf_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> __rte_pktmbuf_linearize;
>> diff --git a/lib/librte_member/rte_member_version.map b/lib/librte_member/rte_member_version.map
>> index 87780ae611..b8c6322e73 100644
>> --- a/lib/librte_member/rte_member_version.map
>> +++ b/lib/librte_member/rte_member_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_member_add;
>> diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map
>> index 826a0b8824..50e22ee020 100644
>> --- a/lib/librte_mempool/rte_mempool_version.map
>> +++ b/lib/librte_mempool/rte_mempool_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_mempool_audit;
>> @@ -31,12 +31,12 @@ DPDK_20.0 {
>> local: *;
>> };
>>
>> -DPDK_21 {
>> +DPDK_20.0 {
>> global:
>>
>> rte_mempool_populate_iova;
>> rte_mempool_populate_virt;
>> -} DPDK_20.0;
>> +};
>>
>> EXPERIMENTAL {
>> global:
>> diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
>> index 58859d4d76..e2a2607f28 100644
>> --- a/lib/librte_meter/rte_meter_version.map
>> +++ b/lib/librte_meter/rte_meter_version.map
>> @@ -1,24 +1,18 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_meter_srtcm_config;
>> rte_meter_srtcm_profile_config;
>> rte_meter_trtcm_config;
>> rte_meter_trtcm_profile_config;
>> + rte_meter_trtcm_rfc4115_config;
>> + rte_meter_trtcm_rfc4115_profile_config;
>>
>> local: *;
>> };
>>
>> -DPDK_21 {
>> - global:
>> -
>> - rte_meter_trtcm_rfc4115_config;
>> - rte_meter_trtcm_rfc4115_profile_config;
>> -
>> -} DPDK_20.0;
>> -
>> EXPERIMENTAL {
>> - global:
>> + global:
>>
>> rte_meter_trtcm_rfc4115_config;
>> rte_meter_trtcm_rfc4115_profile_config;
>> diff --git a/lib/librte_metrics/rte_metrics_version.map b/lib/librte_metrics/rte_metrics_version.map
>> index c88939b117..20f99cd19a 100644
>> --- a/lib/librte_metrics/rte_metrics_version.map
>> +++ b/lib/librte_metrics/rte_metrics_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_metrics_get_names;
>> diff --git a/lib/librte_net/rte_net_version.map b/lib/librte_net/rte_net_version.map
>> index 8a4e75a3a0..621f237945 100644
>> --- a/lib/librte_net/rte_net_version.map
>> +++ b/lib/librte_net/rte_net_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_eth_random_addr;
>> diff --git a/lib/librte_pci/rte_pci_version.map b/lib/librte_pci/rte_pci_version.map
>> index 67eb845796..cd77c9dc9e 100644
>> --- a/lib/librte_pci/rte_pci_version.map
>> +++ b/lib/librte_pci/rte_pci_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> pci_map_resource;
>> diff --git a/lib/librte_pdump/rte_pdump_version.map b/lib/librte_pdump/rte_pdump_version.map
>> index 6d02ccce6d..2f9e952d0b 100644
>> --- a/lib/librte_pdump/rte_pdump_version.map
>> +++ b/lib/librte_pdump/rte_pdump_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_pdump_disable;
>> diff --git a/lib/librte_pipeline/rte_pipeline_version.map b/lib/librte_pipeline/rte_pipeline_version.map
>> index 64d38afecd..9ed80eb041 100644
>> --- a/lib/librte_pipeline/rte_pipeline_version.map
>> +++ b/lib/librte_pipeline/rte_pipeline_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_pipeline_ah_packet_drop;
>> diff --git a/lib/librte_port/rte_port_version.map b/lib/librte_port/rte_port_version.map
>> index 18c6154672..bd1fbb66b0 100644
>> --- a/lib/librte_port/rte_port_version.map
>> +++ b/lib/librte_port/rte_port_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_port_ethdev_reader_ops;
>> diff --git a/lib/librte_power/rte_power_version.map b/lib/librte_power/rte_power_version.map
>> index 00ee5753e2..69ca9af616 100644
>> --- a/lib/librte_power/rte_power_version.map
>> +++ b/lib/librte_power/rte_power_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_power_exit;
>> diff --git a/lib/librte_rawdev/rte_rawdev_version.map b/lib/librte_rawdev/rte_rawdev_version.map
>> index 63b54f598b..eb29a3ac0d 100644
>> --- a/lib/librte_rawdev/rte_rawdev_version.map
>> +++ b/lib/librte_rawdev/rte_rawdev_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_rawdev_close;
>> diff --git a/lib/librte_reorder/rte_reorder_version.map b/lib/librte_reorder/rte_reorder_version.map
>> index cf444062df..8c0220d324 100644
>> --- a/lib/librte_reorder/rte_reorder_version.map
>> +++ b/lib/librte_reorder/rte_reorder_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_reorder_create;
>> diff --git a/lib/librte_ring/rte_ring_version.map b/lib/librte_ring/rte_ring_version.map
>> index ac392f3ca9..e35d6b9712 100644
>> --- a/lib/librte_ring/rte_ring_version.map
>> +++ b/lib/librte_ring/rte_ring_version.map
>> @@ -1,21 +1,16 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_ring_create;
>> + rte_ring_create_elem;
>> rte_ring_dump;
>> rte_ring_free;
>> rte_ring_get_memsize;
>> + rte_ring_get_memsize_elem;
>> rte_ring_init;
>> rte_ring_list_dump;
>> rte_ring_lookup;
>> + rte_ring_reset;
>>
>> local: *;
>> };
>> -
>> -DPDK_21 {
>> - global:
>> -
>> - rte_ring_create_elem;
>> - rte_ring_get_memsize_elem;
>> - rte_ring_reset;
>> -} DPDK_20.0;
>> diff --git a/lib/librte_sched/rte_sched_version.map b/lib/librte_sched/rte_sched_version.map
>> index cefd990367..3faef6f0a0 100644
>> --- a/lib/librte_sched/rte_sched_version.map
>> +++ b/lib/librte_sched/rte_sched_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_approx;
>> diff --git a/lib/librte_security/rte_security_version.map b/lib/librte_security/rte_security_version.map
>> index b07314bbf4..d84eec0a88 100644
>> --- a/lib/librte_security/rte_security_version.map
>> +++ b/lib/librte_security/rte_security_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_security_attach_session;
>> diff --git a/lib/librte_table/rte_table_version.map b/lib/librte_table/rte_table_version.map
>> index 40f72b1fe8..568a6c6a8f 100644
>> --- a/lib/librte_table/rte_table_version.map
>> +++ b/lib/librte_table/rte_table_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_table_acl_ops;
>> diff --git a/lib/librte_timer/rte_timer_version.map b/lib/librte_timer/rte_timer_version.map
>> index 4471cef92b..21e68ea7a2 100644
>> --- a/lib/librte_timer/rte_timer_version.map
>> +++ b/lib/librte_timer/rte_timer_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_timer_dump_stats;
>> diff --git a/lib/librte_vhost/rte_vhost_version.map b/lib/librte_vhost/rte_vhost_version.map
>> index 13ec53b638..20b4abcb4e 100644
>> --- a/lib/librte_vhost/rte_vhost_version.map
>> +++ b/lib/librte_vhost/rte_vhost_version.map
>> @@ -1,4 +1,4 @@
>> -DPDK_20.0 {
>> +DPDK_21 {
>> global:
>>
>> rte_vhost_avail_entries;
>>
^ permalink raw reply [relevance 5%]
* Re: [dpdk-dev] [PATCH v5 1/2] version: 20.11-rc0
2020-08-11 14:03 13% ` [dpdk-dev] [PATCH v5 " Thomas Monjalon
2020-08-11 14:03 12% ` [dpdk-dev] [PATCH v5 2/2] devtools: fix ABI update in map files Thomas Monjalon
2020-08-11 16:18 0% ` [dpdk-dev] [PATCH v5 1/2] version: 20.11-rc0 Kinsella, Ray
@ 2020-08-12 8:58 0% ` Kinsella, Ray
2020-08-12 9:33 0% ` Thomas Monjalon
2 siblings, 1 reply; 200+ results
From: Kinsella, Ray @ 2020-08-12 8:58 UTC (permalink / raw)
To: Thomas Monjalon, dev
Cc: david.marchand, nhorman, kevin.laatz, bruce.richardson
On 11/08/2020 15:03, Thomas Monjalon wrote:
> Start a new release cycle with empty release notes.
>
> The ABI version becomes 21.0.
> The ABI major is back to normal, having only one number (21 vs 20.0).
> The map files are updated to the new ABI major number (21).
> The ABI exceptions are dropped.
> Travis ABI check is disabled because compatibility is not preserved.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> v5: drop all ABI exceptions
> v4: add -rc0 and remove temporary ABI exceptions
> v3: add minor number to ABI_VERSION and remove workaround in scripts
> v2: bump major ABI number (including .map changes)
> ---
> .travis.yml | 26 ----
> ABI_VERSION | 2 +-
> VERSION | 2 +-
> config/meson.build | 5 +-
> devtools/libabigail.abignore | 103 -------------
> doc/guides/rel_notes/index.rst | 1 +
> doc/guides/rel_notes/release_20_11.rst | 136 ++++++++++++++++++
> .../rte_pmd_bbdev_fpga_5gnr_fec_version.map | 2 +-
[SNIP]
Acked-by: Ray Kinsella <mdr@ashroe.eu>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v5 2/2] devtools: fix ABI update in map files
2020-08-11 14:03 12% ` [dpdk-dev] [PATCH v5 2/2] devtools: fix ABI update in map files Thomas Monjalon
@ 2020-08-12 6:57 4% ` Kinsella, Ray
0 siblings, 0 replies; 200+ results
From: Kinsella, Ray @ 2020-08-12 6:57 UTC (permalink / raw)
To: Thomas Monjalon, dev
Cc: david.marchand, nhorman, kevin.laatz, bruce.richardson
On 11/08/2020 15:03, Thomas Monjalon wrote:
> The script was using the full ABI version, including the minor number,
> to version the symbols in the map files.
> It is fixed to use only the major number for symbol versioning.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> devtools/update_version_map_abi.py | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/devtools/update_version_map_abi.py b/devtools/update_version_map_abi.py
> index 80a61641ed..10c3bc8098 100755
> --- a/devtools/update_version_map_abi.py
> +++ b/devtools/update_version_map_abi.py
> @@ -105,9 +105,9 @@ def __parse_map_file(f_in):
> return has_stable, stable_lines, experimental_lines, internal_lines
>
>
> -def __generate_stable_abi(f_out, abi_version, lines):
> +def __generate_stable_abi(f_out, abi_major, lines):
> # print ABI version header
> - print("DPDK_{} {{".format(abi_version), file=f_out)
> + print("DPDK_{} {{".format(abi_major), file=f_out)
>
> # print global section if it exists
> if lines:
> @@ -186,6 +186,7 @@ def __main():
> file=sys.stderr)
> arg_parser.print_help()
> sys.exit(1)
> + abi_major = parsed.abi_version.split('.')[0]
>
> with open(parsed.map_file) as f_in:
> has_stable, stable_lines, experimental_lines, internal_lines = __parse_map_file(f_in)
> @@ -193,7 +194,7 @@ def __main():
> with open(parsed.map_file, 'w') as f_out:
> need_newline = has_stable and experimental_lines
> if has_stable:
> - __generate_stable_abi(f_out, parsed.abi_version, stable_lines)
> + __generate_stable_abi(f_out, abi_major, stable_lines)
> if need_newline:
> # separate sections with a newline
> print(file=f_out)
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH v1 0/8] Add Crypto PMD for Broadcom`s FlexSparc devices
@ 2020-08-12 6:31 3% ` Vikas Gupta
2020-08-13 17:23 3% ` [dpdk-dev] [PATCH v2 " Vikas Gupta
0 siblings, 1 reply; 200+ results
From: Vikas Gupta @ 2020-08-12 6:31 UTC (permalink / raw)
To: dev, akhil.goyal; +Cc: ajit.khaparde, vikram.prakash, Vikas Gupta
Hi,
This patchset contains support for Crypto offload on Broadcom’s
Stingray/Stingray2 SoCs having FlexSparc unit.
BCMFS is an acronym for Broadcom FlexSparc device used in the patchest.
The patchset progressively adds major modules as below.
a) Detection of platform-device based on the known registered platforms and attaching with VFIO.
b) Creation of Cryptodevice.
c) Addition of session handling.
d) Add Cryptodevice into test Cryptodev framework.
The patchset has been tested on the above mentioned SoCs.
Regards,
Vikas
Changes from v0->v1:
Updated the ABI version in map file 'rte_pmd_bcmfs_version.map'
Vikas Gupta (8):
crypto/bcmfs: add BCMFS driver
crypto/bcmfs: add vfio support
crypto/bcmfs: add apis for queue pair management
crypto/bcmfs: add hw queue pair operations
crypto/bcmfs: create a symmetric cryptodev
crypto/bcmfs: add session handling and capabilities
crypto/bcmfs: add crypto h/w module
crypto/bcmfs: add crypto pmd into cryptodev test
MAINTAINERS | 7 +
app/test/test_cryptodev.c | 261 +++++
app/test/test_cryptodev.h | 1 +
config/common_base | 5 +
doc/guides/cryptodevs/bcmfs.rst | 72 ++
doc/guides/cryptodevs/features/bcmfs.ini | 56 +
doc/guides/cryptodevs/index.rst | 1 +
drivers/crypto/bcmfs/bcmfs_dev_msg.h | 29 +
drivers/crypto/bcmfs/bcmfs_device.c | 331 ++++++
drivers/crypto/bcmfs/bcmfs_device.h | 76 ++
drivers/crypto/bcmfs/bcmfs_hw_defs.h | 38 +
drivers/crypto/bcmfs/bcmfs_logs.c | 38 +
drivers/crypto/bcmfs/bcmfs_logs.h | 34 +
drivers/crypto/bcmfs/bcmfs_qp.c | 383 +++++++
drivers/crypto/bcmfs/bcmfs_qp.h | 142 +++
drivers/crypto/bcmfs/bcmfs_sym.c | 316 ++++++
drivers/crypto/bcmfs/bcmfs_sym_capabilities.c | 764 ++++++++++++++
drivers/crypto/bcmfs/bcmfs_sym_capabilities.h | 16 +
drivers/crypto/bcmfs/bcmfs_sym_defs.h | 186 ++++
drivers/crypto/bcmfs/bcmfs_sym_engine.c | 994 ++++++++++++++++++
drivers/crypto/bcmfs/bcmfs_sym_engine.h | 103 ++
drivers/crypto/bcmfs/bcmfs_sym_pmd.c | 426 ++++++++
drivers/crypto/bcmfs/bcmfs_sym_pmd.h | 38 +
drivers/crypto/bcmfs/bcmfs_sym_req.h | 62 ++
drivers/crypto/bcmfs/bcmfs_sym_session.c | 426 ++++++++
drivers/crypto/bcmfs/bcmfs_sym_session.h | 99 ++
drivers/crypto/bcmfs/bcmfs_vfio.c | 94 ++
drivers/crypto/bcmfs/bcmfs_vfio.h | 17 +
drivers/crypto/bcmfs/hw/bcmfs4_rm.c | 742 +++++++++++++
drivers/crypto/bcmfs/hw/bcmfs5_rm.c | 677 ++++++++++++
drivers/crypto/bcmfs/hw/bcmfs_rm_common.c | 82 ++
drivers/crypto/bcmfs/hw/bcmfs_rm_common.h | 46 +
drivers/crypto/bcmfs/meson.build | 20 +
.../crypto/bcmfs/rte_pmd_bcmfs_version.map | 3 +
drivers/crypto/meson.build | 3 +-
mk/rte.app.mk | 1 +
36 files changed, 6588 insertions(+), 1 deletion(-)
create mode 100644 doc/guides/cryptodevs/bcmfs.rst
create mode 100644 doc/guides/cryptodevs/features/bcmfs.ini
create mode 100644 drivers/crypto/bcmfs/bcmfs_dev_msg.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_device.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_device.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_hw_defs.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_logs.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_logs.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_qp.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_qp.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_capabilities.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_capabilities.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_defs.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_engine.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_engine.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_pmd.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_pmd.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_req.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_session.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_sym_session.h
create mode 100644 drivers/crypto/bcmfs/bcmfs_vfio.c
create mode 100644 drivers/crypto/bcmfs/bcmfs_vfio.h
create mode 100644 drivers/crypto/bcmfs/hw/bcmfs4_rm.c
create mode 100644 drivers/crypto/bcmfs/hw/bcmfs5_rm.c
create mode 100644 drivers/crypto/bcmfs/hw/bcmfs_rm_common.c
create mode 100644 drivers/crypto/bcmfs/hw/bcmfs_rm_common.h
create mode 100644 drivers/crypto/bcmfs/meson.build
create mode 100644 drivers/crypto/bcmfs/rte_pmd_bcmfs_version.map
--
2.17.1
^ permalink raw reply [relevance 3%]
* [dpdk-dev] [PATCH v3] doc: add section describing new abi versions
2020-08-11 15:16 32% [dpdk-dev] [PATCH] doc: add section describing new abi versions Ray Kinsella
2020-08-11 16:36 9% ` Ray Kinsella
@ 2020-08-11 16:39 9% ` Ray Kinsella
2020-08-12 10:40 8% ` Thomas Monjalon
2020-08-12 11:26 9% ` [dpdk-dev] [PATCH v4] " Ray Kinsella
2 siblings, 1 reply; 200+ results
From: Ray Kinsella @ 2020-08-11 16:39 UTC (permalink / raw)
To: dev
Cc: ferruh.yigit, david.marchand, thomas, kevin.laatz,
bruce.richardson, hemant.agrawal, Honnappa.Nagarahalli,
Ray Kinsella, Neil Horman, John McNamara, Marko Kovacevic
Added a section describing new abi versions, this provides pointers to
the relevant amended rules that apply during the abi breakage window.
Also remove the large note a the head of the abi policy describing the
abi stability process that has taken place over the previous year.
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
---
V3: Added the patch version.
V2: Updated to add removing aliases to experimental.
---
doc/guides/contributing/abi_policy.rst | 40 ++++++++++++++++++++++++------
doc/guides/contributing/abi_versioning.rst | 6 ++---
2 files changed, 35 insertions(+), 11 deletions(-)
diff --git a/doc/guides/contributing/abi_policy.rst b/doc/guides/contributing/abi_policy.rst
index ab9daf5..31d250a 100644
--- a/doc/guides/contributing/abi_policy.rst
+++ b/doc/guides/contributing/abi_policy.rst
@@ -14,8 +14,8 @@ General Guidelines
------------------
#. Major ABI versions are declared no more frequently than yearly. Compatibility
- with the major ABI version is mandatory in subsequent releases until a new
- major ABI version is declared.
+ with the major ABI version is mandatory in subsequent releases until a
+ :ref:`new major ABI version <new_abi_version>` is declared.
#. Major ABI versions are usually but not always declared aligned with a
:ref:`LTS release <stable_lts_releases>`.
#. The ABI version is managed at a project level in DPDK, and is reflected in
@@ -35,12 +35,6 @@ General Guidelines
.. note::
- In 2019, the DPDK community stated its intention to move to ABI stable
- releases, over a number of release cycles. This change begins with
- maintaining ABI stability through one year of DPDK releases starting from
- DPDK 19.11. This policy will be reviewed in 2020, with intention of
- lengthening the stability period. Additional implementation detail can be
- found in the :ref:`release notes <20_02_abi_changes>`.
Please note that this policy does not currently apply to the
:doc:`Windows build <../windows_gsg/intro>`.
@@ -288,11 +282,41 @@ added to the Release Notes:
these changes. Binaries using this library built prior to ABI version 21 will
require updating and recompilation.
+
+.. _new_abi_version:
+
+New ABI versions
+------------------
+
+A new ABI version may be declared aligned with a given release. The requirement
+to preserve compatibility with the previous major ABI version is then dropped
+for the duration of this release cycle. This is commonly known as the *ABI
+breakage window*, and some amended rules apply during this cycle:
+
+ * The requirement to preserve compatibility with the previous major ABI
+ version, as described in the section :ref:`abi_changes` does not apply.
+ * Contributors of compatibility preserving code in previous releases, are now
+ required to remove this compatibility code, as described in the section
+ :ref:`abi_changes`.
+ * Symbol versioning references to the old ABI version are updated to reference
+ the new ABI version, as described in the section.
+ :ref:`deprecating_entire_abi`.
+ * Contributors of aliases to experimental in previous releases, as described in
+ section :ref:`aliasing_experimental_symbols`, are now required to remove
+ these aliases.
+ * Finally, the *ABI breakage window* is *not* permission to circumvent the
+ other aspects of the procedures to make ABI changes described in
+ :ref:`abi_changes`, that is, 3 ACKs of the requirement to break the ABI and
+ the observance of a deprecation notice are still considered mandatory.
+
.. _experimental_apis:
Experimental
------------
+Major ABI versions are usually but not always declared aligned with a
+:ref:`LTS release <stable_lts_releases>`.
+
APIs
~~~~
diff --git a/doc/guides/contributing/abi_versioning.rst b/doc/guides/contributing/abi_versioning.rst
index b1d09c7..3d35b1a 100644
--- a/doc/guides/contributing/abi_versioning.rst
+++ b/doc/guides/contributing/abi_versioning.rst
@@ -673,9 +673,9 @@ symbols.
-BIND_DEFAULT_SYMBOL(rte_acl_create, _v20, 20);
+BIND_DEFAULT_SYMBOL(rte_acl_create, _v21, 21);
-Lastly, any VERSION_SYMBOL macros that point to the old version node should be
-removed, taking care to keep, where need old code in place to support newer
-versions of the symbol.
+Lastly, any VERSION_SYMBOL macros that point to the old version nodes should be
+removed, taking care to preserve any code that is shared with the new version
+node.
Running the ABI Validator
--
2.7.4
^ permalink raw reply [relevance 9%]
* [dpdk-dev] [PATCH] doc: add section describing new abi versions
2020-08-11 15:16 32% [dpdk-dev] [PATCH] doc: add section describing new abi versions Ray Kinsella
@ 2020-08-11 16:36 9% ` Ray Kinsella
2020-08-11 16:39 9% ` [dpdk-dev] [PATCH v3] " Ray Kinsella
2020-08-12 11:26 9% ` [dpdk-dev] [PATCH v4] " Ray Kinsella
2 siblings, 0 replies; 200+ results
From: Ray Kinsella @ 2020-08-11 16:36 UTC (permalink / raw)
To: dev
Cc: ferruh.yigit, david.marchand, thomas, kevin.laatz,
bruce.richardson, hemant.agrawal, Honnappa.Nagarahalli,
Ray Kinsella, Neil Horman, John McNamara, Marko Kovacevic
Added a section describing new abi versions, this provides pointers to
the relevant amended rules that apply during the abi breakage window.
Also remove the large note a the head of the abi policy describing the
abi stability process that has taken place over the previous year.
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
---
V2: Updated to add removing aliases to experimental.
---
doc/guides/contributing/abi_policy.rst | 40 ++++++++++++++++++++++++------
doc/guides/contributing/abi_versioning.rst | 6 ++---
2 files changed, 35 insertions(+), 11 deletions(-)
diff --git a/doc/guides/contributing/abi_policy.rst b/doc/guides/contributing/abi_policy.rst
index ab9daf5..31d250a 100644
--- a/doc/guides/contributing/abi_policy.rst
+++ b/doc/guides/contributing/abi_policy.rst
@@ -14,8 +14,8 @@ General Guidelines
------------------
#. Major ABI versions are declared no more frequently than yearly. Compatibility
- with the major ABI version is mandatory in subsequent releases until a new
- major ABI version is declared.
+ with the major ABI version is mandatory in subsequent releases until a
+ :ref:`new major ABI version <new_abi_version>` is declared.
#. Major ABI versions are usually but not always declared aligned with a
:ref:`LTS release <stable_lts_releases>`.
#. The ABI version is managed at a project level in DPDK, and is reflected in
@@ -35,12 +35,6 @@ General Guidelines
.. note::
- In 2019, the DPDK community stated its intention to move to ABI stable
- releases, over a number of release cycles. This change begins with
- maintaining ABI stability through one year of DPDK releases starting from
- DPDK 19.11. This policy will be reviewed in 2020, with intention of
- lengthening the stability period. Additional implementation detail can be
- found in the :ref:`release notes <20_02_abi_changes>`.
Please note that this policy does not currently apply to the
:doc:`Windows build <../windows_gsg/intro>`.
@@ -288,11 +282,41 @@ added to the Release Notes:
these changes. Binaries using this library built prior to ABI version 21 will
require updating and recompilation.
+
+.. _new_abi_version:
+
+New ABI versions
+------------------
+
+A new ABI version may be declared aligned with a given release. The requirement
+to preserve compatibility with the previous major ABI version is then dropped
+for the duration of this release cycle. This is commonly known as the *ABI
+breakage window*, and some amended rules apply during this cycle:
+
+ * The requirement to preserve compatibility with the previous major ABI
+ version, as described in the section :ref:`abi_changes` does not apply.
+ * Contributors of compatibility preserving code in previous releases, are now
+ required to remove this compatibility code, as described in the section
+ :ref:`abi_changes`.
+ * Symbol versioning references to the old ABI version are updated to reference
+ the new ABI version, as described in the section.
+ :ref:`deprecating_entire_abi`.
+ * Contributors of aliases to experimental in previous releases, as described in
+ section :ref:`aliasing_experimental_symbols`, are now required to remove
+ these aliases.
+ * Finally, the *ABI breakage window* is *not* permission to circumvent the
+ other aspects of the procedures to make ABI changes described in
+ :ref:`abi_changes`, that is, 3 ACKs of the requirement to break the ABI and
+ the observance of a deprecation notice are still considered mandatory.
+
.. _experimental_apis:
Experimental
------------
+Major ABI versions are usually but not always declared aligned with a
+:ref:`LTS release <stable_lts_releases>`.
+
APIs
~~~~
diff --git a/doc/guides/contributing/abi_versioning.rst b/doc/guides/contributing/abi_versioning.rst
index b1d09c7..3d35b1a 100644
--- a/doc/guides/contributing/abi_versioning.rst
+++ b/doc/guides/contributing/abi_versioning.rst
@@ -673,9 +673,9 @@ symbols.
-BIND_DEFAULT_SYMBOL(rte_acl_create, _v20, 20);
+BIND_DEFAULT_SYMBOL(rte_acl_create, _v21, 21);
-Lastly, any VERSION_SYMBOL macros that point to the old version node should be
-removed, taking care to keep, where need old code in place to support newer
-versions of the symbol.
+Lastly, any VERSION_SYMBOL macros that point to the old version nodes should be
+removed, taking care to preserve any code that is shared with the new version
+node.
Running the ABI Validator
--
2.7.4
^ permalink raw reply [relevance 9%]
* Re: [dpdk-dev] [PATCH v5 1/2] version: 20.11-rc0
2020-08-11 14:03 13% ` [dpdk-dev] [PATCH v5 " Thomas Monjalon
2020-08-11 14:03 12% ` [dpdk-dev] [PATCH v5 2/2] devtools: fix ABI update in map files Thomas Monjalon
@ 2020-08-11 16:18 0% ` Kinsella, Ray
2020-08-12 9:02 5% ` Kinsella, Ray
2020-08-12 8:58 0% ` Kinsella, Ray
2 siblings, 1 reply; 200+ results
From: Kinsella, Ray @ 2020-08-11 16:18 UTC (permalink / raw)
To: Thomas Monjalon, dev
Cc: david.marchand, nhorman, kevin.laatz, bruce.richardson,
Fiona Trahe, Arek Kusztal, Olivier Matz, Ferruh Yigit
Hi Thomas,
In general it looks good, however you are letting the old version node
DPDK_20.0 linger in a few places. We need to include an explicit FYI to tidy this up.
Remove versioning code:
Cryptodev
Fiona Trahe <fiona.trahe@intel.com>
Arek Kusztal <arkadiuszx.kusztal@intel.com>
Mempool
Olivier Matz <olivier.matz@6wind.com>
Remove alias to experimental:
Metering
Ferruh Yigit <ferruh.yigit@intel.com>
Thanks,
Ray K
On 11/08/2020 15:03, Thomas Monjalon wrote:
> Start a new release cycle with empty release notes.
>
> The ABI version becomes 21.0.
> The ABI major is back to normal, having only one number (21 vs 20.0).
> The map files are updated to the new ABI major number (21).
> The ABI exceptions are dropped.
> Travis ABI check is disabled because compatibility is not preserved.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> v5: drop all ABI exceptions
> v4: add -rc0 and remove temporary ABI exceptions
> v3: add minor number to ABI_VERSION and remove workaround in scripts
> v2: bump major ABI number (including .map changes)
> ---
> .travis.yml | 26 ----
> ABI_VERSION | 2 +-
> VERSION | 2 +-
> config/meson.build | 5 +-
> devtools/libabigail.abignore | 103 -------------
> doc/guides/rel_notes/index.rst | 1 +
> doc/guides/rel_notes/release_20_11.rst | 136 ++++++++++++++++++
> .../rte_pmd_bbdev_fpga_5gnr_fec_version.map | 2 +-
> .../rte_pmd_bbdev_fpga_lte_fec_version.map | 2 +-
> .../null/rte_pmd_bbdev_null_version.map | 2 +-
> .../rte_pmd_bbdev_turbo_sw_version.map | 2 +-
> drivers/bus/ifpga/rte_bus_ifpga_version.map | 2 +-
> drivers/bus/pci/rte_bus_pci_version.map | 2 +-
> drivers/bus/vdev/rte_bus_vdev_version.map | 2 +-
> drivers/bus/vmbus/rte_bus_vmbus_version.map | 2 +-
> drivers/common/cpt/rte_common_cpt_version.map | 2 +-
> .../common/iavf/rte_common_iavf_version.map | 4 +-
> .../common/mlx5/rte_common_mlx5_version.map | 1 -
> .../common/mvep/rte_common_mvep_version.map | 2 +-
> .../octeontx/rte_common_octeontx_version.map | 2 +-
> .../compress/isal/rte_pmd_isal_version.map | 2 +-
> .../rte_pmd_octeontx_compress_version.map | 2 +-
> drivers/compress/qat/rte_pmd_qat_version.map | 2 +-
> .../compress/zlib/rte_pmd_zlib_version.map | 2 +-
> .../aesni_gcm/rte_pmd_aesni_gcm_version.map | 2 +-
> .../aesni_mb/rte_pmd_aesni_mb_version.map | 2 +-
> .../crypto/armv8/rte_pmd_armv8_version.map | 2 +-
> .../caam_jr/rte_pmd_caam_jr_version.map | 2 +-
> drivers/crypto/ccp/rte_pmd_ccp_version.map | 2 +-
> .../crypto/kasumi/rte_pmd_kasumi_version.map | 2 +-
> .../crypto/mvsam/rte_pmd_mvsam_version.map | 2 +-
> .../crypto/nitrox/rte_pmd_nitrox_version.map | 2 +-
> .../null/rte_pmd_null_crypto_version.map | 2 +-
> .../rte_pmd_octeontx_crypto_version.map | 2 +-
> .../rte_pmd_octeontx2_crypto_version.map | 2 +-
> .../openssl/rte_pmd_openssl_version.map | 2 +-
> .../rte_pmd_crypto_scheduler_version.map | 2 +-
> .../crypto/snow3g/rte_pmd_snow3g_version.map | 2 +-
> .../virtio/rte_pmd_virtio_crypto_version.map | 2 +-
> drivers/crypto/zuc/rte_pmd_zuc_version.map | 2 +-
> .../event/dpaa/rte_pmd_dpaa_event_version.map | 2 +-
> .../dpaa2/rte_pmd_dpaa2_event_version.map | 2 +-
> .../event/dsw/rte_pmd_dsw_event_version.map | 2 +-
> .../rte_pmd_octeontx_event_version.map | 2 +-
> .../rte_pmd_octeontx2_event_version.map | 2 +-
> .../event/opdl/rte_pmd_opdl_event_version.map | 2 +-
> .../rte_pmd_skeleton_event_version.map | 2 +-
> drivers/event/sw/rte_pmd_sw_event_version.map | 2 +-
> .../bucket/rte_mempool_bucket_version.map | 2 +-
> .../dpaa2/rte_mempool_dpaa2_version.map | 2 +-
> .../octeontx/rte_mempool_octeontx_version.map | 2 +-
> .../mempool/ring/rte_mempool_ring_version.map | 2 +-
> .../stack/rte_mempool_stack_version.map | 2 +-
> .../af_packet/rte_pmd_af_packet_version.map | 2 +-
> drivers/net/af_xdp/rte_pmd_af_xdp_version.map | 2 +-
> drivers/net/ark/rte_pmd_ark_version.map | 2 +-
> .../net/atlantic/rte_pmd_atlantic_version.map | 2 +-
> drivers/net/avp/rte_pmd_avp_version.map | 2 +-
> drivers/net/axgbe/rte_pmd_axgbe_version.map | 2 +-
> drivers/net/bnx2x/rte_pmd_bnx2x_version.map | 2 +-
> drivers/net/bnxt/rte_pmd_bnxt_version.map | 2 +-
> drivers/net/bonding/rte_pmd_bond_version.map | 2 +-
> drivers/net/cxgbe/rte_pmd_cxgbe_version.map | 2 +-
> drivers/net/dpaa/rte_pmd_dpaa_version.map | 2 +-
> drivers/net/e1000/rte_pmd_e1000_version.map | 2 +-
> drivers/net/ena/rte_pmd_ena_version.map | 2 +-
> drivers/net/enetc/rte_pmd_enetc_version.map | 2 +-
> drivers/net/enic/rte_pmd_enic_version.map | 2 +-
> .../net/failsafe/rte_pmd_failsafe_version.map | 2 +-
> drivers/net/fm10k/rte_pmd_fm10k_version.map | 2 +-
> drivers/net/hinic/rte_pmd_hinic_version.map | 2 +-
> drivers/net/hns3/rte_pmd_hns3_version.map | 2 +-
> drivers/net/i40e/rte_pmd_i40e_version.map | 2 +-
> drivers/net/iavf/rte_pmd_iavf_version.map | 2 +-
> drivers/net/ice/rte_pmd_ice_version.map | 2 +-
> drivers/net/ionic/rte_pmd_ionic_version.map | 1 -
> drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map | 2 +-
> drivers/net/ixgbe/rte_pmd_ixgbe_version.map | 2 +-
> drivers/net/kni/rte_pmd_kni_version.map | 2 +-
> .../net/liquidio/rte_pmd_liquidio_version.map | 2 +-
> drivers/net/memif/rte_pmd_memif_version.map | 2 +-
> drivers/net/mlx4/rte_pmd_mlx4_version.map | 2 +-
> drivers/net/mlx5/rte_pmd_mlx5_version.map | 6 +-
> drivers/net/mvneta/rte_pmd_mvneta_version.map | 2 +-
> drivers/net/mvpp2/rte_pmd_mvpp2_version.map | 2 +-
> drivers/net/netvsc/rte_pmd_netvsc_version.map | 2 +-
> drivers/net/nfb/rte_pmd_nfb_version.map | 2 +-
> drivers/net/nfp/rte_pmd_nfp_version.map | 2 +-
> drivers/net/null/rte_pmd_null_version.map | 2 +-
> .../net/octeontx/rte_pmd_octeontx_version.map | 2 +-
> .../octeontx2/rte_pmd_octeontx2_version.map | 2 +-
> drivers/net/pcap/rte_pmd_pcap_version.map | 2 +-
> drivers/net/pfe/rte_pmd_pfe_version.map | 2 +-
> drivers/net/qede/rte_pmd_qede_version.map | 2 +-
> drivers/net/ring/rte_pmd_ring_version.map | 2 +-
> drivers/net/sfc/rte_pmd_sfc_version.map | 2 +-
> .../net/softnic/rte_pmd_softnic_version.map | 2 +-
> .../net/szedata2/rte_pmd_szedata2_version.map | 2 +-
> drivers/net/tap/rte_pmd_tap_version.map | 2 +-
> .../net/thunderx/rte_pmd_thunderx_version.map | 2 +-
> .../rte_pmd_vdev_netvsc_version.map | 2 +-
> drivers/net/vhost/rte_pmd_vhost_version.map | 2 +-
> drivers/net/virtio/rte_pmd_virtio_version.map | 2 +-
> .../net/vmxnet3/rte_pmd_vmxnet3_version.map | 2 +-
> .../rte_rawdev_dpaa2_cmdif_version.map | 2 +-
> .../rte_rawdev_dpaa2_qdma_version.map | 2 +-
> .../raw/ifpga/rte_rawdev_ifpga_version.map | 2 +-
> drivers/raw/ioat/rte_rawdev_ioat_version.map | 2 +-
> drivers/raw/ntb/rte_rawdev_ntb_version.map | 2 +-
> .../rte_rawdev_octeontx2_dma_version.map | 2 +-
> .../rte_rawdev_octeontx2_ep_version.map | 1 -
> .../skeleton/rte_rawdev_skeleton_version.map | 2 +-
> drivers/vdpa/ifc/rte_pmd_ifc_version.map | 2 +-
> lib/librte_acl/rte_acl_version.map | 2 +-
> .../rte_bitratestats_version.map | 2 +-
> lib/librte_cfgfile/rte_cfgfile_version.map | 2 +-
> lib/librte_cmdline/rte_cmdline_version.map | 2 +-
> .../rte_cryptodev_version.map | 7 +-
> .../rte_distributor_version.map | 2 +-
> lib/librte_eal/rte_eal_version.map | 10 +-
> lib/librte_efd/rte_efd_version.map | 2 +-
> lib/librte_ethdev/rte_ethdev_version.map | 2 +-
> lib/librte_eventdev/rte_eventdev_version.map | 2 +-
> lib/librte_gro/rte_gro_version.map | 2 +-
> lib/librte_gso/rte_gso_version.map | 2 +-
> lib/librte_hash/rte_hash_version.map | 2 +-
> lib/librte_ip_frag/rte_ip_frag_version.map | 2 +-
> lib/librte_jobstats/rte_jobstats_version.map | 2 +-
> lib/librte_kni/rte_kni_version.map | 2 +-
> lib/librte_kvargs/rte_kvargs_version.map | 2 +-
> .../rte_latencystats_version.map | 2 +-
> lib/librte_lpm/rte_lpm_version.map | 2 +-
> lib/librte_mbuf/rte_mbuf_version.map | 2 +-
> lib/librte_member/rte_member_version.map | 2 +-
> lib/librte_mempool/rte_mempool_version.map | 6 +-
> lib/librte_meter/rte_meter_version.map | 14 +-
> lib/librte_metrics/rte_metrics_version.map | 2 +-
> lib/librte_net/rte_net_version.map | 2 +-
> lib/librte_pci/rte_pci_version.map | 2 +-
> lib/librte_pdump/rte_pdump_version.map | 2 +-
> lib/librte_pipeline/rte_pipeline_version.map | 2 +-
> lib/librte_port/rte_port_version.map | 2 +-
> lib/librte_power/rte_power_version.map | 2 +-
> lib/librte_rawdev/rte_rawdev_version.map | 2 +-
> lib/librte_reorder/rte_reorder_version.map | 2 +-
> lib/librte_ring/rte_ring_version.map | 13 +-
> lib/librte_sched/rte_sched_version.map | 2 +-
> lib/librte_security/rte_security_version.map | 2 +-
> lib/librte_table/rte_table_version.map | 2 +-
> lib/librte_timer/rte_timer_version.map | 2 +-
> lib/librte_vhost/rte_vhost_version.map | 2 +-
> 151 files changed, 295 insertions(+), 311 deletions(-)
> create mode 100644 doc/guides/rel_notes/release_20_11.rst
>
> diff --git a/.travis.yml b/.travis.yml
> index 14f8124233..d6eeab371d 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -2,9 +2,6 @@
> language: c
> cache:
> ccache: true
> - directories:
> - - libabigail
> - - reference
>
> dist: bionic
>
> @@ -21,9 +18,6 @@ _aarch64_packages: &aarch64_packages
> - *required_packages
> - [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
>
> -_libabigail_build_packages: &libabigail_build_packages
> - - [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
> -
> _build_32b_packages: &build_32b_packages
> - *required_packages
> - [gcc-multilib]
> @@ -34,10 +28,6 @@ _doc_packages: &doc_packages
> before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
> script: ./.ci/${TRAVIS_OS_NAME}-build.sh
>
> -env:
> - global:
> - - REF_GIT_TAG=v20.05
> -
> jobs:
> include:
> # x86_64 gcc jobs
> @@ -55,14 +45,6 @@ jobs:
> packages:
> - *required_packages
> - *doc_packages
> - - env: DEF_LIB="shared" ABI_CHECKS=1
> - arch: amd64
> - compiler: gcc
> - addons:
> - apt:
> - packages:
> - - *required_packages
> - - *libabigail_build_packages
> # x86_64 clang jobs
> - env: DEF_LIB="static"
> arch: amd64
> @@ -116,14 +98,6 @@ jobs:
> packages:
> - *required_packages
> - *doc_packages
> - - env: DEF_LIB="shared" ABI_CHECKS=1
> - arch: arm64
> - compiler: gcc
> - addons:
> - apt:
> - packages:
> - - *required_packages
> - - *libabigail_build_packages
> # aarch64 clang jobs
> - env: DEF_LIB="static"
> arch: arm64
> diff --git a/ABI_VERSION b/ABI_VERSION
> index a9ac8dacb0..5f39e91446 100644
> --- a/ABI_VERSION
> +++ b/ABI_VERSION
> @@ -1 +1 @@
> -20.0.3
> +21.0
> diff --git a/VERSION b/VERSION
> index 85e33446f8..3f02088ffa 100644
> --- a/VERSION
> +++ b/VERSION
> @@ -1 +1 @@
> -20.08.0
> +20.11.0-rc0
> diff --git a/config/meson.build b/config/meson.build
> index cff8b33dd2..6996e5cbea 100644
> --- a/config/meson.build
> +++ b/config/meson.build
> @@ -29,10 +29,7 @@ abi_version = run_command(find_program('cat', 'more'),
> # and have the soname be all but the final part of the abi_version.
> # e.g. v20.1 => librte_foo.so.20.1
> # sonames => librte_foo.so.20
> -# e.g. v20.0.1 => librte_foo.so.20.0.1
> -# sonames => librte_foo.so.20.0
> -abi_va = abi_version.split('.')
> -so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1]
> +so_version = abi_version.split('.')[0]
>
> # extract all version information into the build configuration
> dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int())
> diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
> index 9fea822f36..025f2c01bc 100644
> --- a/devtools/libabigail.abignore
> +++ b/devtools/libabigail.abignore
> @@ -7,106 +7,3 @@
> symbol_version = INTERNAL
> [suppress_variable]
> symbol_version = INTERNAL
> -
> -; Ignore ABI 20.0.1 replaced with ABI 21
> -[suppress_function]
> - symbol_version = DPDK_20.0.1
> -[suppress_variable]
> - symbol_version = DPDK_20.0.1
> -
> -; Explicit ignore for driver-only ABI
> -[suppress_type]
> - name = rte_cryptodev_ops
> -; Ignore this enum update as it is part of an experimental API
> -[suppress_type]
> - type_kind = enum
> - name = rte_crypto_asym_xform_type
> - changed_enumerators = RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END
> -; Ignore updates of ring prod/cons
> -[suppress_type]
> - type_kind = struct
> - name = rte_ring
> -[suppress_type]
> - type_kind = struct
> - name = rte_event_ring
> -; Ignore ethdev event enum update because new event cannot be
> -; received if not registered
> -[suppress_type]
> - type_kind = enum
> - name = rte_eth_event_type
> - changed_enumerators = RTE_ETH_EVENT_MAX
> -; Ignore this enum update as new flags remain unknown to applications
> -[suppress_type]
> - type_kind = enum
> - name = rte_cpu_flag_t
> - changed_enumerators = RTE_CPUFLAG_NUMFLAGS
> -; Ignore Cryptodev AEAD xform enum and AEAD xform strings change
> -; due to addition of Chacha20-Poly1305
> -[suppress_type]
> - type_kind = enum
> - name = rte_crypto_aead_algorithm
> - changed_enumerators = RTE_CRYPTO_AEAD_LIST_END
> -[suppress_variable]
> - name = rte_crypto_aead_algorithm_strings
> -; Ignore updates of epoll event
> -[suppress_type]
> - type_kind = struct
> - name = rte_epoll_event
> -; Ignore updates of rte_mbuf_ext_shared_info refcnt_atomic
> -[suppress_type]
> - name = rte_mbuf_ext_shared_info
> - has_data_member_inserted_between = {offset_of(refcnt_atomic), offset_of(refcnt_atomic)}
> -
> -;;;;;;;;;;;;;;;;;;;;;;
> -; Temporary exceptions till DPDK 20.11
> -;;;;;;;;;;;;;;;;;;;;;;
> -; Ignore moving OCTEONTX2 stable functions to INTERNAL
> -[suppress_file]
> - file_name_regexp = ^librte_common_octeontx2\.
> -[suppress_file]
> - file_name_regexp = ^librte_mempool_octeontx2\.
> -; Ignore moving mlx5 stable functions to INTERNAL
> -[suppress_file]
> - file_name_regexp = ^librte_common_mlx5\.
> -; Ignore moving DPAAx stable functions to INTERNAL
> -[suppress_file]
> - file_name_regexp = ^librte_common_dpaax\.
> -[suppress_file]
> - file_name_regexp = ^librte_bus_fslmc\.
> -[suppress_file]
> - file_name_regexp = ^librte_bus_dpaa\.
> -[suppress_variable]
> - name = rte_dpaa_bpid_info
> -[suppress_variable]
> - name = rte_dpaa_memsegs
> -[suppress_variable]
> - name = rte_dpaa2_bpid_info
> -[suppress_function]
> - name = rte_dpaa2_mbuf_alloc_bulk
> -[suppress_function]
> - name_regexp = ^dpaa2?_.*tach$
> -; Ignore soname changes for experimental libraries
> -[suppress_file]
> - file_name_regexp = ^librte_bbdev\.
> -[suppress_file]
> - file_name_regexp = ^librte_bpf\.
> -[suppress_file]
> - file_name_regexp = ^librte_compressdev\.
> -[suppress_file]
> - file_name_regexp = ^librte_fib\.
> -[suppress_file]
> - file_name_regexp = ^librte_flow_classify\.
> -[suppress_file]
> - file_name_regexp = ^librte_graph\.
> -[suppress_file]
> - file_name_regexp = ^librte_ipsec\.
> -[suppress_file]
> - file_name_regexp = ^librte_node\.
> -[suppress_file]
> - file_name_regexp = ^librte_rcu\.
> -[suppress_file]
> - file_name_regexp = ^librte_rib\.
> -[suppress_file]
> - file_name_regexp = ^librte_telemetry\.
> -[suppress_file]
> - file_name_regexp = ^librte_stack\.
> diff --git a/doc/guides/rel_notes/index.rst b/doc/guides/rel_notes/index.rst
> index 05c9d837a4..fb70d1a5f3 100644
> --- a/doc/guides/rel_notes/index.rst
> +++ b/doc/guides/rel_notes/index.rst
> @@ -8,6 +8,7 @@ Release Notes
> :maxdepth: 1
> :numbered:
>
> + release_20_11
> release_20_08
> release_20_05
> release_20_02
> diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
> new file mode 100644
> index 0000000000..df227a1773
> --- /dev/null
> +++ b/doc/guides/rel_notes/release_20_11.rst
> @@ -0,0 +1,136 @@
> +.. SPDX-License-Identifier: BSD-3-Clause
> + Copyright 2020 The DPDK contributors
> +
> +.. include:: <isonum.txt>
> +
> +DPDK Release 20.11
> +==================
> +
> +.. **Read this first.**
> +
> + The text in the sections below explains how to update the release notes.
> +
> + Use proper spelling, capitalization and punctuation in all sections.
> +
> + Variable and config names should be quoted as fixed width text:
> + ``LIKE_THIS``.
> +
> + Build the docs and view the output file to ensure the changes are correct::
> +
> + make doc-guides-html
> + xdg-open build/doc/html/guides/rel_notes/release_20_11.html
> +
> +
> +New Features
> +------------
> +
> +.. This section should contain new features added in this release.
> + Sample format:
> +
> + * **Add a title in the past tense with a full stop.**
> +
> + Add a short 1-2 sentence description in the past tense.
> + The description should be enough to allow someone scanning
> + the release notes to understand the new feature.
> +
> + If the feature adds a lot of sub-features you can use a bullet list
> + like this:
> +
> + * Added feature foo to do something.
> + * Enhanced feature bar to do something else.
> +
> + Refer to the previous release notes for examples.
> +
> + Suggested order in release notes items:
> + * Core libs (EAL, mempool, ring, mbuf, buses)
> + * Device abstraction libs and PMDs
> + - ethdev (lib, PMDs)
> + - cryptodev (lib, PMDs)
> + - eventdev (lib, PMDs)
> + - etc
> + * Other libs
> + * Apps, Examples, Tools (if significant)
> +
> + This section is a comment. Do not overwrite or remove it.
> + Also, make sure to start the actual text at the margin.
> + =======================================================
> +
> +
> +Removed Items
> +-------------
> +
> +.. This section should contain removed items in this release. Sample format:
> +
> + * Add a short 1-2 sentence description of the removed item
> + in the past tense.
> +
> + This section is a comment. Do not overwrite or remove it.
> + Also, make sure to start the actual text at the margin.
> + =======================================================
> +
> +
> +API Changes
> +-----------
> +
> +.. This section should contain API changes. Sample format:
> +
> + * sample: Add a short 1-2 sentence description of the API change
> + which was announced in the previous releases and made in this release.
> + Start with a scope label like "ethdev:".
> + Use fixed width quotes for ``function_names`` or ``struct_names``.
> + Use the past tense.
> +
> + This section is a comment. Do not overwrite or remove it.
> + Also, make sure to start the actual text at the margin.
> + =======================================================
> +
> +
> +ABI Changes
> +-----------
> +
> +.. This section should contain ABI changes. Sample format:
> +
> + * sample: Add a short 1-2 sentence description of the ABI change
> + which was announced in the previous releases and made in this release.
> + Start with a scope label like "ethdev:".
> + Use fixed width quotes for ``function_names`` or ``struct_names``.
> + Use the past tense.
> +
> + This section is a comment. Do not overwrite or remove it.
> + Also, make sure to start the actual text at the margin.
> + =======================================================
> +
> +
> +Known Issues
> +------------
> +
> +.. This section should contain new known issues in this release. Sample format:
> +
> + * **Add title in present tense with full stop.**
> +
> + Add a short 1-2 sentence description of the known issue
> + in the present tense. Add information on any known workarounds.
> +
> + This section is a comment. Do not overwrite or remove it.
> + Also, make sure to start the actual text at the margin.
> + =======================================================
> +
> +
> +Tested Platforms
> +----------------
> +
> +.. This section should contain a list of platforms that were tested
> + with this release.
> +
> + The format is:
> +
> + * <vendor> platform with <vendor> <type of devices> combinations
> +
> + * List of CPU
> + * List of OS
> + * List of devices
> + * Other relevant details...
> +
> + This section is a comment. Do not overwrite or remove it.
> + Also, make sure to start the actual text at the margin.
> + =======================================================
> diff --git a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
> index b0fb9717fa..d723bc9b0e 100644
> --- a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
> +++ b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
>
> diff --git a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
> index 6bcea2cc7f..a2ab086cd8 100644
> --- a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
> +++ b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
>
> diff --git a/drivers/baseband/null/rte_pmd_bbdev_null_version.map b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/baseband/null/rte_pmd_bbdev_null_version.map
> +++ b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
> +++ b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/bus/ifpga/rte_bus_ifpga_version.map b/drivers/bus/ifpga/rte_bus_ifpga_version.map
> index 05b4a28c1b..6e8f85da3c 100644
> --- a/drivers/bus/ifpga/rte_bus_ifpga_version.map
> +++ b/drivers/bus/ifpga/rte_bus_ifpga_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_ifpga_driver_register;
> diff --git a/drivers/bus/pci/rte_bus_pci_version.map b/drivers/bus/pci/rte_bus_pci_version.map
> index 012d817e14..5b75d23671 100644
> --- a/drivers/bus/pci/rte_bus_pci_version.map
> +++ b/drivers/bus/pci/rte_bus_pci_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_pci_dump;
> diff --git a/drivers/bus/vdev/rte_bus_vdev_version.map b/drivers/bus/vdev/rte_bus_vdev_version.map
> index 5abb10ecb0..61b6cefcee 100644
> --- a/drivers/bus/vdev/rte_bus_vdev_version.map
> +++ b/drivers/bus/vdev/rte_bus_vdev_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_vdev_add_custom_scan;
> diff --git a/drivers/bus/vmbus/rte_bus_vmbus_version.map b/drivers/bus/vmbus/rte_bus_vmbus_version.map
> index cbaaebc06c..fa8e91c282 100644
> --- a/drivers/bus/vmbus/rte_bus_vmbus_version.map
> +++ b/drivers/bus/vmbus/rte_bus_vmbus_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_vmbus_chan_close;
> diff --git a/drivers/common/cpt/rte_common_cpt_version.map b/drivers/common/cpt/rte_common_cpt_version.map
> index 8c65cde6cf..4d85021a87 100644
> --- a/drivers/common/cpt/rte_common_cpt_version.map
> +++ b/drivers/common/cpt/rte_common_cpt_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> cpt_pmd_ops_helper_asym_get_mlen;
> diff --git a/drivers/common/iavf/rte_common_iavf_version.map b/drivers/common/iavf/rte_common_iavf_version.map
> index 92ceac108d..44142499e0 100644
> --- a/drivers/common/iavf/rte_common_iavf_version.map
> +++ b/drivers/common/iavf/rte_common_iavf_version.map
> @@ -1,11 +1,11 @@
> DPDK_21 {
> global:
>
> - iavf_init_adminq;
> - iavf_shutdown_adminq;
> iavf_aq_send_msg_to_pf;
> iavf_clean_arq_element;
> + iavf_init_adminq;
> iavf_set_mac_type;
> + iavf_shutdown_adminq;
> iavf_vf_parse_hw_config;
>
> local: *;
> diff --git a/drivers/common/mlx5/rte_common_mlx5_version.map b/drivers/common/mlx5/rte_common_mlx5_version.map
> index 7729d0dd04..c4d57c08a7 100644
> --- a/drivers/common/mlx5/rte_common_mlx5_version.map
> +++ b/drivers/common/mlx5/rte_common_mlx5_version.map
> @@ -93,4 +93,3 @@ INTERNAL {
>
> mlx5_pci_driver_register;
> };
> -
> diff --git a/drivers/common/mvep/rte_common_mvep_version.map b/drivers/common/mvep/rte_common_mvep_version.map
> index 030928439d..e5af82c61d 100644
> --- a/drivers/common/mvep/rte_common_mvep_version.map
> +++ b/drivers/common/mvep/rte_common_mvep_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_mvep_deinit;
> diff --git a/drivers/common/octeontx/rte_common_octeontx_version.map b/drivers/common/octeontx/rte_common_octeontx_version.map
> index 5f6aa8bd3a..30f3fa65e0 100644
> --- a/drivers/common/octeontx/rte_common_octeontx_version.map
> +++ b/drivers/common/octeontx/rte_common_octeontx_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> octeontx_get_global_domain;
> diff --git a/drivers/compress/isal/rte_pmd_isal_version.map b/drivers/compress/isal/rte_pmd_isal_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/compress/isal/rte_pmd_isal_version.map
> +++ b/drivers/compress/isal/rte_pmd_isal_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
> +++ b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/compress/qat/rte_pmd_qat_version.map b/drivers/compress/qat/rte_pmd_qat_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/compress/qat/rte_pmd_qat_version.map
> +++ b/drivers/compress/qat/rte_pmd_qat_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/compress/zlib/rte_pmd_zlib_version.map b/drivers/compress/zlib/rte_pmd_zlib_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/compress/zlib/rte_pmd_zlib_version.map
> +++ b/drivers/compress/zlib/rte_pmd_zlib_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
> +++ b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
> +++ b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/armv8/rte_pmd_armv8_version.map b/drivers/crypto/armv8/rte_pmd_armv8_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/armv8/rte_pmd_armv8_version.map
> +++ b/drivers/crypto/armv8/rte_pmd_armv8_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
> +++ b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/ccp/rte_pmd_ccp_version.map b/drivers/crypto/ccp/rte_pmd_ccp_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/ccp/rte_pmd_ccp_version.map
> +++ b/drivers/crypto/ccp/rte_pmd_ccp_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
> +++ b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
> +++ b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
> +++ b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/null/rte_pmd_null_crypto_version.map b/drivers/crypto/null/rte_pmd_null_crypto_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/null/rte_pmd_null_crypto_version.map
> +++ b/drivers/crypto/null/rte_pmd_null_crypto_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
> +++ b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
> +++ b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/openssl/rte_pmd_openssl_version.map b/drivers/crypto/openssl/rte_pmd_openssl_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/openssl/rte_pmd_openssl_version.map
> +++ b/drivers/crypto/openssl/rte_pmd_openssl_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
> index 077afedce7..ca6f102d9f 100644
> --- a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
> +++ b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_cryptodev_scheduler_load_user_scheduler;
> diff --git a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
> +++ b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
> +++ b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/crypto/zuc/rte_pmd_zuc_version.map b/drivers/crypto/zuc/rte_pmd_zuc_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/crypto/zuc/rte_pmd_zuc_version.map
> +++ b/drivers/crypto/zuc/rte_pmd_zuc_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
> +++ b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
> +++ b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/event/dsw/rte_pmd_dsw_event_version.map b/drivers/event/dsw/rte_pmd_dsw_event_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/event/dsw/rte_pmd_dsw_event_version.map
> +++ b/drivers/event/dsw/rte_pmd_dsw_event_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
> +++ b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
> +++ b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/event/opdl/rte_pmd_opdl_event_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/event/opdl/rte_pmd_opdl_event_version.map
> +++ b/drivers/event/opdl/rte_pmd_opdl_event_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
> +++ b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/event/sw/rte_pmd_sw_event_version.map b/drivers/event/sw/rte_pmd_sw_event_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/event/sw/rte_pmd_sw_event_version.map
> +++ b/drivers/event/sw/rte_pmd_sw_event_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/mempool/bucket/rte_mempool_bucket_version.map b/drivers/mempool/bucket/rte_mempool_bucket_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/mempool/bucket/rte_mempool_bucket_version.map
> +++ b/drivers/mempool/bucket/rte_mempool_bucket_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
> index 686b024624..473b8c90e8 100644
> --- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
> +++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_dpaa2_mbuf_from_buf_addr;
> diff --git a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
> +++ b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/mempool/ring/rte_mempool_ring_version.map b/drivers/mempool/ring/rte_mempool_ring_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/mempool/ring/rte_mempool_ring_version.map
> +++ b/drivers/mempool/ring/rte_mempool_ring_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/mempool/stack/rte_mempool_stack_version.map b/drivers/mempool/stack/rte_mempool_stack_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/mempool/stack/rte_mempool_stack_version.map
> +++ b/drivers/mempool/stack/rte_mempool_stack_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/af_packet/rte_pmd_af_packet_version.map b/drivers/net/af_packet/rte_pmd_af_packet_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/af_packet/rte_pmd_af_packet_version.map
> +++ b/drivers/net/af_packet/rte_pmd_af_packet_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
> +++ b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/ark/rte_pmd_ark_version.map b/drivers/net/ark/rte_pmd_ark_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/ark/rte_pmd_ark_version.map
> +++ b/drivers/net/ark/rte_pmd_ark_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/atlantic/rte_pmd_atlantic_version.map b/drivers/net/atlantic/rte_pmd_atlantic_version.map
> index 9b04838d84..6e17832684 100644
> --- a/drivers/net/atlantic/rte_pmd_atlantic_version.map
> +++ b/drivers/net/atlantic/rte_pmd_atlantic_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
>
> diff --git a/drivers/net/avp/rte_pmd_avp_version.map b/drivers/net/avp/rte_pmd_avp_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/avp/rte_pmd_avp_version.map
> +++ b/drivers/net/avp/rte_pmd_avp_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/axgbe/rte_pmd_axgbe_version.map b/drivers/net/axgbe/rte_pmd_axgbe_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/axgbe/rte_pmd_axgbe_version.map
> +++ b/drivers/net/axgbe/rte_pmd_axgbe_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
> +++ b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/bnxt/rte_pmd_bnxt_version.map b/drivers/net/bnxt/rte_pmd_bnxt_version.map
> index bb52562347..a050d86ab7 100644
> --- a/drivers/net/bnxt/rte_pmd_bnxt_version.map
> +++ b/drivers/net/bnxt/rte_pmd_bnxt_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_pmd_bnxt_get_vf_rx_status;
> diff --git a/drivers/net/bonding/rte_pmd_bond_version.map b/drivers/net/bonding/rte_pmd_bond_version.map
> index 270c7d5d55..df81ee74c1 100644
> --- a/drivers/net/bonding/rte_pmd_bond_version.map
> +++ b/drivers/net/bonding/rte_pmd_bond_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_eth_bond_8023ad_agg_selection_get;
> diff --git a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
> +++ b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
> index 774aa0de45..87ce8f5b6c 100644
> --- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
> +++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_pmd_dpaa_set_tx_loopback;
> diff --git a/drivers/net/e1000/rte_pmd_e1000_version.map b/drivers/net/e1000/rte_pmd_e1000_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/e1000/rte_pmd_e1000_version.map
> +++ b/drivers/net/e1000/rte_pmd_e1000_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/ena/rte_pmd_ena_version.map b/drivers/net/ena/rte_pmd_ena_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/ena/rte_pmd_ena_version.map
> +++ b/drivers/net/ena/rte_pmd_ena_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/enetc/rte_pmd_enetc_version.map b/drivers/net/enetc/rte_pmd_enetc_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/enetc/rte_pmd_enetc_version.map
> +++ b/drivers/net/enetc/rte_pmd_enetc_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/enic/rte_pmd_enic_version.map b/drivers/net/enic/rte_pmd_enic_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/enic/rte_pmd_enic_version.map
> +++ b/drivers/net/enic/rte_pmd_enic_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/failsafe/rte_pmd_failsafe_version.map b/drivers/net/failsafe/rte_pmd_failsafe_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/failsafe/rte_pmd_failsafe_version.map
> +++ b/drivers/net/failsafe/rte_pmd_failsafe_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/fm10k/rte_pmd_fm10k_version.map b/drivers/net/fm10k/rte_pmd_fm10k_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/fm10k/rte_pmd_fm10k_version.map
> +++ b/drivers/net/fm10k/rte_pmd_fm10k_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/hinic/rte_pmd_hinic_version.map b/drivers/net/hinic/rte_pmd_hinic_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/hinic/rte_pmd_hinic_version.map
> +++ b/drivers/net/hinic/rte_pmd_hinic_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/hns3/rte_pmd_hns3_version.map b/drivers/net/hns3/rte_pmd_hns3_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/hns3/rte_pmd_hns3_version.map
> +++ b/drivers/net/hns3/rte_pmd_hns3_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/i40e/rte_pmd_i40e_version.map b/drivers/net/i40e/rte_pmd_i40e_version.map
> index f6cd3b3566..413c58cb21 100644
> --- a/drivers/net/i40e/rte_pmd_i40e_version.map
> +++ b/drivers/net/i40e/rte_pmd_i40e_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_pmd_i40e_add_vf_mac_addr;
> diff --git a/drivers/net/iavf/rte_pmd_iavf_version.map b/drivers/net/iavf/rte_pmd_iavf_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/iavf/rte_pmd_iavf_version.map
> +++ b/drivers/net/iavf/rte_pmd_iavf_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/ice/rte_pmd_ice_version.map b/drivers/net/ice/rte_pmd_ice_version.map
> index d04b194c13..91f40225e9 100644
> --- a/drivers/net/ice/rte_pmd_ice_version.map
> +++ b/drivers/net/ice/rte_pmd_ice_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
>
> diff --git a/drivers/net/ionic/rte_pmd_ionic_version.map b/drivers/net/ionic/rte_pmd_ionic_version.map
> index acdaf587d2..4a76d1d52d 100644
> --- a/drivers/net/ionic/rte_pmd_ionic_version.map
> +++ b/drivers/net/ionic/rte_pmd_ionic_version.map
> @@ -1,4 +1,3 @@
> DPDK_21 {
> -
> local: *;
> };
> diff --git a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
> index 7e348e99b1..d8cc1026e0 100644
> --- a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
> +++ b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
>
> diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
> index 911f8083f1..9402802b04 100644
> --- a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
> +++ b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_pmd_ixgbe_bypass_event_show;
> diff --git a/drivers/net/kni/rte_pmd_kni_version.map b/drivers/net/kni/rte_pmd_kni_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/kni/rte_pmd_kni_version.map
> +++ b/drivers/net/kni/rte_pmd_kni_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/liquidio/rte_pmd_liquidio_version.map b/drivers/net/liquidio/rte_pmd_liquidio_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/liquidio/rte_pmd_liquidio_version.map
> +++ b/drivers/net/liquidio/rte_pmd_liquidio_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/memif/rte_pmd_memif_version.map b/drivers/net/memif/rte_pmd_memif_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/memif/rte_pmd_memif_version.map
> +++ b/drivers/net/memif/rte_pmd_memif_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/mlx4/rte_pmd_mlx4_version.map b/drivers/net/mlx4/rte_pmd_mlx4_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/mlx4/rte_pmd_mlx4_version.map
> +++ b/drivers/net/mlx4/rte_pmd_mlx4_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/mlx5/rte_pmd_mlx5_version.map b/drivers/net/mlx5/rte_pmd_mlx5_version.map
> index c8b1031b02..bc1d3d06bf 100644
> --- a/drivers/net/mlx5/rte_pmd_mlx5_version.map
> +++ b/drivers/net/mlx5/rte_pmd_mlx5_version.map
> @@ -1,10 +1,10 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
>
> EXPERIMENTAL {
> - global:
> + global:
>
> - # added in 20.02
> + # added in 20.02
> rte_pmd_mlx5_get_dyn_flag_names;
> };
> diff --git a/drivers/net/mvneta/rte_pmd_mvneta_version.map b/drivers/net/mvneta/rte_pmd_mvneta_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/mvneta/rte_pmd_mvneta_version.map
> +++ b/drivers/net/mvneta/rte_pmd_mvneta_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
> +++ b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/netvsc/rte_pmd_netvsc_version.map b/drivers/net/netvsc/rte_pmd_netvsc_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/netvsc/rte_pmd_netvsc_version.map
> +++ b/drivers/net/netvsc/rte_pmd_netvsc_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/nfb/rte_pmd_nfb_version.map b/drivers/net/nfb/rte_pmd_nfb_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/nfb/rte_pmd_nfb_version.map
> +++ b/drivers/net/nfb/rte_pmd_nfb_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/nfp/rte_pmd_nfp_version.map b/drivers/net/nfp/rte_pmd_nfp_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/nfp/rte_pmd_nfp_version.map
> +++ b/drivers/net/nfp/rte_pmd_nfp_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/null/rte_pmd_null_version.map b/drivers/net/null/rte_pmd_null_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/null/rte_pmd_null_version.map
> +++ b/drivers/net/null/rte_pmd_null_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/octeontx/rte_pmd_octeontx_version.map b/drivers/net/octeontx/rte_pmd_octeontx_version.map
> index f7cae02fac..6dda72890c 100644
> --- a/drivers/net/octeontx/rte_pmd_octeontx_version.map
> +++ b/drivers/net/octeontx/rte_pmd_octeontx_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_octeontx_pchan_map;
> diff --git a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
> +++ b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/pcap/rte_pmd_pcap_version.map b/drivers/net/pcap/rte_pmd_pcap_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/pcap/rte_pmd_pcap_version.map
> +++ b/drivers/net/pcap/rte_pmd_pcap_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/pfe/rte_pmd_pfe_version.map b/drivers/net/pfe/rte_pmd_pfe_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/pfe/rte_pmd_pfe_version.map
> +++ b/drivers/net/pfe/rte_pmd_pfe_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/qede/rte_pmd_qede_version.map b/drivers/net/qede/rte_pmd_qede_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/qede/rte_pmd_qede_version.map
> +++ b/drivers/net/qede/rte_pmd_qede_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/ring/rte_pmd_ring_version.map b/drivers/net/ring/rte_pmd_ring_version.map
> index ebb6be2733..29770fe3e4 100644
> --- a/drivers/net/ring/rte_pmd_ring_version.map
> +++ b/drivers/net/ring/rte_pmd_ring_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_eth_from_ring;
> diff --git a/drivers/net/sfc/rte_pmd_sfc_version.map b/drivers/net/sfc/rte_pmd_sfc_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/sfc/rte_pmd_sfc_version.map
> +++ b/drivers/net/sfc/rte_pmd_sfc_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/softnic/rte_pmd_softnic_version.map b/drivers/net/softnic/rte_pmd_softnic_version.map
> index 50f113d5a2..530d2e6b72 100644
> --- a/drivers/net/softnic/rte_pmd_softnic_version.map
> +++ b/drivers/net/softnic/rte_pmd_softnic_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_pmd_softnic_run;
> diff --git a/drivers/net/szedata2/rte_pmd_szedata2_version.map b/drivers/net/szedata2/rte_pmd_szedata2_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/szedata2/rte_pmd_szedata2_version.map
> +++ b/drivers/net/szedata2/rte_pmd_szedata2_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/tap/rte_pmd_tap_version.map b/drivers/net/tap/rte_pmd_tap_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/tap/rte_pmd_tap_version.map
> +++ b/drivers/net/tap/rte_pmd_tap_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/thunderx/rte_pmd_thunderx_version.map b/drivers/net/thunderx/rte_pmd_thunderx_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/thunderx/rte_pmd_thunderx_version.map
> +++ b/drivers/net/thunderx/rte_pmd_thunderx_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
> +++ b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/vhost/rte_pmd_vhost_version.map b/drivers/net/vhost/rte_pmd_vhost_version.map
> index 16b591ccc4..634255829e 100644
> --- a/drivers/net/vhost/rte_pmd_vhost_version.map
> +++ b/drivers/net/vhost/rte_pmd_vhost_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_eth_vhost_get_queue_event;
> diff --git a/drivers/net/virtio/rte_pmd_virtio_version.map b/drivers/net/virtio/rte_pmd_virtio_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/virtio/rte_pmd_virtio_version.map
> +++ b/drivers/net/virtio/rte_pmd_virtio_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
> +++ b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
> +++ b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
> index ca6a0d7626..280c79ea9c 100644
> --- a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
> +++ b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_qdma_attr_get;
> diff --git a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
> +++ b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/raw/ioat/rte_rawdev_ioat_version.map b/drivers/raw/ioat/rte_rawdev_ioat_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/raw/ioat/rte_rawdev_ioat_version.map
> +++ b/drivers/raw/ioat/rte_rawdev_ioat_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/raw/ntb/rte_rawdev_ntb_version.map b/drivers/raw/ntb/rte_rawdev_ntb_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/raw/ntb/rte_rawdev_ntb_version.map
> +++ b/drivers/raw/ntb/rte_rawdev_ntb_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
> +++ b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
> index acdaf587d2..4a76d1d52d 100644
> --- a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
> +++ b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
> @@ -1,4 +1,3 @@
> DPDK_21 {
> -
> local: *;
> };
> diff --git a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
> +++ b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/drivers/vdpa/ifc/rte_pmd_ifc_version.map b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
> index f9f17e4f6e..4a76d1d52d 100644
> --- a/drivers/vdpa/ifc/rte_pmd_ifc_version.map
> +++ b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
> @@ -1,3 +1,3 @@
> -DPDK_20.0 {
> +DPDK_21 {
> local: *;
> };
> diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
> index c3daca8115..d97f2927bf 100644
> --- a/lib/librte_acl/rte_acl_version.map
> +++ b/lib/librte_acl/rte_acl_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_acl_add_rules;
> diff --git a/lib/librte_bitratestats/rte_bitratestats_version.map b/lib/librte_bitratestats/rte_bitratestats_version.map
> index 88fc2912db..463f78a53a 100644
> --- a/lib/librte_bitratestats/rte_bitratestats_version.map
> +++ b/lib/librte_bitratestats/rte_bitratestats_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_stats_bitrate_calc;
> diff --git a/lib/librte_cfgfile/rte_cfgfile_version.map b/lib/librte_cfgfile/rte_cfgfile_version.map
> index 22c999fe16..180c42b717 100644
> --- a/lib/librte_cfgfile/rte_cfgfile_version.map
> +++ b/lib/librte_cfgfile/rte_cfgfile_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_cfgfile_add_entry;
> diff --git a/lib/librte_cmdline/rte_cmdline_version.map b/lib/librte_cmdline/rte_cmdline_version.map
> index 95fce812ff..a99104457f 100644
> --- a/lib/librte_cmdline/rte_cmdline_version.map
> +++ b/lib/librte_cmdline/rte_cmdline_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> cirbuf_add_buf_head;
> diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map
> index a7a78dc41f..02f6dcf724 100644
> --- a/lib/librte_cryptodev/rte_cryptodev_version.map
> +++ b/lib/librte_cryptodev/rte_cryptodev_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_crypto_aead_algorithm_strings;
> @@ -58,12 +58,11 @@ DPDK_20.0 {
> local: *;
> };
>
> -DPDK_21 {
> +DPDK_20.0 {
> global:
> rte_cryptodev_info_get;
> rte_cryptodev_sym_capability_get;
> -} DPDK_20.0;
> -
> +};
>
> EXPERIMENTAL {
> global:
> diff --git a/lib/librte_distributor/rte_distributor_version.map b/lib/librte_distributor/rte_distributor_version.map
> index 1b7c643005..1ddcd01fe6 100644
> --- a/lib/librte_distributor/rte_distributor_version.map
> +++ b/lib/librte_distributor/rte_distributor_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_distributor_clear_returns;
> diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
> index bf0c17c233..0b18e2ef85 100644
> --- a/lib/librte_eal/rte_eal_version.map
> +++ b/lib/librte_eal/rte_eal_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> __rte_panic;
> @@ -6,6 +6,7 @@ DPDK_20.0 {
> eal_timer_source;
> per_lcore__lcore_id;
> per_lcore__rte_errno;
> + per_lcore__thread_id;
> rte_bus_dump;
> rte_bus_find;
> rte_bus_find_by_device;
> @@ -221,13 +222,6 @@ DPDK_20.0 {
> local: *;
> };
>
> -DPDK_21 {
> - global:
> -
> - per_lcore__thread_id;
> -
> -} DPDK_20.0;
> -
> EXPERIMENTAL {
> global:
>
> diff --git a/lib/librte_efd/rte_efd_version.map b/lib/librte_efd/rte_efd_version.map
> index e010eecfe4..425c0a85a9 100644
> --- a/lib/librte_efd/rte_efd_version.map
> +++ b/lib/librte_efd/rte_efd_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_efd_create;
> diff --git a/lib/librte_ethdev/rte_ethdev_version.map b/lib/librte_ethdev/rte_ethdev_version.map
> index 1212a17d32..8d9d6b1c67 100644
> --- a/lib/librte_ethdev/rte_ethdev_version.map
> +++ b/lib/librte_ethdev/rte_ethdev_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> _rte_eth_dev_callback_process;
> diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map
> index 91a62cd077..3d9d0ca054 100644
> --- a/lib/librte_eventdev/rte_eventdev_version.map
> +++ b/lib/librte_eventdev/rte_eventdev_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_event_crypto_adapter_caps_get;
> diff --git a/lib/librte_gro/rte_gro_version.map b/lib/librte_gro/rte_gro_version.map
> index 9f6fe79e57..19dc66b0d4 100644
> --- a/lib/librte_gro/rte_gro_version.map
> +++ b/lib/librte_gro/rte_gro_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_gro_ctx_create;
> diff --git a/lib/librte_gso/rte_gso_version.map b/lib/librte_gso/rte_gso_version.map
> index 8505a59c27..60aa1b54e4 100644
> --- a/lib/librte_gso/rte_gso_version.map
> +++ b/lib/librte_gso/rte_gso_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_gso_segment;
> diff --git a/lib/librte_hash/rte_hash_version.map b/lib/librte_hash/rte_hash_version.map
> index c2a909443d..c0db81014f 100644
> --- a/lib/librte_hash/rte_hash_version.map
> +++ b/lib/librte_hash/rte_hash_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_fbk_hash_create;
> diff --git a/lib/librte_ip_frag/rte_ip_frag_version.map b/lib/librte_ip_frag/rte_ip_frag_version.map
> index 5dd34f828c..82b308ddb0 100644
> --- a/lib/librte_ip_frag/rte_ip_frag_version.map
> +++ b/lib/librte_ip_frag/rte_ip_frag_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_ip_frag_free_death_row;
> diff --git a/lib/librte_jobstats/rte_jobstats_version.map b/lib/librte_jobstats/rte_jobstats_version.map
> index dbd2664ae2..3e166ad548 100644
> --- a/lib/librte_jobstats/rte_jobstats_version.map
> +++ b/lib/librte_jobstats/rte_jobstats_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_jobstats_abort;
> diff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map
> index 9cd3cedc54..a93da95f36 100644
> --- a/lib/librte_kni/rte_kni_version.map
> +++ b/lib/librte_kni/rte_kni_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_kni_alloc;
> diff --git a/lib/librte_kvargs/rte_kvargs_version.map b/lib/librte_kvargs/rte_kvargs_version.map
> index 3ba0f4b59c..ed375bf4a3 100644
> --- a/lib/librte_kvargs/rte_kvargs_version.map
> +++ b/lib/librte_kvargs/rte_kvargs_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_kvargs_count;
> diff --git a/lib/librte_latencystats/rte_latencystats_version.map b/lib/librte_latencystats/rte_latencystats_version.map
> index e04e63463f..0c4360ab43 100644
> --- a/lib/librte_latencystats/rte_latencystats_version.map
> +++ b/lib/librte_latencystats/rte_latencystats_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_latencystats_get;
> diff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map
> index bfccd7eacc..b4d437cc75 100644
> --- a/lib/librte_lpm/rte_lpm_version.map
> +++ b/lib/librte_lpm/rte_lpm_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_lpm6_add;
> diff --git a/lib/librte_mbuf/rte_mbuf_version.map b/lib/librte_mbuf/rte_mbuf_version.map
> index ab161bcdc7..a011aaead3 100644
> --- a/lib/librte_mbuf/rte_mbuf_version.map
> +++ b/lib/librte_mbuf/rte_mbuf_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> __rte_pktmbuf_linearize;
> diff --git a/lib/librte_member/rte_member_version.map b/lib/librte_member/rte_member_version.map
> index 87780ae611..b8c6322e73 100644
> --- a/lib/librte_member/rte_member_version.map
> +++ b/lib/librte_member/rte_member_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_member_add;
> diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map
> index 826a0b8824..50e22ee020 100644
> --- a/lib/librte_mempool/rte_mempool_version.map
> +++ b/lib/librte_mempool/rte_mempool_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_mempool_audit;
> @@ -31,12 +31,12 @@ DPDK_20.0 {
> local: *;
> };
>
> -DPDK_21 {
> +DPDK_20.0 {
> global:
>
> rte_mempool_populate_iova;
> rte_mempool_populate_virt;
> -} DPDK_20.0;
> +};
>
> EXPERIMENTAL {
> global:
> diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
> index 58859d4d76..e2a2607f28 100644
> --- a/lib/librte_meter/rte_meter_version.map
> +++ b/lib/librte_meter/rte_meter_version.map
> @@ -1,24 +1,18 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_meter_srtcm_config;
> rte_meter_srtcm_profile_config;
> rte_meter_trtcm_config;
> rte_meter_trtcm_profile_config;
> + rte_meter_trtcm_rfc4115_config;
> + rte_meter_trtcm_rfc4115_profile_config;
>
> local: *;
> };
>
> -DPDK_21 {
> - global:
> -
> - rte_meter_trtcm_rfc4115_config;
> - rte_meter_trtcm_rfc4115_profile_config;
> -
> -} DPDK_20.0;
> -
> EXPERIMENTAL {
> - global:
> + global:
>
> rte_meter_trtcm_rfc4115_config;
> rte_meter_trtcm_rfc4115_profile_config;
> diff --git a/lib/librte_metrics/rte_metrics_version.map b/lib/librte_metrics/rte_metrics_version.map
> index c88939b117..20f99cd19a 100644
> --- a/lib/librte_metrics/rte_metrics_version.map
> +++ b/lib/librte_metrics/rte_metrics_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_metrics_get_names;
> diff --git a/lib/librte_net/rte_net_version.map b/lib/librte_net/rte_net_version.map
> index 8a4e75a3a0..621f237945 100644
> --- a/lib/librte_net/rte_net_version.map
> +++ b/lib/librte_net/rte_net_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_eth_random_addr;
> diff --git a/lib/librte_pci/rte_pci_version.map b/lib/librte_pci/rte_pci_version.map
> index 67eb845796..cd77c9dc9e 100644
> --- a/lib/librte_pci/rte_pci_version.map
> +++ b/lib/librte_pci/rte_pci_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> pci_map_resource;
> diff --git a/lib/librte_pdump/rte_pdump_version.map b/lib/librte_pdump/rte_pdump_version.map
> index 6d02ccce6d..2f9e952d0b 100644
> --- a/lib/librte_pdump/rte_pdump_version.map
> +++ b/lib/librte_pdump/rte_pdump_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_pdump_disable;
> diff --git a/lib/librte_pipeline/rte_pipeline_version.map b/lib/librte_pipeline/rte_pipeline_version.map
> index 64d38afecd..9ed80eb041 100644
> --- a/lib/librte_pipeline/rte_pipeline_version.map
> +++ b/lib/librte_pipeline/rte_pipeline_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_pipeline_ah_packet_drop;
> diff --git a/lib/librte_port/rte_port_version.map b/lib/librte_port/rte_port_version.map
> index 18c6154672..bd1fbb66b0 100644
> --- a/lib/librte_port/rte_port_version.map
> +++ b/lib/librte_port/rte_port_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_port_ethdev_reader_ops;
> diff --git a/lib/librte_power/rte_power_version.map b/lib/librte_power/rte_power_version.map
> index 00ee5753e2..69ca9af616 100644
> --- a/lib/librte_power/rte_power_version.map
> +++ b/lib/librte_power/rte_power_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_power_exit;
> diff --git a/lib/librte_rawdev/rte_rawdev_version.map b/lib/librte_rawdev/rte_rawdev_version.map
> index 63b54f598b..eb29a3ac0d 100644
> --- a/lib/librte_rawdev/rte_rawdev_version.map
> +++ b/lib/librte_rawdev/rte_rawdev_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_rawdev_close;
> diff --git a/lib/librte_reorder/rte_reorder_version.map b/lib/librte_reorder/rte_reorder_version.map
> index cf444062df..8c0220d324 100644
> --- a/lib/librte_reorder/rte_reorder_version.map
> +++ b/lib/librte_reorder/rte_reorder_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_reorder_create;
> diff --git a/lib/librte_ring/rte_ring_version.map b/lib/librte_ring/rte_ring_version.map
> index ac392f3ca9..e35d6b9712 100644
> --- a/lib/librte_ring/rte_ring_version.map
> +++ b/lib/librte_ring/rte_ring_version.map
> @@ -1,21 +1,16 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_ring_create;
> + rte_ring_create_elem;
> rte_ring_dump;
> rte_ring_free;
> rte_ring_get_memsize;
> + rte_ring_get_memsize_elem;
> rte_ring_init;
> rte_ring_list_dump;
> rte_ring_lookup;
> + rte_ring_reset;
>
> local: *;
> };
> -
> -DPDK_21 {
> - global:
> -
> - rte_ring_create_elem;
> - rte_ring_get_memsize_elem;
> - rte_ring_reset;
> -} DPDK_20.0;
> diff --git a/lib/librte_sched/rte_sched_version.map b/lib/librte_sched/rte_sched_version.map
> index cefd990367..3faef6f0a0 100644
> --- a/lib/librte_sched/rte_sched_version.map
> +++ b/lib/librte_sched/rte_sched_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_approx;
> diff --git a/lib/librte_security/rte_security_version.map b/lib/librte_security/rte_security_version.map
> index b07314bbf4..d84eec0a88 100644
> --- a/lib/librte_security/rte_security_version.map
> +++ b/lib/librte_security/rte_security_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_security_attach_session;
> diff --git a/lib/librte_table/rte_table_version.map b/lib/librte_table/rte_table_version.map
> index 40f72b1fe8..568a6c6a8f 100644
> --- a/lib/librte_table/rte_table_version.map
> +++ b/lib/librte_table/rte_table_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_table_acl_ops;
> diff --git a/lib/librte_timer/rte_timer_version.map b/lib/librte_timer/rte_timer_version.map
> index 4471cef92b..21e68ea7a2 100644
> --- a/lib/librte_timer/rte_timer_version.map
> +++ b/lib/librte_timer/rte_timer_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_timer_dump_stats;
> diff --git a/lib/librte_vhost/rte_vhost_version.map b/lib/librte_vhost/rte_vhost_version.map
> index 13ec53b638..20b4abcb4e 100644
> --- a/lib/librte_vhost/rte_vhost_version.map
> +++ b/lib/librte_vhost/rte_vhost_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +DPDK_21 {
> global:
>
> rte_vhost_avail_entries;
>
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH] doc: add section describing new abi versions
@ 2020-08-11 15:16 32% Ray Kinsella
2020-08-11 16:36 9% ` Ray Kinsella
` (2 more replies)
0 siblings, 3 replies; 200+ results
From: Ray Kinsella @ 2020-08-11 15:16 UTC (permalink / raw)
To: dev
Cc: ferruh.yigit, david.marchand, thomas, kevin.laatz,
bruce.richardson, hemant.agrawal, Honnappa.Nagarahalli,
Ray Kinsella, Neil Horman, John McNamara, Marko Kovacevic
Added a section describing new abi versions, this provides pointers to
the relevant amended rules that apply during the abi breakage window.
Also remove the large note a the head of the abi policy describing the
abi stability process that has taken place over the previous year.
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
---
doc/guides/contributing/abi_policy.rst | 37 +++++++++++++++++++++++-------
doc/guides/contributing/abi_versioning.rst | 6 ++---
2 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/doc/guides/contributing/abi_policy.rst b/doc/guides/contributing/abi_policy.rst
index ab9daf5..fae1eb0 100644
--- a/doc/guides/contributing/abi_policy.rst
+++ b/doc/guides/contributing/abi_policy.rst
@@ -14,8 +14,8 @@ General Guidelines
------------------
#. Major ABI versions are declared no more frequently than yearly. Compatibility
- with the major ABI version is mandatory in subsequent releases until a new
- major ABI version is declared.
+ with the major ABI version is mandatory in subsequent releases until a
+ :ref:`new major ABI version <new_abi_version>` is declared.
#. Major ABI versions are usually but not always declared aligned with a
:ref:`LTS release <stable_lts_releases>`.
#. The ABI version is managed at a project level in DPDK, and is reflected in
@@ -35,12 +35,6 @@ General Guidelines
.. note::
- In 2019, the DPDK community stated its intention to move to ABI stable
- releases, over a number of release cycles. This change begins with
- maintaining ABI stability through one year of DPDK releases starting from
- DPDK 19.11. This policy will be reviewed in 2020, with intention of
- lengthening the stability period. Additional implementation detail can be
- found in the :ref:`release notes <20_02_abi_changes>`.
Please note that this policy does not currently apply to the
:doc:`Windows build <../windows_gsg/intro>`.
@@ -288,11 +282,38 @@ added to the Release Notes:
these changes. Binaries using this library built prior to ABI version 21 will
require updating and recompilation.
+
+.. _new_abi_version:
+
+New ABI versions
+------------------
+
+A new ABI version may be declared aligned with a given release. The requirement
+to preserve compatibility with the previous major ABI version is then dropped
+for the duration of this release cycle. This is commonly known as the *ABI
+breakage window*, and some amended rules apply during this cycle:
+
+ * The requirement to preserve compatibility with the previous major ABI
+ version, as described in the section :ref:`abi_changes` does not apply.
+ * Contributors of compatibility preserving code in previous releases, are now
+ required to remove this compatibility code, as described in the section
+ :ref:`abi_changes`.
+ * Symbol versioning references to the old ABI version are updated to reference
+ the new ABI version, as described in the section
+ :ref:`deprecating_entire_abi`.
+ * Finally, the *ABI breakage window* is *not* permission to circumvent the
+ other aspects of the procedures to make ABI changes described in
+ :ref:`abi_changes`, that is, 3 ACKs of the requirement to break the ABI and
+ the observance of a deprecation notice are still considered mandatory.
+
.. _experimental_apis:
Experimental
------------
+Major ABI versions are usually but not always declared aligned with a
+:ref:`LTS release <stable_lts_releases>`.
+
APIs
~~~~
diff --git a/doc/guides/contributing/abi_versioning.rst b/doc/guides/contributing/abi_versioning.rst
index b1d09c7..3d35b1a 100644
--- a/doc/guides/contributing/abi_versioning.rst
+++ b/doc/guides/contributing/abi_versioning.rst
@@ -673,9 +673,9 @@ symbols.
-BIND_DEFAULT_SYMBOL(rte_acl_create, _v20, 20);
+BIND_DEFAULT_SYMBOL(rte_acl_create, _v21, 21);
-Lastly, any VERSION_SYMBOL macros that point to the old version node should be
-removed, taking care to keep, where need old code in place to support newer
-versions of the symbol.
+Lastly, any VERSION_SYMBOL macros that point to the old version nodes should be
+removed, taking care to preserve any code that is shared with the new version
+node.
Running the ABI Validator
--
2.7.4
^ permalink raw reply [relevance 32%]
* Re: [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0
2020-08-11 13:47 0% ` [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0 Kinsella, Ray
@ 2020-08-11 14:05 0% ` Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-11 14:05 UTC (permalink / raw)
To: dev
Cc: david.marchand, nhorman, kevin.laatz, bruce.richardson,
Hemant Agrawal, Honnappa Nagarahalli, Luca Boccassi,
Dodji Seketeli, Stephen Hemminger, Richardson, Bruce, Yigit,
Ferruh, David Marchand, Kinsella, Ray
11/08/2020 15:47, Kinsella, Ray:
> On 11/08/2020 12:27, Thomas Monjalon wrote:
> > --- a/devtools/libabigail.abignore
> > +++ b/devtools/libabigail.abignore
> > @@ -8,12 +8,6 @@
> > [suppress_variable]
> > symbol_version = INTERNAL
> >
> > -; Ignore ABI 20.0.1 replaced with ABI 21
> > -[suppress_function]
> > - symbol_version = DPDK_20.0.1
> > -[suppress_variable]
> > - symbol_version = DPDK_20.0.1
> > -
> > ; Explicit ignore for driver-only ABI
> > [suppress_type]
> > name = rte_cryptodev_ops
>
> I think we might be safer doing a complete reset of libabigail.ignore.
> We should leave only the suppressions for internal and experimental.
>
> My concern is that if we have suppressions that live in there forever,
> it will becomes stale, and eventually we will end up suppressing things we don't intend.
>
> So yes, if we strip out some of these - especially the enumeration suppressions,
> We will end up having to suppress them again as we extend/modify the enumerations etc,
> but for me that preferable to the risk of unintended supressions.
>
> What do others think?
I removed all exceptions in v5.
I would like to apply this patch tomorrow morning.
All, please ack or nack quickly.
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH v5 2/2] devtools: fix ABI update in map files
2020-08-11 14:03 13% ` [dpdk-dev] [PATCH v5 " Thomas Monjalon
@ 2020-08-11 14:03 12% ` Thomas Monjalon
2020-08-12 6:57 4% ` Kinsella, Ray
2020-08-11 16:18 0% ` [dpdk-dev] [PATCH v5 1/2] version: 20.11-rc0 Kinsella, Ray
2020-08-12 8:58 0% ` Kinsella, Ray
2 siblings, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-08-11 14:03 UTC (permalink / raw)
To: dev; +Cc: david.marchand, mdr, nhorman, kevin.laatz, bruce.richardson
The script was using the full ABI version, including the minor number,
to version the symbols in the map files.
It is fixed to use only the major number for symbol versioning.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
devtools/update_version_map_abi.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/devtools/update_version_map_abi.py b/devtools/update_version_map_abi.py
index 80a61641ed..10c3bc8098 100755
--- a/devtools/update_version_map_abi.py
+++ b/devtools/update_version_map_abi.py
@@ -105,9 +105,9 @@ def __parse_map_file(f_in):
return has_stable, stable_lines, experimental_lines, internal_lines
-def __generate_stable_abi(f_out, abi_version, lines):
+def __generate_stable_abi(f_out, abi_major, lines):
# print ABI version header
- print("DPDK_{} {{".format(abi_version), file=f_out)
+ print("DPDK_{} {{".format(abi_major), file=f_out)
# print global section if it exists
if lines:
@@ -186,6 +186,7 @@ def __main():
file=sys.stderr)
arg_parser.print_help()
sys.exit(1)
+ abi_major = parsed.abi_version.split('.')[0]
with open(parsed.map_file) as f_in:
has_stable, stable_lines, experimental_lines, internal_lines = __parse_map_file(f_in)
@@ -193,7 +194,7 @@ def __main():
with open(parsed.map_file, 'w') as f_out:
need_newline = has_stable and experimental_lines
if has_stable:
- __generate_stable_abi(f_out, parsed.abi_version, stable_lines)
+ __generate_stable_abi(f_out, abi_major, stable_lines)
if need_newline:
# separate sections with a newline
print(file=f_out)
--
2.27.0
^ permalink raw reply [relevance 12%]
* [dpdk-dev] [PATCH v5 1/2] version: 20.11-rc0
2020-08-10 15:15 9% [dpdk-dev] [PATCH] version: 20.11-rc0 Thomas Monjalon
` (2 preceding siblings ...)
2020-08-11 11:27 14% ` [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0 Thomas Monjalon
@ 2020-08-11 14:03 13% ` Thomas Monjalon
2020-08-11 14:03 12% ` [dpdk-dev] [PATCH v5 2/2] devtools: fix ABI update in map files Thomas Monjalon
` (2 more replies)
3 siblings, 3 replies; 200+ results
From: Thomas Monjalon @ 2020-08-11 14:03 UTC (permalink / raw)
To: dev; +Cc: david.marchand, mdr, nhorman, kevin.laatz, bruce.richardson
Start a new release cycle with empty release notes.
The ABI version becomes 21.0.
The ABI major is back to normal, having only one number (21 vs 20.0).
The map files are updated to the new ABI major number (21).
The ABI exceptions are dropped.
Travis ABI check is disabled because compatibility is not preserved.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
v5: drop all ABI exceptions
v4: add -rc0 and remove temporary ABI exceptions
v3: add minor number to ABI_VERSION and remove workaround in scripts
v2: bump major ABI number (including .map changes)
---
.travis.yml | 26 ----
ABI_VERSION | 2 +-
VERSION | 2 +-
config/meson.build | 5 +-
devtools/libabigail.abignore | 103 -------------
doc/guides/rel_notes/index.rst | 1 +
doc/guides/rel_notes/release_20_11.rst | 136 ++++++++++++++++++
.../rte_pmd_bbdev_fpga_5gnr_fec_version.map | 2 +-
.../rte_pmd_bbdev_fpga_lte_fec_version.map | 2 +-
.../null/rte_pmd_bbdev_null_version.map | 2 +-
.../rte_pmd_bbdev_turbo_sw_version.map | 2 +-
drivers/bus/ifpga/rte_bus_ifpga_version.map | 2 +-
drivers/bus/pci/rte_bus_pci_version.map | 2 +-
drivers/bus/vdev/rte_bus_vdev_version.map | 2 +-
drivers/bus/vmbus/rte_bus_vmbus_version.map | 2 +-
drivers/common/cpt/rte_common_cpt_version.map | 2 +-
.../common/iavf/rte_common_iavf_version.map | 4 +-
.../common/mlx5/rte_common_mlx5_version.map | 1 -
.../common/mvep/rte_common_mvep_version.map | 2 +-
.../octeontx/rte_common_octeontx_version.map | 2 +-
.../compress/isal/rte_pmd_isal_version.map | 2 +-
.../rte_pmd_octeontx_compress_version.map | 2 +-
drivers/compress/qat/rte_pmd_qat_version.map | 2 +-
.../compress/zlib/rte_pmd_zlib_version.map | 2 +-
.../aesni_gcm/rte_pmd_aesni_gcm_version.map | 2 +-
.../aesni_mb/rte_pmd_aesni_mb_version.map | 2 +-
.../crypto/armv8/rte_pmd_armv8_version.map | 2 +-
.../caam_jr/rte_pmd_caam_jr_version.map | 2 +-
drivers/crypto/ccp/rte_pmd_ccp_version.map | 2 +-
.../crypto/kasumi/rte_pmd_kasumi_version.map | 2 +-
.../crypto/mvsam/rte_pmd_mvsam_version.map | 2 +-
.../crypto/nitrox/rte_pmd_nitrox_version.map | 2 +-
.../null/rte_pmd_null_crypto_version.map | 2 +-
.../rte_pmd_octeontx_crypto_version.map | 2 +-
.../rte_pmd_octeontx2_crypto_version.map | 2 +-
.../openssl/rte_pmd_openssl_version.map | 2 +-
.../rte_pmd_crypto_scheduler_version.map | 2 +-
.../crypto/snow3g/rte_pmd_snow3g_version.map | 2 +-
.../virtio/rte_pmd_virtio_crypto_version.map | 2 +-
drivers/crypto/zuc/rte_pmd_zuc_version.map | 2 +-
.../event/dpaa/rte_pmd_dpaa_event_version.map | 2 +-
.../dpaa2/rte_pmd_dpaa2_event_version.map | 2 +-
.../event/dsw/rte_pmd_dsw_event_version.map | 2 +-
.../rte_pmd_octeontx_event_version.map | 2 +-
.../rte_pmd_octeontx2_event_version.map | 2 +-
.../event/opdl/rte_pmd_opdl_event_version.map | 2 +-
.../rte_pmd_skeleton_event_version.map | 2 +-
drivers/event/sw/rte_pmd_sw_event_version.map | 2 +-
.../bucket/rte_mempool_bucket_version.map | 2 +-
.../dpaa2/rte_mempool_dpaa2_version.map | 2 +-
.../octeontx/rte_mempool_octeontx_version.map | 2 +-
.../mempool/ring/rte_mempool_ring_version.map | 2 +-
.../stack/rte_mempool_stack_version.map | 2 +-
.../af_packet/rte_pmd_af_packet_version.map | 2 +-
drivers/net/af_xdp/rte_pmd_af_xdp_version.map | 2 +-
drivers/net/ark/rte_pmd_ark_version.map | 2 +-
.../net/atlantic/rte_pmd_atlantic_version.map | 2 +-
drivers/net/avp/rte_pmd_avp_version.map | 2 +-
drivers/net/axgbe/rte_pmd_axgbe_version.map | 2 +-
drivers/net/bnx2x/rte_pmd_bnx2x_version.map | 2 +-
drivers/net/bnxt/rte_pmd_bnxt_version.map | 2 +-
drivers/net/bonding/rte_pmd_bond_version.map | 2 +-
drivers/net/cxgbe/rte_pmd_cxgbe_version.map | 2 +-
drivers/net/dpaa/rte_pmd_dpaa_version.map | 2 +-
drivers/net/e1000/rte_pmd_e1000_version.map | 2 +-
drivers/net/ena/rte_pmd_ena_version.map | 2 +-
drivers/net/enetc/rte_pmd_enetc_version.map | 2 +-
drivers/net/enic/rte_pmd_enic_version.map | 2 +-
.../net/failsafe/rte_pmd_failsafe_version.map | 2 +-
drivers/net/fm10k/rte_pmd_fm10k_version.map | 2 +-
drivers/net/hinic/rte_pmd_hinic_version.map | 2 +-
drivers/net/hns3/rte_pmd_hns3_version.map | 2 +-
drivers/net/i40e/rte_pmd_i40e_version.map | 2 +-
drivers/net/iavf/rte_pmd_iavf_version.map | 2 +-
drivers/net/ice/rte_pmd_ice_version.map | 2 +-
drivers/net/ionic/rte_pmd_ionic_version.map | 1 -
drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map | 2 +-
drivers/net/ixgbe/rte_pmd_ixgbe_version.map | 2 +-
drivers/net/kni/rte_pmd_kni_version.map | 2 +-
.../net/liquidio/rte_pmd_liquidio_version.map | 2 +-
drivers/net/memif/rte_pmd_memif_version.map | 2 +-
drivers/net/mlx4/rte_pmd_mlx4_version.map | 2 +-
drivers/net/mlx5/rte_pmd_mlx5_version.map | 6 +-
drivers/net/mvneta/rte_pmd_mvneta_version.map | 2 +-
drivers/net/mvpp2/rte_pmd_mvpp2_version.map | 2 +-
drivers/net/netvsc/rte_pmd_netvsc_version.map | 2 +-
drivers/net/nfb/rte_pmd_nfb_version.map | 2 +-
drivers/net/nfp/rte_pmd_nfp_version.map | 2 +-
drivers/net/null/rte_pmd_null_version.map | 2 +-
.../net/octeontx/rte_pmd_octeontx_version.map | 2 +-
.../octeontx2/rte_pmd_octeontx2_version.map | 2 +-
drivers/net/pcap/rte_pmd_pcap_version.map | 2 +-
drivers/net/pfe/rte_pmd_pfe_version.map | 2 +-
drivers/net/qede/rte_pmd_qede_version.map | 2 +-
drivers/net/ring/rte_pmd_ring_version.map | 2 +-
drivers/net/sfc/rte_pmd_sfc_version.map | 2 +-
.../net/softnic/rte_pmd_softnic_version.map | 2 +-
.../net/szedata2/rte_pmd_szedata2_version.map | 2 +-
drivers/net/tap/rte_pmd_tap_version.map | 2 +-
.../net/thunderx/rte_pmd_thunderx_version.map | 2 +-
.../rte_pmd_vdev_netvsc_version.map | 2 +-
drivers/net/vhost/rte_pmd_vhost_version.map | 2 +-
drivers/net/virtio/rte_pmd_virtio_version.map | 2 +-
.../net/vmxnet3/rte_pmd_vmxnet3_version.map | 2 +-
.../rte_rawdev_dpaa2_cmdif_version.map | 2 +-
.../rte_rawdev_dpaa2_qdma_version.map | 2 +-
.../raw/ifpga/rte_rawdev_ifpga_version.map | 2 +-
drivers/raw/ioat/rte_rawdev_ioat_version.map | 2 +-
drivers/raw/ntb/rte_rawdev_ntb_version.map | 2 +-
.../rte_rawdev_octeontx2_dma_version.map | 2 +-
.../rte_rawdev_octeontx2_ep_version.map | 1 -
.../skeleton/rte_rawdev_skeleton_version.map | 2 +-
drivers/vdpa/ifc/rte_pmd_ifc_version.map | 2 +-
lib/librte_acl/rte_acl_version.map | 2 +-
.../rte_bitratestats_version.map | 2 +-
lib/librte_cfgfile/rte_cfgfile_version.map | 2 +-
lib/librte_cmdline/rte_cmdline_version.map | 2 +-
.../rte_cryptodev_version.map | 7 +-
.../rte_distributor_version.map | 2 +-
lib/librte_eal/rte_eal_version.map | 10 +-
lib/librte_efd/rte_efd_version.map | 2 +-
lib/librte_ethdev/rte_ethdev_version.map | 2 +-
lib/librte_eventdev/rte_eventdev_version.map | 2 +-
lib/librte_gro/rte_gro_version.map | 2 +-
lib/librte_gso/rte_gso_version.map | 2 +-
lib/librte_hash/rte_hash_version.map | 2 +-
lib/librte_ip_frag/rte_ip_frag_version.map | 2 +-
lib/librte_jobstats/rte_jobstats_version.map | 2 +-
lib/librte_kni/rte_kni_version.map | 2 +-
lib/librte_kvargs/rte_kvargs_version.map | 2 +-
.../rte_latencystats_version.map | 2 +-
lib/librte_lpm/rte_lpm_version.map | 2 +-
lib/librte_mbuf/rte_mbuf_version.map | 2 +-
lib/librte_member/rte_member_version.map | 2 +-
lib/librte_mempool/rte_mempool_version.map | 6 +-
lib/librte_meter/rte_meter_version.map | 14 +-
lib/librte_metrics/rte_metrics_version.map | 2 +-
lib/librte_net/rte_net_version.map | 2 +-
lib/librte_pci/rte_pci_version.map | 2 +-
lib/librte_pdump/rte_pdump_version.map | 2 +-
lib/librte_pipeline/rte_pipeline_version.map | 2 +-
lib/librte_port/rte_port_version.map | 2 +-
lib/librte_power/rte_power_version.map | 2 +-
lib/librte_rawdev/rte_rawdev_version.map | 2 +-
lib/librte_reorder/rte_reorder_version.map | 2 +-
lib/librte_ring/rte_ring_version.map | 13 +-
lib/librte_sched/rte_sched_version.map | 2 +-
lib/librte_security/rte_security_version.map | 2 +-
lib/librte_table/rte_table_version.map | 2 +-
lib/librte_timer/rte_timer_version.map | 2 +-
lib/librte_vhost/rte_vhost_version.map | 2 +-
151 files changed, 295 insertions(+), 311 deletions(-)
create mode 100644 doc/guides/rel_notes/release_20_11.rst
diff --git a/.travis.yml b/.travis.yml
index 14f8124233..d6eeab371d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,9 +2,6 @@
language: c
cache:
ccache: true
- directories:
- - libabigail
- - reference
dist: bionic
@@ -21,9 +18,6 @@ _aarch64_packages: &aarch64_packages
- *required_packages
- [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
-_libabigail_build_packages: &libabigail_build_packages
- - [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
-
_build_32b_packages: &build_32b_packages
- *required_packages
- [gcc-multilib]
@@ -34,10 +28,6 @@ _doc_packages: &doc_packages
before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
script: ./.ci/${TRAVIS_OS_NAME}-build.sh
-env:
- global:
- - REF_GIT_TAG=v20.05
-
jobs:
include:
# x86_64 gcc jobs
@@ -55,14 +45,6 @@ jobs:
packages:
- *required_packages
- *doc_packages
- - env: DEF_LIB="shared" ABI_CHECKS=1
- arch: amd64
- compiler: gcc
- addons:
- apt:
- packages:
- - *required_packages
- - *libabigail_build_packages
# x86_64 clang jobs
- env: DEF_LIB="static"
arch: amd64
@@ -116,14 +98,6 @@ jobs:
packages:
- *required_packages
- *doc_packages
- - env: DEF_LIB="shared" ABI_CHECKS=1
- arch: arm64
- compiler: gcc
- addons:
- apt:
- packages:
- - *required_packages
- - *libabigail_build_packages
# aarch64 clang jobs
- env: DEF_LIB="static"
arch: arm64
diff --git a/ABI_VERSION b/ABI_VERSION
index a9ac8dacb0..5f39e91446 100644
--- a/ABI_VERSION
+++ b/ABI_VERSION
@@ -1 +1 @@
-20.0.3
+21.0
diff --git a/VERSION b/VERSION
index 85e33446f8..3f02088ffa 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-20.08.0
+20.11.0-rc0
diff --git a/config/meson.build b/config/meson.build
index cff8b33dd2..6996e5cbea 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -29,10 +29,7 @@ abi_version = run_command(find_program('cat', 'more'),
# and have the soname be all but the final part of the abi_version.
# e.g. v20.1 => librte_foo.so.20.1
# sonames => librte_foo.so.20
-# e.g. v20.0.1 => librte_foo.so.20.0.1
-# sonames => librte_foo.so.20.0
-abi_va = abi_version.split('.')
-so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1]
+so_version = abi_version.split('.')[0]
# extract all version information into the build configuration
dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int())
diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 9fea822f36..025f2c01bc 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -7,106 +7,3 @@
symbol_version = INTERNAL
[suppress_variable]
symbol_version = INTERNAL
-
-; Ignore ABI 20.0.1 replaced with ABI 21
-[suppress_function]
- symbol_version = DPDK_20.0.1
-[suppress_variable]
- symbol_version = DPDK_20.0.1
-
-; Explicit ignore for driver-only ABI
-[suppress_type]
- name = rte_cryptodev_ops
-; Ignore this enum update as it is part of an experimental API
-[suppress_type]
- type_kind = enum
- name = rte_crypto_asym_xform_type
- changed_enumerators = RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END
-; Ignore updates of ring prod/cons
-[suppress_type]
- type_kind = struct
- name = rte_ring
-[suppress_type]
- type_kind = struct
- name = rte_event_ring
-; Ignore ethdev event enum update because new event cannot be
-; received if not registered
-[suppress_type]
- type_kind = enum
- name = rte_eth_event_type
- changed_enumerators = RTE_ETH_EVENT_MAX
-; Ignore this enum update as new flags remain unknown to applications
-[suppress_type]
- type_kind = enum
- name = rte_cpu_flag_t
- changed_enumerators = RTE_CPUFLAG_NUMFLAGS
-; Ignore Cryptodev AEAD xform enum and AEAD xform strings change
-; due to addition of Chacha20-Poly1305
-[suppress_type]
- type_kind = enum
- name = rte_crypto_aead_algorithm
- changed_enumerators = RTE_CRYPTO_AEAD_LIST_END
-[suppress_variable]
- name = rte_crypto_aead_algorithm_strings
-; Ignore updates of epoll event
-[suppress_type]
- type_kind = struct
- name = rte_epoll_event
-; Ignore updates of rte_mbuf_ext_shared_info refcnt_atomic
-[suppress_type]
- name = rte_mbuf_ext_shared_info
- has_data_member_inserted_between = {offset_of(refcnt_atomic), offset_of(refcnt_atomic)}
-
-;;;;;;;;;;;;;;;;;;;;;;
-; Temporary exceptions till DPDK 20.11
-;;;;;;;;;;;;;;;;;;;;;;
-; Ignore moving OCTEONTX2 stable functions to INTERNAL
-[suppress_file]
- file_name_regexp = ^librte_common_octeontx2\.
-[suppress_file]
- file_name_regexp = ^librte_mempool_octeontx2\.
-; Ignore moving mlx5 stable functions to INTERNAL
-[suppress_file]
- file_name_regexp = ^librte_common_mlx5\.
-; Ignore moving DPAAx stable functions to INTERNAL
-[suppress_file]
- file_name_regexp = ^librte_common_dpaax\.
-[suppress_file]
- file_name_regexp = ^librte_bus_fslmc\.
-[suppress_file]
- file_name_regexp = ^librte_bus_dpaa\.
-[suppress_variable]
- name = rte_dpaa_bpid_info
-[suppress_variable]
- name = rte_dpaa_memsegs
-[suppress_variable]
- name = rte_dpaa2_bpid_info
-[suppress_function]
- name = rte_dpaa2_mbuf_alloc_bulk
-[suppress_function]
- name_regexp = ^dpaa2?_.*tach$
-; Ignore soname changes for experimental libraries
-[suppress_file]
- file_name_regexp = ^librte_bbdev\.
-[suppress_file]
- file_name_regexp = ^librte_bpf\.
-[suppress_file]
- file_name_regexp = ^librte_compressdev\.
-[suppress_file]
- file_name_regexp = ^librte_fib\.
-[suppress_file]
- file_name_regexp = ^librte_flow_classify\.
-[suppress_file]
- file_name_regexp = ^librte_graph\.
-[suppress_file]
- file_name_regexp = ^librte_ipsec\.
-[suppress_file]
- file_name_regexp = ^librte_node\.
-[suppress_file]
- file_name_regexp = ^librte_rcu\.
-[suppress_file]
- file_name_regexp = ^librte_rib\.
-[suppress_file]
- file_name_regexp = ^librte_telemetry\.
-[suppress_file]
- file_name_regexp = ^librte_stack\.
diff --git a/doc/guides/rel_notes/index.rst b/doc/guides/rel_notes/index.rst
index 05c9d837a4..fb70d1a5f3 100644
--- a/doc/guides/rel_notes/index.rst
+++ b/doc/guides/rel_notes/index.rst
@@ -8,6 +8,7 @@ Release Notes
:maxdepth: 1
:numbered:
+ release_20_11
release_20_08
release_20_05
release_20_02
diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
new file mode 100644
index 0000000000..df227a1773
--- /dev/null
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -0,0 +1,136 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright 2020 The DPDK contributors
+
+.. include:: <isonum.txt>
+
+DPDK Release 20.11
+==================
+
+.. **Read this first.**
+
+ The text in the sections below explains how to update the release notes.
+
+ Use proper spelling, capitalization and punctuation in all sections.
+
+ Variable and config names should be quoted as fixed width text:
+ ``LIKE_THIS``.
+
+ Build the docs and view the output file to ensure the changes are correct::
+
+ make doc-guides-html
+ xdg-open build/doc/html/guides/rel_notes/release_20_11.html
+
+
+New Features
+------------
+
+.. This section should contain new features added in this release.
+ Sample format:
+
+ * **Add a title in the past tense with a full stop.**
+
+ Add a short 1-2 sentence description in the past tense.
+ The description should be enough to allow someone scanning
+ the release notes to understand the new feature.
+
+ If the feature adds a lot of sub-features you can use a bullet list
+ like this:
+
+ * Added feature foo to do something.
+ * Enhanced feature bar to do something else.
+
+ Refer to the previous release notes for examples.
+
+ Suggested order in release notes items:
+ * Core libs (EAL, mempool, ring, mbuf, buses)
+ * Device abstraction libs and PMDs
+ - ethdev (lib, PMDs)
+ - cryptodev (lib, PMDs)
+ - eventdev (lib, PMDs)
+ - etc
+ * Other libs
+ * Apps, Examples, Tools (if significant)
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Removed Items
+-------------
+
+.. This section should contain removed items in this release. Sample format:
+
+ * Add a short 1-2 sentence description of the removed item
+ in the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+API Changes
+-----------
+
+.. This section should contain API changes. Sample format:
+
+ * sample: Add a short 1-2 sentence description of the API change
+ which was announced in the previous releases and made in this release.
+ Start with a scope label like "ethdev:".
+ Use fixed width quotes for ``function_names`` or ``struct_names``.
+ Use the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+ABI Changes
+-----------
+
+.. This section should contain ABI changes. Sample format:
+
+ * sample: Add a short 1-2 sentence description of the ABI change
+ which was announced in the previous releases and made in this release.
+ Start with a scope label like "ethdev:".
+ Use fixed width quotes for ``function_names`` or ``struct_names``.
+ Use the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Known Issues
+------------
+
+.. This section should contain new known issues in this release. Sample format:
+
+ * **Add title in present tense with full stop.**
+
+ Add a short 1-2 sentence description of the known issue
+ in the present tense. Add information on any known workarounds.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Tested Platforms
+----------------
+
+.. This section should contain a list of platforms that were tested
+ with this release.
+
+ The format is:
+
+ * <vendor> platform with <vendor> <type of devices> combinations
+
+ * List of CPU
+ * List of OS
+ * List of devices
+ * Other relevant details...
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
diff --git a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
index b0fb9717fa..d723bc9b0e 100644
--- a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
+++ b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
index 6bcea2cc7f..a2ab086cd8 100644
--- a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
+++ b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/null/rte_pmd_bbdev_null_version.map b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/baseband/null/rte_pmd_bbdev_null_version.map
+++ b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
+++ b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/bus/ifpga/rte_bus_ifpga_version.map b/drivers/bus/ifpga/rte_bus_ifpga_version.map
index 05b4a28c1b..6e8f85da3c 100644
--- a/drivers/bus/ifpga/rte_bus_ifpga_version.map
+++ b/drivers/bus/ifpga/rte_bus_ifpga_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ifpga_driver_register;
diff --git a/drivers/bus/pci/rte_bus_pci_version.map b/drivers/bus/pci/rte_bus_pci_version.map
index 012d817e14..5b75d23671 100644
--- a/drivers/bus/pci/rte_bus_pci_version.map
+++ b/drivers/bus/pci/rte_bus_pci_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pci_dump;
diff --git a/drivers/bus/vdev/rte_bus_vdev_version.map b/drivers/bus/vdev/rte_bus_vdev_version.map
index 5abb10ecb0..61b6cefcee 100644
--- a/drivers/bus/vdev/rte_bus_vdev_version.map
+++ b/drivers/bus/vdev/rte_bus_vdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vdev_add_custom_scan;
diff --git a/drivers/bus/vmbus/rte_bus_vmbus_version.map b/drivers/bus/vmbus/rte_bus_vmbus_version.map
index cbaaebc06c..fa8e91c282 100644
--- a/drivers/bus/vmbus/rte_bus_vmbus_version.map
+++ b/drivers/bus/vmbus/rte_bus_vmbus_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vmbus_chan_close;
diff --git a/drivers/common/cpt/rte_common_cpt_version.map b/drivers/common/cpt/rte_common_cpt_version.map
index 8c65cde6cf..4d85021a87 100644
--- a/drivers/common/cpt/rte_common_cpt_version.map
+++ b/drivers/common/cpt/rte_common_cpt_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
cpt_pmd_ops_helper_asym_get_mlen;
diff --git a/drivers/common/iavf/rte_common_iavf_version.map b/drivers/common/iavf/rte_common_iavf_version.map
index 92ceac108d..44142499e0 100644
--- a/drivers/common/iavf/rte_common_iavf_version.map
+++ b/drivers/common/iavf/rte_common_iavf_version.map
@@ -1,11 +1,11 @@
DPDK_21 {
global:
- iavf_init_adminq;
- iavf_shutdown_adminq;
iavf_aq_send_msg_to_pf;
iavf_clean_arq_element;
+ iavf_init_adminq;
iavf_set_mac_type;
+ iavf_shutdown_adminq;
iavf_vf_parse_hw_config;
local: *;
diff --git a/drivers/common/mlx5/rte_common_mlx5_version.map b/drivers/common/mlx5/rte_common_mlx5_version.map
index 7729d0dd04..c4d57c08a7 100644
--- a/drivers/common/mlx5/rte_common_mlx5_version.map
+++ b/drivers/common/mlx5/rte_common_mlx5_version.map
@@ -93,4 +93,3 @@ INTERNAL {
mlx5_pci_driver_register;
};
-
diff --git a/drivers/common/mvep/rte_common_mvep_version.map b/drivers/common/mvep/rte_common_mvep_version.map
index 030928439d..e5af82c61d 100644
--- a/drivers/common/mvep/rte_common_mvep_version.map
+++ b/drivers/common/mvep/rte_common_mvep_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_mvep_deinit;
diff --git a/drivers/common/octeontx/rte_common_octeontx_version.map b/drivers/common/octeontx/rte_common_octeontx_version.map
index 5f6aa8bd3a..30f3fa65e0 100644
--- a/drivers/common/octeontx/rte_common_octeontx_version.map
+++ b/drivers/common/octeontx/rte_common_octeontx_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
octeontx_get_global_domain;
diff --git a/drivers/compress/isal/rte_pmd_isal_version.map b/drivers/compress/isal/rte_pmd_isal_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/isal/rte_pmd_isal_version.map
+++ b/drivers/compress/isal/rte_pmd_isal_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
+++ b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/qat/rte_pmd_qat_version.map b/drivers/compress/qat/rte_pmd_qat_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/qat/rte_pmd_qat_version.map
+++ b/drivers/compress/qat/rte_pmd_qat_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/zlib/rte_pmd_zlib_version.map b/drivers/compress/zlib/rte_pmd_zlib_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/zlib/rte_pmd_zlib_version.map
+++ b/drivers/compress/zlib/rte_pmd_zlib_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
+++ b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
+++ b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/armv8/rte_pmd_armv8_version.map b/drivers/crypto/armv8/rte_pmd_armv8_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/armv8/rte_pmd_armv8_version.map
+++ b/drivers/crypto/armv8/rte_pmd_armv8_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
+++ b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/ccp/rte_pmd_ccp_version.map b/drivers/crypto/ccp/rte_pmd_ccp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/ccp/rte_pmd_ccp_version.map
+++ b/drivers/crypto/ccp/rte_pmd_ccp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
+++ b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
+++ b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
+++ b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/null/rte_pmd_null_crypto_version.map b/drivers/crypto/null/rte_pmd_null_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/null/rte_pmd_null_crypto_version.map
+++ b/drivers/crypto/null/rte_pmd_null_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
+++ b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
+++ b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/openssl/rte_pmd_openssl_version.map b/drivers/crypto/openssl/rte_pmd_openssl_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/openssl/rte_pmd_openssl_version.map
+++ b/drivers/crypto/openssl/rte_pmd_openssl_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
index 077afedce7..ca6f102d9f 100644
--- a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
+++ b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_cryptodev_scheduler_load_user_scheduler;
diff --git a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
+++ b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
+++ b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/zuc/rte_pmd_zuc_version.map b/drivers/crypto/zuc/rte_pmd_zuc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/zuc/rte_pmd_zuc_version.map
+++ b/drivers/crypto/zuc/rte_pmd_zuc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
+++ b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
+++ b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dsw/rte_pmd_dsw_event_version.map b/drivers/event/dsw/rte_pmd_dsw_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dsw/rte_pmd_dsw_event_version.map
+++ b/drivers/event/dsw/rte_pmd_dsw_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
+++ b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
+++ b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/opdl/rte_pmd_opdl_event_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/opdl/rte_pmd_opdl_event_version.map
+++ b/drivers/event/opdl/rte_pmd_opdl_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
+++ b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/sw/rte_pmd_sw_event_version.map b/drivers/event/sw/rte_pmd_sw_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/sw/rte_pmd_sw_event_version.map
+++ b/drivers/event/sw/rte_pmd_sw_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/bucket/rte_mempool_bucket_version.map b/drivers/mempool/bucket/rte_mempool_bucket_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/bucket/rte_mempool_bucket_version.map
+++ b/drivers/mempool/bucket/rte_mempool_bucket_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index 686b024624..473b8c90e8 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_dpaa2_mbuf_from_buf_addr;
diff --git a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
+++ b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/ring/rte_mempool_ring_version.map b/drivers/mempool/ring/rte_mempool_ring_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/ring/rte_mempool_ring_version.map
+++ b/drivers/mempool/ring/rte_mempool_ring_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/stack/rte_mempool_stack_version.map b/drivers/mempool/stack/rte_mempool_stack_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/stack/rte_mempool_stack_version.map
+++ b/drivers/mempool/stack/rte_mempool_stack_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/af_packet/rte_pmd_af_packet_version.map b/drivers/net/af_packet/rte_pmd_af_packet_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/af_packet/rte_pmd_af_packet_version.map
+++ b/drivers/net/af_packet/rte_pmd_af_packet_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
+++ b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ark/rte_pmd_ark_version.map b/drivers/net/ark/rte_pmd_ark_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/ark/rte_pmd_ark_version.map
+++ b/drivers/net/ark/rte_pmd_ark_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/atlantic/rte_pmd_atlantic_version.map b/drivers/net/atlantic/rte_pmd_atlantic_version.map
index 9b04838d84..6e17832684 100644
--- a/drivers/net/atlantic/rte_pmd_atlantic_version.map
+++ b/drivers/net/atlantic/rte_pmd_atlantic_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/avp/rte_pmd_avp_version.map b/drivers/net/avp/rte_pmd_avp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/avp/rte_pmd_avp_version.map
+++ b/drivers/net/avp/rte_pmd_avp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/axgbe/rte_pmd_axgbe_version.map b/drivers/net/axgbe/rte_pmd_axgbe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/axgbe/rte_pmd_axgbe_version.map
+++ b/drivers/net/axgbe/rte_pmd_axgbe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
+++ b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/bnxt/rte_pmd_bnxt_version.map b/drivers/net/bnxt/rte_pmd_bnxt_version.map
index bb52562347..a050d86ab7 100644
--- a/drivers/net/bnxt/rte_pmd_bnxt_version.map
+++ b/drivers/net/bnxt/rte_pmd_bnxt_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_bnxt_get_vf_rx_status;
diff --git a/drivers/net/bonding/rte_pmd_bond_version.map b/drivers/net/bonding/rte_pmd_bond_version.map
index 270c7d5d55..df81ee74c1 100644
--- a/drivers/net/bonding/rte_pmd_bond_version.map
+++ b/drivers/net/bonding/rte_pmd_bond_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_bond_8023ad_agg_selection_get;
diff --git a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
+++ b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index 774aa0de45..87ce8f5b6c 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_dpaa_set_tx_loopback;
diff --git a/drivers/net/e1000/rte_pmd_e1000_version.map b/drivers/net/e1000/rte_pmd_e1000_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/e1000/rte_pmd_e1000_version.map
+++ b/drivers/net/e1000/rte_pmd_e1000_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ena/rte_pmd_ena_version.map b/drivers/net/ena/rte_pmd_ena_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/ena/rte_pmd_ena_version.map
+++ b/drivers/net/ena/rte_pmd_ena_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/enetc/rte_pmd_enetc_version.map b/drivers/net/enetc/rte_pmd_enetc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/enetc/rte_pmd_enetc_version.map
+++ b/drivers/net/enetc/rte_pmd_enetc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/enic/rte_pmd_enic_version.map b/drivers/net/enic/rte_pmd_enic_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/enic/rte_pmd_enic_version.map
+++ b/drivers/net/enic/rte_pmd_enic_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/failsafe/rte_pmd_failsafe_version.map b/drivers/net/failsafe/rte_pmd_failsafe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/failsafe/rte_pmd_failsafe_version.map
+++ b/drivers/net/failsafe/rte_pmd_failsafe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/fm10k/rte_pmd_fm10k_version.map b/drivers/net/fm10k/rte_pmd_fm10k_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/fm10k/rte_pmd_fm10k_version.map
+++ b/drivers/net/fm10k/rte_pmd_fm10k_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/hinic/rte_pmd_hinic_version.map b/drivers/net/hinic/rte_pmd_hinic_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/hinic/rte_pmd_hinic_version.map
+++ b/drivers/net/hinic/rte_pmd_hinic_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/hns3/rte_pmd_hns3_version.map b/drivers/net/hns3/rte_pmd_hns3_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/hns3/rte_pmd_hns3_version.map
+++ b/drivers/net/hns3/rte_pmd_hns3_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/i40e/rte_pmd_i40e_version.map b/drivers/net/i40e/rte_pmd_i40e_version.map
index f6cd3b3566..413c58cb21 100644
--- a/drivers/net/i40e/rte_pmd_i40e_version.map
+++ b/drivers/net/i40e/rte_pmd_i40e_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_i40e_add_vf_mac_addr;
diff --git a/drivers/net/iavf/rte_pmd_iavf_version.map b/drivers/net/iavf/rte_pmd_iavf_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/iavf/rte_pmd_iavf_version.map
+++ b/drivers/net/iavf/rte_pmd_iavf_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ice/rte_pmd_ice_version.map b/drivers/net/ice/rte_pmd_ice_version.map
index d04b194c13..91f40225e9 100644
--- a/drivers/net/ice/rte_pmd_ice_version.map
+++ b/drivers/net/ice/rte_pmd_ice_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ionic/rte_pmd_ionic_version.map b/drivers/net/ionic/rte_pmd_ionic_version.map
index acdaf587d2..4a76d1d52d 100644
--- a/drivers/net/ionic/rte_pmd_ionic_version.map
+++ b/drivers/net/ionic/rte_pmd_ionic_version.map
@@ -1,4 +1,3 @@
DPDK_21 {
-
local: *;
};
diff --git a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
index 7e348e99b1..d8cc1026e0 100644
--- a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
+++ b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
index 911f8083f1..9402802b04 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_ixgbe_bypass_event_show;
diff --git a/drivers/net/kni/rte_pmd_kni_version.map b/drivers/net/kni/rte_pmd_kni_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/kni/rte_pmd_kni_version.map
+++ b/drivers/net/kni/rte_pmd_kni_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/liquidio/rte_pmd_liquidio_version.map b/drivers/net/liquidio/rte_pmd_liquidio_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/liquidio/rte_pmd_liquidio_version.map
+++ b/drivers/net/liquidio/rte_pmd_liquidio_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/memif/rte_pmd_memif_version.map b/drivers/net/memif/rte_pmd_memif_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/memif/rte_pmd_memif_version.map
+++ b/drivers/net/memif/rte_pmd_memif_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mlx4/rte_pmd_mlx4_version.map b/drivers/net/mlx4/rte_pmd_mlx4_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mlx4/rte_pmd_mlx4_version.map
+++ b/drivers/net/mlx4/rte_pmd_mlx4_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mlx5/rte_pmd_mlx5_version.map b/drivers/net/mlx5/rte_pmd_mlx5_version.map
index c8b1031b02..bc1d3d06bf 100644
--- a/drivers/net/mlx5/rte_pmd_mlx5_version.map
+++ b/drivers/net/mlx5/rte_pmd_mlx5_version.map
@@ -1,10 +1,10 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
EXPERIMENTAL {
- global:
+ global:
- # added in 20.02
+ # added in 20.02
rte_pmd_mlx5_get_dyn_flag_names;
};
diff --git a/drivers/net/mvneta/rte_pmd_mvneta_version.map b/drivers/net/mvneta/rte_pmd_mvneta_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mvneta/rte_pmd_mvneta_version.map
+++ b/drivers/net/mvneta/rte_pmd_mvneta_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
+++ b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/netvsc/rte_pmd_netvsc_version.map b/drivers/net/netvsc/rte_pmd_netvsc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/netvsc/rte_pmd_netvsc_version.map
+++ b/drivers/net/netvsc/rte_pmd_netvsc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/nfb/rte_pmd_nfb_version.map b/drivers/net/nfb/rte_pmd_nfb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/nfb/rte_pmd_nfb_version.map
+++ b/drivers/net/nfb/rte_pmd_nfb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/nfp/rte_pmd_nfp_version.map b/drivers/net/nfp/rte_pmd_nfp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/nfp/rte_pmd_nfp_version.map
+++ b/drivers/net/nfp/rte_pmd_nfp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/null/rte_pmd_null_version.map b/drivers/net/null/rte_pmd_null_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/null/rte_pmd_null_version.map
+++ b/drivers/net/null/rte_pmd_null_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/octeontx/rte_pmd_octeontx_version.map b/drivers/net/octeontx/rte_pmd_octeontx_version.map
index f7cae02fac..6dda72890c 100644
--- a/drivers/net/octeontx/rte_pmd_octeontx_version.map
+++ b/drivers/net/octeontx/rte_pmd_octeontx_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_octeontx_pchan_map;
diff --git a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
+++ b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/pcap/rte_pmd_pcap_version.map b/drivers/net/pcap/rte_pmd_pcap_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/pcap/rte_pmd_pcap_version.map
+++ b/drivers/net/pcap/rte_pmd_pcap_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/pfe/rte_pmd_pfe_version.map b/drivers/net/pfe/rte_pmd_pfe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/pfe/rte_pmd_pfe_version.map
+++ b/drivers/net/pfe/rte_pmd_pfe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/qede/rte_pmd_qede_version.map b/drivers/net/qede/rte_pmd_qede_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/qede/rte_pmd_qede_version.map
+++ b/drivers/net/qede/rte_pmd_qede_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ring/rte_pmd_ring_version.map b/drivers/net/ring/rte_pmd_ring_version.map
index ebb6be2733..29770fe3e4 100644
--- a/drivers/net/ring/rte_pmd_ring_version.map
+++ b/drivers/net/ring/rte_pmd_ring_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_from_ring;
diff --git a/drivers/net/sfc/rte_pmd_sfc_version.map b/drivers/net/sfc/rte_pmd_sfc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/sfc/rte_pmd_sfc_version.map
+++ b/drivers/net/sfc/rte_pmd_sfc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/softnic/rte_pmd_softnic_version.map b/drivers/net/softnic/rte_pmd_softnic_version.map
index 50f113d5a2..530d2e6b72 100644
--- a/drivers/net/softnic/rte_pmd_softnic_version.map
+++ b/drivers/net/softnic/rte_pmd_softnic_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_softnic_run;
diff --git a/drivers/net/szedata2/rte_pmd_szedata2_version.map b/drivers/net/szedata2/rte_pmd_szedata2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/szedata2/rte_pmd_szedata2_version.map
+++ b/drivers/net/szedata2/rte_pmd_szedata2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/tap/rte_pmd_tap_version.map b/drivers/net/tap/rte_pmd_tap_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/tap/rte_pmd_tap_version.map
+++ b/drivers/net/tap/rte_pmd_tap_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/thunderx/rte_pmd_thunderx_version.map b/drivers/net/thunderx/rte_pmd_thunderx_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/thunderx/rte_pmd_thunderx_version.map
+++ b/drivers/net/thunderx/rte_pmd_thunderx_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
+++ b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vhost/rte_pmd_vhost_version.map b/drivers/net/vhost/rte_pmd_vhost_version.map
index 16b591ccc4..634255829e 100644
--- a/drivers/net/vhost/rte_pmd_vhost_version.map
+++ b/drivers/net/vhost/rte_pmd_vhost_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_vhost_get_queue_event;
diff --git a/drivers/net/virtio/rte_pmd_virtio_version.map b/drivers/net/virtio/rte_pmd_virtio_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/virtio/rte_pmd_virtio_version.map
+++ b/drivers/net/virtio/rte_pmd_virtio_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
+++ b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
+++ b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
index ca6a0d7626..280c79ea9c 100644
--- a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
+++ b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_qdma_attr_get;
diff --git a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
+++ b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/ioat/rte_rawdev_ioat_version.map b/drivers/raw/ioat/rte_rawdev_ioat_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ioat/rte_rawdev_ioat_version.map
+++ b/drivers/raw/ioat/rte_rawdev_ioat_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/ntb/rte_rawdev_ntb_version.map b/drivers/raw/ntb/rte_rawdev_ntb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ntb/rte_rawdev_ntb_version.map
+++ b/drivers/raw/ntb/rte_rawdev_ntb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
+++ b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
index acdaf587d2..4a76d1d52d 100644
--- a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
+++ b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
@@ -1,4 +1,3 @@
DPDK_21 {
-
local: *;
};
diff --git a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
+++ b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/vdpa/ifc/rte_pmd_ifc_version.map b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/vdpa/ifc/rte_pmd_ifc_version.map
+++ b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
index c3daca8115..d97f2927bf 100644
--- a/lib/librte_acl/rte_acl_version.map
+++ b/lib/librte_acl/rte_acl_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_acl_add_rules;
diff --git a/lib/librte_bitratestats/rte_bitratestats_version.map b/lib/librte_bitratestats/rte_bitratestats_version.map
index 88fc2912db..463f78a53a 100644
--- a/lib/librte_bitratestats/rte_bitratestats_version.map
+++ b/lib/librte_bitratestats/rte_bitratestats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_stats_bitrate_calc;
diff --git a/lib/librte_cfgfile/rte_cfgfile_version.map b/lib/librte_cfgfile/rte_cfgfile_version.map
index 22c999fe16..180c42b717 100644
--- a/lib/librte_cfgfile/rte_cfgfile_version.map
+++ b/lib/librte_cfgfile/rte_cfgfile_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_cfgfile_add_entry;
diff --git a/lib/librte_cmdline/rte_cmdline_version.map b/lib/librte_cmdline/rte_cmdline_version.map
index 95fce812ff..a99104457f 100644
--- a/lib/librte_cmdline/rte_cmdline_version.map
+++ b/lib/librte_cmdline/rte_cmdline_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
cirbuf_add_buf_head;
diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map
index a7a78dc41f..02f6dcf724 100644
--- a/lib/librte_cryptodev/rte_cryptodev_version.map
+++ b/lib/librte_cryptodev/rte_cryptodev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_crypto_aead_algorithm_strings;
@@ -58,12 +58,11 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
+DPDK_20.0 {
global:
rte_cryptodev_info_get;
rte_cryptodev_sym_capability_get;
-} DPDK_20.0;
-
+};
EXPERIMENTAL {
global:
diff --git a/lib/librte_distributor/rte_distributor_version.map b/lib/librte_distributor/rte_distributor_version.map
index 1b7c643005..1ddcd01fe6 100644
--- a/lib/librte_distributor/rte_distributor_version.map
+++ b/lib/librte_distributor/rte_distributor_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_distributor_clear_returns;
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index bf0c17c233..0b18e2ef85 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
__rte_panic;
@@ -6,6 +6,7 @@ DPDK_20.0 {
eal_timer_source;
per_lcore__lcore_id;
per_lcore__rte_errno;
+ per_lcore__thread_id;
rte_bus_dump;
rte_bus_find;
rte_bus_find_by_device;
@@ -221,13 +222,6 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
- global:
-
- per_lcore__thread_id;
-
-} DPDK_20.0;
-
EXPERIMENTAL {
global:
diff --git a/lib/librte_efd/rte_efd_version.map b/lib/librte_efd/rte_efd_version.map
index e010eecfe4..425c0a85a9 100644
--- a/lib/librte_efd/rte_efd_version.map
+++ b/lib/librte_efd/rte_efd_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_efd_create;
diff --git a/lib/librte_ethdev/rte_ethdev_version.map b/lib/librte_ethdev/rte_ethdev_version.map
index 1212a17d32..8d9d6b1c67 100644
--- a/lib/librte_ethdev/rte_ethdev_version.map
+++ b/lib/librte_ethdev/rte_ethdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
_rte_eth_dev_callback_process;
diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map
index 91a62cd077..3d9d0ca054 100644
--- a/lib/librte_eventdev/rte_eventdev_version.map
+++ b/lib/librte_eventdev/rte_eventdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_event_crypto_adapter_caps_get;
diff --git a/lib/librte_gro/rte_gro_version.map b/lib/librte_gro/rte_gro_version.map
index 9f6fe79e57..19dc66b0d4 100644
--- a/lib/librte_gro/rte_gro_version.map
+++ b/lib/librte_gro/rte_gro_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_gro_ctx_create;
diff --git a/lib/librte_gso/rte_gso_version.map b/lib/librte_gso/rte_gso_version.map
index 8505a59c27..60aa1b54e4 100644
--- a/lib/librte_gso/rte_gso_version.map
+++ b/lib/librte_gso/rte_gso_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_gso_segment;
diff --git a/lib/librte_hash/rte_hash_version.map b/lib/librte_hash/rte_hash_version.map
index c2a909443d..c0db81014f 100644
--- a/lib/librte_hash/rte_hash_version.map
+++ b/lib/librte_hash/rte_hash_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_fbk_hash_create;
diff --git a/lib/librte_ip_frag/rte_ip_frag_version.map b/lib/librte_ip_frag/rte_ip_frag_version.map
index 5dd34f828c..82b308ddb0 100644
--- a/lib/librte_ip_frag/rte_ip_frag_version.map
+++ b/lib/librte_ip_frag/rte_ip_frag_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ip_frag_free_death_row;
diff --git a/lib/librte_jobstats/rte_jobstats_version.map b/lib/librte_jobstats/rte_jobstats_version.map
index dbd2664ae2..3e166ad548 100644
--- a/lib/librte_jobstats/rte_jobstats_version.map
+++ b/lib/librte_jobstats/rte_jobstats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_jobstats_abort;
diff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map
index 9cd3cedc54..a93da95f36 100644
--- a/lib/librte_kni/rte_kni_version.map
+++ b/lib/librte_kni/rte_kni_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_kni_alloc;
diff --git a/lib/librte_kvargs/rte_kvargs_version.map b/lib/librte_kvargs/rte_kvargs_version.map
index 3ba0f4b59c..ed375bf4a3 100644
--- a/lib/librte_kvargs/rte_kvargs_version.map
+++ b/lib/librte_kvargs/rte_kvargs_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_kvargs_count;
diff --git a/lib/librte_latencystats/rte_latencystats_version.map b/lib/librte_latencystats/rte_latencystats_version.map
index e04e63463f..0c4360ab43 100644
--- a/lib/librte_latencystats/rte_latencystats_version.map
+++ b/lib/librte_latencystats/rte_latencystats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_latencystats_get;
diff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map
index bfccd7eacc..b4d437cc75 100644
--- a/lib/librte_lpm/rte_lpm_version.map
+++ b/lib/librte_lpm/rte_lpm_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_lpm6_add;
diff --git a/lib/librte_mbuf/rte_mbuf_version.map b/lib/librte_mbuf/rte_mbuf_version.map
index ab161bcdc7..a011aaead3 100644
--- a/lib/librte_mbuf/rte_mbuf_version.map
+++ b/lib/librte_mbuf/rte_mbuf_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
__rte_pktmbuf_linearize;
diff --git a/lib/librte_member/rte_member_version.map b/lib/librte_member/rte_member_version.map
index 87780ae611..b8c6322e73 100644
--- a/lib/librte_member/rte_member_version.map
+++ b/lib/librte_member/rte_member_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_member_add;
diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map
index 826a0b8824..50e22ee020 100644
--- a/lib/librte_mempool/rte_mempool_version.map
+++ b/lib/librte_mempool/rte_mempool_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_mempool_audit;
@@ -31,12 +31,12 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
+DPDK_20.0 {
global:
rte_mempool_populate_iova;
rte_mempool_populate_virt;
-} DPDK_20.0;
+};
EXPERIMENTAL {
global:
diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
index 58859d4d76..e2a2607f28 100644
--- a/lib/librte_meter/rte_meter_version.map
+++ b/lib/librte_meter/rte_meter_version.map
@@ -1,24 +1,18 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_meter_srtcm_config;
rte_meter_srtcm_profile_config;
rte_meter_trtcm_config;
rte_meter_trtcm_profile_config;
+ rte_meter_trtcm_rfc4115_config;
+ rte_meter_trtcm_rfc4115_profile_config;
local: *;
};
-DPDK_21 {
- global:
-
- rte_meter_trtcm_rfc4115_config;
- rte_meter_trtcm_rfc4115_profile_config;
-
-} DPDK_20.0;
-
EXPERIMENTAL {
- global:
+ global:
rte_meter_trtcm_rfc4115_config;
rte_meter_trtcm_rfc4115_profile_config;
diff --git a/lib/librte_metrics/rte_metrics_version.map b/lib/librte_metrics/rte_metrics_version.map
index c88939b117..20f99cd19a 100644
--- a/lib/librte_metrics/rte_metrics_version.map
+++ b/lib/librte_metrics/rte_metrics_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_metrics_get_names;
diff --git a/lib/librte_net/rte_net_version.map b/lib/librte_net/rte_net_version.map
index 8a4e75a3a0..621f237945 100644
--- a/lib/librte_net/rte_net_version.map
+++ b/lib/librte_net/rte_net_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_random_addr;
diff --git a/lib/librte_pci/rte_pci_version.map b/lib/librte_pci/rte_pci_version.map
index 67eb845796..cd77c9dc9e 100644
--- a/lib/librte_pci/rte_pci_version.map
+++ b/lib/librte_pci/rte_pci_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
pci_map_resource;
diff --git a/lib/librte_pdump/rte_pdump_version.map b/lib/librte_pdump/rte_pdump_version.map
index 6d02ccce6d..2f9e952d0b 100644
--- a/lib/librte_pdump/rte_pdump_version.map
+++ b/lib/librte_pdump/rte_pdump_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pdump_disable;
diff --git a/lib/librte_pipeline/rte_pipeline_version.map b/lib/librte_pipeline/rte_pipeline_version.map
index 64d38afecd..9ed80eb041 100644
--- a/lib/librte_pipeline/rte_pipeline_version.map
+++ b/lib/librte_pipeline/rte_pipeline_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pipeline_ah_packet_drop;
diff --git a/lib/librte_port/rte_port_version.map b/lib/librte_port/rte_port_version.map
index 18c6154672..bd1fbb66b0 100644
--- a/lib/librte_port/rte_port_version.map
+++ b/lib/librte_port/rte_port_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_port_ethdev_reader_ops;
diff --git a/lib/librte_power/rte_power_version.map b/lib/librte_power/rte_power_version.map
index 00ee5753e2..69ca9af616 100644
--- a/lib/librte_power/rte_power_version.map
+++ b/lib/librte_power/rte_power_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_power_exit;
diff --git a/lib/librte_rawdev/rte_rawdev_version.map b/lib/librte_rawdev/rte_rawdev_version.map
index 63b54f598b..eb29a3ac0d 100644
--- a/lib/librte_rawdev/rte_rawdev_version.map
+++ b/lib/librte_rawdev/rte_rawdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_rawdev_close;
diff --git a/lib/librte_reorder/rte_reorder_version.map b/lib/librte_reorder/rte_reorder_version.map
index cf444062df..8c0220d324 100644
--- a/lib/librte_reorder/rte_reorder_version.map
+++ b/lib/librte_reorder/rte_reorder_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_reorder_create;
diff --git a/lib/librte_ring/rte_ring_version.map b/lib/librte_ring/rte_ring_version.map
index ac392f3ca9..e35d6b9712 100644
--- a/lib/librte_ring/rte_ring_version.map
+++ b/lib/librte_ring/rte_ring_version.map
@@ -1,21 +1,16 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ring_create;
+ rte_ring_create_elem;
rte_ring_dump;
rte_ring_free;
rte_ring_get_memsize;
+ rte_ring_get_memsize_elem;
rte_ring_init;
rte_ring_list_dump;
rte_ring_lookup;
+ rte_ring_reset;
local: *;
};
-
-DPDK_21 {
- global:
-
- rte_ring_create_elem;
- rte_ring_get_memsize_elem;
- rte_ring_reset;
-} DPDK_20.0;
diff --git a/lib/librte_sched/rte_sched_version.map b/lib/librte_sched/rte_sched_version.map
index cefd990367..3faef6f0a0 100644
--- a/lib/librte_sched/rte_sched_version.map
+++ b/lib/librte_sched/rte_sched_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_approx;
diff --git a/lib/librte_security/rte_security_version.map b/lib/librte_security/rte_security_version.map
index b07314bbf4..d84eec0a88 100644
--- a/lib/librte_security/rte_security_version.map
+++ b/lib/librte_security/rte_security_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_security_attach_session;
diff --git a/lib/librte_table/rte_table_version.map b/lib/librte_table/rte_table_version.map
index 40f72b1fe8..568a6c6a8f 100644
--- a/lib/librte_table/rte_table_version.map
+++ b/lib/librte_table/rte_table_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_table_acl_ops;
diff --git a/lib/librte_timer/rte_timer_version.map b/lib/librte_timer/rte_timer_version.map
index 4471cef92b..21e68ea7a2 100644
--- a/lib/librte_timer/rte_timer_version.map
+++ b/lib/librte_timer/rte_timer_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_timer_dump_stats;
diff --git a/lib/librte_vhost/rte_vhost_version.map b/lib/librte_vhost/rte_vhost_version.map
index 13ec53b638..20b4abcb4e 100644
--- a/lib/librte_vhost/rte_vhost_version.map
+++ b/lib/librte_vhost/rte_vhost_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vhost_avail_entries;
--
2.27.0
^ permalink raw reply [relevance 13%]
* Re: [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0
2020-08-11 11:27 14% ` [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0 Thomas Monjalon
2020-08-11 11:27 12% ` [dpdk-dev] [PATCH v4 2/2] devtools: fix ABI update in map files Thomas Monjalon
@ 2020-08-11 13:47 0% ` Kinsella, Ray
2020-08-11 14:05 0% ` Thomas Monjalon
1 sibling, 1 reply; 200+ results
From: Kinsella, Ray @ 2020-08-11 13:47 UTC (permalink / raw)
To: Thomas Monjalon, dev
Cc: david.marchand, nhorman, kevin.laatz, bruce.richardson,
Hemant Agrawal, Honnappa Nagarahalli, Luca Boccassi,
Dodji Seketeli, Stephen Hemminger, Richardson, Bruce, Yigit,
Ferruh, David Marchand
Hi Thomas,
On 11/08/2020 12:27, Thomas Monjalon wrote:
> Start a new release cycle with empty release notes.
>
> The ABI version becomes 21.0.
> The ABI major is back to normal, having only one number (21 vs 20.0).
> The map files are updated to the new ABI major number (21).
> The ABI exceptions specific to previous major version are dropped.
> Travis ABI check is disabled because compatibility is not preserved.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> v4: add -rc0 and remove temporary ABI exceptions
> v3: add minor number to ABI_VERSION and remove workaround in scripts
> v2: bump major ABI number (including .map changes)
> ---
> .travis.yml | 26 ----
> ABI_VERSION | 2 +-
> VERSION | 2 +-
> config/meson.build | 5 +-
> devtools/libabigail.abignore | 60 --------
[SNIP]
> diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
> index 9fea822f36..2827d5ff7e 100644
> --- a/devtools/libabigail.abignore
> +++ b/devtools/libabigail.abignore
> @@ -8,12 +8,6 @@
> [suppress_variable]
> symbol_version = INTERNAL
>
> -; Ignore ABI 20.0.1 replaced with ABI 21
> -[suppress_function]
> - symbol_version = DPDK_20.0.1
> -[suppress_variable]
> - symbol_version = DPDK_20.0.1
> -
> ; Explicit ignore for driver-only ABI
> [suppress_type]
> name = rte_cryptodev_ops
I think we might be safer doing a complete reset of libabigail.ignore.
We should leave only the suppressions for internal and experimental.
My concern is that if we have suppressions that live in there forever,
it will becomes stale, and eventually we will end up suppressing things we don't intend.
So yes, if we strip out some of these - especially the enumeration suppressions,
We will end up having to suppress them again as we extend/modify the enumerations etc,
but for me that preferable to the risk of unintended supressions.
What do others think?
> @@ -56,57 +50,3 @@
> [suppress_type]
> name = rte_mbuf_ext_shared_info
> has_data_member_inserted_between = {offset_of(refcnt_atomic), offset_of(refcnt_atomic)}
> -
> -;;;;;;;;;;;;;;;;;;;;;;
> -; Temporary exceptions till DPDK 20.11
> -;;;;;;;;;;;;;;;;;;;;;;
> -; Ignore moving OCTEONTX2 stable functions to INTERNAL
> -[suppress_file]
> - file_name_regexp = ^librte_common_octeontx2\.
> -[suppress_file]
> - file_name_regexp = ^librte_mempool_octeontx2\.
> -; Ignore moving mlx5 stable functions to INTERNAL
> -[suppress_file]
> - file_name_regexp = ^librte_common_mlx5\.
> -; Ignore moving DPAAx stable functions to INTERNAL
> -[suppress_file]
> - file_name_regexp = ^librte_common_dpaax\.
> -[suppress_file]
> - file_name_regexp = ^librte_bus_fslmc\.
> -[suppress_file]
> - file_name_regexp = ^librte_bus_dpaa\.
> -[suppress_variable]
> - name = rte_dpaa_bpid_info
> -[suppress_variable]
> - name = rte_dpaa_memsegs
> -[suppress_variable]
> - name = rte_dpaa2_bpid_info
> -[suppress_function]
> - name = rte_dpaa2_mbuf_alloc_bulk
> -[suppress_function]
> - name_regexp = ^dpaa2?_.*tach$
> -; Ignore soname changes for experimental libraries
> -[suppress_file]
> - file_name_regexp = ^librte_bbdev\.
> -[suppress_file]
> - file_name_regexp = ^librte_bpf\.
> -[suppress_file]
> - file_name_regexp = ^librte_compressdev\.
> -[suppress_file]
> - file_name_regexp = ^librte_fib\.
> -[suppress_file]
> - file_name_regexp = ^librte_flow_classify\.
> -[suppress_file]
> - file_name_regexp = ^librte_graph\.
> -[suppress_file]
> - file_name_regexp = ^librte_ipsec\.
> -[suppress_file]
> - file_name_regexp = ^librte_node\.
> -[suppress_file]
> - file_name_regexp = ^librte_rcu\.
> -[suppress_file]
> - file_name_regexp = ^librte_rib\.
> -[suppress_file]
> - file_name_regexp = ^librte_telemetry\.
> -[suppress_file]
> - file_name_regexp = ^librte_stack\.
[SNIP]
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH v4 2/2] devtools: fix ABI update in map files
2020-08-11 11:27 14% ` [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0 Thomas Monjalon
@ 2020-08-11 11:27 12% ` Thomas Monjalon
2020-08-11 13:47 0% ` [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0 Kinsella, Ray
1 sibling, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-11 11:27 UTC (permalink / raw)
To: dev; +Cc: david.marchand, mdr, nhorman, kevin.laatz, bruce.richardson
The script was using the full ABI version, including the minor number,
to version the symbols in the map files.
It is fixed to use only the major number for symbol versioning.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
devtools/update_version_map_abi.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/devtools/update_version_map_abi.py b/devtools/update_version_map_abi.py
index 80a61641ed..10c3bc8098 100755
--- a/devtools/update_version_map_abi.py
+++ b/devtools/update_version_map_abi.py
@@ -105,9 +105,9 @@ def __parse_map_file(f_in):
return has_stable, stable_lines, experimental_lines, internal_lines
-def __generate_stable_abi(f_out, abi_version, lines):
+def __generate_stable_abi(f_out, abi_major, lines):
# print ABI version header
- print("DPDK_{} {{".format(abi_version), file=f_out)
+ print("DPDK_{} {{".format(abi_major), file=f_out)
# print global section if it exists
if lines:
@@ -186,6 +186,7 @@ def __main():
file=sys.stderr)
arg_parser.print_help()
sys.exit(1)
+ abi_major = parsed.abi_version.split('.')[0]
with open(parsed.map_file) as f_in:
has_stable, stable_lines, experimental_lines, internal_lines = __parse_map_file(f_in)
@@ -193,7 +194,7 @@ def __main():
with open(parsed.map_file, 'w') as f_out:
need_newline = has_stable and experimental_lines
if has_stable:
- __generate_stable_abi(f_out, parsed.abi_version, stable_lines)
+ __generate_stable_abi(f_out, abi_major, stable_lines)
if need_newline:
# separate sections with a newline
print(file=f_out)
--
2.27.0
^ permalink raw reply [relevance 12%]
* [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0
2020-08-10 15:15 9% [dpdk-dev] [PATCH] version: 20.11-rc0 Thomas Monjalon
2020-08-11 9:31 18% ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
2020-08-11 9:58 8% ` [dpdk-dev] [PATCH v3 1/2] " Thomas Monjalon
@ 2020-08-11 11:27 14% ` Thomas Monjalon
2020-08-11 11:27 12% ` [dpdk-dev] [PATCH v4 2/2] devtools: fix ABI update in map files Thomas Monjalon
2020-08-11 13:47 0% ` [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0 Kinsella, Ray
2020-08-11 14:03 13% ` [dpdk-dev] [PATCH v5 " Thomas Monjalon
3 siblings, 2 replies; 200+ results
From: Thomas Monjalon @ 2020-08-11 11:27 UTC (permalink / raw)
To: dev; +Cc: david.marchand, mdr, nhorman, kevin.laatz, bruce.richardson
Start a new release cycle with empty release notes.
The ABI version becomes 21.0.
The ABI major is back to normal, having only one number (21 vs 20.0).
The map files are updated to the new ABI major number (21).
The ABI exceptions specific to previous major version are dropped.
Travis ABI check is disabled because compatibility is not preserved.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
v4: add -rc0 and remove temporary ABI exceptions
v3: add minor number to ABI_VERSION and remove workaround in scripts
v2: bump major ABI number (including .map changes)
---
.travis.yml | 26 ----
ABI_VERSION | 2 +-
VERSION | 2 +-
config/meson.build | 5 +-
devtools/libabigail.abignore | 60 --------
doc/guides/rel_notes/index.rst | 1 +
doc/guides/rel_notes/release_20_11.rst | 136 ++++++++++++++++++
.../rte_pmd_bbdev_fpga_5gnr_fec_version.map | 2 +-
.../rte_pmd_bbdev_fpga_lte_fec_version.map | 2 +-
.../null/rte_pmd_bbdev_null_version.map | 2 +-
.../rte_pmd_bbdev_turbo_sw_version.map | 2 +-
drivers/bus/ifpga/rte_bus_ifpga_version.map | 2 +-
drivers/bus/pci/rte_bus_pci_version.map | 2 +-
drivers/bus/vdev/rte_bus_vdev_version.map | 2 +-
drivers/bus/vmbus/rte_bus_vmbus_version.map | 2 +-
drivers/common/cpt/rte_common_cpt_version.map | 2 +-
.../common/iavf/rte_common_iavf_version.map | 4 +-
.../common/mlx5/rte_common_mlx5_version.map | 1 -
.../common/mvep/rte_common_mvep_version.map | 2 +-
.../octeontx/rte_common_octeontx_version.map | 2 +-
.../compress/isal/rte_pmd_isal_version.map | 2 +-
.../rte_pmd_octeontx_compress_version.map | 2 +-
drivers/compress/qat/rte_pmd_qat_version.map | 2 +-
.../compress/zlib/rte_pmd_zlib_version.map | 2 +-
.../aesni_gcm/rte_pmd_aesni_gcm_version.map | 2 +-
.../aesni_mb/rte_pmd_aesni_mb_version.map | 2 +-
.../crypto/armv8/rte_pmd_armv8_version.map | 2 +-
.../caam_jr/rte_pmd_caam_jr_version.map | 2 +-
drivers/crypto/ccp/rte_pmd_ccp_version.map | 2 +-
.../crypto/kasumi/rte_pmd_kasumi_version.map | 2 +-
.../crypto/mvsam/rte_pmd_mvsam_version.map | 2 +-
.../crypto/nitrox/rte_pmd_nitrox_version.map | 2 +-
.../null/rte_pmd_null_crypto_version.map | 2 +-
.../rte_pmd_octeontx_crypto_version.map | 2 +-
.../rte_pmd_octeontx2_crypto_version.map | 2 +-
.../openssl/rte_pmd_openssl_version.map | 2 +-
.../rte_pmd_crypto_scheduler_version.map | 2 +-
.../crypto/snow3g/rte_pmd_snow3g_version.map | 2 +-
.../virtio/rte_pmd_virtio_crypto_version.map | 2 +-
drivers/crypto/zuc/rte_pmd_zuc_version.map | 2 +-
.../event/dpaa/rte_pmd_dpaa_event_version.map | 2 +-
.../dpaa2/rte_pmd_dpaa2_event_version.map | 2 +-
.../event/dsw/rte_pmd_dsw_event_version.map | 2 +-
.../rte_pmd_octeontx_event_version.map | 2 +-
.../rte_pmd_octeontx2_event_version.map | 2 +-
.../event/opdl/rte_pmd_opdl_event_version.map | 2 +-
.../rte_pmd_skeleton_event_version.map | 2 +-
drivers/event/sw/rte_pmd_sw_event_version.map | 2 +-
.../bucket/rte_mempool_bucket_version.map | 2 +-
.../dpaa2/rte_mempool_dpaa2_version.map | 2 +-
.../octeontx/rte_mempool_octeontx_version.map | 2 +-
.../mempool/ring/rte_mempool_ring_version.map | 2 +-
.../stack/rte_mempool_stack_version.map | 2 +-
.../af_packet/rte_pmd_af_packet_version.map | 2 +-
drivers/net/af_xdp/rte_pmd_af_xdp_version.map | 2 +-
drivers/net/ark/rte_pmd_ark_version.map | 2 +-
.../net/atlantic/rte_pmd_atlantic_version.map | 2 +-
drivers/net/avp/rte_pmd_avp_version.map | 2 +-
drivers/net/axgbe/rte_pmd_axgbe_version.map | 2 +-
drivers/net/bnx2x/rte_pmd_bnx2x_version.map | 2 +-
drivers/net/bnxt/rte_pmd_bnxt_version.map | 2 +-
drivers/net/bonding/rte_pmd_bond_version.map | 2 +-
drivers/net/cxgbe/rte_pmd_cxgbe_version.map | 2 +-
drivers/net/dpaa/rte_pmd_dpaa_version.map | 2 +-
drivers/net/e1000/rte_pmd_e1000_version.map | 2 +-
drivers/net/ena/rte_pmd_ena_version.map | 2 +-
drivers/net/enetc/rte_pmd_enetc_version.map | 2 +-
drivers/net/enic/rte_pmd_enic_version.map | 2 +-
.../net/failsafe/rte_pmd_failsafe_version.map | 2 +-
drivers/net/fm10k/rte_pmd_fm10k_version.map | 2 +-
drivers/net/hinic/rte_pmd_hinic_version.map | 2 +-
drivers/net/hns3/rte_pmd_hns3_version.map | 2 +-
drivers/net/i40e/rte_pmd_i40e_version.map | 2 +-
drivers/net/iavf/rte_pmd_iavf_version.map | 2 +-
drivers/net/ice/rte_pmd_ice_version.map | 2 +-
drivers/net/ionic/rte_pmd_ionic_version.map | 1 -
drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map | 2 +-
drivers/net/ixgbe/rte_pmd_ixgbe_version.map | 2 +-
drivers/net/kni/rte_pmd_kni_version.map | 2 +-
.../net/liquidio/rte_pmd_liquidio_version.map | 2 +-
drivers/net/memif/rte_pmd_memif_version.map | 2 +-
drivers/net/mlx4/rte_pmd_mlx4_version.map | 2 +-
drivers/net/mlx5/rte_pmd_mlx5_version.map | 6 +-
drivers/net/mvneta/rte_pmd_mvneta_version.map | 2 +-
drivers/net/mvpp2/rte_pmd_mvpp2_version.map | 2 +-
drivers/net/netvsc/rte_pmd_netvsc_version.map | 2 +-
drivers/net/nfb/rte_pmd_nfb_version.map | 2 +-
drivers/net/nfp/rte_pmd_nfp_version.map | 2 +-
drivers/net/null/rte_pmd_null_version.map | 2 +-
.../net/octeontx/rte_pmd_octeontx_version.map | 2 +-
.../octeontx2/rte_pmd_octeontx2_version.map | 2 +-
drivers/net/pcap/rte_pmd_pcap_version.map | 2 +-
drivers/net/pfe/rte_pmd_pfe_version.map | 2 +-
drivers/net/qede/rte_pmd_qede_version.map | 2 +-
drivers/net/ring/rte_pmd_ring_version.map | 2 +-
drivers/net/sfc/rte_pmd_sfc_version.map | 2 +-
.../net/softnic/rte_pmd_softnic_version.map | 2 +-
.../net/szedata2/rte_pmd_szedata2_version.map | 2 +-
drivers/net/tap/rte_pmd_tap_version.map | 2 +-
.../net/thunderx/rte_pmd_thunderx_version.map | 2 +-
.../rte_pmd_vdev_netvsc_version.map | 2 +-
drivers/net/vhost/rte_pmd_vhost_version.map | 2 +-
drivers/net/virtio/rte_pmd_virtio_version.map | 2 +-
.../net/vmxnet3/rte_pmd_vmxnet3_version.map | 2 +-
.../rte_rawdev_dpaa2_cmdif_version.map | 2 +-
.../rte_rawdev_dpaa2_qdma_version.map | 2 +-
.../raw/ifpga/rte_rawdev_ifpga_version.map | 2 +-
drivers/raw/ioat/rte_rawdev_ioat_version.map | 2 +-
drivers/raw/ntb/rte_rawdev_ntb_version.map | 2 +-
.../rte_rawdev_octeontx2_dma_version.map | 2 +-
.../rte_rawdev_octeontx2_ep_version.map | 1 -
.../skeleton/rte_rawdev_skeleton_version.map | 2 +-
drivers/vdpa/ifc/rte_pmd_ifc_version.map | 2 +-
lib/librte_acl/rte_acl_version.map | 2 +-
.../rte_bitratestats_version.map | 2 +-
lib/librte_cfgfile/rte_cfgfile_version.map | 2 +-
lib/librte_cmdline/rte_cmdline_version.map | 2 +-
.../rte_cryptodev_version.map | 7 +-
.../rte_distributor_version.map | 2 +-
lib/librte_eal/rte_eal_version.map | 10 +-
lib/librte_efd/rte_efd_version.map | 2 +-
lib/librte_ethdev/rte_ethdev_version.map | 2 +-
lib/librte_eventdev/rte_eventdev_version.map | 2 +-
lib/librte_gro/rte_gro_version.map | 2 +-
lib/librte_gso/rte_gso_version.map | 2 +-
lib/librte_hash/rte_hash_version.map | 2 +-
lib/librte_ip_frag/rte_ip_frag_version.map | 2 +-
lib/librte_jobstats/rte_jobstats_version.map | 2 +-
lib/librte_kni/rte_kni_version.map | 2 +-
lib/librte_kvargs/rte_kvargs_version.map | 2 +-
.../rte_latencystats_version.map | 2 +-
lib/librte_lpm/rte_lpm_version.map | 2 +-
lib/librte_mbuf/rte_mbuf_version.map | 2 +-
lib/librte_member/rte_member_version.map | 2 +-
lib/librte_mempool/rte_mempool_version.map | 6 +-
lib/librte_meter/rte_meter_version.map | 14 +-
lib/librte_metrics/rte_metrics_version.map | 2 +-
lib/librte_net/rte_net_version.map | 2 +-
lib/librte_pci/rte_pci_version.map | 2 +-
lib/librte_pdump/rte_pdump_version.map | 2 +-
lib/librte_pipeline/rte_pipeline_version.map | 2 +-
lib/librte_port/rte_port_version.map | 2 +-
lib/librte_power/rte_power_version.map | 2 +-
lib/librte_rawdev/rte_rawdev_version.map | 2 +-
lib/librte_reorder/rte_reorder_version.map | 2 +-
lib/librte_ring/rte_ring_version.map | 13 +-
lib/librte_sched/rte_sched_version.map | 2 +-
lib/librte_security/rte_security_version.map | 2 +-
lib/librte_table/rte_table_version.map | 2 +-
lib/librte_timer/rte_timer_version.map | 2 +-
lib/librte_vhost/rte_vhost_version.map | 2 +-
151 files changed, 295 insertions(+), 268 deletions(-)
create mode 100644 doc/guides/rel_notes/release_20_11.rst
diff --git a/.travis.yml b/.travis.yml
index 14f8124233..d6eeab371d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,9 +2,6 @@
language: c
cache:
ccache: true
- directories:
- - libabigail
- - reference
dist: bionic
@@ -21,9 +18,6 @@ _aarch64_packages: &aarch64_packages
- *required_packages
- [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
-_libabigail_build_packages: &libabigail_build_packages
- - [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
-
_build_32b_packages: &build_32b_packages
- *required_packages
- [gcc-multilib]
@@ -34,10 +28,6 @@ _doc_packages: &doc_packages
before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
script: ./.ci/${TRAVIS_OS_NAME}-build.sh
-env:
- global:
- - REF_GIT_TAG=v20.05
-
jobs:
include:
# x86_64 gcc jobs
@@ -55,14 +45,6 @@ jobs:
packages:
- *required_packages
- *doc_packages
- - env: DEF_LIB="shared" ABI_CHECKS=1
- arch: amd64
- compiler: gcc
- addons:
- apt:
- packages:
- - *required_packages
- - *libabigail_build_packages
# x86_64 clang jobs
- env: DEF_LIB="static"
arch: amd64
@@ -116,14 +98,6 @@ jobs:
packages:
- *required_packages
- *doc_packages
- - env: DEF_LIB="shared" ABI_CHECKS=1
- arch: arm64
- compiler: gcc
- addons:
- apt:
- packages:
- - *required_packages
- - *libabigail_build_packages
# aarch64 clang jobs
- env: DEF_LIB="static"
arch: arm64
diff --git a/ABI_VERSION b/ABI_VERSION
index a9ac8dacb0..5f39e91446 100644
--- a/ABI_VERSION
+++ b/ABI_VERSION
@@ -1 +1 @@
-20.0.3
+21.0
diff --git a/VERSION b/VERSION
index 85e33446f8..3f02088ffa 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-20.08.0
+20.11.0-rc0
diff --git a/config/meson.build b/config/meson.build
index cff8b33dd2..6996e5cbea 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -29,10 +29,7 @@ abi_version = run_command(find_program('cat', 'more'),
# and have the soname be all but the final part of the abi_version.
# e.g. v20.1 => librte_foo.so.20.1
# sonames => librte_foo.so.20
-# e.g. v20.0.1 => librte_foo.so.20.0.1
-# sonames => librte_foo.so.20.0
-abi_va = abi_version.split('.')
-so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1]
+so_version = abi_version.split('.')[0]
# extract all version information into the build configuration
dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int())
diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 9fea822f36..2827d5ff7e 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -8,12 +8,6 @@
[suppress_variable]
symbol_version = INTERNAL
-; Ignore ABI 20.0.1 replaced with ABI 21
-[suppress_function]
- symbol_version = DPDK_20.0.1
-[suppress_variable]
- symbol_version = DPDK_20.0.1
-
; Explicit ignore for driver-only ABI
[suppress_type]
name = rte_cryptodev_ops
@@ -56,57 +50,3 @@
[suppress_type]
name = rte_mbuf_ext_shared_info
has_data_member_inserted_between = {offset_of(refcnt_atomic), offset_of(refcnt_atomic)}
-
-;;;;;;;;;;;;;;;;;;;;;;
-; Temporary exceptions till DPDK 20.11
-;;;;;;;;;;;;;;;;;;;;;;
-; Ignore moving OCTEONTX2 stable functions to INTERNAL
-[suppress_file]
- file_name_regexp = ^librte_common_octeontx2\.
-[suppress_file]
- file_name_regexp = ^librte_mempool_octeontx2\.
-; Ignore moving mlx5 stable functions to INTERNAL
-[suppress_file]
- file_name_regexp = ^librte_common_mlx5\.
-; Ignore moving DPAAx stable functions to INTERNAL
-[suppress_file]
- file_name_regexp = ^librte_common_dpaax\.
-[suppress_file]
- file_name_regexp = ^librte_bus_fslmc\.
-[suppress_file]
- file_name_regexp = ^librte_bus_dpaa\.
-[suppress_variable]
- name = rte_dpaa_bpid_info
-[suppress_variable]
- name = rte_dpaa_memsegs
-[suppress_variable]
- name = rte_dpaa2_bpid_info
-[suppress_function]
- name = rte_dpaa2_mbuf_alloc_bulk
-[suppress_function]
- name_regexp = ^dpaa2?_.*tach$
-; Ignore soname changes for experimental libraries
-[suppress_file]
- file_name_regexp = ^librte_bbdev\.
-[suppress_file]
- file_name_regexp = ^librte_bpf\.
-[suppress_file]
- file_name_regexp = ^librte_compressdev\.
-[suppress_file]
- file_name_regexp = ^librte_fib\.
-[suppress_file]
- file_name_regexp = ^librte_flow_classify\.
-[suppress_file]
- file_name_regexp = ^librte_graph\.
-[suppress_file]
- file_name_regexp = ^librte_ipsec\.
-[suppress_file]
- file_name_regexp = ^librte_node\.
-[suppress_file]
- file_name_regexp = ^librte_rcu\.
-[suppress_file]
- file_name_regexp = ^librte_rib\.
-[suppress_file]
- file_name_regexp = ^librte_telemetry\.
-[suppress_file]
- file_name_regexp = ^librte_stack\.
diff --git a/doc/guides/rel_notes/index.rst b/doc/guides/rel_notes/index.rst
index 05c9d837a4..fb70d1a5f3 100644
--- a/doc/guides/rel_notes/index.rst
+++ b/doc/guides/rel_notes/index.rst
@@ -8,6 +8,7 @@ Release Notes
:maxdepth: 1
:numbered:
+ release_20_11
release_20_08
release_20_05
release_20_02
diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
new file mode 100644
index 0000000000..df227a1773
--- /dev/null
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -0,0 +1,136 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright 2020 The DPDK contributors
+
+.. include:: <isonum.txt>
+
+DPDK Release 20.11
+==================
+
+.. **Read this first.**
+
+ The text in the sections below explains how to update the release notes.
+
+ Use proper spelling, capitalization and punctuation in all sections.
+
+ Variable and config names should be quoted as fixed width text:
+ ``LIKE_THIS``.
+
+ Build the docs and view the output file to ensure the changes are correct::
+
+ make doc-guides-html
+ xdg-open build/doc/html/guides/rel_notes/release_20_11.html
+
+
+New Features
+------------
+
+.. This section should contain new features added in this release.
+ Sample format:
+
+ * **Add a title in the past tense with a full stop.**
+
+ Add a short 1-2 sentence description in the past tense.
+ The description should be enough to allow someone scanning
+ the release notes to understand the new feature.
+
+ If the feature adds a lot of sub-features you can use a bullet list
+ like this:
+
+ * Added feature foo to do something.
+ * Enhanced feature bar to do something else.
+
+ Refer to the previous release notes for examples.
+
+ Suggested order in release notes items:
+ * Core libs (EAL, mempool, ring, mbuf, buses)
+ * Device abstraction libs and PMDs
+ - ethdev (lib, PMDs)
+ - cryptodev (lib, PMDs)
+ - eventdev (lib, PMDs)
+ - etc
+ * Other libs
+ * Apps, Examples, Tools (if significant)
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Removed Items
+-------------
+
+.. This section should contain removed items in this release. Sample format:
+
+ * Add a short 1-2 sentence description of the removed item
+ in the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+API Changes
+-----------
+
+.. This section should contain API changes. Sample format:
+
+ * sample: Add a short 1-2 sentence description of the API change
+ which was announced in the previous releases and made in this release.
+ Start with a scope label like "ethdev:".
+ Use fixed width quotes for ``function_names`` or ``struct_names``.
+ Use the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+ABI Changes
+-----------
+
+.. This section should contain ABI changes. Sample format:
+
+ * sample: Add a short 1-2 sentence description of the ABI change
+ which was announced in the previous releases and made in this release.
+ Start with a scope label like "ethdev:".
+ Use fixed width quotes for ``function_names`` or ``struct_names``.
+ Use the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Known Issues
+------------
+
+.. This section should contain new known issues in this release. Sample format:
+
+ * **Add title in present tense with full stop.**
+
+ Add a short 1-2 sentence description of the known issue
+ in the present tense. Add information on any known workarounds.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Tested Platforms
+----------------
+
+.. This section should contain a list of platforms that were tested
+ with this release.
+
+ The format is:
+
+ * <vendor> platform with <vendor> <type of devices> combinations
+
+ * List of CPU
+ * List of OS
+ * List of devices
+ * Other relevant details...
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
diff --git a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
index b0fb9717fa..d723bc9b0e 100644
--- a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
+++ b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
index 6bcea2cc7f..a2ab086cd8 100644
--- a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
+++ b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/null/rte_pmd_bbdev_null_version.map b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/baseband/null/rte_pmd_bbdev_null_version.map
+++ b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
+++ b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/bus/ifpga/rte_bus_ifpga_version.map b/drivers/bus/ifpga/rte_bus_ifpga_version.map
index 05b4a28c1b..6e8f85da3c 100644
--- a/drivers/bus/ifpga/rte_bus_ifpga_version.map
+++ b/drivers/bus/ifpga/rte_bus_ifpga_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ifpga_driver_register;
diff --git a/drivers/bus/pci/rte_bus_pci_version.map b/drivers/bus/pci/rte_bus_pci_version.map
index 012d817e14..5b75d23671 100644
--- a/drivers/bus/pci/rte_bus_pci_version.map
+++ b/drivers/bus/pci/rte_bus_pci_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pci_dump;
diff --git a/drivers/bus/vdev/rte_bus_vdev_version.map b/drivers/bus/vdev/rte_bus_vdev_version.map
index 5abb10ecb0..61b6cefcee 100644
--- a/drivers/bus/vdev/rte_bus_vdev_version.map
+++ b/drivers/bus/vdev/rte_bus_vdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vdev_add_custom_scan;
diff --git a/drivers/bus/vmbus/rte_bus_vmbus_version.map b/drivers/bus/vmbus/rte_bus_vmbus_version.map
index cbaaebc06c..fa8e91c282 100644
--- a/drivers/bus/vmbus/rte_bus_vmbus_version.map
+++ b/drivers/bus/vmbus/rte_bus_vmbus_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vmbus_chan_close;
diff --git a/drivers/common/cpt/rte_common_cpt_version.map b/drivers/common/cpt/rte_common_cpt_version.map
index 8c65cde6cf..4d85021a87 100644
--- a/drivers/common/cpt/rte_common_cpt_version.map
+++ b/drivers/common/cpt/rte_common_cpt_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
cpt_pmd_ops_helper_asym_get_mlen;
diff --git a/drivers/common/iavf/rte_common_iavf_version.map b/drivers/common/iavf/rte_common_iavf_version.map
index 92ceac108d..44142499e0 100644
--- a/drivers/common/iavf/rte_common_iavf_version.map
+++ b/drivers/common/iavf/rte_common_iavf_version.map
@@ -1,11 +1,11 @@
DPDK_21 {
global:
- iavf_init_adminq;
- iavf_shutdown_adminq;
iavf_aq_send_msg_to_pf;
iavf_clean_arq_element;
+ iavf_init_adminq;
iavf_set_mac_type;
+ iavf_shutdown_adminq;
iavf_vf_parse_hw_config;
local: *;
diff --git a/drivers/common/mlx5/rte_common_mlx5_version.map b/drivers/common/mlx5/rte_common_mlx5_version.map
index 7729d0dd04..c4d57c08a7 100644
--- a/drivers/common/mlx5/rte_common_mlx5_version.map
+++ b/drivers/common/mlx5/rte_common_mlx5_version.map
@@ -93,4 +93,3 @@ INTERNAL {
mlx5_pci_driver_register;
};
-
diff --git a/drivers/common/mvep/rte_common_mvep_version.map b/drivers/common/mvep/rte_common_mvep_version.map
index 030928439d..e5af82c61d 100644
--- a/drivers/common/mvep/rte_common_mvep_version.map
+++ b/drivers/common/mvep/rte_common_mvep_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_mvep_deinit;
diff --git a/drivers/common/octeontx/rte_common_octeontx_version.map b/drivers/common/octeontx/rte_common_octeontx_version.map
index 5f6aa8bd3a..30f3fa65e0 100644
--- a/drivers/common/octeontx/rte_common_octeontx_version.map
+++ b/drivers/common/octeontx/rte_common_octeontx_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
octeontx_get_global_domain;
diff --git a/drivers/compress/isal/rte_pmd_isal_version.map b/drivers/compress/isal/rte_pmd_isal_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/isal/rte_pmd_isal_version.map
+++ b/drivers/compress/isal/rte_pmd_isal_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
+++ b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/qat/rte_pmd_qat_version.map b/drivers/compress/qat/rte_pmd_qat_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/qat/rte_pmd_qat_version.map
+++ b/drivers/compress/qat/rte_pmd_qat_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/zlib/rte_pmd_zlib_version.map b/drivers/compress/zlib/rte_pmd_zlib_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/zlib/rte_pmd_zlib_version.map
+++ b/drivers/compress/zlib/rte_pmd_zlib_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
+++ b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
+++ b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/armv8/rte_pmd_armv8_version.map b/drivers/crypto/armv8/rte_pmd_armv8_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/armv8/rte_pmd_armv8_version.map
+++ b/drivers/crypto/armv8/rte_pmd_armv8_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
+++ b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/ccp/rte_pmd_ccp_version.map b/drivers/crypto/ccp/rte_pmd_ccp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/ccp/rte_pmd_ccp_version.map
+++ b/drivers/crypto/ccp/rte_pmd_ccp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
+++ b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
+++ b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
+++ b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/null/rte_pmd_null_crypto_version.map b/drivers/crypto/null/rte_pmd_null_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/null/rte_pmd_null_crypto_version.map
+++ b/drivers/crypto/null/rte_pmd_null_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
+++ b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
+++ b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/openssl/rte_pmd_openssl_version.map b/drivers/crypto/openssl/rte_pmd_openssl_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/openssl/rte_pmd_openssl_version.map
+++ b/drivers/crypto/openssl/rte_pmd_openssl_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
index 077afedce7..ca6f102d9f 100644
--- a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
+++ b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_cryptodev_scheduler_load_user_scheduler;
diff --git a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
+++ b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
+++ b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/zuc/rte_pmd_zuc_version.map b/drivers/crypto/zuc/rte_pmd_zuc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/zuc/rte_pmd_zuc_version.map
+++ b/drivers/crypto/zuc/rte_pmd_zuc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
+++ b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
+++ b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dsw/rte_pmd_dsw_event_version.map b/drivers/event/dsw/rte_pmd_dsw_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dsw/rte_pmd_dsw_event_version.map
+++ b/drivers/event/dsw/rte_pmd_dsw_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
+++ b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
+++ b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/opdl/rte_pmd_opdl_event_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/opdl/rte_pmd_opdl_event_version.map
+++ b/drivers/event/opdl/rte_pmd_opdl_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
+++ b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/sw/rte_pmd_sw_event_version.map b/drivers/event/sw/rte_pmd_sw_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/sw/rte_pmd_sw_event_version.map
+++ b/drivers/event/sw/rte_pmd_sw_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/bucket/rte_mempool_bucket_version.map b/drivers/mempool/bucket/rte_mempool_bucket_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/bucket/rte_mempool_bucket_version.map
+++ b/drivers/mempool/bucket/rte_mempool_bucket_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index 686b024624..473b8c90e8 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_dpaa2_mbuf_from_buf_addr;
diff --git a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
+++ b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/ring/rte_mempool_ring_version.map b/drivers/mempool/ring/rte_mempool_ring_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/ring/rte_mempool_ring_version.map
+++ b/drivers/mempool/ring/rte_mempool_ring_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/stack/rte_mempool_stack_version.map b/drivers/mempool/stack/rte_mempool_stack_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/stack/rte_mempool_stack_version.map
+++ b/drivers/mempool/stack/rte_mempool_stack_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/af_packet/rte_pmd_af_packet_version.map b/drivers/net/af_packet/rte_pmd_af_packet_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/af_packet/rte_pmd_af_packet_version.map
+++ b/drivers/net/af_packet/rte_pmd_af_packet_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
+++ b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ark/rte_pmd_ark_version.map b/drivers/net/ark/rte_pmd_ark_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/ark/rte_pmd_ark_version.map
+++ b/drivers/net/ark/rte_pmd_ark_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/atlantic/rte_pmd_atlantic_version.map b/drivers/net/atlantic/rte_pmd_atlantic_version.map
index 9b04838d84..6e17832684 100644
--- a/drivers/net/atlantic/rte_pmd_atlantic_version.map
+++ b/drivers/net/atlantic/rte_pmd_atlantic_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/avp/rte_pmd_avp_version.map b/drivers/net/avp/rte_pmd_avp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/avp/rte_pmd_avp_version.map
+++ b/drivers/net/avp/rte_pmd_avp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/axgbe/rte_pmd_axgbe_version.map b/drivers/net/axgbe/rte_pmd_axgbe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/axgbe/rte_pmd_axgbe_version.map
+++ b/drivers/net/axgbe/rte_pmd_axgbe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
+++ b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/bnxt/rte_pmd_bnxt_version.map b/drivers/net/bnxt/rte_pmd_bnxt_version.map
index bb52562347..a050d86ab7 100644
--- a/drivers/net/bnxt/rte_pmd_bnxt_version.map
+++ b/drivers/net/bnxt/rte_pmd_bnxt_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_bnxt_get_vf_rx_status;
diff --git a/drivers/net/bonding/rte_pmd_bond_version.map b/drivers/net/bonding/rte_pmd_bond_version.map
index 270c7d5d55..df81ee74c1 100644
--- a/drivers/net/bonding/rte_pmd_bond_version.map
+++ b/drivers/net/bonding/rte_pmd_bond_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_bond_8023ad_agg_selection_get;
diff --git a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
+++ b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index 774aa0de45..87ce8f5b6c 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_dpaa_set_tx_loopback;
diff --git a/drivers/net/e1000/rte_pmd_e1000_version.map b/drivers/net/e1000/rte_pmd_e1000_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/e1000/rte_pmd_e1000_version.map
+++ b/drivers/net/e1000/rte_pmd_e1000_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ena/rte_pmd_ena_version.map b/drivers/net/ena/rte_pmd_ena_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/ena/rte_pmd_ena_version.map
+++ b/drivers/net/ena/rte_pmd_ena_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/enetc/rte_pmd_enetc_version.map b/drivers/net/enetc/rte_pmd_enetc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/enetc/rte_pmd_enetc_version.map
+++ b/drivers/net/enetc/rte_pmd_enetc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/enic/rte_pmd_enic_version.map b/drivers/net/enic/rte_pmd_enic_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/enic/rte_pmd_enic_version.map
+++ b/drivers/net/enic/rte_pmd_enic_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/failsafe/rte_pmd_failsafe_version.map b/drivers/net/failsafe/rte_pmd_failsafe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/failsafe/rte_pmd_failsafe_version.map
+++ b/drivers/net/failsafe/rte_pmd_failsafe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/fm10k/rte_pmd_fm10k_version.map b/drivers/net/fm10k/rte_pmd_fm10k_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/fm10k/rte_pmd_fm10k_version.map
+++ b/drivers/net/fm10k/rte_pmd_fm10k_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/hinic/rte_pmd_hinic_version.map b/drivers/net/hinic/rte_pmd_hinic_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/hinic/rte_pmd_hinic_version.map
+++ b/drivers/net/hinic/rte_pmd_hinic_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/hns3/rte_pmd_hns3_version.map b/drivers/net/hns3/rte_pmd_hns3_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/hns3/rte_pmd_hns3_version.map
+++ b/drivers/net/hns3/rte_pmd_hns3_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/i40e/rte_pmd_i40e_version.map b/drivers/net/i40e/rte_pmd_i40e_version.map
index f6cd3b3566..413c58cb21 100644
--- a/drivers/net/i40e/rte_pmd_i40e_version.map
+++ b/drivers/net/i40e/rte_pmd_i40e_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_i40e_add_vf_mac_addr;
diff --git a/drivers/net/iavf/rte_pmd_iavf_version.map b/drivers/net/iavf/rte_pmd_iavf_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/iavf/rte_pmd_iavf_version.map
+++ b/drivers/net/iavf/rte_pmd_iavf_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ice/rte_pmd_ice_version.map b/drivers/net/ice/rte_pmd_ice_version.map
index d04b194c13..91f40225e9 100644
--- a/drivers/net/ice/rte_pmd_ice_version.map
+++ b/drivers/net/ice/rte_pmd_ice_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ionic/rte_pmd_ionic_version.map b/drivers/net/ionic/rte_pmd_ionic_version.map
index acdaf587d2..4a76d1d52d 100644
--- a/drivers/net/ionic/rte_pmd_ionic_version.map
+++ b/drivers/net/ionic/rte_pmd_ionic_version.map
@@ -1,4 +1,3 @@
DPDK_21 {
-
local: *;
};
diff --git a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
index 7e348e99b1..d8cc1026e0 100644
--- a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
+++ b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
index 911f8083f1..9402802b04 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_ixgbe_bypass_event_show;
diff --git a/drivers/net/kni/rte_pmd_kni_version.map b/drivers/net/kni/rte_pmd_kni_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/kni/rte_pmd_kni_version.map
+++ b/drivers/net/kni/rte_pmd_kni_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/liquidio/rte_pmd_liquidio_version.map b/drivers/net/liquidio/rte_pmd_liquidio_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/liquidio/rte_pmd_liquidio_version.map
+++ b/drivers/net/liquidio/rte_pmd_liquidio_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/memif/rte_pmd_memif_version.map b/drivers/net/memif/rte_pmd_memif_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/memif/rte_pmd_memif_version.map
+++ b/drivers/net/memif/rte_pmd_memif_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mlx4/rte_pmd_mlx4_version.map b/drivers/net/mlx4/rte_pmd_mlx4_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mlx4/rte_pmd_mlx4_version.map
+++ b/drivers/net/mlx4/rte_pmd_mlx4_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mlx5/rte_pmd_mlx5_version.map b/drivers/net/mlx5/rte_pmd_mlx5_version.map
index c8b1031b02..bc1d3d06bf 100644
--- a/drivers/net/mlx5/rte_pmd_mlx5_version.map
+++ b/drivers/net/mlx5/rte_pmd_mlx5_version.map
@@ -1,10 +1,10 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
EXPERIMENTAL {
- global:
+ global:
- # added in 20.02
+ # added in 20.02
rte_pmd_mlx5_get_dyn_flag_names;
};
diff --git a/drivers/net/mvneta/rte_pmd_mvneta_version.map b/drivers/net/mvneta/rte_pmd_mvneta_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mvneta/rte_pmd_mvneta_version.map
+++ b/drivers/net/mvneta/rte_pmd_mvneta_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
+++ b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/netvsc/rte_pmd_netvsc_version.map b/drivers/net/netvsc/rte_pmd_netvsc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/netvsc/rte_pmd_netvsc_version.map
+++ b/drivers/net/netvsc/rte_pmd_netvsc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/nfb/rte_pmd_nfb_version.map b/drivers/net/nfb/rte_pmd_nfb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/nfb/rte_pmd_nfb_version.map
+++ b/drivers/net/nfb/rte_pmd_nfb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/nfp/rte_pmd_nfp_version.map b/drivers/net/nfp/rte_pmd_nfp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/nfp/rte_pmd_nfp_version.map
+++ b/drivers/net/nfp/rte_pmd_nfp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/null/rte_pmd_null_version.map b/drivers/net/null/rte_pmd_null_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/null/rte_pmd_null_version.map
+++ b/drivers/net/null/rte_pmd_null_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/octeontx/rte_pmd_octeontx_version.map b/drivers/net/octeontx/rte_pmd_octeontx_version.map
index f7cae02fac..6dda72890c 100644
--- a/drivers/net/octeontx/rte_pmd_octeontx_version.map
+++ b/drivers/net/octeontx/rte_pmd_octeontx_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_octeontx_pchan_map;
diff --git a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
+++ b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/pcap/rte_pmd_pcap_version.map b/drivers/net/pcap/rte_pmd_pcap_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/pcap/rte_pmd_pcap_version.map
+++ b/drivers/net/pcap/rte_pmd_pcap_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/pfe/rte_pmd_pfe_version.map b/drivers/net/pfe/rte_pmd_pfe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/pfe/rte_pmd_pfe_version.map
+++ b/drivers/net/pfe/rte_pmd_pfe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/qede/rte_pmd_qede_version.map b/drivers/net/qede/rte_pmd_qede_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/qede/rte_pmd_qede_version.map
+++ b/drivers/net/qede/rte_pmd_qede_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ring/rte_pmd_ring_version.map b/drivers/net/ring/rte_pmd_ring_version.map
index ebb6be2733..29770fe3e4 100644
--- a/drivers/net/ring/rte_pmd_ring_version.map
+++ b/drivers/net/ring/rte_pmd_ring_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_from_ring;
diff --git a/drivers/net/sfc/rte_pmd_sfc_version.map b/drivers/net/sfc/rte_pmd_sfc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/sfc/rte_pmd_sfc_version.map
+++ b/drivers/net/sfc/rte_pmd_sfc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/softnic/rte_pmd_softnic_version.map b/drivers/net/softnic/rte_pmd_softnic_version.map
index 50f113d5a2..530d2e6b72 100644
--- a/drivers/net/softnic/rte_pmd_softnic_version.map
+++ b/drivers/net/softnic/rte_pmd_softnic_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_softnic_run;
diff --git a/drivers/net/szedata2/rte_pmd_szedata2_version.map b/drivers/net/szedata2/rte_pmd_szedata2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/szedata2/rte_pmd_szedata2_version.map
+++ b/drivers/net/szedata2/rte_pmd_szedata2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/tap/rte_pmd_tap_version.map b/drivers/net/tap/rte_pmd_tap_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/tap/rte_pmd_tap_version.map
+++ b/drivers/net/tap/rte_pmd_tap_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/thunderx/rte_pmd_thunderx_version.map b/drivers/net/thunderx/rte_pmd_thunderx_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/thunderx/rte_pmd_thunderx_version.map
+++ b/drivers/net/thunderx/rte_pmd_thunderx_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
+++ b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vhost/rte_pmd_vhost_version.map b/drivers/net/vhost/rte_pmd_vhost_version.map
index 16b591ccc4..634255829e 100644
--- a/drivers/net/vhost/rte_pmd_vhost_version.map
+++ b/drivers/net/vhost/rte_pmd_vhost_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_vhost_get_queue_event;
diff --git a/drivers/net/virtio/rte_pmd_virtio_version.map b/drivers/net/virtio/rte_pmd_virtio_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/virtio/rte_pmd_virtio_version.map
+++ b/drivers/net/virtio/rte_pmd_virtio_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
+++ b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
+++ b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
index ca6a0d7626..280c79ea9c 100644
--- a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
+++ b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_qdma_attr_get;
diff --git a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
+++ b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/ioat/rte_rawdev_ioat_version.map b/drivers/raw/ioat/rte_rawdev_ioat_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ioat/rte_rawdev_ioat_version.map
+++ b/drivers/raw/ioat/rte_rawdev_ioat_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/ntb/rte_rawdev_ntb_version.map b/drivers/raw/ntb/rte_rawdev_ntb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ntb/rte_rawdev_ntb_version.map
+++ b/drivers/raw/ntb/rte_rawdev_ntb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
+++ b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
index acdaf587d2..4a76d1d52d 100644
--- a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
+++ b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
@@ -1,4 +1,3 @@
DPDK_21 {
-
local: *;
};
diff --git a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
+++ b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/vdpa/ifc/rte_pmd_ifc_version.map b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/vdpa/ifc/rte_pmd_ifc_version.map
+++ b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
index c3daca8115..d97f2927bf 100644
--- a/lib/librte_acl/rte_acl_version.map
+++ b/lib/librte_acl/rte_acl_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_acl_add_rules;
diff --git a/lib/librte_bitratestats/rte_bitratestats_version.map b/lib/librte_bitratestats/rte_bitratestats_version.map
index 88fc2912db..463f78a53a 100644
--- a/lib/librte_bitratestats/rte_bitratestats_version.map
+++ b/lib/librte_bitratestats/rte_bitratestats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_stats_bitrate_calc;
diff --git a/lib/librte_cfgfile/rte_cfgfile_version.map b/lib/librte_cfgfile/rte_cfgfile_version.map
index 22c999fe16..180c42b717 100644
--- a/lib/librte_cfgfile/rte_cfgfile_version.map
+++ b/lib/librte_cfgfile/rte_cfgfile_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_cfgfile_add_entry;
diff --git a/lib/librte_cmdline/rte_cmdline_version.map b/lib/librte_cmdline/rte_cmdline_version.map
index 95fce812ff..a99104457f 100644
--- a/lib/librte_cmdline/rte_cmdline_version.map
+++ b/lib/librte_cmdline/rte_cmdline_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
cirbuf_add_buf_head;
diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map
index a7a78dc41f..02f6dcf724 100644
--- a/lib/librte_cryptodev/rte_cryptodev_version.map
+++ b/lib/librte_cryptodev/rte_cryptodev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_crypto_aead_algorithm_strings;
@@ -58,12 +58,11 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
+DPDK_20.0 {
global:
rte_cryptodev_info_get;
rte_cryptodev_sym_capability_get;
-} DPDK_20.0;
-
+};
EXPERIMENTAL {
global:
diff --git a/lib/librte_distributor/rte_distributor_version.map b/lib/librte_distributor/rte_distributor_version.map
index 1b7c643005..1ddcd01fe6 100644
--- a/lib/librte_distributor/rte_distributor_version.map
+++ b/lib/librte_distributor/rte_distributor_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_distributor_clear_returns;
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index bf0c17c233..0b18e2ef85 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
__rte_panic;
@@ -6,6 +6,7 @@ DPDK_20.0 {
eal_timer_source;
per_lcore__lcore_id;
per_lcore__rte_errno;
+ per_lcore__thread_id;
rte_bus_dump;
rte_bus_find;
rte_bus_find_by_device;
@@ -221,13 +222,6 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
- global:
-
- per_lcore__thread_id;
-
-} DPDK_20.0;
-
EXPERIMENTAL {
global:
diff --git a/lib/librte_efd/rte_efd_version.map b/lib/librte_efd/rte_efd_version.map
index e010eecfe4..425c0a85a9 100644
--- a/lib/librte_efd/rte_efd_version.map
+++ b/lib/librte_efd/rte_efd_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_efd_create;
diff --git a/lib/librte_ethdev/rte_ethdev_version.map b/lib/librte_ethdev/rte_ethdev_version.map
index 1212a17d32..8d9d6b1c67 100644
--- a/lib/librte_ethdev/rte_ethdev_version.map
+++ b/lib/librte_ethdev/rte_ethdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
_rte_eth_dev_callback_process;
diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map
index 91a62cd077..3d9d0ca054 100644
--- a/lib/librte_eventdev/rte_eventdev_version.map
+++ b/lib/librte_eventdev/rte_eventdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_event_crypto_adapter_caps_get;
diff --git a/lib/librte_gro/rte_gro_version.map b/lib/librte_gro/rte_gro_version.map
index 9f6fe79e57..19dc66b0d4 100644
--- a/lib/librte_gro/rte_gro_version.map
+++ b/lib/librte_gro/rte_gro_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_gro_ctx_create;
diff --git a/lib/librte_gso/rte_gso_version.map b/lib/librte_gso/rte_gso_version.map
index 8505a59c27..60aa1b54e4 100644
--- a/lib/librte_gso/rte_gso_version.map
+++ b/lib/librte_gso/rte_gso_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_gso_segment;
diff --git a/lib/librte_hash/rte_hash_version.map b/lib/librte_hash/rte_hash_version.map
index c2a909443d..c0db81014f 100644
--- a/lib/librte_hash/rte_hash_version.map
+++ b/lib/librte_hash/rte_hash_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_fbk_hash_create;
diff --git a/lib/librte_ip_frag/rte_ip_frag_version.map b/lib/librte_ip_frag/rte_ip_frag_version.map
index 5dd34f828c..82b308ddb0 100644
--- a/lib/librte_ip_frag/rte_ip_frag_version.map
+++ b/lib/librte_ip_frag/rte_ip_frag_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ip_frag_free_death_row;
diff --git a/lib/librte_jobstats/rte_jobstats_version.map b/lib/librte_jobstats/rte_jobstats_version.map
index dbd2664ae2..3e166ad548 100644
--- a/lib/librte_jobstats/rte_jobstats_version.map
+++ b/lib/librte_jobstats/rte_jobstats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_jobstats_abort;
diff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map
index 9cd3cedc54..a93da95f36 100644
--- a/lib/librte_kni/rte_kni_version.map
+++ b/lib/librte_kni/rte_kni_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_kni_alloc;
diff --git a/lib/librte_kvargs/rte_kvargs_version.map b/lib/librte_kvargs/rte_kvargs_version.map
index 3ba0f4b59c..ed375bf4a3 100644
--- a/lib/librte_kvargs/rte_kvargs_version.map
+++ b/lib/librte_kvargs/rte_kvargs_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_kvargs_count;
diff --git a/lib/librte_latencystats/rte_latencystats_version.map b/lib/librte_latencystats/rte_latencystats_version.map
index e04e63463f..0c4360ab43 100644
--- a/lib/librte_latencystats/rte_latencystats_version.map
+++ b/lib/librte_latencystats/rte_latencystats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_latencystats_get;
diff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map
index bfccd7eacc..b4d437cc75 100644
--- a/lib/librte_lpm/rte_lpm_version.map
+++ b/lib/librte_lpm/rte_lpm_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_lpm6_add;
diff --git a/lib/librte_mbuf/rte_mbuf_version.map b/lib/librte_mbuf/rte_mbuf_version.map
index ab161bcdc7..a011aaead3 100644
--- a/lib/librte_mbuf/rte_mbuf_version.map
+++ b/lib/librte_mbuf/rte_mbuf_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
__rte_pktmbuf_linearize;
diff --git a/lib/librte_member/rte_member_version.map b/lib/librte_member/rte_member_version.map
index 87780ae611..b8c6322e73 100644
--- a/lib/librte_member/rte_member_version.map
+++ b/lib/librte_member/rte_member_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_member_add;
diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map
index 826a0b8824..50e22ee020 100644
--- a/lib/librte_mempool/rte_mempool_version.map
+++ b/lib/librte_mempool/rte_mempool_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_mempool_audit;
@@ -31,12 +31,12 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
+DPDK_20.0 {
global:
rte_mempool_populate_iova;
rte_mempool_populate_virt;
-} DPDK_20.0;
+};
EXPERIMENTAL {
global:
diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
index 58859d4d76..e2a2607f28 100644
--- a/lib/librte_meter/rte_meter_version.map
+++ b/lib/librte_meter/rte_meter_version.map
@@ -1,24 +1,18 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_meter_srtcm_config;
rte_meter_srtcm_profile_config;
rte_meter_trtcm_config;
rte_meter_trtcm_profile_config;
+ rte_meter_trtcm_rfc4115_config;
+ rte_meter_trtcm_rfc4115_profile_config;
local: *;
};
-DPDK_21 {
- global:
-
- rte_meter_trtcm_rfc4115_config;
- rte_meter_trtcm_rfc4115_profile_config;
-
-} DPDK_20.0;
-
EXPERIMENTAL {
- global:
+ global:
rte_meter_trtcm_rfc4115_config;
rte_meter_trtcm_rfc4115_profile_config;
diff --git a/lib/librte_metrics/rte_metrics_version.map b/lib/librte_metrics/rte_metrics_version.map
index c88939b117..20f99cd19a 100644
--- a/lib/librte_metrics/rte_metrics_version.map
+++ b/lib/librte_metrics/rte_metrics_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_metrics_get_names;
diff --git a/lib/librte_net/rte_net_version.map b/lib/librte_net/rte_net_version.map
index 8a4e75a3a0..621f237945 100644
--- a/lib/librte_net/rte_net_version.map
+++ b/lib/librte_net/rte_net_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_random_addr;
diff --git a/lib/librte_pci/rte_pci_version.map b/lib/librte_pci/rte_pci_version.map
index 67eb845796..cd77c9dc9e 100644
--- a/lib/librte_pci/rte_pci_version.map
+++ b/lib/librte_pci/rte_pci_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
pci_map_resource;
diff --git a/lib/librte_pdump/rte_pdump_version.map b/lib/librte_pdump/rte_pdump_version.map
index 6d02ccce6d..2f9e952d0b 100644
--- a/lib/librte_pdump/rte_pdump_version.map
+++ b/lib/librte_pdump/rte_pdump_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pdump_disable;
diff --git a/lib/librte_pipeline/rte_pipeline_version.map b/lib/librte_pipeline/rte_pipeline_version.map
index 64d38afecd..9ed80eb041 100644
--- a/lib/librte_pipeline/rte_pipeline_version.map
+++ b/lib/librte_pipeline/rte_pipeline_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pipeline_ah_packet_drop;
diff --git a/lib/librte_port/rte_port_version.map b/lib/librte_port/rte_port_version.map
index 18c6154672..bd1fbb66b0 100644
--- a/lib/librte_port/rte_port_version.map
+++ b/lib/librte_port/rte_port_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_port_ethdev_reader_ops;
diff --git a/lib/librte_power/rte_power_version.map b/lib/librte_power/rte_power_version.map
index 00ee5753e2..69ca9af616 100644
--- a/lib/librte_power/rte_power_version.map
+++ b/lib/librte_power/rte_power_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_power_exit;
diff --git a/lib/librte_rawdev/rte_rawdev_version.map b/lib/librte_rawdev/rte_rawdev_version.map
index 63b54f598b..eb29a3ac0d 100644
--- a/lib/librte_rawdev/rte_rawdev_version.map
+++ b/lib/librte_rawdev/rte_rawdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_rawdev_close;
diff --git a/lib/librte_reorder/rte_reorder_version.map b/lib/librte_reorder/rte_reorder_version.map
index cf444062df..8c0220d324 100644
--- a/lib/librte_reorder/rte_reorder_version.map
+++ b/lib/librte_reorder/rte_reorder_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_reorder_create;
diff --git a/lib/librte_ring/rte_ring_version.map b/lib/librte_ring/rte_ring_version.map
index ac392f3ca9..e35d6b9712 100644
--- a/lib/librte_ring/rte_ring_version.map
+++ b/lib/librte_ring/rte_ring_version.map
@@ -1,21 +1,16 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ring_create;
+ rte_ring_create_elem;
rte_ring_dump;
rte_ring_free;
rte_ring_get_memsize;
+ rte_ring_get_memsize_elem;
rte_ring_init;
rte_ring_list_dump;
rte_ring_lookup;
+ rte_ring_reset;
local: *;
};
-
-DPDK_21 {
- global:
-
- rte_ring_create_elem;
- rte_ring_get_memsize_elem;
- rte_ring_reset;
-} DPDK_20.0;
diff --git a/lib/librte_sched/rte_sched_version.map b/lib/librte_sched/rte_sched_version.map
index cefd990367..3faef6f0a0 100644
--- a/lib/librte_sched/rte_sched_version.map
+++ b/lib/librte_sched/rte_sched_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_approx;
diff --git a/lib/librte_security/rte_security_version.map b/lib/librte_security/rte_security_version.map
index b07314bbf4..d84eec0a88 100644
--- a/lib/librte_security/rte_security_version.map
+++ b/lib/librte_security/rte_security_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_security_attach_session;
diff --git a/lib/librte_table/rte_table_version.map b/lib/librte_table/rte_table_version.map
index 40f72b1fe8..568a6c6a8f 100644
--- a/lib/librte_table/rte_table_version.map
+++ b/lib/librte_table/rte_table_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_table_acl_ops;
diff --git a/lib/librte_timer/rte_timer_version.map b/lib/librte_timer/rte_timer_version.map
index 4471cef92b..21e68ea7a2 100644
--- a/lib/librte_timer/rte_timer_version.map
+++ b/lib/librte_timer/rte_timer_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_timer_dump_stats;
diff --git a/lib/librte_vhost/rte_vhost_version.map b/lib/librte_vhost/rte_vhost_version.map
index 13ec53b638..20b4abcb4e 100644
--- a/lib/librte_vhost/rte_vhost_version.map
+++ b/lib/librte_vhost/rte_vhost_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vhost_avail_entries;
--
2.27.0
^ permalink raw reply [relevance 14%]
* [dpdk-dev] [PATCH v3 2/2] devtools: fix ABI update in map files
2020-08-11 9:58 8% ` [dpdk-dev] [PATCH v3 1/2] " Thomas Monjalon
@ 2020-08-11 9:58 12% ` Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-11 9:58 UTC (permalink / raw)
To: dev; +Cc: david.marchand, mdr, nhorman, kevin.laatz, bruce.richardson
The script was using the full ABI version, including the minor number,
to version the symbols in the map files.
It is fixed to use only the major number for symbol versioning.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
devtools/update_version_map_abi.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/devtools/update_version_map_abi.py b/devtools/update_version_map_abi.py
index 80a61641ed..10c3bc8098 100755
--- a/devtools/update_version_map_abi.py
+++ b/devtools/update_version_map_abi.py
@@ -105,9 +105,9 @@ def __parse_map_file(f_in):
return has_stable, stable_lines, experimental_lines, internal_lines
-def __generate_stable_abi(f_out, abi_version, lines):
+def __generate_stable_abi(f_out, abi_major, lines):
# print ABI version header
- print("DPDK_{} {{".format(abi_version), file=f_out)
+ print("DPDK_{} {{".format(abi_major), file=f_out)
# print global section if it exists
if lines:
@@ -186,6 +186,7 @@ def __main():
file=sys.stderr)
arg_parser.print_help()
sys.exit(1)
+ abi_major = parsed.abi_version.split('.')[0]
with open(parsed.map_file) as f_in:
has_stable, stable_lines, experimental_lines, internal_lines = __parse_map_file(f_in)
@@ -193,7 +194,7 @@ def __main():
with open(parsed.map_file, 'w') as f_out:
need_newline = has_stable and experimental_lines
if has_stable:
- __generate_stable_abi(f_out, parsed.abi_version, stable_lines)
+ __generate_stable_abi(f_out, abi_major, stable_lines)
if need_newline:
# separate sections with a newline
print(file=f_out)
--
2.27.0
^ permalink raw reply [relevance 12%]
* [dpdk-dev] [PATCH v3 1/2] version: 20.11-rc0
2020-08-10 15:15 9% [dpdk-dev] [PATCH] version: 20.11-rc0 Thomas Monjalon
2020-08-11 9:31 18% ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
@ 2020-08-11 9:58 8% ` Thomas Monjalon
2020-08-11 9:58 12% ` [dpdk-dev] [PATCH v3 2/2] devtools: fix ABI update in map files Thomas Monjalon
2020-08-11 11:27 14% ` [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0 Thomas Monjalon
2020-08-11 14:03 13% ` [dpdk-dev] [PATCH v5 " Thomas Monjalon
3 siblings, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-08-11 9:58 UTC (permalink / raw)
To: dev; +Cc: david.marchand, mdr, nhorman, kevin.laatz, bruce.richardson
Start a new release cycle with empty release notes.
The ABI version becomes 21.0.
The ABI major is back to normal, having only one number (21 vs 20.0).
The map files are updated to the new ABI major number (21).
Travis ABI check is disabled because compatibility is not preserved.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
v3: add minor number to ABI_VERSION and remove workaround in scripts
v2: bump major ABI number (including .map changes)
---
.travis.yml | 26 ----
ABI_VERSION | 2 +-
VERSION | 2 +-
config/meson.build | 5 +-
doc/guides/rel_notes/index.rst | 1 +
doc/guides/rel_notes/release_20_11.rst | 136 ++++++++++++++++++
.../rte_pmd_bbdev_fpga_5gnr_fec_version.map | 2 +-
.../rte_pmd_bbdev_fpga_lte_fec_version.map | 2 +-
.../null/rte_pmd_bbdev_null_version.map | 2 +-
.../rte_pmd_bbdev_turbo_sw_version.map | 2 +-
drivers/bus/ifpga/rte_bus_ifpga_version.map | 2 +-
drivers/bus/pci/rte_bus_pci_version.map | 2 +-
drivers/bus/vdev/rte_bus_vdev_version.map | 2 +-
drivers/bus/vmbus/rte_bus_vmbus_version.map | 2 +-
drivers/common/cpt/rte_common_cpt_version.map | 2 +-
.../common/iavf/rte_common_iavf_version.map | 4 +-
.../common/mlx5/rte_common_mlx5_version.map | 1 -
.../common/mvep/rte_common_mvep_version.map | 2 +-
.../octeontx/rte_common_octeontx_version.map | 2 +-
.../compress/isal/rte_pmd_isal_version.map | 2 +-
.../rte_pmd_octeontx_compress_version.map | 2 +-
drivers/compress/qat/rte_pmd_qat_version.map | 2 +-
.../compress/zlib/rte_pmd_zlib_version.map | 2 +-
.../aesni_gcm/rte_pmd_aesni_gcm_version.map | 2 +-
.../aesni_mb/rte_pmd_aesni_mb_version.map | 2 +-
.../crypto/armv8/rte_pmd_armv8_version.map | 2 +-
.../caam_jr/rte_pmd_caam_jr_version.map | 2 +-
drivers/crypto/ccp/rte_pmd_ccp_version.map | 2 +-
.../crypto/kasumi/rte_pmd_kasumi_version.map | 2 +-
.../crypto/mvsam/rte_pmd_mvsam_version.map | 2 +-
.../crypto/nitrox/rte_pmd_nitrox_version.map | 2 +-
.../null/rte_pmd_null_crypto_version.map | 2 +-
.../rte_pmd_octeontx_crypto_version.map | 2 +-
.../rte_pmd_octeontx2_crypto_version.map | 2 +-
.../openssl/rte_pmd_openssl_version.map | 2 +-
.../rte_pmd_crypto_scheduler_version.map | 2 +-
.../crypto/snow3g/rte_pmd_snow3g_version.map | 2 +-
.../virtio/rte_pmd_virtio_crypto_version.map | 2 +-
drivers/crypto/zuc/rte_pmd_zuc_version.map | 2 +-
.../event/dpaa/rte_pmd_dpaa_event_version.map | 2 +-
.../dpaa2/rte_pmd_dpaa2_event_version.map | 2 +-
.../event/dsw/rte_pmd_dsw_event_version.map | 2 +-
.../rte_pmd_octeontx_event_version.map | 2 +-
.../rte_pmd_octeontx2_event_version.map | 2 +-
.../event/opdl/rte_pmd_opdl_event_version.map | 2 +-
.../rte_pmd_skeleton_event_version.map | 2 +-
drivers/event/sw/rte_pmd_sw_event_version.map | 2 +-
.../bucket/rte_mempool_bucket_version.map | 2 +-
.../dpaa2/rte_mempool_dpaa2_version.map | 2 +-
.../octeontx/rte_mempool_octeontx_version.map | 2 +-
.../mempool/ring/rte_mempool_ring_version.map | 2 +-
.../stack/rte_mempool_stack_version.map | 2 +-
.../af_packet/rte_pmd_af_packet_version.map | 2 +-
drivers/net/af_xdp/rte_pmd_af_xdp_version.map | 2 +-
drivers/net/ark/rte_pmd_ark_version.map | 2 +-
.../net/atlantic/rte_pmd_atlantic_version.map | 2 +-
drivers/net/avp/rte_pmd_avp_version.map | 2 +-
drivers/net/axgbe/rte_pmd_axgbe_version.map | 2 +-
drivers/net/bnx2x/rte_pmd_bnx2x_version.map | 2 +-
drivers/net/bnxt/rte_pmd_bnxt_version.map | 2 +-
drivers/net/bonding/rte_pmd_bond_version.map | 2 +-
drivers/net/cxgbe/rte_pmd_cxgbe_version.map | 2 +-
drivers/net/dpaa/rte_pmd_dpaa_version.map | 2 +-
drivers/net/e1000/rte_pmd_e1000_version.map | 2 +-
drivers/net/ena/rte_pmd_ena_version.map | 2 +-
drivers/net/enetc/rte_pmd_enetc_version.map | 2 +-
drivers/net/enic/rte_pmd_enic_version.map | 2 +-
.../net/failsafe/rte_pmd_failsafe_version.map | 2 +-
drivers/net/fm10k/rte_pmd_fm10k_version.map | 2 +-
drivers/net/hinic/rte_pmd_hinic_version.map | 2 +-
drivers/net/hns3/rte_pmd_hns3_version.map | 2 +-
drivers/net/i40e/rte_pmd_i40e_version.map | 2 +-
drivers/net/iavf/rte_pmd_iavf_version.map | 2 +-
drivers/net/ice/rte_pmd_ice_version.map | 2 +-
drivers/net/ionic/rte_pmd_ionic_version.map | 1 -
drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map | 2 +-
drivers/net/ixgbe/rte_pmd_ixgbe_version.map | 2 +-
drivers/net/kni/rte_pmd_kni_version.map | 2 +-
.../net/liquidio/rte_pmd_liquidio_version.map | 2 +-
drivers/net/memif/rte_pmd_memif_version.map | 2 +-
drivers/net/mlx4/rte_pmd_mlx4_version.map | 2 +-
drivers/net/mlx5/rte_pmd_mlx5_version.map | 6 +-
drivers/net/mvneta/rte_pmd_mvneta_version.map | 2 +-
drivers/net/mvpp2/rte_pmd_mvpp2_version.map | 2 +-
drivers/net/netvsc/rte_pmd_netvsc_version.map | 2 +-
drivers/net/nfb/rte_pmd_nfb_version.map | 2 +-
drivers/net/nfp/rte_pmd_nfp_version.map | 2 +-
drivers/net/null/rte_pmd_null_version.map | 2 +-
.../net/octeontx/rte_pmd_octeontx_version.map | 2 +-
.../octeontx2/rte_pmd_octeontx2_version.map | 2 +-
drivers/net/pcap/rte_pmd_pcap_version.map | 2 +-
drivers/net/pfe/rte_pmd_pfe_version.map | 2 +-
drivers/net/qede/rte_pmd_qede_version.map | 2 +-
drivers/net/ring/rte_pmd_ring_version.map | 2 +-
drivers/net/sfc/rte_pmd_sfc_version.map | 2 +-
.../net/softnic/rte_pmd_softnic_version.map | 2 +-
.../net/szedata2/rte_pmd_szedata2_version.map | 2 +-
drivers/net/tap/rte_pmd_tap_version.map | 2 +-
.../net/thunderx/rte_pmd_thunderx_version.map | 2 +-
.../rte_pmd_vdev_netvsc_version.map | 2 +-
drivers/net/vhost/rte_pmd_vhost_version.map | 2 +-
drivers/net/virtio/rte_pmd_virtio_version.map | 2 +-
.../net/vmxnet3/rte_pmd_vmxnet3_version.map | 2 +-
.../rte_rawdev_dpaa2_cmdif_version.map | 2 +-
.../rte_rawdev_dpaa2_qdma_version.map | 2 +-
.../raw/ifpga/rte_rawdev_ifpga_version.map | 2 +-
drivers/raw/ioat/rte_rawdev_ioat_version.map | 2 +-
drivers/raw/ntb/rte_rawdev_ntb_version.map | 2 +-
.../rte_rawdev_octeontx2_dma_version.map | 2 +-
.../rte_rawdev_octeontx2_ep_version.map | 1 -
.../skeleton/rte_rawdev_skeleton_version.map | 2 +-
drivers/vdpa/ifc/rte_pmd_ifc_version.map | 2 +-
lib/librte_acl/rte_acl_version.map | 2 +-
.../rte_bitratestats_version.map | 2 +-
lib/librte_cfgfile/rte_cfgfile_version.map | 2 +-
lib/librte_cmdline/rte_cmdline_version.map | 2 +-
.../rte_cryptodev_version.map | 7 +-
.../rte_distributor_version.map | 2 +-
lib/librte_eal/rte_eal_version.map | 10 +-
lib/librte_efd/rte_efd_version.map | 2 +-
lib/librte_ethdev/rte_ethdev_version.map | 2 +-
lib/librte_eventdev/rte_eventdev_version.map | 2 +-
lib/librte_gro/rte_gro_version.map | 2 +-
lib/librte_gso/rte_gso_version.map | 2 +-
lib/librte_hash/rte_hash_version.map | 2 +-
lib/librte_ip_frag/rte_ip_frag_version.map | 2 +-
lib/librte_jobstats/rte_jobstats_version.map | 2 +-
lib/librte_kni/rte_kni_version.map | 2 +-
lib/librte_kvargs/rte_kvargs_version.map | 2 +-
.../rte_latencystats_version.map | 2 +-
lib/librte_lpm/rte_lpm_version.map | 2 +-
lib/librte_mbuf/rte_mbuf_version.map | 2 +-
lib/librte_member/rte_member_version.map | 2 +-
lib/librte_mempool/rte_mempool_version.map | 6 +-
lib/librte_meter/rte_meter_version.map | 14 +-
lib/librte_metrics/rte_metrics_version.map | 2 +-
lib/librte_net/rte_net_version.map | 2 +-
lib/librte_pci/rte_pci_version.map | 2 +-
lib/librte_pdump/rte_pdump_version.map | 2 +-
lib/librte_pipeline/rte_pipeline_version.map | 2 +-
lib/librte_port/rte_port_version.map | 2 +-
lib/librte_power/rte_power_version.map | 2 +-
lib/librte_rawdev/rte_rawdev_version.map | 2 +-
lib/librte_reorder/rte_reorder_version.map | 2 +-
lib/librte_ring/rte_ring_version.map | 13 +-
lib/librte_sched/rte_sched_version.map | 2 +-
lib/librte_security/rte_security_version.map | 2 +-
lib/librte_table/rte_table_version.map | 2 +-
lib/librte_timer/rte_timer_version.map | 2 +-
lib/librte_vhost/rte_vhost_version.map | 2 +-
150 files changed, 295 insertions(+), 208 deletions(-)
create mode 100644 doc/guides/rel_notes/release_20_11.rst
diff --git a/.travis.yml b/.travis.yml
index 14f8124233..d6eeab371d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,9 +2,6 @@
language: c
cache:
ccache: true
- directories:
- - libabigail
- - reference
dist: bionic
@@ -21,9 +18,6 @@ _aarch64_packages: &aarch64_packages
- *required_packages
- [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
-_libabigail_build_packages: &libabigail_build_packages
- - [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
-
_build_32b_packages: &build_32b_packages
- *required_packages
- [gcc-multilib]
@@ -34,10 +28,6 @@ _doc_packages: &doc_packages
before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
script: ./.ci/${TRAVIS_OS_NAME}-build.sh
-env:
- global:
- - REF_GIT_TAG=v20.05
-
jobs:
include:
# x86_64 gcc jobs
@@ -55,14 +45,6 @@ jobs:
packages:
- *required_packages
- *doc_packages
- - env: DEF_LIB="shared" ABI_CHECKS=1
- arch: amd64
- compiler: gcc
- addons:
- apt:
- packages:
- - *required_packages
- - *libabigail_build_packages
# x86_64 clang jobs
- env: DEF_LIB="static"
arch: amd64
@@ -116,14 +98,6 @@ jobs:
packages:
- *required_packages
- *doc_packages
- - env: DEF_LIB="shared" ABI_CHECKS=1
- arch: arm64
- compiler: gcc
- addons:
- apt:
- packages:
- - *required_packages
- - *libabigail_build_packages
# aarch64 clang jobs
- env: DEF_LIB="static"
arch: arm64
diff --git a/ABI_VERSION b/ABI_VERSION
index a9ac8dacb0..5f39e91446 100644
--- a/ABI_VERSION
+++ b/ABI_VERSION
@@ -1 +1 @@
-20.0.3
+21.0
diff --git a/VERSION b/VERSION
index 85e33446f8..8b0beab16a 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-20.08.0
+20.11.0
diff --git a/config/meson.build b/config/meson.build
index cff8b33dd2..6996e5cbea 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -29,10 +29,7 @@ abi_version = run_command(find_program('cat', 'more'),
# and have the soname be all but the final part of the abi_version.
# e.g. v20.1 => librte_foo.so.20.1
# sonames => librte_foo.so.20
-# e.g. v20.0.1 => librte_foo.so.20.0.1
-# sonames => librte_foo.so.20.0
-abi_va = abi_version.split('.')
-so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1]
+so_version = abi_version.split('.')[0]
# extract all version information into the build configuration
dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int())
diff --git a/doc/guides/rel_notes/index.rst b/doc/guides/rel_notes/index.rst
index 05c9d837a4..fb70d1a5f3 100644
--- a/doc/guides/rel_notes/index.rst
+++ b/doc/guides/rel_notes/index.rst
@@ -8,6 +8,7 @@ Release Notes
:maxdepth: 1
:numbered:
+ release_20_11
release_20_08
release_20_05
release_20_02
diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
new file mode 100644
index 0000000000..df227a1773
--- /dev/null
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -0,0 +1,136 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright 2020 The DPDK contributors
+
+.. include:: <isonum.txt>
+
+DPDK Release 20.11
+==================
+
+.. **Read this first.**
+
+ The text in the sections below explains how to update the release notes.
+
+ Use proper spelling, capitalization and punctuation in all sections.
+
+ Variable and config names should be quoted as fixed width text:
+ ``LIKE_THIS``.
+
+ Build the docs and view the output file to ensure the changes are correct::
+
+ make doc-guides-html
+ xdg-open build/doc/html/guides/rel_notes/release_20_11.html
+
+
+New Features
+------------
+
+.. This section should contain new features added in this release.
+ Sample format:
+
+ * **Add a title in the past tense with a full stop.**
+
+ Add a short 1-2 sentence description in the past tense.
+ The description should be enough to allow someone scanning
+ the release notes to understand the new feature.
+
+ If the feature adds a lot of sub-features you can use a bullet list
+ like this:
+
+ * Added feature foo to do something.
+ * Enhanced feature bar to do something else.
+
+ Refer to the previous release notes for examples.
+
+ Suggested order in release notes items:
+ * Core libs (EAL, mempool, ring, mbuf, buses)
+ * Device abstraction libs and PMDs
+ - ethdev (lib, PMDs)
+ - cryptodev (lib, PMDs)
+ - eventdev (lib, PMDs)
+ - etc
+ * Other libs
+ * Apps, Examples, Tools (if significant)
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Removed Items
+-------------
+
+.. This section should contain removed items in this release. Sample format:
+
+ * Add a short 1-2 sentence description of the removed item
+ in the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+API Changes
+-----------
+
+.. This section should contain API changes. Sample format:
+
+ * sample: Add a short 1-2 sentence description of the API change
+ which was announced in the previous releases and made in this release.
+ Start with a scope label like "ethdev:".
+ Use fixed width quotes for ``function_names`` or ``struct_names``.
+ Use the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+ABI Changes
+-----------
+
+.. This section should contain ABI changes. Sample format:
+
+ * sample: Add a short 1-2 sentence description of the ABI change
+ which was announced in the previous releases and made in this release.
+ Start with a scope label like "ethdev:".
+ Use fixed width quotes for ``function_names`` or ``struct_names``.
+ Use the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Known Issues
+------------
+
+.. This section should contain new known issues in this release. Sample format:
+
+ * **Add title in present tense with full stop.**
+
+ Add a short 1-2 sentence description of the known issue
+ in the present tense. Add information on any known workarounds.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Tested Platforms
+----------------
+
+.. This section should contain a list of platforms that were tested
+ with this release.
+
+ The format is:
+
+ * <vendor> platform with <vendor> <type of devices> combinations
+
+ * List of CPU
+ * List of OS
+ * List of devices
+ * Other relevant details...
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
diff --git a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
index b0fb9717fa..d723bc9b0e 100644
--- a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
+++ b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
index 6bcea2cc7f..a2ab086cd8 100644
--- a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
+++ b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/null/rte_pmd_bbdev_null_version.map b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/baseband/null/rte_pmd_bbdev_null_version.map
+++ b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
+++ b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/bus/ifpga/rte_bus_ifpga_version.map b/drivers/bus/ifpga/rte_bus_ifpga_version.map
index 05b4a28c1b..6e8f85da3c 100644
--- a/drivers/bus/ifpga/rte_bus_ifpga_version.map
+++ b/drivers/bus/ifpga/rte_bus_ifpga_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ifpga_driver_register;
diff --git a/drivers/bus/pci/rte_bus_pci_version.map b/drivers/bus/pci/rte_bus_pci_version.map
index 012d817e14..5b75d23671 100644
--- a/drivers/bus/pci/rte_bus_pci_version.map
+++ b/drivers/bus/pci/rte_bus_pci_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pci_dump;
diff --git a/drivers/bus/vdev/rte_bus_vdev_version.map b/drivers/bus/vdev/rte_bus_vdev_version.map
index 5abb10ecb0..61b6cefcee 100644
--- a/drivers/bus/vdev/rte_bus_vdev_version.map
+++ b/drivers/bus/vdev/rte_bus_vdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vdev_add_custom_scan;
diff --git a/drivers/bus/vmbus/rte_bus_vmbus_version.map b/drivers/bus/vmbus/rte_bus_vmbus_version.map
index cbaaebc06c..fa8e91c282 100644
--- a/drivers/bus/vmbus/rte_bus_vmbus_version.map
+++ b/drivers/bus/vmbus/rte_bus_vmbus_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vmbus_chan_close;
diff --git a/drivers/common/cpt/rte_common_cpt_version.map b/drivers/common/cpt/rte_common_cpt_version.map
index 8c65cde6cf..4d85021a87 100644
--- a/drivers/common/cpt/rte_common_cpt_version.map
+++ b/drivers/common/cpt/rte_common_cpt_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
cpt_pmd_ops_helper_asym_get_mlen;
diff --git a/drivers/common/iavf/rte_common_iavf_version.map b/drivers/common/iavf/rte_common_iavf_version.map
index 92ceac108d..44142499e0 100644
--- a/drivers/common/iavf/rte_common_iavf_version.map
+++ b/drivers/common/iavf/rte_common_iavf_version.map
@@ -1,11 +1,11 @@
DPDK_21 {
global:
- iavf_init_adminq;
- iavf_shutdown_adminq;
iavf_aq_send_msg_to_pf;
iavf_clean_arq_element;
+ iavf_init_adminq;
iavf_set_mac_type;
+ iavf_shutdown_adminq;
iavf_vf_parse_hw_config;
local: *;
diff --git a/drivers/common/mlx5/rte_common_mlx5_version.map b/drivers/common/mlx5/rte_common_mlx5_version.map
index 7729d0dd04..c4d57c08a7 100644
--- a/drivers/common/mlx5/rte_common_mlx5_version.map
+++ b/drivers/common/mlx5/rte_common_mlx5_version.map
@@ -93,4 +93,3 @@ INTERNAL {
mlx5_pci_driver_register;
};
-
diff --git a/drivers/common/mvep/rte_common_mvep_version.map b/drivers/common/mvep/rte_common_mvep_version.map
index 030928439d..e5af82c61d 100644
--- a/drivers/common/mvep/rte_common_mvep_version.map
+++ b/drivers/common/mvep/rte_common_mvep_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_mvep_deinit;
diff --git a/drivers/common/octeontx/rte_common_octeontx_version.map b/drivers/common/octeontx/rte_common_octeontx_version.map
index 5f6aa8bd3a..30f3fa65e0 100644
--- a/drivers/common/octeontx/rte_common_octeontx_version.map
+++ b/drivers/common/octeontx/rte_common_octeontx_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
octeontx_get_global_domain;
diff --git a/drivers/compress/isal/rte_pmd_isal_version.map b/drivers/compress/isal/rte_pmd_isal_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/isal/rte_pmd_isal_version.map
+++ b/drivers/compress/isal/rte_pmd_isal_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
+++ b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/qat/rte_pmd_qat_version.map b/drivers/compress/qat/rte_pmd_qat_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/qat/rte_pmd_qat_version.map
+++ b/drivers/compress/qat/rte_pmd_qat_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/zlib/rte_pmd_zlib_version.map b/drivers/compress/zlib/rte_pmd_zlib_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/zlib/rte_pmd_zlib_version.map
+++ b/drivers/compress/zlib/rte_pmd_zlib_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
+++ b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
+++ b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/armv8/rte_pmd_armv8_version.map b/drivers/crypto/armv8/rte_pmd_armv8_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/armv8/rte_pmd_armv8_version.map
+++ b/drivers/crypto/armv8/rte_pmd_armv8_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
+++ b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/ccp/rte_pmd_ccp_version.map b/drivers/crypto/ccp/rte_pmd_ccp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/ccp/rte_pmd_ccp_version.map
+++ b/drivers/crypto/ccp/rte_pmd_ccp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
+++ b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
+++ b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
+++ b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/null/rte_pmd_null_crypto_version.map b/drivers/crypto/null/rte_pmd_null_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/null/rte_pmd_null_crypto_version.map
+++ b/drivers/crypto/null/rte_pmd_null_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
+++ b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
+++ b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/openssl/rte_pmd_openssl_version.map b/drivers/crypto/openssl/rte_pmd_openssl_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/openssl/rte_pmd_openssl_version.map
+++ b/drivers/crypto/openssl/rte_pmd_openssl_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
index 077afedce7..ca6f102d9f 100644
--- a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
+++ b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_cryptodev_scheduler_load_user_scheduler;
diff --git a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
+++ b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
+++ b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/zuc/rte_pmd_zuc_version.map b/drivers/crypto/zuc/rte_pmd_zuc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/zuc/rte_pmd_zuc_version.map
+++ b/drivers/crypto/zuc/rte_pmd_zuc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
+++ b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
+++ b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dsw/rte_pmd_dsw_event_version.map b/drivers/event/dsw/rte_pmd_dsw_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dsw/rte_pmd_dsw_event_version.map
+++ b/drivers/event/dsw/rte_pmd_dsw_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
+++ b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
+++ b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/opdl/rte_pmd_opdl_event_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/opdl/rte_pmd_opdl_event_version.map
+++ b/drivers/event/opdl/rte_pmd_opdl_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
+++ b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/sw/rte_pmd_sw_event_version.map b/drivers/event/sw/rte_pmd_sw_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/sw/rte_pmd_sw_event_version.map
+++ b/drivers/event/sw/rte_pmd_sw_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/bucket/rte_mempool_bucket_version.map b/drivers/mempool/bucket/rte_mempool_bucket_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/bucket/rte_mempool_bucket_version.map
+++ b/drivers/mempool/bucket/rte_mempool_bucket_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index 686b024624..473b8c90e8 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_dpaa2_mbuf_from_buf_addr;
diff --git a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
+++ b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/ring/rte_mempool_ring_version.map b/drivers/mempool/ring/rte_mempool_ring_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/ring/rte_mempool_ring_version.map
+++ b/drivers/mempool/ring/rte_mempool_ring_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/stack/rte_mempool_stack_version.map b/drivers/mempool/stack/rte_mempool_stack_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/stack/rte_mempool_stack_version.map
+++ b/drivers/mempool/stack/rte_mempool_stack_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/af_packet/rte_pmd_af_packet_version.map b/drivers/net/af_packet/rte_pmd_af_packet_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/af_packet/rte_pmd_af_packet_version.map
+++ b/drivers/net/af_packet/rte_pmd_af_packet_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
+++ b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ark/rte_pmd_ark_version.map b/drivers/net/ark/rte_pmd_ark_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/ark/rte_pmd_ark_version.map
+++ b/drivers/net/ark/rte_pmd_ark_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/atlantic/rte_pmd_atlantic_version.map b/drivers/net/atlantic/rte_pmd_atlantic_version.map
index 9b04838d84..6e17832684 100644
--- a/drivers/net/atlantic/rte_pmd_atlantic_version.map
+++ b/drivers/net/atlantic/rte_pmd_atlantic_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/avp/rte_pmd_avp_version.map b/drivers/net/avp/rte_pmd_avp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/avp/rte_pmd_avp_version.map
+++ b/drivers/net/avp/rte_pmd_avp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/axgbe/rte_pmd_axgbe_version.map b/drivers/net/axgbe/rte_pmd_axgbe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/axgbe/rte_pmd_axgbe_version.map
+++ b/drivers/net/axgbe/rte_pmd_axgbe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
+++ b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/bnxt/rte_pmd_bnxt_version.map b/drivers/net/bnxt/rte_pmd_bnxt_version.map
index bb52562347..a050d86ab7 100644
--- a/drivers/net/bnxt/rte_pmd_bnxt_version.map
+++ b/drivers/net/bnxt/rte_pmd_bnxt_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_bnxt_get_vf_rx_status;
diff --git a/drivers/net/bonding/rte_pmd_bond_version.map b/drivers/net/bonding/rte_pmd_bond_version.map
index 270c7d5d55..df81ee74c1 100644
--- a/drivers/net/bonding/rte_pmd_bond_version.map
+++ b/drivers/net/bonding/rte_pmd_bond_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_bond_8023ad_agg_selection_get;
diff --git a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
+++ b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index 774aa0de45..87ce8f5b6c 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_dpaa_set_tx_loopback;
diff --git a/drivers/net/e1000/rte_pmd_e1000_version.map b/drivers/net/e1000/rte_pmd_e1000_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/e1000/rte_pmd_e1000_version.map
+++ b/drivers/net/e1000/rte_pmd_e1000_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ena/rte_pmd_ena_version.map b/drivers/net/ena/rte_pmd_ena_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/ena/rte_pmd_ena_version.map
+++ b/drivers/net/ena/rte_pmd_ena_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/enetc/rte_pmd_enetc_version.map b/drivers/net/enetc/rte_pmd_enetc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/enetc/rte_pmd_enetc_version.map
+++ b/drivers/net/enetc/rte_pmd_enetc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/enic/rte_pmd_enic_version.map b/drivers/net/enic/rte_pmd_enic_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/enic/rte_pmd_enic_version.map
+++ b/drivers/net/enic/rte_pmd_enic_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/failsafe/rte_pmd_failsafe_version.map b/drivers/net/failsafe/rte_pmd_failsafe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/failsafe/rte_pmd_failsafe_version.map
+++ b/drivers/net/failsafe/rte_pmd_failsafe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/fm10k/rte_pmd_fm10k_version.map b/drivers/net/fm10k/rte_pmd_fm10k_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/fm10k/rte_pmd_fm10k_version.map
+++ b/drivers/net/fm10k/rte_pmd_fm10k_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/hinic/rte_pmd_hinic_version.map b/drivers/net/hinic/rte_pmd_hinic_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/hinic/rte_pmd_hinic_version.map
+++ b/drivers/net/hinic/rte_pmd_hinic_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/hns3/rte_pmd_hns3_version.map b/drivers/net/hns3/rte_pmd_hns3_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/hns3/rte_pmd_hns3_version.map
+++ b/drivers/net/hns3/rte_pmd_hns3_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/i40e/rte_pmd_i40e_version.map b/drivers/net/i40e/rte_pmd_i40e_version.map
index f6cd3b3566..413c58cb21 100644
--- a/drivers/net/i40e/rte_pmd_i40e_version.map
+++ b/drivers/net/i40e/rte_pmd_i40e_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_i40e_add_vf_mac_addr;
diff --git a/drivers/net/iavf/rte_pmd_iavf_version.map b/drivers/net/iavf/rte_pmd_iavf_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/iavf/rte_pmd_iavf_version.map
+++ b/drivers/net/iavf/rte_pmd_iavf_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ice/rte_pmd_ice_version.map b/drivers/net/ice/rte_pmd_ice_version.map
index d04b194c13..91f40225e9 100644
--- a/drivers/net/ice/rte_pmd_ice_version.map
+++ b/drivers/net/ice/rte_pmd_ice_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ionic/rte_pmd_ionic_version.map b/drivers/net/ionic/rte_pmd_ionic_version.map
index acdaf587d2..4a76d1d52d 100644
--- a/drivers/net/ionic/rte_pmd_ionic_version.map
+++ b/drivers/net/ionic/rte_pmd_ionic_version.map
@@ -1,4 +1,3 @@
DPDK_21 {
-
local: *;
};
diff --git a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
index 7e348e99b1..d8cc1026e0 100644
--- a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
+++ b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
index 911f8083f1..9402802b04 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_ixgbe_bypass_event_show;
diff --git a/drivers/net/kni/rte_pmd_kni_version.map b/drivers/net/kni/rte_pmd_kni_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/kni/rte_pmd_kni_version.map
+++ b/drivers/net/kni/rte_pmd_kni_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/liquidio/rte_pmd_liquidio_version.map b/drivers/net/liquidio/rte_pmd_liquidio_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/liquidio/rte_pmd_liquidio_version.map
+++ b/drivers/net/liquidio/rte_pmd_liquidio_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/memif/rte_pmd_memif_version.map b/drivers/net/memif/rte_pmd_memif_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/memif/rte_pmd_memif_version.map
+++ b/drivers/net/memif/rte_pmd_memif_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mlx4/rte_pmd_mlx4_version.map b/drivers/net/mlx4/rte_pmd_mlx4_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mlx4/rte_pmd_mlx4_version.map
+++ b/drivers/net/mlx4/rte_pmd_mlx4_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mlx5/rte_pmd_mlx5_version.map b/drivers/net/mlx5/rte_pmd_mlx5_version.map
index c8b1031b02..bc1d3d06bf 100644
--- a/drivers/net/mlx5/rte_pmd_mlx5_version.map
+++ b/drivers/net/mlx5/rte_pmd_mlx5_version.map
@@ -1,10 +1,10 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
EXPERIMENTAL {
- global:
+ global:
- # added in 20.02
+ # added in 20.02
rte_pmd_mlx5_get_dyn_flag_names;
};
diff --git a/drivers/net/mvneta/rte_pmd_mvneta_version.map b/drivers/net/mvneta/rte_pmd_mvneta_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mvneta/rte_pmd_mvneta_version.map
+++ b/drivers/net/mvneta/rte_pmd_mvneta_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
+++ b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/netvsc/rte_pmd_netvsc_version.map b/drivers/net/netvsc/rte_pmd_netvsc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/netvsc/rte_pmd_netvsc_version.map
+++ b/drivers/net/netvsc/rte_pmd_netvsc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/nfb/rte_pmd_nfb_version.map b/drivers/net/nfb/rte_pmd_nfb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/nfb/rte_pmd_nfb_version.map
+++ b/drivers/net/nfb/rte_pmd_nfb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/nfp/rte_pmd_nfp_version.map b/drivers/net/nfp/rte_pmd_nfp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/nfp/rte_pmd_nfp_version.map
+++ b/drivers/net/nfp/rte_pmd_nfp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/null/rte_pmd_null_version.map b/drivers/net/null/rte_pmd_null_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/null/rte_pmd_null_version.map
+++ b/drivers/net/null/rte_pmd_null_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/octeontx/rte_pmd_octeontx_version.map b/drivers/net/octeontx/rte_pmd_octeontx_version.map
index f7cae02fac..6dda72890c 100644
--- a/drivers/net/octeontx/rte_pmd_octeontx_version.map
+++ b/drivers/net/octeontx/rte_pmd_octeontx_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_octeontx_pchan_map;
diff --git a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
+++ b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/pcap/rte_pmd_pcap_version.map b/drivers/net/pcap/rte_pmd_pcap_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/pcap/rte_pmd_pcap_version.map
+++ b/drivers/net/pcap/rte_pmd_pcap_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/pfe/rte_pmd_pfe_version.map b/drivers/net/pfe/rte_pmd_pfe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/pfe/rte_pmd_pfe_version.map
+++ b/drivers/net/pfe/rte_pmd_pfe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/qede/rte_pmd_qede_version.map b/drivers/net/qede/rte_pmd_qede_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/qede/rte_pmd_qede_version.map
+++ b/drivers/net/qede/rte_pmd_qede_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ring/rte_pmd_ring_version.map b/drivers/net/ring/rte_pmd_ring_version.map
index ebb6be2733..29770fe3e4 100644
--- a/drivers/net/ring/rte_pmd_ring_version.map
+++ b/drivers/net/ring/rte_pmd_ring_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_from_ring;
diff --git a/drivers/net/sfc/rte_pmd_sfc_version.map b/drivers/net/sfc/rte_pmd_sfc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/sfc/rte_pmd_sfc_version.map
+++ b/drivers/net/sfc/rte_pmd_sfc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/softnic/rte_pmd_softnic_version.map b/drivers/net/softnic/rte_pmd_softnic_version.map
index 50f113d5a2..530d2e6b72 100644
--- a/drivers/net/softnic/rte_pmd_softnic_version.map
+++ b/drivers/net/softnic/rte_pmd_softnic_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_softnic_run;
diff --git a/drivers/net/szedata2/rte_pmd_szedata2_version.map b/drivers/net/szedata2/rte_pmd_szedata2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/szedata2/rte_pmd_szedata2_version.map
+++ b/drivers/net/szedata2/rte_pmd_szedata2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/tap/rte_pmd_tap_version.map b/drivers/net/tap/rte_pmd_tap_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/tap/rte_pmd_tap_version.map
+++ b/drivers/net/tap/rte_pmd_tap_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/thunderx/rte_pmd_thunderx_version.map b/drivers/net/thunderx/rte_pmd_thunderx_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/thunderx/rte_pmd_thunderx_version.map
+++ b/drivers/net/thunderx/rte_pmd_thunderx_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
+++ b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vhost/rte_pmd_vhost_version.map b/drivers/net/vhost/rte_pmd_vhost_version.map
index 16b591ccc4..634255829e 100644
--- a/drivers/net/vhost/rte_pmd_vhost_version.map
+++ b/drivers/net/vhost/rte_pmd_vhost_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_vhost_get_queue_event;
diff --git a/drivers/net/virtio/rte_pmd_virtio_version.map b/drivers/net/virtio/rte_pmd_virtio_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/virtio/rte_pmd_virtio_version.map
+++ b/drivers/net/virtio/rte_pmd_virtio_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
+++ b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
+++ b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
index ca6a0d7626..280c79ea9c 100644
--- a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
+++ b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_qdma_attr_get;
diff --git a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
+++ b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/ioat/rte_rawdev_ioat_version.map b/drivers/raw/ioat/rte_rawdev_ioat_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ioat/rte_rawdev_ioat_version.map
+++ b/drivers/raw/ioat/rte_rawdev_ioat_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/ntb/rte_rawdev_ntb_version.map b/drivers/raw/ntb/rte_rawdev_ntb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ntb/rte_rawdev_ntb_version.map
+++ b/drivers/raw/ntb/rte_rawdev_ntb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
+++ b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
index acdaf587d2..4a76d1d52d 100644
--- a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
+++ b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
@@ -1,4 +1,3 @@
DPDK_21 {
-
local: *;
};
diff --git a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
+++ b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/vdpa/ifc/rte_pmd_ifc_version.map b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/vdpa/ifc/rte_pmd_ifc_version.map
+++ b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
index c3daca8115..d97f2927bf 100644
--- a/lib/librte_acl/rte_acl_version.map
+++ b/lib/librte_acl/rte_acl_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_acl_add_rules;
diff --git a/lib/librte_bitratestats/rte_bitratestats_version.map b/lib/librte_bitratestats/rte_bitratestats_version.map
index 88fc2912db..463f78a53a 100644
--- a/lib/librte_bitratestats/rte_bitratestats_version.map
+++ b/lib/librte_bitratestats/rte_bitratestats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_stats_bitrate_calc;
diff --git a/lib/librte_cfgfile/rte_cfgfile_version.map b/lib/librte_cfgfile/rte_cfgfile_version.map
index 22c999fe16..180c42b717 100644
--- a/lib/librte_cfgfile/rte_cfgfile_version.map
+++ b/lib/librte_cfgfile/rte_cfgfile_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_cfgfile_add_entry;
diff --git a/lib/librte_cmdline/rte_cmdline_version.map b/lib/librte_cmdline/rte_cmdline_version.map
index 95fce812ff..a99104457f 100644
--- a/lib/librte_cmdline/rte_cmdline_version.map
+++ b/lib/librte_cmdline/rte_cmdline_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
cirbuf_add_buf_head;
diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map
index a7a78dc41f..02f6dcf724 100644
--- a/lib/librte_cryptodev/rte_cryptodev_version.map
+++ b/lib/librte_cryptodev/rte_cryptodev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_crypto_aead_algorithm_strings;
@@ -58,12 +58,11 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
+DPDK_20.0 {
global:
rte_cryptodev_info_get;
rte_cryptodev_sym_capability_get;
-} DPDK_20.0;
-
+};
EXPERIMENTAL {
global:
diff --git a/lib/librte_distributor/rte_distributor_version.map b/lib/librte_distributor/rte_distributor_version.map
index 1b7c643005..1ddcd01fe6 100644
--- a/lib/librte_distributor/rte_distributor_version.map
+++ b/lib/librte_distributor/rte_distributor_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_distributor_clear_returns;
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index bf0c17c233..0b18e2ef85 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
__rte_panic;
@@ -6,6 +6,7 @@ DPDK_20.0 {
eal_timer_source;
per_lcore__lcore_id;
per_lcore__rte_errno;
+ per_lcore__thread_id;
rte_bus_dump;
rte_bus_find;
rte_bus_find_by_device;
@@ -221,13 +222,6 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
- global:
-
- per_lcore__thread_id;
-
-} DPDK_20.0;
-
EXPERIMENTAL {
global:
diff --git a/lib/librte_efd/rte_efd_version.map b/lib/librte_efd/rte_efd_version.map
index e010eecfe4..425c0a85a9 100644
--- a/lib/librte_efd/rte_efd_version.map
+++ b/lib/librte_efd/rte_efd_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_efd_create;
diff --git a/lib/librte_ethdev/rte_ethdev_version.map b/lib/librte_ethdev/rte_ethdev_version.map
index 1212a17d32..8d9d6b1c67 100644
--- a/lib/librte_ethdev/rte_ethdev_version.map
+++ b/lib/librte_ethdev/rte_ethdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
_rte_eth_dev_callback_process;
diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map
index 91a62cd077..3d9d0ca054 100644
--- a/lib/librte_eventdev/rte_eventdev_version.map
+++ b/lib/librte_eventdev/rte_eventdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_event_crypto_adapter_caps_get;
diff --git a/lib/librte_gro/rte_gro_version.map b/lib/librte_gro/rte_gro_version.map
index 9f6fe79e57..19dc66b0d4 100644
--- a/lib/librte_gro/rte_gro_version.map
+++ b/lib/librte_gro/rte_gro_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_gro_ctx_create;
diff --git a/lib/librte_gso/rte_gso_version.map b/lib/librte_gso/rte_gso_version.map
index 8505a59c27..60aa1b54e4 100644
--- a/lib/librte_gso/rte_gso_version.map
+++ b/lib/librte_gso/rte_gso_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_gso_segment;
diff --git a/lib/librte_hash/rte_hash_version.map b/lib/librte_hash/rte_hash_version.map
index c2a909443d..c0db81014f 100644
--- a/lib/librte_hash/rte_hash_version.map
+++ b/lib/librte_hash/rte_hash_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_fbk_hash_create;
diff --git a/lib/librte_ip_frag/rte_ip_frag_version.map b/lib/librte_ip_frag/rte_ip_frag_version.map
index 5dd34f828c..82b308ddb0 100644
--- a/lib/librte_ip_frag/rte_ip_frag_version.map
+++ b/lib/librte_ip_frag/rte_ip_frag_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ip_frag_free_death_row;
diff --git a/lib/librte_jobstats/rte_jobstats_version.map b/lib/librte_jobstats/rte_jobstats_version.map
index dbd2664ae2..3e166ad548 100644
--- a/lib/librte_jobstats/rte_jobstats_version.map
+++ b/lib/librte_jobstats/rte_jobstats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_jobstats_abort;
diff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map
index 9cd3cedc54..a93da95f36 100644
--- a/lib/librte_kni/rte_kni_version.map
+++ b/lib/librte_kni/rte_kni_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_kni_alloc;
diff --git a/lib/librte_kvargs/rte_kvargs_version.map b/lib/librte_kvargs/rte_kvargs_version.map
index 3ba0f4b59c..ed375bf4a3 100644
--- a/lib/librte_kvargs/rte_kvargs_version.map
+++ b/lib/librte_kvargs/rte_kvargs_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_kvargs_count;
diff --git a/lib/librte_latencystats/rte_latencystats_version.map b/lib/librte_latencystats/rte_latencystats_version.map
index e04e63463f..0c4360ab43 100644
--- a/lib/librte_latencystats/rte_latencystats_version.map
+++ b/lib/librte_latencystats/rte_latencystats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_latencystats_get;
diff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map
index bfccd7eacc..b4d437cc75 100644
--- a/lib/librte_lpm/rte_lpm_version.map
+++ b/lib/librte_lpm/rte_lpm_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_lpm6_add;
diff --git a/lib/librte_mbuf/rte_mbuf_version.map b/lib/librte_mbuf/rte_mbuf_version.map
index ab161bcdc7..a011aaead3 100644
--- a/lib/librte_mbuf/rte_mbuf_version.map
+++ b/lib/librte_mbuf/rte_mbuf_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
__rte_pktmbuf_linearize;
diff --git a/lib/librte_member/rte_member_version.map b/lib/librte_member/rte_member_version.map
index 87780ae611..b8c6322e73 100644
--- a/lib/librte_member/rte_member_version.map
+++ b/lib/librte_member/rte_member_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_member_add;
diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map
index 826a0b8824..50e22ee020 100644
--- a/lib/librte_mempool/rte_mempool_version.map
+++ b/lib/librte_mempool/rte_mempool_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_mempool_audit;
@@ -31,12 +31,12 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
+DPDK_20.0 {
global:
rte_mempool_populate_iova;
rte_mempool_populate_virt;
-} DPDK_20.0;
+};
EXPERIMENTAL {
global:
diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
index 58859d4d76..e2a2607f28 100644
--- a/lib/librte_meter/rte_meter_version.map
+++ b/lib/librte_meter/rte_meter_version.map
@@ -1,24 +1,18 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_meter_srtcm_config;
rte_meter_srtcm_profile_config;
rte_meter_trtcm_config;
rte_meter_trtcm_profile_config;
+ rte_meter_trtcm_rfc4115_config;
+ rte_meter_trtcm_rfc4115_profile_config;
local: *;
};
-DPDK_21 {
- global:
-
- rte_meter_trtcm_rfc4115_config;
- rte_meter_trtcm_rfc4115_profile_config;
-
-} DPDK_20.0;
-
EXPERIMENTAL {
- global:
+ global:
rte_meter_trtcm_rfc4115_config;
rte_meter_trtcm_rfc4115_profile_config;
diff --git a/lib/librte_metrics/rte_metrics_version.map b/lib/librte_metrics/rte_metrics_version.map
index c88939b117..20f99cd19a 100644
--- a/lib/librte_metrics/rte_metrics_version.map
+++ b/lib/librte_metrics/rte_metrics_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_metrics_get_names;
diff --git a/lib/librte_net/rte_net_version.map b/lib/librte_net/rte_net_version.map
index 8a4e75a3a0..621f237945 100644
--- a/lib/librte_net/rte_net_version.map
+++ b/lib/librte_net/rte_net_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_random_addr;
diff --git a/lib/librte_pci/rte_pci_version.map b/lib/librte_pci/rte_pci_version.map
index 67eb845796..cd77c9dc9e 100644
--- a/lib/librte_pci/rte_pci_version.map
+++ b/lib/librte_pci/rte_pci_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
pci_map_resource;
diff --git a/lib/librte_pdump/rte_pdump_version.map b/lib/librte_pdump/rte_pdump_version.map
index 6d02ccce6d..2f9e952d0b 100644
--- a/lib/librte_pdump/rte_pdump_version.map
+++ b/lib/librte_pdump/rte_pdump_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pdump_disable;
diff --git a/lib/librte_pipeline/rte_pipeline_version.map b/lib/librte_pipeline/rte_pipeline_version.map
index 64d38afecd..9ed80eb041 100644
--- a/lib/librte_pipeline/rte_pipeline_version.map
+++ b/lib/librte_pipeline/rte_pipeline_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pipeline_ah_packet_drop;
diff --git a/lib/librte_port/rte_port_version.map b/lib/librte_port/rte_port_version.map
index 18c6154672..bd1fbb66b0 100644
--- a/lib/librte_port/rte_port_version.map
+++ b/lib/librte_port/rte_port_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_port_ethdev_reader_ops;
diff --git a/lib/librte_power/rte_power_version.map b/lib/librte_power/rte_power_version.map
index 00ee5753e2..69ca9af616 100644
--- a/lib/librte_power/rte_power_version.map
+++ b/lib/librte_power/rte_power_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_power_exit;
diff --git a/lib/librte_rawdev/rte_rawdev_version.map b/lib/librte_rawdev/rte_rawdev_version.map
index 63b54f598b..eb29a3ac0d 100644
--- a/lib/librte_rawdev/rte_rawdev_version.map
+++ b/lib/librte_rawdev/rte_rawdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_rawdev_close;
diff --git a/lib/librte_reorder/rte_reorder_version.map b/lib/librte_reorder/rte_reorder_version.map
index cf444062df..8c0220d324 100644
--- a/lib/librte_reorder/rte_reorder_version.map
+++ b/lib/librte_reorder/rte_reorder_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_reorder_create;
diff --git a/lib/librte_ring/rte_ring_version.map b/lib/librte_ring/rte_ring_version.map
index ac392f3ca9..e35d6b9712 100644
--- a/lib/librte_ring/rte_ring_version.map
+++ b/lib/librte_ring/rte_ring_version.map
@@ -1,21 +1,16 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ring_create;
+ rte_ring_create_elem;
rte_ring_dump;
rte_ring_free;
rte_ring_get_memsize;
+ rte_ring_get_memsize_elem;
rte_ring_init;
rte_ring_list_dump;
rte_ring_lookup;
+ rte_ring_reset;
local: *;
};
-
-DPDK_21 {
- global:
-
- rte_ring_create_elem;
- rte_ring_get_memsize_elem;
- rte_ring_reset;
-} DPDK_20.0;
diff --git a/lib/librte_sched/rte_sched_version.map b/lib/librte_sched/rte_sched_version.map
index cefd990367..3faef6f0a0 100644
--- a/lib/librte_sched/rte_sched_version.map
+++ b/lib/librte_sched/rte_sched_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_approx;
diff --git a/lib/librte_security/rte_security_version.map b/lib/librte_security/rte_security_version.map
index b07314bbf4..d84eec0a88 100644
--- a/lib/librte_security/rte_security_version.map
+++ b/lib/librte_security/rte_security_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_security_attach_session;
diff --git a/lib/librte_table/rte_table_version.map b/lib/librte_table/rte_table_version.map
index 40f72b1fe8..568a6c6a8f 100644
--- a/lib/librte_table/rte_table_version.map
+++ b/lib/librte_table/rte_table_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_table_acl_ops;
diff --git a/lib/librte_timer/rte_timer_version.map b/lib/librte_timer/rte_timer_version.map
index 4471cef92b..21e68ea7a2 100644
--- a/lib/librte_timer/rte_timer_version.map
+++ b/lib/librte_timer/rte_timer_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_timer_dump_stats;
diff --git a/lib/librte_vhost/rte_vhost_version.map b/lib/librte_vhost/rte_vhost_version.map
index 13ec53b638..20b4abcb4e 100644
--- a/lib/librte_vhost/rte_vhost_version.map
+++ b/lib/librte_vhost/rte_vhost_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vhost_avail_entries;
--
2.27.0
^ permalink raw reply [relevance 8%]
* [dpdk-dev] [PATCH v2] version: 20.11-rc0
2020-08-10 15:15 9% [dpdk-dev] [PATCH] version: 20.11-rc0 Thomas Monjalon
@ 2020-08-11 9:31 18% ` Thomas Monjalon
2020-08-11 9:58 8% ` [dpdk-dev] [PATCH v3 1/2] " Thomas Monjalon
` (2 subsequent siblings)
3 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-11 9:31 UTC (permalink / raw)
To: dev; +Cc: david.marchand, mdr, nhorman, kevin.laatz, bruce.richardson
Start a new release cycle with empty release notes.
The ABI version becomes 21.0.
The map files are updated to the new ABI major number (21).
Travis ABI check is disabled because compatibility is not preserved.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
v2: bump major ABI number (including .map changes)
---
.travis.yml | 26 ----
ABI_VERSION | 2 +-
VERSION | 2 +-
config/meson.build | 5 +-
devtools/update-abi.sh | 4 +-
devtools/update_version_map_abi.py | 4 +-
doc/guides/rel_notes/index.rst | 1 +
doc/guides/rel_notes/release_20_11.rst | 136 ++++++++++++++++++
.../rte_pmd_bbdev_fpga_5gnr_fec_version.map | 2 +-
.../rte_pmd_bbdev_fpga_lte_fec_version.map | 2 +-
.../null/rte_pmd_bbdev_null_version.map | 2 +-
.../rte_pmd_bbdev_turbo_sw_version.map | 2 +-
drivers/bus/ifpga/rte_bus_ifpga_version.map | 2 +-
drivers/bus/pci/rte_bus_pci_version.map | 2 +-
drivers/bus/vdev/rte_bus_vdev_version.map | 2 +-
drivers/bus/vmbus/rte_bus_vmbus_version.map | 2 +-
drivers/common/cpt/rte_common_cpt_version.map | 2 +-
.../common/iavf/rte_common_iavf_version.map | 4 +-
.../common/mlx5/rte_common_mlx5_version.map | 1 -
.../common/mvep/rte_common_mvep_version.map | 2 +-
.../octeontx/rte_common_octeontx_version.map | 2 +-
.../compress/isal/rte_pmd_isal_version.map | 2 +-
.../rte_pmd_octeontx_compress_version.map | 2 +-
drivers/compress/qat/rte_pmd_qat_version.map | 2 +-
.../compress/zlib/rte_pmd_zlib_version.map | 2 +-
.../aesni_gcm/rte_pmd_aesni_gcm_version.map | 2 +-
.../aesni_mb/rte_pmd_aesni_mb_version.map | 2 +-
.../crypto/armv8/rte_pmd_armv8_version.map | 2 +-
.../caam_jr/rte_pmd_caam_jr_version.map | 2 +-
drivers/crypto/ccp/rte_pmd_ccp_version.map | 2 +-
.../crypto/kasumi/rte_pmd_kasumi_version.map | 2 +-
.../crypto/mvsam/rte_pmd_mvsam_version.map | 2 +-
.../crypto/nitrox/rte_pmd_nitrox_version.map | 2 +-
.../null/rte_pmd_null_crypto_version.map | 2 +-
.../rte_pmd_octeontx_crypto_version.map | 2 +-
.../rte_pmd_octeontx2_crypto_version.map | 2 +-
.../openssl/rte_pmd_openssl_version.map | 2 +-
.../rte_pmd_crypto_scheduler_version.map | 2 +-
.../crypto/snow3g/rte_pmd_snow3g_version.map | 2 +-
.../virtio/rte_pmd_virtio_crypto_version.map | 2 +-
drivers/crypto/zuc/rte_pmd_zuc_version.map | 2 +-
.../event/dpaa/rte_pmd_dpaa_event_version.map | 2 +-
.../dpaa2/rte_pmd_dpaa2_event_version.map | 2 +-
.../event/dsw/rte_pmd_dsw_event_version.map | 2 +-
.../rte_pmd_octeontx_event_version.map | 2 +-
.../rte_pmd_octeontx2_event_version.map | 2 +-
.../event/opdl/rte_pmd_opdl_event_version.map | 2 +-
.../rte_pmd_skeleton_event_version.map | 2 +-
drivers/event/sw/rte_pmd_sw_event_version.map | 2 +-
.../bucket/rte_mempool_bucket_version.map | 2 +-
.../dpaa2/rte_mempool_dpaa2_version.map | 2 +-
.../octeontx/rte_mempool_octeontx_version.map | 2 +-
.../mempool/ring/rte_mempool_ring_version.map | 2 +-
.../stack/rte_mempool_stack_version.map | 2 +-
.../af_packet/rte_pmd_af_packet_version.map | 2 +-
drivers/net/af_xdp/rte_pmd_af_xdp_version.map | 2 +-
drivers/net/ark/rte_pmd_ark_version.map | 2 +-
.../net/atlantic/rte_pmd_atlantic_version.map | 2 +-
drivers/net/avp/rte_pmd_avp_version.map | 2 +-
drivers/net/axgbe/rte_pmd_axgbe_version.map | 2 +-
drivers/net/bnx2x/rte_pmd_bnx2x_version.map | 2 +-
drivers/net/bnxt/rte_pmd_bnxt_version.map | 2 +-
drivers/net/bonding/rte_pmd_bond_version.map | 2 +-
drivers/net/cxgbe/rte_pmd_cxgbe_version.map | 2 +-
drivers/net/dpaa/rte_pmd_dpaa_version.map | 2 +-
drivers/net/e1000/rte_pmd_e1000_version.map | 2 +-
drivers/net/ena/rte_pmd_ena_version.map | 2 +-
drivers/net/enetc/rte_pmd_enetc_version.map | 2 +-
drivers/net/enic/rte_pmd_enic_version.map | 2 +-
.../net/failsafe/rte_pmd_failsafe_version.map | 2 +-
drivers/net/fm10k/rte_pmd_fm10k_version.map | 2 +-
drivers/net/hinic/rte_pmd_hinic_version.map | 2 +-
drivers/net/hns3/rte_pmd_hns3_version.map | 2 +-
drivers/net/i40e/rte_pmd_i40e_version.map | 2 +-
drivers/net/iavf/rte_pmd_iavf_version.map | 2 +-
drivers/net/ice/rte_pmd_ice_version.map | 2 +-
drivers/net/ionic/rte_pmd_ionic_version.map | 1 -
drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map | 2 +-
drivers/net/ixgbe/rte_pmd_ixgbe_version.map | 2 +-
drivers/net/kni/rte_pmd_kni_version.map | 2 +-
.../net/liquidio/rte_pmd_liquidio_version.map | 2 +-
drivers/net/memif/rte_pmd_memif_version.map | 2 +-
drivers/net/mlx4/rte_pmd_mlx4_version.map | 2 +-
drivers/net/mlx5/rte_pmd_mlx5_version.map | 6 +-
drivers/net/mvneta/rte_pmd_mvneta_version.map | 2 +-
drivers/net/mvpp2/rte_pmd_mvpp2_version.map | 2 +-
drivers/net/netvsc/rte_pmd_netvsc_version.map | 2 +-
drivers/net/nfb/rte_pmd_nfb_version.map | 2 +-
drivers/net/nfp/rte_pmd_nfp_version.map | 2 +-
drivers/net/null/rte_pmd_null_version.map | 2 +-
.../net/octeontx/rte_pmd_octeontx_version.map | 2 +-
.../octeontx2/rte_pmd_octeontx2_version.map | 2 +-
drivers/net/pcap/rte_pmd_pcap_version.map | 2 +-
drivers/net/pfe/rte_pmd_pfe_version.map | 2 +-
drivers/net/qede/rte_pmd_qede_version.map | 2 +-
drivers/net/ring/rte_pmd_ring_version.map | 2 +-
drivers/net/sfc/rte_pmd_sfc_version.map | 2 +-
.../net/softnic/rte_pmd_softnic_version.map | 2 +-
.../net/szedata2/rte_pmd_szedata2_version.map | 2 +-
drivers/net/tap/rte_pmd_tap_version.map | 2 +-
.../net/thunderx/rte_pmd_thunderx_version.map | 2 +-
.../rte_pmd_vdev_netvsc_version.map | 2 +-
drivers/net/vhost/rte_pmd_vhost_version.map | 2 +-
drivers/net/virtio/rte_pmd_virtio_version.map | 2 +-
.../net/vmxnet3/rte_pmd_vmxnet3_version.map | 2 +-
.../rte_rawdev_dpaa2_cmdif_version.map | 2 +-
.../rte_rawdev_dpaa2_qdma_version.map | 2 +-
.../raw/ifpga/rte_rawdev_ifpga_version.map | 2 +-
drivers/raw/ioat/rte_rawdev_ioat_version.map | 2 +-
drivers/raw/ntb/rte_rawdev_ntb_version.map | 2 +-
.../rte_rawdev_octeontx2_dma_version.map | 2 +-
.../rte_rawdev_octeontx2_ep_version.map | 1 -
.../skeleton/rte_rawdev_skeleton_version.map | 2 +-
drivers/vdpa/ifc/rte_pmd_ifc_version.map | 2 +-
lib/librte_acl/rte_acl_version.map | 2 +-
.../rte_bitratestats_version.map | 2 +-
lib/librte_cfgfile/rte_cfgfile_version.map | 2 +-
lib/librte_cmdline/rte_cmdline_version.map | 2 +-
.../rte_cryptodev_version.map | 7 +-
.../rte_distributor_version.map | 2 +-
lib/librte_eal/rte_eal_version.map | 10 +-
lib/librte_efd/rte_efd_version.map | 2 +-
lib/librte_ethdev/rte_ethdev_version.map | 2 +-
lib/librte_eventdev/rte_eventdev_version.map | 2 +-
lib/librte_gro/rte_gro_version.map | 2 +-
lib/librte_gso/rte_gso_version.map | 2 +-
lib/librte_hash/rte_hash_version.map | 2 +-
lib/librte_ip_frag/rte_ip_frag_version.map | 2 +-
lib/librte_jobstats/rte_jobstats_version.map | 2 +-
lib/librte_kni/rte_kni_version.map | 2 +-
lib/librte_kvargs/rte_kvargs_version.map | 2 +-
.../rte_latencystats_version.map | 2 +-
lib/librte_lpm/rte_lpm_version.map | 2 +-
lib/librte_mbuf/rte_mbuf_version.map | 2 +-
lib/librte_member/rte_member_version.map | 2 +-
lib/librte_mempool/rte_mempool_version.map | 6 +-
lib/librte_meter/rte_meter_version.map | 14 +-
lib/librte_metrics/rte_metrics_version.map | 2 +-
lib/librte_net/rte_net_version.map | 2 +-
lib/librte_pci/rte_pci_version.map | 2 +-
lib/librte_pdump/rte_pdump_version.map | 2 +-
lib/librte_pipeline/rte_pipeline_version.map | 2 +-
lib/librte_port/rte_port_version.map | 2 +-
lib/librte_power/rte_power_version.map | 2 +-
lib/librte_rawdev/rte_rawdev_version.map | 2 +-
lib/librte_reorder/rte_reorder_version.map | 2 +-
lib/librte_ring/rte_ring_version.map | 13 +-
lib/librte_sched/rte_sched_version.map | 2 +-
lib/librte_security/rte_security_version.map | 2 +-
lib/librte_table/rte_table_version.map | 2 +-
lib/librte_timer/rte_timer_version.map | 2 +-
lib/librte_vhost/rte_vhost_version.map | 2 +-
152 files changed, 299 insertions(+), 212 deletions(-)
create mode 100644 doc/guides/rel_notes/release_20_11.rst
diff --git a/.travis.yml b/.travis.yml
index 14f8124233..d6eeab371d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,9 +2,6 @@
language: c
cache:
ccache: true
- directories:
- - libabigail
- - reference
dist: bionic
@@ -21,9 +18,6 @@ _aarch64_packages: &aarch64_packages
- *required_packages
- [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
-_libabigail_build_packages: &libabigail_build_packages
- - [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
-
_build_32b_packages: &build_32b_packages
- *required_packages
- [gcc-multilib]
@@ -34,10 +28,6 @@ _doc_packages: &doc_packages
before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
script: ./.ci/${TRAVIS_OS_NAME}-build.sh
-env:
- global:
- - REF_GIT_TAG=v20.05
-
jobs:
include:
# x86_64 gcc jobs
@@ -55,14 +45,6 @@ jobs:
packages:
- *required_packages
- *doc_packages
- - env: DEF_LIB="shared" ABI_CHECKS=1
- arch: amd64
- compiler: gcc
- addons:
- apt:
- packages:
- - *required_packages
- - *libabigail_build_packages
# x86_64 clang jobs
- env: DEF_LIB="static"
arch: amd64
@@ -116,14 +98,6 @@ jobs:
packages:
- *required_packages
- *doc_packages
- - env: DEF_LIB="shared" ABI_CHECKS=1
- arch: arm64
- compiler: gcc
- addons:
- apt:
- packages:
- - *required_packages
- - *libabigail_build_packages
# aarch64 clang jobs
- env: DEF_LIB="static"
arch: arm64
diff --git a/ABI_VERSION b/ABI_VERSION
index a9ac8dacb0..aabe6ec390 100644
--- a/ABI_VERSION
+++ b/ABI_VERSION
@@ -1 +1 @@
-20.0.3
+21
diff --git a/VERSION b/VERSION
index 85e33446f8..8b0beab16a 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-20.08.0
+20.11.0
diff --git a/config/meson.build b/config/meson.build
index cff8b33dd2..6996e5cbea 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -29,10 +29,7 @@ abi_version = run_command(find_program('cat', 'more'),
# and have the soname be all but the final part of the abi_version.
# e.g. v20.1 => librte_foo.so.20.1
# sonames => librte_foo.so.20
-# e.g. v20.0.1 => librte_foo.so.20.0.1
-# sonames => librte_foo.so.20.0
-abi_va = abi_version.split('.')
-so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1]
+so_version = abi_version.split('.')[0]
# extract all version information into the build configuration
dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int())
diff --git a/devtools/update-abi.sh b/devtools/update-abi.sh
index b9b859a3e9..cdc1d1b13f 100755
--- a/devtools/update-abi.sh
+++ b/devtools/update-abi.sh
@@ -8,7 +8,7 @@ update_path="lib drivers"
# check ABI version format string
check_abi_version() {
- echo $1 | grep -q -e "^[[:digit:]]\{1,2\}\.[[:digit:]]\{1,2\}$"
+ echo $1 | grep -q -e "^[[:digit:]]\{2\}$"
}
if [ -z "$1" ]; then
@@ -20,7 +20,7 @@ fi
# check version string format
if ! check_abi_version $abi_version ; then
# output to stderr
- >&2 echo "ABI version must be formatted as MAJOR.MINOR version"
+ >&2 echo "ABI version must be formatted as MAJOR version only"
exit 1
fi
diff --git a/devtools/update_version_map_abi.py b/devtools/update_version_map_abi.py
index 80a61641ed..efa1b2c613 100755
--- a/devtools/update_version_map_abi.py
+++ b/devtools/update_version_map_abi.py
@@ -171,7 +171,7 @@ def __main():
help='path to linker version script file '
'(pattern: *version.map)')
arg_parser.add_argument("abi_version", type=str,
- help='target ABI version (pattern: MAJOR.MINOR)')
+ help='target ABI version (only MAJOR number)')
parsed = arg_parser.parse_args()
@@ -181,7 +181,7 @@ def __main():
arg_parser.print_help()
sys.exit(1)
- if not re.match(r"\d{1,2}\.\d{1,2}", parsed.abi_version):
+ if not re.match(r"\d{2}", parsed.abi_version):
print("Invalid ABI version: {}".format(parsed.abi_version),
file=sys.stderr)
arg_parser.print_help()
diff --git a/doc/guides/rel_notes/index.rst b/doc/guides/rel_notes/index.rst
index 05c9d837a4..fb70d1a5f3 100644
--- a/doc/guides/rel_notes/index.rst
+++ b/doc/guides/rel_notes/index.rst
@@ -8,6 +8,7 @@ Release Notes
:maxdepth: 1
:numbered:
+ release_20_11
release_20_08
release_20_05
release_20_02
diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
new file mode 100644
index 0000000000..df227a1773
--- /dev/null
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -0,0 +1,136 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright 2020 The DPDK contributors
+
+.. include:: <isonum.txt>
+
+DPDK Release 20.11
+==================
+
+.. **Read this first.**
+
+ The text in the sections below explains how to update the release notes.
+
+ Use proper spelling, capitalization and punctuation in all sections.
+
+ Variable and config names should be quoted as fixed width text:
+ ``LIKE_THIS``.
+
+ Build the docs and view the output file to ensure the changes are correct::
+
+ make doc-guides-html
+ xdg-open build/doc/html/guides/rel_notes/release_20_11.html
+
+
+New Features
+------------
+
+.. This section should contain new features added in this release.
+ Sample format:
+
+ * **Add a title in the past tense with a full stop.**
+
+ Add a short 1-2 sentence description in the past tense.
+ The description should be enough to allow someone scanning
+ the release notes to understand the new feature.
+
+ If the feature adds a lot of sub-features you can use a bullet list
+ like this:
+
+ * Added feature foo to do something.
+ * Enhanced feature bar to do something else.
+
+ Refer to the previous release notes for examples.
+
+ Suggested order in release notes items:
+ * Core libs (EAL, mempool, ring, mbuf, buses)
+ * Device abstraction libs and PMDs
+ - ethdev (lib, PMDs)
+ - cryptodev (lib, PMDs)
+ - eventdev (lib, PMDs)
+ - etc
+ * Other libs
+ * Apps, Examples, Tools (if significant)
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Removed Items
+-------------
+
+.. This section should contain removed items in this release. Sample format:
+
+ * Add a short 1-2 sentence description of the removed item
+ in the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+API Changes
+-----------
+
+.. This section should contain API changes. Sample format:
+
+ * sample: Add a short 1-2 sentence description of the API change
+ which was announced in the previous releases and made in this release.
+ Start with a scope label like "ethdev:".
+ Use fixed width quotes for ``function_names`` or ``struct_names``.
+ Use the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+ABI Changes
+-----------
+
+.. This section should contain ABI changes. Sample format:
+
+ * sample: Add a short 1-2 sentence description of the ABI change
+ which was announced in the previous releases and made in this release.
+ Start with a scope label like "ethdev:".
+ Use fixed width quotes for ``function_names`` or ``struct_names``.
+ Use the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Known Issues
+------------
+
+.. This section should contain new known issues in this release. Sample format:
+
+ * **Add title in present tense with full stop.**
+
+ Add a short 1-2 sentence description of the known issue
+ in the present tense. Add information on any known workarounds.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Tested Platforms
+----------------
+
+.. This section should contain a list of platforms that were tested
+ with this release.
+
+ The format is:
+
+ * <vendor> platform with <vendor> <type of devices> combinations
+
+ * List of CPU
+ * List of OS
+ * List of devices
+ * Other relevant details...
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
diff --git a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
index b0fb9717fa..d723bc9b0e 100644
--- a/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
+++ b/drivers/baseband/fpga_5gnr_fec/rte_pmd_bbdev_fpga_5gnr_fec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
index 6bcea2cc7f..a2ab086cd8 100644
--- a/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
+++ b/drivers/baseband/fpga_lte_fec/rte_pmd_bbdev_fpga_lte_fec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/null/rte_pmd_bbdev_null_version.map b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/baseband/null/rte_pmd_bbdev_null_version.map
+++ b/drivers/baseband/null/rte_pmd_bbdev_null_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
+++ b/drivers/baseband/turbo_sw/rte_pmd_bbdev_turbo_sw_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/bus/ifpga/rte_bus_ifpga_version.map b/drivers/bus/ifpga/rte_bus_ifpga_version.map
index 05b4a28c1b..6e8f85da3c 100644
--- a/drivers/bus/ifpga/rte_bus_ifpga_version.map
+++ b/drivers/bus/ifpga/rte_bus_ifpga_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ifpga_driver_register;
diff --git a/drivers/bus/pci/rte_bus_pci_version.map b/drivers/bus/pci/rte_bus_pci_version.map
index 012d817e14..5b75d23671 100644
--- a/drivers/bus/pci/rte_bus_pci_version.map
+++ b/drivers/bus/pci/rte_bus_pci_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pci_dump;
diff --git a/drivers/bus/vdev/rte_bus_vdev_version.map b/drivers/bus/vdev/rte_bus_vdev_version.map
index 5abb10ecb0..61b6cefcee 100644
--- a/drivers/bus/vdev/rte_bus_vdev_version.map
+++ b/drivers/bus/vdev/rte_bus_vdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vdev_add_custom_scan;
diff --git a/drivers/bus/vmbus/rte_bus_vmbus_version.map b/drivers/bus/vmbus/rte_bus_vmbus_version.map
index cbaaebc06c..fa8e91c282 100644
--- a/drivers/bus/vmbus/rte_bus_vmbus_version.map
+++ b/drivers/bus/vmbus/rte_bus_vmbus_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vmbus_chan_close;
diff --git a/drivers/common/cpt/rte_common_cpt_version.map b/drivers/common/cpt/rte_common_cpt_version.map
index 8c65cde6cf..4d85021a87 100644
--- a/drivers/common/cpt/rte_common_cpt_version.map
+++ b/drivers/common/cpt/rte_common_cpt_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
cpt_pmd_ops_helper_asym_get_mlen;
diff --git a/drivers/common/iavf/rte_common_iavf_version.map b/drivers/common/iavf/rte_common_iavf_version.map
index 92ceac108d..44142499e0 100644
--- a/drivers/common/iavf/rte_common_iavf_version.map
+++ b/drivers/common/iavf/rte_common_iavf_version.map
@@ -1,11 +1,11 @@
DPDK_21 {
global:
- iavf_init_adminq;
- iavf_shutdown_adminq;
iavf_aq_send_msg_to_pf;
iavf_clean_arq_element;
+ iavf_init_adminq;
iavf_set_mac_type;
+ iavf_shutdown_adminq;
iavf_vf_parse_hw_config;
local: *;
diff --git a/drivers/common/mlx5/rte_common_mlx5_version.map b/drivers/common/mlx5/rte_common_mlx5_version.map
index 7729d0dd04..c4d57c08a7 100644
--- a/drivers/common/mlx5/rte_common_mlx5_version.map
+++ b/drivers/common/mlx5/rte_common_mlx5_version.map
@@ -93,4 +93,3 @@ INTERNAL {
mlx5_pci_driver_register;
};
-
diff --git a/drivers/common/mvep/rte_common_mvep_version.map b/drivers/common/mvep/rte_common_mvep_version.map
index 030928439d..e5af82c61d 100644
--- a/drivers/common/mvep/rte_common_mvep_version.map
+++ b/drivers/common/mvep/rte_common_mvep_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_mvep_deinit;
diff --git a/drivers/common/octeontx/rte_common_octeontx_version.map b/drivers/common/octeontx/rte_common_octeontx_version.map
index 5f6aa8bd3a..30f3fa65e0 100644
--- a/drivers/common/octeontx/rte_common_octeontx_version.map
+++ b/drivers/common/octeontx/rte_common_octeontx_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
octeontx_get_global_domain;
diff --git a/drivers/compress/isal/rte_pmd_isal_version.map b/drivers/compress/isal/rte_pmd_isal_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/isal/rte_pmd_isal_version.map
+++ b/drivers/compress/isal/rte_pmd_isal_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
+++ b/drivers/compress/octeontx/rte_pmd_octeontx_compress_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/qat/rte_pmd_qat_version.map b/drivers/compress/qat/rte_pmd_qat_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/qat/rte_pmd_qat_version.map
+++ b/drivers/compress/qat/rte_pmd_qat_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/compress/zlib/rte_pmd_zlib_version.map b/drivers/compress/zlib/rte_pmd_zlib_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/compress/zlib/rte_pmd_zlib_version.map
+++ b/drivers/compress/zlib/rte_pmd_zlib_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
+++ b/drivers/crypto/aesni_gcm/rte_pmd_aesni_gcm_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
+++ b/drivers/crypto/aesni_mb/rte_pmd_aesni_mb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/armv8/rte_pmd_armv8_version.map b/drivers/crypto/armv8/rte_pmd_armv8_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/armv8/rte_pmd_armv8_version.map
+++ b/drivers/crypto/armv8/rte_pmd_armv8_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
+++ b/drivers/crypto/caam_jr/rte_pmd_caam_jr_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/ccp/rte_pmd_ccp_version.map b/drivers/crypto/ccp/rte_pmd_ccp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/ccp/rte_pmd_ccp_version.map
+++ b/drivers/crypto/ccp/rte_pmd_ccp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
+++ b/drivers/crypto/kasumi/rte_pmd_kasumi_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
+++ b/drivers/crypto/mvsam/rte_pmd_mvsam_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
+++ b/drivers/crypto/nitrox/rte_pmd_nitrox_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/null/rte_pmd_null_crypto_version.map b/drivers/crypto/null/rte_pmd_null_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/null/rte_pmd_null_crypto_version.map
+++ b/drivers/crypto/null/rte_pmd_null_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
+++ b/drivers/crypto/octeontx/rte_pmd_octeontx_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
+++ b/drivers/crypto/octeontx2/rte_pmd_octeontx2_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/openssl/rte_pmd_openssl_version.map b/drivers/crypto/openssl/rte_pmd_openssl_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/openssl/rte_pmd_openssl_version.map
+++ b/drivers/crypto/openssl/rte_pmd_openssl_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
index 077afedce7..ca6f102d9f 100644
--- a/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
+++ b/drivers/crypto/scheduler/rte_pmd_crypto_scheduler_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_cryptodev_scheduler_load_user_scheduler;
diff --git a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
+++ b/drivers/crypto/snow3g/rte_pmd_snow3g_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
+++ b/drivers/crypto/virtio/rte_pmd_virtio_crypto_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/crypto/zuc/rte_pmd_zuc_version.map b/drivers/crypto/zuc/rte_pmd_zuc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/crypto/zuc/rte_pmd_zuc_version.map
+++ b/drivers/crypto/zuc/rte_pmd_zuc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
+++ b/drivers/event/dpaa/rte_pmd_dpaa_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
+++ b/drivers/event/dpaa2/rte_pmd_dpaa2_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/dsw/rte_pmd_dsw_event_version.map b/drivers/event/dsw/rte_pmd_dsw_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/dsw/rte_pmd_dsw_event_version.map
+++ b/drivers/event/dsw/rte_pmd_dsw_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
+++ b/drivers/event/octeontx/rte_pmd_octeontx_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
+++ b/drivers/event/octeontx2/rte_pmd_octeontx2_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/opdl/rte_pmd_opdl_event_version.map b/drivers/event/opdl/rte_pmd_opdl_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/opdl/rte_pmd_opdl_event_version.map
+++ b/drivers/event/opdl/rte_pmd_opdl_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
+++ b/drivers/event/skeleton/rte_pmd_skeleton_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/event/sw/rte_pmd_sw_event_version.map b/drivers/event/sw/rte_pmd_sw_event_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/event/sw/rte_pmd_sw_event_version.map
+++ b/drivers/event/sw/rte_pmd_sw_event_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/bucket/rte_mempool_bucket_version.map b/drivers/mempool/bucket/rte_mempool_bucket_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/bucket/rte_mempool_bucket_version.map
+++ b/drivers/mempool/bucket/rte_mempool_bucket_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index 686b024624..473b8c90e8 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_dpaa2_mbuf_from_buf_addr;
diff --git a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
+++ b/drivers/mempool/octeontx/rte_mempool_octeontx_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/ring/rte_mempool_ring_version.map b/drivers/mempool/ring/rte_mempool_ring_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/ring/rte_mempool_ring_version.map
+++ b/drivers/mempool/ring/rte_mempool_ring_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/mempool/stack/rte_mempool_stack_version.map b/drivers/mempool/stack/rte_mempool_stack_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/mempool/stack/rte_mempool_stack_version.map
+++ b/drivers/mempool/stack/rte_mempool_stack_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/af_packet/rte_pmd_af_packet_version.map b/drivers/net/af_packet/rte_pmd_af_packet_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/af_packet/rte_pmd_af_packet_version.map
+++ b/drivers/net/af_packet/rte_pmd_af_packet_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
+++ b/drivers/net/af_xdp/rte_pmd_af_xdp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ark/rte_pmd_ark_version.map b/drivers/net/ark/rte_pmd_ark_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/ark/rte_pmd_ark_version.map
+++ b/drivers/net/ark/rte_pmd_ark_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/atlantic/rte_pmd_atlantic_version.map b/drivers/net/atlantic/rte_pmd_atlantic_version.map
index 9b04838d84..6e17832684 100644
--- a/drivers/net/atlantic/rte_pmd_atlantic_version.map
+++ b/drivers/net/atlantic/rte_pmd_atlantic_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/avp/rte_pmd_avp_version.map b/drivers/net/avp/rte_pmd_avp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/avp/rte_pmd_avp_version.map
+++ b/drivers/net/avp/rte_pmd_avp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/axgbe/rte_pmd_axgbe_version.map b/drivers/net/axgbe/rte_pmd_axgbe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/axgbe/rte_pmd_axgbe_version.map
+++ b/drivers/net/axgbe/rte_pmd_axgbe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
+++ b/drivers/net/bnx2x/rte_pmd_bnx2x_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/bnxt/rte_pmd_bnxt_version.map b/drivers/net/bnxt/rte_pmd_bnxt_version.map
index bb52562347..a050d86ab7 100644
--- a/drivers/net/bnxt/rte_pmd_bnxt_version.map
+++ b/drivers/net/bnxt/rte_pmd_bnxt_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_bnxt_get_vf_rx_status;
diff --git a/drivers/net/bonding/rte_pmd_bond_version.map b/drivers/net/bonding/rte_pmd_bond_version.map
index 270c7d5d55..df81ee74c1 100644
--- a/drivers/net/bonding/rte_pmd_bond_version.map
+++ b/drivers/net/bonding/rte_pmd_bond_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_bond_8023ad_agg_selection_get;
diff --git a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
+++ b/drivers/net/cxgbe/rte_pmd_cxgbe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index 774aa0de45..87ce8f5b6c 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_dpaa_set_tx_loopback;
diff --git a/drivers/net/e1000/rte_pmd_e1000_version.map b/drivers/net/e1000/rte_pmd_e1000_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/e1000/rte_pmd_e1000_version.map
+++ b/drivers/net/e1000/rte_pmd_e1000_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ena/rte_pmd_ena_version.map b/drivers/net/ena/rte_pmd_ena_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/ena/rte_pmd_ena_version.map
+++ b/drivers/net/ena/rte_pmd_ena_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/enetc/rte_pmd_enetc_version.map b/drivers/net/enetc/rte_pmd_enetc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/enetc/rte_pmd_enetc_version.map
+++ b/drivers/net/enetc/rte_pmd_enetc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/enic/rte_pmd_enic_version.map b/drivers/net/enic/rte_pmd_enic_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/enic/rte_pmd_enic_version.map
+++ b/drivers/net/enic/rte_pmd_enic_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/failsafe/rte_pmd_failsafe_version.map b/drivers/net/failsafe/rte_pmd_failsafe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/failsafe/rte_pmd_failsafe_version.map
+++ b/drivers/net/failsafe/rte_pmd_failsafe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/fm10k/rte_pmd_fm10k_version.map b/drivers/net/fm10k/rte_pmd_fm10k_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/fm10k/rte_pmd_fm10k_version.map
+++ b/drivers/net/fm10k/rte_pmd_fm10k_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/hinic/rte_pmd_hinic_version.map b/drivers/net/hinic/rte_pmd_hinic_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/hinic/rte_pmd_hinic_version.map
+++ b/drivers/net/hinic/rte_pmd_hinic_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/hns3/rte_pmd_hns3_version.map b/drivers/net/hns3/rte_pmd_hns3_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/hns3/rte_pmd_hns3_version.map
+++ b/drivers/net/hns3/rte_pmd_hns3_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/i40e/rte_pmd_i40e_version.map b/drivers/net/i40e/rte_pmd_i40e_version.map
index f6cd3b3566..413c58cb21 100644
--- a/drivers/net/i40e/rte_pmd_i40e_version.map
+++ b/drivers/net/i40e/rte_pmd_i40e_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_i40e_add_vf_mac_addr;
diff --git a/drivers/net/iavf/rte_pmd_iavf_version.map b/drivers/net/iavf/rte_pmd_iavf_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/iavf/rte_pmd_iavf_version.map
+++ b/drivers/net/iavf/rte_pmd_iavf_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ice/rte_pmd_ice_version.map b/drivers/net/ice/rte_pmd_ice_version.map
index d04b194c13..91f40225e9 100644
--- a/drivers/net/ice/rte_pmd_ice_version.map
+++ b/drivers/net/ice/rte_pmd_ice_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ionic/rte_pmd_ionic_version.map b/drivers/net/ionic/rte_pmd_ionic_version.map
index acdaf587d2..4a76d1d52d 100644
--- a/drivers/net/ionic/rte_pmd_ionic_version.map
+++ b/drivers/net/ionic/rte_pmd_ionic_version.map
@@ -1,4 +1,3 @@
DPDK_21 {
-
local: *;
};
diff --git a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
index 7e348e99b1..d8cc1026e0 100644
--- a/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
+++ b/drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
index 911f8083f1..9402802b04 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_ixgbe_bypass_event_show;
diff --git a/drivers/net/kni/rte_pmd_kni_version.map b/drivers/net/kni/rte_pmd_kni_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/kni/rte_pmd_kni_version.map
+++ b/drivers/net/kni/rte_pmd_kni_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/liquidio/rte_pmd_liquidio_version.map b/drivers/net/liquidio/rte_pmd_liquidio_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/liquidio/rte_pmd_liquidio_version.map
+++ b/drivers/net/liquidio/rte_pmd_liquidio_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/memif/rte_pmd_memif_version.map b/drivers/net/memif/rte_pmd_memif_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/memif/rte_pmd_memif_version.map
+++ b/drivers/net/memif/rte_pmd_memif_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mlx4/rte_pmd_mlx4_version.map b/drivers/net/mlx4/rte_pmd_mlx4_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mlx4/rte_pmd_mlx4_version.map
+++ b/drivers/net/mlx4/rte_pmd_mlx4_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mlx5/rte_pmd_mlx5_version.map b/drivers/net/mlx5/rte_pmd_mlx5_version.map
index c8b1031b02..bc1d3d06bf 100644
--- a/drivers/net/mlx5/rte_pmd_mlx5_version.map
+++ b/drivers/net/mlx5/rte_pmd_mlx5_version.map
@@ -1,10 +1,10 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
EXPERIMENTAL {
- global:
+ global:
- # added in 20.02
+ # added in 20.02
rte_pmd_mlx5_get_dyn_flag_names;
};
diff --git a/drivers/net/mvneta/rte_pmd_mvneta_version.map b/drivers/net/mvneta/rte_pmd_mvneta_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mvneta/rte_pmd_mvneta_version.map
+++ b/drivers/net/mvneta/rte_pmd_mvneta_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
+++ b/drivers/net/mvpp2/rte_pmd_mvpp2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/netvsc/rte_pmd_netvsc_version.map b/drivers/net/netvsc/rte_pmd_netvsc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/netvsc/rte_pmd_netvsc_version.map
+++ b/drivers/net/netvsc/rte_pmd_netvsc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/nfb/rte_pmd_nfb_version.map b/drivers/net/nfb/rte_pmd_nfb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/nfb/rte_pmd_nfb_version.map
+++ b/drivers/net/nfb/rte_pmd_nfb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/nfp/rte_pmd_nfp_version.map b/drivers/net/nfp/rte_pmd_nfp_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/nfp/rte_pmd_nfp_version.map
+++ b/drivers/net/nfp/rte_pmd_nfp_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/null/rte_pmd_null_version.map b/drivers/net/null/rte_pmd_null_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/null/rte_pmd_null_version.map
+++ b/drivers/net/null/rte_pmd_null_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/octeontx/rte_pmd_octeontx_version.map b/drivers/net/octeontx/rte_pmd_octeontx_version.map
index f7cae02fac..6dda72890c 100644
--- a/drivers/net/octeontx/rte_pmd_octeontx_version.map
+++ b/drivers/net/octeontx/rte_pmd_octeontx_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_octeontx_pchan_map;
diff --git a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
+++ b/drivers/net/octeontx2/rte_pmd_octeontx2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/pcap/rte_pmd_pcap_version.map b/drivers/net/pcap/rte_pmd_pcap_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/pcap/rte_pmd_pcap_version.map
+++ b/drivers/net/pcap/rte_pmd_pcap_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/pfe/rte_pmd_pfe_version.map b/drivers/net/pfe/rte_pmd_pfe_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/pfe/rte_pmd_pfe_version.map
+++ b/drivers/net/pfe/rte_pmd_pfe_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/qede/rte_pmd_qede_version.map b/drivers/net/qede/rte_pmd_qede_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/qede/rte_pmd_qede_version.map
+++ b/drivers/net/qede/rte_pmd_qede_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/ring/rte_pmd_ring_version.map b/drivers/net/ring/rte_pmd_ring_version.map
index ebb6be2733..29770fe3e4 100644
--- a/drivers/net/ring/rte_pmd_ring_version.map
+++ b/drivers/net/ring/rte_pmd_ring_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_from_ring;
diff --git a/drivers/net/sfc/rte_pmd_sfc_version.map b/drivers/net/sfc/rte_pmd_sfc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/sfc/rte_pmd_sfc_version.map
+++ b/drivers/net/sfc/rte_pmd_sfc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/softnic/rte_pmd_softnic_version.map b/drivers/net/softnic/rte_pmd_softnic_version.map
index 50f113d5a2..530d2e6b72 100644
--- a/drivers/net/softnic/rte_pmd_softnic_version.map
+++ b/drivers/net/softnic/rte_pmd_softnic_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pmd_softnic_run;
diff --git a/drivers/net/szedata2/rte_pmd_szedata2_version.map b/drivers/net/szedata2/rte_pmd_szedata2_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/szedata2/rte_pmd_szedata2_version.map
+++ b/drivers/net/szedata2/rte_pmd_szedata2_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/tap/rte_pmd_tap_version.map b/drivers/net/tap/rte_pmd_tap_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/tap/rte_pmd_tap_version.map
+++ b/drivers/net/tap/rte_pmd_tap_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/thunderx/rte_pmd_thunderx_version.map b/drivers/net/thunderx/rte_pmd_thunderx_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/thunderx/rte_pmd_thunderx_version.map
+++ b/drivers/net/thunderx/rte_pmd_thunderx_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
+++ b/drivers/net/vdev_netvsc/rte_pmd_vdev_netvsc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vhost/rte_pmd_vhost_version.map b/drivers/net/vhost/rte_pmd_vhost_version.map
index 16b591ccc4..634255829e 100644
--- a/drivers/net/vhost/rte_pmd_vhost_version.map
+++ b/drivers/net/vhost/rte_pmd_vhost_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_vhost_get_queue_event;
diff --git a/drivers/net/virtio/rte_pmd_virtio_version.map b/drivers/net/virtio/rte_pmd_virtio_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/virtio/rte_pmd_virtio_version.map
+++ b/drivers/net/virtio/rte_pmd_virtio_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
+++ b/drivers/net/vmxnet3/rte_pmd_vmxnet3_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
+++ b/drivers/raw/dpaa2_cmdif/rte_rawdev_dpaa2_cmdif_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
index ca6a0d7626..280c79ea9c 100644
--- a/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
+++ b/drivers/raw/dpaa2_qdma/rte_rawdev_dpaa2_qdma_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_qdma_attr_get;
diff --git a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
+++ b/drivers/raw/ifpga/rte_rawdev_ifpga_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/ioat/rte_rawdev_ioat_version.map b/drivers/raw/ioat/rte_rawdev_ioat_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ioat/rte_rawdev_ioat_version.map
+++ b/drivers/raw/ioat/rte_rawdev_ioat_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/ntb/rte_rawdev_ntb_version.map b/drivers/raw/ntb/rte_rawdev_ntb_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/ntb/rte_rawdev_ntb_version.map
+++ b/drivers/raw/ntb/rte_rawdev_ntb_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
+++ b/drivers/raw/octeontx2_dma/rte_rawdev_octeontx2_dma_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
index acdaf587d2..4a76d1d52d 100644
--- a/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
+++ b/drivers/raw/octeontx2_ep/rte_rawdev_octeontx2_ep_version.map
@@ -1,4 +1,3 @@
DPDK_21 {
-
local: *;
};
diff --git a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
+++ b/drivers/raw/skeleton/rte_rawdev_skeleton_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/drivers/vdpa/ifc/rte_pmd_ifc_version.map b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
index f9f17e4f6e..4a76d1d52d 100644
--- a/drivers/vdpa/ifc/rte_pmd_ifc_version.map
+++ b/drivers/vdpa/ifc/rte_pmd_ifc_version.map
@@ -1,3 +1,3 @@
-DPDK_20.0 {
+DPDK_21 {
local: *;
};
diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
index c3daca8115..d97f2927bf 100644
--- a/lib/librte_acl/rte_acl_version.map
+++ b/lib/librte_acl/rte_acl_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_acl_add_rules;
diff --git a/lib/librte_bitratestats/rte_bitratestats_version.map b/lib/librte_bitratestats/rte_bitratestats_version.map
index 88fc2912db..463f78a53a 100644
--- a/lib/librte_bitratestats/rte_bitratestats_version.map
+++ b/lib/librte_bitratestats/rte_bitratestats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_stats_bitrate_calc;
diff --git a/lib/librte_cfgfile/rte_cfgfile_version.map b/lib/librte_cfgfile/rte_cfgfile_version.map
index 22c999fe16..180c42b717 100644
--- a/lib/librte_cfgfile/rte_cfgfile_version.map
+++ b/lib/librte_cfgfile/rte_cfgfile_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_cfgfile_add_entry;
diff --git a/lib/librte_cmdline/rte_cmdline_version.map b/lib/librte_cmdline/rte_cmdline_version.map
index 95fce812ff..a99104457f 100644
--- a/lib/librte_cmdline/rte_cmdline_version.map
+++ b/lib/librte_cmdline/rte_cmdline_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
cirbuf_add_buf_head;
diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map
index a7a78dc41f..02f6dcf724 100644
--- a/lib/librte_cryptodev/rte_cryptodev_version.map
+++ b/lib/librte_cryptodev/rte_cryptodev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_crypto_aead_algorithm_strings;
@@ -58,12 +58,11 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
+DPDK_20.0 {
global:
rte_cryptodev_info_get;
rte_cryptodev_sym_capability_get;
-} DPDK_20.0;
-
+};
EXPERIMENTAL {
global:
diff --git a/lib/librte_distributor/rte_distributor_version.map b/lib/librte_distributor/rte_distributor_version.map
index 1b7c643005..1ddcd01fe6 100644
--- a/lib/librte_distributor/rte_distributor_version.map
+++ b/lib/librte_distributor/rte_distributor_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_distributor_clear_returns;
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index bf0c17c233..0b18e2ef85 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
__rte_panic;
@@ -6,6 +6,7 @@ DPDK_20.0 {
eal_timer_source;
per_lcore__lcore_id;
per_lcore__rte_errno;
+ per_lcore__thread_id;
rte_bus_dump;
rte_bus_find;
rte_bus_find_by_device;
@@ -221,13 +222,6 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
- global:
-
- per_lcore__thread_id;
-
-} DPDK_20.0;
-
EXPERIMENTAL {
global:
diff --git a/lib/librte_efd/rte_efd_version.map b/lib/librte_efd/rte_efd_version.map
index e010eecfe4..425c0a85a9 100644
--- a/lib/librte_efd/rte_efd_version.map
+++ b/lib/librte_efd/rte_efd_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_efd_create;
diff --git a/lib/librte_ethdev/rte_ethdev_version.map b/lib/librte_ethdev/rte_ethdev_version.map
index 1212a17d32..8d9d6b1c67 100644
--- a/lib/librte_ethdev/rte_ethdev_version.map
+++ b/lib/librte_ethdev/rte_ethdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
_rte_eth_dev_callback_process;
diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map
index 91a62cd077..3d9d0ca054 100644
--- a/lib/librte_eventdev/rte_eventdev_version.map
+++ b/lib/librte_eventdev/rte_eventdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_event_crypto_adapter_caps_get;
diff --git a/lib/librte_gro/rte_gro_version.map b/lib/librte_gro/rte_gro_version.map
index 9f6fe79e57..19dc66b0d4 100644
--- a/lib/librte_gro/rte_gro_version.map
+++ b/lib/librte_gro/rte_gro_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_gro_ctx_create;
diff --git a/lib/librte_gso/rte_gso_version.map b/lib/librte_gso/rte_gso_version.map
index 8505a59c27..60aa1b54e4 100644
--- a/lib/librte_gso/rte_gso_version.map
+++ b/lib/librte_gso/rte_gso_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_gso_segment;
diff --git a/lib/librte_hash/rte_hash_version.map b/lib/librte_hash/rte_hash_version.map
index c2a909443d..c0db81014f 100644
--- a/lib/librte_hash/rte_hash_version.map
+++ b/lib/librte_hash/rte_hash_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_fbk_hash_create;
diff --git a/lib/librte_ip_frag/rte_ip_frag_version.map b/lib/librte_ip_frag/rte_ip_frag_version.map
index 5dd34f828c..82b308ddb0 100644
--- a/lib/librte_ip_frag/rte_ip_frag_version.map
+++ b/lib/librte_ip_frag/rte_ip_frag_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ip_frag_free_death_row;
diff --git a/lib/librte_jobstats/rte_jobstats_version.map b/lib/librte_jobstats/rte_jobstats_version.map
index dbd2664ae2..3e166ad548 100644
--- a/lib/librte_jobstats/rte_jobstats_version.map
+++ b/lib/librte_jobstats/rte_jobstats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_jobstats_abort;
diff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map
index 9cd3cedc54..a93da95f36 100644
--- a/lib/librte_kni/rte_kni_version.map
+++ b/lib/librte_kni/rte_kni_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_kni_alloc;
diff --git a/lib/librte_kvargs/rte_kvargs_version.map b/lib/librte_kvargs/rte_kvargs_version.map
index 3ba0f4b59c..ed375bf4a3 100644
--- a/lib/librte_kvargs/rte_kvargs_version.map
+++ b/lib/librte_kvargs/rte_kvargs_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_kvargs_count;
diff --git a/lib/librte_latencystats/rte_latencystats_version.map b/lib/librte_latencystats/rte_latencystats_version.map
index e04e63463f..0c4360ab43 100644
--- a/lib/librte_latencystats/rte_latencystats_version.map
+++ b/lib/librte_latencystats/rte_latencystats_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_latencystats_get;
diff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map
index bfccd7eacc..b4d437cc75 100644
--- a/lib/librte_lpm/rte_lpm_version.map
+++ b/lib/librte_lpm/rte_lpm_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_lpm6_add;
diff --git a/lib/librte_mbuf/rte_mbuf_version.map b/lib/librte_mbuf/rte_mbuf_version.map
index ab161bcdc7..a011aaead3 100644
--- a/lib/librte_mbuf/rte_mbuf_version.map
+++ b/lib/librte_mbuf/rte_mbuf_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
__rte_pktmbuf_linearize;
diff --git a/lib/librte_member/rte_member_version.map b/lib/librte_member/rte_member_version.map
index 87780ae611..b8c6322e73 100644
--- a/lib/librte_member/rte_member_version.map
+++ b/lib/librte_member/rte_member_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_member_add;
diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map
index 826a0b8824..50e22ee020 100644
--- a/lib/librte_mempool/rte_mempool_version.map
+++ b/lib/librte_mempool/rte_mempool_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_mempool_audit;
@@ -31,12 +31,12 @@ DPDK_20.0 {
local: *;
};
-DPDK_21 {
+DPDK_20.0 {
global:
rte_mempool_populate_iova;
rte_mempool_populate_virt;
-} DPDK_20.0;
+};
EXPERIMENTAL {
global:
diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
index 58859d4d76..e2a2607f28 100644
--- a/lib/librte_meter/rte_meter_version.map
+++ b/lib/librte_meter/rte_meter_version.map
@@ -1,24 +1,18 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_meter_srtcm_config;
rte_meter_srtcm_profile_config;
rte_meter_trtcm_config;
rte_meter_trtcm_profile_config;
+ rte_meter_trtcm_rfc4115_config;
+ rte_meter_trtcm_rfc4115_profile_config;
local: *;
};
-DPDK_21 {
- global:
-
- rte_meter_trtcm_rfc4115_config;
- rte_meter_trtcm_rfc4115_profile_config;
-
-} DPDK_20.0;
-
EXPERIMENTAL {
- global:
+ global:
rte_meter_trtcm_rfc4115_config;
rte_meter_trtcm_rfc4115_profile_config;
diff --git a/lib/librte_metrics/rte_metrics_version.map b/lib/librte_metrics/rte_metrics_version.map
index c88939b117..20f99cd19a 100644
--- a/lib/librte_metrics/rte_metrics_version.map
+++ b/lib/librte_metrics/rte_metrics_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_metrics_get_names;
diff --git a/lib/librte_net/rte_net_version.map b/lib/librte_net/rte_net_version.map
index 8a4e75a3a0..621f237945 100644
--- a/lib/librte_net/rte_net_version.map
+++ b/lib/librte_net/rte_net_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_eth_random_addr;
diff --git a/lib/librte_pci/rte_pci_version.map b/lib/librte_pci/rte_pci_version.map
index 67eb845796..cd77c9dc9e 100644
--- a/lib/librte_pci/rte_pci_version.map
+++ b/lib/librte_pci/rte_pci_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
pci_map_resource;
diff --git a/lib/librte_pdump/rte_pdump_version.map b/lib/librte_pdump/rte_pdump_version.map
index 6d02ccce6d..2f9e952d0b 100644
--- a/lib/librte_pdump/rte_pdump_version.map
+++ b/lib/librte_pdump/rte_pdump_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pdump_disable;
diff --git a/lib/librte_pipeline/rte_pipeline_version.map b/lib/librte_pipeline/rte_pipeline_version.map
index 64d38afecd..9ed80eb041 100644
--- a/lib/librte_pipeline/rte_pipeline_version.map
+++ b/lib/librte_pipeline/rte_pipeline_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_pipeline_ah_packet_drop;
diff --git a/lib/librte_port/rte_port_version.map b/lib/librte_port/rte_port_version.map
index 18c6154672..bd1fbb66b0 100644
--- a/lib/librte_port/rte_port_version.map
+++ b/lib/librte_port/rte_port_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_port_ethdev_reader_ops;
diff --git a/lib/librte_power/rte_power_version.map b/lib/librte_power/rte_power_version.map
index 00ee5753e2..69ca9af616 100644
--- a/lib/librte_power/rte_power_version.map
+++ b/lib/librte_power/rte_power_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_power_exit;
diff --git a/lib/librte_rawdev/rte_rawdev_version.map b/lib/librte_rawdev/rte_rawdev_version.map
index 63b54f598b..eb29a3ac0d 100644
--- a/lib/librte_rawdev/rte_rawdev_version.map
+++ b/lib/librte_rawdev/rte_rawdev_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_rawdev_close;
diff --git a/lib/librte_reorder/rte_reorder_version.map b/lib/librte_reorder/rte_reorder_version.map
index cf444062df..8c0220d324 100644
--- a/lib/librte_reorder/rte_reorder_version.map
+++ b/lib/librte_reorder/rte_reorder_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_reorder_create;
diff --git a/lib/librte_ring/rte_ring_version.map b/lib/librte_ring/rte_ring_version.map
index ac392f3ca9..e35d6b9712 100644
--- a/lib/librte_ring/rte_ring_version.map
+++ b/lib/librte_ring/rte_ring_version.map
@@ -1,21 +1,16 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_ring_create;
+ rte_ring_create_elem;
rte_ring_dump;
rte_ring_free;
rte_ring_get_memsize;
+ rte_ring_get_memsize_elem;
rte_ring_init;
rte_ring_list_dump;
rte_ring_lookup;
+ rte_ring_reset;
local: *;
};
-
-DPDK_21 {
- global:
-
- rte_ring_create_elem;
- rte_ring_get_memsize_elem;
- rte_ring_reset;
-} DPDK_20.0;
diff --git a/lib/librte_sched/rte_sched_version.map b/lib/librte_sched/rte_sched_version.map
index cefd990367..3faef6f0a0 100644
--- a/lib/librte_sched/rte_sched_version.map
+++ b/lib/librte_sched/rte_sched_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_approx;
diff --git a/lib/librte_security/rte_security_version.map b/lib/librte_security/rte_security_version.map
index b07314bbf4..d84eec0a88 100644
--- a/lib/librte_security/rte_security_version.map
+++ b/lib/librte_security/rte_security_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_security_attach_session;
diff --git a/lib/librte_table/rte_table_version.map b/lib/librte_table/rte_table_version.map
index 40f72b1fe8..568a6c6a8f 100644
--- a/lib/librte_table/rte_table_version.map
+++ b/lib/librte_table/rte_table_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_table_acl_ops;
diff --git a/lib/librte_timer/rte_timer_version.map b/lib/librte_timer/rte_timer_version.map
index 4471cef92b..21e68ea7a2 100644
--- a/lib/librte_timer/rte_timer_version.map
+++ b/lib/librte_timer/rte_timer_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_timer_dump_stats;
diff --git a/lib/librte_vhost/rte_vhost_version.map b/lib/librte_vhost/rte_vhost_version.map
index 13ec53b638..20b4abcb4e 100644
--- a/lib/librte_vhost/rte_vhost_version.map
+++ b/lib/librte_vhost/rte_vhost_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+DPDK_21 {
global:
rte_vhost_avail_entries;
--
2.27.0
^ permalink raw reply [relevance 18%]
* [dpdk-dev] [PATCH] version: 20.11-rc0
@ 2020-08-10 15:15 9% Thomas Monjalon
2020-08-11 9:31 18% ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
` (3 more replies)
0 siblings, 4 replies; 200+ results
From: Thomas Monjalon @ 2020-08-10 15:15 UTC (permalink / raw)
To: dev; +Cc: david.marchand
Start a new release cycle with empty release notes.
ABI check is disabled in 20.11 cycle.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
.travis.yml | 26 -----
ABI_VERSION | 2 +-
VERSION | 2 +-
doc/guides/rel_notes/index.rst | 1 +
doc/guides/rel_notes/release_20_11.rst | 136 +++++++++++++++++++++++++
5 files changed, 139 insertions(+), 28 deletions(-)
create mode 100644 doc/guides/rel_notes/release_20_11.rst
diff --git a/.travis.yml b/.travis.yml
index 14f8124233..d6eeab371d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,9 +2,6 @@
language: c
cache:
ccache: true
- directories:
- - libabigail
- - reference
dist: bionic
@@ -21,9 +18,6 @@ _aarch64_packages: &aarch64_packages
- *required_packages
- [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
-_libabigail_build_packages: &libabigail_build_packages
- - [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
-
_build_32b_packages: &build_32b_packages
- *required_packages
- [gcc-multilib]
@@ -34,10 +28,6 @@ _doc_packages: &doc_packages
before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
script: ./.ci/${TRAVIS_OS_NAME}-build.sh
-env:
- global:
- - REF_GIT_TAG=v20.05
-
jobs:
include:
# x86_64 gcc jobs
@@ -55,14 +45,6 @@ jobs:
packages:
- *required_packages
- *doc_packages
- - env: DEF_LIB="shared" ABI_CHECKS=1
- arch: amd64
- compiler: gcc
- addons:
- apt:
- packages:
- - *required_packages
- - *libabigail_build_packages
# x86_64 clang jobs
- env: DEF_LIB="static"
arch: amd64
@@ -116,14 +98,6 @@ jobs:
packages:
- *required_packages
- *doc_packages
- - env: DEF_LIB="shared" ABI_CHECKS=1
- arch: arm64
- compiler: gcc
- addons:
- apt:
- packages:
- - *required_packages
- - *libabigail_build_packages
# aarch64 clang jobs
- env: DEF_LIB="static"
arch: arm64
diff --git a/ABI_VERSION b/ABI_VERSION
index a9ac8dacb0..0ffaf17a11 100644
--- a/ABI_VERSION
+++ b/ABI_VERSION
@@ -1 +1 @@
-20.0.3
+20.0.4
diff --git a/VERSION b/VERSION
index 85e33446f8..8b0beab16a 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-20.08.0
+20.11.0
diff --git a/doc/guides/rel_notes/index.rst b/doc/guides/rel_notes/index.rst
index 05c9d837a4..fb70d1a5f3 100644
--- a/doc/guides/rel_notes/index.rst
+++ b/doc/guides/rel_notes/index.rst
@@ -8,6 +8,7 @@ Release Notes
:maxdepth: 1
:numbered:
+ release_20_11
release_20_08
release_20_05
release_20_02
diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
new file mode 100644
index 0000000000..df227a1773
--- /dev/null
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -0,0 +1,136 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright 2020 The DPDK contributors
+
+.. include:: <isonum.txt>
+
+DPDK Release 20.11
+==================
+
+.. **Read this first.**
+
+ The text in the sections below explains how to update the release notes.
+
+ Use proper spelling, capitalization and punctuation in all sections.
+
+ Variable and config names should be quoted as fixed width text:
+ ``LIKE_THIS``.
+
+ Build the docs and view the output file to ensure the changes are correct::
+
+ make doc-guides-html
+ xdg-open build/doc/html/guides/rel_notes/release_20_11.html
+
+
+New Features
+------------
+
+.. This section should contain new features added in this release.
+ Sample format:
+
+ * **Add a title in the past tense with a full stop.**
+
+ Add a short 1-2 sentence description in the past tense.
+ The description should be enough to allow someone scanning
+ the release notes to understand the new feature.
+
+ If the feature adds a lot of sub-features you can use a bullet list
+ like this:
+
+ * Added feature foo to do something.
+ * Enhanced feature bar to do something else.
+
+ Refer to the previous release notes for examples.
+
+ Suggested order in release notes items:
+ * Core libs (EAL, mempool, ring, mbuf, buses)
+ * Device abstraction libs and PMDs
+ - ethdev (lib, PMDs)
+ - cryptodev (lib, PMDs)
+ - eventdev (lib, PMDs)
+ - etc
+ * Other libs
+ * Apps, Examples, Tools (if significant)
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Removed Items
+-------------
+
+.. This section should contain removed items in this release. Sample format:
+
+ * Add a short 1-2 sentence description of the removed item
+ in the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+API Changes
+-----------
+
+.. This section should contain API changes. Sample format:
+
+ * sample: Add a short 1-2 sentence description of the API change
+ which was announced in the previous releases and made in this release.
+ Start with a scope label like "ethdev:".
+ Use fixed width quotes for ``function_names`` or ``struct_names``.
+ Use the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+ABI Changes
+-----------
+
+.. This section should contain ABI changes. Sample format:
+
+ * sample: Add a short 1-2 sentence description of the ABI change
+ which was announced in the previous releases and made in this release.
+ Start with a scope label like "ethdev:".
+ Use fixed width quotes for ``function_names`` or ``struct_names``.
+ Use the past tense.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Known Issues
+------------
+
+.. This section should contain new known issues in this release. Sample format:
+
+ * **Add title in present tense with full stop.**
+
+ Add a short 1-2 sentence description of the known issue
+ in the present tense. Add information on any known workarounds.
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
+
+
+Tested Platforms
+----------------
+
+.. This section should contain a list of platforms that were tested
+ with this release.
+
+ The format is:
+
+ * <vendor> platform with <vendor> <type of devices> combinations
+
+ * List of CPU
+ * List of OS
+ * List of devices
+ * Other relevant details...
+
+ This section is a comment. Do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =======================================================
--
2.27.0
^ permalink raw reply [relevance 9%]
* [dpdk-dev] [PATCH] doc: clarify abi reference version to use in patches
@ 2020-08-10 9:24 17% Ray Kinsella
0 siblings, 0 replies; 200+ results
From: Ray Kinsella @ 2020-08-10 9:24 UTC (permalink / raw)
To: dev; +Cc: ferruh.yigit, Ray Kinsella, John McNamara, Marko Kovacevic
Clarify the ABI reference version (DPDK_ABI_REF_VERSION) tag, to use
when testing builds with devtools/test_build[_meson].sh before
submitting patches.
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
---
doc/guides/contributing/patches.rst | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst
index de493a9..877d2e2 100644
--- a/doc/guides/contributing/patches.rst
+++ b/doc/guides/contributing/patches.rst
@@ -532,7 +532,8 @@ Checking ABI compatibility
By default, ABI compatibility checks are disabled.
To enable them, a reference version must be selected via the environment
-variable ``DPDK_ABI_REF_VERSION``.
+variable ``DPDK_ABI_REF_VERSION``. Contributors should ordinarily reference the
+git tag of most recent release of DPDK in DPDK_ABI_REF_VERSION.
The ``devtools/test-build.sh`` and ``devtools/test-meson-builds.sh`` scripts
then build this reference version in a temporary directory and store the
--
2.7.4
^ permalink raw reply [relevance 17%]
* [dpdk-dev] [dpdk-announce] DPDK 20.08 released
@ 2020-08-09 0:21 3% Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-09 0:21 UTC (permalink / raw)
To: announce
A new release is available:
https://fast.dpdk.org/rel/dpdk-20.08.tar.xz
This version could be named Twins: 20.08 is released on 2020-08-08.
The other numbers are:
1175 commits from 159 authors
1199 files changed, 137604 insertions(+), 35611 deletions(-)
It is not planned to start a maintenance branch for 20.08.
This version as previous ones are ABI-compatible with 19.11.
Below are some new features, grouped by category.
* General
- external thread registration API
- bit operations API for drivers
- VFIO PF with VF token
- new mempool ring modes (RTS/HTS)
* Networking
- eCPRI offload with flow API
- Tx scheduling offload
* Cryptography
- crypto-CRC chained operation for DOCSIS protocol
* RegEx
- new device class API for future RegEx drivers
- Nvidia Mellanox RegEx driver for BlueField-2 DPU
* Tools
- testpmd 5-tuple swap for L2/L3/L4
- performance test application for flow rules
- l2fwd forwarding between asymmetric ports
More details in the release notes:
http://doc.dpdk.org/guides/rel_notes/release_20_08.html
There are 52 new contributors (including authors, reviewers and testers).
Welcome to Adrián Moreno, Archit Pandey, Bin Huang, Devendra Singh Rawat,
Dodji Seketeli, Dongyang Pan, Evgeny Efimov, Francis Kelly, Gaurav Singh,
Gregory Etelson, Guy Kaneti, Hongzhi Guo, Hrvoje Habjanic,
Jakub Chylkowski, Jecky Pei, Jeff Kirsher, Kamil Bednarczyk,
Levend Sayar, Long Li, Lotem Leder, Maciej Hefczyc, Mao Jiang,
Mateusz Kowalski, Netanel Gonen, Nick Nunley, Nir Efrati, Parav Pandit,
Patrick Fu, Pavel Ivashchenko, Piotr Skajewski, Renata Saiakhova,
Roman Fridlyand, Roman Kapl, Sasha Neftin, Sergey Madaminov,
Shibin Koikkara Reeny, Shuanglin Wang, Shy Shyman, Simon Horman,
Stanislaw Grzeszczak, Surabhi Boob, Thierry Martin, Timothy McDaniel,
Todd Fujinaka, Vitaly Lifshits, Vivien Didelot, Wei Xie, Weifeng Li,
Yicai Lu, Yuval Avnery, Yuying Zhang, and Zhiguang He.
Below is the number of commits per employer (with authors count):
362 Intel (45)
276 Nvidia Mellanox (24)
157 Broadcom (15)
68 Huawei (10)
64 Red Hat (5)
51 NXP (8)
50 ARM (5)
49 Marvell (12)
32 Microsoft (3)
16 BIFIT (1)
7 Emumba (2)
6 Solarflare (1)
6 Chelsio (2)
5 OKTET Labs (4)
The new features for 20.11 can be submitted during one month.
DPDK 20.11 will be a big and busy release. Please check the schedule:
http://core.dpdk.org/roadmap#dates
Thanks everyone, stay safe and keep up morale.
^ permalink raw reply [relevance 3%]
* [dpdk-dev] [PATCH 20.11 3/7] acl: remove of unused enum value
2020-08-07 16:28 3% [dpdk-dev] [PATCH 20.11 0/7] acl: introduce AVX512 classify method Konstantin Ananyev
@ 2020-08-07 16:28 4% ` Konstantin Ananyev
0 siblings, 0 replies; 200+ results
From: Konstantin Ananyev @ 2020-08-07 16:28 UTC (permalink / raw)
To: dev; +Cc: jerinj, ruifeng.wang, vladimir.medvedkin, Konstantin Ananyev
Removal of unused enum value (RTE_ACL_CLASSIFY_NUM).
This enum value is not used inside DPDK, while it prevents
to add new classify algorithms without causing an ABI breakage.
Note that this change introduce a formal ABI incompatibility
with previous versions of ACL library.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
lib/librte_acl/rte_acl.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/lib/librte_acl/rte_acl.h b/lib/librte_acl/rte_acl.h
index aa22e70c6..b814423a6 100644
--- a/lib/librte_acl/rte_acl.h
+++ b/lib/librte_acl/rte_acl.h
@@ -241,7 +241,6 @@ enum rte_acl_classify_alg {
RTE_ACL_CLASSIFY_AVX2 = 3, /**< requires AVX2 support. */
RTE_ACL_CLASSIFY_NEON = 4, /**< requires NEON support. */
RTE_ACL_CLASSIFY_ALTIVEC = 5, /**< requires ALTIVEC support. */
- RTE_ACL_CLASSIFY_NUM /* should always be the last one. */
};
/**
--
2.17.1
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH 20.11 0/7] acl: introduce AVX512 classify method
@ 2020-08-07 16:28 3% Konstantin Ananyev
2020-08-07 16:28 4% ` [dpdk-dev] [PATCH 20.11 3/7] acl: remove of unused enum value Konstantin Ananyev
0 siblings, 1 reply; 200+ results
From: Konstantin Ananyev @ 2020-08-07 16:28 UTC (permalink / raw)
To: dev; +Cc: jerinj, ruifeng.wang, vladimir.medvedkin, Konstantin Ananyev
These patch series introduce support of AVX512 specific classify
implementation for ACL library.
Inside it contains two code-paths –
one uses mostly 256 bit instruction/registers and can
process up to 16 flows in parallel.
second uses 512 bit instruction/registers over majority of
places and can process up to 32 flows in parallel.
These internal code-path selection is done internally based
on input burst size and is totally opaque to the user.
On my SKX box test-acl shows ~20-65% improvement
(depending on rule-set and input burst size)
when switching from AVX2 to AVX512 classify algorithms.
Note that this change introduce a formal ABI incompatibility
with previous versions of ACL library.
TODO list:
- Deduplicate 8/16 code paths
- Update default algorithm selection
- Update docs
These patch series depends on:
https://patches.dpdk.org/patch/70429/
to be applied first.
Konstantin Ananyev (7):
acl: fix x86 build when compiler doesn't support AVX2
app/acl: few small improvements
acl: remove of unused enum value
acl: add infrastructure to support AVX512 classify
app/acl: add AVX512 classify support
acl: introduce AVX512 classify implementation
acl: enhance AVX512 classify implementation
app/test-acl/main.c | 19 +-
config/x86/meson.build | 3 +-
lib/librte_acl/Makefile | 26 ++
lib/librte_acl/acl.h | 4 +
lib/librte_acl/acl_run_avx512.c | 140 +++++++
lib/librte_acl/acl_run_avx512x16.h | 635 +++++++++++++++++++++++++++++
lib/librte_acl/acl_run_avx512x8.h | 614 ++++++++++++++++++++++++++++
lib/librte_acl/meson.build | 39 ++
lib/librte_acl/rte_acl.c | 19 +-
lib/librte_acl/rte_acl.h | 2 +-
10 files changed, 1493 insertions(+), 8 deletions(-)
create mode 100644 lib/librte_acl/acl_run_avx512.c
create mode 100644 lib/librte_acl/acl_run_avx512x16.h
create mode 100644 lib/librte_acl/acl_run_avx512x8.h
--
2.17.1
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD
2020-08-05 23:39 4% ` Thomas Monjalon
@ 2020-08-07 16:21 4% ` McDaniel, Timothy
0 siblings, 0 replies; 200+ results
From: McDaniel, Timothy @ 2020-08-07 16:21 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Jerin Jacob, dev, Jerin Jacob, Mattias Rönnblom, Eads, Gage,
Van Haaren, Harry, Hemant Agrawal
>-----Original Message-----
>From: Thomas Monjalon <thomas@monjalon.net>
>Sent: Wednesday, August 5, 2020 6:40 PM
>To: McDaniel, Timothy <timothy.mcdaniel@intel.com>
>Cc: Jerin Jacob <jerinjacobk@gmail.com>; dev@dpdk.org; Jerin Jacob
><jerinj@marvell.com>; Mattias Rönnblom <mattias.ronnblom@ericsson.com>;
>Eads, Gage <gage.eads@intel.com>; Van Haaren, Harry
><harry.van.haaren@intel.com>; Hemant Agrawal <hemant.agrawal@nxp.com>
>Subject: Re: [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD
>
>> > > From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
>> >
>> > There is still "," in the name.
>> >
>> > >
>> > > The ABI changes associated with this notification will better support
>> > > devices that:
>> > > 1. Have limits on the number or queues that may be linked to a port 2.
>> > > Have ports that are limited to exactly one linked queue 3. Are not
>> > > able to transparently transfer the event flow_id field
>> > >
>> > > Signed-off-by: McDaniel Timothy
>> > > <timothy.mcdaniel@intel.com>
>> >
>Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
>> > Acked-by: Jerin Jacob <jerinj@marvell.com>
>> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
>
>Applied with name fixed, thanks
>
Thank you Thomas!
Tim
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH] doc: add sample for ABI checks in contribution guide
2020-08-06 23:43 4% ` Thomas Monjalon
2020-08-07 12:00 4% ` Kinsella, Ray
@ 2020-08-07 12:59 4% ` Kinsella, Ray
1 sibling, 0 replies; 200+ results
From: Kinsella, Ray @ 2020-08-07 12:59 UTC (permalink / raw)
To: Thomas Monjalon, Ferruh Yigit
Cc: John McNamara, Marko Kovacevic, dev, david.marchand, Neil Horman
On 07/08/2020 00:43, Thomas Monjalon wrote:
> +Cc David, Neil and Ray
>
> 03/07/2020 19:15, Ferruh Yigit:
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>> doc/guides/contributing/patches.rst | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst
>> index 25d97b85b..39ec64ec8 100644
>> --- a/doc/guides/contributing/patches.rst
>> +++ b/doc/guides/contributing/patches.rst
>> @@ -550,6 +550,10 @@ results in a subfolder of the current working directory.
>> The environment variable ``DPDK_ABI_REF_DIR`` can be set so that the results go
>> to a different location.
>>
>> +Sample::
>> +
>> + DPDK_ABI_REF_VERSION=v19.11 DPDK_ABI_REF_DIR=/tmp ./devtools/test-meson-builds.sh
>
>
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH] doc: add sample for ABI checks in contribution guide
2020-08-07 12:58 4% ` Ferruh Yigit
@ 2020-08-07 12:58 4% ` Kinsella, Ray
0 siblings, 0 replies; 200+ results
From: Kinsella, Ray @ 2020-08-07 12:58 UTC (permalink / raw)
To: Ferruh Yigit, Thomas Monjalon
Cc: John McNamara, Marko Kovacevic, dev, david.marchand, Neil Horman
On 07/08/2020 13:58, Ferruh Yigit wrote:
> On 8/7/2020 1:00 PM, Kinsella, Ray wrote:
>>
>>
>> On 07/08/2020 00:43, Thomas Monjalon wrote:
>>> +Cc David, Neil and Ray
>>>
>>> 03/07/2020 19:15, Ferruh Yigit:
>>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>>> ---
>>>> doc/guides/contributing/patches.rst | 4 ++++
>>>> 1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst
>>>> index 25d97b85b..39ec64ec8 100644
>>>> --- a/doc/guides/contributing/patches.rst
>>>> +++ b/doc/guides/contributing/patches.rst
>>>> @@ -550,6 +550,10 @@ results in a subfolder of the current working directory.
>>>> The environment variable ``DPDK_ABI_REF_DIR`` can be set so that the results go
>>>> to a different location.
>>>>
>>>> +Sample::
>>>> +
>>>> + DPDK_ABI_REF_VERSION=v19.11 DPDK_ABI_REF_DIR=/tmp ./devtools/test-meson-builds.sh
>>>
>>>
>> This is good, but I think we ought to include some guidance on what version to use.
>> What we agreed at the techboard meeting was that the last release should always be used.
>>
>> The script should probably automagically select the last version.
>> That is work to be done, for the moment, it will be sufficient to amend the line
>>
>> "To enable them, a reference version must be selected via the environment variable DPDK_ABI_REF_VERSION."
>>
>> to something like
>>
>> "To enable them, a reference version must be selected via the environment variable DPDK_ABI_REF_VERSION. Contributors should be ordinarily be referencing the most recent release of DPDK."
>>
>> Make sense?
>>
>
> Intention of the patch is to provide a sample command to help using it,
> independent from what version to use.
>
> What do you think doing reference version guidance in different patch?
>
np. I will do that.
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH] doc: add sample for ABI checks in contribution guide
2020-08-07 12:00 4% ` Kinsella, Ray
@ 2020-08-07 12:58 4% ` Ferruh Yigit
2020-08-07 12:58 4% ` Kinsella, Ray
0 siblings, 1 reply; 200+ results
From: Ferruh Yigit @ 2020-08-07 12:58 UTC (permalink / raw)
To: Kinsella, Ray, Thomas Monjalon
Cc: John McNamara, Marko Kovacevic, dev, david.marchand, Neil Horman
On 8/7/2020 1:00 PM, Kinsella, Ray wrote:
>
>
> On 07/08/2020 00:43, Thomas Monjalon wrote:
>> +Cc David, Neil and Ray
>>
>> 03/07/2020 19:15, Ferruh Yigit:
>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>> ---
>>> doc/guides/contributing/patches.rst | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst
>>> index 25d97b85b..39ec64ec8 100644
>>> --- a/doc/guides/contributing/patches.rst
>>> +++ b/doc/guides/contributing/patches.rst
>>> @@ -550,6 +550,10 @@ results in a subfolder of the current working directory.
>>> The environment variable ``DPDK_ABI_REF_DIR`` can be set so that the results go
>>> to a different location.
>>>
>>> +Sample::
>>> +
>>> + DPDK_ABI_REF_VERSION=v19.11 DPDK_ABI_REF_DIR=/tmp ./devtools/test-meson-builds.sh
>>
>>
> This is good, but I think we ought to include some guidance on what version to use.
> What we agreed at the techboard meeting was that the last release should always be used.
>
> The script should probably automagically select the last version.
> That is work to be done, for the moment, it will be sufficient to amend the line
>
> "To enable them, a reference version must be selected via the environment variable DPDK_ABI_REF_VERSION."
>
> to something like
>
> "To enable them, a reference version must be selected via the environment variable DPDK_ABI_REF_VERSION. Contributors should be ordinarily be referencing the most recent release of DPDK."
>
> Make sense?
>
Intention of the patch is to provide a sample command to help using it,
independent from what version to use.
What do you think doing reference version guidance in different patch?
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH 20.11 07/19] doc: remove references to make in contributing guides
2020-08-07 12:29 1% ` [dpdk-dev] [PATCH 20.11 02/19] build: remove makefiles and mk directory Ciara Power
2020-08-07 12:29 1% ` [dpdk-dev] [PATCH 20.11 03/19] config: remove all config files used by make Ciara Power
@ 2020-08-07 12:29 5% ` Ciara Power
3 siblings, 0 replies; 200+ results
From: Ciara Power @ 2020-08-07 12:29 UTC (permalink / raw)
To: dev; +Cc: bruce.richardson, thomas, Ciara Power
Make is no longer supported for compiling DPDK, references are now
removed in the documentation.
Signed-off-by: Ciara Power <ciara.power@intel.com>
---
doc/guides/contributing/coding_style.rst | 46 +-------
doc/guides/contributing/design.rst | 127 ++--------------------
doc/guides/contributing/documentation.rst | 27 +----
doc/guides/contributing/patches.rst | 45 --------
4 files changed, 13 insertions(+), 232 deletions(-)
diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst
index b55075eaa2..dc352d03ca 100644
--- a/doc/guides/contributing/coding_style.rst
+++ b/doc/guides/contributing/coding_style.rst
@@ -773,52 +773,16 @@ The ``pep8`` tool can be used for testing compliance with the guidelines.
Integrating with the Build System
---------------------------------
-DPDK supports being built in two different ways:
-
-* using ``make`` - or more specifically "GNU make", i.e. ``gmake`` on FreeBSD
-* using the tools ``meson`` and ``ninja``
+DPDK supports being built by using the tools ``meson`` and ``ninja``
Any new library or driver to be integrated into DPDK should support being
-built with both systems. While building using ``make`` is a legacy approach, and
-most build-system enhancements are being done using ``meson`` and ``ninja``
-there are no plans at this time to deprecate the legacy ``make`` build system.
+built with this system.
-Therefore all new component additions should include both a ``Makefile`` and a
-``meson.build`` file, and should be added to the component lists in both the
-``Makefile`` and ``meson.build`` files in the relevant top-level directory:
+Therefore all new component additions should include a ``meson.build`` file,
+and should be added to the component lists in the ``meson.build`` files in the
+relevant top-level directory:
either ``lib`` directory or a ``driver`` subdirectory.
-Makefile Contents
-~~~~~~~~~~~~~~~~~
-
-The ``Makefile`` for the component should be of the following format, where
-``<name>`` corresponds to the name of the library in question, e.g. hash,
-lpm, etc. For drivers, the same format of Makefile is used.
-
-.. code-block:: none
-
- # pull in basic DPDK definitions, including whether library is to be
- # built or not
- include $(RTE_SDK)/mk/rte.vars.mk
-
- # library name
- LIB = librte_<name>.a
-
- # any library cflags needed. Generally add "-O3 $(WERROR_FLAGS)"
- CFLAGS += -O3
- CFLAGS += $(WERROR_FLAGS)
-
- # the symbol version information for the library
- EXPORT_MAP := rte_<name>_version.map
-
- # all source filenames are stored in SRCS-y
- SRCS-$(CONFIG_RTE_LIBRTE_<NAME>) += rte_<name>.c
-
- # install includes
- SYMLINK-$(CONFIG_RTE_LIBRTE_<NAME>)-include += rte_<name>.h
-
- # pull in rules to build the library
- include $(RTE_SDK)/mk/rte.lib.mk
Meson Build File Contents - Libraries
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/guides/contributing/design.rst b/doc/guides/contributing/design.rst
index 5fe7f63942..6ce0de97ac 100644
--- a/doc/guides/contributing/design.rst
+++ b/doc/guides/contributing/design.rst
@@ -21,7 +21,7 @@ A file located in a subdir of "linux" is specific to this execution environment.
When absolutely necessary, there are several ways to handle specific code:
-* Use a ``#ifdef`` with the CONFIG option in the C code.
+* Use a ``#ifdef`` with a build definition macro in the C code.
This can be done when the differences are small and they can be embedded in the same C file:
.. code-block:: c
@@ -32,30 +32,22 @@ When absolutely necessary, there are several ways to handle specific code:
titi();
#endif
-* Use the CONFIG option in the Makefile. This is done when the differences are more significant.
- In this case, the code is split into two separate files that are architecture or environment specific.
- This should only apply inside the EAL library.
-
-.. note::
-
- As in the linux kernel, the ``CONFIG_`` prefix is not used in C code.
- This is only needed in Makefiles or shell scripts.
Per Architecture Sources
~~~~~~~~~~~~~~~~~~~~~~~~
-The following config options can be used:
+The following macro options can be used:
-* ``CONFIG_RTE_ARCH`` is a string that contains the name of the architecture.
-* ``CONFIG_RTE_ARCH_I686``, ``CONFIG_RTE_ARCH_X86_64``, ``CONFIG_RTE_ARCH_X86_64_32`` or ``CONFIG_RTE_ARCH_PPC_64`` are defined only if we are building for those architectures.
+* ``RTE_ARCH`` is a string that contains the name of the architecture.
+* ``RTE_ARCH_I686``, ``RTE_ARCH_X86_64``, ``RTE_ARCH_X86_64_32`` or ``RTE_ARCH_PPC_64`` are defined only if we are building for those architectures.
Per Execution Environment Sources
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The following config options can be used:
+The following macro options can be used:
-* ``CONFIG_RTE_EXEC_ENV`` is a string that contains the name of the executive environment.
-* ``CONFIG_RTE_EXEC_ENV_FREEBSD`` or ``CONFIG_RTE_EXEC_ENV_LINUX`` are defined only if we are building for this execution environment.
+* ``RTE_EXEC_ENV`` is a string that contains the name of the executive environment.
+* ``RTE_EXEC_ENV_FREEBSD`` or ``RTE_EXEC_ENV_LINUX`` are defined only if we are building for this execution environment.
Mbuf features
-------------
@@ -73,111 +65,6 @@ Adding a new static field or flag must be an exception matching many criteria
like (non exhaustive): wide usage, performance, size.
-Library Statistics
-------------------
-
-Description
-~~~~~~~~~~~
-
-This document describes the guidelines for DPDK library-level statistics counter
-support. This includes guidelines for turning library statistics on and off and
-requirements for preventing ABI changes when implementing statistics.
-
-
-Mechanism to allow the application to turn library statistics on and off
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Each library that maintains statistics counters should provide a single build
-time flag that decides whether the statistics counter collection is enabled or
-not. This flag should be exposed as a variable within the DPDK configuration
-file. When this flag is set, all the counters supported by current library are
-collected for all the instances of every object type provided by the library.
-When this flag is cleared, none of the counters supported by the current library
-are collected for any instance of any object type provided by the library:
-
-.. code-block:: console
-
- # DPDK file config/common_linux, config/common_freebsd, etc.
- CONFIG_RTE_<LIBRARY_NAME>_STATS_COLLECT=y/n
-
-The default value for this DPDK configuration file variable (either "yes" or
-"no") is decided by each library.
-
-
-Prevention of ABI changes due to library statistics support
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The layout of data structures and prototype of functions that are part of the
-library API should not be affected by whether the collection of statistics
-counters is turned on or off for the current library. In practical terms, this
-means that space should always be allocated in the API data structures for
-statistics counters and the statistics related API functions are always built
-into the code, regardless of whether the statistics counter collection is turned
-on or off for the current library.
-
-When the collection of statistics counters for the current library is turned
-off, the counters retrieved through the statistics related API functions should
-have a default value of zero.
-
-
-Motivation to allow the application to turn library statistics on and off
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It is highly recommended that each library provides statistics counters to allow
-an application to monitor the library-level run-time events. Typical counters
-are: number of packets received/dropped/transmitted, number of buffers
-allocated/freed, number of occurrences for specific events, etc.
-
-However, the resources consumed for library-level statistics counter collection
-have to be spent out of the application budget and the counters collected by
-some libraries might not be relevant to the current application. In order to
-avoid any unwanted waste of resources and/or performance impacts, the
-application should decide at build time whether the collection of library-level
-statistics counters should be turned on or off for each library individually.
-
-Library-level statistics counters can be relevant or not for specific
-applications:
-
-* For Application A, counters maintained by Library X are always relevant and
- the application needs to use them to implement certain features, such as traffic
- accounting, logging, application-level statistics, etc. In this case,
- the application requires that collection of statistics counters for Library X is
- always turned on.
-
-* For Application B, counters maintained by Library X are only useful during the
- application debug stage and are not relevant once debug phase is over. In this
- case, the application may decide to turn on the collection of Library X
- statistics counters during the debug phase and at a later stage turn them off.
-
-* For Application C, counters maintained by Library X are not relevant at all.
- It might be that the application maintains its own set of statistics counters
- that monitor a different set of run-time events (e.g. number of connection
- requests, number of active users, etc). It might also be that the application
- uses multiple libraries (Library X, Library Y, etc) and it is interested in the
- statistics counters of Library Y, but not in those of Library X. In this case,
- the application may decide to turn the collection of statistics counters off for
- Library X and on for Library Y.
-
-The statistics collection consumes a certain amount of CPU resources (cycles,
-cache bandwidth, memory bandwidth, etc) that depends on:
-
-* Number of libraries used by the current application that have statistics
- counters collection turned on.
-
-* Number of statistics counters maintained by each library per object type
- instance (e.g. per port, table, pipeline, thread, etc).
-
-* Number of instances created for each object type supported by each library.
-
-* Complexity of the statistics logic collection for each counter: when only
- some occurrences of a specific event are valid, additional logic is typically
- needed to decide whether the current occurrence of the event should be counted
- or not. For example, in the event of packet reception, when only TCP packets
- with destination port within a certain range should be recorded, conditional
- branches are usually required. When processing a burst of packets that have been
- validated for header integrity, counting the number of bits set in a bitmask
- might be needed.
-
PF and VF Considerations
------------------------
diff --git a/doc/guides/contributing/documentation.rst b/doc/guides/contributing/documentation.rst
index 375ea64ba8..a4b1cc5e06 100644
--- a/doc/guides/contributing/documentation.rst
+++ b/doc/guides/contributing/documentation.rst
@@ -222,25 +222,8 @@ Build commands
~~~~~~~~~~~~~~
The documentation is built using the standard DPDK build system.
-Some examples are shown below:
-* Generate all the documentation targets::
-
- make doc
-
-* Generate the Doxygen API documentation in Html::
-
- make doc-api-html
-
-* Generate the guides documentation in Html::
-
- make doc-guides-html
-
-* Generate the guides documentation in Pdf::
-
- make doc-guides-pdf
-
-The output of these commands is generated in the ``build`` directory::
+The output is generated in the ``build`` directory::
build/doc
|-- html
@@ -255,10 +238,6 @@ The output of these commands is generated in the ``build`` directory::
Make sure to fix any Sphinx or Doxygen warnings when adding or updating documentation.
-The documentation output files can be removed as follows::
-
- make doc-clean
-
Document Guidelines
-------------------
@@ -743,9 +722,5 @@ The following are some guidelines for use of Doxygen in the DPDK API documentati
/** Array of physical page addresses for the mempool buffer. */
phys_addr_t elt_pa[MEMPOOL_PG_NUM_DEFAULT];
-* Check for Doxygen warnings in new code by checking the API documentation build::
-
- make doc-api-html >/dev/null
-
* Read the rendered section of the documentation that you have added for correctness, clarity and consistency
with the surrounding text.
diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst
index de493a901d..d86cda1a66 100644
--- a/doc/guides/contributing/patches.rst
+++ b/doc/guides/contributing/patches.rst
@@ -463,51 +463,6 @@ and the -r option allows the user specify a ``git log`` range.
Checking Compilation
--------------------
-Makefile System
-~~~~~~~~~~~~~~~
-
-Compilation of patches and changes should be tested using the ``test-build.sh`` script in the ``devtools``
-directory of the DPDK repo::
-
- devtools/test-build.sh x86_64-native-linux-gcc+next+shared
-
-The script usage is::
-
- test-build.sh [-h] [-jX] [-s] [config1 [config2] ...]]
-
-Where:
-
-* ``-h``: help, usage.
-* ``-jX``: use X parallel jobs in "make".
-* ``-s``: short test with only first config and without examples/doc.
-* ``config``: default config name plus config switches delimited with a ``+`` sign.
-
-Examples of configs are::
-
- x86_64-native-linux-gcc
- x86_64-native-linux-gcc+next+shared
- x86_64-native-linux-clang+shared
-
-The builds can be modified via the following environmental variables:
-
-* ``DPDK_BUILD_TEST_CONFIGS`` (target1+option1+option2 target2)
-* ``DPDK_BUILD_TEST_DIR``
-* ``DPDK_DEP_CFLAGS``
-* ``DPDK_DEP_LDFLAGS``
-* ``DPDK_DEP_PCAP`` (y/[n])
-* ``DPDK_NOTIFY`` (notify-send)
-
-These can be set from the command line or in the config files shown above in the :ref:`contrib_checkpatch`.
-
-The recommended configurations and options to test compilation prior to submitting patches are::
-
- x86_64-native-linux-gcc+shared+next
- x86_64-native-linux-clang+shared
- i686-native-linux-gcc
-
- export DPDK_DEP_ZLIB=y
- export DPDK_DEP_PCAP=y
- export DPDK_DEP_SSL=y
Meson System
~~~~~~~~~~~~
--
2.17.1
^ permalink raw reply [relevance 5%]
* [dpdk-dev] [PATCH 20.11 03/19] config: remove all config files used by make
2020-08-07 12:29 1% ` [dpdk-dev] [PATCH 20.11 02/19] build: remove makefiles and mk directory Ciara Power
@ 2020-08-07 12:29 1% ` Ciara Power
2020-08-07 12:29 5% ` [dpdk-dev] [PATCH 20.11 07/19] doc: remove references to make in contributing guides Ciara Power
3 siblings, 0 replies; 200+ results
From: Ciara Power @ 2020-08-07 12:29 UTC (permalink / raw)
To: dev; +Cc: bruce.richardson, thomas, Ciara Power
Make is not supported for compiling DPDK, the config files are no
longer needed.
Signed-off-by: Ciara Power <ciara.power@intel.com>
---
config/common_armv8a_linux | 43 -
config/common_base | 1154 -----------------
config/common_freebsd | 15 -
config/common_linux | 68 -
config/defconfig_arm-armv7a-linux-gcc | 1 -
config/defconfig_arm-armv7a-linuxapp-gcc | 49 -
config/defconfig_arm64-armada-linux-gcc | 1 -
config/defconfig_arm64-armada-linuxapp-gcc | 41 -
config/defconfig_arm64-armv8a-linux-clang | 1 -
config/defconfig_arm64-armv8a-linux-gcc | 1 -
config/defconfig_arm64-armv8a-linuxapp-clang | 8 -
config/defconfig_arm64-armv8a-linuxapp-gcc | 9 -
config/defconfig_arm64-bluefield-linux-gcc | 1 -
config/defconfig_arm64-bluefield-linuxapp-gcc | 18 -
config/defconfig_arm64-dpaa-linux-gcc | 1 -
config/defconfig_arm64-dpaa-linuxapp-gcc | 31 -
config/defconfig_arm64-emag-linux-gcc | 1 -
config/defconfig_arm64-emag-linuxapp-gcc | 11 -
config/defconfig_arm64-n1sdp-linux-gcc | 1 -
config/defconfig_arm64-n1sdp-linuxapp-gcc | 14 -
config/defconfig_arm64-octeontx2-linux-gcc | 1 -
config/defconfig_arm64-octeontx2-linuxapp-gcc | 18 -
config/defconfig_arm64-stingray-linux-gcc | 1 -
config/defconfig_arm64-stingray-linuxapp-gcc | 14 -
config/defconfig_arm64-thunderx-linux-gcc | 1 -
config/defconfig_arm64-thunderx-linuxapp-gcc | 17 -
config/defconfig_arm64-thunderx2-linux-gcc | 1 -
config/defconfig_arm64-thunderx2-linuxapp-gcc | 12 -
config/defconfig_arm64-xgene1-linux-gcc | 1 -
config/defconfig_arm64-xgene1-linuxapp-gcc | 8 -
config/defconfig_i686-native-linux-gcc | 1 -
config/defconfig_i686-native-linux-icc | 1 -
config/defconfig_i686-native-linuxapp-gcc | 66 -
config/defconfig_i686-native-linuxapp-icc | 66 -
config/defconfig_ppc_64-power8-linux-gcc | 1 -
config/defconfig_ppc_64-power8-linuxapp-gcc | 35 -
config/defconfig_x86_64-native-bsdapp-clang | 14 -
config/defconfig_x86_64-native-bsdapp-gcc | 14 -
config/defconfig_x86_64-native-freebsd-clang | 1 -
config/defconfig_x86_64-native-freebsd-gcc | 1 -
config/defconfig_x86_64-native-linux-clang | 1 -
config/defconfig_x86_64-native-linux-gcc | 1 -
config/defconfig_x86_64-native-linux-icc | 1 -
config/defconfig_x86_64-native-linuxapp-clang | 14 -
config/defconfig_x86_64-native-linuxapp-gcc | 14 -
config/defconfig_x86_64-native-linuxapp-icc | 29 -
config/defconfig_x86_x32-native-linux-gcc | 1 -
config/defconfig_x86_x32-native-linuxapp-gcc | 46 -
48 files changed, 1850 deletions(-)
delete mode 100644 config/common_armv8a_linux
delete mode 100644 config/common_base
delete mode 100644 config/common_freebsd
delete mode 100644 config/common_linux
delete mode 120000 config/defconfig_arm-armv7a-linux-gcc
delete mode 100644 config/defconfig_arm-armv7a-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-armada-linux-gcc
delete mode 100644 config/defconfig_arm64-armada-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-armv8a-linux-clang
delete mode 120000 config/defconfig_arm64-armv8a-linux-gcc
delete mode 100644 config/defconfig_arm64-armv8a-linuxapp-clang
delete mode 100644 config/defconfig_arm64-armv8a-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-bluefield-linux-gcc
delete mode 100644 config/defconfig_arm64-bluefield-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-dpaa-linux-gcc
delete mode 100644 config/defconfig_arm64-dpaa-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-emag-linux-gcc
delete mode 100644 config/defconfig_arm64-emag-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-n1sdp-linux-gcc
delete mode 100644 config/defconfig_arm64-n1sdp-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-octeontx2-linux-gcc
delete mode 100644 config/defconfig_arm64-octeontx2-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-stingray-linux-gcc
delete mode 100644 config/defconfig_arm64-stingray-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-thunderx-linux-gcc
delete mode 100644 config/defconfig_arm64-thunderx-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-thunderx2-linux-gcc
delete mode 100644 config/defconfig_arm64-thunderx2-linuxapp-gcc
delete mode 120000 config/defconfig_arm64-xgene1-linux-gcc
delete mode 100644 config/defconfig_arm64-xgene1-linuxapp-gcc
delete mode 120000 config/defconfig_i686-native-linux-gcc
delete mode 120000 config/defconfig_i686-native-linux-icc
delete mode 100644 config/defconfig_i686-native-linuxapp-gcc
delete mode 100644 config/defconfig_i686-native-linuxapp-icc
delete mode 120000 config/defconfig_ppc_64-power8-linux-gcc
delete mode 100644 config/defconfig_ppc_64-power8-linuxapp-gcc
delete mode 100644 config/defconfig_x86_64-native-bsdapp-clang
delete mode 100644 config/defconfig_x86_64-native-bsdapp-gcc
delete mode 120000 config/defconfig_x86_64-native-freebsd-clang
delete mode 120000 config/defconfig_x86_64-native-freebsd-gcc
delete mode 120000 config/defconfig_x86_64-native-linux-clang
delete mode 120000 config/defconfig_x86_64-native-linux-gcc
delete mode 120000 config/defconfig_x86_64-native-linux-icc
delete mode 100644 config/defconfig_x86_64-native-linuxapp-clang
delete mode 100644 config/defconfig_x86_64-native-linuxapp-gcc
delete mode 100644 config/defconfig_x86_64-native-linuxapp-icc
delete mode 120000 config/defconfig_x86_x32-native-linux-gcc
delete mode 100644 config/defconfig_x86_x32-native-linuxapp-gcc
diff --git a/config/common_armv8a_linux b/config/common_armv8a_linux
deleted file mode 100644
index e942657a0f..0000000000
--- a/config/common_armv8a_linux
+++ /dev/null
@@ -1,43 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="armv8a"
-
-CONFIG_RTE_ARCH="arm64"
-CONFIG_RTE_ARCH_ARM64=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_FORCE_INTRINSICS=y
-
-# Maximum available cache line size in arm64 implementations.
-# Setting to maximum available cache line size in generic config
-# to address minimum DMA alignment across all arm64 implementations.
-CONFIG_RTE_CACHE_LINE_SIZE=128
-
-CONFIG_RTE_USE_C11_MEM_MODEL=y
-
-# Accelarate rte_memcpy. Be sure to run unit test (memcpy_perf_autotest)
-# to determine the best threshold in code. Refer to notes in source file
-# (lib/librte_eal/arm/include/rte_memcpy_64.h) for more info.
-CONFIG_RTE_ARCH_ARM64_MEMCPY=n
-#CONFIG_RTE_ARM64_MEMCPY_ALIGNED_THRESHOLD=2048
-#CONFIG_RTE_ARM64_MEMCPY_UNALIGNED_THRESHOLD=512
-# Leave below RTE_ARM64_MEMCPY_xxx options commented out, unless there're
-# strong reasons.
-#CONFIG_RTE_ARM64_MEMCPY_SKIP_GCC_VER_CHECK=n
-#CONFIG_RTE_ARM64_MEMCPY_ALIGN_MASK=0xF
-#CONFIG_RTE_ARM64_MEMCPY_STRICT_ALIGN=n
-
-CONFIG_RTE_LIBRTE_IONIC_PMD=n
-CONFIG_RTE_LIBRTE_FM10K_PMD=n
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n
-
-#
-# NXP PFE PMD Driver
-#
-CONFIG_RTE_LIBRTE_PFE_PMD=y
diff --git a/config/common_base b/config/common_base
deleted file mode 100644
index fbf0ee70c8..0000000000
--- a/config/common_base
+++ /dev/null
@@ -1,1154 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-#
-# String that appears before the version number
-#
-CONFIG_RTE_VER_PREFIX="DPDK"
-
-#
-# Version information completed when this file is processed for a build
-#
-CONFIG_RTE_VER_YEAR=__YEAR
-CONFIG_RTE_VER_MONTH=__MONTH
-CONFIG_RTE_VER_MINOR=__MINOR
-CONFIG_RTE_VER_SUFFIX=__SUFFIX
-CONFIG_RTE_VER_RELEASE=__RELEASE
-
-#
-# define executive environment
-# RTE_EXEC_ENV values are the directories in mk/exec-env/
-#
-CONFIG_RTE_EXEC_ENV=
-
-#
-# define the architecture we compile for.
-# RTE_ARCH values are the directories in mk/arch/
-#
-CONFIG_RTE_ARCH=
-
-#
-# machine can define specific variables or action for a specific board
-# RTE_MACHINE values are the directories in mk/machine/
-#
-CONFIG_RTE_MACHINE=
-
-#
-# The compiler we use.
-# RTE_TOOLCHAIN values are the directories in mk/toolchain/
-#
-CONFIG_RTE_TOOLCHAIN=
-
-#
-# Use intrinsics or assembly code for key routines
-#
-CONFIG_RTE_FORCE_INTRINSICS=n
-
-#
-# Machine forces strict alignment constraints.
-#
-CONFIG_RTE_ARCH_STRICT_ALIGN=n
-
-#
-# Enable link time optimization
-#
-CONFIG_RTE_ENABLE_LTO=n
-
-#
-# Compile to share library
-#
-CONFIG_RTE_BUILD_SHARED_LIB=n
-
-#
-# Use newest code breaking previous ABI
-#
-CONFIG_RTE_NEXT_ABI=y
-
-#
-# Machine's cache line size
-#
-CONFIG_RTE_CACHE_LINE_SIZE=64
-
-#
-# Memory model
-#
-CONFIG_RTE_USE_C11_MEM_MODEL=n
-
-#
-# Compile Environment Abstraction Layer
-#
-CONFIG_RTE_LIBRTE_EAL=y
-CONFIG_RTE_MAX_LCORE=128
-CONFIG_RTE_MAX_NUMA_NODES=8
-CONFIG_RTE_MAX_HEAPS=32
-CONFIG_RTE_MAX_MEMSEG_LISTS=64
-# each memseg list will be limited to either RTE_MAX_MEMSEG_PER_LIST pages
-# or RTE_MAX_MEM_MB_PER_LIST megabytes worth of memory, whichever is smaller
-CONFIG_RTE_MAX_MEMSEG_PER_LIST=8192
-CONFIG_RTE_MAX_MEM_MB_PER_LIST=32768
-# a "type" is a combination of page size and NUMA node. total number of memseg
-# lists per type will be limited to either RTE_MAX_MEMSEG_PER_TYPE pages (split
-# over multiple lists of RTE_MAX_MEMSEG_PER_LIST pages), or
-# RTE_MAX_MEM_MB_PER_TYPE megabytes of memory (split over multiple lists of
-# RTE_MAX_MEM_MB_PER_LIST), whichever is smaller
-CONFIG_RTE_MAX_MEMSEG_PER_TYPE=32768
-CONFIG_RTE_MAX_MEM_MB_PER_TYPE=131072
-# global maximum usable amount of VA, in megabytes
-CONFIG_RTE_MAX_MEM_MB=524288
-CONFIG_RTE_MAX_MEMZONE=2560
-CONFIG_RTE_MAX_TAILQ=32
-CONFIG_RTE_ENABLE_ASSERT=n
-CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO
-CONFIG_RTE_ENABLE_TRACE_FP=n
-CONFIG_RTE_LOG_HISTORY=256
-CONFIG_RTE_BACKTRACE=y
-CONFIG_RTE_LIBEAL_USE_HPET=n
-CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n
-CONFIG_RTE_EAL_IGB_UIO=n
-CONFIG_RTE_EAL_VFIO=n
-CONFIG_RTE_MAX_VFIO_GROUPS=64
-CONFIG_RTE_MAX_VFIO_CONTAINERS=64
-CONFIG_RTE_MALLOC_DEBUG=n
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_USE_LIBBSD=n
-# Use WFE instructions to implement the rte_wait_for_equal_xxx APIs,
-# calling these APIs put the cores in low power state while waiting
-# for the memory address to become equal to the expected value.
-# This is supported only by aarch64.
-CONFIG_RTE_ARM_USE_WFE=n
-
-#
-# Recognize/ignore the AVX/AVX512 CPU flags for performance/power testing.
-# AVX512 is marked as experimental for now, will enable it after enough
-# field test and possible optimization.
-#
-CONFIG_RTE_ENABLE_AVX=y
-CONFIG_RTE_ENABLE_AVX512=n
-
-# Use ARM LSE ATOMIC instructions
-CONFIG_RTE_ARM_FEATURE_ATOMICS=n
-
-# Default driver path (or "" to disable)
-CONFIG_RTE_EAL_PMD_PATH=""
-
-#
-# Compile Environment Abstraction Layer to support Vmware TSC map
-#
-CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=y
-
-#
-# Compile the PCI library
-#
-CONFIG_RTE_LIBRTE_PCI=y
-
-#
-# Compile the argument parser library
-#
-CONFIG_RTE_LIBRTE_KVARGS=y
-
-#
-# Compile generic ethernet library
-#
-CONFIG_RTE_LIBRTE_ETHER=y
-CONFIG_RTE_LIBRTE_ETHDEV_DEBUG=n
-CONFIG_RTE_MAX_ETHPORTS=32
-CONFIG_RTE_MAX_QUEUES_PER_PORT=1024
-CONFIG_RTE_LIBRTE_IEEE1588=n
-CONFIG_RTE_ETHDEV_QUEUE_STAT_CNTRS=16
-CONFIG_RTE_ETHDEV_RXTX_CALLBACKS=y
-CONFIG_RTE_ETHDEV_PROFILE_WITH_VTUNE=n
-
-#
-# Turn off Tx preparation stage
-#
-# Warning: rte_eth_tx_prepare() can be safely disabled only if using a
-# driver which do not implement any Tx preparation.
-#
-CONFIG_RTE_ETHDEV_TX_PREPARE_NOOP=n
-
-#
-# Common libraries, before Bus/PMDs
-#
-CONFIG_RTE_LIBRTE_COMMON_DPAAX=n
-
-#
-# Compile the Intel FPGA bus
-#
-CONFIG_RTE_LIBRTE_IFPGA_BUS=y
-
-#
-# Compile PCI bus driver
-#
-CONFIG_RTE_LIBRTE_PCI_BUS=y
-
-#
-# Compile the vdev bus
-#
-CONFIG_RTE_LIBRTE_VDEV_BUS=y
-
-#
-# Compile ARK PMD
-#
-CONFIG_RTE_LIBRTE_ARK_PMD=y
-CONFIG_RTE_LIBRTE_ARK_PAD_TX=y
-CONFIG_RTE_LIBRTE_ARK_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_ARK_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_ARK_DEBUG_STATS=n
-CONFIG_RTE_LIBRTE_ARK_DEBUG_TRACE=n
-
-#
-# Compile Aquantia Atlantic PMD driver
-#
-CONFIG_RTE_LIBRTE_ATLANTIC_PMD=y
-
-#
-# Compile AMD PMD
-#
-CONFIG_RTE_LIBRTE_AXGBE_PMD=y
-CONFIG_RTE_LIBRTE_AXGBE_PMD_DEBUG=n
-
-#
-# Compile burst-oriented Broadcom PMD driver
-#
-CONFIG_RTE_LIBRTE_BNX2X_PMD=n
-CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=n
-CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC=n
-
-#
-# Compile burst-oriented Broadcom BNXT PMD driver
-#
-CONFIG_RTE_LIBRTE_BNXT_PMD=y
-
-#
-# Compile burst-oriented Chelsio Terminator (CXGBE) PMD
-#
-CONFIG_RTE_LIBRTE_CXGBE_PMD=y
-
-#
-# Compile burst-oriented NXP PFE PMD driver
-#
-CONFIG_RTE_LIBRTE_PFE_PMD=n
-
-# NXP DPAA Bus
-CONFIG_RTE_LIBRTE_DPAA_BUS=n
-CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=n
-CONFIG_RTE_LIBRTE_DPAA_PMD=n
-CONFIG_RTE_LIBRTE_DPAA_HWDEBUG=n
-
-#
-# Compile NXP DPAA2 FSL-MC Bus
-#
-CONFIG_RTE_LIBRTE_FSLMC_BUS=n
-
-#
-# Compile Support Libraries for NXP DPAA2
-#
-CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=n
-CONFIG_RTE_LIBRTE_DPAA2_USE_PHYS_IOVA=y
-
-#
-# Compile burst-oriented NXP DPAA2 PMD driver
-#
-CONFIG_RTE_LIBRTE_DPAA2_PMD=n
-CONFIG_RTE_LIBRTE_DPAA2_DEBUG_DRIVER=n
-
-#
-# Compile NXP ENETC PMD Driver
-#
-CONFIG_RTE_LIBRTE_ENETC_PMD=n
-
-#
-# Compile burst-oriented Amazon ENA PMD driver
-#
-CONFIG_RTE_LIBRTE_ENA_PMD=y
-CONFIG_RTE_LIBRTE_ENA_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_ENA_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_ENA_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_ENA_COM_DEBUG=n
-
-#
-# Compile burst-oriented Cisco ENIC PMD driver
-#
-CONFIG_RTE_LIBRTE_ENIC_PMD=y
-
-#
-# Compile burst-oriented IGB & EM PMD drivers
-#
-CONFIG_RTE_LIBRTE_EM_PMD=y
-CONFIG_RTE_LIBRTE_IGB_PMD=y
-CONFIG_RTE_LIBRTE_E1000_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_E1000_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_E1000_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_E1000_PF_DISABLE_STRIP_CRC=n
-
-#
-# Compile burst-oriented HINIC PMD driver
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-
-#
-# Compile burst-oriented HNS3 PMD driver
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
-
-#
-# Compile Pensando IONIC PMD driver
-#
-CONFIG_RTE_LIBRTE_IONIC_PMD=y
-
-#
-# Compile burst-oriented IXGBE PMD driver
-#
-CONFIG_RTE_LIBRTE_IXGBE_PMD=y
-CONFIG_RTE_LIBRTE_IXGBE_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n
-CONFIG_RTE_LIBRTE_IXGBE_BYPASS=n
-
-#
-# Compile burst-oriented I40E PMD driver
-#
-CONFIG_RTE_LIBRTE_I40E_PMD=y
-CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
-CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
-CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
-CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
-CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=4
-
-#
-# Compile burst-oriented FM10K PMD
-#
-CONFIG_RTE_LIBRTE_FM10K_PMD=y
-CONFIG_RTE_LIBRTE_FM10K_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_FM10K_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_FM10K_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_FM10K_RX_OLFLAGS_ENABLE=y
-CONFIG_RTE_LIBRTE_FM10K_INC_VECTOR=y
-
-#
-# Compile burst-oriented ICE PMD driver
-#
-CONFIG_RTE_LIBRTE_ICE_PMD=y
-CONFIG_RTE_LIBRTE_ICE_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_ICE_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_ICE_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_ICE_16BYTE_RX_DESC=n
-
-# Compile burst-oriented IAVF PMD driver
-#
-CONFIG_RTE_LIBRTE_IAVF_PMD=y
-CONFIG_RTE_LIBRTE_IAVF_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_IAVF_DEBUG_TX_FREE=n
-CONFIG_RTE_LIBRTE_IAVF_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_IAVF_DEBUG_DUMP_DESC=n
-CONFIG_RTE_LIBRTE_IAVF_16BYTE_RX_DESC=n
-#
-# Compile burst-oriented IPN3KE PMD driver
-#
-CONFIG_RTE_LIBRTE_IPN3KE_PMD=n
-
-#
-# Compile burst-oriented IGC PMD drivers
-#
-CONFIG_RTE_LIBRTE_IGC_PMD=y
-CONFIG_RTE_LIBRTE_IGC_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_IGC_DEBUG_TX=n
-
-#
-# Compile burst-oriented Mellanox ConnectX-3 (MLX4) PMD
-#
-CONFIG_RTE_LIBRTE_MLX4_PMD=n
-CONFIG_RTE_LIBRTE_MLX4_DEBUG=n
-
-#
-# Compile burst-oriented Mellanox ConnectX-4, ConnectX-5,
-# ConnectX-6 & BlueField (MLX5) PMD
-#
-CONFIG_RTE_LIBRTE_MLX5_PMD=n
-CONFIG_RTE_LIBRTE_MLX5_DEBUG=n
-
-#
-# Compile regex-oriented Mellanox PMD
-#
-CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD=n
-
-#
-# Compile vdpa-oriented Mellanox ConnectX-6 & BlueField (MLX5) PMD
-#
-CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD=n
-
-# Linking method for mlx4/5 dependency on ibverbs and related libraries
-# Default linking is dynamic by linker.
-# Other options are: dynamic by dlopen at run-time, or statically embedded.
-CONFIG_RTE_IBVERBS_LINK_DLOPEN=n
-CONFIG_RTE_IBVERBS_LINK_STATIC=n
-
-#
-# Compile burst-oriented Netronome NFP PMD driver
-#
-CONFIG_RTE_LIBRTE_NFP_PMD=n
-CONFIG_RTE_LIBRTE_NFP_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_NFP_DEBUG_RX=n
-
-# QLogic 10G/25G/40G/50G/100G PMD
-#
-CONFIG_RTE_LIBRTE_QEDE_PMD=y
-CONFIG_RTE_LIBRTE_QEDE_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_QEDE_DEBUG_RX=n
-#Provides abs path/name of the firmware file.
-#Empty string denotes driver will use default firmware
-CONFIG_RTE_LIBRTE_QEDE_FW=""
-
-#
-# Compile burst-oriented Solarflare libefx-based PMD
-#
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=y
-CONFIG_RTE_LIBRTE_SFC_EFX_DEBUG=n
-
-#
-# Compile software PMD backed by SZEDATA2 device
-#
-CONFIG_RTE_LIBRTE_PMD_SZEDATA2=n
-
-#
-# Compile software PMD backed by NFB device
-#
-CONFIG_RTE_LIBRTE_NFB_PMD=n
-
-#
-# Compile burst-oriented Cavium Thunderx NICVF PMD driver
-#
-CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=y
-CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_TX=n
-
-#
-# Compile burst-oriented Cavium LiquidIO PMD driver
-#
-CONFIG_RTE_LIBRTE_LIO_PMD=y
-CONFIG_RTE_LIBRTE_LIO_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_LIO_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_LIO_DEBUG_MBOX=n
-CONFIG_RTE_LIBRTE_LIO_DEBUG_REGS=n
-
-#
-# Compile burst-oriented Cavium OCTEONTX network PMD driver
-#
-CONFIG_RTE_LIBRTE_OCTEONTX_PMD=y
-
-#
-# Compile burst-oriented Marvell OCTEON TX2 network PMD driver
-#
-CONFIG_RTE_LIBRTE_OCTEONTX2_PMD=y
-
-#
-# Compile WRS accelerated virtual port (AVP) guest PMD driver
-#
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-CONFIG_RTE_LIBRTE_AVP_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_AVP_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_AVP_DEBUG_BUFFERS=n
-
-#
-# Compile burst-oriented VIRTIO PMD driver
-#
-CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
-CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DUMP=n
-
-#
-# Compile virtio device emulation inside virtio PMD driver
-#
-CONFIG_RTE_VIRTIO_USER=n
-
-#
-# Compile burst-oriented VMXNET3 PMD driver
-#
-CONFIG_RTE_LIBRTE_VMXNET3_PMD=y
-CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX_FREE=n
-
-#
-# Compile software PMD backed by AF_PACKET sockets (Linux only)
-#
-CONFIG_RTE_LIBRTE_PMD_AF_PACKET=n
-
-#
-# Compile software PMD backed by AF_XDP sockets (Linux only)
-#
-CONFIG_RTE_LIBRTE_PMD_AF_XDP=n
-
-#
-# Compile Memory Interface PMD driver (Linux only)
-#
-CONFIG_RTE_LIBRTE_PMD_MEMIF=n
-
-#
-# Compile link bonding PMD library
-#
-CONFIG_RTE_LIBRTE_PMD_BOND=y
-CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB=n
-CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB_L1=n
-
-#
-# Compile fail-safe PMD
-#
-CONFIG_RTE_LIBRTE_PMD_FAILSAFE=y
-
-#
-# Compile Marvell PMD driver
-#
-CONFIG_RTE_LIBRTE_MVPP2_PMD=n
-
-#
-# Compile Marvell MVNETA PMD driver
-#
-CONFIG_RTE_LIBRTE_MVNETA_PMD=n
-
-#
-# Compile support for VMBus library
-#
-CONFIG_RTE_LIBRTE_VMBUS=n
-
-#
-# Compile native PMD for Hyper-V/Azure
-#
-CONFIG_RTE_LIBRTE_NETVSC_PMD=n
-CONFIG_RTE_LIBRTE_NETVSC_DEBUG_RX=n
-CONFIG_RTE_LIBRTE_NETVSC_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_NETVSC_DEBUG_DUMP=n
-
-#
-# Compile virtual device driver for NetVSC on Hyper-V/Azure
-#
-CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD=n
-
-#
-# Compile null PMD
-#
-CONFIG_RTE_LIBRTE_PMD_NULL=y
-
-#
-# Compile software PMD backed by PCAP files
-#
-CONFIG_RTE_LIBRTE_PMD_PCAP=n
-
-#
-# Compile example software rings based PMD
-#
-CONFIG_RTE_LIBRTE_PMD_RING=y
-CONFIG_RTE_PMD_RING_MAX_RX_RINGS=16
-CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16
-
-#
-# Compile SOFTNIC PMD
-#
-CONFIG_RTE_LIBRTE_PMD_SOFTNIC=n
-
-#
-# Compile the TAP PMD
-# It is enabled by default for Linux only.
-#
-CONFIG_RTE_LIBRTE_PMD_TAP=n
-
-#
-# Do prefetch of packet data within PMD driver receive function
-#
-CONFIG_RTE_PMD_PACKET_PREFETCH=y
-
-# Compile generic wireless base band device library
-# EXPERIMENTAL: API may change without prior notice
-#
-CONFIG_RTE_LIBRTE_BBDEV=y
-CONFIG_RTE_LIBRTE_BBDEV_DEBUG=n
-CONFIG_RTE_BBDEV_MAX_DEVS=128
-CONFIG_RTE_BBDEV_OFFLOAD_COST=y
-CONFIG_RTE_BBDEV_SDK_AVX2=n
-CONFIG_RTE_BBDEV_SDK_AVX512=n
-
-#
-# Compile PMD for NULL bbdev device
-#
-CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL=y
-
-#
-# Compile PMD for turbo software bbdev device
-#
-CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW=y
-
-#
-# Compile PMD for Intel FPGA LTE FEC bbdev device
-#
-CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC=y
-
-#
-# Compile PMD for Intel FPGA 5GNR FEC bbdev device
-#
-CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC=y
-
-#
-# Compile generic crypto device library
-#
-CONFIG_RTE_LIBRTE_CRYPTODEV=y
-CONFIG_RTE_CRYPTO_MAX_DEVS=64
-
-#
-# Compile PMD for ARMv8 Crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO=n
-
-#
-# Compile NXP CAAM JR crypto Driver
-#
-CONFIG_RTE_LIBRTE_PMD_CAAM_JR=n
-CONFIG_RTE_LIBRTE_PMD_CAAM_JR_BE=n
-
-#
-# Compile NXP DPAA2 crypto sec driver for CAAM HW
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=n
-
-#
-# NXP DPAA caam - crypto driver
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=n
-CONFIG_RTE_LIBRTE_DPAA_MAX_CRYPTODEV=4
-
-#
-# Compile PMD for Cavium OCTEON TX crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO=y
-
-#
-# Compile PMD for Marvell OCTEON TX2 crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO=y
-
-#
-# Compile PMD for QuickAssist based devices - see docs for details
-#
-CONFIG_RTE_LIBRTE_PMD_QAT=y
-CONFIG_RTE_LIBRTE_PMD_QAT_SYM=n
-CONFIG_RTE_LIBRTE_PMD_QAT_ASYM=n
-#
-# Max. number of QuickAssist devices, which can be detected and attached
-#
-CONFIG_RTE_PMD_QAT_MAX_PCI_DEVICES=48
-CONFIG_RTE_PMD_QAT_COMP_IM_BUFFER_SIZE=65536
-
-#
-# Compile PMD for virtio crypto devices
-#
-CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO=y
-#
-# Number of maximum virtio crypto devices
-#
-CONFIG_RTE_MAX_VIRTIO_CRYPTO=32
-
-#
-# Compile PMD for AESNI backed device
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n
-
-#
-# Compile PMD for Software backed device
-#
-CONFIG_RTE_LIBRTE_PMD_OPENSSL=n
-
-#
-# Compile PMD for AESNI GCM device
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=n
-
-#
-# Compile PMD for SNOW 3G device
-#
-CONFIG_RTE_LIBRTE_PMD_SNOW3G=n
-CONFIG_RTE_LIBRTE_PMD_SNOW3G_DEBUG=n
-
-#
-# Compile PMD for KASUMI device
-#
-CONFIG_RTE_LIBRTE_PMD_KASUMI=n
-
-#
-# Compile PMD for ZUC device
-#
-CONFIG_RTE_LIBRTE_PMD_ZUC=n
-
-# Compile PMD for Crypto Scheduler device
-#
-CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER=y
-
-#
-# Compile PMD for NULL Crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO=y
-
-#
-# Compile PMD for AMD CCP crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_CCP=n
-
-#
-# Compile PMD for Marvell Crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO=n
-
-#
-# Compile PMD for NITROX crypto device
-#
-CONFIG_RTE_LIBRTE_PMD_NITROX=y
-
-#
-# Compile generic security library
-#
-CONFIG_RTE_LIBRTE_SECURITY=y
-
-#
-# Compile generic compression device library
-#
-CONFIG_RTE_LIBRTE_COMPRESSDEV=y
-CONFIG_RTE_COMPRESS_MAX_DEVS=64
-
-#
-# Compile compressdev unit test
-#
-CONFIG_RTE_COMPRESSDEV_TEST=n
-
-#
-# Compile PMD for Octeontx ZIPVF compression device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF=y
-
-#
-# Compile PMD for ISA-L compression device
-#
-CONFIG_RTE_LIBRTE_PMD_ISAL=n
-
-#
-# Compile PMD for ZLIB compression device
-#
-CONFIG_RTE_LIBRTE_PMD_ZLIB=n
-
-#
-# Compile RegEx device support
-#
-CONFIG_RTE_LIBRTE_REGEXDEV=y
-CONFIG_RTE_LIBRTE_REGEXDEV_DEBUG=n
-CONFIG_RTE_MAX_REGEXDEV_DEVS=32
-
-#
-# Compile generic event device library
-#
-CONFIG_RTE_LIBRTE_EVENTDEV=y
-CONFIG_RTE_LIBRTE_EVENTDEV_DEBUG=n
-CONFIG_RTE_EVENT_MAX_DEVS=16
-CONFIG_RTE_EVENT_MAX_QUEUES_PER_DEV=64
-CONFIG_RTE_EVENT_TIMER_ADAPTER_NUM_MAX=32
-CONFIG_RTE_EVENT_ETH_INTR_RING_SIZE=1024
-CONFIG_RTE_EVENT_CRYPTO_ADAPTER_MAX_INSTANCE=32
-CONFIG_RTE_EVENT_ETH_TX_ADAPTER_MAX_INSTANCE=32
-
-#
-# Compile PMD for skeleton event device
-#
-CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV=y
-CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV_DEBUG=n
-
-#
-# Compile PMD for software event device
-#
-CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV=y
-
-#
-# Compile PMD for distributed software event device
-#
-CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV=y
-
-#
-# Compile PMD for octeontx sso event device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=y
-
-#
-# Compile PMD for octeontx2 sso event device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV=y
-
-#
-# Compile PMD for OPDL event device
-#
-CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV=y
-
-#
-# Compile PMD for NXP DPAA event device
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=n
-
-#
-# Compile PMD for NXP DPAA2 event device
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=n
-
-#
-# Compile raw device support
-# EXPERIMENTAL: API may change without prior notice
-#
-CONFIG_RTE_LIBRTE_RAWDEV=y
-CONFIG_RTE_RAWDEV_MAX_DEVS=64
-CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV=y
-
-#
-# Compile PMD for NXP DPAA2 CMDIF raw device
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV=n
-
-#
-# Compile PMD for NXP DPAA2 QDMA raw device
-#
-CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV=n
-
-#
-# Compile PMD for Intel FPGA raw device
-#
-CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV=n
-
-#
-# Compile PMD for Intel IOAT raw device
-#
-CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=y
-
-#
-# Compile PMD for octeontx2 DMA raw device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV=y
-
-#
-# Compile PMD for octeontx2 EP raw device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV=y
-
-#
-# Compile PMD for NTB raw device
-#
-CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV=y
-
-#
-# Compile librte_ring
-#
-CONFIG_RTE_LIBRTE_RING=y
-
-#
-# Compile librte_stack
-#
-CONFIG_RTE_LIBRTE_STACK=y
-
-#
-# Compile librte_mempool
-#
-CONFIG_RTE_LIBRTE_MEMPOOL=y
-CONFIG_RTE_MEMPOOL_CACHE_MAX_SIZE=512
-CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=n
-
-#
-# Compile Mempool drivers
-#
-CONFIG_RTE_DRIVER_MEMPOOL_BUCKET=y
-CONFIG_RTE_DRIVER_MEMPOOL_BUCKET_SIZE_KB=64
-CONFIG_RTE_DRIVER_MEMPOOL_RING=y
-CONFIG_RTE_DRIVER_MEMPOOL_STACK=y
-
-#
-# Compile PMD for octeontx fpa mempool device
-#
-CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL=y
-
-#
-# Compile PMD for octeontx2 npa mempool device
-#
-CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL=y
-
-#
-# Compile librte_mbuf
-#
-CONFIG_RTE_LIBRTE_MBUF=y
-CONFIG_RTE_LIBRTE_MBUF_DEBUG=n
-CONFIG_RTE_MBUF_DEFAULT_MEMPOOL_OPS="ring_mp_mc"
-CONFIG_RTE_MBUF_REFCNT_ATOMIC=y
-CONFIG_RTE_PKTMBUF_HEADROOM=128
-
-#
-# Compile librte_timer
-#
-CONFIG_RTE_LIBRTE_TIMER=y
-CONFIG_RTE_LIBRTE_TIMER_DEBUG=n
-
-#
-# Compile librte_cfgfile
-#
-CONFIG_RTE_LIBRTE_CFGFILE=y
-
-#
-# Compile librte_cmdline
-#
-CONFIG_RTE_LIBRTE_CMDLINE=y
-CONFIG_RTE_LIBRTE_CMDLINE_DEBUG=n
-
-#
-# Compile librte_hash
-#
-CONFIG_RTE_LIBRTE_HASH=y
-CONFIG_RTE_LIBRTE_HASH_DEBUG=n
-
-#
-# Compile librte_efd
-#
-CONFIG_RTE_LIBRTE_EFD=y
-
-#
-# Compile librte_member
-#
-CONFIG_RTE_LIBRTE_MEMBER=y
-
-#
-# Compile librte_jobstats
-#
-CONFIG_RTE_LIBRTE_JOBSTATS=y
-
-#
-# Compile the device metrics library
-#
-CONFIG_RTE_LIBRTE_METRICS=y
-
-#
-# Compile the bitrate statistics library
-#
-CONFIG_RTE_LIBRTE_BITRATE=y
-
-#
-# Compile the latency statistics library
-#
-CONFIG_RTE_LIBRTE_LATENCY_STATS=y
-
-#
-# Compile librte_telemetry legacy support
-#
-CONFIG_RTE_LIBRTE_TELEMETRY=n
-
-#
-# Compile librte_rcu
-#
-CONFIG_RTE_LIBRTE_RCU=y
-CONFIG_RTE_LIBRTE_RCU_DEBUG=n
-
-#
-# Compile librte_rib
-#
-CONFIG_RTE_LIBRTE_RIB=y
-
-#
-# Compile librte_fib
-#
-CONFIG_RTE_LIBRTE_FIB=y
-CONFIG_RTE_LIBRTE_FIB_DEBUG=n
-
-#
-# Compile librte_lpm
-#
-CONFIG_RTE_LIBRTE_LPM=y
-CONFIG_RTE_LIBRTE_LPM_DEBUG=n
-
-#
-# Compile librte_acl
-#
-CONFIG_RTE_LIBRTE_ACL=y
-CONFIG_RTE_LIBRTE_ACL_DEBUG=n
-
-#
-# Compile librte_power
-#
-CONFIG_RTE_LIBRTE_POWER=n
-CONFIG_RTE_LIBRTE_POWER_DEBUG=n
-CONFIG_RTE_MAX_LCORE_FREQS=64
-
-#
-# Compile librte_net
-#
-CONFIG_RTE_LIBRTE_NET=y
-
-#
-# Compile librte_ip_frag
-#
-CONFIG_RTE_LIBRTE_IP_FRAG=y
-CONFIG_RTE_LIBRTE_IP_FRAG_DEBUG=n
-CONFIG_RTE_LIBRTE_IP_FRAG_MAX_FRAG=4
-CONFIG_RTE_LIBRTE_IP_FRAG_TBL_STAT=n
-
-#
-# Compile GRO library
-#
-CONFIG_RTE_LIBRTE_GRO=y
-
-#
-# Compile GSO library
-#
-CONFIG_RTE_LIBRTE_GSO=y
-
-#
-# Compile librte_meter
-#
-CONFIG_RTE_LIBRTE_METER=y
-
-#
-# Compile librte_classify
-#
-CONFIG_RTE_LIBRTE_FLOW_CLASSIFY=y
-
-#
-# Compile librte_sched
-#
-CONFIG_RTE_LIBRTE_SCHED=y
-CONFIG_RTE_SCHED_DEBUG=n
-CONFIG_RTE_SCHED_RED=n
-CONFIG_RTE_SCHED_COLLECT_STATS=n
-CONFIG_RTE_SCHED_SUBPORT_TC_OV=n
-CONFIG_RTE_SCHED_PORT_N_GRINDERS=8
-CONFIG_RTE_SCHED_VECTOR=n
-
-#
-# Compile the distributor library
-#
-CONFIG_RTE_LIBRTE_DISTRIBUTOR=y
-
-#
-# Compile the reorder library
-#
-CONFIG_RTE_LIBRTE_REORDER=y
-
-#
-# Compile librte_port
-#
-CONFIG_RTE_LIBRTE_PORT=y
-CONFIG_RTE_PORT_STATS_COLLECT=n
-CONFIG_RTE_PORT_PCAP=n
-
-#
-# Compile librte_table
-#
-CONFIG_RTE_LIBRTE_TABLE=y
-CONFIG_RTE_TABLE_STATS_COLLECT=n
-
-#
-# Compile librte_pipeline
-#
-CONFIG_RTE_LIBRTE_PIPELINE=y
-CONFIG_RTE_PIPELINE_STATS_COLLECT=n
-
-#
-# Compile librte_kni
-#
-CONFIG_RTE_LIBRTE_KNI=n
-CONFIG_RTE_LIBRTE_PMD_KNI=n
-CONFIG_RTE_KNI_KMOD=n
-CONFIG_RTE_KNI_PREEMPT_DEFAULT=y
-
-#
-# Compile the pdump library
-#
-CONFIG_RTE_LIBRTE_PDUMP=y
-
-#
-# Compile vhost user library
-#
-CONFIG_RTE_LIBRTE_VHOST=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-CONFIG_RTE_LIBRTE_VHOST_DEBUG=n
-
-#
-# Compile vhost PMD
-# To compile, CONFIG_RTE_LIBRTE_VHOST should be enabled.
-#
-CONFIG_RTE_LIBRTE_PMD_VHOST=n
-
-#
-# Compile IFC driver
-# To compile, CONFIG_RTE_LIBRTE_VHOST and CONFIG_RTE_EAL_VFIO
-# should be enabled.
-#
-CONFIG_RTE_LIBRTE_IFC_PMD=n
-
-#
-# Compile librte_bpf
-#
-CONFIG_RTE_LIBRTE_BPF=y
-# allow load BPF from ELF files (requires libelf)
-CONFIG_RTE_LIBRTE_BPF_ELF=n
-
-#
-# Compile librte_ipsec
-#
-CONFIG_RTE_LIBRTE_IPSEC=y
-
-#
-# Compile librte_graph
-#
-CONFIG_RTE_LIBRTE_GRAPH=y
-CONFIG_RTE_GRAPH_BURST_SIZE=256
-CONFIG_RTE_LIBRTE_GRAPH_STATS=y
-
-#
-# Compile librte_node
-#
-CONFIG_RTE_LIBRTE_NODE=y
-
-#
-# Compile the test application
-#
-CONFIG_RTE_APP_TEST=y
-CONFIG_RTE_APP_TEST_RESOURCE_TAR=n
-
-#
-# Compile the procinfo application
-#
-CONFIG_RTE_PROC_INFO=n
-
-#
-# Compile the PMD test application
-#
-CONFIG_RTE_TEST_PMD=y
-CONFIG_RTE_TEST_PMD_RECORD_CORE_CYCLES=n
-CONFIG_RTE_TEST_PMD_RECORD_BURST_STATS=n
-
-#
-# Compile the rte flow perf application
-#
-CONFIG_RTE_TEST_FLOW_PERF=y
-
-#
-# Compile the bbdev test application
-#
-CONFIG_RTE_TEST_BBDEV=y
-
-#
-# Compile the compression performance application
-#
-CONFIG_RTE_APP_COMPRESS_PERF=y
-
-#
-# Compile the crypto performance application
-#
-CONFIG_RTE_APP_CRYPTO_PERF=y
-
-#
-# Compile the eventdev application
-#
-CONFIG_RTE_APP_EVENTDEV=y
diff --git a/config/common_freebsd b/config/common_freebsd
deleted file mode 100644
index 456b394c4d..0000000000
--- a/config/common_freebsd
+++ /dev/null
@@ -1,15 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-#include "common_base"
-
-CONFIG_RTE_EXEC_ENV="bsdapp"
-CONFIG_RTE_EXEC_ENV_BSDAPP=y
-CONFIG_RTE_EXEC_ENV_FREEBSD=y
-
-#
-# FreeBSD contiguous memory driver settings
-#
-CONFIG_RTE_CONTIGMEM_MAX_NUM_BUFS=64
-CONFIG_RTE_CONTIGMEM_DEFAULT_NUM_BUFS=2
-CONFIG_RTE_CONTIGMEM_DEFAULT_BUF_SIZE=1024*1024*1024
diff --git a/config/common_linux b/config/common_linux
deleted file mode 100644
index 816810671a..0000000000
--- a/config/common_linux
+++ /dev/null
@@ -1,68 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-#include "common_base"
-
-CONFIG_RTE_EXEC_ENV="linuxapp"
-CONFIG_RTE_EXEC_ENV_LINUX=y
-CONFIG_RTE_EXEC_ENV_LINUXAPP=y
-
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=y
-CONFIG_RTE_EAL_VFIO=y
-CONFIG_RTE_LIBRTE_KNI=y
-CONFIG_RTE_LIBRTE_PMD_KNI=y
-CONFIG_RTE_LIBRTE_VHOST=y
-CONFIG_RTE_LIBRTE_VHOST_NUMA=y
-CONFIG_RTE_LIBRTE_VHOST_POSTCOPY=n
-CONFIG_RTE_LIBRTE_PMD_VHOST=y
-CONFIG_RTE_LIBRTE_IFC_PMD=y
-CONFIG_RTE_LIBRTE_PMD_AF_PACKET=y
-CONFIG_RTE_LIBRTE_PMD_MEMIF=y
-CONFIG_RTE_LIBRTE_PMD_SOFTNIC=y
-CONFIG_RTE_LIBRTE_PMD_TAP=y
-CONFIG_RTE_LIBRTE_AVP_PMD=y
-CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD=y
-CONFIG_RTE_LIBRTE_NFP_PMD=y
-CONFIG_RTE_LIBRTE_POWER=y
-CONFIG_RTE_VIRTIO_USER=y
-CONFIG_RTE_PROC_INFO=y
-
-CONFIG_RTE_LIBRTE_VMBUS=y
-CONFIG_RTE_LIBRTE_NETVSC_PMD=y
-
-#
-# Common libraries, before Bus/PMDs
-#
-CONFIG_RTE_LIBRTE_COMMON_DPAAX=y
-
-# NXP DPAA BUS and drivers
-CONFIG_RTE_LIBRTE_DPAA_BUS=y
-CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=y
-CONFIG_RTE_LIBRTE_DPAA_PMD=y
-CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=y
-CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=y
-CONFIG_RTE_LIBRTE_PMD_CAAM_JR=y
-
-# NXP FSLMC BUS and DPAA2 drivers
-CONFIG_RTE_LIBRTE_FSLMC_BUS=y
-CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=y
-CONFIG_RTE_LIBRTE_DPAA2_PMD=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV=y
-
-#
-# NXP ENETC PMD Driver
-#
-CONFIG_RTE_LIBRTE_ENETC_PMD=y
-
-#
-# HINIC PMD driver
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=y
-
-#
-# Hisilicon HNS3 PMD driver
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=y
diff --git a/config/defconfig_arm-armv7a-linux-gcc b/config/defconfig_arm-armv7a-linux-gcc
deleted file mode 120000
index 84619de43a..0000000000
--- a/config/defconfig_arm-armv7a-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm-armv7a-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm-armv7a-linuxapp-gcc b/config/defconfig_arm-armv7a-linuxapp-gcc
deleted file mode 100644
index ac91120868..0000000000
--- a/config/defconfig_arm-armv7a-linuxapp-gcc
+++ /dev/null
@@ -1,49 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) 2015 RehiveTech. All right reserved.
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="armv7a"
-
-CONFIG_RTE_ARCH="arm"
-CONFIG_RTE_ARCH_ARM=y
-CONFIG_RTE_ARCH_ARMv7=y
-CONFIG_RTE_ARCH_ARM_TUNE="cortex-a9"
-
-# Accelerate memcpy operations. Consider enabling for Cortex-A15.
-# For Cortex-A7 and Cortex-A9, It might accelerate short data copies (< 64 B).
-CONFIG_RTE_ARCH_ARM_NEON_MEMCPY=n
-
-CONFIG_RTE_FORCE_INTRINSICS=y
-CONFIG_RTE_ARCH_STRICT_ALIGN=y
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
-
-# NUMA is not supported on ARM
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-
-# ARM doesn't have support for vmware TSC map
-CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=n
-
-# KNI is not supported on 32-bit
-CONFIG_RTE_LIBRTE_KNI=n
-
-# cannot use those on ARM
-CONFIG_RTE_LIBRTE_ARK_PMD=n
-CONFIG_RTE_LIBRTE_EM_PMD=n
-CONFIG_RTE_LIBRTE_IGB_PMD=n
-CONFIG_RTE_LIBRTE_CXGBE_PMD=n
-CONFIG_RTE_LIBRTE_E1000_PMD=n
-CONFIG_RTE_LIBRTE_ENIC_PMD=n
-CONFIG_RTE_LIBRTE_FM10K_PMD=n
-CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
-CONFIG_RTE_LIBRTE_QEDE_PMD=n
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-CONFIG_RTE_LIBRTE_NFP_PMD=n
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
-CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n
-CONFIG_RTE_LIBRTE_IONIC_PMD=n
diff --git a/config/defconfig_arm64-armada-linux-gcc b/config/defconfig_arm64-armada-linux-gcc
deleted file mode 120000
index 64ce2a5687..0000000000
--- a/config/defconfig_arm64-armada-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-armada-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-armada-linuxapp-gcc b/config/defconfig_arm64-armada-linuxapp-gcc
deleted file mode 100644
index a49bebe374..0000000000
--- a/config/defconfig_arm64-armada-linuxapp-gcc
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-#
-# Compile Environment Abstraction Layer
-#
-CONFIG_RTE_MAX_LCORE=16
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_CACHE_LINE_SIZE=64
-
-# Enable PMDs
-CONFIG_RTE_LIBRTE_MVEP_COMMON=y
-CONFIG_RTE_LIBRTE_MVPP2_PMD=y
-CONFIG_RTE_LIBRTE_MVNETA_PMD=y
-CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO=y
-
-# Disable NXP as it is conflict with MUSDK
-CONFIG_RTE_LIBRTE_DPAA_BUS=n
-CONFIG_RTE_LIBRTE_COMMON_DPAAX=n
-CONFIG_RTE_LIBRTE_FSLMC_BUS=n
-CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=n
-CONFIG_RTE_LIBRTE_DPAA2_PMD=n
-CONFIG_RTE_LIBRTE_DPAA_BUS=n
-CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=n
-CONFIG_RTE_LIBRTE_DPAA_PMD=n
-CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=n
-CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=n
-CONFIG_RTE_LIBRTE_PMD_CAAM_JR=n
-CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=n
-CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=n
-CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV=n
-CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV=n
-CONFIG_RTE_LIBRTE_PFE_PMD=n
-CONFIG_RTE_LIBRTE_ENETC_PMD=n
-
-# Doesn't support NUMA
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
diff --git a/config/defconfig_arm64-armv8a-linux-clang b/config/defconfig_arm64-armv8a-linux-clang
deleted file mode 120000
index 196808b982..0000000000
--- a/config/defconfig_arm64-armv8a-linux-clang
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-armv8a-linuxapp-clang
\ No newline at end of file
diff --git a/config/defconfig_arm64-armv8a-linux-gcc b/config/defconfig_arm64-armv8a-linux-gcc
deleted file mode 120000
index 0949519562..0000000000
--- a/config/defconfig_arm64-armv8a-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-armv8a-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-armv8a-linuxapp-clang b/config/defconfig_arm64-armv8a-linuxapp-clang
deleted file mode 100644
index d3b4dad532..0000000000
--- a/config/defconfig_arm64-armv8a-linuxapp-clang
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-#include "common_armv8a_linux"
-
-CONFIG_RTE_TOOLCHAIN="clang"
-CONFIG_RTE_TOOLCHAIN_CLANG=y
diff --git a/config/defconfig_arm64-armv8a-linuxapp-gcc b/config/defconfig_arm64-armv8a-linuxapp-gcc
deleted file mode 100644
index 58c4a4029a..0000000000
--- a/config/defconfig_arm64-armv8a-linuxapp-gcc
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#include "common_armv8a_linux"
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
-CONFIG_RTE_MAX_LCORE=256
diff --git a/config/defconfig_arm64-bluefield-linux-gcc b/config/defconfig_arm64-bluefield-linux-gcc
deleted file mode 120000
index dad37d5e79..0000000000
--- a/config/defconfig_arm64-bluefield-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-bluefield-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-bluefield-linuxapp-gcc b/config/defconfig_arm64-bluefield-linuxapp-gcc
deleted file mode 100644
index b496538819..0000000000
--- a/config/defconfig_arm64-bluefield-linuxapp-gcc
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2019 Mellanox Technologies, Ltd
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-# Mellanox BlueField
-CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72"
-
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_CACHE_LINE_SIZE=64
-
-# UMA architecture
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-
-# PMD for ConnectX-5
-CONFIG_RTE_LIBRTE_MLX5_PMD=y
diff --git a/config/defconfig_arm64-dpaa-linux-gcc b/config/defconfig_arm64-dpaa-linux-gcc
deleted file mode 120000
index dc05caacf3..0000000000
--- a/config/defconfig_arm64-dpaa-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-dpaa-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-dpaa-linuxapp-gcc b/config/defconfig_arm64-dpaa-linuxapp-gcc
deleted file mode 100644
index 4ae4cd8502..0000000000
--- a/config/defconfig_arm64-dpaa-linuxapp-gcc
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 Freescale Semiconductor, Inc.
-# Copyright 2017-2019 NXP
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-# NXP (Freescale) - Soc Architecture for DPAA or DPAA2 support
-# DPAA - FMAN, QMAN & BMAN support (e.g. LS1043, LS1046)
-# DPAA2 - WRIOP and QBMAN (e.g. LS1088, LS2088, LX2160 etc)
-#
-CONFIG_RTE_MACHINE="dpaa"
-CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72"
-
-#
-# Compile Environment Abstraction Layer
-#
-CONFIG_RTE_MAX_LCORE=16
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_CACHE_LINE_SIZE=64
-CONFIG_RTE_PKTMBUF_HEADROOM=128
-
-# Doesn't support NUMA
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-
-# Enable PHY mode when using VM-VFIO target
-CONFIG_RTE_LIBRTE_DPAA2_USE_PHYS_IOVA=n
-
-# NXP DPAA Bus
-CONFIG_RTE_LIBRTE_DPAA_DEBUG_DRIVER=n
-CONFIG_RTE_LIBRTE_DPAA_HWDEBUG=n
diff --git a/config/defconfig_arm64-emag-linux-gcc b/config/defconfig_arm64-emag-linux-gcc
deleted file mode 120000
index 21894a31a8..0000000000
--- a/config/defconfig_arm64-emag-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-emag-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-emag-linuxapp-gcc b/config/defconfig_arm64-emag-linuxapp-gcc
deleted file mode 100644
index 1db654c899..0000000000
--- a/config/defconfig_arm64-emag-linuxapp-gcc
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Ampere Computing
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="emag"
-
-CONFIG_RTE_CACHE_LINE_SIZE=64
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_MAX_LCORE=32
diff --git a/config/defconfig_arm64-n1sdp-linux-gcc b/config/defconfig_arm64-n1sdp-linux-gcc
deleted file mode 120000
index 103bbea90f..0000000000
--- a/config/defconfig_arm64-n1sdp-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-n1sdp-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-n1sdp-linuxapp-gcc b/config/defconfig_arm64-n1sdp-linuxapp-gcc
deleted file mode 100644
index f9138093b5..0000000000
--- a/config/defconfig_arm64-n1sdp-linuxapp-gcc
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Arm Ltd.
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="n1sdp"
-CONFIG_RTE_MAX_LCORE=4
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_CACHE_LINE_SIZE=64
-
-# Doesn't support NUMA
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
diff --git a/config/defconfig_arm64-octeontx2-linux-gcc b/config/defconfig_arm64-octeontx2-linux-gcc
deleted file mode 120000
index e251505311..0000000000
--- a/config/defconfig_arm64-octeontx2-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-octeontx2-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-octeontx2-linuxapp-gcc b/config/defconfig_arm64-octeontx2-linuxapp-gcc
deleted file mode 100644
index 0d83becf54..0000000000
--- a/config/defconfig_arm64-octeontx2-linuxapp-gcc
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="octeontx2"
-
-CONFIG_RTE_MAX_NUMA_NODES=1
-CONFIG_RTE_MAX_LCORE=36
-CONFIG_RTE_ARM_FEATURE_ATOMICS=y
-
-# Doesn't support NUMA
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-
-# Max supported NIX LFs
-CONFIG_RTE_MAX_VFIO_GROUPS=128
diff --git a/config/defconfig_arm64-stingray-linux-gcc b/config/defconfig_arm64-stingray-linux-gcc
deleted file mode 120000
index 829dd65f05..0000000000
--- a/config/defconfig_arm64-stingray-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-stingray-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-stingray-linuxapp-gcc b/config/defconfig_arm64-stingray-linuxapp-gcc
deleted file mode 100644
index 2a6f6cee28..0000000000
--- a/config/defconfig_arm64-stingray-linuxapp-gcc
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) Broadcom 2017-2018. All rights reserved.
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-# Broadcom - Stingray
-CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72"
-
-# Doesn't support NUMA
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
-CONFIG_RTE_LIBRTE_VHOST_NUMA=n
-
-CONFIG_RTE_EAL_IGB_UIO=y
diff --git a/config/defconfig_arm64-thunderx-linux-gcc b/config/defconfig_arm64-thunderx-linux-gcc
deleted file mode 120000
index 1b9c4ad211..0000000000
--- a/config/defconfig_arm64-thunderx-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-thunderx-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-thunderx-linuxapp-gcc b/config/defconfig_arm64-thunderx-linuxapp-gcc
deleted file mode 100644
index 946906b67a..0000000000
--- a/config/defconfig_arm64-thunderx-linuxapp-gcc
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="thunderx"
-
-CONFIG_RTE_USE_C11_MEM_MODEL=n
-CONFIG_RTE_MAX_NUMA_NODES=2
-CONFIG_RTE_MAX_LCORE=96
-CONFIG_RTE_MAX_VFIO_GROUPS=128
-
-#
-# Compile PMD for octeontx sso event device
-#
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=y
diff --git a/config/defconfig_arm64-thunderx2-linux-gcc b/config/defconfig_arm64-thunderx2-linux-gcc
deleted file mode 120000
index b40a760b1d..0000000000
--- a/config/defconfig_arm64-thunderx2-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-thunderx2-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-thunderx2-linuxapp-gcc b/config/defconfig_arm64-thunderx2-linuxapp-gcc
deleted file mode 100644
index af4a89c480..0000000000
--- a/config/defconfig_arm64-thunderx2-linuxapp-gcc
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="thunderx2"
-
-CONFIG_RTE_CACHE_LINE_SIZE=64
-CONFIG_RTE_MAX_NUMA_NODES=2
-CONFIG_RTE_MAX_LCORE=256
-CONFIG_RTE_ARM_FEATURE_ATOMICS=y
diff --git a/config/defconfig_arm64-xgene1-linux-gcc b/config/defconfig_arm64-xgene1-linux-gcc
deleted file mode 120000
index d5e8b5e550..0000000000
--- a/config/defconfig_arm64-xgene1-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_arm64-xgene1-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_arm64-xgene1-linuxapp-gcc b/config/defconfig_arm64-xgene1-linuxapp-gcc
deleted file mode 100644
index fbf576c4aa..0000000000
--- a/config/defconfig_arm64-xgene1-linuxapp-gcc
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#include "defconfig_arm64-armv8a-linux-gcc"
-
-CONFIG_RTE_MACHINE="xgene1"
-CONFIG_RTE_CACHE_LINE_SIZE=64
diff --git a/config/defconfig_i686-native-linux-gcc b/config/defconfig_i686-native-linux-gcc
deleted file mode 120000
index 927141d5dd..0000000000
--- a/config/defconfig_i686-native-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_i686-native-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_i686-native-linux-icc b/config/defconfig_i686-native-linux-icc
deleted file mode 120000
index e6a466b3e3..0000000000
--- a/config/defconfig_i686-native-linux-icc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_i686-native-linuxapp-icc
\ No newline at end of file
diff --git a/config/defconfig_i686-native-linuxapp-gcc b/config/defconfig_i686-native-linuxapp-gcc
deleted file mode 100644
index 61ea1606f4..0000000000
--- a/config/defconfig_i686-native-linuxapp-gcc
+++ /dev/null
@@ -1,66 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="i686"
-CONFIG_RTE_ARCH_I686=y
-CONFIG_RTE_ARCH_X86=y
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
-
-#
-# KNI is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_KNI=n
-
-#
-# Solarflare PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-
-#
-# AES-NI multi-buffer PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n
-
-#
-# AES-NI GCM PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=n
-
-#
-# KASUMI PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_KASUMI=n
-
-#
-# ZUC PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_ZUC=n
-
-#
-# AVP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-
-#
-# NFP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_NFP_PMD=n
-
-# 32-bit doesn't break up memory in lists, but does have VA allocation limit
-CONFIG_RTE_MAX_MEM_MB=2048
-
-#
-# HINIC PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-
-#
-# HNS3 PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
diff --git a/config/defconfig_i686-native-linuxapp-icc b/config/defconfig_i686-native-linuxapp-icc
deleted file mode 100644
index 7f614d3467..0000000000
--- a/config/defconfig_i686-native-linuxapp-icc
+++ /dev/null
@@ -1,66 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="i686"
-CONFIG_RTE_ARCH_I686=y
-CONFIG_RTE_ARCH_X86=y
-
-CONFIG_RTE_TOOLCHAIN="icc"
-CONFIG_RTE_TOOLCHAIN_ICC=y
-
-#
-# KNI is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_KNI=n
-
-#
-# Solarflare PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-
-#
-# AES-NI multi-buffer PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n
-
-#
-# AES-NI GCM PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=n
-
-#
-# KASUMI PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_KASUMI=n
-
-#
-# ZUC PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_PMD_ZUC=n
-
-#
-# AVP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-
-#
-# NFP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_NFP_PMD=n
-
-# 32-bit doesn't break up memory in lists, but does have VA allocation limit
-CONFIG_RTE_MAX_MEM_MB=2048
-
-#
-# HINIC PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-
-#
-# HNS3 PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
diff --git a/config/defconfig_ppc_64-power8-linux-gcc b/config/defconfig_ppc_64-power8-linux-gcc
deleted file mode 120000
index 580c92e12e..0000000000
--- a/config/defconfig_ppc_64-power8-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_ppc_64-power8-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_ppc_64-power8-linuxapp-gcc b/config/defconfig_ppc_64-power8-linuxapp-gcc
deleted file mode 100644
index c917c47746..0000000000
--- a/config/defconfig_ppc_64-power8-linuxapp-gcc
+++ /dev/null
@@ -1,35 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) IBM Corporation 2014.
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="power8"
-
-CONFIG_RTE_ARCH="ppc_64"
-CONFIG_RTE_ARCH_PPC_64=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_MAX_LCORE=1536
-CONFIG_RTE_MAX_NUMA_NODES=32
-CONFIG_RTE_CACHE_LINE_SIZE=128
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
-
-# Note: Power doesn't have this support
-CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=n
-
-# Note: Initially, all of the PMD drivers compilation are turned off on Power
-# Will turn on them only after the successful testing on Power
-CONFIG_RTE_LIBRTE_ATLANTIC_PMD=n
-CONFIG_RTE_LIBRTE_IXGBE_PMD=n
-CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
-CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
-CONFIG_RTE_LIBRTE_ENIC_PMD=n
-CONFIG_RTE_LIBRTE_FM10K_PMD=n
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
-CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n
-CONFIG_RTE_LIBRTE_IONIC_PMD=n
diff --git a/config/defconfig_x86_64-native-bsdapp-clang b/config/defconfig_x86_64-native-bsdapp-clang
deleted file mode 100644
index 7204738e14..0000000000
--- a/config/defconfig_x86_64-native-bsdapp-clang
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_freebsd"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_64"
-CONFIG_RTE_ARCH_X86_64=y
-CONFIG_RTE_ARCH_X86=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_TOOLCHAIN="clang"
-CONFIG_RTE_TOOLCHAIN_CLANG=y
diff --git a/config/defconfig_x86_64-native-bsdapp-gcc b/config/defconfig_x86_64-native-bsdapp-gcc
deleted file mode 100644
index b24e2e6d5a..0000000000
--- a/config/defconfig_x86_64-native-bsdapp-gcc
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_freebsd"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_64"
-CONFIG_RTE_ARCH_X86_64=y
-CONFIG_RTE_ARCH_X86=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
diff --git a/config/defconfig_x86_64-native-freebsd-clang b/config/defconfig_x86_64-native-freebsd-clang
deleted file mode 120000
index 76115fd5a6..0000000000
--- a/config/defconfig_x86_64-native-freebsd-clang
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_64-native-bsdapp-clang
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-freebsd-gcc b/config/defconfig_x86_64-native-freebsd-gcc
deleted file mode 120000
index 72dd4b44be..0000000000
--- a/config/defconfig_x86_64-native-freebsd-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_64-native-bsdapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linux-clang b/config/defconfig_x86_64-native-linux-clang
deleted file mode 120000
index 3bcf89d6a4..0000000000
--- a/config/defconfig_x86_64-native-linux-clang
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_64-native-linuxapp-clang
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linux-gcc b/config/defconfig_x86_64-native-linux-gcc
deleted file mode 120000
index d707965941..0000000000
--- a/config/defconfig_x86_64-native-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_64-native-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linux-icc b/config/defconfig_x86_64-native-linux-icc
deleted file mode 120000
index a36b47131a..0000000000
--- a/config/defconfig_x86_64-native-linux-icc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_64-native-linuxapp-icc
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linuxapp-clang b/config/defconfig_x86_64-native-linuxapp-clang
deleted file mode 100644
index 7508c0f2da..0000000000
--- a/config/defconfig_x86_64-native-linuxapp-clang
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_64"
-CONFIG_RTE_ARCH_X86_64=y
-CONFIG_RTE_ARCH_X86=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_TOOLCHAIN="clang"
-CONFIG_RTE_TOOLCHAIN_CLANG=y
diff --git a/config/defconfig_x86_64-native-linuxapp-gcc b/config/defconfig_x86_64-native-linuxapp-gcc
deleted file mode 100644
index db67066a57..0000000000
--- a/config/defconfig_x86_64-native-linuxapp-gcc
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_64"
-CONFIG_RTE_ARCH_X86_64=y
-CONFIG_RTE_ARCH_X86=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
diff --git a/config/defconfig_x86_64-native-linuxapp-icc b/config/defconfig_x86_64-native-linuxapp-icc
deleted file mode 100644
index 8aa7af7e20..0000000000
--- a/config/defconfig_x86_64-native-linuxapp-icc
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_64"
-CONFIG_RTE_ARCH_X86_64=y
-CONFIG_RTE_ARCH_X86=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_TOOLCHAIN="icc"
-CONFIG_RTE_TOOLCHAIN_ICC=y
-
-#
-# Solarflare PMD build is not supported using icc toolchain
-#
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-
-#
-# HINIC PMD build is not supported using icc toolchain
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-
-#
-# HNS3 PMD build is not supported using icc toolchain
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
diff --git a/config/defconfig_x86_x32-native-linux-gcc b/config/defconfig_x86_x32-native-linux-gcc
deleted file mode 120000
index 7ea00cecb3..0000000000
--- a/config/defconfig_x86_x32-native-linux-gcc
+++ /dev/null
@@ -1 +0,0 @@
-defconfig_x86_x32-native-linuxapp-gcc
\ No newline at end of file
diff --git a/config/defconfig_x86_x32-native-linuxapp-gcc b/config/defconfig_x86_x32-native-linuxapp-gcc
deleted file mode 100644
index c188f4331c..0000000000
--- a/config/defconfig_x86_x32-native-linuxapp-gcc
+++ /dev/null
@@ -1,46 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#include "common_linux"
-
-CONFIG_RTE_MACHINE="native"
-
-CONFIG_RTE_ARCH="x86_x32"
-CONFIG_RTE_ARCH_X86_X32=y
-CONFIG_RTE_ARCH_X86=y
-
-CONFIG_RTE_TOOLCHAIN="gcc"
-CONFIG_RTE_TOOLCHAIN_GCC=y
-
-#
-# KNI is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_KNI=n
-
-#
-# Solarflare PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-
-#
-# AVP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-
-#
-# NFP PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_NFP_PMD=n
-
-# 32-bit doesn't break up memory in lists, but does have VA allocation limit
-CONFIG_RTE_MAX_MEM_MB=2048
-
-#
-# HINIC PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HINIC_PMD=n
-
-#
-# HNS3 PMD is not supported on 32-bit
-#
-CONFIG_RTE_LIBRTE_HNS3_PMD=n
--
2.17.1
^ permalink raw reply [relevance 1%]
* [dpdk-dev] [PATCH 20.11 02/19] build: remove makefiles and mk directory
@ 2020-08-07 12:29 1% ` Ciara Power
2020-08-07 12:29 1% ` [dpdk-dev] [PATCH 20.11 03/19] config: remove all config files used by make Ciara Power
` (2 subsequent siblings)
3 siblings, 0 replies; 200+ results
From: Ciara Power @ 2020-08-07 12:29 UTC (permalink / raw)
To: dev; +Cc: bruce.richardson, thomas, Ciara Power
It was decided [1] to no longer support Make in DPDK, this patch
removes all Makefiles that do not make use of pkg-config, along with
the mk directory previously used by make.
[1] https://mails.dpdk.org/archives/dev/2020-April/162839.html
Signed-off-by: Ciara Power <ciara.power@intel.com>
---
GNUmakefile | 17 -
Makefile | 4 -
app/Makefile | 34 --
app/pdump/Makefile | 18 -
app/proc-info/Makefile | 14 -
app/test-acl/Makefile | 17 -
app/test-bbdev/Makefile | 30 --
app/test-cmdline/Makefile | 24 -
app/test-compress-perf/Makefile | 19 -
app/test-crypto-perf/Makefile | 28 -
app/test-eventdev/Makefile | 32 --
app/test-fib/Makefile | 18 -
app/test-flow-perf/Makefile | 26 -
app/test-pipeline/Makefile | 33 --
app/test-pmd/Makefile | 73 ---
app/test-regex/Makefile | 13 -
app/test-sad/Makefile | 17 -
app/test/Makefile | 310 -----------
buildtools/Makefile | 9 -
buildtools/pmdinfogen/Makefile | 20 -
drivers/Makefile | 34 --
drivers/baseband/Makefile | 18 -
drivers/baseband/fpga_5gnr_fec/Makefile | 28 -
drivers/baseband/fpga_lte_fec/Makefile | 25 -
drivers/baseband/null/Makefile | 21 -
drivers/baseband/turbo_sw/Makefile | 52 --
drivers/bus/Makefile | 15 -
drivers/bus/dpaa/Makefile | 48 --
drivers/bus/fslmc/Makefile | 47 --
drivers/bus/ifpga/Makefile | 28 -
drivers/bus/pci/Makefile | 33 --
drivers/bus/pci/bsd/Makefile | 4 -
drivers/bus/pci/linux/Makefile | 6 -
drivers/bus/vdev/Makefile | 27 -
drivers/bus/vmbus/Makefile | 33 --
drivers/bus/vmbus/linux/Makefile | 3 -
drivers/common/Makefile | 39 --
drivers/common/cpt/Makefile | 24 -
drivers/common/dpaax/Makefile | 30 --
drivers/common/iavf/Makefile | 27 -
drivers/common/mlx5/Makefile | 404 --------------
drivers/common/mvep/Makefile | 35 --
drivers/common/octeontx/Makefile | 22 -
drivers/common/octeontx2/Makefile | 39 --
drivers/common/qat/Makefile | 74 ---
drivers/compress/Makefile | 10 -
drivers/compress/isal/Makefile | 27 -
drivers/compress/octeontx/Makefile | 26 -
drivers/compress/zlib/Makefile | 25 -
drivers/crypto/Makefile | 31 --
drivers/crypto/aesni_gcm/Makefile | 43 --
drivers/crypto/aesni_mb/Makefile | 42 --
drivers/crypto/armv8/Makefile | 36 --
drivers/crypto/caam_jr/Makefile | 39 --
drivers/crypto/ccp/Makefile | 32 --
drivers/crypto/dpaa2_sec/Makefile | 45 --
drivers/crypto/dpaa_sec/Makefile | 38 --
drivers/crypto/kasumi/Makefile | 42 --
drivers/crypto/mvsam/Makefile | 40 --
drivers/crypto/nitrox/Makefile | 30 --
drivers/crypto/null/Makefile | 27 -
drivers/crypto/octeontx/Makefile | 36 --
drivers/crypto/octeontx2/Makefile | 49 --
drivers/crypto/openssl/Makefile | 26 -
drivers/crypto/scheduler/Makefile | 34 --
drivers/crypto/snow3g/Makefile | 43 --
drivers/crypto/virtio/Makefile | 33 --
drivers/crypto/zuc/Makefile | 42 --
drivers/event/Makefile | 20 -
drivers/event/dpaa/Makefile | 39 --
drivers/event/dpaa2/Makefile | 41 --
drivers/event/dsw/Makefile | 26 -
drivers/event/octeontx/Makefile | 51 --
drivers/event/octeontx2/Makefile | 47 --
drivers/event/opdl/Makefile | 29 -
drivers/event/skeleton/Makefile | 24 -
drivers/event/sw/Makefile | 29 -
drivers/mempool/Makefile | 18 -
drivers/mempool/bucket/Makefile | 25 -
drivers/mempool/dpaa/Makefile | 30 --
drivers/mempool/dpaa2/Makefile | 31 --
drivers/mempool/octeontx/Makefile | 39 --
drivers/mempool/octeontx2/Makefile | 40 --
drivers/mempool/ring/Makefile | 19 -
drivers/mempool/stack/Makefile | 22 -
drivers/net/Makefile | 84 ---
drivers/net/af_packet/Makefile | 27 -
drivers/net/af_xdp/Makefile | 26 -
drivers/net/ark/Makefile | 39 --
drivers/net/atlantic/Makefile | 34 --
drivers/net/avp/Makefile | 29 -
drivers/net/axgbe/Makefile | 33 --
drivers/net/bnx2x/Makefile | 33 --
drivers/net/bnxt/Makefile | 63 ---
drivers/net/bnxt/hcapi/Makefile | 5 -
drivers/net/bnxt/tf_core/Makefile | 31 --
drivers/net/bnxt/tf_ulp/Makefile | 20 -
drivers/net/bonding/Makefile | 36 --
drivers/net/cxgbe/Makefile | 57 --
drivers/net/dpaa/Makefile | 41 --
drivers/net/dpaa2/Makefile | 47 --
drivers/net/e1000/Makefile | 79 ---
drivers/net/ena/Makefile | 30 --
drivers/net/enetc/Makefile | 23 -
drivers/net/enic/Makefile | 68 ---
drivers/net/failsafe/Makefile | 43 --
drivers/net/fm10k/Makefile | 77 ---
drivers/net/hinic/Makefile | 67 ---
drivers/net/hns3/Makefile | 42 --
drivers/net/i40e/Makefile | 112 ----
drivers/net/iavf/Makefile | 54 --
drivers/net/ice/Makefile | 96 ----
drivers/net/igc/Makefile | 40 --
drivers/net/ionic/Makefile | 31 --
drivers/net/ipn3ke/Makefile | 38 --
drivers/net/ixgbe/Makefile | 110 ----
drivers/net/kni/Makefile | 30 --
drivers/net/liquidio/Makefile | 30 --
drivers/net/memif/Makefile | 26 -
drivers/net/mlx4/Makefile | 142 -----
drivers/net/mlx5/Makefile | 82 ---
drivers/net/mvneta/Makefile | 39 --
drivers/net/mvpp2/Makefile | 42 --
drivers/net/netvsc/Makefile | 21 -
drivers/net/nfb/Makefile | 40 --
drivers/net/nfp/Makefile | 41 --
drivers/net/null/Makefile | 24 -
drivers/net/octeontx/Makefile | 53 --
drivers/net/octeontx2/Makefile | 63 ---
drivers/net/pcap/Makefile | 32 --
drivers/net/pfe/Makefile | 31 --
drivers/net/qede/Makefile | 109 ----
drivers/net/ring/Makefile | 29 -
drivers/net/sfc/Makefile | 133 -----
drivers/net/softnic/Makefile | 54 --
drivers/net/szedata2/Makefile | 30 --
drivers/net/tap/Makefile | 97 ----
drivers/net/thunderx/Makefile | 41 --
drivers/net/vdev_netvsc/Makefile | 30 --
drivers/net/vhost/Makefile | 31 --
drivers/net/virtio/Makefile | 82 ---
drivers/net/vmxnet3/Makefile | 53 --
drivers/raw/Makefile | 18 -
drivers/raw/dpaa2_cmdif/Makefile | 35 --
drivers/raw/dpaa2_qdma/Makefile | 36 --
drivers/raw/ifpga/Makefile | 39 --
drivers/raw/ifpga/base/Makefile | 32 --
drivers/raw/ioat/Makefile | 28 -
drivers/raw/ntb/Makefile | 28 -
drivers/raw/octeontx2_dma/Makefile | 34 --
drivers/raw/octeontx2_ep/Makefile | 42 --
drivers/raw/skeleton/Makefile | 26 -
drivers/regex/Makefile | 8 -
drivers/regex/mlx5/Makefile | 41 --
drivers/vdpa/Makefile | 12 -
drivers/vdpa/ifc/Makefile | 33 --
drivers/vdpa/mlx5/Makefile | 58 --
examples/Makefile | 90 ----
examples/ethtool/Makefile | 23 -
examples/ethtool/ethtool-app/Makefile | 32 --
examples/ethtool/lib/Makefile | 37 --
examples/l2fwd-keepalive/ka-agent/Makefile | 22 -
examples/multi_process/Makefile | 18 -
.../multi_process/client_server_mp/Makefile | 16 -
.../client_server_mp/mp_client/Makefile | 21 -
.../client_server_mp/mp_server/Makefile | 34 --
examples/multi_process/hotplug_mp/Makefile | 23 -
examples/multi_process/simple_mp/Makefile | 23 -
examples/multi_process/symmetric_mp/Makefile | 23 -
examples/performance-thread/Makefile | 21 -
examples/performance-thread/common/common.mk | 21 -
.../performance-thread/l3fwd-thread/Makefile | 24 -
.../performance-thread/pthread_shim/Makefile | 33 --
examples/server_node_efd/Makefile | 16 -
examples/server_node_efd/node/Makefile | 21 -
examples/server_node_efd/server/Makefile | 30 --
examples/vm_power_manager/Makefile | 65 ---
examples/vm_power_manager/guest_cli/Makefile | 29 -
kernel/Makefile | 9 -
kernel/freebsd/Makefile | 9 -
kernel/freebsd/contigmem/Makefile | 24 -
kernel/freebsd/nic_uio/Makefile | 24 -
kernel/linux/Makefile | 9 -
kernel/linux/igb_uio/Makefile | 25 -
kernel/linux/kni/Makefile | 34 --
lib/Makefile | 138 -----
lib/librte_acl/Makefile | 65 ---
lib/librte_bbdev/Makefile | 25 -
lib/librte_bitratestats/Makefile | 20 -
lib/librte_bpf/Makefile | 40 --
lib/librte_cfgfile/Makefile | 26 -
lib/librte_cmdline/Makefile | 34 --
lib/librte_compressdev/Makefile | 27 -
lib/librte_cryptodev/Makefile | 30 --
lib/librte_distributor/Makefile | 28 -
lib/librte_eal/Makefile | 12 -
lib/librte_eal/freebsd/Makefile | 104 ----
lib/librte_eal/include/Makefile | 19 -
lib/librte_eal/linux/Makefile | 112 ----
lib/librte_efd/Makefile | 21 -
lib/librte_ethdev/Makefile | 46 --
lib/librte_eventdev/Makefile | 47 --
lib/librte_fib/Makefile | 22 -
lib/librte_flow_classify/Makefile | 23 -
lib/librte_graph/Makefile | 28 -
lib/librte_gro/Makefile | 23 -
lib/librte_gso/Makefile | 25 -
lib/librte_hash/Makefile | 31 --
lib/librte_ip_frag/Makefile | 27 -
lib/librte_ipsec/Makefile | 29 -
lib/librte_jobstats/Makefile | 21 -
lib/librte_kni/Makefile | 20 -
lib/librte_kvargs/Makefile | 21 -
lib/librte_latencystats/Makefile | 22 -
lib/librte_lpm/Makefile | 29 -
lib/librte_mbuf/Makefile | 26 -
lib/librte_member/Makefile | 22 -
lib/librte_mempool/Makefile | 24 -
lib/librte_meter/Makefile | 27 -
lib/librte_metrics/Makefile | 30 --
lib/librte_net/Makefile | 25 -
lib/librte_node/Makefile | 33 --
lib/librte_pci/Makefile | 19 -
lib/librte_pdump/Makefile | 20 -
lib/librte_pipeline/Makefile | 28 -
lib/librte_port/Makefile | 59 --
lib/librte_power/Makefile | 24 -
lib/librte_rawdev/Makefile | 24 -
lib/librte_rcu/Makefile | 20 -
lib/librte_regexdev/Makefile | 32 --
lib/librte_reorder/Makefile | 21 -
lib/librte_rib/Makefile | 22 -
lib/librte_ring/Makefile | 30 --
lib/librte_sched/Makefile | 29 -
lib/librte_security/Makefile | 24 -
lib/librte_stack/Makefile | 27 -
lib/librte_table/Makefile | 59 --
lib/librte_telemetry/Makefile | 30 --
lib/librte_timer/Makefile | 20 -
lib/librte_vhost/Makefile | 54 --
mk/arch/arm/rte.vars.mk | 16 -
mk/arch/arm64/rte.vars.mk | 37 --
mk/arch/i686/rte.vars.mk | 36 --
mk/arch/ppc_64/rte.vars.mk | 17 -
mk/arch/x86_64/rte.vars.mk | 36 --
mk/arch/x86_x32/rte.vars.mk | 40 --
mk/exec-env/bsdapp | 1 -
mk/exec-env/freebsd/rte.app.mk | 8 -
mk/exec-env/freebsd/rte.vars.mk | 36 --
mk/exec-env/linux/rte.app.mk | 8 -
mk/exec-env/linux/rte.vars.mk | 44 --
mk/exec-env/linuxapp | 1 -
mk/internal/rte.build-post.mk | 34 --
mk/internal/rte.build-pre.mk | 7 -
mk/internal/rte.clean-post.mk | 34 --
mk/internal/rte.clean-pre.mk | 4 -
mk/internal/rte.compile-post.mk | 5 -
mk/internal/rte.compile-pre.mk | 164 ------
mk/internal/rte.extvars.mk | 55 --
mk/internal/rte.install-post.mk | 71 ---
mk/internal/rte.install-pre.mk | 32 --
mk/machine/armv7a/rte.vars.mk | 36 --
mk/machine/armv8a/rte.vars.mk | 31 --
mk/machine/default/rte.vars.mk | 30 --
mk/machine/dpaa/rte.vars.mk | 37 --
mk/machine/emag/rte.vars.mk | 32 --
mk/machine/hsw/rte.vars.mk | 30 --
mk/machine/ivb/rte.vars.mk | 30 --
mk/machine/n1sdp/rte.vars.mk | 34 --
mk/machine/native/rte.vars.mk | 39 --
mk/machine/nhm/rte.vars.mk | 30 --
mk/machine/octeontx2/rte.vars.mk | 34 --
mk/machine/power8/rte.vars.mk | 30 --
mk/machine/silvermont/rte.vars.mk | 30 --
mk/machine/snb/rte.vars.mk | 30 --
mk/machine/thunderx/rte.vars.mk | 31 --
mk/machine/thunderx2/rte.vars.mk | 34 --
mk/machine/wsm/rte.vars.mk | 30 --
mk/machine/xgene1/rte.vars.mk | 31 --
mk/rte.app.mk | 509 ------------------
mk/rte.bsdmodule.mk | 89 ---
mk/rte.combinedlib.mk | 30 --
mk/rte.cpuflags.mk | 124 -----
mk/rte.extapp.mk | 24 -
mk/rte.extlib.mk | 26 -
mk/rte.extobj.mk | 24 -
mk/rte.extshared.mk | 26 -
mk/rte.extsubdir.mk | 39 --
mk/rte.gnuconfigure.mk | 44 --
mk/rte.helper.mk | 10 -
mk/rte.hostapp.mk | 93 ----
mk/rte.hostlib.mk | 86 ---
mk/rte.install.mk | 28 -
mk/rte.lib.mk | 156 ------
mk/rte.module.mk | 86 ---
mk/rte.obj.mk | 82 ---
mk/rte.sdkbuild.mk | 77 ---
mk/rte.sdkconfig.mk | 142 -----
mk/rte.sdkdepdirs.mk | 9 -
mk/rte.sdkdoc.mk | 104 ----
mk/rte.sdkexamples.mk | 50 --
mk/rte.sdkgcov.mk | 39 --
mk/rte.sdkinstall.mk | 152 ------
mk/rte.sdkroot.mk | 115 ----
mk/rte.sdktest.mk | 76 ---
mk/rte.shared.mk | 108 ----
mk/rte.subdir.mk | 65 ---
mk/rte.vars.mk | 102 ----
mk/target/generic/rte.app.mk | 13 -
mk/target/generic/rte.vars.mk | 132 -----
mk/toolchain/clang/rte.toolchain-compat.mk | 22 -
mk/toolchain/clang/rte.vars.mk | 60 ---
mk/toolchain/gcc/rte.toolchain-compat.mk | 120 -----
mk/toolchain/gcc/rte.vars.mk | 109 ----
mk/toolchain/icc/rte.toolchain-compat.mk | 58 --
mk/toolchain/icc/rte.vars.mk | 62 ---
316 files changed, 13524 deletions(-)
delete mode 100644 GNUmakefile
delete mode 100644 Makefile
delete mode 100644 app/Makefile
delete mode 100644 app/pdump/Makefile
delete mode 100644 app/proc-info/Makefile
delete mode 100644 app/test-acl/Makefile
delete mode 100644 app/test-bbdev/Makefile
delete mode 100644 app/test-cmdline/Makefile
delete mode 100644 app/test-compress-perf/Makefile
delete mode 100644 app/test-crypto-perf/Makefile
delete mode 100644 app/test-eventdev/Makefile
delete mode 100644 app/test-fib/Makefile
delete mode 100644 app/test-flow-perf/Makefile
delete mode 100644 app/test-pipeline/Makefile
delete mode 100644 app/test-pmd/Makefile
delete mode 100644 app/test-regex/Makefile
delete mode 100644 app/test-sad/Makefile
delete mode 100644 app/test/Makefile
delete mode 100644 buildtools/Makefile
delete mode 100644 buildtools/pmdinfogen/Makefile
delete mode 100644 drivers/Makefile
delete mode 100644 drivers/baseband/Makefile
delete mode 100644 drivers/baseband/fpga_5gnr_fec/Makefile
delete mode 100644 drivers/baseband/fpga_lte_fec/Makefile
delete mode 100644 drivers/baseband/null/Makefile
delete mode 100644 drivers/baseband/turbo_sw/Makefile
delete mode 100644 drivers/bus/Makefile
delete mode 100644 drivers/bus/dpaa/Makefile
delete mode 100644 drivers/bus/fslmc/Makefile
delete mode 100644 drivers/bus/ifpga/Makefile
delete mode 100644 drivers/bus/pci/Makefile
delete mode 100644 drivers/bus/pci/bsd/Makefile
delete mode 100644 drivers/bus/pci/linux/Makefile
delete mode 100644 drivers/bus/vdev/Makefile
delete mode 100644 drivers/bus/vmbus/Makefile
delete mode 100644 drivers/bus/vmbus/linux/Makefile
delete mode 100644 drivers/common/Makefile
delete mode 100644 drivers/common/cpt/Makefile
delete mode 100644 drivers/common/dpaax/Makefile
delete mode 100644 drivers/common/iavf/Makefile
delete mode 100644 drivers/common/mlx5/Makefile
delete mode 100644 drivers/common/mvep/Makefile
delete mode 100644 drivers/common/octeontx/Makefile
delete mode 100644 drivers/common/octeontx2/Makefile
delete mode 100644 drivers/common/qat/Makefile
delete mode 100644 drivers/compress/Makefile
delete mode 100644 drivers/compress/isal/Makefile
delete mode 100644 drivers/compress/octeontx/Makefile
delete mode 100644 drivers/compress/zlib/Makefile
delete mode 100644 drivers/crypto/Makefile
delete mode 100644 drivers/crypto/aesni_gcm/Makefile
delete mode 100644 drivers/crypto/aesni_mb/Makefile
delete mode 100644 drivers/crypto/armv8/Makefile
delete mode 100644 drivers/crypto/caam_jr/Makefile
delete mode 100644 drivers/crypto/ccp/Makefile
delete mode 100644 drivers/crypto/dpaa2_sec/Makefile
delete mode 100644 drivers/crypto/dpaa_sec/Makefile
delete mode 100644 drivers/crypto/kasumi/Makefile
delete mode 100644 drivers/crypto/mvsam/Makefile
delete mode 100644 drivers/crypto/nitrox/Makefile
delete mode 100644 drivers/crypto/null/Makefile
delete mode 100644 drivers/crypto/octeontx/Makefile
delete mode 100644 drivers/crypto/octeontx2/Makefile
delete mode 100644 drivers/crypto/openssl/Makefile
delete mode 100644 drivers/crypto/scheduler/Makefile
delete mode 100644 drivers/crypto/snow3g/Makefile
delete mode 100644 drivers/crypto/virtio/Makefile
delete mode 100644 drivers/crypto/zuc/Makefile
delete mode 100644 drivers/event/Makefile
delete mode 100644 drivers/event/dpaa/Makefile
delete mode 100644 drivers/event/dpaa2/Makefile
delete mode 100644 drivers/event/dsw/Makefile
delete mode 100644 drivers/event/octeontx/Makefile
delete mode 100644 drivers/event/octeontx2/Makefile
delete mode 100644 drivers/event/opdl/Makefile
delete mode 100644 drivers/event/skeleton/Makefile
delete mode 100644 drivers/event/sw/Makefile
delete mode 100644 drivers/mempool/Makefile
delete mode 100644 drivers/mempool/bucket/Makefile
delete mode 100644 drivers/mempool/dpaa/Makefile
delete mode 100644 drivers/mempool/dpaa2/Makefile
delete mode 100644 drivers/mempool/octeontx/Makefile
delete mode 100644 drivers/mempool/octeontx2/Makefile
delete mode 100644 drivers/mempool/ring/Makefile
delete mode 100644 drivers/mempool/stack/Makefile
delete mode 100644 drivers/net/Makefile
delete mode 100644 drivers/net/af_packet/Makefile
delete mode 100644 drivers/net/af_xdp/Makefile
delete mode 100644 drivers/net/ark/Makefile
delete mode 100644 drivers/net/atlantic/Makefile
delete mode 100644 drivers/net/avp/Makefile
delete mode 100644 drivers/net/axgbe/Makefile
delete mode 100644 drivers/net/bnx2x/Makefile
delete mode 100644 drivers/net/bnxt/Makefile
delete mode 100644 drivers/net/bnxt/hcapi/Makefile
delete mode 100644 drivers/net/bnxt/tf_core/Makefile
delete mode 100644 drivers/net/bnxt/tf_ulp/Makefile
delete mode 100644 drivers/net/bonding/Makefile
delete mode 100644 drivers/net/cxgbe/Makefile
delete mode 100644 drivers/net/dpaa/Makefile
delete mode 100644 drivers/net/dpaa2/Makefile
delete mode 100644 drivers/net/e1000/Makefile
delete mode 100644 drivers/net/ena/Makefile
delete mode 100644 drivers/net/enetc/Makefile
delete mode 100644 drivers/net/enic/Makefile
delete mode 100644 drivers/net/failsafe/Makefile
delete mode 100644 drivers/net/fm10k/Makefile
delete mode 100644 drivers/net/hinic/Makefile
delete mode 100644 drivers/net/hns3/Makefile
delete mode 100644 drivers/net/i40e/Makefile
delete mode 100644 drivers/net/iavf/Makefile
delete mode 100644 drivers/net/ice/Makefile
delete mode 100644 drivers/net/igc/Makefile
delete mode 100644 drivers/net/ionic/Makefile
delete mode 100644 drivers/net/ipn3ke/Makefile
delete mode 100644 drivers/net/ixgbe/Makefile
delete mode 100644 drivers/net/kni/Makefile
delete mode 100644 drivers/net/liquidio/Makefile
delete mode 100644 drivers/net/memif/Makefile
delete mode 100644 drivers/net/mlx4/Makefile
delete mode 100644 drivers/net/mlx5/Makefile
delete mode 100644 drivers/net/mvneta/Makefile
delete mode 100644 drivers/net/mvpp2/Makefile
delete mode 100644 drivers/net/netvsc/Makefile
delete mode 100644 drivers/net/nfb/Makefile
delete mode 100644 drivers/net/nfp/Makefile
delete mode 100644 drivers/net/null/Makefile
delete mode 100644 drivers/net/octeontx/Makefile
delete mode 100644 drivers/net/octeontx2/Makefile
delete mode 100644 drivers/net/pcap/Makefile
delete mode 100644 drivers/net/pfe/Makefile
delete mode 100644 drivers/net/qede/Makefile
delete mode 100644 drivers/net/ring/Makefile
delete mode 100644 drivers/net/sfc/Makefile
delete mode 100644 drivers/net/softnic/Makefile
delete mode 100644 drivers/net/szedata2/Makefile
delete mode 100644 drivers/net/tap/Makefile
delete mode 100644 drivers/net/thunderx/Makefile
delete mode 100644 drivers/net/vdev_netvsc/Makefile
delete mode 100644 drivers/net/vhost/Makefile
delete mode 100644 drivers/net/virtio/Makefile
delete mode 100644 drivers/net/vmxnet3/Makefile
delete mode 100644 drivers/raw/Makefile
delete mode 100644 drivers/raw/dpaa2_cmdif/Makefile
delete mode 100644 drivers/raw/dpaa2_qdma/Makefile
delete mode 100644 drivers/raw/ifpga/Makefile
delete mode 100644 drivers/raw/ifpga/base/Makefile
delete mode 100644 drivers/raw/ioat/Makefile
delete mode 100644 drivers/raw/ntb/Makefile
delete mode 100644 drivers/raw/octeontx2_dma/Makefile
delete mode 100644 drivers/raw/octeontx2_ep/Makefile
delete mode 100644 drivers/raw/skeleton/Makefile
delete mode 100644 drivers/regex/Makefile
delete mode 100644 drivers/regex/mlx5/Makefile
delete mode 100644 drivers/vdpa/Makefile
delete mode 100644 drivers/vdpa/ifc/Makefile
delete mode 100644 drivers/vdpa/mlx5/Makefile
delete mode 100644 examples/Makefile
delete mode 100644 examples/ethtool/Makefile
delete mode 100644 examples/ethtool/ethtool-app/Makefile
delete mode 100644 examples/ethtool/lib/Makefile
delete mode 100644 examples/l2fwd-keepalive/ka-agent/Makefile
delete mode 100644 examples/multi_process/Makefile
delete mode 100644 examples/multi_process/client_server_mp/Makefile
delete mode 100644 examples/multi_process/client_server_mp/mp_client/Makefile
delete mode 100644 examples/multi_process/client_server_mp/mp_server/Makefile
delete mode 100644 examples/multi_process/hotplug_mp/Makefile
delete mode 100644 examples/multi_process/simple_mp/Makefile
delete mode 100644 examples/multi_process/symmetric_mp/Makefile
delete mode 100644 examples/performance-thread/Makefile
delete mode 100644 examples/performance-thread/common/common.mk
delete mode 100644 examples/performance-thread/l3fwd-thread/Makefile
delete mode 100644 examples/performance-thread/pthread_shim/Makefile
delete mode 100644 examples/server_node_efd/Makefile
delete mode 100644 examples/server_node_efd/node/Makefile
delete mode 100644 examples/server_node_efd/server/Makefile
delete mode 100644 examples/vm_power_manager/Makefile
delete mode 100644 examples/vm_power_manager/guest_cli/Makefile
delete mode 100644 kernel/Makefile
delete mode 100644 kernel/freebsd/Makefile
delete mode 100644 kernel/freebsd/contigmem/Makefile
delete mode 100644 kernel/freebsd/nic_uio/Makefile
delete mode 100644 kernel/linux/Makefile
delete mode 100644 kernel/linux/igb_uio/Makefile
delete mode 100644 kernel/linux/kni/Makefile
delete mode 100644 lib/Makefile
delete mode 100644 lib/librte_acl/Makefile
delete mode 100644 lib/librte_bbdev/Makefile
delete mode 100644 lib/librte_bitratestats/Makefile
delete mode 100644 lib/librte_bpf/Makefile
delete mode 100644 lib/librte_cfgfile/Makefile
delete mode 100644 lib/librte_cmdline/Makefile
delete mode 100644 lib/librte_compressdev/Makefile
delete mode 100644 lib/librte_cryptodev/Makefile
delete mode 100644 lib/librte_distributor/Makefile
delete mode 100644 lib/librte_eal/Makefile
delete mode 100644 lib/librte_eal/freebsd/Makefile
delete mode 100644 lib/librte_eal/include/Makefile
delete mode 100644 lib/librte_eal/linux/Makefile
delete mode 100644 lib/librte_efd/Makefile
delete mode 100644 lib/librte_ethdev/Makefile
delete mode 100644 lib/librte_eventdev/Makefile
delete mode 100644 lib/librte_fib/Makefile
delete mode 100644 lib/librte_flow_classify/Makefile
delete mode 100644 lib/librte_graph/Makefile
delete mode 100644 lib/librte_gro/Makefile
delete mode 100644 lib/librte_gso/Makefile
delete mode 100644 lib/librte_hash/Makefile
delete mode 100644 lib/librte_ip_frag/Makefile
delete mode 100644 lib/librte_ipsec/Makefile
delete mode 100644 lib/librte_jobstats/Makefile
delete mode 100644 lib/librte_kni/Makefile
delete mode 100644 lib/librte_kvargs/Makefile
delete mode 100644 lib/librte_latencystats/Makefile
delete mode 100644 lib/librte_lpm/Makefile
delete mode 100644 lib/librte_mbuf/Makefile
delete mode 100644 lib/librte_member/Makefile
delete mode 100644 lib/librte_mempool/Makefile
delete mode 100644 lib/librte_meter/Makefile
delete mode 100644 lib/librte_metrics/Makefile
delete mode 100644 lib/librte_net/Makefile
delete mode 100644 lib/librte_node/Makefile
delete mode 100644 lib/librte_pci/Makefile
delete mode 100644 lib/librte_pdump/Makefile
delete mode 100644 lib/librte_pipeline/Makefile
delete mode 100644 lib/librte_port/Makefile
delete mode 100644 lib/librte_power/Makefile
delete mode 100644 lib/librte_rawdev/Makefile
delete mode 100644 lib/librte_rcu/Makefile
delete mode 100644 lib/librte_regexdev/Makefile
delete mode 100644 lib/librte_reorder/Makefile
delete mode 100644 lib/librte_rib/Makefile
delete mode 100644 lib/librte_ring/Makefile
delete mode 100644 lib/librte_sched/Makefile
delete mode 100644 lib/librte_security/Makefile
delete mode 100644 lib/librte_stack/Makefile
delete mode 100644 lib/librte_table/Makefile
delete mode 100644 lib/librte_telemetry/Makefile
delete mode 100644 lib/librte_timer/Makefile
delete mode 100644 lib/librte_vhost/Makefile
delete mode 100644 mk/arch/arm/rte.vars.mk
delete mode 100644 mk/arch/arm64/rte.vars.mk
delete mode 100644 mk/arch/i686/rte.vars.mk
delete mode 100644 mk/arch/ppc_64/rte.vars.mk
delete mode 100644 mk/arch/x86_64/rte.vars.mk
delete mode 100644 mk/arch/x86_x32/rte.vars.mk
delete mode 120000 mk/exec-env/bsdapp
delete mode 100644 mk/exec-env/freebsd/rte.app.mk
delete mode 100644 mk/exec-env/freebsd/rte.vars.mk
delete mode 100644 mk/exec-env/linux/rte.app.mk
delete mode 100644 mk/exec-env/linux/rte.vars.mk
delete mode 120000 mk/exec-env/linuxapp
delete mode 100644 mk/internal/rte.build-post.mk
delete mode 100644 mk/internal/rte.build-pre.mk
delete mode 100644 mk/internal/rte.clean-post.mk
delete mode 100644 mk/internal/rte.clean-pre.mk
delete mode 100644 mk/internal/rte.compile-post.mk
delete mode 100644 mk/internal/rte.compile-pre.mk
delete mode 100644 mk/internal/rte.extvars.mk
delete mode 100644 mk/internal/rte.install-post.mk
delete mode 100644 mk/internal/rte.install-pre.mk
delete mode 100644 mk/machine/armv7a/rte.vars.mk
delete mode 100644 mk/machine/armv8a/rte.vars.mk
delete mode 100644 mk/machine/default/rte.vars.mk
delete mode 100644 mk/machine/dpaa/rte.vars.mk
delete mode 100644 mk/machine/emag/rte.vars.mk
delete mode 100644 mk/machine/hsw/rte.vars.mk
delete mode 100644 mk/machine/ivb/rte.vars.mk
delete mode 100644 mk/machine/n1sdp/rte.vars.mk
delete mode 100644 mk/machine/native/rte.vars.mk
delete mode 100644 mk/machine/nhm/rte.vars.mk
delete mode 100644 mk/machine/octeontx2/rte.vars.mk
delete mode 100644 mk/machine/power8/rte.vars.mk
delete mode 100644 mk/machine/silvermont/rte.vars.mk
delete mode 100644 mk/machine/snb/rte.vars.mk
delete mode 100644 mk/machine/thunderx/rte.vars.mk
delete mode 100644 mk/machine/thunderx2/rte.vars.mk
delete mode 100644 mk/machine/wsm/rte.vars.mk
delete mode 100644 mk/machine/xgene1/rte.vars.mk
delete mode 100644 mk/rte.app.mk
delete mode 100644 mk/rte.bsdmodule.mk
delete mode 100644 mk/rte.combinedlib.mk
delete mode 100644 mk/rte.cpuflags.mk
delete mode 100644 mk/rte.extapp.mk
delete mode 100644 mk/rte.extlib.mk
delete mode 100644 mk/rte.extobj.mk
delete mode 100644 mk/rte.extshared.mk
delete mode 100644 mk/rte.extsubdir.mk
delete mode 100644 mk/rte.gnuconfigure.mk
delete mode 100644 mk/rte.helper.mk
delete mode 100644 mk/rte.hostapp.mk
delete mode 100644 mk/rte.hostlib.mk
delete mode 100644 mk/rte.install.mk
delete mode 100644 mk/rte.lib.mk
delete mode 100644 mk/rte.module.mk
delete mode 100644 mk/rte.obj.mk
delete mode 100644 mk/rte.sdkbuild.mk
delete mode 100644 mk/rte.sdkconfig.mk
delete mode 100644 mk/rte.sdkdepdirs.mk
delete mode 100644 mk/rte.sdkdoc.mk
delete mode 100644 mk/rte.sdkexamples.mk
delete mode 100644 mk/rte.sdkgcov.mk
delete mode 100644 mk/rte.sdkinstall.mk
delete mode 100644 mk/rte.sdkroot.mk
delete mode 100644 mk/rte.sdktest.mk
delete mode 100644 mk/rte.shared.mk
delete mode 100644 mk/rte.subdir.mk
delete mode 100644 mk/rte.vars.mk
delete mode 100644 mk/target/generic/rte.app.mk
delete mode 100644 mk/target/generic/rte.vars.mk
delete mode 100644 mk/toolchain/clang/rte.toolchain-compat.mk
delete mode 100644 mk/toolchain/clang/rte.vars.mk
delete mode 100644 mk/toolchain/gcc/rte.toolchain-compat.mk
delete mode 100644 mk/toolchain/gcc/rte.vars.mk
delete mode 100644 mk/toolchain/icc/rte.toolchain-compat.mk
delete mode 100644 mk/toolchain/icc/rte.vars.mk
diff --git a/GNUmakefile b/GNUmakefile
deleted file mode 100644
index e8de422df8..0000000000
--- a/GNUmakefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-#
-# Head Makefile for compiling rte SDK
-#
-
-RTE_SDK := $(CURDIR)
-export RTE_SDK
-
-#
-# directory list
-#
-
-ROOTDIRS-y := buildtools lib kernel drivers app
-
-include $(RTE_SDK)/mk/rte.sdkroot.mk
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 571277aa5a..0000000000
--- a/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-.error Error please compile using GNU Make (gmake)
diff --git a/app/Makefile b/app/Makefile
deleted file mode 100644
index 453c4fed6d..0000000000
--- a/app/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_APP_TEST) += test
-DIRS-$(CONFIG_RTE_TEST_PMD) += test-pmd
-DIRS-$(CONFIG_RTE_PROC_INFO) += proc-info
-DIRS-$(CONFIG_RTE_LIBRTE_PDUMP) += pdump
-DIRS-$(CONFIG_RTE_LIBRTE_ACL) += test-acl
-DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test-cmdline
-DIRS-$(CONFIG_RTE_LIBRTE_FIB) += test-fib
-DIRS-$(CONFIG_RTE_TEST_FLOW_PERF) += test-flow-perf
-DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += test-pipeline
-DIRS-$(CONFIG_RTE_LIBRTE_IPSEC) += test-sad
-DIRS-$(CONFIG_RTE_LIBRTE_REGEXDEV) += test-regex
-
-ifeq ($(CONFIG_RTE_LIBRTE_BBDEV),y)
-DIRS-$(CONFIG_RTE_TEST_BBDEV) += test-bbdev
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y)
-DIRS-$(CONFIG_RTE_APP_COMPRESS_PERF) += test-compress-perf
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
-DIRS-$(CONFIG_RTE_APP_CRYPTO_PERF) += test-crypto-perf
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y)
-DIRS-$(CONFIG_RTE_APP_EVENTDEV) += test-eventdev
-endif
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/app/pdump/Makefile b/app/pdump/Makefile
deleted file mode 100644
index e6b9eea91b..0000000000
--- a/app/pdump/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_PDUMP),y)
-
-APP = dpdk-pdump
-
-CFLAGS += $(WERROR_FLAGS)
-
-# all source are stored in SRCS-y
-
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/proc-info/Makefile b/app/proc-info/Makefile
deleted file mode 100644
index 214f3f54a1..0000000000
--- a/app/proc-info/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-APP = dpdk-procinfo
-
-CFLAGS += $(WERROR_FLAGS)
-
-# all source are stored in SRCS-y
-
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-acl/Makefile b/app/test-acl/Makefile
deleted file mode 100644
index 5f26294cf1..0000000000
--- a/app/test-acl/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
-
-APP = testacl
-
-CFLAGS += $(WERROR_FLAGS)
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-bbdev/Makefile b/app/test-bbdev/Makefile
deleted file mode 100644
index dc29557f37..0000000000
--- a/app/test-bbdev/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-APP = testbbdev
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-#
-# all sources are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_TEST_BBDEV) += main.c
-SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev.c
-SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev_perf.c
-SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev_vector.c
-
-LDLIBS += -lm
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC),y)
-LDLIBS += -lrte_pmd_bbdev_fpga_lte_fec
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC),y)
-LDLIBS += -lrte_pmd_bbdev_fpga_5gnr_fec
-endif
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-cmdline/Makefile b/app/test-cmdline/Makefile
deleted file mode 100644
index 3e7421906b..0000000000
--- a/app/test-cmdline/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_CMDLINE),y)
-
-#
-# library name
-#
-APP = cmdline_test
-
-#
-# all sources are stored in SRCS-y
-#
-SRCS-y += cmdline_test.c
-SRCS-y += commands.c
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-compress-perf/Makefile b/app/test-compress-perf/Makefile
deleted file mode 100644
index 2bff531836..0000000000
--- a/app/test-compress-perf/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-APP = dpdk-test-compress-perf
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-SRCS-y += comp_perf_options_parse.c
-SRCS-y += comp_perf_test_verify.c
-SRCS-y += comp_perf_test_throughput.c
-SRCS-y += comp_perf_test_cyclecount.c
-SRCS-y += comp_perf_test_common.c
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-crypto-perf/Makefile b/app/test-crypto-perf/Makefile
deleted file mode 100644
index 0dced790f0..0000000000
--- a/app/test-crypto-perf/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-
-APP = dpdk-test-crypto-perf
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-SRCS-y += cperf_ops.c
-SRCS-y += cperf_options_parsing.c
-SRCS-y += cperf_test_vectors.c
-SRCS-y += cperf_test_throughput.c
-SRCS-y += cperf_test_latency.c
-SRCS-y += cperf_test_pmd_cyclecount.c
-SRCS-y += cperf_test_verify.c
-SRCS-y += cperf_test_vector_parsing.c
-SRCS-y += cperf_test_common.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER),y)
-LDLIBS += -lrte_pmd_crypto_scheduler
-endif
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-eventdev/Makefile b/app/test-eventdev/Makefile
deleted file mode 100644
index e600e21c41..0000000000
--- a/app/test-eventdev/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-APP = dpdk-test-eventdev
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := evt_main.c
-SRCS-y += evt_options.c
-SRCS-y += evt_test.c
-SRCS-y += parser.c
-
-SRCS-y += test_order_common.c
-SRCS-y += test_order_queue.c
-SRCS-y += test_order_atq.c
-
-SRCS-y += test_perf_common.c
-SRCS-y += test_perf_queue.c
-SRCS-y += test_perf_atq.c
-
-SRCS-y += test_pipeline_common.c
-SRCS-y += test_pipeline_queue.c
-SRCS-y += test_pipeline_atq.c
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-fib/Makefile b/app/test-fib/Makefile
deleted file mode 100644
index 2ea799c0e9..0000000000
--- a/app/test-fib/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_FIB),y)
-
-APP = testfib
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-flow-perf/Makefile b/app/test-flow-perf/Makefile
deleted file mode 100644
index 4f2db75910..0000000000
--- a/app/test-flow-perf/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2020 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_TEST_FLOW_PERF),y)
-
-#
-# library name
-#
-APP = dpdk-test-flow-perf
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += actions_gen.c
-SRCS-y += flow_gen.c
-SRCS-y += items_gen.c
-SRCS-y += main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-pipeline/Makefile b/app/test-pipeline/Makefile
deleted file mode 100644
index fc3a504409..0000000000
--- a/app/test-pipeline/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_PIPELINE),y)
-
-#
-# library name
-#
-APP = testpipeline
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := main.c
-SRCS-y += config.c
-SRCS-y += init.c
-SRCS-y += runtime.c
-SRCS-y += pipeline_stub.c
-SRCS-y += pipeline_hash.c
-SRCS-y += pipeline_lpm.c
-SRCS-y += pipeline_lpm_ipv6.c
-
-# include ACL lib if available
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += pipeline_acl.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile
deleted file mode 100644
index e739797f8a..0000000000
--- a/app/test-pmd/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_TEST_PMD),y)
-
-#
-# library name
-#
-APP = testpmd
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-deprecated-declarations
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := testpmd.c
-SRCS-y += parameters.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_mtr.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_tm.c
-SRCS-y += config.c
-SRCS-y += iofwd.c
-SRCS-y += macfwd.c
-SRCS-y += macswap.c
-SRCS-y += flowgen.c
-SRCS-y += rxonly.c
-SRCS-y += txonly.c
-SRCS-y += csumonly.c
-SRCS-y += icmpecho.c
-SRCS-y += noisy_vnf.c
-SRCS-y += 5tswap.c
-SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ieee1588fwd.c
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_cmd.c
-SRCS-y += util.c
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y)
-LDLIBS += -lrte_pmd_bond
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS)$(CONFIG_RTE_LIBRTE_DPAA_PMD),yy)
-LDLIBS += -lrte_pmd_dpaa
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_mempool_dpaa
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y)
-LDLIBS += -lrte_pmd_ixgbe
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_I40E_PMD),y)
-LDLIBS += -lrte_pmd_i40e
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_BNXT_PMD),y)
-LDLIBS += -lrte_pmd_bnxt
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_SOFTNIC),y)
-LDLIBS += -lrte_pmd_softnic
-endif
-
-endif
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test-regex/Makefile b/app/test-regex/Makefile
deleted file mode 100644
index bb8f150871..0000000000
--- a/app/test-regex/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2020 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-APP = dpdk-test-regex
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
diff --git a/app/test-sad/Makefile b/app/test-sad/Makefile
deleted file mode 100644
index 9b5a7ddc61..0000000000
--- a/app/test-sad/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_LIBRTE_IPSEC),y)
-
-APP = testsad
-
-CFLAGS += $(WERROR_FLAGS)
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/app/test/Makefile b/app/test/Makefile
deleted file mode 100644
index f4065271e4..0000000000
--- a/app/test/Makefile
+++ /dev/null
@@ -1,310 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_APP_TEST),y)
-
-# default rule
-all:
-
-# Define an externally linked resource. A linked resource is an arbitrary
-# file that is linked into the test binary. The application refers to this
-# resource by name. The linked generates identifiers beg_<name> and end_<name>
-# for referencing by the C code.
-#
-# Parameters: <unique name>, <file to be linked>
-define linked_resource
-SRCS-y += $(1).res.o
-$(1).res.o: $(2)
- @ echo ' MKRES $$@'
- $Q [ "$$(<D)" = . ] || ln -fs $$<
- $Q $(OBJCOPY) -I binary -B $(RTE_OBJCOPY_ARCH) -O $(RTE_OBJCOPY_TARGET) \
- --rename-section \
- .data=.rodata,alloc,load,data,contents,readonly \
- --redefine-sym _binary_$$(subst .,_,$$(<F))_start=beg_$(1) \
- --redefine-sym _binary_$$(subst .,_,$$(<F))_end=end_$(1) \
- --redefine-sym _binary_$$(subst .,_,$$(<F))_size=siz_$(1) \
- $$(<F) $$@
-endef
-
-ifeq ($(CONFIG_RTE_APP_TEST_RESOURCE_TAR),y)
-define linked_tar_resource
-$(1).tar: $(2)
- @ echo ' TAR $$@'
- $Q tar -C $$(dir $$<) -cf $$@ $$(notdir $$<)
-$(call linked_resource,$(1),$(1).tar)
-endef
-else # ! CONFIG_RTE_APP_TEST_RESOURCE_TAR
-linked_tar_resource =
-endif # CONFIG_RTE_APP_TEST_RESOURCE_TAR
-
-#
-# library name
-#
-APP = test
-
-#
-# all sources are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) := commands.c
-SRCS-y += test.c
-SRCS-y += resource.c
-SRCS-y += test_resource.c
-test_resource.res: test_resource.c
- @ cp $< $@
-$(eval $(call linked_resource,test_resource_c,test_resource.res))
-$(eval $(call linked_tar_resource,test_resource_tar,test_resource.c))
-SRCS-$(CONFIG_RTE_APP_TEST_RESOURCE_TAR) += test_cfgfile.c
-$(eval $(call linked_tar_resource,test_cfgfiles,test_cfgfiles))
-SRCS-y += test_prefetch.c
-SRCS-y += test_byteorder.c
-SRCS-y += test_per_lcore.c
-SRCS-y += test_atomic.c
-SRCS-y += test_barrier.c
-SRCS-y += test_malloc.c
-SRCS-y += test_cycles.c
-SRCS-y += test_mcslock.c
-SRCS-y += test_spinlock.c
-SRCS-y += test_ticketlock.c
-SRCS-y += test_memory.c
-SRCS-y += test_memzone.c
-SRCS-y += test_bitmap.c
-SRCS-y += test_bitops.c
-SRCS-y += test_reciprocal_division.c
-SRCS-y += test_reciprocal_division_perf.c
-SRCS-y += test_fbarray.c
-SRCS-y += test_external_mem.c
-SRCS-y += test_rand_perf.c
-
-SRCS-y += test_ring.c
-SRCS-y += test_ring_mpmc_stress.c
-SRCS-y += test_ring_hts_stress.c
-SRCS-y += test_ring_perf.c
-SRCS-y += test_ring_mt_peek_stress.c
-SRCS-y += test_ring_rts_stress.c
-SRCS-y += test_ring_st_peek_stress.c
-SRCS-y += test_ring_stress.c
-SRCS-y += test_pmd_perf.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_TABLE),y)
-SRCS-y += test_table.c
-SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += test_table_pipeline.c
-SRCS-y += test_table_tables.c
-SRCS-y += test_table_ports.c
-SRCS-y += test_table_combined.c
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += test_table_acl.c
-SRCS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += test_flow_classify.c
-endif
-
-SRCS-y += test_rwlock.c
-SRCS-y += test_lcores.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_STACK) += test_stack.c
-SRCS-$(CONFIG_RTE_LIBRTE_STACK) += test_stack_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_TIMER) += test_timer.c
-SRCS-$(CONFIG_RTE_LIBRTE_TIMER) += test_timer_perf.c
-SRCS-$(CONFIG_RTE_LIBRTE_TIMER) += test_timer_racecond.c
-SRCS-$(CONFIG_RTE_LIBRTE_TIMER) += test_timer_secondary.c
-
-SRCS-y += test_mempool.c
-SRCS-y += test_mempool_perf.c
-
-SRCS-y += test_mbuf.c
-SRCS-y += test_logs.c
-
-SRCS-y += test_memcpy.c
-SRCS-y += test_memcpy_perf.c
-
-
-SRCS-$(CONFIG_RTE_LIBRTE_MEMBER) += test_member.c
-SRCS-$(CONFIG_RTE_LIBRTE_MEMBER) += test_member_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_EFD) += test_efd.c
-SRCS-$(CONFIG_RTE_LIBRTE_EFD) += test_efd_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_thash.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash_perf.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash_functions.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash_multiwriter.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash_readwrite.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += test_hash_readwrite_lf_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_RIB) += test_rib.c
-SRCS-$(CONFIG_RTE_LIBRTE_RIB) += test_rib6.c
-SRCS-$(CONFIG_RTE_LIBRTE_FIB) += test_fib.c
-SRCS-$(CONFIG_RTE_LIBRTE_FIB) += test_fib6.c
-SRCS-$(CONFIG_RTE_LIBRTE_FIB) += test_fib_perf.c
-SRCS-$(CONFIG_RTE_LIBRTE_FIB) += test_fib6_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_LPM) += test_lpm.c
-SRCS-$(CONFIG_RTE_LIBRTE_LPM) += test_lpm_perf.c
-SRCS-$(CONFIG_RTE_LIBRTE_LPM) += test_lpm6.c
-SRCS-$(CONFIG_RTE_LIBRTE_LPM) += test_lpm6_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_TELEMETRY) += test_telemetry_json.c
-
-SRCS-y += test_debug.c
-SRCS-y += test_errno.c
-SRCS-y += test_tailq.c
-SRCS-y += test_string_fns.c
-SRCS-y += test_cpuflags.c
-SRCS-y += test_mp_secondary.c
-SRCS-y += test_eal_flags.c
-SRCS-y += test_eal_fs.c
-SRCS-y += test_alarm.c
-SRCS-y += test_interrupts.c
-SRCS-y += test_version.c
-SRCS-y += test_func_reentrancy.c
-SRCS-y += test_trace.c
-SRCS-y += test_trace_register.c
-SRCS-y += test_trace_perf.c
-SRCS-y += test_service_cores.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_RING),y)
-SRCS-y += sample_packet_forward.c
-SRCS-$(CONFIG_RTE_LIBRTE_BITRATE) += test_bitratestats.c
-SRCS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS) += test_latencystats.c
-SRCS-$(CONFIG_RTE_LIBRTE_PDUMP) += test_pdump.c
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_num.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_etheraddr.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_portlist.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_ipaddr.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_cirbuf.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_string.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_lib.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_NET) += test_crc.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_SCHED),y)
-SRCS-y += test_red.c
-SRCS-y += test_sched.c
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_METER) += test_meter.c
-SRCS-$(CONFIG_RTE_LIBRTE_KNI) += test_kni.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += test_power.c test_power_cpufreq.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += test_power_kvm_vm.c
-SRCS-y += test_common.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += test_distributor.c
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += test_distributor_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_REORDER) += test_reorder.c
-
-SRCS-y += virtual_pmd.c
-SRCS-y += packet_burst_generator.c
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += test_acl.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_RING),y)
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += test_link_bonding.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += test_link_bonding_mode4.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_NULL),y)
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += test_link_bonding_rssconf.c
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_RING) += test_pmd_ring.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_RING) += test_pmd_ring_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += test_cryptodev_blockcipher.c
-SRCS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += test_cryptodev.c
-SRCS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += test_cryptodev_asym.c
-SRCS-$(CONFIG_RTE_LIBRTE_SECURITY) += test_cryptodev_security_pdcp.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_METRICS) += test_metrics.c
-
-ifeq ($(CONFIG_RTE_COMPRESSDEV_TEST),y)
-SRCS-$(CONFIG_RTE_LIBRTE_COMPRESSDEV) += test_compressdev.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y)
-SRCS-y += test_eventdev.c
-SRCS-y += test_event_ring.c
-SRCS-y += test_event_eth_rx_adapter.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_RING) += test_event_eth_tx_adapter.c
-SRCS-y += test_event_timer_adapter.c
-SRCS-y += test_event_crypto_adapter.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_GRAPH), y)
-SRCS-y += test_graph.c
-SRCS-y += test_graph_perf.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_RAWDEV),y)
-SRCS-y += test_rawdev.c
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) += test_kvargs.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += test_bpf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_RCU) += test_rcu_qsbr.c test_rcu_qsbr_perf.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_SECURITY) += test_security.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += test_ipsec.c test_ipsec_perf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += test_ipsec_sad.c
-ifeq ($(CONFIG_RTE_LIBRTE_IPSEC),y)
-LDLIBS += -lrte_ipsec
-endif
-
-CFLAGS += -O3
-# Strict-aliasing rules are violated by uint8_t[] to context size casts.
-CFLAGS += -fno-strict-aliasing
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lm
-
-ifeq ($(CONFIG_RTE_LIBRTE_PDUMP),y)
-LDLIBS += -lpthread
-endif
-
-ifeq ($(CONFIG_RTE_COMPRESSDEV_TEST),y)
-ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y)
-LDLIBS += -lz
-endif
-endif
-
-# Disable VTA for memcpy test
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS_test_memcpy.o += -fno-var-tracking-assignments
-CFLAGS_test_memcpy_perf.o += -fno-var-tracking-assignments
-endif
-endif
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y)
-LDLIBS += -lrte_pmd_bond
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_NULL),y)
-LDLIBS += -lrte_pmd_null
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_RING),y)
-LDLIBS += -lrte_pmd_ring
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER),y)
-LDLIBS += -lrte_pmd_crypto_scheduler
-endif
-
-endif
-
-ifeq ($(CONFIG_RTE_APP_TEST_RESOURCE_TAR),y)
-LDLIBS += -larchive
-endif
-
-include $(RTE_SDK)/mk/rte.app.mk
-
-endif
diff --git a/buildtools/Makefile b/buildtools/Makefile
deleted file mode 100644
index 7f76fd7d65..0000000000
--- a/buildtools/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Neil Horman <nhorman@tuxdriver.com>
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-y += pmdinfogen
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/buildtools/pmdinfogen/Makefile b/buildtools/pmdinfogen/Makefile
deleted file mode 100644
index a97a7648fe..0000000000
--- a/buildtools/pmdinfogen/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Neil Horman <nhorman@tuxdriver.com>
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-HOSTAPP = dpdk-pmdinfogen
-
-#
-# all sources are stored in SRCS-y
-#
-SRCS-y += pmdinfogen.c
-
-HOST_CFLAGS += $(HOST_WERROR_FLAGS) -g
-HOST_CFLAGS += -I$(RTE_OUTPUT)/include
-
-include $(RTE_SDK)/mk/rte.hostapp.mk
diff --git a/drivers/Makefile b/drivers/Makefile
deleted file mode 100644
index 7f06162dc4..0000000000
--- a/drivers/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-y += common
-DIRS-y += bus
-DEPDIRS-bus := common
-DIRS-y += mempool
-DEPDIRS-mempool := common bus
-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)
-DIRS-y += common/mlx5
-DEPDIRS-common/mlx5 := bus
-endif
-DIRS-y += net
-DEPDIRS-net := common bus mempool common/mlx5
-DIRS-$(CONFIG_RTE_LIBRTE_BBDEV) += baseband
-DEPDIRS-baseband := common bus mempool
-DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += crypto
-DEPDIRS-crypto := common bus mempool
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += common/qat
-DEPDIRS-common/qat := bus mempool
-DIRS-$(CONFIG_RTE_LIBRTE_COMPRESSDEV) += compress
-DEPDIRS-compress := bus mempool
-DIRS-$(CONFIG_RTE_LIBRTE_REGEXDEV) += regex
-DEPDIRS-regex := common bus common/mlx5
-DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += vdpa
-DEPDIRS-vdpa := common bus mempool common/mlx5
-DIRS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += event
-DEPDIRS-event := common bus mempool net crypto
-DIRS-$(CONFIG_RTE_LIBRTE_RAWDEV) += raw
-DEPDIRS-raw := common bus mempool net event
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/baseband/Makefile b/drivers/baseband/Makefile
deleted file mode 100644
index dcc0969175..0000000000
--- a/drivers/baseband/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-core-libs := librte_eal librte_mbuf librte_mempool librte_ring
-core-libs += librte_bbdev librte_kvargs librte_cfgfile
-
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL) += null
-DEPDIRS-null = $(core-libs)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += turbo_sw
-DEPDIRS-turbo_sw = $(core-libs)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC) += fpga_lte_fec
-DEPDIRS-fpga_lte_fec = $(core-libs)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC) += fpga_5gnr_fec
-DEPDIRS-fpga_5gnr_fec = $(core-libs)
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/baseband/fpga_5gnr_fec/Makefile b/drivers/baseband/fpga_5gnr_fec/Makefile
deleted file mode 100644
index 7b7017c6dc..0000000000
--- a/drivers/baseband/fpga_5gnr_fec/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_bbdev_fpga_5gnr_fec.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_bbdev
-LDLIBS += -lrte_pci -lrte_bus_pci
-
-# versioning export map
-EXPORT_MAP := rte_pmd_bbdev_fpga_5gnr_fec_version.map
-
-# library version
-LIBABIVER := 1
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC) += rte_fpga_5gnr_fec.c
-
-# export include files
-SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC)-include += rte_pmd_fpga_5gnr_fec.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/baseband/fpga_lte_fec/Makefile b/drivers/baseband/fpga_lte_fec/Makefile
deleted file mode 100644
index 30caafe3db..0000000000
--- a/drivers/baseband/fpga_lte_fec/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_bbdev_fpga_lte_fec.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_bbdev
-LDLIBS += -lrte_pci -lrte_bus_pci
-
-# versioning export map
-EXPORT_MAP := rte_pmd_bbdev_fpga_lte_fec_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC) += fpga_lte_fec.c
-
-# export include files
-SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC)-include += fpga_lte_fec.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/baseband/null/Makefile b/drivers/baseband/null/Makefile
deleted file mode 100644
index 0ee500166d..0000000000
--- a/drivers/baseband/null/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-# library name
-LIB = librte_pmd_bbdev_null.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lrte_kvargs
-LDLIBS += -lrte_bbdev
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_bbdev_null_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL) += bbdev_null.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/baseband/turbo_sw/Makefile b/drivers/baseband/turbo_sw/Makefile
deleted file mode 100644
index c2a6fe0f81..0000000000
--- a/drivers/baseband/turbo_sw/Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_bbdev_turbo_sw.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lrte_kvargs
-LDLIBS += -lrte_bbdev
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_bbdev_turbo_sw_version.map
-
-# external library dependencies if available
-ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX2),y)
-ifeq ($(FLEXRAN_SDK),)
-$(error "Please define FLEXRAN_SDK environment variable")
-endif
-CFLAGS += -I$(FLEXRAN_SDK)/lib_common
-CFLAGS += -I$(FLEXRAN_SDK)/lib_turbo
-CFLAGS += -I$(FLEXRAN_SDK)/lib_crc
-CFLAGS += -I$(FLEXRAN_SDK)/lib_rate_matching
-LDLIBS += -L$(FLEXRAN_SDK)/lib_turbo -lturbo
-LDLIBS += -L$(FLEXRAN_SDK)/lib_crc -lcrc
-LDLIBS += -L$(FLEXRAN_SDK)/lib_rate_matching -lrate_matching
-LDLIBS += -L$(FLEXRAN_SDK)/lib_common -lcommon
-LDLIBS += -lstdc++ -lirc -limf -lipps -lsvml
-endif
-
-ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX512),y)
-ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX2),n)
-$(error "CONFIG_RTE_BBDEV_SDK_AVX512 requires CONFIG_RTE_BBDEV_SDK_AVX2 set")
-endif
-CFLAGS += -I$(FLEXRAN_SDK)/lib_ldpc_encoder_5gnr
-CFLAGS += -I$(FLEXRAN_SDK)/lib_ldpc_decoder_5gnr
-CFLAGS += -I$(FLEXRAN_SDK)/lib_LDPC_ratematch_5gnr
-CFLAGS += -I$(FLEXRAN_SDK)/lib_rate_dematching_5gnr
-LDLIBS += -L$(FLEXRAN_SDK)/lib_ldpc_encoder_5gnr -lldpc_encoder_5gnr
-LDLIBS += -L$(FLEXRAN_SDK)/lib_ldpc_decoder_5gnr -lldpc_decoder_5gnr
-LDLIBS += -L$(FLEXRAN_SDK)/lib_LDPC_ratematch_5gnr -lLDPC_ratematch_5gnr
-LDLIBS += -L$(FLEXRAN_SDK)/lib_rate_dematching_5gnr -lrate_dematching_5gnr
-endif
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += bbdev_turbo_software.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/Makefile b/drivers/bus/Makefile
deleted file mode 100644
index cea3b55e60..0000000000
--- a/drivers/bus/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_DPAA_BUS) += dpaa
-ifeq ($(CONFIG_RTE_EAL_VFIO),y)
-DIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += ifpga
-DIRS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += pci
-DIRS-$(CONFIG_RTE_LIBRTE_VDEV_BUS) += vdev
-DIRS-$(CONFIG_RTE_LIBRTE_VMBUS) += vmbus
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/bus/dpaa/Makefile b/drivers/bus/dpaa/Makefile
deleted file mode 100644
index ba40b21166..0000000000
--- a/drivers/bus/dpaa/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-RTE_BUS_DPAA=$(RTE_SDK)/drivers/bus/dpaa
-
-#
-# library name
-#
-LIB = librte_bus_dpaa.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -Wno-cast-qual
-CFLAGS += -I$(RTE_BUS_DPAA)/
-CFLAGS += -I$(RTE_BUS_DPAA)/include
-CFLAGS += -I$(RTE_BUS_DPAA)/base/qbman
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-
-# versioning export map
-EXPORT_MAP := rte_bus_dpaa_version.map
-
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA_BUS) += \
- dpaa_bus.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA_BUS) += \
- base/fman/fman.c \
- base/fman/fman_hw.c \
- base/fman/netcfg_layer.c \
- base/qbman/process.c \
- base/qbman/bman.c \
- base/qbman/bman_driver.c \
- base/qbman/qman.c \
- base/qbman/qman_driver.c \
- base/qbman/dpaa_alloc.c \
- base/qbman/dpaa_sys.c
-
-# Link Pthread
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/fslmc/Makefile b/drivers/bus/fslmc/Makefile
deleted file mode 100644
index b98d758ee0..0000000000
--- a/drivers/bus/fslmc/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_bus_fslmc.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev
-LDLIBS += -lrte_common_dpaax
-
-# versioning export map
-EXPORT_MAP := rte_bus_fslmc_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += \
- qbman/qbman_portal.c \
- qbman/qbman_debug.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += \
- mc/dpmng.c \
- mc/dpbp.c \
- mc/dpio.c \
- mc/mc_sys.c \
- mc/dpcon.c \
- mc/dpci.c \
- mc/dpdmai.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += portal/dpaa2_hw_dpio.c
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += portal/dpaa2_hw_dpbp.c
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += portal/dpaa2_hw_dpci.c
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc_vfio.c
-SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc_bus.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/ifpga/Makefile b/drivers/bus/ifpga/Makefile
deleted file mode 100644
index 1df369103c..0000000000
--- a/drivers/bus/ifpga/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_bus_ifpga.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_kvargs
-
-# versioning export map
-EXPORT_MAP := rte_bus_ifpga_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += ifpga_bus.c
-SRCS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += ifpga_common.c
-
-#
-# Export include files
-#
-SYMLINK-$(CONFIG_RTE_LIBRTE_IFPGA_BUS)-include += rte_bus_ifpga.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/pci/Makefile b/drivers/bus/pci/Makefile
deleted file mode 100644
index f4102d0a7f..0000000000
--- a/drivers/bus/pci/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 6WIND S.A.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_bus_pci.a
-EXPORT_MAP := rte_bus_pci_version.map
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += -O3 $(WERROR_FLAGS)
-
-ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),)
-SYSTEM := linux
-endif
-ifneq ($(CONFIG_RTE_EXEC_ENV_FREEBSD),)
-SYSTEM := bsd
-endif
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/pci/$(SYSTEM)
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_pci -lrte_kvargs
-
-include $(RTE_SDK)/drivers/bus/pci/$(SYSTEM)/Makefile
-SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) := $(addprefix $(SYSTEM)/,$(SRCS))
-SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += pci_params.c
-SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += pci_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += pci_common_uio.c
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_PCI_BUS)-include += rte_bus_pci.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/pci/bsd/Makefile b/drivers/bus/pci/bsd/Makefile
deleted file mode 100644
index c1b54c05ef..0000000000
--- a/drivers/bus/pci/bsd/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 6WIND S.A.
-
-SRCS += pci.c
diff --git a/drivers/bus/pci/linux/Makefile b/drivers/bus/pci/linux/Makefile
deleted file mode 100644
index 90404468b0..0000000000
--- a/drivers/bus/pci/linux/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 6WIND S.A.
-
-SRCS += pci.c
-SRCS += pci_uio.c
-SRCS += pci_vfio.c
diff --git a/drivers/bus/vdev/Makefile b/drivers/bus/vdev/Makefile
deleted file mode 100644
index 01747f03a4..0000000000
--- a/drivers/bus/vdev/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_bus_vdev.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_bus_vdev_version.map
-
-SRCS-y += vdev.c
-SRCS-y += vdev_params.c
-
-LDLIBS += -lrte_eal -lrte_kvargs
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_bus_vdev.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/vmbus/Makefile b/drivers/bus/vmbus/Makefile
deleted file mode 100644
index 335df6a0ba..0000000000
--- a/drivers/bus/vmbus/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_bus_vmbus.a
-EXPORT_MAP := rte_bus_vmbus_version.map
-
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -O3 $(WERROR_FLAGS)
-
-ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),)
-SYSTEM := linux
-endif
-ifneq ($(CONFIG_RTE_EXEC_ENV_FREEBSD),)
-$(error "VMBUS not implemented for BSD yet")
-endif
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/vmbus/$(SYSTEM)
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev
-
-include $(RTE_SDK)/drivers/bus/vmbus/$(SYSTEM)/Makefile
-SRCS-$(CONFIG_RTE_LIBRTE_VMBUS) := $(addprefix $(SYSTEM)/,$(SRCS))
-SRCS-$(CONFIG_RTE_LIBRTE_VMBUS) += vmbus_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_VMBUS) += vmbus_channel.c vmbus_bufring.c
-SRCS-$(CONFIG_RTE_LIBRTE_VMBUS) += vmbus_common_uio.c
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_VMBUS)-include += rte_bus_vmbus.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_VMBUS)-include += rte_vmbus_reg.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/bus/vmbus/linux/Makefile b/drivers/bus/vmbus/linux/Makefile
deleted file mode 100644
index ef0d30b2d3..0000000000
--- a/drivers/bus/vmbus/linux/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-
-SRCS += vmbus_bus.c vmbus_uio.c
diff --git a/drivers/common/Makefile b/drivers/common/Makefile
deleted file mode 100644
index cfb6b4dc88..0000000000
--- a/drivers/common/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-CPT-y := $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO)
-CPT-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO)
-ifneq (,$(findstring y,$(CPT-y)))
-DIRS-y += cpt
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF)$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL),yy)
-DIRS-y += octeontx
-endif
-OCTEONTX2-y := $(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO)
-ifeq ($(findstring y,$(OCTEONTX2-y)),y)
-DIRS-y += octeontx2
-endif
-
-MVEP-y := $(CONFIG_RTE_LIBRTE_MVPP2_PMD)
-MVEP-y += $(CONFIG_RTE_LIBRTE_MVNETA_PMD)
-MVEP-y += $(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO)
-ifneq (,$(findstring y,$(MVEP-y)))
-DIRS-y += mvep
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_COMMON_DPAAX),y)
-DIRS-y += dpaax
-endif
-
-IAVF-y := $(CONFIG_RTE_LIBRTE_IAVF_PMD)
-IAVF-y += $(CONFIG_RTE_LIBRTE_ICE_PMD)
-ifneq (,$(findstring y,$(IAVF-y)))
-DIRS-y += iavf
-endif
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/common/cpt/Makefile b/drivers/common/cpt/Makefile
deleted file mode 100644
index cab9da73c8..0000000000
--- a/drivers/common/cpt/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_common_cpt.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/bus/pci
-EXPORT_MAP := rte_common_cpt_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += cpt_fpm_tables.c
-SRCS-y += cpt_pmd_ops_helper.c
-
-LDLIBS += -lrte_eal
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/dpaax/Makefile b/drivers/common/dpaax/Makefile
deleted file mode 100644
index 2f4b924fda..0000000000
--- a/drivers/common/dpaax/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_common_dpaax.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -Wno-cast-qual
-
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib
-
-# versioning export map
-EXPORT_MAP := rte_common_dpaax_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += dpaax_iova_table.c dpaa_of.c caamflib.c
-
-LDLIBS += -lrte_eal
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/iavf/Makefile b/drivers/common/iavf/Makefile
deleted file mode 100644
index f06dafd408..0000000000
--- a/drivers/common/iavf/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_common_iavf.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -Wno-cast-qual
-
-EXPORT_MAP := rte_common_iavf_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += iavf_adminq.c
-SRCS-y += iavf_common.c
-SRCS-y += iavf_impl.c
-
-LDLIBS += -lrte_eal
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/mlx5/Makefile b/drivers/common/mlx5/Makefile
deleted file mode 100644
index 4edd541042..0000000000
--- a/drivers/common/mlx5/Makefile
+++ /dev/null
@@ -1,404 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2019 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name.
-LIB = librte_common_mlx5.a
-LIB_GLUE = $(LIB_GLUE_BASE).$(LIB_GLUE_VERSION)
-LIB_GLUE_BASE = librte_pmd_mlx5_glue.so
-LIB_GLUE_VERSION = 20.02.0
-
-# Sources.
-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)
-ifneq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-SRCS-y += linux/mlx5_glue.c
-endif
-SRCS-y += mlx5_devx_cmds.c
-SRCS-y += mlx5_common.c
-SRCS-y += linux/mlx5_common_os.c
-SRCS-y += linux/mlx5_nl.c
-SRCS-y += linux/mlx5_common_verbs.c
-SRCS-y += mlx5_common_mp.c
-SRCS-y += mlx5_common_mr.c
-SRCS-y += mlx5_malloc.c
-SRCS-y += mlx5_common_pci.c
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-INSTALL-y-lib += $(LIB_GLUE)
-endif
-endif
-
-# Basic CFLAGS.
-CFLAGS += -O3
-CFLAGS += -std=c11 -Wall -Wextra
-CFLAGS += -g
-CFLAGS += -I.
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -I$(SRCDIR)/linux
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-strict-prototypes
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-CFLAGS += -DMLX5_GLUE='"$(LIB_GLUE)"'
-CFLAGS += -DMLX5_GLUE_VERSION='"$(LIB_GLUE_VERSION)"'
-CFLAGS_linux/mlx5_glue.o += -fPIC
-LDLIBS += -ldl
-else ifeq ($(CONFIG_RTE_IBVERBS_LINK_STATIC),y)
-LDLIBS += $(shell $(RTE_SDK)/buildtools/options-ibverbs-static.sh)
-else
-LDLIBS += -libverbs -lmlx5
-endif
-
-LDLIBS += -lrte_eal -lrte_pci -lrte_kvargs -lrte_net
-LDLIBS += -lrte_bus_pci
-
-# A few warnings cannot be avoided in external headers.
-CFLAGS += -Wno-error=cast-qual -UPEDANTIC
-
-EXPORT_MAP := rte_common_mlx5_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
-
-# Generate and clean-up mlx5_autoconf.h.
-
-export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS
-export AUTO_CONFIG_CFLAGS = -Wno-error
-
-ifndef V
-AUTOCONF_OUTPUT := >/dev/null
-endif
-
-mlx5_autoconf.h.new: FORCE
-
-mlx5_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh
- $Q $(RM) -f -- '$@'
- $Q sh -- '$<' '$@' \
- HAVE_IBV_RELAXED_ORDERING \
- infiniband/verbs.h \
- enum IBV_ACCESS_RELAXED_ORDERING \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT \
- infiniband/mlx5dv.h \
- enum MLX5DV_CQE_RES_FORMAT_CSUM_STRIDX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVICE_TUNNEL_SUPPORT \
- infiniband/mlx5dv.h \
- enum MLX5DV_CONTEXT_MASK_TUNNEL_OFFLOADS \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVICE_MPLS_SUPPORT \
- infiniband/verbs.h \
- enum IBV_FLOW_SPEC_MPLS \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_WQ_FLAGS_PCI_WRITE_END_PADDING \
- infiniband/verbs.h \
- enum IBV_WQ_FLAGS_PCI_WRITE_END_PADDING \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_WQ_FLAG_RX_END_PADDING \
- infiniband/verbs.h \
- enum IBV_WQ_FLAG_RX_END_PADDING \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX5_MOD_SWP \
- infiniband/mlx5dv.h \
- type 'struct mlx5dv_sw_parsing_caps' \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX5_MOD_MPW \
- infiniband/mlx5dv.h \
- enum MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX5_MOD_CQE_128B_COMP \
- infiniband/mlx5dv.h \
- enum MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX5_MOD_CQE_128B_PAD \
- infiniband/mlx5dv.h \
- enum MLX5DV_CQ_INIT_ATTR_FLAGS_CQE_PAD \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_FLOW_DV_SUPPORT \
- infiniband/mlx5dv.h \
- func mlx5dv_create_flow_action_packet_reformat \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR \
- infiniband/mlx5dv.h \
- enum MLX5DV_DR_DOMAIN_TYPE_NIC_RX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR_ESWITCH \
- infiniband/mlx5dv.h \
- enum MLX5DV_DR_DOMAIN_TYPE_FDB \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR_VLAN \
- infiniband/mlx5dv.h \
- func mlx5dv_dr_action_create_push_vlan \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR_DEVX_PORT \
- infiniband/mlx5dv.h \
- func mlx5dv_query_devx_port \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVX_OBJ \
- infiniband/mlx5dv.h \
- func mlx5dv_devx_obj_create \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_FLOW_DEVX_COUNTERS \
- infiniband/mlx5dv.h \
- enum MLX5DV_FLOW_ACTION_COUNTERS_DEVX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_DR_CREATE_ACTION_DEFAULT_MISS \
- infiniband/mlx5dv.h \
- enum MLX5DV_FLOW_ACTION_DEFAULT_MISS \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVX_ASYNC \
- infiniband/mlx5dv.h \
- func mlx5dv_devx_obj_query_async \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVX_QP \
- infiniband/mlx5dv.h \
- func mlx5dv_devx_qp_query \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DEVX_UAR_OFFSET \
- infiniband/mlx5dv.h \
- field "struct mlx5dv_devx_uar.mmap_off" \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_PP_ALLOC \
- infiniband/mlx5dv.h \
- func mlx5dv_pp_alloc \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR_ACTION_DEST_DEVX_TIR \
- infiniband/mlx5dv.h \
- func mlx5dv_dr_action_create_dest_devx_tir \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVX_EVENT \
- infiniband/mlx5dv.h \
- func mlx5dv_devx_get_event \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_DR_CREATE_ACTION_FLOW_METER \
- infiniband/mlx5dv.h \
- func mlx5dv_dr_action_create_flow_meter \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_DR_FLOW_DUMP \
- infiniband/mlx5dv.h \
- func mlx5dv_dump_dr_domain \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_MMAP_GET_NC_PAGES_CMD \
- infiniband/mlx5dv.h \
- enum MLX5_MMAP_GET_NC_PAGES_CMD \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_VAR \
- infiniband/mlx5dv.h \
- func mlx5dv_alloc_var \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5DV_DR_MEM_RECLAIM \
- infiniband/mlx5dv.h \
- func mlx5dv_dr_domain_set_reclaim_device_memory \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_OPCODE_ENHANCED_MPSW \
- infiniband/mlx5dv.h \
- enum MLX5_OPCODE_ENHANCED_MPSW \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_OPCODE_SEND_EN \
- infiniband/mlx5dv.h \
- enum MLX5_OPCODE_SEND_EN \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_MLX5_OPCODE_WAIT \
- infiniband/mlx5dv.h \
- enum MLX5_OPCODE_WAIT \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_ETHTOOL_LINK_MODE_25G \
- /usr/include/linux/ethtool.h \
- enum ETHTOOL_LINK_MODE_25000baseCR_Full_BIT \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_ETHTOOL_LINK_MODE_50G \
- /usr/include/linux/ethtool.h \
- enum ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_ETHTOOL_LINK_MODE_100G \
- /usr/include/linux/ethtool.h \
- enum ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVICE_COUNTERS_SET_V42 \
- infiniband/verbs.h \
- type 'struct ibv_counter_set_init_attr' \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_DEVICE_COUNTERS_SET_V45 \
- infiniband/verbs.h \
- type 'struct ibv_counters_init_attr' \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NL_NLDEV \
- rdma/rdma_netlink.h \
- enum RDMA_NL_NLDEV \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_CMD_GET \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_CMD_GET \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_CMD_PORT_GET \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_CMD_PORT_GET \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_ATTR_DEV_INDEX \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_ATTR_DEV_INDEX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_ATTR_DEV_NAME \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_ATTR_DEV_NAME \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_ATTR_PORT_INDEX \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_ATTR_PORT_INDEX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_RDMA_NLDEV_ATTR_NDEV_INDEX \
- rdma/rdma_netlink.h \
- enum RDMA_NLDEV_ATTR_NDEV_INDEX \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IFLA_NUM_VF \
- linux/if_link.h \
- enum IFLA_NUM_VF \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IFLA_EXT_MASK \
- linux/if_link.h \
- enum IFLA_EXT_MASK \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IFLA_PHYS_SWITCH_ID \
- linux/if_link.h \
- enum IFLA_PHYS_SWITCH_ID \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IFLA_PHYS_PORT_NAME \
- linux/if_link.h \
- enum IFLA_PHYS_PORT_NAME \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_DEVLINK \
- linux/devlink.h \
- define DEVLINK_GENL_NAME \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_40000baseKR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_40000baseKR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_40000baseCR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_40000baseCR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_40000baseSR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_40000baseSR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_40000baseLR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_40000baseLR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_56000baseKR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_56000baseKR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_56000baseCR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_56000baseCR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_56000baseSR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_56000baseSR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_SUPPORTED_56000baseLR4_Full \
- /usr/include/linux/ethtool.h \
- define SUPPORTED_56000baseLR4_Full \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_STATIC_ASSERT \
- /usr/include/assert.h \
- define static_assert \
- $(AUTOCONF_OUTPUT)
-
-# Create mlx5_autoconf.h or update it in case it differs from the new one.
-
-mlx5_autoconf.h: mlx5_autoconf.h.new
- $Q [ -f '$@' ] && \
- cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
- mv '$<' '$@'
-
-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)
-$(SRCS-y:.c=.o): mlx5_autoconf.h
-endif
-
-# Generate dependency plug-in for rdma-core when the PMD must not be linked
-# directly, so that applications do not inherit this dependency.
-
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-
-$(LIB): $(LIB_GLUE)
-
-ifeq ($(LINK_USING_CC),1)
-GLUE_LDFLAGS := $(call linkerprefix,$(LDFLAGS))
-else
-GLUE_LDFLAGS := $(LDFLAGS)
-endif
-$(LIB_GLUE): linux/mlx5_glue.o
- $Q $(LD) $(GLUE_LDFLAGS) $(EXTRA_LDFLAGS) \
- -Wl,-h,$(LIB_GLUE) \
- -shared -o $@ $< -libverbs -lmlx5
-
-linux/mlx5_glue.o: mlx5_autoconf.h
-
-endif
-
-clean_mlx5: FORCE
- $Q rm -f -- mlx5_autoconf.h mlx5_autoconf.h.new
- $Q rm -f -- linux/mlx5_glue.o $(LIB_GLUE_BASE)*
-
-clean: clean_mlx5
diff --git a/drivers/common/mvep/Makefile b/drivers/common/mvep/Makefile
deleted file mode 100644
index f91d295e5c..0000000000
--- a/drivers/common/mvep/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),config)
-ifeq ($(LIBMUSDK_PATH),)
-$(error "Please define LIBMUSDK_PATH environment variable")
-endif
-endif
-endif
-
-# library name
-LIB = librte_common_mvep.a
-
-# versioning export map
-EXPORT_MAP := rte_common_mvep_version.map
-
-# external library dependencies
-CFLAGS += -I$($RTE_SDK)/drivers/common/mvep
-CFLAGS += -I$(LIBMUSDK_PATH)/include
-CFLAGS += -DMVCONF_TYPES_PUBLIC
-CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_PUBLIC
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-LDLIBS += -L$(LIBMUSDK_PATH)/lib
-LDLIBS += -lmusdk
-LDLIBS += -lrte_eal -lrte_kvargs
-
-# library source files
-SRCS-y += mvep_common.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/octeontx/Makefile b/drivers/common/octeontx/Makefile
deleted file mode 100644
index 5e67df0583..0000000000
--- a/drivers/common/octeontx/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_common_octeontx.a
-
-CFLAGS += $(WERROR_FLAGS)
-EXPORT_MAP := rte_common_octeontx_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += octeontx_mbox.c
-
-LDLIBS += -lrte_eal
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/octeontx2/Makefile b/drivers/common/octeontx2/Makefile
deleted file mode 100644
index 260da8dd3e..0000000000
--- a/drivers/common/octeontx2/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_common_octeontx2.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/bus/pci
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_common_octeontx2_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y += otx2_dev.c
-SRCS-y += otx2_irq.c
-SRCS-y += otx2_mbox.c
-SRCS-y += otx2_common.c
-SRCS-y += otx2_sec_idev.c
-
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_ethdev -lrte_kvargs
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/common/qat/Makefile b/drivers/common/qat/Makefile
deleted file mode 100644
index 85d4207099..0000000000
--- a/drivers/common/qat/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015-2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# build directories
-QAT_CRYPTO_DIR := $(RTE_SDK)/drivers/crypto/qat
-QAT_COMPRESS_DIR := $(RTE_SDK)/drivers/compress/qat
-VPATH=$(QAT_CRYPTO_DIR):$(QAT_COMPRESS_DIR)
-
-# external library include paths
-CFLAGS += -I$(SRCDIR)/qat_adf
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -I$(QAT_CRYPTO_DIR)
-CFLAGS += -I$(QAT_COMPRESS_DIR)
-
-
-ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y)
- LDLIBS += -lrte_compressdev
- SRCS-y += qat_comp.c
- SRCS-y += qat_comp_pmd.c
- build_qat = yes
-endif
-
-# library symmetric crypto source files
-ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT_ASYM),y)
- LDLIBS += -lrte_cryptodev
- LDLIBS += -lcrypto
- CFLAGS += -DBUILD_QAT_ASYM
- SRCS-y += qat_asym.c
- SRCS-y += qat_asym_pmd.c
- build_qat = yes
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT_SYM),y)
- LDLIBS += -lrte_cryptodev
- LDLIBS += -lcrypto
-ifeq ($(CONFIG_RTE_LIBRTE_SECURITY),y)
- LDLIBS += -lrte_net
-endif
- CFLAGS += -DBUILD_QAT_SYM
- SRCS-y += qat_sym.c
- SRCS-y += qat_sym_session.c
- SRCS-y += qat_sym_pmd.c
- build_qat = yes
-endif
-endif
-
-ifdef build_qat
-
- # library name
- LIB = librte_pmd_qat.a
-
- # build flags
- CFLAGS += $(WERROR_FLAGS)
- CFLAGS += -O3
-
- # library common source files
- SRCS-y += qat_device.c
- SRCS-y += qat_common.c
- SRCS-y += qat_logs.c
- SRCS-y += qat_qp.c
-
- LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
- LDLIBS += -lrte_pci -lrte_bus_pci
-
- # export include files
- SYMLINK-y-include +=
-
- # versioning export map
- EXPORT_MAP := ../../compress/qat/rte_pmd_qat_version.map
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/compress/Makefile b/drivers/compress/Makefile
deleted file mode 100644
index 286ea6ee84..0000000000
--- a/drivers/compress/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += isal
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF) += octeontx
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += zlib
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/compress/isal/Makefile b/drivers/compress/isal/Makefile
deleted file mode 100644
index 1e225ab434..0000000000
--- a/drivers/compress/isal/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_isal_comp.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# external library dependencies
-LDLIBS += -lisal
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_compressdev
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_isal_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += isal_compress_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += isal_compress_pmd_ops.c
-
-# export include files
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/compress/octeontx/Makefile b/drivers/compress/octeontx/Makefile
deleted file mode 100644
index 9ba1db791e..0000000000
--- a/drivers/compress/octeontx/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium, Inc
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_octeontx_zip.a
-
-# build flags
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-CFLAGS += -I$(RTE_SDK)/drivers/compress/octeontx/include
-
-# external library include paths
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_compressdev
-LDLIBS += -lrte_pci -lrte_bus_pci
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF) += otx_zip_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF) += otx_zip.c
-
-# versioning export map
-EXPORT_MAP := rte_pmd_octeontx_compress_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/compress/zlib/Makefile b/drivers/compress/zlib/Makefile
deleted file mode 100644
index 9f695f7d9a..0000000000
--- a/drivers/compress/zlib/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium Networks
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_zlib.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_zlib_version.map
-
-# external library dependencies
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lz
-LDLIBS += -lrte_compressdev
-LDLIBS += -lrte_bus_vdev
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += zlib_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += zlib_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
deleted file mode 100644
index 47a2a9e794..0000000000
--- a/drivers/crypto/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += aesni_gcm
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += aesni_mb
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) += armv8
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += octeontx
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += octeontx2
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) += openssl
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += snow3g
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += kasumi
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += zuc
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO) += mvsam
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += null
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += dpaa2_sec
-endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC) += dpaa_sec
-endif # CONFIG_RTE_LIBRTE_PMD_DPAA_SEC
-ifeq ($(CONFIG_RTE_LIBRTE_SECURITY),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += caam_jr
-endif # CONFIG_RTE_LIBRTE_SECURITY
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += virtio
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/crypto/aesni_gcm/Makefile b/drivers/crypto/aesni_gcm/Makefile
deleted file mode 100644
index 01cb4fddfe..0000000000
--- a/drivers/crypto/aesni_gcm/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_aesni_gcm.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_aesni_gcm_version.map
-
-# external library dependencies
-LDLIBS += -lIPSec_MB
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-H := \#
-IMB_HDR = $(shell echo '$Hinclude <intel-ipsec-mb.h>' | \
- $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \
- head -n1 | cut -d'"' -f2)
-
-# Detect library version
-IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
-IMB_VERSION_NUM = $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | cut -d' ' -f3)
-
-ifeq ($(IMB_VERSION),)
-$(error "IPSec_MB version >= 0.52 is required")
-endif
-
-ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3400), 1)
-$(error "IPSec_MB version >= 0.52 is required")
-endif
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += aesni_gcm_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += aesni_gcm_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/aesni_mb/Makefile b/drivers/crypto/aesni_mb/Makefile
deleted file mode 100644
index f0dc82f395..0000000000
--- a/drivers/crypto/aesni_mb/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015-2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_aesni_mb.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_aesni_mb_version.map
-
-# external library dependencies
-LDLIBS += -lIPSec_MB
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-H := \#
-IMB_HDR = $(shell echo '$Hinclude <intel-ipsec-mb.h>' | \
- $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \
- head -n1 | cut -d'"' -f2)
-
-# Detect library version
-IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
-IMB_VERSION_NUM = $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | cut -d' ' -f3)
-
-ifeq ($(IMB_VERSION),)
-$(error "IPSec_MB version >= 0.52 is required")
-endif
-
-ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3400), 1)
-$(error "IPSec_MB version >= 0.52 is required")
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += rte_aesni_mb_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += rte_aesni_mb_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/armv8/Makefile b/drivers/crypto/armv8/Makefile
deleted file mode 100644
index 0e3bc9fb70..0000000000
--- a/drivers/crypto/armv8/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),config)
-ifeq ($(ARMV8_CRYPTO_LIB_PATH),)
-$(error "Please define ARMV8_CRYPTO_LIB_PATH environment variable")
-endif
-endif
-endif
-
-# library name
-LIB = librte_pmd_armv8.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_armv8_version.map
-
-# external library dependencies
-CFLAGS += -I$(ARMV8_CRYPTO_LIB_PATH)
-LDLIBS += -L$(ARMV8_CRYPTO_LIB_PATH) -lAArch64crypto
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) += rte_armv8_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) += rte_armv8_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/caam_jr/Makefile b/drivers/crypto/caam_jr/Makefile
deleted file mode 100644
index 89d3238172..0000000000
--- a/drivers/crypto/caam_jr/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_caam_jr.a
-
-# build flags
-CFLAGS += -D _GNU_SOURCE
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib/
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/caam_jr
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-
-# versioning export map
-EXPORT_MAP := rte_pmd_caam_jr_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += caam_jr.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += caam_jr_capabilities.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += caam_jr_hw.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += caam_jr_uio.c
-# library dependencies
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/ccp/Makefile b/drivers/crypto/ccp/Makefile
deleted file mode 100644
index 3f5da2adf3..0000000000
--- a/drivers/crypto/ccp/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Advanced Micro Devices, Inc. All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_ccp.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += -I$(SRCDIR)
-CFLAGS += $(WERROR_FLAGS)
-
-# external library include paths
-LDLIBS += -lcrypto
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_kvargs
-
-# versioning export map
-EXPORT_MAP := rte_pmd_ccp_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += rte_ccp_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp_crypto.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp_pci.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/dpaa2_sec/Makefile b/drivers/crypto/dpaa2_sec/Makefile
deleted file mode 100644
index a0a2795575..0000000000
--- a/drivers/crypto/dpaa2_sec/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
-# Copyright 2016 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-#
-# library name
-#
-LIB = librte_pmd_dpaa2_sec.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-ifeq ($(shell test $(GCC_VERSION) -gt 70 && echo 1), 1)
-CFLAGS += -Wno-implicit-fallthrough
-endif
-endif
-
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa2_sec/
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa2_sec/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/portal
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa2/
-
-# versioning export map
-EXPORT_MAP := rte_pmd_dpaa2_sec_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += dpaa2_sec_dpseci.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += mc/dpseci.c
-
-LDLIBS += -lrte_bus_fslmc
-LDLIBS += -lrte_mempool_dpaa2
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/dpaa_sec/Makefile b/drivers/crypto/dpaa_sec/Makefile
deleted file mode 100644
index ea266962a3..0000000000
--- a/drivers/crypto/dpaa_sec/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_dpaa_sec.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/base/qbman
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa_sec/
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib/
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_dpaa_sec_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC) += dpaa_sec.c
-
-# library dependencies
-
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_mempool_dpaa
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/kasumi/Makefile b/drivers/crypto/kasumi/Makefile
deleted file mode 100644
index a7d0d079d2..0000000000
--- a/drivers/crypto/kasumi/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_kasumi.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_kasumi_version.map
-
-# external library dependencies
-LDLIBS += -lIPSec_MB
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-H := \#
-IMB_HDR = $(shell echo '$Hinclude <intel-ipsec-mb.h>' | \
- $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \
- head -n1 | cut -d'"' -f2)
-
-# Detect library version
-IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
-IMB_VERSION_NUM = $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | cut -d' ' -f3)
-
-ifeq ($(IMB_VERSION),)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-
-ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3400), 1)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += rte_kasumi_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += rte_kasumi_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/mvsam/Makefile b/drivers/crypto/mvsam/Makefile
deleted file mode 100644
index f0641ae7d9..0000000000
--- a/drivers/crypto/mvsam/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Marvell International Ltd.
-# Copyright(c) 2017 Semihalf.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),config)
-ifeq ($(LIBMUSDK_PATH),)
-$(error "Please define LIBMUSDK_PATH environment variable")
-endif
-endif
-endif
-
-# library name
-LIB = librte_pmd_mvsam_crypto.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/mvep
-CFLAGS += -I$(LIBMUSDK_PATH)/include
-CFLAGS += -DMVCONF_TYPES_PUBLIC
-CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_PUBLIC
-
-# versioning export map
-EXPORT_MAP := rte_pmd_mvsam_version.map
-
-# external library dependencies
-LDLIBS += -L$(LIBMUSDK_PATH)/lib -lmusdk
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_kvargs
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev -lrte_common_mvep
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO) += rte_mrvl_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO) += rte_mrvl_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/nitrox/Makefile b/drivers/crypto/nitrox/Makefile
deleted file mode 100644
index 535121196b..0000000000
--- a/drivers/crypto/nitrox/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_nitrox.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_nitrox_version.map
-
-# external library dependencies
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_cryptodev
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_device.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_hal.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_logs.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_sym.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_sym_capabilities.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_sym_reqmgr.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += nitrox_qp.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/null/Makefile b/drivers/crypto/null/Makefile
deleted file mode 100644
index 4595055f01..0000000000
--- a/drivers/crypto/null/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-
-# library name
-LIB = librte_pmd_null_crypto.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_null_crypto_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += null_crypto_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += null_crypto_pmd_ops.c
-
-# export include files
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/octeontx/Makefile b/drivers/crypto/octeontx/Makefile
deleted file mode 100644
index 296755ee90..0000000000
--- a/drivers/crypto/octeontx/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_octeontx_crypto.a
-
-# build flags
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_common_cpt
-
-VPATH += $(RTE_SDK)/drivers/crypto/octeontx
-
-CFLAGS += -O3
-CFLAGS += -I$(RTE_SDK)/drivers/common/cpt
-
-# PMD code
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_capabilities.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_hw_access.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_mbox.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_ops.c
-
-# export include files
-SYMLINK-y-include +=
-
-# versioning export map
-EXPORT_MAP := rte_pmd_octeontx_crypto_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/octeontx2/Makefile b/drivers/crypto/octeontx2/Makefile
deleted file mode 100644
index 14152c6117..0000000000
--- a/drivers/crypto/octeontx2/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_octeontx2_crypto.a
-
-# build flags
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lrte_eal -lrte_ethdev -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev -lrte_security
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_common_cpt -lrte_common_octeontx2
-
-VPATH += $(RTE_SDK)/drivers/crypto/octeontx2
-
-CFLAGS += -O3
-CFLAGS += -I$(RTE_SDK)/drivers/common/cpt
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx2
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-# PMD code
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev_capabilities.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev_hw_access.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev_mbox.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += otx2_cryptodev_sec.c
-
-# export include files
-SYMLINK-y-include +=
-
-# versioning export map
-EXPORT_MAP := rte_pmd_octeontx2_crypto_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/openssl/Makefile b/drivers/crypto/openssl/Makefile
deleted file mode 100644
index b85c816551..0000000000
--- a/drivers/crypto/openssl/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_openssl.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_openssl_version.map
-
-# external library dependencies
-LDLIBS += -lcrypto
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) += rte_openssl_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) += rte_openssl_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/scheduler/Makefile b/drivers/crypto/scheduler/Makefile
deleted file mode 100644
index 67aac024c4..0000000000
--- a/drivers/crypto/scheduler/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_crypto_scheduler.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev -lrte_kvargs -lrte_reorder
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_crypto_scheduler_version.map
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_cryptodev_scheduler_operations.h
-SYMLINK-y-include += rte_cryptodev_scheduler.h
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_pmd_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += rte_cryptodev_scheduler.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_roundrobin.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_pkt_size_distr.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_failover.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += scheduler_multicore.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/snow3g/Makefile b/drivers/crypto/snow3g/Makefile
deleted file mode 100644
index 469aefaa56..0000000000
--- a/drivers/crypto/snow3g/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_snow3g.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_snow3g_version.map
-
-# external library dependencies
-LDLIBS += -lIPSec_MB
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-H := \#
-IMB_HDR = $(shell echo '$Hinclude <intel-ipsec-mb.h>' | \
- $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \
- head -n1 | cut -d'"' -f2)
-
-# Detect library version
-IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
-IMB_VERSION_NUM = $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | cut -d' ' -f3)
-
-ifeq ($(IMB_VERSION),)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-
-ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3400), 1)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += rte_snow3g_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += rte_snow3g_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/virtio/Makefile b/drivers/crypto/virtio/Makefile
deleted file mode 100644
index 32e2e4d5e9..0000000000
--- a/drivers/crypto/virtio/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 HUAWEI TECHNOLOGIES CO., LTD.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_virtio_crypto.a
-
-#
-# include virtio_crypto.h
-#
-CFLAGS += -I$(RTE_SDK)/lib/librte_vhost
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_virtio_crypto_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += virtqueue.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += virtio_pci.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += virtio_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += virtio_cryptodev.c
-
-# this lib depends upon:
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_pci -lrte_bus_pci
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/zuc/Makefile b/drivers/crypto/zuc/Makefile
deleted file mode 100644
index 529b47f25e..0000000000
--- a/drivers/crypto/zuc/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_zuc.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# versioning export map
-EXPORT_MAP := rte_pmd_zuc_version.map
-
-# external library dependencies
-LDLIBS += -lIPSec_MB
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-H := \#
-IMB_HDR = $(shell echo '$Hinclude <intel-ipsec-mb.h>' | \
- $(CC) -E $(EXTRA_CFLAGS) - | grep 'intel-ipsec-mb.h' | \
- head -n1 | cut -d'"' -f2)
-
-# Detect library version
-IMB_VERSION = $(shell grep -e "IMB_VERSION_STR" $(IMB_HDR) | cut -d'"' -f2)
-IMB_VERSION_NUM = $(shell grep -e "IMB_VERSION_NUM" $(IMB_HDR) | cut -d' ' -f3)
-
-ifeq ($(IMB_VERSION),)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-
-ifeq ($(shell expr $(IMB_VERSION_NUM) \< 0x3400), 1)
-$(error "IPSec_MB version >= 0.53 is required")
-endif
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += rte_zuc_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += rte_zuc_pmd_ops.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/Makefile b/drivers/event/Makefile
deleted file mode 100644
index 86be41b9eb..0000000000
--- a/drivers/event/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += skeleton
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += dsw
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += octeontx
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += octeontx2
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += dpaa
-endif
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/event/dpaa/Makefile b/drivers/event/dpaa/Makefile
deleted file mode 100644
index a39dc27c62..0000000000
--- a/drivers/event/dpaa/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-RTE_SDK_DPAA=$(RTE_SDK)/drivers/net/dpaa
-
-#
-# library name
-#
-LIB = librte_pmd_dpaa_event.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -I$(RTE_SDK_DPAA)/
-CFLAGS += -I$(RTE_SDK_DPAA)/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include/
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-
-LDLIBS += -lrte_pmd_dpaa_sec
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa_sec
-
-EXPORT_MAP := rte_pmd_dpaa_event_version.map
-
-# Interfaces with DPDK
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += dpaa_eventdev.c
-
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_mempool_dpaa
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_eventdev -lrte_pmd_dpaa -lrte_bus_vdev
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/dpaa2/Makefile b/drivers/event/dpaa2/Makefile
deleted file mode 100644
index 75cf197c5c..0000000000
--- a/drivers/event/dpaa2/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017,2019 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_dpaa2_event.a
-
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/portal
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa2
-CFLAGS += -I$(RTE_SDK)/drivers/event/dpaa2
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-LDLIBS += -lrte_eal -lrte_eventdev
-LDLIBS += -lrte_common_dpaax
-LDLIBS += -lrte_bus_fslmc -lrte_mempool_dpaa2 -lrte_pmd_dpaa2
-LDLIBS += -lrte_bus_vdev -lrte_mempool -lrte_mbuf -lrte_ethdev
-CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2
-CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2/mc
-
-LDLIBS += -lrte_pmd_dpaa2_sec
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa2_sec
-
-# versioning export map
-EXPORT_MAP := rte_pmd_dpaa2_event_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2_hw_dpcon.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2_eventdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2_eventdev_selftest.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/dsw/Makefile b/drivers/event/dsw/Makefile
deleted file mode 100644
index f6e7dda1fd..0000000000
--- a/drivers/event/dsw/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Ericsson AB
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_pmd_dsw_event.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -Wno-format-nonliteral
-endif
-
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_mbuf
-LDLIBS += -lrte_mempool
-LDLIBS += -lrte_ring
-LDLIBS += -lrte_eventdev
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_dsw_event_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += \
- dsw_evdev.c dsw_event.c dsw_xstats.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/octeontx/Makefile b/drivers/event/octeontx/Makefile
deleted file mode 100644
index c1233e098d..0000000000
--- a/drivers/event/octeontx/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_octeontx_ssovf.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx/
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx/
-CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx/
-
-LDLIBS += -lrte_eal -lrte_eventdev -lrte_common_octeontx -lrte_pmd_octeontx
-LDLIBS += -lrte_bus_pci -lrte_mempool -lrte_mbuf -lrte_kvargs
-LDLIBS += -lrte_bus_vdev -lrte_ethdev
-
-EXPORT_MAP := rte_pmd_octeontx_event_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_worker.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_evdev_selftest.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_probe.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += timvf_worker.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += timvf_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += timvf_probe.c
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_ssovf_worker.o += -fno-prefetch-loop-arrays
-CFLAGS_timvf_worker.o += -fno-prefetch-loop-arrays
-
-ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
-CFLAGS_ssovf_worker.o += -Ofast
-CFLAGS_timvf_worker.o += -Ofast
-else
-CFLAGS_ssovf_worker.o += -O3 -ffast-math
-CFLAGS_timvf_worker.o += -O3 -ffast-math
-endif
-
-else
-CFLAGS_ssovf_worker.o += -Ofast
-CFLAGS_timvf_worker.o += -Ofast
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/octeontx2/Makefile b/drivers/event/octeontx2/Makefile
deleted file mode 100644
index 9d67b00c69..0000000000
--- a/drivers/event/octeontx2/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_octeontx2_event.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/event/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx2
-CFLAGS += -O3
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_pmd_octeontx2_event_version.map
-
-#
-# all source are stored in SRCS-y
-#
-
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_worker_dual.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_worker.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_tim_worker.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_evdev_adptr.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_tim_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_evdev_selftest.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += otx2_evdev_irq.c
-
-LDLIBS += -lrte_eal -lrte_bus_pci -lrte_pci -lrte_kvargs
-LDLIBS += -lrte_mempool -lrte_eventdev -lrte_mbuf -lrte_ethdev
-LDLIBS += -lrte_common_octeontx2 -lrte_mempool_octeontx2
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/opdl/Makefile b/drivers/event/opdl/Makefile
deleted file mode 100644
index 71713b00ae..0000000000
--- a/drivers/event/opdl/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_opdl_event.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lrte_eal -lrte_eventdev -lrte_kvargs
-LDLIBS += -lrte_bus_vdev -lrte_mbuf -lrte_mempool
-
-# versioning export map
-EXPORT_MAP := rte_pmd_opdl_event_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_ring.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_evdev_init.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_evdev_xstats.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl_test.c
-
-# export include files
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/skeleton/Makefile b/drivers/event/skeleton/Makefile
deleted file mode 100644
index dc85ad3c4b..0000000000
--- a/drivers/event/skeleton/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_skeleton_event.a
-
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_eventdev
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_skeleton_event_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += skeleton_eventdev.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/event/sw/Makefile b/drivers/event/sw/Makefile
deleted file mode 100644
index 8ea5cceb8b..0000000000
--- a/drivers/event/sw/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pmd_sw_event.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_eventdev -lrte_kvargs -lrte_ring
-LDLIBS += -lrte_mempool -lrte_mbuf
-LDLIBS += -lrte_bus_vdev
-
-# versioning export map
-EXPORT_MAP := rte_pmd_sw_event_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw_evdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw_evdev_worker.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw_evdev_scheduler.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw_evdev_xstats.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw_evdev_selftest.c
-
-# export include files
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/Makefile b/drivers/mempool/Makefile
deleted file mode 100644
index 29ef73bf44..0000000000
--- a/drivers/mempool/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_DRIVER_MEMPOOL_BUCKET) += bucket
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-DIRS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL) += dpaa
-endif
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL) += dpaa2
-endif
-DIRS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += ring
-DIRS-$(CONFIG_RTE_DRIVER_MEMPOOL_STACK) += stack
-DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += octeontx
-DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL) += octeontx2
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/mempool/bucket/Makefile b/drivers/mempool/bucket/Makefile
deleted file mode 100644
index c766c35b2c..0000000000
--- a/drivers/mempool/bucket/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-#
-# Copyright (c) 2017-2018 Solarflare Communications Inc.
-# All rights reserved.
-#
-# This software was jointly developed between OKTET Labs (under contract
-# for Solarflare) and Solarflare Communications, Inc.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_bucket.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring
-
-EXPORT_MAP := rte_mempool_bucket_version.map
-
-SRCS-$(CONFIG_RTE_DRIVER_MEMPOOL_BUCKET) += rte_mempool_bucket.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/dpaa/Makefile b/drivers/mempool/dpaa/Makefile
deleted file mode 100644
index 144969c627..0000000000
--- a/drivers/mempool/dpaa/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_dpaa.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include/
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa
-CFLAGS += -I$(RTE_SDK)/lib/librte_mempool
-
-# versioning export map
-EXPORT_MAP := rte_mempool_dpaa_version.map
-
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL) += dpaa_mempool.c
-
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/dpaa2/Makefile b/drivers/mempool/dpaa2/Makefile
deleted file mode 100644
index 04db6d27de..0000000000
--- a/drivers/mempool/dpaa2/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2016 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_dpaa2.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-
-# versioning export map
-EXPORT_MAP := rte_mempool_dpaa2_version.map
-
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL) += dpaa2_hw_mempool.c
-
-LDLIBS += -lrte_bus_fslmc
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring
-LDLIBS += -lrte_common_dpaax
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL)-include := rte_dpaa2_mempool.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/octeontx/Makefile b/drivers/mempool/octeontx/Makefile
deleted file mode 100644
index 9c840620d9..0000000000
--- a/drivers/mempool/octeontx/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_octeontx.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx/
-
-EXPORT_MAP := rte_mempool_octeontx_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += octeontx_fpavf.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += rte_mempool_octeontx.c
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_rte_mempool_octeontx.o += -fno-prefetch-loop-arrays
-
-ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
-CFLAGS_rte_mempool_octeontx.o += -Ofast
-else
-CFLAGS_rte_mempool_octeontx.o += -O3 -ffast-math
-endif
-
-else
-CFLAGS_rte_mempool_octeontx.o += -Ofast
-endif
-
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring -lrte_mbuf
-LDLIBS += -lrte_bus_pci -lrte_common_octeontx
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/octeontx2/Makefile b/drivers/mempool/octeontx2/Makefile
deleted file mode 100644
index 3828219b11..0000000000
--- a/drivers/mempool/octeontx2/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_octeontx2.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/bus/pci
-CFLAGS += -O3
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_mempool_octeontx2_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL) += \
- otx2_mempool_ops.c \
- otx2_mempool.c \
- otx2_mempool_irq.c \
- otx2_mempool_debug.c
-
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf
-LDLIBS += -lrte_common_octeontx2 -lrte_kvargs -lrte_bus_pci
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/ring/Makefile b/drivers/mempool/ring/Makefile
deleted file mode 100644
index 8624502da9..0000000000
--- a/drivers/mempool/ring/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_ring.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring
-
-EXPORT_MAP := rte_mempool_ring_version.map
-
-SRCS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += rte_mempool_ring.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/mempool/stack/Makefile b/drivers/mempool/stack/Makefile
deleted file mode 100644
index ccfd970400..0000000000
--- a/drivers/mempool/stack/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_mempool_stack.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-# Headers
-CFLAGS += -I$(RTE_SDK)/lib/librte_mempool
-LDLIBS += -lrte_eal -lrte_mempool -lrte_stack
-
-EXPORT_MAP := rte_mempool_stack_version.map
-
-SRCS-$(CONFIG_RTE_DRIVER_MEMPOOL_STACK) += rte_mempool_stack.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
deleted file mode 100644
index 361974eacf..0000000000
--- a/drivers/net/Makefile
+++ /dev/null
@@ -1,84 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# set in mk/toolchain/xxx/rte.toolchain-compat.mk
-ifeq ($(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD),d)
- $(warning thunderx pmd is not supported by old compilers)
-endif
-
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += af_packet
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP) += af_xdp
-DIRS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark
-DIRS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += atlantic
-DIRS-$(CONFIG_RTE_LIBRTE_AVP_PMD) += avp
-DIRS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe
-DIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bonding
-DIRS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-DIRS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa
-endif
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000
-DIRS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena
-DIRS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += enetc
-DIRS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe
-DIRS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k
-DIRS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic
-DIRS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3
-DIRS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e
-DIRS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf
-DIRS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice
-DIRS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc
-DIRS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic
-DIRS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += ipn3ke
-DIRS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe
-DIRS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += liquidio
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_MEMIF) += memif
-DIRS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4
-DIRS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5
-DIRS-$(CONFIG_RTE_LIBRTE_MVNETA_PMD) += mvneta
-DIRS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mvpp2
-DIRS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += netvsc
-DIRS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb
-DIRS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp
-DIRS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += null
-DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx
-DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD) += octeontx2
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += pcap
-DIRS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe
-DIRS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_RING) += ring
-DIRS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += szedata2
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap
-DIRS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += thunderx
-DIRS-$(CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD) += vdev_netvsc
-DIRS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio
-DIRS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3
-
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_KNI) += kni
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_SCHED),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += softnic
-endif # $(CONFIG_RTE_LIBRTE_SCHED)
-
-ifeq ($(CONFIG_RTE_LIBRTE_VHOST),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_VHOST) += vhost
-endif # $(CONFIG_RTE_LIBRTE_VHOST)
-
-ifeq ($(CONFIG_RTE_LIBRTE_MVPP2_PMD),y)
-ifeq ($(CONFIG_RTE_LIBRTE_CFGFILE),n)
-$(error "RTE_LIBRTE_CFGFILE must be enabled in configuration!")
-endif
-endif
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/net/af_packet/Makefile b/drivers/net/af_packet/Makefile
deleted file mode 100644
index 91dbf0a692..0000000000
--- a/drivers/net/af_packet/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2014 John W. Linville <linville@redhat.com>
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright(c) 2014 6WIND S.A.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_af_packet.a
-
-EXPORT_MAP := rte_pmd_af_packet_version.map
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += rte_eth_af_packet.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/af_xdp/Makefile b/drivers/net/af_xdp/Makefile
deleted file mode 100644
index 55db6085ac..0000000000
--- a/drivers/net/af_xdp/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_af_xdp.a
-
-EXPORT_MAP := rte_pmd_af_xdp_version.map
-
-CFLAGS += -O3
-
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-LDLIBS += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --libs libbpf || echo "-lbpf")
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP) += rte_eth_af_xdp.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ark/Makefile b/drivers/net/ark/Makefile
deleted file mode 100644
index c02080bdd0..0000000000
--- a/drivers/net/ark/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2015-2018 Atomic Rules LLC
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ark.a
-
-CFLAGS += -O3 -I./
-CFLAGS += $(WERROR_FLAGS) -Werror
-
-EXPORT_MAP := rte_pmd_ark_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_ddm.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_ethdev_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_ethdev_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_mpu.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_pktchkr.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_pktdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_pktgen.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_rqp.c
-SRCS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark_udm.c
-
-# this lib depends upon:
-LDLIBS += -lpthread
-ifdef CONFIG_RTE_EXEC_ENV_LINUX
-LDLIBS += -ldl
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/atlantic/Makefile b/drivers/net/atlantic/Makefile
deleted file mode 100644
index 0d0d0a502d..0000000000
--- a/drivers/net/atlantic/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Aquantia Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_atlantic.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_atlantic_version.map
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net
-LDLIBS += -lrte_bus_pci
-
-VPATH += $(SRCDIR)/hw_atl
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += atl_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += atl_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += atl_hw_regs.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += hw_atl_utils.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += hw_atl_llh.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += hw_atl_utils_fw2x.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += hw_atl_b0.c
-SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += rte_pmd_atlantic.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/avp/Makefile b/drivers/net/avp/Makefile
deleted file mode 100644
index 075247b13a..0000000000
--- a/drivers/net/avp/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2013-2017, Wind River Systems, Inc.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_avp.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_avp_version.map
-
-# install public header files to enable compilation of the hypervisor level
-# dpdk application
-SYMLINK-$(CONFIG_RTE_LIBRTE_AVP_PMD)-include += rte_avp_common.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_AVP_PMD)-include += rte_avp_fifo.h
-
-#
-# all source files are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_AVP_PMD) += avp_ethdev.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/axgbe/Makefile b/drivers/net/axgbe/Makefile
deleted file mode 100644
index e421d0da11..0000000000
--- a/drivers/net/axgbe/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2018 Advanced Micro Devices, Inc. All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_axgbe.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_axgbe_version.map
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_ethdev -lrte_net
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_mdio.c
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_phy_impl.c
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_i2c.c
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_rxtx.c
-ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SRCS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe_rxtx_vec_sse.c
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/bnx2x/Makefile b/drivers/net/bnx2x/Makefile
deleted file mode 100644
index 451434cc18..0000000000
--- a/drivers/net/bnx2x/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2014 - 2018 Cavium Inc.
-# All rights reserved.
-# www.cavium.com
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_bnx2x.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DZLIB_CONST
-LDLIBS += -lz
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_bnx2x_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += ecore_sp.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += elink.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_vfpf.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/bnxt/Makefile b/drivers/net/bnxt/Makefile
deleted file mode 100644
index 0c5b74918d..0000000000
--- a/drivers/net/bnxt/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright(c) 2014 6WIND S.A.
-# Copyright(c) Broadcom Limited.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_bnxt.a
-
-EXPORT_MAP := rte_pmd_bnxt_version.map
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci -pthread
-
-EXPORT_MAP := rte_pmd_bnxt_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_cpr.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_hwrm.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_ring.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_rxq.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_rxr.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_txq.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_txr.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_vnic.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_irq.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_util.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_reps.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += rte_pmd_bnxt.c
-ifeq ($(CONFIG_RTE_ARCH_X86), y)
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_rxtx_vec_sse.c
-endif
-ifeq ($(CONFIG_RTE_ARCH_ARM64), y)
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt_rxtx_vec_neon.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_BNXT_PMD), y)
-CFLAGS += -I$(SRCDIR) -I$(SRCDIR)/tf_ulp -I$(SRCDIR)/tf_core -I$(SRCDIR)/hcapi
-include $(SRCDIR)/tf_ulp/Makefile
-include $(SRCDIR)/tf_core/Makefile
-include $(SRCDIR)/hcapi/Makefile
-endif
-
-#
-# Export include files
-#
-SYMLINK-y-include +=
-SYMLINK-$(CONFIG_RTE_LIBRTE_BNXT_PMD)-include += rte_pmd_bnxt.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/bnxt/hcapi/Makefile b/drivers/net/bnxt/hcapi/Makefile
deleted file mode 100644
index a5bb398ad7..0000000000
--- a/drivers/net/bnxt/hcapi/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019-2020 Broadcom Limited.
-# All rights reserved.
-
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += hcapi/hcapi_cfa_p4.c
diff --git a/drivers/net/bnxt/tf_core/Makefile b/drivers/net/bnxt/tf_core/Makefile
deleted file mode 100644
index 84840366ab..0000000000
--- a/drivers/net/bnxt/tf_core/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright(c) 2014 6WIND S.A.
-# Copyright(c) Broadcom Limited.
-# All rights reserved.
-
-
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/bitalloc.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/rand.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/stack.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/ll.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_core.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_rm.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tfp.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_msg.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_tbl.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_em_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_em_internal.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_em_host.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_session.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_device.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_device_p4.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_identifier.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_shadow_tbl.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_shadow_tcam.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_tcam.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_util.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_if_tbl.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_global_cfg.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_shadow_identifier.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_core/tf_hash.c
diff --git a/drivers/net/bnxt/tf_ulp/Makefile b/drivers/net/bnxt/tf_ulp/Makefile
deleted file mode 100644
index abb68150d1..0000000000
--- a/drivers/net/bnxt/tf_ulp/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright(c) 2014 6WIND S.A.
-# Copyright(c) Broadcom Limited.
-# All rights reserved.
-
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_template_db_tbl.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_template_db_class.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_template_db_act.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_rte_parser.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/bnxt_ulp_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_matcher.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_utils.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_mapper.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/bnxt_ulp.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_mark_mgr.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_flow_db.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_port_db.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_def_rules.c
-SRCS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += tf_ulp/ulp_fc_mgr.c
diff --git a/drivers/net/bonding/Makefile b/drivers/net/bonding/Makefile
deleted file mode 100644
index 728551a846..0000000000
--- a/drivers/net/bonding/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_bond.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_bond_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_pmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_args.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_8023ad.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_alb.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += rte_eth_bond_flow.c
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_eth_bond.h
-SYMLINK-y-include += rte_eth_bond_8023ad.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/cxgbe/Makefile b/drivers/net/cxgbe/Makefile
deleted file mode 100644
index 53b2bb56dc..0000000000
--- a/drivers/net/cxgbe/Makefile
+++ /dev/null
@@ -1,57 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2014-2018 Chelsio Communications.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_cxgbe.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_cxgbe_version.map
-
-#
-# CFLAGS for gcc/clang
-#
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS += -Wno-deprecated
-endif
-endif
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-#
-# Add extra flags for base driver files (also known as shared code)
-# to disable warnings in them
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbevf_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe_main.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbevf_main.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += sge.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += t4_hw.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += clip_tbl.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += mps_tcam.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += l2t.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += smt.c
-SRCS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += t4vf_hw.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/dpaa/Makefile b/drivers/net/dpaa/Makefile
deleted file mode 100644
index d7bbc0e158..0000000000
--- a/drivers/net/dpaa/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-RTE_SDK_DPAA=$(RTE_SDK)/drivers/net/dpaa
-
-#
-# library name
-#
-LIB = librte_pmd_dpaa.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -I$(RTE_SDK_DPAA)/
-CFLAGS += -I$(RTE_SDK_DPAA)/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include/
-CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/base/qbman
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/event/dpaa
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-
-EXPORT_MAP := rte_pmd_dpaa_version.map
-
-# Interfaces with DPDK
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa_rxtx.c
-
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_mempool_dpaa
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_common_dpaax
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_DPAA_PMD)-include := rte_pmd_dpaa.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/dpaa2/Makefile b/drivers/net/dpaa2/Makefile
deleted file mode 100644
index 6f38c18b9b..0000000000
--- a/drivers/net/dpaa2/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
-# Copyright 2016-2019 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_dpaa2.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2
-CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/portal
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa2
-
-# versioning export map
-EXPORT_MAP := rte_pmd_dpaa2_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += base/dpaa2_hw_dpni.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_mux.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_sparser.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += mc/dpni.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += mc/dpkg.c
-SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += mc/dpdmux.c
-SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += mc/dprtc.c
-SRCS-$(CONFIG_RTE_LIBRTE_IEEE1588) += dpaa2_ptp.c
-
-LDLIBS += -lrte_bus_fslmc
-LDLIBS += -lrte_mempool_dpaa2
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_common_dpaax
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_DPAA2_PMD)-include := rte_pmd_dpaa2.h
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/e1000/Makefile b/drivers/net/e1000/Makefile
deleted file mode 100644
index f186f8d0e9..0000000000
--- a/drivers/net/e1000/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_e1000.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_e1000_version.map
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-#
-# CFLAGS for icc
-#
-CFLAGS_BASE_DRIVER = -diag-disable 177 -diag-disable 181
-CFLAGS_BASE_DRIVER += -diag-disable 869 -diag-disable 2259
-else
-#
-# CFLAGS for gcc/clang
-#
-CFLAGS_BASE_DRIVER = -Wno-uninitialized -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-ifeq ($(shell test $(GCC_VERSION) -ge 60 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-misleading-indentation
-ifeq ($(shell test $(GCC_VERSION) -ge 70 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-implicit-fallthrough
-endif
-endif
-endif
-endif
-
-#
-# Add extra flags for base driver files (also known as shared code)
-# to disable warnings in them
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_base.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_80003es2lan.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82540.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82541.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82542.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82543.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82571.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_82575.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_i210.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_ich8lan.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_logs.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_manage.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_mbx.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_nvm.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_osdep.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGB_PMD) += igb_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGB_PMD) += igb_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGB_PMD) += igb_pf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGB_PMD) += igb_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_EM_PMD) += em_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_EM_PMD) += em_rxtx.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ena/Makefile b/drivers/net/ena/Makefile
deleted file mode 100644
index 8ccff36db7..0000000000
--- a/drivers/net/ena/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ena.a
-CFLAGS += $(WERROR_FLAGS) -O2
-INCLUDES :=-I$(SRCDIR) -I$(SRCDIR)/base/ena_defs -I$(SRCDIR)/base
-
-EXPORT_MAP := rte_pmd_ena_version.map
-
-VPATH += $(SRCDIR)/base
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena_com.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena_eth_com.c
-
-CFLAGS += $(INCLUDES)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_timer
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/enetc/Makefile b/drivers/net/enetc/Makefile
deleted file mode 100644
index 7276026e37..0000000000
--- a/drivers/net/enetc/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_enetc.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-EXPORT_MAP := rte_pmd_enetc_version.map
-SRCS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += enetc_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += enetc_rxtx.c
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_ethdev -lrte_net
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_common_dpaax
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/enic/Makefile b/drivers/net/enic/Makefile
deleted file mode 100644
index d098a474a1..0000000000
--- a/drivers/net/enic/Makefile
+++ /dev/null
@@ -1,68 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2008-2017 Cisco Systems, Inc. All rights reserved.
-# Copyright 2007 Nuova Systems, Inc. All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_enic.a
-
-EXPORT_MAP := rte_pmd_enic_version.map
-
-CFLAGS += -I$(SRCDIR)/base/
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -Wno-strict-aliasing
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_pci
-
-VPATH += $(SRCDIR)/src
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_main.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_clsf.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_res.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_fm_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += base/vnic_cq.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += base/vnic_wq.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += base/vnic_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += base/vnic_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += base/vnic_rq.c
-
-# The current implementation assumes 64-bit pointers
-CC_AVX2_SUPPORT=0
-ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
-# Figure out if the compiler supports avx2. The extra check using
-# -march=core-avx2 is necessary to support users who build for the
-# 'default' machine (corei7 which has no avx2) and run the binary on
-# newer CPUs that have avx2.
-# This part is verbatim from i40e makefile.
-ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
- CC_AVX2_SUPPORT=1
-else
- CC_AVX2_SUPPORT=\
- $(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
- grep -q AVX2 && echo 1)
- ifeq ($(CC_AVX2_SUPPORT), 1)
- ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
- CFLAGS_enic_rxtx_vec_avx2.o += -march=core-avx2
- else
- CFLAGS_enic_rxtx_vec_avx2.o += -mavx2
- endif
- endif
-endif
-endif
-
-ifeq ($(CC_AVX2_SUPPORT), 1)
- SRCS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic_rxtx_vec_avx2.c
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/failsafe/Makefile b/drivers/net/failsafe/Makefile
deleted file mode 100644
index 464fd0515d..0000000000
--- a/drivers/net/failsafe/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 6WIND S.A.
-# Copyright 2017 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name
-LIB = librte_pmd_failsafe.a
-
-EXPORT_MAP := rte_pmd_failsafe_version.map
-
-# Sources are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_args.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_eal.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_ether.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe_intr.c
-ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-CFLAGS += -DLINUX
-else
-CFLAGS += -DBSD
-endif
-
-# No exported include files
-
-# Basic CFLAGS:
-CFLAGS += -std=gnu99 -Wextra
-CFLAGS += -O3
-CFLAGS += -I.
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=700
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-strict-prototypes
-CFLAGS += -pedantic
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lpthread
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/fm10k/Makefile b/drivers/net/fm10k/Makefile
deleted file mode 100644
index d486389928..0000000000
--- a/drivers/net/fm10k/Makefile
+++ /dev/null
@@ -1,77 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2013-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_fm10k.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_fm10k_version.map
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-#
-# CFLAGS for icc
-#
-CFLAGS_BASE_DRIVER = -diag-disable 174 -diag-disable 593 -diag-disable 869
-CFLAGS_BASE_DRIVER += -diag-disable 981 -diag-disable 2259
-
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-
-#
-## CFLAGS for clang
-#
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-
-else
-#
-# CFLAGS for gcc
-#
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS += -Wno-deprecated
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-ifeq ($(shell test $(GCC_VERSION) -ge 70 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-implicit-fallthrough
-endif
-endif
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_pci
-
-#
-# Add extra flags for base driver source files to disable warnings in them
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-# base driver is based on the package of cid-fm10k.2017.01.24.tar.gz
-#
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_rxtx.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_pf.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_tlv.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_mbx.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_api.c
-ifeq ($(CONFIG_RTE_ARCH_X86), y)
-SRCS-$(CONFIG_RTE_LIBRTE_FM10K_INC_VECTOR) += fm10k_rxtx_vec.c
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/hinic/Makefile b/drivers/net/hinic/Makefile
deleted file mode 100644
index 87fd843e41..0000000000
--- a/drivers/net/hinic/Makefile
+++ /dev/null
@@ -1,67 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Huawei Technologies Co., Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_hinic.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
-CFLAGS += -D__ARM64_NEON__
-else ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
-CFLAGS += -D__X86_64_SSE__
-endif
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_hash
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lpthread
-
-EXPORT_MAP := rte_pmd_hinic_version.map
-
-#
-# CFLAGS for 32-bits platforms
-#
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-#
-# CFLAGS for icc
-#
-CFLAGS += -diag-disable 2259
-else
-#
-# CFLAGS for gcc
-#
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-endif
-endif
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_api_cmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_cfg.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_cmdq.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_eqs.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_hwdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_hwif.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_mgmt.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_niccfg.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_nicio.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_wq.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_mbox.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_flow.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_tx.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/hns3/Makefile b/drivers/net/hns3/Makefile
deleted file mode 100644
index d7798a4706..0000000000
--- a/drivers/net/hns3/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018-2019 Hisilicon Limited.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_hns3.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-# Experimantal APIs:
-# - rte_mp_action_register
-# - rte_mp_action_unregister
-# - rte_mp_reply
-# - rte_mp_request_sync
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_hash
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_hns3_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_ethdev_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_cmd.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_mbx.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_rss.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_fdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_regs.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_dcb.c
-SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_mp.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/i40e/Makefile b/drivers/net/i40e/Makefile
deleted file mode 100644
index 43f10941b2..0000000000
--- a/drivers/net/i40e/Makefile
+++ /dev/null
@@ -1,112 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_i40e.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -DPF_DRIVER -DVF_DRIVER -DINTEGRATED_VF
-CFLAGS += -DX722_A0_SUPPORT
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_i40e_version.map
-
-#
-# Add extra flags for base driver files (also known as shared code)
-# to disable warnings
-#
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS_BASE_DRIVER = -diag-disable 593
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-CFLAGS_BASE_DRIVER += -Wno-sign-compare
-CFLAGS_BASE_DRIVER += -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing
-CFLAGS_BASE_DRIVER += -Wno-format
-CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast
-CFLAGS_BASE_DRIVER += -Wno-format-nonliteral
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-else
-CFLAGS_BASE_DRIVER = -Wno-sign-compare
-CFLAGS_BASE_DRIVER += -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing
-CFLAGS_BASE_DRIVER += -Wno-format
-CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast
-CFLAGS_BASE_DRIVER += -Wno-format-nonliteral
-CFLAGS_BASE_DRIVER += -Wno-format-security
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-endif
-
-CFLAGS_i40e_lan_hmc.o += -Wno-error
-endif
-OBJS_BASE_DRIVER=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(OBJS_BASE_DRIVER), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-# base driver is based on the package of dpdk-i40e.2016.04.18.12.tar.gz.
-#
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_adminq.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_diag.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_hmc.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_lan_hmc.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_nvm.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_dcb.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_rxtx.c
-ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_neon.c
-else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y)
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_altivec.c
-else
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_sse.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_ethdev_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_pf.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_fdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += rte_pmd_i40e.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_tm.c
-SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_vf_representor.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR),y)
-ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
- CC_AVX2_SUPPORT=1
-else
- CC_AVX2_SUPPORT=\
- $(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
- grep -q AVX2 && echo 1)
- ifeq ($(CC_AVX2_SUPPORT), 1)
- ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
- CFLAGS_i40e_rxtx_vec_avx2.o += -march=core-avx2
- else
- CFLAGS_i40e_rxtx_vec_avx2.o += -mavx2
- endif
- endif
-endif
-endif
-
-ifeq ($(CC_AVX2_SUPPORT), 1)
- SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_avx2.c
- CFLAGS_i40e_rxtx.o += -DCC_AVX2_SUPPORT
-endif
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_I40E_PMD)-include := rte_pmd_i40e.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/iavf/Makefile b/drivers/net/iavf/Makefile
deleted file mode 100644
index 792cbb7f79..0000000000
--- a/drivers/net/iavf/Makefile
+++ /dev/null
@@ -1,54 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_iavf.a
-
-CFLAGS += -I$(RTE_SDK)/drivers/common/iavf
-CFLAGS += -O3 $(WERROR_FLAGS) -Wno-strict-aliasing
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_common_iavf
-
-EXPORT_MAP := rte_pmd_iavf_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_vchnl.c
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_generic_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_fdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_hash.c
-ifeq ($(CONFIG_RTE_ARCH_X86), y)
-SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_rxtx_vec_sse.c
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_IAVF_PMD), y)
- ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
- CC_AVX2_SUPPORT=1
- else
- CC_AVX2_SUPPORT=\
- $(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
- grep -q AVX2 && echo 1)
- ifeq ($(CC_AVX2_SUPPORT), 1)
- ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
- CFLAGS_iavf_rxtx_vec_avx2.o += -march=core-avx2
- else
- CFLAGS_iavf_rxtx_vec_avx2.o += -mavx2
- endif
- endif
- endif
-endif
-
-ifeq ($(CC_AVX2_SUPPORT), 1)
- SRCS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf_rxtx_vec_avx2.c
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ice/Makefile b/drivers/net/ice/Makefile
deleted file mode 100644
index 34cd4024b3..0000000000
--- a/drivers/net/ice/Makefile
+++ /dev/null
@@ -1,96 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ice.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/iavf
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev -lrte_kvargs
-LDLIBS += -lrte_bus_pci -lrte_mempool -lrte_hash
-LDLIBS += -lrte_net -lrte_common_iavf
-LDLIBS += -lpthread
-
-EXPORT_MAP := rte_pmd_ice_version.map
-
-#
-# Add extra flags for base driver files (also known as shared code)
-# to disable warnings
-#
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS_BASE_DRIVER +=
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-CFLAGS_BASE_DRIVER += -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-else
-CFLAGS_BASE_DRIVER += -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-endif
-
-endif
-OBJS_BASE_DRIVER=$(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c)))
-$(foreach obj, $(OBJS_BASE_DRIVER), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_controlq.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_sched.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_switch.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_nvm.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_flex_pipe.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_dcb.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_fdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_acl.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_acl_ctrl.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_rxtx.c
-ifeq ($(CONFIG_RTE_ARCH_X86), y)
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_rxtx_vec_sse.c
-endif
-
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_switch_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_fdir_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_hash.c
-ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
- CC_AVX2_SUPPORT=1
-else
- CC_AVX2_SUPPORT=\
- $(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
- grep -q AVX2 && echo 1)
- ifeq ($(CC_AVX2_SUPPORT), 1)
- ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
- CFLAGS_ice_rxtx_vec_avx2.o += -march=core-avx2
- else
- CFLAGS_ice_rxtx_vec_avx2.o += -mavx2
- endif
- endif
-endif
-
-ifeq ($(CC_AVX2_SUPPORT), 1)
- SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_rxtx_vec_avx2.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_generic_flow.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_dcf.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_dcf_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice_dcf_parent.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_ICE_PMD)-include := rte_pmd_ice.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/igc/Makefile b/drivers/net/igc/Makefile
deleted file mode 100644
index d6d7959d2d..0000000000
--- a/drivers/net/igc/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019-2020 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_igc.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_ethdev
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_mbuf
-LDLIBS += -lrte_mempool
-
-EXPORT_MAP := rte_pmd_igc_version.map
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_base.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_i225.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_manage.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_nvm.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_osdep.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_logs.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_txrx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += igc_flow.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ionic/Makefile b/drivers/net/ionic/Makefile
deleted file mode 100644
index 7442e2c5cb..0000000000
--- a/drivers/net/ionic/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
-# Copyright(c) 2018-2019 Pensando Systems, Inc. All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ionic.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_ionic_version.map
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net
-LDLIBS += -lrte_bus_pci
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_mac_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_rx_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_lif.c
-SRCS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += ionic_main.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ipn3ke/Makefile b/drivers/net/ipn3ke/Makefile
deleted file mode 100644
index 40696dbde8..0000000000
--- a/drivers/net/ipn3ke/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ipn3ke.a
-
-#
-# Add the experimenatal APIs called from this PMD
-# rte_eth_switch_domain_alloc()
-# rte_eth_dev_create()
-# rte_eth_dev_destroy()
-# rte_eth_switch_domain_free()
-#
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/bus/ifpga
-CFLAGS += -I$(RTE_SDK)/drivers/raw/ifpga
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_ifpga
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lpthread
-
-EXPORT_MAP := rte_pmd_ipn3ke_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += ipn3ke_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += ipn3ke_representor.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += ipn3ke_tm.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += ipn3ke_flow.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ixgbe/Makefile b/drivers/net/ixgbe/Makefile
deleted file mode 100644
index aebf3b286c..0000000000
--- a/drivers/net/ixgbe/Makefile
+++ /dev/null
@@ -1,110 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ixgbe.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_ixgbe_version.map
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-#
-# CFLAGS for icc
-#
-CFLAGS_BASE_DRIVER = -diag-disable 174 -diag-disable 593 -diag-disable 869
-CFLAGS_BASE_DRIVER += -diag-disable 981 -diag-disable 2259
-
-CFLAGS_ixgbe_rxtx.o += -diag-disable 3656
-
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-#
-# CFLAGS for clang
-#
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-
-else
-#
-# CFLAGS for gcc
-#
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS += -Wno-deprecated
-CFLAGS_ixgbe_common.o += -Wno-unused-but-set-variable
-CFLAGS_ixgbe_x550.o += -Wno-unused-but-set-variable
-endif
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-
-ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
-CFLAGS_ixgbe_x550.o += -Wno-maybe-uninitialized
-endif
-
-ifeq ($(shell test $(GCC_VERSION) -ge 50 && echo 1), 1)
-CFLAGS_ixgbe_common.o += -Wno-logical-not-parentheses
-ifeq ($(shell test $(GCC_VERSION) -ge 70 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-implicit-fallthrough
-endif
-endif
-
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lpthread
-
-#
-# Add extra flags for base driver files (also known as shared code)
-# to disable warnings in them
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_82598.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_82599.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_x540.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_x550.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_hv_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_dcb.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_dcb_82599.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_dcb_82598.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_mbx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_fdir.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_pf.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_flow.c
-ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_rxtx_vec_neon.c
-else ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_rxtx_vec_sse.c
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_BYPASS),y)
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_bypass.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_82599_bypass.c
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_SECURITY),y)
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_ipsec.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += rte_pmd_ixgbe.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_tm.c
-SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_vf_representor.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_IXGBE_PMD)-include := rte_pmd_ixgbe.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/kni/Makefile b/drivers/net/kni/Makefile
deleted file mode 100644
index 0694ffd021..0000000000
--- a/drivers/net/kni/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_kni.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_kni
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_kni_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_KNI) += rte_eth_kni.c
-
-#
-# Export include files
-#
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/liquidio/Makefile b/drivers/net/liquidio/Makefile
deleted file mode 100644
index d7fda7f527..0000000000
--- a/drivers/net/liquidio/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_lio.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)/base -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_liquidio_version.map
-
-VPATH += $(RTE_SDK)/drivers/net/liquidio/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += lio_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += lio_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += lio_23xx_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += lio_mbox.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/memif/Makefile b/drivers/net/memif/Makefile
deleted file mode 100644
index 3bf4ddce4c..0000000000
--- a/drivers/net/memif/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018-2019 Cisco Systems, Inc. All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_memif.a
-
-EXPORT_MAP := rte_pmd_memif_version.map
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_ethdev -lrte_kvargs -lrte_net
-LDLIBS += -lrte_hash
-LDLIBS += -lrte_bus_vdev
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_MEMIF) += rte_eth_memif.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_MEMIF) += memif_socket.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile
deleted file mode 100644
index 02e9b2ec07..0000000000
--- a/drivers/net/mlx4/Makefile
+++ /dev/null
@@ -1,142 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2012 6WIND S.A.
-# Copyright 2012 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name.
-LIB = librte_pmd_mlx4.a
-LIB_GLUE = $(LIB_GLUE_BASE).$(LIB_GLUE_VERSION)
-LIB_GLUE_BASE = librte_pmd_mlx4_glue.so
-LIB_GLUE_VERSION = 18.02.0
-
-# Sources.
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_flow.c
-ifneq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_glue.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_mp.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_mr.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_rxq.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_txq.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_utils.c
-
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-INSTALL-$(CONFIG_RTE_LIBRTE_MLX4_PMD)-lib += $(LIB_GLUE)
-endif
-
-# Basic CFLAGS.
-CFLAGS += -O3
-CFLAGS += -std=c11 -Wall -Wextra
-CFLAGS += -g
-CFLAGS += -I.
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += $(WERROR_FLAGS)
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-CFLAGS += -DMLX4_GLUE='"$(LIB_GLUE)"'
-CFLAGS += -DMLX4_GLUE_VERSION='"$(LIB_GLUE_VERSION)"'
-CFLAGS_mlx4_glue.o += -fPIC
-LDLIBS += -ldl
-else ifeq ($(CONFIG_RTE_IBVERBS_LINK_STATIC),y)
-LDLIBS += $(shell $(RTE_SDK)/buildtools/options-ibverbs-static.sh)
-else
-LDLIBS += -libverbs -lmlx4
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-# A few warnings cannot be avoided in external headers.
-CFLAGS += -Wno-error=cast-qual
-
-EXPORT_MAP := rte_pmd_mlx4_version.map
-# DEBUG which is usually provided on the command-line may enable
-# CONFIG_RTE_LIBRTE_MLX4_DEBUG.
-ifeq ($(DEBUG),1)
-CONFIG_RTE_LIBRTE_MLX4_DEBUG := y
-endif
-
-# User-defined CFLAGS.
-ifeq ($(CONFIG_RTE_LIBRTE_MLX4_DEBUG),y)
-CFLAGS += -pedantic
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -DPEDANTIC
-endif
-AUTO_CONFIG_CFLAGS += -Wno-pedantic
-else
-CFLAGS += -UPEDANTIC
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
-
-# Generate and clean-up mlx4_autoconf.h.
-
-export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS
-export AUTO_CONFIG_CFLAGS += -Wno-error
-
-ifndef V
-AUTOCONF_OUTPUT := >/dev/null
-endif
-
-mlx4_autoconf.h.new: FORCE
-
-mlx4_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh
- $Q $(RM) -f -- '$@'
- $Q : > '$@'
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX4_BUF_ALLOCATORS \
- infiniband/mlx4dv.h \
- enum MLX4DV_SET_CTX_ATTR_BUF_ALLOCATORS \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX4_UAR_MMAP_OFFSET \
- infiniband/mlx4dv.h \
- enum MLX4DV_QP_MASK_UAR_MMAP_OFFSET \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_IBV_MLX4_WQE_LSO_SEG \
- infiniband/mlx4dv.h \
- type 'struct mlx4_wqe_lso_seg' \
- $(AUTOCONF_OUTPUT)
-
-# Create mlx4_autoconf.h or update it in case it differs from the new one.
-
-mlx4_autoconf.h: mlx4_autoconf.h.new
- $Q [ -f '$@' ] && \
- cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
- mv '$<' '$@'
-
-$(SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD):.c=.o): mlx4_autoconf.h
-
-# Generate dependency plug-in for rdma-core when the PMD must not be linked
-# directly, so that applications do not inherit this dependency.
-
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-
-$(LIB): $(LIB_GLUE)
-
-ifeq ($(LINK_USING_CC),1)
-GLUE_LDFLAGS := $(call linkerprefix,$(LDFLAGS))
-else
-GLUE_LDFLAGS := $(LDFLAGS)
-endif
-$(LIB_GLUE): mlx4_glue.o
- $Q $(LD) $(GLUE_LDFLAGS) $(EXTRA_LDFLAGS) \
- -Wl,-h,$(LIB_GLUE) \
- -shared -o $@ $< -libverbs -lmlx4
-
-mlx4_glue.o: mlx4_autoconf.h
-
-endif
-
-clean_mlx4: FORCE
- $Q rm -f -- mlx4_autoconf.h mlx4_autoconf.h.new
- $Q rm -f -- mlx4_glue.o $(LIB_GLUE_BASE)*
-
-clean: clean_mlx4
diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile
deleted file mode 100644
index 568c772415..0000000000
--- a/drivers/net/mlx5/Makefile
+++ /dev/null
@@ -1,82 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2015 6WIND S.A.
-# Copyright 2015 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name.
-LIB = librte_pmd_mlx5.a
-
-# Sources.
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_rxq.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_txq.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_txpp.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_rxtx.c
-ifneq ($(filter y,$(CONFIG_RTE_ARCH_X86_64) \
- $(CONFIG_RTE_ARCH_PPC_64) \
- $(CONFIG_RTE_ARCH_ARM64)),)
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_rxtx_vec.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_trigger.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_rxmode.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_vlan.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_rss.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_mr.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_flow_meter.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_flow_dv.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_flow_verbs.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5_utils.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_socket.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_os.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_ethdev_os.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_verbs.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += linux/mlx5_mp_os.c
-
-# Basic CFLAGS.
-CFLAGS += -O3
-CFLAGS += -std=c11 -Wall -Wextra
-CFLAGS += -g
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5/linux
-CFLAGS += -I$(RTE_SDK)/drivers/net/mlx5
-CFLAGS += -I$(RTE_SDK)/drivers/net/mlx5/linux
-CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-strict-prototypes
-LDLIBS += -lrte_common_mlx5
-LDLIBS += -lm
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-
-# A few warnings cannot be avoided in external headers.
-CFLAGS += -Wno-error=cast-qual
-
-EXPORT_MAP := rte_pmd_mlx5_version.map
-
-# DEBUG which is usually provided on the command-line may enable
-# CONFIG_RTE_LIBRTE_MLX5_DEBUG.
-ifeq ($(DEBUG),1)
-CONFIG_RTE_LIBRTE_MLX5_DEBUG := y
-endif
-
-# User-defined CFLAGS.
-ifeq ($(CONFIG_RTE_LIBRTE_MLX5_DEBUG),y)
-CFLAGS += -pedantic
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -DPEDANTIC
-endif
-AUTO_CONFIG_CFLAGS += -Wno-pedantic
-else
-CFLAGS += -UPEDANTIC
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
-
diff --git a/drivers/net/mvneta/Makefile b/drivers/net/mvneta/Makefile
deleted file mode 100644
index 41e50479ff..0000000000
--- a/drivers/net/mvneta/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd.
-# Copyright(c) 2018 Semihalf.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),config)
-ifeq ($(LIBMUSDK_PATH),)
-$(error "Please define LIBMUSDK_PATH environment variable")
-endif
-endif
-endif
-
-# library name
-LIB = librte_pmd_mvneta.a
-
-# versioning export map
-EXPORT_MAP := rte_pmd_mvneta_version.map
-
-# external library dependencies
-CFLAGS += -I$(RTE_SDK)/drivers/common/mvep
-CFLAGS += -I$(LIBMUSDK_PATH)/include
-CFLAGS += -DMVCONF_TYPES_PUBLIC
-CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_PUBLIC
-CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_SIZE=64
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-LDLIBS += -L$(LIBMUSDK_PATH)/lib
-LDLIBS += -lmusdk
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_cfgfile
-LDLIBS += -lrte_bus_vdev -lrte_common_mvep
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_MVNETA_PMD) += mvneta_ethdev.c mvneta_rxtx.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/mvpp2/Makefile b/drivers/net/mvpp2/Makefile
deleted file mode 100644
index 8a3ec93a60..0000000000
--- a/drivers/net/mvpp2/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Marvell International Ltd.
-# Copyright(c) 2017 Semihalf.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),config)
-ifeq ($(LIBMUSDK_PATH),)
-$(error "Please define LIBMUSDK_PATH environment variable")
-endif
-endif
-endif
-
-# library name
-LIB = librte_pmd_mvpp2.a
-
-# versioning export map
-EXPORT_MAP := rte_pmd_mvpp2_version.map
-
-# external library dependencies
-CFLAGS += -I$(RTE_SDK)/drivers/common/mvep
-CFLAGS += -I$(LIBMUSDK_PATH)/include
-CFLAGS += -DMVCONF_TYPES_PUBLIC
-CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_PUBLIC
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -O3
-LDLIBS += -L$(LIBMUSDK_PATH)/lib
-LDLIBS += -lmusdk
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_cfgfile
-LDLIBS += -lrte_bus_vdev -lrte_common_mvep
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mrvl_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mrvl_qos.c
-SRCS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mrvl_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mrvl_mtr.c
-SRCS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mrvl_tm.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/netvsc/Makefile b/drivers/net/netvsc/Makefile
deleted file mode 100644
index da8991584a..0000000000
--- a/drivers/net/netvsc/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_pmd_netvsc.a
-
-CFLAGS += -O3 $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_netvsc_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += hn_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += hn_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += hn_rndis.c
-SRCS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += hn_nvs.c
-SRCS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += hn_vf.c
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vmbus
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/nfb/Makefile b/drivers/net/nfb/Makefile
deleted file mode 100644
index e92d29dcd3..0000000000
--- a/drivers/net/nfb/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Cesnet
-# Copyright(c) 2019 Netcope Technologies, a.s. <info@netcope.com>
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_nfb.a
-
-INCLUDES :=-I$(SRCDIR)
-
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --cflags netcope-common)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_kvargs
-LDLIBS += -lrte_ethdev -lrte_net
-LDLIBS += -lrte_bus_pci
-LDLIBS += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --libs netcope-common)
-
-EXPORT_MAP := rte_pmd_nfb_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += nfb_rxmode.c
-
-#
-# Export include files
-#
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/nfp/Makefile b/drivers/net/nfp/Makefile
deleted file mode 100644
index 289b3a60e3..0000000000
--- a/drivers/net/nfp/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_nfp.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lm
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_nfp_version.map
-
-VPATH += $(SRCDIR)/nfpcore
-
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_cppcore.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_cpp_pcie_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_mutex.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_resource.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_crc.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_mip.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_nffw.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_hwinfo.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_rtsym.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_nsp.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_nsp_cmds.c
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_nsp_eth.c
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp_net.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/null/Makefile b/drivers/net/null/Makefile
deleted file mode 100644
index f51150c131..0000000000
--- a/drivers/net/null/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 IGEL Co.,Ltd.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_null.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_null_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += rte_eth_null.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/octeontx/Makefile b/drivers/net/octeontx/Makefile
deleted file mode 100644
index c4db878009..0000000000
--- a/drivers/net/octeontx/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_octeontx.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx/
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx/
-
-EXPORT_MAP := rte_pmd_octeontx_version.map
-
-OBJS_BASE_DRIVER=$(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c)))
-$(foreach obj, $(OBJS_BASE_DRIVER), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_pkovf.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_pkivf.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_bgx.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx_ethdev_ops.c
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_octeontx_rxtx.o += -fno-prefetch-loop-arrays
-
-ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
-CFLAGS_octeontx_rxtx.o += -O3 -Ofast
-else
-CFLAGS_octeontx_rxtx.o += -O3 -ffast-math
-endif
-
-else
-CFLAGS_octeontx_rxtx.o += -O3 -Ofast
-endif
-
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_common_octeontx
-LDLIBS += -lrte_mempool_octeontx
-LDLIBS += -lrte_eventdev
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_bus_vdev
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/octeontx2/Makefile b/drivers/net/octeontx2/Makefile
deleted file mode 100644
index 0de43e36af..0000000000
--- a/drivers/net/octeontx2/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_octeontx2.a
-
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/cpt
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/crypto/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
-CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx2
-CFLAGS += -O3
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -flax-vector-conversions
-endif
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_pmd_octeontx2_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD) += \
- otx2_rx.c \
- otx2_tx.c \
- otx2_tm.c \
- otx2_rss.c \
- otx2_mac.c \
- otx2_ptp.c \
- otx2_flow.c \
- otx2_link.c \
- otx2_vlan.c \
- otx2_stats.c \
- otx2_mcast.c \
- otx2_lookup.c \
- otx2_ethdev.c \
- otx2_flow_ctrl.c \
- otx2_flow_parse.c \
- otx2_flow_utils.c \
- otx2_ethdev_irq.c \
- otx2_ethdev_ops.c \
- otx2_ethdev_sec.c \
- otx2_ethdev_debug.c \
- otx2_ethdev_devargs.c
-
-LDLIBS += -lrte_common_octeontx2 -lrte_mempool_octeontx2 -lrte_eal -lrte_net
-LDLIBS += -lrte_ethdev -lrte_bus_pci -lrte_kvargs -lrte_mbuf -lrte_mempool -lm
-LDLIBS += -lrte_cryptodev -lrte_eventdev -lrte_security
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/pcap/Makefile b/drivers/net/pcap/Makefile
deleted file mode 100644
index f243d1a0fa..0000000000
--- a/drivers/net/pcap/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright(c) 2014 6WIND S.A.
-# All rights reserved.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_pcap.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lpcap
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_pcap_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += rte_eth_pcap.c
-
-#
-# Export include files
-#
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/pfe/Makefile b/drivers/net/pfe/Makefile
deleted file mode 100644
index 75d30b01aa..0000000000
--- a/drivers/net/pfe/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018-2019 NXP
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_pfe.a
-
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -Wno-pointer-arith
-CFLAGS += -I$(RTE_SDK)/drivers/net/pfe/base/
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-
-EXPORT_MAP := rte_pmd_pfe_version.map
-
-# Interfaces with DPDK
-SRCS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe_hal.c
-SRCS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe_hif_lib.c
-SRCS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe_hif.c
-
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_bus_dpaa
-LDLIBS += -lrte_common_dpaax
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_ethdev -lrte_kvargs
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/qede/Makefile b/drivers/net/qede/Makefile
deleted file mode 100644
index 0e8a67b0da..0000000000
--- a/drivers/net/qede/Makefile
+++ /dev/null
@@ -1,109 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2016 - 2018 Cavium Inc.
-# All rights reserved.
-# www.cavium.com
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_qede.a
-
-CFLAGS += -O3
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_qede_version.map
-
-#
-# OS
-#
-OS_TYPE := $(shell uname -s)
-
-#
-# CFLAGS
-#
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-sign-compare
-CFLAGS_BASE_DRIVER += -Wno-missing-prototypes
-CFLAGS_BASE_DRIVER += -Wno-cast-qual
-CFLAGS_BASE_DRIVER += -Wno-unused-function
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing
-CFLAGS_BASE_DRIVER += -Wno-missing-prototypes
-
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS_BASE_DRIVER += -Wno-unused-value
-ifeq ($(OS_TYPE),Linux)
-ifeq ($(shell clang -Wno-shift-negative-value -Werror -E - < /dev/null > /dev/null 2>&1; echo $$?),0)
-CFLAGS_BASE_DRIVER += -Wno-shift-negative-value
-endif
-endif
-endif
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-CFLAGS += -Wno-format-nonliteral
-endif
-CFLAGS_BASE_DRIVER += -Wno-missing-declarations
-ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-maybe-uninitialized
-endif
-CFLAGS_BASE_DRIVER += -Wno-strict-prototypes
-ifeq ($(shell test $(GCC_VERSION) -ge 60 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-shift-negative-value
-ifeq ($(shell test $(GCC_VERSION) -ge 70 && echo 1), 1)
-CFLAGS_BASE_DRIVER += -Wno-implicit-fallthrough
-endif
-endif
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-CFLAGS_BASE_DRIVER += -Wno-format-extra-args
-CFLAGS_BASE_DRIVER += -Wno-visibility
-CFLAGS_BASE_DRIVER += -Wno-empty-body
-CFLAGS_BASE_DRIVER += -Wno-invalid-source-encoding
-CFLAGS_BASE_DRIVER += -Wno-sometimes-uninitialized
-ifeq ($(shell clang -Wno-pointer-bool-conversion -Werror -E - < /dev/null > /dev/null 2>&1; echo $$?),0)
-CFLAGS_BASE_DRIVER += -Wno-pointer-bool-conversion
-endif
-else #ICC
-CFLAGS_qede_ethdev.o += -diag-disable 279 #279: controlling expression is constant
-endif
-
-#
-# Add extra flags for base ecore driver files
-# to disable warnings in them
-#
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_hw.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_cxt.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_l2.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_sp_commands.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_init_fw_funcs.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_spq.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_init_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_mcp.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_int.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_dcbx.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += bcm_osal.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_sriov.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += ecore_vf.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_main.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_debug.c
-SRCS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede_regs.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/ring/Makefile b/drivers/net/ring/Makefile
deleted file mode 100644
index d6a3dec350..0000000000
--- a/drivers/net/ring/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ring.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_ring_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_RING) += rte_eth_ring.c
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_eth_ring.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/sfc/Makefile b/drivers/net/sfc/Makefile
deleted file mode 100644
index 20bf343814..0000000000
--- a/drivers/net/sfc/Makefile
+++ /dev/null
@@ -1,133 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-#
-# Copyright(c) 2019-2020 Xilinx, Inc.
-# Copyright(c) 2016-2019 Solarflare Communications Inc.
-#
-# This software was jointly developed between OKTET Labs (under contract
-# for Solarflare) and Solarflare Communications, Inc.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_sfc_efx.a
-
-CFLAGS += -I$(SRCDIR)/base/
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-# Strict-aliasing rules are violated by rte_eth_link to uint64_t casts
-CFLAGS += -Wno-strict-aliasing
-
-# Enable extra warnings
-CFLAGS += -Wextra
-
-# More warnings not enabled by above aggregators
-CFLAGS += -Wdisabled-optimization
-
-# Extra CFLAGS for base driver files
-CFLAGS_BASE_DRIVER += -Wno-sign-compare
-CFLAGS_BASE_DRIVER += -Wno-unused-parameter
-CFLAGS_BASE_DRIVER += -Wno-unused-variable
-
-# Compiler and version dependent flags
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS += -Waggregate-return
-CFLAGS += -Wnested-externs
-CFLAGS_BASE_DRIVER += -Wno-empty-body
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-CFLAGS += -Waggregate-return
-CFLAGS += -Wbad-function-cast
-CFLAGS_BASE_DRIVER += -Wno-empty-body
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
-# Suppress ICC false positive warning on 'bulk' may be used before its
-# value is set
-CFLAGS_sfc_ef10_tx.o += -diag-disable 3656
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci -lrte_pci
-
-#
-# List of base driver object files for which
-# special CFLAGS above should be applied
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(BASE_DRIVER_OBJS), \
- $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-EXPORT_MAP := rte_pmd_sfc_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_kvargs.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_mcdi.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ev.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_port.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_tso.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_dp.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_essb_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_tx.c
-
-VPATH += $(SRCDIR)/base
-
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_bootcfg.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_crc32.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_ev.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_evb.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_hash.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_lic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mcdi.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mon.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_nic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_nvram.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_port.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_proxy.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_sram.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_tunnel.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_vpd.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += mcdi_mon.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_mcdi.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_nic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_nvram.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_sram.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_vpd.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_ev.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_evb.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_filter.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_intr.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_image.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_mac.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_mcdi.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_nic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_nvram.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_phy.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_proxy.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_vpd.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += hunt_nic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += medford_nic.c
-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += medford2_nic.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/softnic/Makefile b/drivers/net/softnic/Makefile
deleted file mode 100644
index dabbe13a5f..0000000000
--- a/drivers/net/softnic/Makefile
+++ /dev/null
@@ -1,54 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_softnic.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_pipeline -lrte_port -lrte_table
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_sched
-LDLIBS += -lrte_cryptodev
-LDLIBS += -lrte_bus_vdev
-
-EXPORT_MAP := rte_pmd_softnic_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_mempool.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_swq.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_link.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_tm.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_tap.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_action.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_pipeline.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_thread.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_cli.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_meter.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += rte_eth_softnic_cryptodev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += parser.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += conn.c
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_eth_softnic.h
-
-ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info Softnic PMD can only operate in a linux environment, \
-please change the definition of the RTE_TARGET environment variable)
-all:
-clean:
-else
-
-include $(RTE_SDK)/mk/rte.lib.mk
-
-endif
diff --git a/drivers/net/szedata2/Makefile b/drivers/net/szedata2/Makefile
deleted file mode 100644
index 675d0938a2..0000000000
--- a/drivers/net/szedata2/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 CESNET
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_szedata2.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lsze2
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_szedata2_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += rte_eth_szedata2.c
-
-#
-# Export include files
-#
-SYMLINK-y-include +=
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/tap/Makefile b/drivers/net/tap/Makefile
deleted file mode 100644
index cbf87af401..0000000000
--- a/drivers/net/tap/Makefile
+++ /dev/null
@@ -1,97 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_tap.a
-
-EXPORT_MAP := rte_pmd_tap_version.map
-
-#
-# TAP_MAX_QUEUES must be a power of 2
-#
-ifeq ($(TAP_MAX_QUEUES),)
- TAP_MAX_QUEUES = 16
-endif
-CFLAGS += -O3
-CFLAGS += -I$(SRCDIR)
-CFLAGS += -I.
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
-LDLIBS += -lrte_bus_vdev -lrte_gso
-
-CFLAGS += -DTAP_MAX_QUEUES=$(TAP_MAX_QUEUES)
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += rte_eth_tap.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_flow.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_netlink.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_tcmsgs.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_bpf_api.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap_intr.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
-
-# Generate and clean-up tap_autoconf.h.
-
-export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS
-export AUTO_CONFIG_CFLAGS = -Wno-error
-
-ifndef V
-AUTOCONF_OUTPUT := >/dev/null
-endif
-
-tap_autoconf.h.new: FORCE
-
-tap_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh
- $Q $(RM) -f -- '$@'
- $Q sh -- '$<' '$@' \
- HAVE_TC_FLOWER \
- linux/pkt_cls.h \
- enum TCA_FLOWER_UNSPEC \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_TC_VLAN_ID \
- linux/pkt_cls.h \
- enum TCA_FLOWER_KEY_VLAN_PRIO \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_TC_BPF \
- linux/pkt_cls.h \
- enum TCA_BPF_UNSPEC \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_TC_BPF_FD \
- linux/pkt_cls.h \
- enum TCA_BPF_FD \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_TC_ACT_BPF \
- linux/tc_act/tc_bpf.h \
- enum TCA_ACT_BPF_UNSPEC \
- $(AUTOCONF_OUTPUT)
- $Q sh -- '$<' '$@' \
- HAVE_TC_ACT_BPF_FD \
- linux/tc_act/tc_bpf.h \
- enum TCA_ACT_BPF_FD \
- $(AUTOCONF_OUTPUT)
-
-# Create tap_autoconf.h or update it in case it differs from the new one.
-
-tap_autoconf.h: tap_autoconf.h.new
- $Q [ -f '$@' ] && \
- cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
- mv '$<' '$@'
-
-$(SRCS-$(CONFIG_RTE_LIBRTE_PMD_TAP):.c=.o): tap_autoconf.h
-
-clean_tap: FORCE
- $Q rm -f -- tap_autoconf.h tap_autoconf.h.new
-
-clean: clean_tap
diff --git a/drivers/net/thunderx/Makefile b/drivers/net/thunderx/Makefile
deleted file mode 100644
index 149638a499..0000000000
--- a/drivers/net/thunderx/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_thunderx_nicvf.a
-
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lm
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-EXPORT_MAP := rte_pmd_thunderx_version.map
-
-OBJS_BASE_DRIVER=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-$(foreach obj, $(OBJS_BASE_DRIVER), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
-
-VPATH += $(SRCDIR)/base
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_hw.c
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_mbox.c
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_bsvf.c
-SRCS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += nicvf_svf.c
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_nicvf_rxtx.o += -fno-prefetch-loop-arrays
-endif
-CFLAGS_nicvf_rxtx.o += -Ofast
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/vdev_netvsc/Makefile b/drivers/net/vdev_netvsc/Makefile
deleted file mode 100644
index 01d26fb798..0000000000
--- a/drivers/net/vdev_netvsc/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 6WIND S.A.
-# Copyright 2017 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Properties of the generated library.
-LIB = librte_pmd_vdev_netvsc.a
-EXPORT_MAP := rte_pmd_vdev_netvsc_version.map
-
-# Additional compilation flags.
-CFLAGS += -O3
-CFLAGS += -g
-CFLAGS += -Wall -Wextra
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += $(WERROR_FLAGS)
-
-# Dependencies.
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_ethdev
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_net
-
-# Source files.
-SRCS-$(CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD) += vdev_netvsc.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/vhost/Makefile b/drivers/net/vhost/Makefile
deleted file mode 100644
index 0461e29f2c..0000000000
--- a/drivers/net/vhost/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_vhost.a
-
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_vhost
-LDLIBS += -lrte_bus_vdev
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_pmd_vhost_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_VHOST) += rte_eth_vhost.c
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_eth_vhost.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/virtio/Makefile b/drivers/net/virtio/Makefile
deleted file mode 100644
index 102b1deab8..0000000000
--- a/drivers/net/virtio/Makefile
+++ /dev/null
@@ -1,82 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_virtio.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-ifeq ($(CONFIG_RTE_VIRTIO_USER),y)
-LDLIBS += -lrte_bus_vdev
-endif
-
-EXPORT_MAP := rte_pmd_virtio_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtqueue.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_pci.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_simple.c
-
-ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_simple_sse.c
-else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y)
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_simple_altivec.c
-else ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_simple_neon.c
-endif
-
-ifneq ($(FORCE_DISABLE_AVX512), y)
- CC_AVX512_SUPPORT=\
- $(shell $(CC) -march=native -dM -E - </dev/null 2>&1 | \
- sed '/./{H;$$!d} ; x ; /AVX512F/!d; /AVX512BW/!d; /AVX512VL/!d' | \
- grep -q AVX512 && echo 1)
-endif
-
-ifeq ($(CC_AVX512_SUPPORT), 1)
-CFLAGS += -DCC_AVX512_SUPPORT
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_packed_avx.c
-
-ifeq ($(RTE_TOOLCHAIN), gcc)
-ifeq ($(shell test $(GCC_VERSION) -ge 83 && echo 1), 1)
-CFLAGS += -DVIRTIO_GCC_UNROLL_PRAGMA
-endif
-endif
-
-ifeq ($(RTE_TOOLCHAIN), clang)
-ifeq ($(shell test $(CLANG_MAJOR_VERSION)$(CLANG_MINOR_VERSION) -ge 37 && echo 1), 1)
-CFLAGS += -DVIRTIO_CLANG_UNROLL_PRAGMA
-endif
-endif
-
-ifeq ($(RTE_TOOLCHAIN), icc)
-ifeq ($(shell test $(ICC_MAJOR_VERSION) -ge 16 && echo 1), 1)
-CFLAGS += -DVIRTIO_ICC_UNROLL_PRAGMA
-endif
-endif
-
-CFLAGS_virtio_rxtx_packed_avx.o += -mavx512f -mavx512bw -mavx512vl
-ifeq ($(shell test $(GCC_VERSION) -ge 100 && echo 1), 1)
-CFLAGS_virtio_rxtx_packed_avx.o += -Wno-zero-length-bounds
-endif
-endif
-
-ifeq ($(CONFIG_RTE_VIRTIO_USER),y)
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user/vhost_user.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user/vhost_kernel.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user/vhost_kernel_tap.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user/virtio_user_dev.c
-SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user_ethdev.c
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/vmxnet3/Makefile b/drivers/net/vmxnet3/Makefile
deleted file mode 100644
index 4390fedee0..0000000000
--- a/drivers/net/vmxnet3/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_vmxnet3_uio.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-#
-# CFLAGS for icc
-#
-CFLAGS_BASE_DRIVER = -diag-disable 174 -diag-disable 593 -diag-disable 869
-CFLAGS_BASE_DRIVER += -diag-disable 981 -diag-disable 2259
-
-else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
-#
-# CFLAGS for clang
-#
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-
-else
-#
-# CFLAGS for gcc
-#
-ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
-CFLAGS += -Wno-deprecated
-endif
-CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value
-CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args
-
-endif
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
-LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-
-VPATH += $(SRCDIR)/base
-
-EXPORT_MAP := rte_pmd_vmxnet3_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3_rxtx.c
-SRCS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3_ethdev.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/Makefile b/drivers/raw/Makefile
deleted file mode 100644
index 80b043eb14..0000000000
--- a/drivers/raw/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# DIRS-$(<configuration>) += <directory>
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += skeleton
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV) += dpaa2_cmdif
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV) += dpaa2_qdma
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV) += ifpga
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += ioat
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV) += ntb
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) += octeontx2_dma
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += octeontx2_ep
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/raw/dpaa2_cmdif/Makefile b/drivers/raw/dpaa2_cmdif/Makefile
deleted file mode 100644
index 227ec4896e..0000000000
--- a/drivers/raw/dpaa2_cmdif/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_rawdev_dpaa2_cmdif.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-
-LDLIBS += -lrte_bus_fslmc
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_mempool_dpaa2
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_common_dpaax
-
-EXPORT_MAP := rte_rawdev_dpaa2_cmdif_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV) += dpaa2_cmdif.c
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV)-include += rte_pmd_dpaa2_cmdif.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/dpaa2_qdma/Makefile b/drivers/raw/dpaa2_qdma/Makefile
deleted file mode 100644
index 7b2abdddb4..0000000000
--- a/drivers/raw/dpaa2_qdma/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2018 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_rawdev_dpaa2_qdma.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc
-CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
-CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-
-LDLIBS += -lrte_bus_fslmc
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_mempool
-LDLIBS += -lrte_mempool_dpaa2
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_ring
-LDLIBS += -lrte_common_dpaax
-
-EXPORT_MAP := rte_rawdev_dpaa2_qdma_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV) += dpaa2_qdma.c
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV)-include += rte_pmd_dpaa2_qdma.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/ifpga/Makefile b/drivers/raw/ifpga/Makefile
deleted file mode 100644
index 371e127f19..0000000000
--- a/drivers/raw/ifpga/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_rawdev_ifpga.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/bus/ifpga
-CFLAGS += -I$(RTE_SDK)/drivers/raw/ifpga_rawdev
-CFLAGS += -I$(RTE_SDK)/drivers/net/i40e
-CFLAGS += -I$(RTE_SDK)/drivers/net/ipn3ke
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_bus_ifpga
-LDLIBS += -lpthread
-LDLIBS += -lfdt
-LDLIBS += -lrte_pmd_i40e
-LDLIBS += -lrte_pmd_ipn3ke
-
-EXPORT_MAP := rte_rawdev_ifpga_version.map
-
-VPATH += $(SRCDIR)/base
-
-include $(RTE_SDK)/drivers/raw/ifpga/base/Makefile
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV) += ifpga_rawdev.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/ifpga/base/Makefile b/drivers/raw/ifpga/base/Makefile
deleted file mode 100644
index c5bbcbd5f8..0000000000
--- a/drivers/raw/ifpga/base/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-#SPDX-License-Identifier: BSD-3-Clause
-#Copyright(c) 2010-2018 Intel Corporation
-
-ifneq ($(CONFIG_RTE_LIBRTE_EAL),)
-OSDEP := osdep_rte
-else
-OSDEP := osdep_raw
-endif
-
-CFLAGS += -I$(RTE_SDK)/drivers/raw/ifpga_rawdev/base/$(OSDEP)
-
-SRCS-y += ifpga_api.c
-SRCS-y += ifpga_enumerate.c
-SRCS-y += ifpga_feature_dev.c
-SRCS-y += ifpga_fme.c
-SRCS-y += ifpga_fme_iperf.c
-SRCS-y += ifpga_fme_dperf.c
-SRCS-y += ifpga_fme_error.c
-SRCS-y += ifpga_port.c
-SRCS-y += ifpga_port_error.c
-SRCS-y += opae_hw_api.c
-SRCS-y += opae_ifpga_hw_api.c
-SRCS-y += opae_debug.c
-SRCS-y += ifpga_fme_pr.c
-SRCS-y += opae_spi.c
-SRCS-y += opae_spi_transaction.c
-SRCS-y += opae_intel_max10.c
-SRCS-y += opae_i2c.c
-SRCS-y += opae_at24_eeprom.c
-SRCS-y += opae_eth_group.c
-
-SRCS-y += $(wildcard $(SRCDIR)/base/$(OSDEP)/*.c)
diff --git a/drivers/raw/ioat/Makefile b/drivers/raw/ioat/Makefile
deleted file mode 100644
index 1609fe5e6c..0000000000
--- a/drivers/raw/ioat/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_rawdev_ioat.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lrte_eal -lrte_rawdev
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_mbuf -lrte_mempool
-
-# versioning export map
-EXPORT_MAP := rte_rawdev_ioat_version.map
-
-# library source files
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += ioat_rawdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += ioat_rawdev_test.c
-
-# export include files
-SYMLINK-y-include += rte_ioat_rawdev.h
-SYMLINK-y-include += rte_ioat_spec.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/ntb/Makefile b/drivers/raw/ntb/Makefile
deleted file mode 100644
index 8f0bff9b02..0000000000
--- a/drivers/raw/ntb/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_rawdev_ntb.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
-LDLIBS += -lrte_pci -lrte_bus_pci
-LDLIBS += -lrte_rawdev
-
-EXPORT_MAP := rte_rawdev_ntb_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV) += ntb.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV) += ntb_hw_intel.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV)-include := rte_pmd_ntb.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/octeontx2_dma/Makefile b/drivers/raw/octeontx2_dma/Makefile
deleted file mode 100644
index c64ca3497a..0000000000
--- a/drivers/raw/octeontx2_dma/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_rawdev_octeontx2_dma.a
-
-CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2/
-CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2/
-CFLAGS += -I$(RTE_SDK)/drivers/raw/octeontx2_dma/
-LDLIBS += -lrte_eal -lrte_rawdev -lrte_bus_pci -lrte_mbuf
-LDLIBS += -lrte_common_octeontx2 -lrte_mempool
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_rawdev_octeontx2_dma_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) += otx2_dpi_rawdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) += otx2_dpi_msg.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) += otx2_dpi_test.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/octeontx2_ep/Makefile b/drivers/raw/octeontx2_ep/Makefile
deleted file mode 100644
index 1a54bf56f0..0000000000
--- a/drivers/raw/octeontx2_ep/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name
-LIB = librte_rawdev_octeontx2_ep.a
-
-# Build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2/
-CFLAGS += -I$(RTE_SDK)/drivers/raw/octeontx2_ep/
-
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_mempool
-LDLIBS += -lrte_common_octeontx2
-
-ifneq ($(CONFIG_RTE_ARCH_64),y)
-CFLAGS += -Wno-int-to-pointer-cast
-CFLAGS += -Wno-pointer-to-int-cast
-ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -diag-disable 2259
-endif
-endif
-
-EXPORT_MAP := rte_rawdev_octeontx2_ep_version.map
-
-#
-# All source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += otx2_ep_rawdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += otx2_ep_enqdeq.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += otx2_ep_test.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += otx2_ep_vf.c
-
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/raw/skeleton/Makefile b/drivers/raw/skeleton/Makefile
deleted file mode 100644
index 2ac66fbd45..0000000000
--- a/drivers/raw/skeleton/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_rawdev_skeleton.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal
-LDLIBS += -lrte_rawdev
-LDLIBS += -lrte_bus_vdev
-LDLIBS += -lrte_kvargs
-
-EXPORT_MAP := rte_rawdev_skeleton_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += skeleton_rawdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += skeleton_rawdev_test.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/regex/Makefile b/drivers/regex/Makefile
deleted file mode 100644
index 906b20546f..0000000000
--- a/drivers/regex/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2020 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/regex/mlx5/Makefile b/drivers/regex/mlx5/Makefile
deleted file mode 100644
index 11e3325feb..0000000000
--- a/drivers/regex/mlx5/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2020 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name.
-LIB = librte_pmd_mlx5_regex.a
-
-# Sources.
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_regex.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_rxp.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_regex_devx.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_regex_control.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_regex_fastpath.c
-
-# Basic CFLAGS.
-CFLAGS += -O3
-CFLAGS += -std=c11 -Wall -Wextra
-CFLAGS += -g
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5
-CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5/linux
-CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5/linux
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-strict-prototypes
-LDLIBS += -lrte_common_mlx5
-LDLIBS += -lm
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_regexdev
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_bus_pci
-LDLIBS += -lrte_pci
-
-# A few warnings cannot be avoided in external headers.
-CFLAGS += -Wno-error=cast-qual
-
-EXPORT_MAP := rte_pmd_mlx5_regex_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/vdpa/Makefile b/drivers/vdpa/Makefile
deleted file mode 100644
index 6e8835948e..0000000000
--- a/drivers/vdpa/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2019 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(CONFIG_RTE_EAL_VFIO),y)
-DIRS-$(CONFIG_RTE_LIBRTE_IFC_PMD) += ifc
-endif
-
-DIRS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/vdpa/ifc/Makefile b/drivers/vdpa/ifc/Makefile
deleted file mode 100644
index b468bfdbdd..0000000000
--- a/drivers/vdpa/ifc/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pmd_ifc.a
-
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_pci -lrte_vhost -lrte_bus_pci
-LDLIBS += -lrte_kvargs
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-#
-# Add extra flags for base driver source files to disable warnings in them
-#
-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
-
-VPATH += $(SRCDIR)/base
-
-EXPORT_MAP := rte_pmd_ifc_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_IFC_PMD) += ifcvf_vdpa.c
-SRCS-$(CONFIG_RTE_LIBRTE_IFC_PMD) += ifcvf.c
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/vdpa/mlx5/Makefile b/drivers/vdpa/mlx5/Makefile
deleted file mode 100644
index d46699fbc9..0000000000
--- a/drivers/vdpa/mlx5/Makefile
+++ /dev/null
@@ -1,58 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2019 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# Library name.
-LIB = librte_pmd_mlx5_vdpa.a
-
-# Sources.
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa_mem.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa_event.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa_virtq.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa_steer.c
-SRCS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += mlx5_vdpa_lm.c
-
-
-# Basic CFLAGS.
-CFLAGS += -O3
-CFLAGS += -std=c11 -Wall -Wextra
-CFLAGS += -g
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5
-CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5/linux
-CFLAGS += -I$(RTE_SDK)/drivers/net/mlx5_vdpa
-CFLAGS += -I$(RTE_SDK)/lib/librte_sched
-CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5
-CFLAGS += -D_BSD_SOURCE
-CFLAGS += -D_DEFAULT_SOURCE
-CFLAGS += -D_XOPEN_SOURCE=600
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -Wno-strict-prototypes
-LDLIBS += -lrte_common_mlx5
-LDLIBS += -lrte_eal -lrte_vhost -lrte_kvargs -lrte_pci -lrte_sched
-LDLIBS += -pthread
-
-# A few warnings cannot be avoided in external headers.
-CFLAGS += -Wno-error=cast-qual
-
-EXPORT_MAP := rte_pmd_mlx5_vdpa_version.map
-
-# DEBUG which is usually provided on the command-line may enable
-# CONFIG_RTE_LIBRTE_MLX5_DEBUG.
-ifeq ($(DEBUG),1)
-CONFIG_RTE_LIBRTE_MLX5_DEBUG := y
-endif
-
-# User-defined CFLAGS.
-ifeq ($(CONFIG_RTE_LIBRTE_MLX5_DEBUG),y)
-CFLAGS += -pedantic
-ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
-CFLAGS += -DPEDANTIC
-endif
-AUTO_CONFIG_CFLAGS += -Wno-pedantic
-else
-CFLAGS += -UPEDANTIC
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/examples/Makefile b/examples/Makefile
deleted file mode 100644
index b7e99a2f78..0000000000
--- a/examples/Makefile
+++ /dev/null
@@ -1,90 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 6WIND S.A.
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_BBDEV) += bbdev_app
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bond
-DIRS-y += cmdline
-ifeq ($(CONFIG_RTE_LIBRTE_POWER),y)
-DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += distributor
-endif
-DIRS-y += ethtool
-DIRS-$(CONFIG_RTE_LIBRTE_EFD) += server_node_efd
-DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += fips_validation
-DIRS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += flow_classify
-DIRS-y += flow_filtering
-DIRS-y += helloworld
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV),y)
-DIRS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += ioat
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += ip_pipeline
-ifeq ($(CONFIG_RTE_LIBRTE_LPM),y)
-DIRS-$(CONFIG_RTE_IP_FRAG) += ip_reassembly
-DIRS-$(CONFIG_RTE_IP_FRAG) += ip_fragmentation
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_ACL)$(CONFIG_RTE_LIBRTE_HASH)$(CONFIG_RTE_LIBRTE_LPM)$(CONFIG_RTE_LIBRTE_SECURITY),yyyy)
-DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += ipsec-secgw
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_HASH) += ipv4_multicast
-DIRS-$(CONFIG_RTE_LIBRTE_KNI) += kni
-DIRS-y += l2fwd
-DIRS-y += l2fwd-event
-ifneq ($(PQOS_INSTALL_PATH),)
-DIRS-y += l2fwd-cat
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += l2fwd-crypto
-DIRS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += l2fwd-jobstats
-DIRS-y += l2fwd-keepalive
-DIRS-y += l2fwd-keepalive/ka-agent
-ifeq ($(CONFIG_RTE_LIBRTE_HASH),y)
-DIRS-$(CONFIG_RTE_LIBRTE_LPM) += l3fwd
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_ACL) += l3fwd-acl
-ifeq ($(CONFIG_RTE_LIBRTE_LPM)$(CONFIG_RTE_LIBRTE_HASH),yy)
-DIRS-$(CONFIG_RTE_LIBRTE_POWER) += l3fwd-power
-endif
-ifeq ($(CONFIG_RTE_LIBRTE_GRAPH),y)
-DIRS-y += l3fwd-graph
-endif
-DIRS-y += link_status_interrupt
-DIRS-y += multi_process
-DIRS-y += ntb
-DIRS-$(CONFIG_RTE_LIBRTE_REORDER) += packet_ordering
-ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
-DIRS-y += performance-thread
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_IEEE1588) += ptpclient
-DIRS-$(CONFIG_RTE_LIBRTE_METER) += qos_meter
-DIRS-$(CONFIG_RTE_LIBRTE_SCHED) += qos_sched
-DIRS-$(CONFIG_RTE_ETHDEV_RXTX_CALLBACKS) += rxtx_callbacks
-DIRS-y += service_cores
-DIRS-y += skeleton
-ifeq ($(CONFIG_RTE_LIBRTE_HASH),y)
-DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += tep_termination
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_TIMER) += timer
-DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += vhost vdpa vhost_blk
-ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
-DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += vhost_crypto
-endif
-DIRS-y += vmdq
-DIRS-y += vmdq_dcb
-ifeq ($(CONFIG_RTE_LIBRTE_POWER), y)
-ifeq ($(shell pkg-config --atleast-version=0.9.3 libvirt; echo $$?), 0)
-DIRS-y += vm_power_manager
-else
-$(info vm_power_manager requires libvirt >= 0.9.3)
-endif
-endif
-
-DIRS-y += eventdev_pipeline
-
-include $(RTE_SDK)/mk/rte.extsubdir.mk
diff --git a/examples/ethtool/Makefile b/examples/ethtool/Makefile
deleted file mode 100644
index d3b97bb50b..0000000000
--- a/examples/ethtool/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info This application can only operate in a linux environment, \
-please change the definition of the RTE_TARGET environment variable)
-else
-
-DIRS-y += lib ethtool-app
-endif
-
-DEPDIRS-ethtool-app := lib
-
-include $(RTE_SDK)/mk/rte.extsubdir.mk
diff --git a/examples/ethtool/ethtool-app/Makefile b/examples/ethtool/ethtool-app/Makefile
deleted file mode 100644
index 20ac0d3240..0000000000
--- a/examples/ethtool/ethtool-app/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = ethtool
-
-# all source are stored in SRCS-y
-SRCS-y := main.c ethapp.c
-
-CFLAGS += -O3 -pthread -I$(SRCDIR)/../lib
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-LDLIBS += -L$(subst ethtool-app,lib,$(RTE_OUTPUT))/lib
-LDLIBS += -lrte_ethtool
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y)
-LDLIBS += -lrte_pmd_ixgbe
-endif
-endif
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/ethtool/lib/Makefile b/examples/ethtool/lib/Makefile
deleted file mode 100644
index 6494741270..0000000000
--- a/examples/ethtool/lib/Makefile
+++ /dev/null
@@ -1,37 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(error This application can only operate in a linux environment, \
-please change the definition of the RTE_TARGET environment variable)
-endif
-
-# library name
-LIB = librte_ethtool.a
-
-LIBABIVER := 0.1
-
-# all source are stored in SRC-Y
-SRCS-y := rte_ethtool.c
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y)
-LDLIBS += -lrte_pmd_ixgbe
-endif
-endif
-LDLIBS += -lrte_eal -lrte_ethdev
-
-include $(RTE_SDK)/mk/rte.extlib.mk
diff --git a/examples/l2fwd-keepalive/ka-agent/Makefile b/examples/l2fwd-keepalive/ka-agent/Makefile
deleted file mode 100644
index 8d5061b178..0000000000
--- a/examples/l2fwd-keepalive/ka-agent/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = ka-agent
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)/../
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-LDFLAGS += -lrt
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/multi_process/Makefile b/examples/multi_process/Makefile
deleted file mode 100644
index 7f7e68d912..0000000000
--- a/examples/multi_process/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += client_server_mp
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += simple_mp
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += symmetric_mp
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += hotplug_mp
-
-include $(RTE_SDK)/mk/rte.extsubdir.mk
diff --git a/examples/multi_process/client_server_mp/Makefile b/examples/multi_process/client_server_mp/Makefile
deleted file mode 100644
index fe7a8af605..0000000000
--- a/examples/multi_process/client_server_mp/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += mp_client
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += mp_server
-
-include $(RTE_SDK)/mk/rte.extsubdir.mk
diff --git a/examples/multi_process/client_server_mp/mp_client/Makefile b/examples/multi_process/client_server_mp/mp_client/Makefile
deleted file mode 100644
index 7c447feba3..0000000000
--- a/examples/multi_process/client_server_mp/mp_client/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, can be overridden by command line or environment
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = mp_client
-
-# all source are stored in SRCS-y
-SRCS-y := client.c
-
-CFLAGS += $(WERROR_FLAGS) -O3
-CFLAGS += -I$(SRCDIR)/../shared
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/multi_process/client_server_mp/mp_server/Makefile b/examples/multi_process/client_server_mp/mp_server/Makefile
deleted file mode 100644
index 50ebf1d7da..0000000000
--- a/examples/multi_process/client_server_mp/mp_server/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(error This application can only operate in a linux environment, \
-please change the definition of the RTE_TARGET environment variable)
-endif
-
-# binary name
-APP = mp_server
-
-# all source are stored in SRCS-y
-SRCS-y := main.c init.c args.c
-
-INC := $(sort $(wildcard *.h))
-
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-CFLAGS += $(WERROR_FLAGS) -O3
-CFLAGS += -I$(SRCDIR)/../shared
-
-# for newer gcc, e.g. 4.4, no-strict-aliasing may not be necessary
-# and so the next line can be removed in those cases.
-EXTRA_CFLAGS += -fno-strict-aliasing
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/multi_process/hotplug_mp/Makefile b/examples/multi_process/hotplug_mp/Makefile
deleted file mode 100644
index 1fd7aa085c..0000000000
--- a/examples/multi_process/hotplug_mp/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = hotplug_mp
-
-# all source are stored in SRCS-y
-SRCS-y := main.c commands.c
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/multi_process/simple_mp/Makefile b/examples/multi_process/simple_mp/Makefile
deleted file mode 100644
index f88b499bdc..0000000000
--- a/examples/multi_process/simple_mp/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = simple_mp
-
-# all source are stored in SRCS-y
-SRCS-y := main.c mp_commands.c
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/multi_process/symmetric_mp/Makefile b/examples/multi_process/symmetric_mp/Makefile
deleted file mode 100644
index b7544489bb..0000000000
--- a/examples/multi_process/symmetric_mp/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = symmetric_mp
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/performance-thread/Makefile b/examples/performance-thread/Makefile
deleted file mode 100644
index 08158914c3..0000000000
--- a/examples/performance-thread/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifeq ($(filter y,$(CONFIG_RTE_ARCH_X86_64) $(CONFIG_RTE_ARCH_ARM64)),)
-$(error This application is only supported for x86_64 and arm64 targets)
-endif
-
-DIRS-y += l3fwd-thread
-DIRS-y += pthread_shim
-
-
-include $(RTE_SDK)/mk/rte.extsubdir.mk
diff --git a/examples/performance-thread/common/common.mk b/examples/performance-thread/common/common.mk
deleted file mode 100644
index 5e2b18a9ff..0000000000
--- a/examples/performance-thread/common/common.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Intel Corporation
-
-# list the C files belonging to the lthread subsystem, these are common to all
-# lthread apps. Any makefile including this should set VPATH to include this
-# directory path
-#
-
-MKFILE_PATH=$(abspath $(dir $(lastword $(MAKEFILE_LIST))))
-
-ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
-ARCH_PATH += $(MKFILE_PATH)/arch/x86
-else ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
-ARCH_PATH += $(MKFILE_PATH)/arch/arm64
-endif
-
-VPATH := $(MKFILE_PATH) $(ARCH_PATH)
-
-SRCS-y += lthread.c lthread_sched.c lthread_cond.c lthread_tls.c lthread_mutex.c lthread_diag.c ctx.c
-
-INCLUDES += -I$(MKFILE_PATH) -I$(ARCH_PATH)
diff --git a/examples/performance-thread/l3fwd-thread/Makefile b/examples/performance-thread/l3fwd-thread/Makefile
deleted file mode 100644
index c6cf05a438..0000000000
--- a/examples/performance-thread/l3fwd-thread/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = l3fwd-thread
-
-# all source are stored in SRCS-y
-SRCS-y := main.c
-
-include $(RTE_SDK)/examples/performance-thread/common/common.mk
-
-CFLAGS += -O3 -g $(USER_FLAGS) $(INCLUDES) $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/performance-thread/pthread_shim/Makefile b/examples/performance-thread/pthread_shim/Makefile
deleted file mode 100644
index cdadf2cb77..0000000000
--- a/examples/performance-thread/pthread_shim/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = lthread_pthread_shim
-
-# all source are stored in SRCS-y
-SRCS-y := main.c pthread_shim.c
-INCLUDES := -I$(RTE_SDK)/$(RTE_TARGET)/include -I$(SRCDIR)
-include $(RTE_SDK)/examples/performance-thread/common/common.mk
-
-CFLAGS += -g -O3 $(USER_FLAGS) $(INCLUDES)
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-LDFLAGS += -lpthread
-
-# workaround for a gcc bug with noreturn attribute
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_main.o += -Wno-return-type
-endif
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/server_node_efd/Makefile b/examples/server_node_efd/Makefile
deleted file mode 100644
index cc2ea8b566..0000000000
--- a/examples/server_node_efd/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += server
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += node
-
-include $(RTE_SDK)/mk/rte.extsubdir.mk
diff --git a/examples/server_node_efd/node/Makefile b/examples/server_node_efd/node/Makefile
deleted file mode 100644
index ecc551e1d6..0000000000
--- a/examples/server_node_efd/node/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, can be overridden by command line or environment
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = node
-
-# all source are stored in SRCS-y
-SRCS-y := node.c
-
-CFLAGS += $(WERROR_FLAGS) -O3
-CFLAGS += -I$(SRCDIR)/../shared
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/server_node_efd/server/Makefile b/examples/server_node_efd/server/Makefile
deleted file mode 100644
index acbd12ae23..0000000000
--- a/examples/server_node_efd/server/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(error This application can only operate in a linux environment, \
-please change the definition of the RTE_TARGET environment variable)
-endif
-
-# binary name
-APP = server
-
-# all source are stored in SRCS-y
-SRCS-y := main.c init.c args.c
-
-INC := $(sort $(wildcard *.h))
-
-CFLAGS += $(WERROR_FLAGS) -O3
-CFLAGS += -I$(SRCDIR)/../shared
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/vm_power_manager/Makefile b/examples/vm_power_manager/Makefile
deleted file mode 100644
index 65c2ad179e..0000000000
--- a/examples/vm_power_manager/Makefile
+++ /dev/null
@@ -1,65 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifneq ($(shell pkg-config --atleast-version=0.9.3 libvirt; echo $$?), 0)
-$(error vm_power_manager requires libvirt >= 0.9.3)
-else
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = vm_power_mgr
-
-# all source are stored in SRCS-y
-SRCS-y := main.c vm_power_cli.c power_manager.c channel_manager.c
-SRCS-y += channel_monitor.c parse.c
-ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
-SRCS-y += oob_monitor_x86.c
-else
-SRCS-y += oob_monitor_nop.c
-endif
-
-CFLAGS += -O3 -I$(RTE_SDK)/lib/librte_power/
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-LDLIBS += -lvirt
-
-JANSSON := $(shell pkg-config --exists jansson; echo $$?)
-ifeq ($(JANSSON), 0)
-LDLIBS += $(shell pkg-config --libs jansson)
-CFLAGS += -DUSE_JANSSON
-endif
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-
-ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y)
-LDLIBS += -lrte_pmd_ixgbe
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_I40E_PMD),y)
-LDLIBS += -lrte_pmd_i40e
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_BNXT_PMD),y)
-LDLIBS += -lrte_pmd_bnxt
-endif
-
-endif
-
-# workaround for a gcc bug with noreturn attribute
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_main.o += -Wno-return-type
-endif
-
-include $(RTE_SDK)/mk/rte.extapp.mk
-
-endif # libvirt check
diff --git a/examples/vm_power_manager/guest_cli/Makefile b/examples/vm_power_manager/guest_cli/Makefile
deleted file mode 100644
index 67cf081936..0000000000
--- a/examples/vm_power_manager/guest_cli/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, detect a build directory, by looking for a path with a .config
-RTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config)))))
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# binary name
-APP = guest_vm_power_mgr
-
-# all source are stored in SRCS-y
-SRCS-y := main.c vm_power_cli_guest.c parse.c
-
-CFLAGS += -O3 -I$(RTE_SDK)/lib/librte_power/
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
-# workaround for a gcc bug with noreturn attribute
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_main.o += -Wno-return-type
-endif
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/kernel/Makefile b/kernel/Makefile
deleted file mode 100644
index 5d51fd94bb..0000000000
--- a/kernel/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += linux
-DIRS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += freebsd
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/kernel/freebsd/Makefile b/kernel/freebsd/Makefile
deleted file mode 100644
index 522d3f68ff..0000000000
--- a/kernel/freebsd/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += contigmem
-DIRS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += nic_uio
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/kernel/freebsd/contigmem/Makefile b/kernel/freebsd/contigmem/Makefile
deleted file mode 100644
index 428a7edee5..0000000000
--- a/kernel/freebsd/contigmem/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# module name and path
-#
-MODULE = contigmem
-
-#
-# CFLAGS
-#
-MODULE_CFLAGS += -I$(SRCDIR)
-MODULE_CFLAGS += -I$(RTE_OUTPUT)/include
-MODULE_CFLAGS += -Winline -Wall -Werror
-MODULE_CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := contigmem.c
-
-include $(RTE_SDK)/mk/rte.bsdmodule.mk
diff --git a/kernel/freebsd/nic_uio/Makefile b/kernel/freebsd/nic_uio/Makefile
deleted file mode 100644
index 376ef3a3ab..0000000000
--- a/kernel/freebsd/nic_uio/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# module name and path
-#
-MODULE = nic_uio
-
-#
-# CFLAGS
-#
-MODULE_CFLAGS += -I$(SRCDIR)
-MODULE_CFLAGS += -I$(RTE_OUTPUT)/include
-MODULE_CFLAGS += -Winline -Wall -Werror
-MODULE_CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := nic_uio.c
-
-include $(RTE_SDK)/mk/rte.bsdmodule.mk
diff --git a/kernel/linux/Makefile b/kernel/linux/Makefile
deleted file mode 100644
index c2c45a3e67..0000000000
--- a/kernel/linux/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_EAL_IGB_UIO) += igb_uio
-DIRS-$(CONFIG_RTE_KNI_KMOD) += kni
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/kernel/linux/igb_uio/Makefile b/kernel/linux/igb_uio/Makefile
deleted file mode 100644
index f83bcc7c69..0000000000
--- a/kernel/linux/igb_uio/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# module name and path
-#
-MODULE = igb_uio
-MODULE_PATH = drivers/net/igb_uio
-
-#
-# CFLAGS
-#
-MODULE_CFLAGS += -I$(SRCDIR) --param max-inline-insns-single=100
-MODULE_CFLAGS += -I$(RTE_OUTPUT)/include
-MODULE_CFLAGS += -Winline -Wall -Werror
-MODULE_CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := igb_uio.c
-
-include $(RTE_SDK)/mk/rte.module.mk
diff --git a/kernel/linux/kni/Makefile b/kernel/linux/kni/Makefile
deleted file mode 100644
index 595bac2612..0000000000
--- a/kernel/linux/kni/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# module name and path
-#
-MODULE = rte_kni
-
-#
-# CFLAGS
-#
-MODULE_CFLAGS += -I$(SRCDIR) --param max-inline-insns-single=50
-MODULE_CFLAGS += -I$(RTE_OUTPUT)/include
-MODULE_CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-MODULE_CFLAGS += -Wall -Werror
-
--include /etc/lsb-release
-
-ifeq ($(DISTRIB_ID),Ubuntu)
-MODULE_CFLAGS += -DUBUNTU_RELEASE_CODE=$(subst .,,$(DISTRIB_RELEASE))
-UBUNTU_KERNEL_CODE := $(shell echo `grep UTS_RELEASE $(RTE_KERNELDIR)/include/generated/utsrelease.h \
- | cut -d '"' -f2 | cut -d- -f1,2 | tr .- ,`,1)
-MODULE_CFLAGS += -D"UBUNTU_KERNEL_CODE=UBUNTU_KERNEL_VERSION($(UBUNTU_KERNEL_CODE))"
-endif
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-y := kni_misc.c
-SRCS-y += kni_net.c
-
-include $(RTE_SDK)/mk/rte.module.mk
diff --git a/lib/Makefile b/lib/Makefile
deleted file mode 100644
index 8f5b68a2d4..0000000000
--- a/lib/Makefile
+++ /dev/null
@@ -1,138 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-$(CONFIG_RTE_LIBRTE_KVARGS) += librte_kvargs
-DIRS-y += librte_telemetry
-DIRS-$(CONFIG_RTE_LIBRTE_EAL) += librte_eal
-DEPDIRS-librte_eal := librte_kvargs librte_telemetry
-DIRS-$(CONFIG_RTE_LIBRTE_PCI) += librte_pci
-DEPDIRS-librte_pci := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_RING) += librte_ring
-DEPDIRS-librte_ring := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_STACK) += librte_stack
-DEPDIRS-librte_stack := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += librte_mempool
-DEPDIRS-librte_mempool := librte_eal librte_ring
-DIRS-$(CONFIG_RTE_LIBRTE_MBUF) += librte_mbuf
-DEPDIRS-librte_mbuf := librte_eal librte_mempool
-DIRS-$(CONFIG_RTE_LIBRTE_TIMER) += librte_timer
-DEPDIRS-librte_timer := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_CFGFILE) += librte_cfgfile
-DEPDIRS-librte_cfgfile := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += librte_cmdline
-DEPDIRS-librte_cmdline := librte_eal librte_net
-DIRS-$(CONFIG_RTE_LIBRTE_ETHER) += librte_ethdev
-DEPDIRS-librte_ethdev := librte_net librte_eal librte_mempool librte_ring
-DEPDIRS-librte_ethdev += librte_mbuf
-DEPDIRS-librte_ethdev += librte_kvargs
-DEPDIRS-librte_ethdev += librte_meter
-DIRS-$(CONFIG_RTE_LIBRTE_BBDEV) += librte_bbdev
-DEPDIRS-librte_bbdev := librte_eal librte_mempool librte_mbuf
-DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += librte_cryptodev
-DEPDIRS-librte_cryptodev := librte_eal librte_mempool librte_ring librte_mbuf
-DEPDIRS-librte_cryptodev += librte_kvargs
-DIRS-$(CONFIG_RTE_LIBRTE_SECURITY) += librte_security
-DEPDIRS-librte_security := librte_eal librte_mempool librte_ring librte_mbuf
-DEPDIRS-librte_security += librte_ethdev
-DEPDIRS-librte_security += librte_cryptodev
-DIRS-$(CONFIG_RTE_LIBRTE_COMPRESSDEV) += librte_compressdev
-DEPDIRS-librte_compressdev := librte_eal librte_mempool librte_ring librte_mbuf
-DEPDIRS-librte_compressdev += librte_kvargs
-DIRS-$(CONFIG_RTE_LIBRTE_REGEXDEV) += librte_regexdev
-DEPDIRS-librte_regexdev := librte_eal librte_mbuf
-DIRS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += librte_eventdev
-DEPDIRS-librte_eventdev := librte_eal librte_ring librte_ethdev librte_hash \
- librte_mempool librte_timer librte_cryptodev
-DIRS-$(CONFIG_RTE_LIBRTE_RAWDEV) += librte_rawdev
-DEPDIRS-librte_rawdev := librte_eal librte_ethdev
-DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += librte_vhost
-DEPDIRS-librte_vhost := librte_eal librte_mempool librte_mbuf librte_ethdev \
- librte_net librte_hash librte_cryptodev
-DIRS-$(CONFIG_RTE_LIBRTE_HASH) += librte_hash
-DEPDIRS-librte_hash := librte_eal librte_ring
-DIRS-$(CONFIG_RTE_LIBRTE_EFD) += librte_efd
-DEPDIRS-librte_efd := librte_eal librte_ring librte_hash
-DIRS-$(CONFIG_RTE_LIBRTE_RIB) += librte_rib
-DEPDIRS-librte_rib := librte_eal librte_mempool
-DIRS-$(CONFIG_RTE_LIBRTE_FIB) += librte_fib
-DEPDIRS-librte_fib := librte_eal librte_rib
-DIRS-$(CONFIG_RTE_LIBRTE_LPM) += librte_lpm
-DEPDIRS-librte_lpm := librte_eal librte_hash librte_rcu
-DIRS-$(CONFIG_RTE_LIBRTE_ACL) += librte_acl
-DEPDIRS-librte_acl := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_MEMBER) += librte_member
-DEPDIRS-librte_member := librte_eal librte_hash
-DIRS-$(CONFIG_RTE_LIBRTE_NET) += librte_net
-DEPDIRS-librte_net := librte_mbuf librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += librte_ip_frag
-DEPDIRS-librte_ip_frag := librte_eal librte_mempool librte_mbuf librte_ethdev
-DEPDIRS-librte_ip_frag += librte_hash
-DIRS-$(CONFIG_RTE_LIBRTE_GRO) += librte_gro
-DEPDIRS-librte_gro := librte_eal librte_mbuf librte_ethdev librte_net
-DIRS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += librte_jobstats
-DEPDIRS-librte_jobstats := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_METRICS) += librte_metrics
-DEPDIRS-librte_metrics := librte_eal librte_ethdev
-ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y)
-DEPDIRS-librte_metrics += librte_telemetry
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_BITRATE) += librte_bitratestats
-DEPDIRS-librte_bitratestats := librte_eal librte_metrics librte_ethdev
-DIRS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS) += librte_latencystats
-DEPDIRS-librte_latencystats := librte_eal librte_metrics librte_ethdev librte_mbuf
-DIRS-$(CONFIG_RTE_LIBRTE_POWER) += librte_power
-DEPDIRS-librte_power := librte_eal librte_timer
-DIRS-$(CONFIG_RTE_LIBRTE_METER) += librte_meter
-DEPDIRS-librte_meter := librte_eal
-DIRS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += librte_flow_classify
-DEPDIRS-librte_flow_classify := librte_net librte_table librte_acl
-DIRS-$(CONFIG_RTE_LIBRTE_SCHED) += librte_sched
-DEPDIRS-librte_sched := librte_eal librte_mempool librte_mbuf librte_net
-DEPDIRS-librte_sched += librte_timer
-DIRS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += librte_distributor
-DEPDIRS-librte_distributor := librte_eal librte_mbuf librte_ethdev
-DIRS-$(CONFIG_RTE_LIBRTE_PORT) += librte_port
-DEPDIRS-librte_port := librte_eal librte_mempool librte_mbuf librte_ethdev
-DEPDIRS-librte_port += librte_ip_frag librte_sched librte_eventdev
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-DEPDIRS-librte_port += librte_kni
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_TABLE) += librte_table
-DEPDIRS-librte_table := librte_eal librte_mempool librte_mbuf
-DEPDIRS-librte_table += librte_port librte_lpm librte_hash
-ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
-DEPDIRS-librte_table += librte_acl
-endif
-DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += librte_pipeline
-DEPDIRS-librte_pipeline := librte_eal librte_mempool librte_mbuf
-DEPDIRS-librte_pipeline += librte_table librte_port
-DIRS-$(CONFIG_RTE_LIBRTE_REORDER) += librte_reorder
-DEPDIRS-librte_reorder := librte_eal librte_mempool librte_mbuf
-DIRS-$(CONFIG_RTE_LIBRTE_PDUMP) += librte_pdump
-DEPDIRS-librte_pdump := librte_eal librte_mempool librte_mbuf librte_ethdev
-DIRS-$(CONFIG_RTE_LIBRTE_GSO) += librte_gso
-DEPDIRS-librte_gso := librte_eal librte_mbuf librte_ethdev librte_net
-DEPDIRS-librte_gso += librte_mempool
-DIRS-$(CONFIG_RTE_LIBRTE_BPF) += librte_bpf
-DEPDIRS-librte_bpf := librte_eal librte_mempool librte_mbuf librte_ethdev
-DIRS-$(CONFIG_RTE_LIBRTE_IPSEC) += librte_ipsec
-DEPDIRS-librte_ipsec := librte_eal librte_mbuf librte_cryptodev librte_security \
- librte_net librte_hash
-DIRS-$(CONFIG_RTE_LIBRTE_RCU) += librte_rcu
-DEPDIRS-librte_rcu := librte_eal librte_ring
-
-DIRS-$(CONFIG_RTE_LIBRTE_GRAPH) += librte_graph
-DEPDIRS-librte_graph := librte_eal
-
-DIRS-$(CONFIG_RTE_LIBRTE_NODE) += librte_node
-DEPDIRS-librte_node := librte_graph librte_lpm librte_ethdev librte_mbuf
-
-ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-DIRS-$(CONFIG_RTE_LIBRTE_KNI) += librte_kni
-endif
-DEPDIRS-librte_kni := librte_eal librte_mempool librte_mbuf librte_ethdev
-DEPDIRS-librte_kni += librte_pci
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile
deleted file mode 100644
index f4332b0448..0000000000
--- a/lib/librte_acl/Makefile
+++ /dev/null
@@ -1,65 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_acl.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_acl_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c
-
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += rte_acl.c
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_bld.c
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_gen.c
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_scalar.c
-
-ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_neon.c
-CFLAGS_acl_run_neon.o += -flax-vector-conversions
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_acl_run_neon.o += -Wno-maybe-uninitialized
-endif
-else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y)
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_altivec.c
-else
-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_sse.c
-endif
-
-#
-# If the compiler supports AVX2 instructions,
-# then add support for AVX2 classify method.
-#
-
-#check if flag for AVX2 is already on, if not set it up manually
-ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
- CC_AVX2_SUPPORT=1
-else
- CC_AVX2_SUPPORT=\
- $(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
- grep -q AVX2 && echo 1)
- ifeq ($(CC_AVX2_SUPPORT), 1)
- ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
- CFLAGS_acl_run_avx2.o += -march=core-avx2
- else
- CFLAGS_acl_run_avx2.o += -mavx2
- endif
- endif
-endif
-
-ifeq ($(CC_AVX2_SUPPORT), 1)
- SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_avx2.c
- CFLAGS_rte_acl.o += -DCC_AVX2_SUPPORT
-endif
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_ACL)-include := rte_acl_osdep.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_ACL)-include += rte_acl.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_bbdev/Makefile b/lib/librte_bbdev/Makefile
deleted file mode 100644
index 9d7576b358..0000000000
--- a/lib/librte_bbdev/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_bbdev.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf
-
-# library source files
-SRCS-y += rte_bbdev.c
-
-# export include files
-SYMLINK-y-include += rte_bbdev_op.h
-SYMLINK-y-include += rte_bbdev.h
-SYMLINK-y-include += rte_bbdev_pmd.h
-
-# versioning export map
-EXPORT_MAP := rte_bbdev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_bitratestats/Makefile b/lib/librte_bitratestats/Makefile
deleted file mode 100644
index 4862c44b83..0000000000
--- a/lib/librte_bitratestats/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_bitratestats.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal -lrte_metrics -lrte_ethdev
-
-EXPORT_MAP := rte_bitratestats_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_BITRATE) := rte_bitrate.c
-
-# Install header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_BITRATE)-include += rte_bitrate.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_bpf/Makefile b/lib/librte_bpf/Makefile
deleted file mode 100644
index 3be6750432..0000000000
--- a/lib/librte_bpf/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_bpf.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_net -lrte_eal
-LDLIBS += -lrte_mempool -lrte_ring
-LDLIBS += -lrte_mbuf -lrte_ethdev
-ifeq ($(CONFIG_RTE_LIBRTE_BPF_ELF),y)
-LDLIBS += -lelf
-endif
-
-EXPORT_MAP := rte_bpf_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf.c
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_exec.c
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_load.c
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_pkt.c
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_validate.c
-ifeq ($(CONFIG_RTE_LIBRTE_BPF_ELF),y)
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_load_elf.c
-endif
-ifeq ($(CONFIG_RTE_ARCH_X86_64),y)
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_jit_x86.c
-else ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
-SRCS-$(CONFIG_RTE_LIBRTE_BPF) += bpf_jit_arm64.c
-endif
-
-# install header files
-SYMLINK-$(CONFIG_RTE_LIBRTE_BPF)-include += bpf_def.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_BPF)-include += rte_bpf.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_BPF)-include += rte_bpf_ethdev.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_cfgfile/Makefile b/lib/librte_cfgfile/Makefile
deleted file mode 100644
index 7c10a4e56c..0000000000
--- a/lib/librte_cfgfile/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_cfgfile.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(SRCDIR)/../librte_eal/include
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_cfgfile_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_CFGFILE) += rte_cfgfile.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_CFGFILE)-include += rte_cfgfile.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_cmdline/Makefile b/lib/librte_cmdline/Makefile
deleted file mode 100644
index 619d9a2426..0000000000
--- a/lib/librte_cmdline/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_cmdline.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-
-EXPORT_MAP := rte_cmdline_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) := cmdline.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_cirbuf.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse_etheraddr.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse_ipaddr.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse_num.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse_string.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_rdline.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_vt100.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_socket.c
-SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_parse_portlist.c
-
-LDLIBS += -lrte_net -lrte_eal
-
-# install includes
-INCS := cmdline.h cmdline_parse.h cmdline_parse_num.h cmdline_parse_ipaddr.h
-INCS += cmdline_parse_etheraddr.h cmdline_parse_string.h cmdline_rdline.h
-INCS += cmdline_vt100.h cmdline_socket.h cmdline_cirbuf.h cmdline_parse_portlist.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_CMDLINE)-include := $(INCS)
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_compressdev/Makefile b/lib/librte_compressdev/Makefile
deleted file mode 100644
index 53679d69b8..0000000000
--- a/lib/librte_compressdev/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017-2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_compressdev.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_kvargs
-
-# library source files
-SRCS-y += rte_compressdev.c rte_compressdev_pmd.c rte_comp.c
-
-# export include files
-SYMLINK-y-include += rte_comp.h
-SYMLINK-y-include += rte_compressdev.h
-# export include files (for PMDs)
-SYMLINK-y-include += rte_compressdev_pmd.h
-SYMLINK-y-include += rte_compressdev_internal.h
-
-# versioning export map
-EXPORT_MAP := rte_compressdev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_cryptodev/Makefile b/lib/librte_cryptodev/Makefile
deleted file mode 100644
index 73e77a27c6..0000000000
--- a/lib/librte_cryptodev/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_cryptodev.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_ring -lrte_mbuf
-LDLIBS += -lrte_kvargs
-
-# library source files
-SRCS-y += rte_cryptodev.c rte_cryptodev_pmd.c cryptodev_trace_points.c
-
-# export include files
-SYMLINK-y-include += rte_crypto.h
-SYMLINK-y-include += rte_crypto_asym.h
-SYMLINK-y-include += rte_crypto_sym.h
-SYMLINK-y-include += rte_cryptodev.h
-SYMLINK-y-include += rte_cryptodev_pmd.h
-SYMLINK-y-include += rte_cryptodev_trace.h
-SYMLINK-y-include += rte_cryptodev_trace_fp.h
-
-# versioning export map
-EXPORT_MAP := rte_cryptodev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_distributor/Makefile b/lib/librte_distributor/Makefile
deleted file mode 100644
index fc32fb3a8f..0000000000
--- a/lib/librte_distributor/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_distributor.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev
-
-EXPORT_MAP := rte_distributor_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) := rte_distributor_single.c
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += rte_distributor.c
-ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += rte_distributor_match_sse.c
-else
-SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += rte_distributor_match_generic.c
-endif
-
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR)-include := rte_distributor.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eal/Makefile b/lib/librte_eal/Makefile
deleted file mode 100644
index 2fda40d230..0000000000
--- a/lib/librte_eal/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-DIRS-y += include
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += linux
-DEPDIRS-linux := include
-DIRS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += freebsd
-DEPDIRS-freebsd := include
-
-include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/lib/librte_eal/freebsd/Makefile b/lib/librte_eal/freebsd/Makefile
deleted file mode 100644
index 9a89556742..0000000000
--- a/lib/librte_eal/freebsd/Makefile
+++ /dev/null
@@ -1,104 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_eal.a
-
-ARCH_DIR ?= $(RTE_ARCH)
-VPATH += $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)
-VPATH += $(RTE_SDK)/lib/librte_eal/unix
-VPATH += $(RTE_SDK)/lib/librte_eal/common
-
-CFLAGS += -I$(SRCDIR)/include
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-CFLAGS += $(WERROR_FLAGS) -O3
-
-LDLIBS += -lexecinfo
-LDLIBS += -lpthread
-LDLIBS += -lgcc_s
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_telemetry
-
-EXPORT_MAP := ../rte_eal_version.map
-
-# specific to freebsd exec-env
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) := eal.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_hugepage_info.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_debug.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_interrupts.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_alarm.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_dev.c
-
-# from common dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_config.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memzone.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_log.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_launch.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_mcfg.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_tailqs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_errno.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_hypervisor.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_string_fns.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_hexdump.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_debug.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_devargs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_class.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_bus.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_dev.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_options.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_proc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_fbarray.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_uuid.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_trace.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_trace_ctf.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_trace_points.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_trace_utils.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_malloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += hotplug_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_elem.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_heap.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_keepalive.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_service.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_random.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_reciprocal.c
-
-# from unix dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_file.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_unix_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_unix_timer.c
-
-# from arch dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_hypervisor.c
-SRCS-$(CONFIG_RTE_ARCH_X86) += rte_spinlock.c
-SRCS-y += rte_cycles.c
-
-CFLAGS_eal_common_cpuflags.o := $(CPUFLAGS_LIST)
-
-# workaround for a gcc bug with noreturn attribute
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_eal_thread.o += -Wno-return-type
-CFLAGS_eal_hpet.o += -Wno-return-type
-endif
-
-INC := rte_os.h
-
-SYMLINK-$(CONFIG_RTE_EXEC_ENV_FREEBSD)-include := $(addprefix include/,$(INC))
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eal/include/Makefile b/lib/librte_eal/include/Makefile
deleted file mode 100644
index eb99190d10..0000000000
--- a/lib/librte_eal/include/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include := \
- $(sort $(notdir \
- $(wildcard $(RTE_SDK)/lib/librte_eal/include/*.h)))
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include/generic := \
- $(sort $(addprefix generic/, $(notdir \
- $(wildcard $(RTE_SDK)/lib/librte_eal/include/generic/*.h))))
-
-ARCH_DIR ?= $(RTE_ARCH)
-SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include += \
- $(sort $(addprefix ../$(ARCH_DIR)/include/, $(notdir \
- $(wildcard $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)/include/*.h))))
-
-include $(RTE_SDK)/mk/rte.install.mk
diff --git a/lib/librte_eal/linux/Makefile b/lib/librte_eal/linux/Makefile
deleted file mode 100644
index 9939b3d147..0000000000
--- a/lib/librte_eal/linux/Makefile
+++ /dev/null
@@ -1,112 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_eal.a
-
-ARCH_DIR ?= $(RTE_ARCH)
-VPATH += $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)
-VPATH += $(RTE_SDK)/lib/librte_eal/unix
-VPATH += $(RTE_SDK)/lib/librte_eal/common
-
-CFLAGS += -I$(SRCDIR)/include
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-CFLAGS += $(WERROR_FLAGS) -O3
-
-LDLIBS += -ldl
-LDLIBS += -lpthread
-LDLIBS += -lgcc_s
-LDLIBS += -lrt
-LDLIBS += -lrte_kvargs
-LDLIBS += -lrte_telemetry
-ifeq ($(CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES),y)
-LDLIBS += -lnuma
-endif
-
-EXPORT_MAP := ../rte_eal_version.map
-
-# specific to linux exec-env
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) := eal.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_hugepage_info.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_log.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_vfio.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_vfio_mp_sync.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_debug.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_interrupts.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_alarm.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_dev.c
-
-# from common dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_config.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memzone.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_log.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_launch.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_dynmem.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_mcfg.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_tailqs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_errno.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_hypervisor.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_string_fns.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_hexdump.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_debug.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_devargs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_class.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_bus.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_dev.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_options.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_proc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_fbarray.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_uuid.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_trace.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_trace_ctf.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_trace_points.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_trace_utils.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_malloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += hotplug_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_elem.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_heap.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_keepalive.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_service.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_random.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_reciprocal.c
-
-# from unix dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_file.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_unix_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_unix_timer.c
-
-# from arch dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_hypervisor.c
-SRCS-$(CONFIG_RTE_ARCH_X86) += rte_spinlock.c
-SRCS-y += rte_cycles.c
-
-CFLAGS_eal_common_cpuflags.o := $(CPUFLAGS_LIST)
-
-# workaround for a gcc bug with noreturn attribute
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_eal_thread.o += -Wno-return-type
-endif
-
-INC := rte_kni_common.h
-INC += rte_os.h
-
-SYMLINK-$(CONFIG_RTE_EXEC_ENV_LINUX)-include := $(addprefix include/,$(INC))
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_efd/Makefile b/lib/librte_efd/Makefile
deleted file mode 100644
index 2dc97132e0..0000000000
--- a/lib/librte_efd/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_efd.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_ring -lrte_hash
-
-EXPORT_MAP := rte_efd_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_EFD) := rte_efd.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_EFD)-include := rte_efd.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_ethdev/Makefile b/lib/librte_ethdev/Makefile
deleted file mode 100644
index 47747150b2..0000000000
--- a/lib/librte_ethdev/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_ethdev.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_net -lrte_eal -lrte_mempool -lrte_ring
-LDLIBS += -lrte_mbuf -lrte_kvargs -lrte_meter -lrte_telemetry
-
-EXPORT_MAP := rte_ethdev_version.map
-
-SRCS-y += ethdev_private.c
-SRCS-y += rte_ethdev.c
-SRCS-y += rte_class_eth.c
-SRCS-y += rte_flow.c
-SRCS-y += rte_tm.c
-SRCS-y += rte_mtr.c
-SRCS-y += ethdev_profile.c
-SRCS-y += ethdev_trace_points.c
-
-#
-# Export include files
-#
-SYMLINK-y-include += rte_ethdev.h
-SYMLINK-y-include += rte_ethdev_driver.h
-SYMLINK-y-include += rte_ethdev_core.h
-SYMLINK-y-include += rte_ethdev_pci.h
-SYMLINK-y-include += rte_ethdev_trace.h
-SYMLINK-y-include += rte_ethdev_trace_fp.h
-SYMLINK-y-include += rte_ethdev_vdev.h
-SYMLINK-y-include += rte_eth_ctrl.h
-SYMLINK-y-include += rte_dev_info.h
-SYMLINK-y-include += rte_flow.h
-SYMLINK-y-include += rte_flow_driver.h
-SYMLINK-y-include += rte_tm.h
-SYMLINK-y-include += rte_tm_driver.h
-SYMLINK-y-include += rte_mtr.h
-SYMLINK-y-include += rte_mtr_driver.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eventdev/Makefile b/lib/librte_eventdev/Makefile
deleted file mode 100644
index 0715256bb4..0000000000
--- a/lib/librte_eventdev/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016 Cavium, Inc
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_eventdev.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-CFLAGS += -DLINUX
-else
-CFLAGS += -DBSD
-endif
-LDLIBS += -lrte_eal -lrte_ring -lrte_ethdev -lrte_hash -lrte_mempool -lrte_timer
-LDLIBS += -lrte_mbuf -lrte_cryptodev -lpthread
-
-# library source files
-SRCS-y += rte_eventdev.c
-SRCS-y += rte_event_ring.c
-SRCS-y += eventdev_trace_points.c
-SRCS-y += rte_event_eth_rx_adapter.c
-SRCS-y += rte_event_timer_adapter.c
-SRCS-y += rte_event_crypto_adapter.c
-SRCS-y += rte_event_eth_tx_adapter.c
-
-# export include files
-SYMLINK-y-include += rte_eventdev.h
-SYMLINK-y-include += rte_eventdev_pmd.h
-SYMLINK-y-include += rte_eventdev_pmd_pci.h
-SYMLINK-y-include += rte_eventdev_pmd_vdev.h
-SYMLINK-y-include += rte_eventdev_trace.h
-SYMLINK-y-include += rte_eventdev_trace_fp.h
-SYMLINK-y-include += rte_event_ring.h
-SYMLINK-y-include += rte_event_eth_rx_adapter.h
-SYMLINK-y-include += rte_event_timer_adapter.h
-SYMLINK-y-include += rte_event_timer_adapter_pmd.h
-SYMLINK-y-include += rte_event_crypto_adapter.h
-SYMLINK-y-include += rte_event_eth_tx_adapter.h
-
-# versioning export map
-EXPORT_MAP := rte_eventdev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_fib/Makefile b/lib/librte_fib/Makefile
deleted file mode 100644
index 1dd2a495b1..0000000000
--- a/lib/librte_fib/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Vladimir Medvedkin <medvedkinv@gmail.com>
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_fib.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_rib
-
-EXPORT_MAP := rte_fib_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_FIB) := rte_fib.c rte_fib6.c dir24_8.c trie.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_FIB)-include := rte_fib.h rte_fib6.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_flow_classify/Makefile b/lib/librte_flow_classify/Makefile
deleted file mode 100644
index ca3cae82dd..0000000000
--- a/lib/librte_flow_classify/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_flow_classify.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-
-EXPORT_MAP := rte_flow_classify_version.map
-
-LDLIBS += -lrte_eal -lrte_ethdev -lrte_net -lrte_table -lrte_acl
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += rte_flow_classify.c
-SRCS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += rte_flow_classify_parse.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY)-include := rte_flow_classify.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_graph/Makefile b/lib/librte_graph/Makefile
deleted file mode 100644
index b66279c675..0000000000
--- a/lib/librte_graph/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2020 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_graph.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_graph_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += node.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph_debug.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph_stats.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph_populate.c
-
-# install header files
-SYMLINK-$(CONFIG_RTE_LIBRTE_GRAPH)-include += rte_graph.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_GRAPH)-include += rte_graph_worker.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_gro/Makefile b/lib/librte_gro/Makefile
deleted file mode 100644
index e848687acd..0000000000
--- a/lib/librte_gro/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_gro.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev -lrte_net
-
-EXPORT_MAP := rte_gro_version.map
-
-# source files
-SRCS-$(CONFIG_RTE_LIBRTE_GRO) += rte_gro.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRO) += gro_tcp4.c
-SRCS-$(CONFIG_RTE_LIBRTE_GRO) += gro_vxlan_tcp4.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_GRO)-include += rte_gro.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_gso/Makefile b/lib/librte_gso/Makefile
deleted file mode 100644
index a34846e920..0000000000
--- a/lib/librte_gso/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_gso.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev -lrte_net
-LDLIBS += -lrte_mempool
-
-EXPORT_MAP := rte_gso_version.map
-
-#source files
-SRCS-$(CONFIG_RTE_LIBRTE_GSO) += rte_gso.c
-SRCS-$(CONFIG_RTE_LIBRTE_GSO) += gso_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_GSO) += gso_tcp4.c
-SRCS-$(CONFIG_RTE_LIBRTE_GSO) += gso_tunnel_tcp4.c
-SRCS-$(CONFIG_RTE_LIBRTE_GSO) += gso_udp4.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_GSO)-include += rte_gso.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_hash/Makefile b/lib/librte_hash/Makefile
deleted file mode 100644
index ec9f864992..0000000000
--- a/lib/librte_hash/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_hash.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_ring
-
-EXPORT_MAP := rte_hash_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) := rte_cuckoo_hash.c
-SRCS-$(CONFIG_RTE_LIBRTE_HASH) += rte_fbk_hash.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include := rte_hash.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include += rte_hash_crc.h
-ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
-ifneq ($(findstring RTE_MACHINE_CPUFLAG_CRC32,$(CFLAGS)),)
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include += rte_crc_arm64.h
-endif
-endif
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include += rte_jhash.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include += rte_thash.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_HASH)-include += rte_fbk_hash.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_ip_frag/Makefile b/lib/librte_ip_frag/Makefile
deleted file mode 100644
index 6b80d9f1f2..0000000000
--- a/lib/librte_ip_frag/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_ip_frag.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev
-LDLIBS += -lrte_hash
-
-EXPORT_MAP := rte_ip_frag_version.map
-
-#source files
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_fragmentation.c
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv6_fragmentation.c
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_reassembly.c
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv6_reassembly.c
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ip_frag_common.c
-SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += ip_frag_internal.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_IP_FRAG)-include += rte_ip_frag.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_ipsec/Makefile b/lib/librte_ipsec/Makefile
deleted file mode 100644
index e4c69646b0..0000000000
--- a/lib/librte_ipsec/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_ipsec.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_net
-LDLIBS += -lrte_cryptodev -lrte_security -lrte_hash
-
-EXPORT_MAP := rte_ipsec_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += esp_inb.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += esp_outb.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += sa.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += ses.c
-SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += ipsec_sad.c
-
-# install header files
-SYMLINK-$(CONFIG_RTE_LIBRTE_IPSEC)-include += rte_ipsec.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_IPSEC)-include += rte_ipsec_group.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_IPSEC)-include += rte_ipsec_sa.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_IPSEC)-include += rte_ipsec_sad.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_jobstats/Makefile b/lib/librte_jobstats/Makefile
deleted file mode 100644
index b30d046829..0000000000
--- a/lib/librte_jobstats/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_jobstats.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_jobstats_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_JOBSTATS) := rte_jobstats.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_JOBSTATS)-include := rte_jobstats.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_kni/Makefile b/lib/librte_kni/Makefile
deleted file mode 100644
index 9d440aa135..0000000000
--- a/lib/librte_kni/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_kni.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev
-
-EXPORT_MAP := rte_kni_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_KNI) := rte_kni.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_KNI)-include := rte_kni.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_kvargs/Makefile b/lib/librte_kvargs/Makefile
deleted file mode 100644
index 24b1c3c5b9..0000000000
--- a/lib/librte_kvargs/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2014 6WIND S.A.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_kvargs.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-
-EXPORT_MAP := rte_kvargs_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) := rte_kvargs.c
-
-# install includes
-INCS := rte_kvargs.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_KVARGS)-include := $(INCS)
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_latencystats/Makefile b/lib/librte_latencystats/Makefile
deleted file mode 100644
index b19e0b1788..0000000000
--- a/lib/librte_latencystats/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_latencystats.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lm
-LDLIBS += -lpthread
-LDLIBS += -lrte_eal -lrte_metrics -lrte_ethdev -lrte_mbuf
-
-EXPORT_MAP := rte_latencystats_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS) := rte_latencystats.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_LATENCY_STATS)-include := rte_latencystats.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_lpm/Makefile b/lib/librte_lpm/Makefile
deleted file mode 100644
index 6f06c5c034..0000000000
--- a/lib/librte_lpm/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_lpm.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_hash -lrte_rcu
-
-EXPORT_MAP := rte_lpm_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_LPM) := rte_lpm.c rte_lpm6.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_LPM)-include := rte_lpm.h rte_lpm6.h
-
-ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
-SYMLINK-$(CONFIG_RTE_LIBRTE_LPM)-include += rte_lpm_neon.h
-else ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_LPM)-include += rte_lpm_sse.h
-else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_LPM)-include += rte_lpm_altivec.h
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_mbuf/Makefile b/lib/librte_mbuf/Makefile
deleted file mode 100644
index 41ea5496e3..0000000000
--- a/lib/librte_mbuf/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_mbuf.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-
-LDLIBS += -lrte_eal -lrte_mempool
-
-EXPORT_MAP := rte_mbuf_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_MBUF) := rte_mbuf.c rte_mbuf_ptype.c rte_mbuf_pool_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_MBUF) += rte_mbuf_dyn.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_MBUF)-include := rte_mbuf.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MBUF)-include += rte_mbuf_core.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MBUF)-include += rte_mbuf_ptype.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MBUF)-include += rte_mbuf_pool_ops.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MBUF)-include += rte_mbuf_dyn.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_member/Makefile b/lib/librte_member/Makefile
deleted file mode 100644
index ef9e2faeaf..0000000000
--- a/lib/librte_member/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_member.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += $(WERROR_FLAGS) -O3
-
-LDLIBS += -lm
-LDLIBS += -lrte_eal -lrte_hash
-
-EXPORT_MAP := rte_member_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_MEMBER) += rte_member.c rte_member_ht.c rte_member_vbf.c
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_MEMBER)-include := rte_member.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_mempool/Makefile b/lib/librte_mempool/Makefile
deleted file mode 100644
index 432d6217ec..0000000000
--- a/lib/librte_mempool/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_mempool.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal -lrte_ring
-
-EXPORT_MAP := rte_mempool_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool.c
-SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool_ops.c
-SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool_ops_default.c
-SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += mempool_trace_points.c
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_MEMPOOL)-include := rte_mempool.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MEMPOOL)-include += rte_mempool_trace.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_MEMPOOL)-include += rte_mempool_trace_fp.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_meter/Makefile b/lib/librte_meter/Makefile
deleted file mode 100644
index 48366e82b0..0000000000
--- a/lib/librte_meter/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_meter.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lm
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_meter_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_METER) := rte_meter.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_METER)-include := rte_meter.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_metrics/Makefile b/lib/librte_metrics/Makefile
deleted file mode 100644
index 1264d3bbb0..0000000000
--- a/lib/librte_metrics/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_metrics.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_metrics_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_METRICS) := rte_metrics.c
-
-ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y)
-SRCS-y += rte_metrics_telemetry.c
-SYMLINK-$(CONFIG_RTE_LIBRTE_METRICS)-include += rte_metrics_telemetry.h
-
-LDLIBS += -lrte_ethdev -lrte_telemetry
-LDLIBS += -ljansson
-
-CFLAGS += -I$(RTE_SDK)/lib/librte_telemetry/
-endif
-
-# Install header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_METRICS)-include += rte_metrics.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_net/Makefile b/lib/librte_net/Makefile
deleted file mode 100644
index 9830e771b3..0000000000
--- a/lib/librte_net/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_net.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_mbuf -lrte_eal -lrte_mempool
-
-EXPORT_MAP := rte_net_version.map
-SRCS-$(CONFIG_RTE_LIBRTE_NET) := rte_net.c
-SRCS-$(CONFIG_RTE_LIBRTE_NET) += rte_net_crc.c
-SRCS-$(CONFIG_RTE_LIBRTE_NET) += rte_ether.c
-SRCS-$(CONFIG_RTE_LIBRTE_NET) += rte_arp.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include := rte_ip.h rte_tcp.h rte_udp.h rte_esp.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include += rte_sctp.h rte_icmp.h rte_arp.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include += rte_ether.h rte_gre.h rte_net.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include += rte_net_crc.h rte_mpls.h rte_higig.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include += rte_gtp.h rte_vxlan.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NET)-include += rte_ecpri.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_node/Makefile b/lib/librte_node/Makefile
deleted file mode 100644
index 3ec02104d3..0000000000
--- a/lib/librte_node/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2020 Marvell International Ltd.
-#
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_node.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-# Strict-aliasing rules are violated by uint8_t[] to context size casts.
-CFLAGS += -fno-strict-aliasing
-LDLIBS += -lrte_eal -lrte_graph -lrte_mbuf -lrte_lpm -lrte_ethdev -lrte_mempool
-
-EXPORT_MAP := rte_node_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += null.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += log.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += ethdev_rx.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += ethdev_tx.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += ethdev_ctrl.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += ip4_lookup.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += ip4_rewrite.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += pkt_cls.c
-SRCS-$(CONFIG_RTE_LIBRTE_NODE) += pkt_drop.c
-
-# install header files
-SYMLINK-$(CONFIG_RTE_LIBRTE_NODE)-include += rte_node_ip4_api.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_NODE)-include += rte_node_eth_api.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_pci/Makefile b/lib/librte_pci/Makefile
deleted file mode 100644
index 7943f30cab..0000000000
--- a/lib/librte_pci/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 6WIND S.A.
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pci.a
-
-CFLAGS := -I$(SRCDIR) $(CFLAGS)
-CFLAGS += $(WERROR_FLAGS) -O3
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_pci_version.map
-
-SRCS-$(CONFIG_RTE_LIBRTE_PCI) += rte_pci.c
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_PCI)-include += rte_pci.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_pdump/Makefile b/lib/librte_pdump/Makefile
deleted file mode 100644
index ece8aaacc1..0000000000
--- a/lib/librte_pdump/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2016-2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_pdump.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev
-
-EXPORT_MAP := rte_pdump_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_PDUMP) := rte_pdump.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_PDUMP)-include := rte_pdump.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_pipeline/Makefile b/lib/librte_pipeline/Makefile
deleted file mode 100644
index cfbbd18282..0000000000
--- a/lib/librte_pipeline/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_pipeline.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_table
-LDLIBS += -lrte_port -lrte_meter -lrte_sched -lrte_cryptodev
-
-EXPORT_MAP := rte_pipeline_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) := rte_pipeline.c
-SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += rte_port_in_action.c
-SRCS-$(CONFIG_RTE_LIBRTE_PIPELINE) += rte_table_action.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_PIPELINE)-include += rte_pipeline.h rte_port_in_action.h rte_table_action.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_port/Makefile b/lib/librte_port/Makefile
deleted file mode 100644
index 57d2aedbc5..0000000000
--- a/lib/librte_port/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_port.a
-ifeq ($(CONFIG_RTE_PORT_PCAP),y)
-LDLIBS += -lpcap
-endif
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev
-LDLIBS += -lrte_ip_frag -lrte_sched -lrte_cryptodev -lrte_eventdev
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-LDLIBS += -lrte_kni
-endif
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-EXPORT_MAP := rte_port_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_ethdev.c
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_ring.c
-ifeq ($(CONFIG_RTE_LIBRTE_IP_FRAG),y)
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_frag.c
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_ras.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_sched.c
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_fd.c
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_kni.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_source_sink.c
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_sym_crypto.c
-SRCS-$(CONFIG_RTE_LIBRTE_PORT) += rte_port_eventdev.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_ethdev.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_ring.h
-ifeq ($(CONFIG_RTE_LIBRTE_IP_FRAG),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_frag.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_ras.h
-endif
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_sched.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_fd.h
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_kni.h
-endif
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_source_sink.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_sym_crypto.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_PORT)-include += rte_port_eventdev.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_power/Makefile b/lib/librte_power/Makefile
deleted file mode 100644
index 3b067b615f..0000000000
--- a/lib/librte_power/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_power.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
-LDLIBS += -lrte_eal -lrte_timer
-
-EXPORT_MAP := rte_power_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) := rte_power.c power_acpi_cpufreq.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += power_kvm_vm.c guest_channel.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += rte_power_empty_poll.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += power_pstate_cpufreq.c
-SRCS-$(CONFIG_RTE_LIBRTE_POWER) += power_common.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_POWER)-include := rte_power.h rte_power_empty_poll.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_rawdev/Makefile b/lib/librte_rawdev/Makefile
deleted file mode 100644
index 99f5d2a471..0000000000
--- a/lib/librte_rawdev/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2017 NXP
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_rawdev.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_telemetry
-
-# library source files
-SRCS-y += rte_rawdev.c
-
-# export include files
-SYMLINK-y-include += rte_rawdev.h
-SYMLINK-y-include += rte_rawdev_pmd.h
-
-# versioning export map
-EXPORT_MAP := rte_rawdev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_rcu/Makefile b/lib/librte_rcu/Makefile
deleted file mode 100644
index 553bca2ef4..0000000000
--- a/lib/librte_rcu/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Arm Limited
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_rcu.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal -lrte_ring
-
-EXPORT_MAP := rte_rcu_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_RCU) := rte_rcu_qsbr.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_RCU)-include := rte_rcu_qsbr.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_regexdev/Makefile b/lib/librte_regexdev/Makefile
deleted file mode 100644
index c123fcaf5c..0000000000
--- a/lib/librte_regexdev/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(C) 2019 Marvell International Ltd.
-# Copyright 2020 Mellanox Technologies, Ltd
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_regexdev.a
-
-EXPORT_MAP := rte_regex_version.map
-
-# library version
-LIBABIVER := 1
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mbuf
-
-# library source files
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_REGEXDEV) := rte_regexdev.c
-
-# export include files
-SYMLINK-$(CONFIG_RTE_LIBRTE_REGEXDEV)-include += rte_regexdev.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_REGEXDEV)-include += rte_regexdev_core.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_REGEXDEV)-include += rte_regexdev_driver.h
-
-# versioning export map
-EXPORT_MAP := rte_regexdev_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_reorder/Makefile b/lib/librte_reorder/Makefile
deleted file mode 100644
index 1914411d52..0000000000
--- a/lib/librte_reorder/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_reorder.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf
-
-EXPORT_MAP := rte_reorder_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_REORDER) := rte_reorder.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_REORDER)-include := rte_reorder.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_rib/Makefile b/lib/librte_rib/Makefile
deleted file mode 100644
index be80ce5d3f..0000000000
--- a/lib/librte_rib/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Vladimir Medvedkin <medvedkinv@gmail.com>
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_rib.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_mempool
-
-EXPORT_MAP := rte_rib_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_RIB) := rte_rib.c rte_rib6.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_RIB)-include := rte_rib.h rte_rib6.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_ring/Makefile b/lib/librte_ring/Makefile
deleted file mode 100644
index 83a9d0840e..0000000000
--- a/lib/librte_ring/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_ring.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_ring_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_RING) := rte_ring.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_RING)-include := rte_ring.h \
- rte_ring_core.h \
- rte_ring_elem.h \
- rte_ring_generic.h \
- rte_ring_c11_mem.h \
- rte_ring_hts.h \
- rte_ring_hts_c11_mem.h \
- rte_ring_peek.h \
- rte_ring_peek_c11_mem.h \
- rte_ring_rts.h \
- rte_ring_rts_c11_mem.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_sched/Makefile b/lib/librte_sched/Makefile
deleted file mode 100644
index aee93a1205..0000000000
--- a/lib/librte_sched/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_sched.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-
-LDLIBS += -lm
-LDLIBS += -lrt
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_net
-LDLIBS += -lrte_timer
-
-EXPORT_MAP := rte_sched_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_SCHED) += rte_sched.c rte_red.c rte_approx.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_SCHED)-include := rte_sched.h rte_sched_common.h rte_red.h rte_approx.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_security/Makefile b/lib/librte_security/Makefile
deleted file mode 100644
index 825eaeff8e..0000000000
--- a/lib/librte_security/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_security.a
-
-# build flags
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool
-
-# library source files
-SRCS-y += rte_security.c
-
-# export include files
-SYMLINK-y-include += rte_security.h
-SYMLINK-y-include += rte_security_driver.h
-
-# versioning export map
-EXPORT_MAP := rte_security_version.map
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_stack/Makefile b/lib/librte_stack/Makefile
deleted file mode 100644
index 020ef102b5..0000000000
--- a/lib/librte_stack/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_stack.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_stack_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_STACK) := rte_stack.c \
- rte_stack_std.c \
- rte_stack_lf.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_STACK)-include := rte_stack.h \
- rte_stack_std.h \
- rte_stack_lf.h \
- rte_stack_lf_generic.h \
- rte_stack_lf_c11.h \
- rte_stack_lf_stubs.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_table/Makefile b/lib/librte_table/Makefile
deleted file mode 100644
index 6ad8a6b17d..0000000000
--- a/lib/librte_table/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-#
-# library name
-#
-LIB = librte_table.a
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS)
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_port
-LDLIBS += -lrte_lpm -lrte_hash
-ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
-LDLIBS += -lrte_acl
-endif
-
-EXPORT_MAP := rte_table_version.map
-
-#
-# all source are stored in SRCS-y
-#
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_lpm.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_lpm_ipv6.c
-ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_acl.c
-endif
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_cuckoo.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_key8.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_key16.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_key32.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_ext.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_hash_lru.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_array.c
-SRCS-$(CONFIG_RTE_LIBRTE_TABLE) += rte_table_stub.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_lpm.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_lpm_ipv6.h
-ifeq ($(CONFIG_RTE_LIBRTE_ACL),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_acl.h
-endif
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_hash.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_hash_cuckoo.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_hash_func.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_hash_func_arm64.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_lru.h
-ifeq ($(CONFIG_RTE_ARCH_X86),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_lru_x86.h
-endif
-ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_lru_arm64.h
-endif
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_array.h
-SYMLINK-$(CONFIG_RTE_LIBRTE_TABLE)-include += rte_table_stub.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_telemetry/Makefile b/lib/librte_telemetry/Makefile
deleted file mode 100644
index c62cbd86dc..0000000000
--- a/lib/librte_telemetry/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_telemetry.a
-
-ARCH_DIR ?= $(RTE_ARCH)
-
-CFLAGS += -O3
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-CFLAGS += -I$(RTE_SDK)/lib/librte_metrics/
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)/include
-CFLAGS += -pthread
-
-LDLIBS += -lpthread
-
-EXPORT_MAP := rte_telemetry_version.map
-
-# library source files
-SRCS-y += telemetry.c
-SRCS-y += telemetry_data.c
-SRCS-y += telemetry_legacy.c
-
-# export include files
-SYMLINK-y-include := rte_telemetry.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_timer/Makefile b/lib/librte_timer/Makefile
deleted file mode 100644
index 7e95d120c0..0000000000
--- a/lib/librte_timer/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_timer.a
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-LDLIBS += -lrte_eal
-
-EXPORT_MAP := rte_timer_version.map
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_TIMER) := rte_timer.c
-
-# install this header file
-SYMLINK-$(CONFIG_RTE_LIBRTE_TIMER)-include := rte_timer.h
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_vhost/Makefile b/lib/librte_vhost/Makefile
deleted file mode 100644
index 4f2f3e47da..0000000000
--- a/lib/librte_vhost/Makefile
+++ /dev/null
@@ -1,54 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-# library name
-LIB = librte_vhost.a
-
-EXPORT_MAP := rte_vhost_version.map
-
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-CFLAGS += -I vhost_user
-CFLAGS += -fno-strict-aliasing
-LDLIBS += -lpthread
-
-ifeq ($(RTE_TOOLCHAIN), gcc)
-ifeq ($(shell test $(GCC_VERSION) -ge 83 && echo 1), 1)
-CFLAGS += -DVHOST_GCC_UNROLL_PRAGMA
-endif
-endif
-
-ifeq ($(RTE_TOOLCHAIN), clang)
-ifeq ($(shell test $(CLANG_MAJOR_VERSION)$(CLANG_MINOR_VERSION) -ge 37 && echo 1), 1)
-CFLAGS += -DVHOST_CLANG_UNROLL_PRAGMA
-endif
-endif
-
-ifeq ($(RTE_TOOLCHAIN), icc)
-ifeq ($(shell test $(ICC_MAJOR_VERSION) -ge 16 && echo 1), 1)
-CFLAGS += -DVHOST_ICC_UNROLL_PRAGMA
-endif
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y)
-LDLIBS += -lnuma
-endif
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev -lrte_net
-
-# all source are stored in SRCS-y
-SRCS-$(CONFIG_RTE_LIBRTE_VHOST) := fd_man.c iotlb.c socket.c vhost.c \
- vhost_user.c virtio_net.c vdpa.c
-
-# install includes
-SYMLINK-$(CONFIG_RTE_LIBRTE_VHOST)-include += rte_vhost.h rte_vdpa.h \
- rte_vdpa_dev.h rte_vhost_async.h
-
-# only compile vhost crypto when cryptodev is enabled
-ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
-LDLIBS += -lrte_cryptodev -lrte_hash
-SRCS-$(CONFIG_RTE_LIBRTE_VHOST) += vhost_crypto.c
-SYMLINK-$(CONFIG_RTE_LIBRTE_VHOST)-include += rte_vhost_crypto.h
-endif
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/mk/arch/arm/rte.vars.mk b/mk/arch/arm/rte.vars.mk
deleted file mode 100644
index dc8c10a24c..0000000000
--- a/mk/arch/arm/rte.vars.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) 2015 RehiveTech. All rights reserved.
-
-ARCH ?= arm
-CROSS ?=
-
-CPU_CFLAGS ?= -marm -munaligned-access -D_FILE_OFFSET_BITS=64
-CPU_LDFLAGS ?=
-CPU_ASFLAGS ?= -felf
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf32-littlearm
-RTE_OBJCOPY_ARCH = arm
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/arch/arm64/rte.vars.mk b/mk/arch/arm64/rte.vars.mk
deleted file mode 100644
index a75b80c222..0000000000
--- a/mk/arch/arm64/rte.vars.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#
-# arch:
-#
-# - define ARCH variable (overridden by cmdline or by previous
-# optional define in machine .mk)
-# - define CROSS variable (overridden by cmdline or previous define
-# in machine .mk)
-# - define CPU_CFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_LDFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_ASFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - may override any previously defined variable
-#
-# examples for CONFIG_RTE_ARCH: i686, x86_64, x86_64_32
-#
-
-ARCH ?= arm64
-# common arch dir in eal headers
-ARCH_DIR := arm
-CROSS ?=
-
-CPU_CFLAGS ?=
-CPU_LDFLAGS ?=
-CPU_ASFLAGS ?= -felf
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf64-littleaarch64
-RTE_OBJCOPY_ARCH = aarch64
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/arch/i686/rte.vars.mk b/mk/arch/i686/rte.vars.mk
deleted file mode 100644
index c867883f15..0000000000
--- a/mk/arch/i686/rte.vars.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# arch:
-#
-# - define ARCH variable (overridden by cmdline or by previous
-# optional define in machine .mk)
-# - define CROSS variable (overridden by cmdline or previous define
-# in machine .mk)
-# - define CPU_CFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_LDFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_ASFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - may override any previously defined variable
-#
-# examples for CONFIG_RTE_ARCH: i686, x86_64, x86_64_32
-#
-
-ARCH ?= i386
-# common arch dir in eal headers
-ARCH_DIR := x86
-CROSS ?=
-
-CPU_CFLAGS ?= -m32 -D_FILE_OFFSET_BITS=64
-CPU_LDFLAGS ?= -melf_i386
-CPU_ASFLAGS ?= -felf
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf32-i386
-RTE_OBJCOPY_ARCH = i386
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/arch/ppc_64/rte.vars.mk b/mk/arch/ppc_64/rte.vars.mk
deleted file mode 100644
index 9f7ab22f42..0000000000
--- a/mk/arch/ppc_64/rte.vars.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) IBM Corporation 2014.
-
-ARCH ?= powerpc
-ARCH_DIR := ppc
-CROSS ?=
-
-CPU_CFLAGS ?= -m64
-CPU_LDFLAGS ?=
-CPU_ASFLAGS ?= -felf64
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf64-powerpcle
-RTE_OBJCOPY_ARCH = powerpc:common64
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/arch/x86_64/rte.vars.mk b/mk/arch/x86_64/rte.vars.mk
deleted file mode 100644
index e1689be9b4..0000000000
--- a/mk/arch/x86_64/rte.vars.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# arch:
-#
-# - define ARCH variable (overridden by cmdline or by previous
-# optional define in machine .mk)
-# - define CROSS variable (overridden by cmdline or previous define
-# in machine .mk)
-# - define CPU_CFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_LDFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_ASFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - may override any previously defined variable
-#
-# examples for CONFIG_RTE_ARCH: i686, x86_64, x86_64_32
-#
-
-ARCH ?= x86_64
-# common arch dir in eal headers
-ARCH_DIR := x86
-CROSS ?=
-
-CPU_CFLAGS ?= -m64
-CPU_LDFLAGS ?=
-CPU_ASFLAGS ?= -felf64
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf64-x86-64
-RTE_OBJCOPY_ARCH = i386:x86-64
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/arch/x86_x32/rte.vars.mk b/mk/arch/x86_x32/rte.vars.mk
deleted file mode 100644
index c59b37a2c8..0000000000
--- a/mk/arch/x86_x32/rte.vars.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# arch:
-#
-# - define ARCH variable (overridden by cmdline or by previous
-# optional define in machine .mk)
-# - define CROSS variable (overridden by cmdline or previous define
-# in machine .mk)
-# - define CPU_CFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_LDFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_ASFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - may override any previously defined variable
-#
-# examples for CONFIG_RTE_ARCH: i686, x86_64, x86_64_32
-#
-
-ARCH ?= x86_64
-ARCH_DIR := x86
-CROSS ?=
-
-CPU_CFLAGS ?= -mx32
-CPU_LDFLAGS ?= -melf32_x86_64
-#CPU_ASFLAGS ?= -felf64
-# x32 is supported by Linux distribution with gcc4.8 and newer in some
-# cases there is backported support in gcc4.6
-ifneq ($(shell echo | $(CC) $(CPU_CFLAGS) -E - 2>/dev/null 1>/dev/null && echo 0), 0)
- $(error This version of GCC does not support x32 ABI)
-endif
-
-export ARCH CROSS CPU_CFLAGS CPU_LDFLAGS CPU_ASFLAGS
-
-RTE_OBJCOPY_TARGET = elf32-x86-64
-RTE_OBJCOPY_ARCH = i386:x86-64
-
-export RTE_OBJCOPY_TARGET RTE_OBJCOPY_ARCH
diff --git a/mk/exec-env/bsdapp b/mk/exec-env/bsdapp
deleted file mode 120000
index 69f5cba2c2..0000000000
--- a/mk/exec-env/bsdapp
+++ /dev/null
@@ -1 +0,0 @@
-freebsd/
\ No newline at end of file
diff --git a/mk/exec-env/freebsd/rte.app.mk b/mk/exec-env/freebsd/rte.app.mk
deleted file mode 100644
index a2af7266a6..0000000000
--- a/mk/exec-env/freebsd/rte.app.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-exec-env-appinstall:
- @true
-
-exec-env-appclean:
- @true
diff --git a/mk/exec-env/freebsd/rte.vars.mk b/mk/exec-env/freebsd/rte.vars.mk
deleted file mode 100644
index 630eb55f73..0000000000
--- a/mk/exec-env/freebsd/rte.vars.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2019 Intel Corporation
-
-#
-# exec-env:
-#
-# - define EXECENV_CFLAGS variable (overridden by cmdline)
-# - define EXECENV_LDFLAGS variable (overridden by cmdline)
-# - define EXECENV_ASFLAGS variable (overridden by cmdline)
-# - may override any previously defined variable
-#
-# examples for RTE_EXEC_ENV: linux, freebsd
-#
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_CFLAGS = -pthread -fPIC
-else
-EXECENV_CFLAGS = -pthread
-endif
-
-# include in every library to build
-EXECENV_CFLAGS += -I$(RTE_SDK)/lib/librte_eal/freebsd/include
-
-EXECENV_LDFLAGS =
-EXECENV_LDLIBS = -lexecinfo
-EXECENV_ASFLAGS =
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_LDLIBS += -lgcc_s
-endif
-
-# force applications to link with gcc/icc instead of using ld
-LINK_USING_CC := 1
-
-BSDMAKE=/usr/bin/make
-
-export EXECENV_CFLAGS EXECENV_LDFLAGS EXECENV_ASFLAGS
diff --git a/mk/exec-env/linux/rte.app.mk b/mk/exec-env/linux/rte.app.mk
deleted file mode 100644
index a2af7266a6..0000000000
--- a/mk/exec-env/linux/rte.app.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-exec-env-appinstall:
- @true
-
-exec-env-appclean:
- @true
diff --git a/mk/exec-env/linux/rte.vars.mk b/mk/exec-env/linux/rte.vars.mk
deleted file mode 100644
index 41ef4195b0..0000000000
--- a/mk/exec-env/linux/rte.vars.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2019 Intel Corporation
-
-#
-# exec-env:
-#
-# - define EXECENV_CFLAGS variable (overridden by cmdline)
-# - define EXECENV_LDFLAGS variable (overridden by cmdline)
-# - define EXECENV_ASFLAGS variable (overridden by cmdline)
-# - may override any previously defined variable
-#
-# examples for RTE_EXEC_ENV: linux, freebsd
-#
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_CFLAGS = -pthread -fPIC
-else
-EXECENV_CFLAGS = -pthread
-endif
-
-# include in every library to build
-EXECENV_CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linux/include
-
-EXECENV_LDLIBS =
-EXECENV_ASFLAGS =
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_LDLIBS += -lgcc_s
-endif
-
-EXECENV_LDLIBS-$(CONFIG_RTE_USE_LIBBSD) += -lbsd
-
-# force applications to link with gcc/icc instead of using ld
-LINK_USING_CC := 1
-
-# For shared libraries
-EXECENV_LDFLAGS += -export-dynamic
-# Add library to the group to resolve symbols
-EXECENV_LDLIBS += -ldl
-
-# EXECENV_LDLIBS-y applies to lib.so and app linking
-# while EXECENV_LDLIBS applies only to app linking.
-EXECENV_LDLIBS += $(EXECENV_LDLIBS-y)
-
-export EXECENV_CFLAGS EXECENV_LDFLAGS EXECENV_ASFLAGS EXECENV_LDLIBS
diff --git a/mk/exec-env/linuxapp b/mk/exec-env/linuxapp
deleted file mode 120000
index ce5e2c77b2..0000000000
--- a/mk/exec-env/linuxapp
+++ /dev/null
@@ -1 +0,0 @@
-linux/
\ No newline at end of file
diff --git a/mk/internal/rte.build-post.mk b/mk/internal/rte.build-post.mk
deleted file mode 100644
index a6b6a9a46a..0000000000
--- a/mk/internal/rte.build-post.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# build helper .mk
-
-# fast way, no need to do prebuild and postbuild
-ifeq ($(PREBUILD)$(POSTBUILD),)
-
-_postbuild: $(_BUILD)
- @touch _postbuild
-
-else # slower way
-
-_prebuild: $(PREBUILD)
- @touch _prebuild
-
-ifneq ($(_BUILD),)
-$(_BUILD): _prebuild
-else
-_BUILD = _prebuild
-endif
-
-_build: $(_BUILD)
- @touch _build
-
-ifneq ($(POSTBUILD),)
-$(POSTBUILD): _build
-else
-POSTBUILD = _build
-endif
-
-_postbuild: $(POSTBUILD)
- @touch _postbuild
-endif
\ No newline at end of file
diff --git a/mk/internal/rte.build-pre.mk b/mk/internal/rte.build-pre.mk
deleted file mode 100644
index 137612f19b..0000000000
--- a/mk/internal/rte.build-pre.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-_BUILD_TARGETS := _prebuild _build _postbuild
-
-comma := ,
-linkerprefix = $(subst -Wl$(comma)-L,-L,$(addprefix -Wl$(comma),$1))
diff --git a/mk/internal/rte.clean-post.mk b/mk/internal/rte.clean-post.mk
deleted file mode 100644
index 77685edd99..0000000000
--- a/mk/internal/rte.clean-post.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# clean helper .mk
-
-# fast way, no need to do preclean and postclean
-ifeq ($(PRECLEAN)$(POSTCLEAN),)
-
-_postclean: $(_CLEAN)
- @touch _postclean
-
-else # slower way
-
-_preclean: $(PRECLEAN)
- @touch _preclean
-
-ifneq ($(_CLEAN),)
-$(_CLEAN): _preclean
-else
-_CLEAN = _preclean
-endif
-
-_clean: $(_CLEAN)
- @touch _clean
-
-ifneq ($(POSTCLEAN),)
-$(POSTCLEAN): _clean
-else
-POSTCLEAN = _clean
-endif
-
-_postclean: $(POSTCLEAN)
- @touch _postclean
-endif
diff --git a/mk/internal/rte.clean-pre.mk b/mk/internal/rte.clean-pre.mk
deleted file mode 100644
index e21607bff9..0000000000
--- a/mk/internal/rte.clean-pre.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-_CLEAN_TARGETS := _preclean _clean _postclean
diff --git a/mk/internal/rte.compile-post.mk b/mk/internal/rte.compile-post.mk
deleted file mode 100644
index 01525bee1b..0000000000
--- a/mk/internal/rte.compile-post.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# no rule no build these files
-$(DEPS-y) $(CMDS-y):
diff --git a/mk/internal/rte.compile-pre.mk b/mk/internal/rte.compile-pre.mk
deleted file mode 100644
index df05b55769..0000000000
--- a/mk/internal/rte.compile-pre.mk
+++ /dev/null
@@ -1,164 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# Common to rte.lib.mk, rte.app.mk, rte.obj.mk
-#
-
-SRCS-all := $(SRCS-y) $(SRCS-n) $(SRCS-)
-
-# convert source to obj file
-src2obj = $(strip $(patsubst %.c,%.o,\
- $(patsubst %.S,%_s.o,$(1))))
-
-# add a dot in front of the file name
-dotfile = $(strip $(foreach f,$(1),\
- $(join $(dir $f),.$(notdir $f))))
-
-# convert source/obj files into dot-dep filename (does not
-# include .S files)
-src2dep = $(strip $(call dotfile,$(patsubst %.c,%.o.d, \
- $(patsubst %.S,,$(1)))))
-obj2dep = $(strip $(call dotfile,$(patsubst %.o,%.o.d,$(1))))
-
-# convert source/obj files into dot-cmd filename
-src2cmd = $(strip $(call dotfile,$(patsubst %.c,%.o.cmd, \
- $(patsubst %.S,%_s.o.cmd,$(1)))))
-obj2cmd = $(strip $(call dotfile,$(patsubst %.o,%.o.cmd,$(1))))
-
-OBJS-y := $(call src2obj,$(SRCS-y))
-OBJS-n := $(call src2obj,$(SRCS-n))
-OBJS- := $(call src2obj,$(SRCS-))
-OBJS-all := $(filter-out $(SRCS-all),$(OBJS-y) $(OBJS-n) $(OBJS-))
-
-DEPS-y := $(call src2dep,$(SRCS-y))
-DEPS-n := $(call src2dep,$(SRCS-n))
-DEPS- := $(call src2dep,$(SRCS-))
-DEPS-all := $(DEPS-y) $(DEPS-n) $(DEPS-)
-DEPSTMP-all := $(DEPS-all:%.d=%.d.tmp)
-
-CMDS-y := $(call src2cmd,$(SRCS-y))
-CMDS-n := $(call src2cmd,$(SRCS-n))
-CMDS- := $(call src2cmd,$(SRCS-))
-CMDS-all := $(CMDS-y) $(CMDS-n) $(CMDS-)
-
--include $(DEPS-y) $(CMDS-y)
-
-# command to compile a .c file to generate an object
-ifeq ($(USE_HOST),1)
-C_TO_O = $(HOSTCC) -Wp,-MD,$(call obj2dep,$(@)).tmp $(HOST_CPPFLAGS) $(HOST_CFLAGS) \
- $(CFLAGS_$(@)) $(HOST_EXTRA_CPPFLAGS) $(HOST_EXTRA_CFLAGS) -o $@ -c $<
-C_TO_O_STR = $(subst ','\'',$(C_TO_O)) #'# fix syntax highlight
-C_TO_O_DISP = $(if $(V),"$(C_TO_O_STR)"," HOSTCC $(@)")
-else
-C_TO_O = $(CC) -Wp,-MD,$(call obj2dep,$(@)).tmp $(CPPFLAGS) $(CFLAGS) \
- $(CFLAGS_$(@)) $(EXTRA_CPPFLAGS) $(EXTRA_CFLAGS) -o $@ -c $<
-C_TO_O_STR = $(subst ','\'',$(C_TO_O)) #'# fix syntax highlight
-C_TO_O_DISP = $(if $(V),"$(C_TO_O_STR)"," CC $(@)")
-endif
-CHECK_SYMBOLS_SCRIPT = $(RTE_SDK)/buildtools/check-symbols.sh
-CHECK_SYMBOLS = $(CHECK_SYMBOLS_SCRIPT) $(SRCDIR)/$(EXPORT_MAP) $@
-
-PMDINFO_GEN = $(RTE_SDK_BIN)/app/dpdk-pmdinfogen $@ $@.pmd.c
-PMDINFO_CC = $(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@.pmd.o $@.pmd.c
-PMDINFO_LD = $(CROSS)ld -r $(filter-out -export-dynamic,$(LDFLAGS)) -o $@.o $@.pmd.o $@
-PMDINFO_TO_O = if grep -q 'RTE_PMD_REGISTER_.*(.*)' $<; then \
- echo "$(if $V,$(PMDINFO_GEN), PMDINFO $@.pmd.c)" && \
- $(PMDINFO_GEN) && \
- echo "$(if $V,$(PMDINFO_CC), CC $@.pmd.o)" && \
- $(PMDINFO_CC) && \
- echo "$(if $V,$(PMDINFO_LD), LD $@)" && \
- $(PMDINFO_LD) && \
- mv -f $@.o $@; fi
-C_TO_O_CMD = 'cmd_$@ = $(C_TO_O_STR)'
-C_TO_O_DO = @set -e; \
- echo $(C_TO_O_DISP); \
- $(C_TO_O) && \
- $(PMDINFO_TO_O) && \
- $(CHECK_SYMBOLS) && \
- echo $(C_TO_O_CMD) > $(call obj2cmd,$(@)) && \
- sed 's,'$@':,dep_'$@' =,' $(call obj2dep,$(@)).tmp > $(call obj2dep,$(@)) && \
- rm -f $(call obj2dep,$(@)).tmp
-
-# return an empty string if string are equal
-compare = $(strip $(subst $(1),,$(2)) $(subst $(2),,$(1)))
-
-# return a non-empty string if the dst file does not exist
-file_missing = $(call compare,$(wildcard $@),$@)
-
-# return a non-empty string if cmdline changed
-cmdline_changed = $(call compare,$(strip $(cmd_$@)),$(strip $(1)))
-
-# return a non-empty string if a dependency file does not exist
-depfile_missing = $(call compare,$(wildcard $(dep_$@)),$(dep_$@))
-
-# return an empty string if no prereq is newer than target
-# - $^ -> names of all the prerequisites
-# - $(wildcard $^) -> every existing prereq
-# - $(filter-out $(wildcard $^),$^) -> every prereq that don't
-# exist (filter-out removes existing ones from the list)
-# - $? -> names of all the prerequisites newer than target
-depfile_newer = $(strip $(filter-out FORCE,$? \
- $(filter-out $(wildcard $^),$^)))
-
-# return 1 if parameter is a non-empty string, else 0
-boolean = $(if $1,1,0)
-
-#
-# Compile .c file if needed
-# Note: dep_$$@ is from the .d file and DEP_$$@ can be specified by
-# user (by default it is empty)
-#
-.SECONDEXPANSION:
-%.o: %.c $$(wildcard $$(dep_$$@)) $$(DEP_$$(@)) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(C_TO_O))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer))")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(C_TO_O)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(C_TO_O_DO))
-
-# command to assemble a .S file to generate an object
-ifeq ($(USE_HOST),1)
-S_TO_O = $(CPP) $(HOST_CPPFLAGS) $($(@)_CPPFLAGS) $(HOST_EXTRA_CPPFLAGS) $< $(@).tmp && \
- $(HOSTAS) $(HOST_ASFLAGS) $($(@)_ASFLAGS) $(HOST_EXTRA_ASFLAGS) -o $@ $(@).tmp
-S_TO_O_STR = $(subst ','\'',$(S_TO_O)) #'# fix syntax highlight
-S_TO_O_DISP = $(if $(V),"$(S_TO_O_STR)"," HOSTAS $(@)")
-else
-S_TO_O = $(CPP) $(CPPFLAGS) $($(@)_CPPFLAGS) $(EXTRA_CPPFLAGS) $< -o $(@).tmp && \
- $(AS) $(ASFLAGS) $($(@)_ASFLAGS) $(EXTRA_ASFLAGS) -o $@ $(@).tmp
-S_TO_O_STR = $(subst ','\'',$(S_TO_O)) #'# fix syntax highlight
-S_TO_O_DISP = $(if $(V),"$(S_TO_O_STR)"," AS $(@)")
-endif
-
-S_TO_O_CMD = "cmd_$@ = $(S_TO_O_STR)"
-S_TO_O_DO = @set -e; \
- echo $(S_TO_O_DISP); \
- $(S_TO_O) && \
- echo $(S_TO_O_CMD) > $(call obj2cmd,$(@))
-
-#
-# Compile .S file if needed
-# Note: DEP_$$@ can be specified by user (by default it is empty)
-#
-%_s.o: %.S $$(DEP_$$@) FORCE
- @[ ! -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(S_TO_O_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(S_TO_O_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(S_TO_O_DO))
diff --git a/mk/internal/rte.extvars.mk b/mk/internal/rte.extvars.mk
deleted file mode 100644
index 98c860628a..0000000000
--- a/mk/internal/rte.extvars.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# directory where sources are located
-#
-ifdef S
-ifeq ("$(origin S)", "command line")
-RTE_SRCDIR := $(abspath $(S))
-endif
-endif
-RTE_SRCDIR ?= $(CURDIR)
-export RTE_SRCDIR
-
-#
-# Makefile to call once $(RTE_OUTPUT) is created
-#
-ifdef M
-ifeq ("$(origin M)", "command line")
-RTE_EXTMK := $(abspath $(M))
-endif
-endif
-RTE_EXTMK ?= $(RTE_SRCDIR)/$(notdir $(firstword $(MAKEFILE_LIST)))
-export RTE_EXTMK
-
-# RTE_SDK_BIN must point to .config, include/ and lib/.
-RTE_SDK_BIN := $(RTE_SDK)/$(RTE_TARGET)
-ifeq ($(wildcard $(RTE_SDK_BIN)/.config),)
-$(error Cannot find .config in $(RTE_SDK_BIN))
-endif
-
-#
-# Output files wil go in a separate directory: default output is
-# $(RTE_SRCDIR)/build
-# Output dir can be given as command line using "O="
-#
-ifdef O
-ifeq ("$(origin O)", "command line")
-RTE_OUTPUT := $(abspath $(O))
-endif
-endif
-RTE_OUTPUT ?= $(RTE_SRCDIR)/build
-export RTE_OUTPUT
-
-# if we are building an external application, include SDK
-# configuration and include project configuration if any
-include $(RTE_SDK_BIN)/.config
-ifneq ($(wildcard $(RTE_OUTPUT)/.config),)
- include $(RTE_OUTPUT)/.config
-endif
-# remove double-quotes from config names
-RTE_ARCH := $(CONFIG_RTE_ARCH:"%"=%)
-RTE_MACHINE := $(CONFIG_RTE_MACHINE:"%"=%)
-RTE_EXEC_ENV := $(CONFIG_RTE_EXEC_ENV:"%"=%)
-RTE_TOOLCHAIN := $(CONFIG_RTE_TOOLCHAIN:"%"=%)
diff --git a/mk/internal/rte.install-post.mk b/mk/internal/rte.install-post.mk
deleted file mode 100644
index a1aa0ca4ff..0000000000
--- a/mk/internal/rte.install-post.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# install helper .mk
-
-#
-# generate rules to install files in RTE_OUTPUT.
-#
-# arg1: relative install dir in RTE_OUTPUT
-# arg2: relative file name in a source dir (VPATH)
-#
-define install_rule
-$(addprefix $(RTE_OUTPUT)/$(1)/,$(notdir $(2))): $(2)
- @echo " INSTALL-FILE $(addprefix $(1)/,$(notdir $(2)))"
- @[ -d $(RTE_OUTPUT)/$(1) ] || mkdir -p $(RTE_OUTPUT)/$(1)
- $(Q)cp -rf $$(<) $(RTE_OUTPUT)/$(1)
-endef
-
-$(foreach dir,$(INSTALL-DIRS-y),\
- $(foreach file,$(INSTALL-y-$(dir)),\
- $(eval $(call install_rule,$(dir),$(file)))))
-
-
-#
-# generate rules to install symbolic links of files in RTE_OUTPUT.
-#
-# arg1: relative install dir in RTE_OUTPUT
-# arg2: relative file name in a source dir (VPATH)
-#
-define symlink_rule
-$(addprefix $(RTE_OUTPUT)/$(1)/,$(notdir $(2))): $(2)
- @echo " SYMLINK-FILE $(addprefix $(1)/,$(notdir $(2)))"
- @[ -d $(RTE_OUTPUT)/$(1) ] || mkdir -p $(RTE_OUTPUT)/$(1)
- $(Q)ln -nsf `$(RTE_SDK)/buildtools/relpath.sh $$(<) $(RTE_OUTPUT)/$(1)` \
- $(RTE_OUTPUT)/$(1)
-endef
-
-$(foreach dir,$(SYMLINK-DIRS-y),\
- $(foreach file,$(SYMLINK-y-$(dir)),\
- $(eval $(call symlink_rule,$(dir),$(file)))))
-
-
-# fast way, no need to do preinstall and postinstall
-ifeq ($(PREINSTALL)$(POSTINSTALL),)
-
-_postinstall: $(_INSTALL)
- @touch _postinstall
-
-else # slower way
-
-_preinstall: $(PREINSTALL)
- @touch _preinstall
-
-ifneq ($(_INSTALL),)
-$(_INSTALL): _preinstall
-else
-_INSTALL = _preinstall
-endif
-
-_install: $(_INSTALL)
- @touch _install
-
-ifneq ($(POSTINSTALL),)
-$(POSTINSTALL): _install
-else
-POSTINSTALL = _install
-endif
-
-_postinstall: $(POSTINSTALL)
- @touch _postinstall
-endif
diff --git a/mk/internal/rte.install-pre.mk b/mk/internal/rte.install-pre.mk
deleted file mode 100644
index 4786d3b28b..0000000000
--- a/mk/internal/rte.install-pre.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# get all variables starting with "INSTALL-y-", and extract the
-# installation dir and path
-#
-INSTALL-y := $(filter INSTALL-y-%,$(.VARIABLES))
-INSTALL-n := $(filter INSTALL-n-%,$(.VARIABLES))
-INSTALL- := $(filter INSTALL--%,$(.VARIABLES))
-INSTALL-DIRS-y := $(patsubst INSTALL-y-%,%,$(INSTALL-y))
-INSTALL-FILES-y := $(foreach i,$(INSTALL-DIRS-y),\
- $(addprefix $(RTE_OUTPUT)/$(i)/,$(notdir $(INSTALL-y-$(i)))))
-INSTALL-FILES-all := $(foreach i,$(INSTALL-DIRS-y) $(INSTALL-DIRS-n) $(INSTALL-DIRS-),\
- $(addprefix $(RTE_OUTPUT)/$(i)/,$(notdir $(INSTALL-y-$(i)))))
-
-_INSTALL_TARGETS := _preinstall _install _postinstall
-
-#
-# get all variables starting with "SYMLINK-y-", and extract the
-# installation dir and path
-#
-SYMLINK-y := $(filter SYMLINK-y-%,$(.VARIABLES))
-SYMLINK-n := $(filter SYMLINK-n-%,$(.VARIABLES))
-SYMLINK- := $(filter SYMLINK--%,$(.VARIABLES))
-SYMLINK-DIRS-y := $(patsubst SYMLINK-y-%,%,$(SYMLINK-y))
-SYMLINK-FILES-y := $(foreach i,$(SYMLINK-DIRS-y),\
- $(addprefix $(RTE_OUTPUT)/$(i)/,$(notdir $(SYMLINK-y-$(i)))))
-SYMLINK-FILES-all := $(foreach i,$(SYMLINK-DIRS-y) $(SYMLINK-DIRS-n) $(SYMLINK-DIRS-),\
- $(addprefix $(RTE_OUTPUT)/$(i)/,$(notdir $(SYMLINK-y-$(i)))))
-
-_SYMLINK_TARGETS := _presymlink _symlink _postsymlink
diff --git a/mk/machine/armv7a/rte.vars.mk b/mk/machine/armv7a/rte.vars.mk
deleted file mode 100644
index 44ebd68dae..0000000000
--- a/mk/machine/armv7a/rte.vars.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) 2015 RehiveTech. All rights reserved.
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=armv7-a
-
-ifdef CONFIG_RTE_ARCH_ARM_TUNE
-MACHINE_CFLAGS += -mtune=$(CONFIG_RTE_ARCH_ARM_TUNE:"%"=%)
-endif
-
-MACHINE_CFLAGS += -mfpu=neon
diff --git a/mk/machine/armv8a/rte.vars.mk b/mk/machine/armv8a/rte.vars.mk
deleted file mode 100644
index 5e3ffc3adf..0000000000
--- a/mk/machine/armv8a/rte.vars.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=armv8-a+crc
diff --git a/mk/machine/default/rte.vars.mk b/mk/machine/default/rte.vars.mk
deleted file mode 100644
index df08d3b038..0000000000
--- a/mk/machine/default/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=corei7
diff --git a/mk/machine/dpaa/rte.vars.mk b/mk/machine/dpaa/rte.vars.mk
deleted file mode 100644
index 75df626ff2..0000000000
--- a/mk/machine/dpaa/rte.vars.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
-# Copyright 2017 NXP
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-MACHINE_CFLAGS += -march=armv8-a+crc
-
-ifdef CONFIG_RTE_ARCH_ARM_TUNE
-MACHINE_CFLAGS += -mtune=$(CONFIG_RTE_ARCH_ARM_TUNE:"%"=%)
-endif
-
-# To avoid TLS corruption issue.
-MACHINE_CFLAGS += -mtls-dialect=trad
diff --git a/mk/machine/emag/rte.vars.mk b/mk/machine/emag/rte.vars.mk
deleted file mode 100644
index 50342dfa27..0000000000
--- a/mk/machine/emag/rte.vars.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Ampere Computing
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=armv8-a+crc+crypto
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -mtune=emag)
diff --git a/mk/machine/hsw/rte.vars.mk b/mk/machine/hsw/rte.vars.mk
deleted file mode 100644
index 39099e760e..0000000000
--- a/mk/machine/hsw/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=core-avx2
diff --git a/mk/machine/ivb/rte.vars.mk b/mk/machine/ivb/rte.vars.mk
deleted file mode 100644
index 5b6563742a..0000000000
--- a/mk/machine/ivb/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=core-avx-i
diff --git a/mk/machine/n1sdp/rte.vars.mk b/mk/machine/n1sdp/rte.vars.mk
deleted file mode 100644
index 6d69de03c9..0000000000
--- a/mk/machine/n1sdp/rte.vars.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Arm Ltd
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-include $(RTE_SDK)/mk/rte.helper.mk
-
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -march=armv8.2-a+crc+crypto)
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -mcpu=neoverse-n1)
diff --git a/mk/machine/native/rte.vars.mk b/mk/machine/native/rte.vars.mk
deleted file mode 100644
index 8c96e3fa04..0000000000
--- a/mk/machine/native/rte.vars.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=native
-
-# On FreeBSD systems, sometimes the correct CPU type is not picked up.
-# To get everything to compile, we need SSE4.2 support, so check if that is
-# reported by compiler. If not, check if the CPU actually supports it, and if
-# so, set the compilation target to be a corei7, minimum target with SSE4.2.
-SSE42_SUPPORT=$(shell $(CC) -march=native -dM -E - </dev/null | grep SSE4_2)
-ifeq ($(SSE42_SUPPORT),)
- MACHINE_CFLAGS = -march=corei7
-endif
diff --git a/mk/machine/nhm/rte.vars.mk b/mk/machine/nhm/rte.vars.mk
deleted file mode 100644
index 91de5d9bed..0000000000
--- a/mk/machine/nhm/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=corei7
diff --git a/mk/machine/octeontx2/rte.vars.mk b/mk/machine/octeontx2/rte.vars.mk
deleted file mode 100644
index e209cf4920..0000000000
--- a/mk/machine/octeontx2/rte.vars.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-include $(RTE_SDK)/mk/rte.helper.mk
-
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -march=armv8.2-a+crc+crypto+lse)
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -mcpu=octeontx2)
diff --git a/mk/machine/power8/rte.vars.mk b/mk/machine/power8/rte.vars.mk
deleted file mode 100644
index 00e0834b8a..0000000000
--- a/mk/machine/power8/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright (C) IBM Corporation 2014.
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS =
diff --git a/mk/machine/silvermont/rte.vars.mk b/mk/machine/silvermont/rte.vars.mk
deleted file mode 100644
index e4f3fe42bd..0000000000
--- a/mk/machine/silvermont/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=silvermont
diff --git a/mk/machine/snb/rte.vars.mk b/mk/machine/snb/rte.vars.mk
deleted file mode 100644
index efe2f32d70..0000000000
--- a/mk/machine/snb/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=corei7-avx
diff --git a/mk/machine/thunderx/rte.vars.mk b/mk/machine/thunderx/rte.vars.mk
deleted file mode 100644
index 047741668c..0000000000
--- a/mk/machine/thunderx/rte.vars.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=armv8-a+crc+crypto -mcpu=thunderx
diff --git a/mk/machine/thunderx2/rte.vars.mk b/mk/machine/thunderx2/rte.vars.mk
deleted file mode 100644
index b80dc8680c..0000000000
--- a/mk/machine/thunderx2/rte.vars.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-include $(RTE_SDK)/mk/rte.helper.mk
-
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -march=armv8.1-a+crc+crypto)
-MACHINE_CFLAGS += $(call rte_cc_has_argument, -mcpu=thunderx2t99)
diff --git a/mk/machine/wsm/rte.vars.mk b/mk/machine/wsm/rte.vars.mk
deleted file mode 100644
index e9bc3f9848..0000000000
--- a/mk/machine/wsm/rte.vars.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS = -march=corei7 -maes -mpclmul
diff --git a/mk/machine/xgene1/rte.vars.mk b/mk/machine/xgene1/rte.vars.mk
deleted file mode 100644
index e632f3139b..0000000000
--- a/mk/machine/xgene1/rte.vars.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015 Cavium, Inc
-#
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - may override any previously defined variable
-#
-
-# ARCH =
-# CROSS =
-# MACHINE_CFLAGS =
-# MACHINE_LDFLAGS =
-# MACHINE_ASFLAGS =
-# CPU_CFLAGS =
-# CPU_LDFLAGS =
-# CPU_ASFLAGS =
-
-MACHINE_CFLAGS += -march=armv8-a
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
deleted file mode 100644
index a544259970..0000000000
--- a/mk/rte.app.mk
+++ /dev/null
@@ -1,509 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2017 Intel Corporation.
-# Copyright(c) 2014-2015 6WIND S.A.
-
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(APP)
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y)
-_INSTALL += $(RTE_OUTPUT)/app/$(APP) $(RTE_OUTPUT)/app/$(APP).map
-POSTINSTALL += target-appinstall
-_CLEAN = doclean
-POSTCLEAN += target-appclean
-
-ifeq ($(NO_LDSCRIPT),)
-LDSCRIPT = $(RTE_LDSCRIPT)
-endif
-
-# Link only the libraries used in the application
-LDFLAGS += --as-needed
-
-# default path for libs
-_LDLIBS-y += -L$(RTE_SDK_BIN)/lib
-
-#
-# Order is important: from higher level to lower level
-#
-_LDLIBS-$(CONFIG_RTE_LIBRTE_FLOW_CLASSIFY) += -lrte_flow_classify
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PIPELINE) += --whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PIPELINE) += -lrte_pipeline
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PIPELINE) += --no-whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_TABLE) += --whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_TABLE) += -lrte_table
-_LDLIBS-$(CONFIG_RTE_LIBRTE_TABLE) += --no-whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PORT) += --whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PORT) += -lrte_port
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PORT) += --no-whole-archive
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PDUMP) += -lrte_pdump
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += -lrte_distributor
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += -lrte_ip_frag
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METER) += -lrte_meter
-_LDLIBS-$(CONFIG_RTE_LIBRTE_FIB) += -lrte_fib
-_LDLIBS-$(CONFIG_RTE_LIBRTE_RIB) += -lrte_rib
-_LDLIBS-$(CONFIG_RTE_LIBRTE_LPM) += -lrte_lpm
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ACL) += -lrte_acl
-_LDLIBS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += -lrte_jobstats
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += --whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += -lrte_metrics
-ifeq ($(CONFIG_RTE_LIBRTE_TELEMETRY),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += -ljansson
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METRICS) += --no-whole-archive
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BITRATE) += -lrte_bitratestats
-_LDLIBS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS) += -lrte_latencystats
-_LDLIBS-$(CONFIG_RTE_LIBRTE_POWER) += -lrte_power
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_EFD) += -lrte_efd
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BPF) += -lrte_bpf
-ifeq ($(CONFIG_RTE_LIBRTE_BPF_ELF),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BPF) += -lelf
-endif
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IPSEC) += -lrte_ipsec
-
-_LDLIBS-y += --whole-archive
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_CFGFILE) += -lrte_cfgfile
-_LDLIBS-$(CONFIG_RTE_LIBRTE_GRO) += -lrte_gro
-_LDLIBS-$(CONFIG_RTE_LIBRTE_GSO) += -lrte_gso
-_LDLIBS-$(CONFIG_RTE_LIBRTE_HASH) += -lrte_hash
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMBER) += -lrte_member
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lrte_vhost
-_LDLIBS-$(CONFIG_RTE_LIBRTE_KVARGS) += -lrte_kvargs
-_LDLIBS-y += -lrte_telemetry
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MBUF) += -lrte_mbuf
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NET) += -lrte_net
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ETHER) += -lrte_ethdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BBDEV) += -lrte_bbdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += -lrte_cryptodev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SECURITY) += -lrte_security
-_LDLIBS-$(CONFIG_RTE_LIBRTE_COMPRESSDEV) += -lrte_compressdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_REGEXDEV) += -lrte_regexdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += -lrte_eventdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_RAWDEV) += -lrte_rawdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_TIMER) += -lrte_timer
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += -lrte_mempool
-_LDLIBS-$(CONFIG_RTE_LIBRTE_STACK) += -lrte_stack
-_LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_RING) += -lrte_mempool_ring
-_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL) += -lrte_mempool_octeontx2
-_LDLIBS-$(CONFIG_RTE_LIBRTE_RING) += -lrte_ring
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PCI) += -lrte_pci
-_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lrte_eal
-_LDLIBS-$(CONFIG_RTE_LIBRTE_CMDLINE) += -lrte_cmdline
-_LDLIBS-$(CONFIG_RTE_LIBRTE_REORDER) += -lrte_reorder
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lrte_sched
-_LDLIBS-$(CONFIG_RTE_LIBRTE_RCU) += -lrte_rcu
-_LDLIBS-$(CONFIG_RTE_LIBRTE_GRAPH) += -lrte_graph
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NODE) += -lrte_node
-
-ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_KNI) += -lrte_kni
-endif
-
-OTX-CPT-y := $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO)
-OTX-CPT-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO)
-ifeq ($(findstring y,$(OTX-CPT-y)),y)
-_LDLIBS-y += -lrte_common_cpt
-endif
-
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF)$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL),yy)
-_LDLIBS-y += -lrte_common_octeontx
-endif
-OCTEONTX2-y := $(CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV)
-OCTEONTX2-y += $(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD)
-ifeq ($(findstring y,$(OCTEONTX2-y)),y)
-_LDLIBS-y += -lrte_common_octeontx2
-endif
-
-MVEP-y := $(CONFIG_RTE_LIBRTE_MVPP2_PMD)
-MVEP-y += $(CONFIG_RTE_LIBRTE_MVNETA_PMD)
-MVEP-y += $(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO)
-ifneq (,$(findstring y,$(MVEP-y)))
-_LDLIBS-y += -lrte_common_mvep -L$(LIBMUSDK_PATH)/lib -lmusdk
-endif
-
-DPAAX-y := $(CONFIG_RTE_LIBRTE_DPAA_BUS)
-DPAAX-y += $(CONFIG_RTE_LIBRTE_FSLMC_BUS)
-DPAAX-y += $(CONFIG_RTE_LIBRTE_ENETC_PMD)
-DPAAX-y += $(CONFIG_RTE_LIBRTE_PMD_CAAM_JR)
-DPAAX-y += $(CONFIG_RTE_LIBRTE_PFE_PMD)
-ifeq ($(findstring y,$(DPAAX-y)),y)
- _LDLIBS-y += -lrte_common_dpaax
-endif
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PCI_BUS) += -lrte_bus_pci
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VDEV_BUS) += -lrte_bus_vdev
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_BUS) += -lrte_bus_dpaa
-ifeq ($(CONFIG_RTE_EAL_VFIO),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += -lrte_bus_fslmc
-endif
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),n)
-# plugins (link only if static libraries)
-
-_LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_BUCKET) += -lrte_mempool_bucket
-_LDLIBS-$(CONFIG_RTE_DRIVER_MEMPOOL_STACK) += -lrte_mempool_stack
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL) += -lrte_mempool_dpaa
-endif
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL) += -lrte_mempool_dpaa2
-endif
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += -lrte_pmd_af_packet
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_XDP) += -lrte_pmd_af_xdp -lbpf
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += -lrte_pmd_ark
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += -lrte_pmd_atlantic
-_LDLIBS-$(CONFIG_RTE_LIBRTE_AVP_PMD) += -lrte_pmd_avp
-_LDLIBS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += -lrte_pmd_axgbe
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += -lrte_pmd_bnx2x -lz
-_LDLIBS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += -lrte_pmd_bnxt
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += -lrte_pmd_bond
-_LDLIBS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += -lrte_pmd_cxgbe
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += -lrte_pmd_dpaa
-endif
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += -lrte_pmd_dpaa2
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += -lrte_pmd_e1000
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += -lrte_pmd_ena
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += -lrte_pmd_enetc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += -lrte_pmd_enic
-_LDLIBS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += -lrte_pmd_fm10k
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += -lrte_pmd_failsafe
-_LDLIBS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += -lrte_pmd_hinic
-_LDLIBS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += -lrte_pmd_hns3
-_LDLIBS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += -lrte_pmd_i40e
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += -lrte_pmd_iavf
-_LDLIBS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += -lrte_pmd_ice
-IAVF-y := $(CONFIG_RTE_LIBRTE_IAVF_PMD)
-IAVF-y += $(CONFIG_RTE_LIBRTE_ICE_PMD)
-ifeq ($(findstring y,$(IAVF-y)),y)
-_LDLIBS-y += -lrte_common_iavf
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IGC_PMD) += -lrte_pmd_igc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IONIC_PMD) += -lrte_pmd_ionic
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe
-ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_KNI) += -lrte_pmd_kni
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += -lrte_pmd_lio
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_MEMIF) += -lrte_pmd_memif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += -lrte_pmd_mlx4
-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)
-_LDLIBS-y += -lrte_common_mlx5
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += -lrte_pmd_mlx5
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD) += -lrte_pmd_mlx5_vdpa
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += -lrte_pmd_mlx5_regex
-ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
-_LDLIBS-y += -ldl
-else ifeq ($(CONFIG_RTE_IBVERBS_LINK_STATIC),y)
-LIBS_IBVERBS_STATIC = $(shell $(RTE_SDK)/buildtools/options-ibverbs-static.sh)
-_LDLIBS-y += --no-whole-archive
-_LDLIBS-y += $(LIBS_IBVERBS_STATIC)
-_LDLIBS-y += --whole-archive
-else
-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)
-_LDLIBS-y += -libverbs -lmlx5
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += -libverbs -lmlx4
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += -lrte_pmd_mvpp2
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MVNETA_PMD) += -lrte_pmd_mvneta
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += -lrte_pmd_nfp
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += -lrte_pmd_null
-_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX2_PMD) += -lrte_pmd_octeontx2 -lm
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += -lrte_pmd_pcap -lpcap
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += -lrte_pmd_pfe
-_LDLIBS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += -lrte_pmd_qede
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_RING) += -lrte_pmd_ring
-ifeq ($(CONFIG_RTE_LIBRTE_SCHED),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += -lrte_pmd_softnic
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += -lrte_pmd_sfc_efx
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += -lrte_pmd_szedata2 -lsze2
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += -lrte_pmd_nfb
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NFB_PMD) += $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --libs netcope-common)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += -lrte_pmd_tap
-_LDLIBS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += -lrte_pmd_thunderx_nicvf
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD) += -lrte_pmd_vdev_netvsc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += -lrte_pmd_virtio
-ifeq ($(CONFIG_RTE_LIBRTE_VHOST),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_VHOST) += -lrte_pmd_vhost
-ifeq ($(CONFIG_RTE_EAL_VFIO),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IFC_PMD) += -lrte_pmd_ifc
-endif # $(CONFIG_RTE_EAL_VFIO)
-endif # $(CONFIG_RTE_LIBRTE_VHOST)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += -lrte_pmd_vmxnet3_uio
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VMBUS) += -lrte_bus_vmbus
-_LDLIBS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += -lrte_pmd_netvsc
-
-ifeq ($(CONFIG_RTE_LIBRTE_BBDEV),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL) += -lrte_pmd_bbdev_null
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC) += -lrte_pmd_bbdev_fpga_lte_fec
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC) += -lrte_pmd_bbdev_fpga_5gnr_fec
-
-# TURBO SOFTWARE PMD is dependent on the FLEXRAN library
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lrte_pmd_bbdev_turbo_sw
-ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX2),y)
-# Dependency on the FLEXRAN SDK library if available
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_crc -lcrc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_turbo -lturbo
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_rate_matching -lrate_matching
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_common -lcommon
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lirc -limf -lstdc++ -lipps -lsvml
-ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX512),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_LDPC_ratematch_5gnr -lLDPC_ratematch_5gnr
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_ldpc_encoder_5gnr -lldpc_encoder_5gnr
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_ldpc_decoder_5gnr -lldpc_decoder_5gnr
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_rate_dematching_5gnr -lrate_dematching_5gnr
-endif # CONFIG_RTE_BBDEV_SDK_AVX512
-endif # CONFIG_RTE_BBDEV_SDK_AVX2
-endif # CONFIG_RTE_LIBRTE_BBDEV
-
-ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -lrte_pmd_aesni_mb
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -lIPSec_MB
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += -lrte_pmd_aesni_gcm
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += -lIPSec_MB
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += -lrte_pmd_ccp -lcrypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) += -lrte_pmd_openssl -lcrypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += -lrte_pmd_null_crypto
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT_SYM) += -lrte_pmd_qat -lcrypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT_ASYM) += -lrte_pmd_qat -lcrypto
-endif # CONFIG_RTE_LIBRTE_PMD_QAT
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += -lrte_pmd_snow3g
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += -lIPSec_MB
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += -lrte_pmd_kasumi
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += -lIPSec_MB
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += -lrte_pmd_zuc
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ZUC) += -lIPSec_MB
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) += -lrte_pmd_armv8
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO) += -L$(ARMV8_CRYPTO_LIB_PATH) -lAArch64crypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO) += -L$(LIBMUSDK_PATH)/lib -lrte_pmd_mvsam_crypto -lmusdk
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NITROX) += -lrte_pmd_nitrox
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += -lrte_pmd_octeontx_crypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO) += -lrte_pmd_octeontx2_crypto
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER) += -lrte_pmd_crypto_scheduler
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += -lrte_pmd_dpaa2_sec
-endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC) += -lrte_pmd_dpaa_sec
-endif # CONFIG_RTE_LIBRTE_DPAA_BUS
-ifeq ($(CONFIG_RTE_LIBRTE_SECURITY),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CAAM_JR) += -lrte_pmd_caam_jr
-endif # CONFIG_RTE_LIBRTE_SECURITY
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO) += -lrte_pmd_virtio_crypto
-endif # CONFIG_RTE_LIBRTE_CRYPTODEV
-
-ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += -lrte_pmd_isal_comp
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += -lisal
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_ZIPVF) += -lrte_pmd_octeontx_zip
-# Link QAT driver if it has not been linked yet
-ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT_SYM),n)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += -lrte_pmd_qat
-endif # CONFIG_RTE_LIBRTE_PMD_QAT_SYM
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += -lrte_pmd_zlib
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += -lz
-endif # CONFIG_RTE_LIBRTE_COMPRESSDEV
-
-ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += -lrte_pmd_skeleton_event
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += -lrte_pmd_sw_event
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += -lrte_pmd_dsw_event
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += -lrte_pmd_octeontx_ssovf
-ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += -lrte_pmd_dpaa_event
-endif # CONFIG_RTE_LIBRTE_DPAA_BUS
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += -lrte_pmd_dpaa2_event
-endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
-
-_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL) += -lrte_mempool_octeontx
-_LDLIBS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += -lrte_pmd_octeontx
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV) += -lrte_pmd_octeontx2_event
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += -lrte_pmd_opdl_event
-endif # CONFIG_RTE_LIBRTE_EVENTDEV
-
-ifeq ($(CONFIG_RTE_LIBRTE_RAWDEV),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_RAWDEV) += -lrte_rawdev_skeleton
-ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV) += -lrte_rawdev_dpaa2_cmdif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV) += -lrte_rawdev_dpaa2_qdma
-endif # CONFIG_RTE_LIBRTE_FSLMC_BUS
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IFPGA_BUS) += -lrte_bus_ifpga
-ifeq ($(CONFIG_RTE_LIBRTE_IFPGA_BUS),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV) += -lrte_rawdev_ifpga -lfdt
-_LDLIBS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) += -lrte_pmd_ipn3ke
-endif # CONFIG_RTE_LIBRTE_IFPGA_BUS
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += -lrte_rawdev_ioat
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV) += -lrte_rawdev_ntb
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV) += -lrte_rawdev_octeontx2_dma
-_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV) += -lrte_rawdev_octeontx2_ep
-endif # CONFIG_RTE_LIBRTE_RAWDEV
-
-endif # !CONFIG_RTE_BUILD_SHARED_LIBS
-
-_LDLIBS-y += --no-whole-archive
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),n)
-# The static libraries do not know their dependencies.
-# So linking with static library requires explicit dependencies.
-_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lrt
-ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX)$(CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES),yy)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lnuma
-endif
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lm
-_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lrt
-_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMBER) += -lm
-_LDLIBS-$(CONFIG_RTE_LIBRTE_METER) += -lm
-ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y)
-_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lnuma
-endif
-_LDLIBS-$(CONFIG_RTE_PORT_PCAP) += -lpcap
-endif # !CONFIG_RTE_BUILD_SHARED_LIBS
-
-_LDLIBS-y += $(EXECENV_LDLIBS)
-
-LDLIBS += $(_LDLIBS-y) $(CPU_LDLIBS) $(EXTRA_LDLIBS)
-
-# all the words except the first one
-allbutfirst = $(wordlist 2,$(words $(1)),$(1))
-
-# Eliminate duplicates without sorting, only keep the last occurrence
-filter-libs = \
- $(if $(1),$(strip\
- $(if \
- $(and \
- $(filter $(firstword $(1)),$(call allbutfirst,$(1))),\
- $(filter -l%,$(firstword $(1)))),\
- ,\
- $(firstword $(1))) \
- $(call filter-libs,$(call allbutfirst,$(1)))))
-
-LDLIBS := $(call filter-libs,$(LDLIBS))
-
-MAPFLAGS = -Map=$@.map --cref
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-ifeq ($(LINK_USING_CC),1)
-O_TO_EXE = $(CC) -o $@ $(CFLAGS) $(EXTRA_CFLAGS) $(OBJS-y) $(call linkerprefix, \
- $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \
- $(MAPFLAGS))
-else
-O_TO_EXE = $(LD) -o $@ $(OBJS-y) \
- $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \
- $(MAPFLAGS)
-endif
-O_TO_EXE_STR = $(subst ','\'',$(O_TO_EXE)) #'# fix syntax highlight
-O_TO_EXE_DISP = $(if $(V),"$(O_TO_EXE_STR)"," LD $(@)")
-O_TO_EXE_CMD = "cmd_$@ = $(O_TO_EXE_STR)"
-O_TO_EXE_DO = @set -e; \
- echo $(O_TO_EXE_DISP); \
- $(O_TO_EXE) && \
- echo $(O_TO_EXE_CMD) > $(call exe2cmd,$(@))
-
--include .$(APP).cmd
-
-# path where libraries are retrieved
-LDLIBS_PATH := $(subst -Wl$(comma)-L,,$(filter -Wl$(comma)-L%,$(LDLIBS)))
-LDLIBS_PATH += $(subst -L,,$(filter -L%,$(LDLIBS)))
-
-# list of .a files that are linked to this application
-LDLIBS_NAMES := $(patsubst -l%,lib%.a,$(filter -l%,$(LDLIBS)))
-LDLIBS_NAMES += $(patsubst -Wl$(comma)-l%,lib%.a,$(filter -Wl$(comma)-l%,$(LDLIBS)))
-
-# list of found libraries files (useful for deps). If not found, the
-# library is silently ignored and dep won't be checked
-LDLIBS_FILES := $(sort $(wildcard $(foreach dir,$(LDLIBS_PATH),\
- $(addprefix $(dir)/,$(LDLIBS_NAMES)))))
-
-#
-# Compile executable file if needed
-#
-$(APP): $(OBJS-y) $(LDLIBS_FILES) $(DEP_$(APP)) $(LDSCRIPT) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_EXE_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_EXE_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_EXE_DO))
-
-#
-# install app in $(RTE_OUTPUT)/app
-#
-$(RTE_OUTPUT)/app/$(APP): $(APP)
- @echo " INSTALL-APP $(APP)"
- @[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
- $(Q)cp -f $(APP) $(RTE_OUTPUT)/app
-
-#
-# install app map file in $(RTE_OUTPUT)/app
-#
-$(RTE_OUTPUT)/app/$(APP).map: $(APP)
- @echo " INSTALL-MAP $(APP).map"
- @[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
- $(Q)cp -f $(APP).map $(RTE_OUTPUT)/app
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-.PHONY: doclean
-doclean:
- $(Q)rm -rf $(APP) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) $(INSTALL-FILES-all) .$(APP).cmd $(APP).map
-
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-ifneq ($(wildcard $(RTE_SDK)/mk/target/$(RTE_TARGET)/rte.app.mk),)
-include $(RTE_SDK)/mk/target/$(RTE_TARGET)/rte.app.mk
-else
-include $(RTE_SDK)/mk/target/generic/rte.app.mk
-endif
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.bsdmodule.mk b/mk/rte.bsdmodule.mk
deleted file mode 100644
index df8bf9ef35..0000000000
--- a/mk/rte.bsdmodule.mk
+++ /dev/null
@@ -1,89 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-##### if sourced from kernel Kbuild system
-ifneq ($(KERNELRELEASE),)
-override EXTRA_CFLAGS = $(MODULE_CFLAGS) $(EXTRA_KERNEL_CFLAGS)
-obj-m += $(MODULE).o
-ifneq ($(MODULE),$(notdir $(SRCS-y:%.c=%)))
-$(MODULE)-objs += $(notdir $(SRCS-y:%.c=%.o))
-endif
-
-##### if launched from rte build system
-else
-
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# DPDK uses a more up-to-date gcc, so clear the override here.
-unexport CC
-override CFLAGS = $(MODULE_CFLAGS)
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(MODULE).ko
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) \
- $(RTE_OUTPUT)/kmod/$(MODULE).ko
-_CLEAN = doclean
-
-SRCS_LINKS = $(addsuffix _link,$(SRCS-y))
-
-compare = $(strip $(subst $(1),,$(2)) $(subst $(2),,$(1)))
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-# Link all sources in build directory
-%_link: FORCE
- $(if $(call compare,$(notdir $*),$*),\
- $(Q)if [ ! -f $(notdir $(*)) ]; then ln -nfs $(SRCDIR)/$(*) . ; fi,\
- $(Q)if [ ! -f $(notdir $(*)) ]; then ln -nfs $(SRCDIR)/$(*) . ; fi)
-
-# build module
-$(MODULE).ko: $(SRCS_LINKS)
- $(Q)if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
- $(Q)if [ ! -f $(notdir BSDmakefile) ]; then ln -nfs $(SRCDIR)/BSDmakefile . ; fi
- $(Q)MAKEFLAGS= $(BSDMAKE)
-
-# install module in $(RTE_OUTPUT)/kmod
-$(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
- $(Q)echo INSTALL-MODULE $(MODULE).ko
- $(Q)[ -d $(RTE_OUTPUT)/kmod ] || mkdir -p $(RTE_OUTPUT)/kmod
- $(Q)cp -f $(MODULE).ko $(RTE_OUTPUT)/kmod
-
-# install module
-modules_install:
- $(Q)MAKEFLAGS= $(BSDMAKE) install
-
-.PHONY: clean
-clean: _postclean
-
-# do a make clean and remove links
-.PHONY: doclean
-doclean:
- $(Q)if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
- $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
- $(Q)$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
- if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
- $(Q)if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS) \
- $(INSTALL-FILES-all)
-
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
-
-endif
diff --git a/mk/rte.combinedlib.mk b/mk/rte.combinedlib.mk
deleted file mode 100644
index 9d0f935358..0000000000
--- a/mk/rte.combinedlib.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-default: all
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXT:=.so
-else
-EXT:=.a
-endif
-
-RTE_LIBNAME := dpdk
-COMBINEDLIB := lib$(RTE_LIBNAME)$(EXT)
-
-LIBS := $(filter-out $(COMBINEDLIB), $(sort $(notdir $(wildcard $(RTE_OUTPUT)/lib/*$(EXT)))))
-
-all: FORCE
- $(Q)echo "GROUP ( $(LIBS) )" > $(RTE_OUTPUT)/lib/$(COMBINEDLIB)
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean:
- $(Q)rm -f $(RTE_OUTPUT)/lib/$(COMBINEDLIB)
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
deleted file mode 100644
index fa87535312..0000000000
--- a/mk/rte.cpuflags.mk
+++ /dev/null
@@ -1,124 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# this makefile is called from the generic rte.vars.mk and is
-# used to set the RTE_CPUFLAG_* environment variables giving details
-# of what instruction sets the target cpu supports.
-
-AUTO_CPUFLAGS := $(shell $(CC) $(MACHINE_CFLAGS) $(WERROR_FLAGS) $(EXTRA_CFLAGS) -dM -E - < /dev/null)
-
-# adding flags to CPUFLAGS
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSE__),)
-CPUFLAGS += SSE
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSE2__),)
-CPUFLAGS += SSE2
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSE3__),)
-CPUFLAGS += SSE3
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSSE3__),)
-CPUFLAGS += SSSE3
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSE4_1__),)
-CPUFLAGS += SSE4_1
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__SSE4_2__),)
-CPUFLAGS += SSE4_2
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__AES__),)
-CPUFLAGS += AES
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__PCLMUL__),)
-CPUFLAGS += PCLMULQDQ
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__AVX__),)
-ifeq ($(CONFIG_RTE_ENABLE_AVX),y)
-CPUFLAGS += AVX
-endif
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__RDRND__),)
-CPUFLAGS += RDRAND
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__RDSEED__),)
-CPUFLAGS += RDSEED
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__FSGSBASE__),)
-CPUFLAGS += FSGSBASE
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__F16C__),)
-CPUFLAGS += F16C
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__AVX2__),)
-ifeq ($(CONFIG_RTE_ENABLE_AVX),y)
-CPUFLAGS += AVX2
-endif
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__AVX512F__),)
-ifeq ($(CONFIG_RTE_ENABLE_AVX512),y)
-CPUFLAGS += AVX512F
-else
-# disable AVX512F support for GCC & binutils 2.30 as a workaround for Bug 97
-ifeq ($(FORCE_DISABLE_AVX512),y)
-MACHINE_CFLAGS += -mno-avx512f
-endif
-endif
-endif
-
-# IBM Power CPU flags
-ifneq ($(filter $(AUTO_CPUFLAGS),__PPC64__),)
-CPUFLAGS += PPC64
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__PPC32__),)
-CPUFLAGS += PPC32
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__vector),)
-CPUFLAGS += ALTIVEC
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__builtin_vsx_xvnmaddadp),)
-CPUFLAGS += VSX
-endif
-
-# ARM flags
-ifneq ($(filter __ARM_NEON __aarch64__,$(AUTO_CPUFLAGS)),)
-CPUFLAGS += NEON
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__ARM_FEATURE_CRC32),)
-CPUFLAGS += CRC32
-endif
-
-ifneq ($(filter $(AUTO_CPUFLAGS),__ARM_FEATURE_CRYPTO),)
-CPUFLAGS += AES
-CPUFLAGS += PMULL
-CPUFLAGS += SHA1
-CPUFLAGS += SHA2
-endif
-
-MACHINE_CFLAGS += $(addprefix -DRTE_MACHINE_CPUFLAG_,$(CPUFLAGS))
-
-# To strip whitespace
-comma:= ,
-empty:=
-space:= $(empty) $(empty)
-CPUFLAGSTMP1 := $(addprefix RTE_CPUFLAG_,$(CPUFLAGS))
-CPUFLAGSTMP2 := $(subst $(space),$(comma),$(CPUFLAGSTMP1))
-CPUFLAGS_LIST := -DRTE_COMPILE_TIME_CPUFLAGS=$(CPUFLAGSTMP2)
diff --git a/mk/rte.extapp.mk b/mk/rte.extapp.mk
deleted file mode 100644
index 427bb52306..0000000000
--- a/mk/rte.extapp.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-MAKEFLAGS += --no-print-directory
-
-# we must create the output dir first and recall the same Makefile
-# from this directory
-ifeq ($(NOT_FIRST_CALL),)
-
-NOT_FIRST_CALL = 1
-export NOT_FIRST_CALL
-
-all:
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-
-%::
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) $@ \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-else
-include $(RTE_SDK)/mk/rte.app.mk
-endif
diff --git a/mk/rte.extlib.mk b/mk/rte.extlib.mk
deleted file mode 100644
index 977873325d..0000000000
--- a/mk/rte.extlib.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-MAKEFLAGS += --no-print-directory
-
-EXTLIB_BUILD := y
-
-# we must create the output dir first and recall the same Makefile
-# from this directory
-ifeq ($(NOT_FIRST_CALL),)
-
-NOT_FIRST_CALL = 1
-export NOT_FIRST_CALL
-
-all:
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-
-%::
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) $@ \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-else
-include $(RTE_SDK)/mk/rte.lib.mk
-endif
diff --git a/mk/rte.extobj.mk b/mk/rte.extobj.mk
deleted file mode 100644
index c761a5de1e..0000000000
--- a/mk/rte.extobj.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-MAKEFLAGS += --no-print-directory
-
-# we must create the output dir first and recall the same Makefile
-# from this directory
-ifeq ($(NOT_FIRST_CALL),)
-
-NOT_FIRST_CALL = 1
-export NOT_FIRST_CALL
-
-all:
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-
-%::
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) $@ \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-else
-include $(RTE_SDK)/mk/rte.obj.mk
-endif
diff --git a/mk/rte.extshared.mk b/mk/rte.extshared.mk
deleted file mode 100644
index 64269e1a85..0000000000
--- a/mk/rte.extshared.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2012-2013 6WIND S.A.
-
-MAKEFLAGS += --no-print-directory
-
-# we must create the output dir first and recall the same Makefile
-# from this directory
-ifeq ($(NOT_FIRST_CALL),)
-
-NOT_FIRST_CALL = 1
-export NOT_FIRST_CALL
-
-all:
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
- @echo $(RTE_OUTPUT)/lib must be added to /etc/ld.so.conf or \
- LD_LIBRARY_PATH variable to allow binary to link with dynamic library
-
-%::
- $(Q)mkdir -p $(RTE_OUTPUT)
- $(Q)$(MAKE) -C $(RTE_OUTPUT) -f $(RTE_EXTMK) $@ \
- S=$(RTE_SRCDIR) O=$(RTE_OUTPUT) SRCDIR=$(RTE_SRCDIR)
-else
-include $(RTE_SDK)/mk/rte.shared.mk
-endif
diff --git a/mk/rte.extsubdir.mk b/mk/rte.extsubdir.mk
deleted file mode 100644
index 0f8ef94c50..0000000000
--- a/mk/rte.extsubdir.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2014 6WIND S.A.
-
-MAKEFLAGS += --no-print-directory
-
-ALL_DEPDIRS := $(patsubst DEPDIRS-%,%,$(filter DEPDIRS-%,$(.VARIABLES)))
-
-# output directory
-O ?= $(CURDIR)
-BASE_OUTPUT ?= $(abspath $(O))
-CUR_SUBDIR ?= .
-
-.PHONY: all
-all: $(DIRS-y)
-
-.PHONY: clean
-clean: $(DIRS-y)
-
-.PHONY: $(DIRS-y)
-$(DIRS-y):
- @echo "== $@"
- $(Q)$(MAKE) -C $(@) \
- M=$(CURDIR)/$(@)/Makefile \
- O=$(BASE_OUTPUT)/$(CUR_SUBDIR)/$(@)/$(RTE_TARGET) \
- BASE_OUTPUT=$(BASE_OUTPUT) \
- CUR_SUBDIR=$(CUR_SUBDIR)/$(@) \
- S=$(CURDIR)/$(@) \
- $(filter-out $(DIRS-y),$(MAKECMDGOALS))
-
-define depdirs_rule
-$(DEPDIRS-$(1)):
-
-$(1): | $(DEPDIRS-$(1))
-
-$(if $(D),$(info $(1) depends on $(DEPDIRS-$(1))))
-endef
-
-$(foreach dir,$(ALL_DEPDIRS),\
- $(eval $(call depdirs_rule,$(dir))))
diff --git a/mk/rte.gnuconfigure.mk b/mk/rte.gnuconfigure.mk
deleted file mode 100644
index 72e99aafc3..0000000000
--- a/mk/rte.gnuconfigure.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-_BUILD = configure
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y)
-_CLEAN = doclean
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-configure:
- $(Q)cd $(CONFIGURE_PATH) ; \
- ./configure --prefix $(CONFIGURE_PREFIX) $(CONFIGURE_ARGS) ; \
- make ; \
- make install
-
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- $(Q)cd $(CONFIGURE_PATH) ; make clean
- $(Q)rm -f $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.helper.mk b/mk/rte.helper.mk
deleted file mode 100644
index 6e7fd03d7f..0000000000
--- a/mk/rte.helper.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Marvell International Ltd
-
-# rte_cc_has_argument
-# Usage: MACHINE_CFLAGS += $(call rte_cc_has_argument, -mno-avx512f)
-# Return the argument if the argument is supported by the compiler.
-#
-define rte_cc_has_argument
- $(shell $(CC) -E $(1) -xc /dev/null 1>/dev/null 2>/dev/null && echo $(1))
-endef
diff --git a/mk/rte.hostapp.mk b/mk/rte.hostapp.mk
deleted file mode 100644
index 68e32b5780..0000000000
--- a/mk/rte.hostapp.mk
+++ /dev/null
@@ -1,93 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# tell rte.compile-pre.mk to use HOSTCC instead of CC
-USE_HOST := 1
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(HOSTAPP)
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) $(RTE_OUTPUT)/app/$(HOSTAPP)
-_CLEAN = doclean
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-O_TO_EXE = $(HOSTCC) $(HOST_LDFLAGS) $(LDFLAGS_$(@)) \
- $(EXTRA_HOST_LDFLAGS) -o $@ $(OBJS-y) $(LDLIBS)
-O_TO_EXE_STR = $(subst ','\'',$(O_TO_EXE)) #'# fix syntax highlight
-O_TO_EXE_DISP = $(if $(V),"$(O_TO_EXE_STR)"," HOSTLD $(@)")
-O_TO_EXE_CMD = "cmd_$@ = $(O_TO_EXE_STR)"
-O_TO_EXE_DO = @set -e; \
- echo $(O_TO_EXE_DISP); \
- $(O_TO_EXE) && \
- echo $(O_TO_EXE_CMD) > $(call exe2cmd,$(@))
-
--include .$(HOSTAPP).cmd
-
-# list of .a files that are linked to this application
-LDLIBS_FILES := $(sort $(wildcard \
- $(addprefix $(RTE_OUTPUT)/lib/, \
- $(patsubst -l%,lib%.a,$(filter -l%,$(LDLIBS))))))
-
-#
-# Compile executable file if needed
-#
-$(HOSTAPP): $(OBJS-y) $(LDLIBS_FILES) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$@ -> $< " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_EXE_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_EXE_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_EXE_DO))
-
-#
-# install app in $(RTE_OUTPUT)/hostapp
-#
-$(RTE_OUTPUT)/app/$(HOSTAPP): $(HOSTAPP)
- @echo " INSTALL-HOSTAPP $(HOSTAPP)"
- @[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
- $(Q)cp -f $(HOSTAPP) $(RTE_OUTPUT)/app
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-.PHONY: doclean
-doclean:
- $(Q)rm -rf $(HOSTAPP) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) $(INSTALL-FILES-all) .$(HOSTAPP).cmd
-
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.hostlib.mk b/mk/rte.hostlib.mk
deleted file mode 100644
index 0ccaa55f09..0000000000
--- a/mk/rte.hostlib.mk
+++ /dev/null
@@ -1,86 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# tell rte.compile-pre.mk to use HOSTCC instead of CC
-USE_HOST := 1
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(HOSTLIB)
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) $(RTE_OUTPUT)/hostlib/$(HOSTLIB)
-_CLEAN = doclean
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-O_TO_A = $(AR) crus $(HOSTLIB) $(OBJS-y)
-O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight
-O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)"," HOSTAR $(@)")
-O_TO_A_CMD = "cmd_$@ = $(O_TO_A_STR)"
-O_TO_A_DO = @set -e; \
- echo $(O_TO_A_DISP); \
- $(O_TO_A) && \
- echo $(O_TO_A_CMD) > $(call exe2cmd,$(@))
-
--include .$(HOSTLIB).cmd
-
-#
-# Archive objects in .a file if needed
-#
-$(HOSTLIB): $(OBJS-y) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$@ -> $< " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_A_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_A_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_A_DO))
-
-#
-# install lib in $(RTE_OUTPUT)/hostlib
-#
-$(RTE_OUTPUT)/hostlib/$(HOSTLIB): $(HOSTLIB)
- @echo " INSTALL-HOSTLIB $(HOSTLIB)"
- @[ -d $(RTE_OUTPUT)/hostlib ] || mkdir -p $(RTE_OUTPUT)/hostlib
- $(Q)cp -f $(HOSTLIB) $(RTE_OUTPUT)/hostlib
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- $(Q)rm -rf $(HOSTLIB) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) $(INSTALL-FILES-all)
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.install.mk b/mk/rte.install.mk
deleted file mode 100644
index e56daf457c..0000000000
--- a/mk/rte.install.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-# install-only makefile (no build target)
-
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y)
-_CLEAN = doclean
-
-.PHONY: all
-all: _postinstall
- @true
-
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- @rm -rf $(INSTALL-FILES-all)
- @rm -f $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
deleted file mode 100644
index 229ae16814..0000000000
--- a/mk/rte.lib.mk
+++ /dev/null
@@ -1,156 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-EXTLIB_BUILD ?= n
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-LIBABIVER ?= $(shell cat $(RTE_SRCDIR)/ABI_VERSION)
-SOVER := $(basename $(LIBABIVER))
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-SONAME := $(patsubst %.a,%.so.$(SOVER),$(LIB))
-LIB := $(patsubst %.a,%.so.$(LIBABIVER),$(LIB))
-ifeq ($(EXTLIB_BUILD),n)
-CPU_LDFLAGS += --version-script=$(SRCDIR)/$(EXPORT_MAP)
-endif
-endif
-
-
-_BUILD = $(LIB)
-PREINSTALL = $(SYMLINK-FILES-y)
-_INSTALL = $(INSTALL-FILES-y) $(RTE_OUTPUT)/lib/$(LIB)
-_CLEAN = doclean
-
-LDLIBS += $(EXECENV_LDLIBS-y)
-
-.PHONY: all
-all: install
-
-.PHONY: install
-ifeq ($(SYMLINK-FILES-y),)
-install: build _postinstall
-else
-install: _preinstall build _postinstall
-build: _preinstall
-endif
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-ifeq ($(LINK_USING_CC),1)
-# Override the definition of LD here, since we're linking with CC
-LD := $(CC) $(CPU_CFLAGS) $(EXTRA_CFLAGS)
-_CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS))
-override EXTRA_LDFLAGS := $(call linkerprefix,$(EXTRA_LDFLAGS))
-else
-_CPU_LDFLAGS := $(CPU_LDFLAGS)
-endif
-
-O_TO_A = $(AR) crDs $(LIB) $(OBJS-y)
-O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight
-O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)"," AR $(@)")
-O_TO_A_CMD = "cmd_$@ = $(O_TO_A_STR)"
-O_TO_A_DO = @set -e; \
- echo $(O_TO_A_DISP); \
- $(O_TO_A) && \
- echo $(O_TO_A_CMD) > $(call exe2cmd,$(@))
-
-ifneq ($(CC_SUPPORTS_Z),false)
-NO_UNDEFINED := -z defs
-endif
-
-O_TO_S = $(LD) -L$(RTE_SDK_BIN)/lib $(_CPU_LDFLAGS) $(EXTRA_LDFLAGS) \
- -shared $(OBJS-y) $(NO_UNDEFINED) $(LDLIBS) -Wl,-soname,$(SONAME) -o $(LIB)
-O_TO_S_STR = $(subst ','\'',$(O_TO_S)) #'# fix syntax highlight
-O_TO_S_DISP = $(if $(V),"$(O_TO_S_STR)"," LD $(@)")
-O_TO_S_DO = @set -e; \
- echo $(O_TO_S_DISP); \
- $(O_TO_S) && \
- echo $(O_TO_S_CMD) > $(call exe2cmd,$(@))
-
--include .$(LIB).cmd
-
-#
-# Archive objects in .a file if needed
-#
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-$(LIB): $(OBJS-y) $(DEP_$(LIB)) FORCE
-ifeq ($(LIBABIVER),)
- @echo "Must Specify a $(LIB) ABI version"
- @false
-endif
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_S_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_S_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_S_DO))
-
-else
-$(LIB): $(OBJS-y) $(DEP_$(LIB)) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_A_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_A_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_A_DO))
-endif
-
-#
-# install lib in $(RTE_OUTPUT)/lib
-#
-$(RTE_OUTPUT)/lib/$(LIB): $(LIB)
- @echo " INSTALL-LIB $(LIB)"
- @[ -d $(RTE_OUTPUT)/lib ] || mkdir -p $(RTE_OUTPUT)/lib
- $(Q)cp -f $(LIB) $(RTE_OUTPUT)/lib
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
- $(Q)ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so/')
- $(Q)if [ $(SOVER) != $(LIBABIVER) ]; then \
- ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so.$(SOVER)/') ; \
- fi
-endif
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- $(Q)rm -rf $(LIB) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) .$(LIB).cmd $(INSTALL-FILES-all) *.pmd.c *.pmd.o
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.module.mk b/mk/rte.module.mk
deleted file mode 100644
index 1ada528a00..0000000000
--- a/mk/rte.module.mk
+++ /dev/null
@@ -1,86 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-##### if sourced from kernel Kbuild system
-ifneq ($(KERNELRELEASE),)
-override EXTRA_CFLAGS = $(MODULE_CFLAGS) $(EXTRA_KERNEL_CFLAGS)
-obj-m += $(MODULE).o
-ifneq ($(MODULE),$(notdir $(SRCS-y:%.c=%)))
-$(MODULE)-objs += $(notdir $(SRCS-y:%.c=%.o))
-endif
-
-##### if launched from rte build system
-else
-
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(MODULE).ko
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) \
- $(RTE_OUTPUT)/kmod/$(MODULE).ko
-_CLEAN = doclean
-
-SRCS_LINKS = $(addsuffix _link,$(SRCS-y))
-
-compare = $(strip $(subst $(1),,$(2)) $(subst $(2),,$(1)))
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-# Link all sources in build directory
-%_link: FORCE
- $(if $(call compare,$(notdir $*),$*),\
- @if [ ! -f $(notdir $(*)) ]; then ln -nfs $(SRCDIR)/$(*) . ; fi,\
- @if [ ! -f $(notdir $(*)) ]; then ln -nfs $(SRCDIR)/$(*) . ; fi)
-
-# build module
-$(MODULE).ko: $(SRCS_LINKS)
- @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
- @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
- CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
-
-# install module in $(RTE_OUTPUT)/kmod
-$(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko
- @echo INSTALL-MODULE $(MODULE).ko
- @[ -d $(RTE_OUTPUT)/kmod ] || mkdir -p $(RTE_OUTPUT)/kmod
- @cp -f $(MODULE).ko $(RTE_OUTPUT)/kmod
-
-# install module
-modules_install:
- @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
- modules_install
-
-.PHONY: clean
-clean: _postclean
-
-# do a make clean and remove links
-.PHONY: doclean
-doclean:
- @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
- $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
- @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
- if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
- @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
- @rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS) \
- $(INSTALL-FILES-all)
-
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
-
-endif
diff --git a/mk/rte.obj.mk b/mk/rte.obj.mk
deleted file mode 100644
index 1641a52e75..0000000000
--- a/mk/rte.obj.mk
+++ /dev/null
@@ -1,82 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-ifneq ($(OBJ),)
-_BUILD = $(OBJ)
-else
-_BUILD = $(OBJS-y)
-endif
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y)
-_CLEAN = doclean
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-ifneq ($(OBJ),)
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-O_TO_O = $(LD) -r -o $(OBJ) $(OBJS-y)
-O_TO_O_STR = $(subst ','\'',$(O_TO_O)) #'# fix syntax highlight
-O_TO_O_DISP = $(if $(V),"$(O_TO_O_STR)"," LD $(@)")
-O_TO_O_CMD = "cmd_$@ = $(O_TO_O_STR)"
-O_TO_O_DO = @set -e; \
- echo $(O_TO_O_DISP); \
- $(O_TO_O) && \
- echo $(O_TO_O_CMD) > $(call exe2cmd,$(@))
-
--include .$(OBJ).cmd
-
-#
-# Archive objects in .a file if needed
-#
-$(OBJ): $(OBJS-y) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_O_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_O_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_O_DO))
-endif
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- @rm -rf $(OBJ) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) $(INSTALL-FILES-all)
- @rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.sdkbuild.mk b/mk/rte.sdkbuild.mk
deleted file mode 100644
index d1d57b6695..0000000000
--- a/mk/rte.sdkbuild.mk
+++ /dev/null
@@ -1,77 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation
-
-#
-# include rte.vars.mk if config file exists
-#
-ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
- $(error "need a make config first")
-else
- include $(RTE_SDK)/mk/rte.vars.mk
-endif
-
-# allow exec-env specific targets
--include $(RTE_SDK)/mk/exec-env/$(RTE_EXEC_ENV)/rte.custom.mk
-
-buildtools: | lib
-kernel: | lib
-drivers: | lib buildtools
-app: | lib buildtools drivers
-test: | lib buildtools drivers
-
-#
-# build and clean targets
-#
-
-CLEANDIRS = $(addsuffix _clean,$(ROOTDIRS-y) $(ROOTDIRS-n) $(ROOTDIRS-))
-
-.PHONY: build
-build: $(ROOTDIRS-y)
- @echo "Build complete [$(RTE_TARGET)]"
- @echo "==== NOTE ===="
- @echo "It is recommended to build DPDK using 'meson' and 'ninja'"
- @echo "See https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html for instructions"
- @echo "Building DPDK with 'make' will be deprecated in a future release"
- @echo "=============="
-
-.PHONY: clean
-clean: $(CLEANDIRS)
- @rm -rf $(RTE_OUTPUT)/include $(RTE_OUTPUT)/app \
- $(RTE_OUTPUT)/lib \
- $(RTE_OUTPUT)/hostlib $(RTE_OUTPUT)/kmod
- @[ -d $(RTE_OUTPUT)/include ] || mkdir -p $(RTE_OUTPUT)/include
- @$(RTE_SDK)/buildtools/gen-config-h.sh $(RTE_OUTPUT)/.config \
- > $(RTE_OUTPUT)/include/rte_config.h
- $(Q)$(MAKE) -f $(RTE_SDK)/GNUmakefile gcovclean
- @echo Clean complete
-
-.SECONDEXPANSION:
-.PHONY: $(ROOTDIRS-y) $(ROOTDIRS-)
-$(ROOTDIRS-y) $(ROOTDIRS-):
- @[ -d $(BUILDDIR)/$@ ] || mkdir -p $(BUILDDIR)/$@
- @echo "== Build $@"
- $(Q)$(MAKE) S=$@ -f $(RTE_SRCDIR)/$@/Makefile -C $(BUILDDIR)/$@ all
- @if [ $@ = drivers ]; then \
- $(MAKE) -f $(RTE_SDK)/mk/rte.combinedlib.mk; \
- fi
-
-%_clean:
- @echo "== Clean $*"
- $(Q)if [ -f $(RTE_SRCDIR)/$*/Makefile -a -d $(BUILDDIR)/$* ]; then \
- $(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile -C $(BUILDDIR)/$* clean ; \
- fi
-
-RTE_MAKE_SUBTARGET ?= all
-
-%_sub: $(addsuffix _sub,$(*))
- @echo $(addsuffix _sub,$(*))
- @[ -d $(BUILDDIR)/$* ] || mkdir -p $(BUILDDIR)/$*
- @echo "== Build $*"
- $(Q)$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile -C $(BUILDDIR)/$* \
- $(RTE_MAKE_SUBTARGET)
-
-.PHONY: all
-all: build
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk
deleted file mode 100644
index f538649f22..0000000000
--- a/mk/rte.sdkconfig.mk
+++ /dev/null
@@ -1,142 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-.PHONY: showversion
-showversion:
- @cat $(RTE_SRCDIR)/VERSION
-
-.PHONY: showversionum
-showversionum:
- @cat $(RTE_SRCDIR)/VERSION | awk -F '.' '{print $$1$$2}'
-
-INSTALL_CONFIGS := $(sort $(filter-out %app-icc,$(filter-out %app-clang,\
- $(filter-out %app-gcc,$(filter-out %~,\
- $(patsubst $(RTE_SRCDIR)/config/defconfig_%,%,\
- $(wildcard $(RTE_SRCDIR)/config/defconfig_*)))))))
-INSTALL_TARGETS := $(addsuffix _install,$(INSTALL_CONFIGS))
-
-.PHONY: showconfigs
-showconfigs:
- @$(foreach CONFIG, $(INSTALL_CONFIGS), echo $(CONFIG);)
-
-.PHONY: notemplate
-notemplate:
- @printf "No template specified. Use 'make defconfig' or "
- @echo "use T=template from the following list:"
- @$(MAKE) -rR showconfigs | sed 's,^, ,'
-
-.PHONY: defconfig
-defconfig:
- @$(MAKE) config T=$(shell \
- uname -m | awk '{ \
- if ($$0 == "aarch64") { \
- print "arm64-armv8a"} \
- else if ($$0 == "armv7l") { \
- print "arm-armv7a"} \
- else if ($$0 == "ppc64") { \
- print "ppc_64-power8"} \
- else if ($$0 == "amd64") { \
- print "x86_64-native"} \
- else { \
- printf "%s-native", $$0} }' \
- )-$(shell \
- uname | awk '{ \
- if ($$0 == "Linux") { \
- print "linux"} \
- else { \
- print "freebsd"} }' \
- )-$(shell \
- ${CC} --version | grep -o 'cc\|gcc\|icc\|clang' | awk \
- '{ \
- if ($$1 == "cc") { \
- print "gcc" } \
- else { \
- print $$1 } \
- }' \
- )
-
-.PHONY: config
-ifeq ($(RTE_CONFIG_TEMPLATE),)
-config: notemplate
-else
-config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile
- @echo "Configuration done using" \
- $(patsubst defconfig_%,%,$(notdir $(RTE_CONFIG_TEMPLATE)))
-endif
-
-$(RTE_OUTPUT):
- $(Q)mkdir -p $@
-
-ifdef NODOTCONF
-$(RTE_OUTPUT)/.config: ;
-else
-# Generate config from template, if there are duplicates keep only the last.
-# To do so the temp config is checked for duplicate keys with cut/sort/uniq
-# Then for each of those identified duplicates as long as there are more than
-# just one left the last match is removed.
-# Part of the config includes the version information taken from "VERSION"
-# in the repo. This needs to be split into the various parts using sed and awk.
-# To ensure correct version comparison, we append ".99" to the version number
-# so that the version of a release is higher than that of its rc's.
-$(RTE_OUTPUT)/.config: $(RTE_CONFIG_TEMPLATE) FORCE | $(RTE_OUTPUT)
- $(Q)if [ "$(RTE_CONFIG_TEMPLATE)" != "" -a -f "$(RTE_CONFIG_TEMPLATE)" ]; then \
- $(CPP) -undef -P -x assembler-with-cpp \
- `cat $(RTE_SRCDIR)/VERSION | \
- sed -e 's/-rc/.-rc./' -e 's/$$/..99/' | \
- awk -F '.' '{print "-D__YEAR="int($$1), "-D__MONTH="int($$2), "-D__MINOR="int($$3), "-D__SUFFIX=\""$$4"\"", "-D__RELEASE="int($$5)}'` \
- -ffreestanding \
- -o $(RTE_OUTPUT)/.config_tmp $(RTE_CONFIG_TEMPLATE) ; \
- config=$$(cat $(RTE_OUTPUT)/.config_tmp) ; \
- echo "$$config" | awk -F '=' 'BEGIN {i=1} \
- /^#/ {pos[i++]=$$0} \
- !/^#/ {if (!s[$$1]) {pos[i]=$$0; s[$$1]=i++} \
- else {pos[s[$$1]]=$$0}} END \
- {for (j=1; j<i; j++) print pos[j]}' \
- > $(RTE_OUTPUT)/.config_tmp ; \
- if ! cmp -s $(RTE_OUTPUT)/.config_tmp $(RTE_OUTPUT)/.config; then \
- cp $(RTE_OUTPUT)/.config_tmp $(RTE_OUTPUT)/.config ; \
- cp $(RTE_OUTPUT)/.config_tmp $(RTE_OUTPUT)/.config.orig ; \
- fi ; \
- rm -f $(RTE_OUTPUT)/.config_tmp ; \
- else \
- $(MAKE) -rRf $(RTE_SDK)/mk/rte.sdkconfig.mk notemplate; \
- fi
-endif
-
-# generate a Makefile for this build directory
-# use a relative path so it will continue to work even if we move the directory
-SDK_RELPATH=$(shell $(RTE_SDK)/buildtools/relpath.sh $(abspath $(RTE_SRCDIR)) \
- $(abspath $(RTE_OUTPUT)))
-OUTPUT_RELPATH=$(shell $(RTE_SDK)/buildtools/relpath.sh $(abspath $(RTE_OUTPUT)) \
- $(abspath $(RTE_SRCDIR)))
-$(RTE_OUTPUT)/Makefile: | $(RTE_OUTPUT)
- $(Q)$(RTE_SDK)/buildtools/gen-build-mk.sh $(SDK_RELPATH) > $@
-
-# clean installed files, and generate a new config header file
-# if NODOTCONF variable is defined, don't try to rebuild .config
-$(RTE_OUTPUT)/include/rte_config.h: $(RTE_OUTPUT)/.config
- $(Q)rm -rf $(RTE_OUTPUT)/include $(RTE_OUTPUT)/app \
- $(RTE_OUTPUT)/lib \
- $(RTE_OUTPUT)/hostlib $(RTE_OUTPUT)/kmod $(RTE_OUTPUT)/build
- $(Q)mkdir -p $(RTE_OUTPUT)/include
- $(Q)$(RTE_SDK)/buildtools/gen-config-h.sh $(RTE_OUTPUT)/.config \
- > $(RTE_OUTPUT)/include/rte_config.h
-
-# generate the rte_config.h
-.PHONY: headerconfig
-headerconfig: $(RTE_OUTPUT)/include/rte_config.h
- @true
-
-# check that .config is present, and if yes, check that rte_config.h
-# is up to date
-.PHONY: checkconfig
-checkconfig:
- @if [ ! -f $(RTE_OUTPUT)/.config ]; then \
- echo "No .config in build directory"; \
- exit 1; \
- fi
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk \
- headerconfig NODOTCONF=1
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.sdkdepdirs.mk b/mk/rte.sdkdepdirs.mk
deleted file mode 100644
index 7adeb0e11b..0000000000
--- a/mk/rte.sdkdepdirs.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
- $(error "need a make config first")
-endif
-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
- $(error "need a make config first")
-endif
diff --git a/mk/rte.sdkdoc.mk b/mk/rte.sdkdoc.mk
deleted file mode 100644
index fd77e41867..0000000000
--- a/mk/rte.sdkdoc.mk
+++ /dev/null
@@ -1,104 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2015 Intel Corporation.
-# Copyright(c) 2013-2015 6WIND S.A.
-
-ifdef T
-ifeq ("$(origin T)", "command line")
-$(error "Cannot use T= with doc target")
-endif
-endif
-
-RTE_SPHINX_BUILD = sphinx-build
-RTE_PDFLATEX_VERBOSE := --interaction=nonstopmode
-
-ifndef V
-RTE_SPHINX_VERBOSE := -q
-RTE_PDFLATEX_VERBOSE := --interaction=batchmode
-RTE_INKSCAPE_VERBOSE := >/dev/null 2>&1
-endif
-ifeq '$V' '0'
-RTE_SPHINX_VERBOSE := -q
-RTE_PDFLATEX_VERBOSE := --interaction=batchmode
-RTE_INKSCAPE_VERBOSE := >/dev/null 2>&1
-endif
-
-RTE_PDF_DPI ?= 300
-
-RTE_GUIDES := $(filter %/, $(wildcard $(RTE_SDK)/doc/guides/*/))
-
-API_EXAMPLES := $(RTE_OUTPUT)/doc/html/examples.dox
-
-.PHONY: help
-help:
- @cat $(RTE_SDK)/doc/build-sdk-quick.txt
- @$(MAKE) -rR showconfigs | sed 's,^,\t\t\t\t,'
-
-.PHONY: all
-all: api-html guides-html guides-pdf
-
-.PHONY: clean
-clean: api-html-clean guides-html-clean guides-pdf-clean guides-man-clean
-
-.PHONY: api-html
-api-html: $(API_EXAMPLES)
- @echo 'doxygen for API...'
- $(Q)mkdir -p $(RTE_OUTPUT)/doc/html
- $(Q)(sed -e "s|@VERSION@|`$(MAKE) -rRs showversion`|" \
- -e "s|@API_EXAMPLES@|$(API_EXAMPLES)|" \
- -e "s|@OUTPUT@|$(RTE_OUTPUT)/doc|" \
- -e "s|@HTML_OUTPUT@|html/api|" \
- -e "s|@TOPDIR@|./|g" \
- -e "s|@STRIP_FROM_PATH@|./|g" \
- $(RTE_SDK)/doc/api/doxy-api.conf.in)| \
- doxygen -
- $(Q)$(RTE_SDK)/doc/api/doxy-html-custom.sh $(RTE_OUTPUT)/doc/html/api/doxygen.css
-
-.PHONY: api-html-clean
-api-html-clean:
- $(Q)rm -f $(API_EXAMPLES)
- $(Q)rm -rf $(RTE_OUTPUT)/doc/html/api/search
- $(Q)rm -f $(RTE_OUTPUT)/doc/html/api/*
- $(Q)rmdir -p --ignore-fail-on-non-empty $(RTE_OUTPUT)/doc/html/api 2>&- || true
-
-$(API_EXAMPLES): api-html-clean
- $(Q)mkdir -p $(@D)
- $(Q)doc/api/generate_examples.sh examples $(API_EXAMPLES)
-
-guides-pdf-clean: guides-pdf-img-clean
-guides-pdf-img-clean:
- $(Q)rm -f $(RTE_SDK)/doc/guides/*/img/*.pdf
-
-guides-%-clean:
- $(Q)rm -rf $(RTE_OUTPUT)/doc/$*/guides
- $(Q)rmdir -p --ignore-fail-on-non-empty $(RTE_OUTPUT)/doc/$* 2>&- || true
-
-guides-pdf: $(addprefix guides-pdf-, $(notdir $(RTE_GUIDES:/=))) ;
-guides-pdf-%:
- @echo 'sphinx processing $@...'
- $(Q)$(RTE_SPHINX_BUILD) -b latex $(RTE_SPHINX_VERBOSE) \
- -c $(RTE_SDK)/doc/guides $(RTE_SDK)/doc/guides/$* \
- $(RTE_OUTPUT)/doc/pdf/guides/$*
- $(if $^,$(Q)rm -f $^)
- @echo 'pdflatex processing $@...'
- $(Q)$(MAKE) all-pdf -sC $(RTE_OUTPUT)/doc/pdf/guides/$* \
- LATEXOPTS=$(RTE_PDFLATEX_VERBOSE)
- $(Q)mv $(RTE_OUTPUT)/doc/pdf/guides/$*/doc.pdf \
- $(RTE_OUTPUT)/doc/pdf/guides/$*.pdf
-
-guides-html-prepare:
- $(Q)install -D -m0644 $(RTE_SDK)/doc/guides/custom.css \
- $(RTE_OUTPUT)/doc/html/guides/_static/css/custom.css
-
-guides-%-prepare: ;
-
-guides-%: guides-%-prepare
- @echo 'sphinx processing $@...'
- $(Q)$(RTE_SPHINX_BUILD) -b $* $(RTE_SPHINX_VERBOSE) \
- -c $(RTE_SDK)/doc/guides $(RTE_SDK)/doc/guides \
- $(RTE_OUTPUT)/doc/$*/guides
-
-# Each PDF depends on generated images *.pdf from *.svg
-$(foreach guide, $(RTE_GUIDES), $(foreach img, $(wildcard $(guide)img/*.svg), \
- $(eval guides-pdf-$(notdir $(guide:/=)): $(img:svg=pdf))))
-%.pdf: %.svg
- $(Q)inkscape -d $(RTE_PDF_DPI) -D -f $< -A $@ $(RTE_INKSCAPE_VERBOSE)
diff --git a/mk/rte.sdkexamples.mk b/mk/rte.sdkexamples.mk
deleted file mode 100644
index 5eeec36494..0000000000
--- a/mk/rte.sdkexamples.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2014 6WIND S.A.
-
-# examples application are seen as external applications which are
-# not part of SDK.
-BUILDING_RTE_SDK :=
-export BUILDING_RTE_SDK
-
-# Build directory is given with O=
-O ?= $(RTE_SDK)/examples
-
-# Target for which examples should be built.
-T ?= *
-
-# list all available configurations
-EXAMPLES_CONFIGS := $(patsubst $(RTE_SRCDIR)/config/defconfig_%,%,\
- $(wildcard $(RTE_SRCDIR)/config/defconfig_$(T)))
-EXAMPLES_TARGETS := $(addsuffix _examples,\
- $(filter-out %~,$(EXAMPLES_CONFIGS)))
-
-.PHONY: examples
-examples: $(EXAMPLES_TARGETS)
-
-%_examples:
- @echo ================== Build examples for $*
- $(Q)if [ ! -d "${RTE_SDK}/${*}" ]; then \
- echo "Target ${*} does not exist in ${RTE_SDK}/${*}." ; \
- echo -n "Please install DPDK first (make install) or use another " ; \
- echo "target argument (T=target)." ; \
- false ; \
- else \
- $(MAKE) -C examples O=$(abspath $(O)) RTE_TARGET=$(*); \
- fi
-
-EXAMPLES_CLEAN_TARGETS := $(addsuffix _examples_clean,\
- $(filter-out %~,$(EXAMPLES_CONFIGS)))
-
-.PHONY: examples_clean
-examples_clean: $(EXAMPLES_CLEAN_TARGETS)
-
-%_examples_clean:
- @echo ================== Clean examples for $*
- $(Q)if [ ! -d "${RTE_SDK}/${*}" ]; then \
- echo "Target ${*} does not exist in ${RTE_SDK}/${*}." ; \
- echo -n "Please install DPDK first (make install) or use another " ; \
- echo "target argument (T=target)." ; \
- false ; \
- else \
- $(MAKE) -C examples O=$(abspath $(O)) RTE_TARGET=$(*) clean; \
- fi
diff --git a/mk/rte.sdkgcov.mk b/mk/rte.sdkgcov.mk
deleted file mode 100644
index ab528b18b8..0000000000
--- a/mk/rte.sdkgcov.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifdef T
-ifeq ("$(origin T)", "command line")
-$(error "Cannot use T= with gcov target")
-endif
-endif
-
-ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
- $(error "need a make config first")
-else
- include $(RTE_SDK)/mk/rte.vars.mk
-endif
-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
- $(error "need a make config first")
-endif
-
-INPUTDIR = $(RTE_OUTPUT)
-OUTPUTDIR = $(RTE_OUTPUT)/gcov
-
-.PHONY: gcovclean
-gcovclean:
- $(Q)find $(INPUTDIR)/build -name "*.gcno" -o -name "*.gcda" -exec rm {} \;
- $(Q)rm -rf $(OUTPUTDIR)
-
-.PHONY: gcov
-gcov:
- $(Q)for APP in test ; do \
- mkdir -p $(OUTPUTDIR)/$$APP ; cd $(OUTPUTDIR)/$$APP ; \
- for FIC in `strings $(RTE_OUTPUT)/app/$$APP | grep gcda | sed s,gcda,o,` ; do \
- SUBDIR=`basename $$FIC`;\
- mkdir $$SUBDIR ;\
- cd $$SUBDIR ;\
- $(GCOV) $(RTE_OUTPUT)/app/$$APP -o $$FIC > gcov.log; \
- cd - >/dev/null;\
- done ; \
- cd - >/dev/null; \
- done
diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
deleted file mode 100644
index 32bed5d951..0000000000
--- a/mk/rte.sdkinstall.mk
+++ /dev/null
@@ -1,152 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation.
-# Copyright 2015 6WIND S.A.
-
-# Configuration, compilation and installation can be done at once
-# with make install T=<config>
-
-ifdef T # config, build and install combined
-# The build directory is T and may be prepended with O
-O ?= .
-RTE_OUTPUT := $O/$T
-else # standard install
-# Build directory is given with O=
-O ?= build
-RTE_OUTPUT := $O
-endif
-
-ifneq ($(MAKECMDGOALS),pre_install)
-include $(RTE_SDK)/mk/rte.vars.mk
-endif
-
-ifdef T # defaults with T= will install an almost flat staging tree
-export prefix ?=
-kerneldir ?= $(prefix)/kmod
-else
-ifeq ($(RTE_EXEC_ENV),linuxapp)
-RTE_EXEC_ENV=linux
-endif
-ifeq ($(RTE_EXEC_ENV),linux)
-kerneldir ?= $(RTE_KERNELDIR:/build=/extra/dpdk)
-else
-kerneldir ?= /boot/modules
-endif
-prefix ?= /usr/local
-endif
-exec_prefix ?= $(prefix)
-bindir ?= $(exec_prefix)/bin
-sbindir ?= $(exec_prefix)/sbin
-libdir ?= $(exec_prefix)/lib
-includedir ?= $(prefix)/include/dpdk
-datarootdir ?= $(prefix)/share
-docdir ?= $(datarootdir)/doc/dpdk
-datadir ?= $(datarootdir)/dpdk
-mandir ?= $(datarootdir)/man
-sdkdir ?= $(datadir)
-targetdir ?= $(datadir)/$(RTE_TARGET)
-
-# The install directories may be staged in DESTDIR
-
-# Create the directory $1 if not exists
-rte_mkdir = test -d $1 || mkdir -p $1
-
-# Create the relative symbolic link $2 -> $1
-# May be replaced with --relative option of ln from coreutils-8.16
-rte_symlink = ln -snf $$($(RTE_SDK)/buildtools/relpath.sh $1 $(dir $2)) $2
-
-.PHONY: pre_install
-pre_install:
-ifdef T
- $(Q)if [ ! -f $(RTE_OUTPUT)/.config ]; then \
- $(MAKE) config O=$(RTE_OUTPUT); \
- elif cmp -s $(RTE_OUTPUT)/.config.orig $(RTE_OUTPUT)/.config; then \
- $(MAKE) config O=$(RTE_OUTPUT); \
- else \
- if [ -f $(RTE_OUTPUT)/.config.orig ] ; then \
- tmp_build=$(RTE_OUTPUT)/.config.tmp; \
- $(MAKE) config O=$$tmp_build; \
- if ! cmp -s $(RTE_OUTPUT)/.config.orig $$tmp_build/.config ; then \
- echo "Conflict: local config and template config have both changed"; \
- exit 1; \
- fi; \
- fi; \
- echo "Using local configuration"; \
- fi
- $(Q)$(MAKE) all O=$(RTE_OUTPUT)
-endif
-
-.PHONY: install
-install:
-ifeq ($(DESTDIR)$(if $T,,+),)
- @echo Installation cannot run with T defined and DESTDIR undefined
-else
- @echo ================== Installing $(DESTDIR)$(prefix)/
- $(Q)$(MAKE) O=$(RTE_OUTPUT) T= install-runtime
- $(Q)$(MAKE) O=$(RTE_OUTPUT) T= install-kmod
- $(Q)$(MAKE) O=$(RTE_OUTPUT) T= install-sdk
- $(Q)$(MAKE) O=$(RTE_OUTPUT) T= install-doc
- @echo Installation in $(DESTDIR)$(prefix)/ complete
-endif
-
-# when installing we want recursive copies preserving timestamps only, no
-# preservation of user/group ids or permissions
-CP_FLAGS=-dR --preserve=timestamps
-TAR_X_FLAGS=--strip-components=1 --keep-newer-files --no-same-owner --no-same-permissions
-
-install-runtime:
- $(Q)$(call rte_mkdir, $(DESTDIR)$(libdir))
- $(Q)cp $(CP_FLAGS) $O/lib/* $(DESTDIR)$(libdir)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(bindir))
- $(Q)tar -cf - -C $O --exclude 'app/*.map' \
- --exclude app/dpdk-pmdinfogen \
- --exclude 'app/cmdline*' --exclude app/test \
- --exclude app/testacl --exclude app/testpipeline app | \
- tar -xf - -C $(DESTDIR)$(bindir) $(TAR_X_FLAGS)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir)/usertools)
- $(Q)tar -cf - -C $(RTE_SDK) --exclude meson.build usertools | \
- tar -xf - -C $(DESTDIR)$(datadir)/usertools $(TAR_X_FLAGS)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(sbindir))
- $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/usertools/dpdk-devbind.py, \
- $(DESTDIR)$(sbindir)/dpdk-devbind)
- $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/usertools/dpdk-pmdinfo.py, \
- $(DESTDIR)$(bindir)/dpdk-pmdinfo)
-ifneq ($(wildcard $O/doc/man/*/*.1),)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(mandir)/man1)
- $(Q)cp $(CP_FLAGS) $O/doc/man/*/*.1 $(DESTDIR)$(mandir)/man1
-endif
-ifneq ($(wildcard $O/doc/man/*/*.8),)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(mandir)/man8)
- $(Q)cp $(CP_FLAGS) $O/doc/man/*/*.8 $(DESTDIR)$(mandir)/man8
-endif
-
-install-kmod:
-ifneq ($(wildcard $O/kmod/*),)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(kerneldir))
- $(Q)cp $(CP_FLAGS) $O/kmod/* $(DESTDIR)$(kerneldir)
-endif
-
-install-sdk:
- $(Q)$(call rte_mkdir, $(DESTDIR)$(includedir))
- $(Q)tar -chf - -C $O include | \
- tar -xf - -C $(DESTDIR)$(includedir) $(TAR_X_FLAGS)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(sdkdir))
- $(Q)cp $(CP_FLAGS) $(RTE_SDK)/mk $(DESTDIR)$(sdkdir)
- $(Q)cp $(CP_FLAGS) $(RTE_SDK)/buildtools $(DESTDIR)$(sdkdir)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(targetdir)/app)
- $(Q)cp $(CP_FLAGS) $O/.config $(DESTDIR)$(targetdir)
- $(Q)cp $(CP_FLAGS) $O/app/dpdk-pmdinfogen $(DESTDIR)$(targetdir)/app
- $(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
- $(Q)$(call rte_symlink, $(DESTDIR)$(libdir), $(DESTDIR)$(targetdir)/lib)
-
-install-doc:
-ifneq ($(wildcard $O/doc/html),)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(docdir))
- $(Q)tar -cf - -C $O/doc --exclude 'html/guides/.*' html | \
- tar -xf - -C $(DESTDIR)$(docdir) $(TAR_X_FLAGS)
-endif
-ifneq ($(wildcard $O/doc/*/*/*pdf),)
- $(Q)$(call rte_mkdir, $(DESTDIR)$(docdir)/guides)
- $(Q)cp $(CP_FLAGS) $O/doc/*/*/*pdf $(DESTDIR)$(docdir)/guides
-endif
- $(Q)$(call rte_mkdir, $(DESTDIR)$(datadir))
- $(Q)cp $(CP_FLAGS) $(RTE_SDK)/examples $(DESTDIR)$(datadir)
diff --git a/mk/rte.sdkroot.mk b/mk/rte.sdkroot.mk
deleted file mode 100644
index fbee6e96d9..0000000000
--- a/mk/rte.sdkroot.mk
+++ /dev/null
@@ -1,115 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-MAKEFLAGS += --no-print-directory
-
-# define Q to '@' or not. $(Q) is used to prefix all shell commands to
-# be executed silently.
-Q=@
-ifeq '$V' '0'
-override V=
-endif
-ifdef V
-ifeq ("$(origin V)", "command line")
-Q=
-endif
-endif
-export Q
-
-ifeq ($(RTE_SDK),)
-$(error RTE_SDK is not defined)
-endif
-
-RTE_SRCDIR = $(CURDIR)
-export RTE_SRCDIR
-
-BUILDING_RTE_SDK := 1
-export BUILDING_RTE_SDK
-
-#
-# We can specify the configuration template when doing the "make
-# config". For instance: make config T=x86_64-native-linux-gcc
-#
-RTE_CONFIG_TEMPLATE :=
-ifdef T
-ifeq ("$(origin T)", "command line")
-RTE_CONFIG_TEMPLATE := $(RTE_SRCDIR)/config/defconfig_$(T)
-endif
-endif
-export RTE_CONFIG_TEMPLATE
-
-#
-# Default output is $(RTE_SRCDIR)/build
-# output files wil go in a separate directory
-#
-ifdef O
-ifeq ("$(origin O)", "command line")
-RTE_OUTPUT := $(abspath $(O))
-endif
-endif
-RTE_OUTPUT ?= $(RTE_SRCDIR)/build
-export RTE_OUTPUT
-
-# the directory where intermediate build files are stored, like *.o,
-# *.d, *.cmd, ...
-BUILDDIR = $(RTE_OUTPUT)/build
-export BUILDDIR
-
-export ROOTDIRS-y ROOTDIRS- ROOTDIRS-n
-
-.PHONY: default test-build
-default test-build: all
-
-.PHONY: warning
-warning:
- @echo
- @echo "=========================== WARNING ============================"
- @echo "It is recommended to build DPDK using 'meson' and 'ninja'"
- @echo "See https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html"
- @echo "Building DPDK with 'make' will be deprecated in a future release"
- @echo "================================================================"
- @echo
- @test "$(MAKE_PAUSE)" = n || ( \
- echo "This deprecation warning can be passed by adding MAKE_PAUSE=n"; \
- echo "to 'make' command line or as an exported environment variable."; \
- echo "Press enter to continue..."; read junk)
-
-.PHONY: config defconfig showconfigs showversion showversionum
-config: warning
-config defconfig showconfigs showversion showversionum:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk $@
-
-.PHONY: cscope gtags tags etags
-cscope gtags tags etags:
- $(Q)$(RTE_SDK)/devtools/build-tags.sh $@ $T
-
-.PHONY: test test-fast test-perf coverage test-drivers test-dump
-test test-fast test-perf coverage test-drivers test-dump:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdktest.mk $@
-
-.PHONY: install
-install:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk pre_install
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
-install-%:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
-
-.PHONY: doc help
-doc: doc-all
-help: doc-help
-doc-%:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkdoc.mk $*
-
-.PHONY: gcov gcovclean
-gcov gcovclean:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkgcov.mk $@
-
-.PHONY: examples examples_clean
-examples examples_clean:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkexamples.mk $@
-
-# all other build targets
-%:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk checkconfig
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkroot.mk warning
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkbuild.mk $@
diff --git a/mk/rte.sdktest.mk b/mk/rte.sdktest.mk
deleted file mode 100644
index 803018ba3a..0000000000
--- a/mk/rte.sdktest.mk
+++ /dev/null
@@ -1,76 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
- $(error "need a make config first")
-else
- include $(RTE_SDK)/mk/rte.vars.mk
-endif
-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
- $(error "need a make config first")
-endif
-
-DATE := $(shell date '+%Y%m%d-%H%M')
-AUTOTEST_DIR := $(RTE_OUTPUT)/autotest-$(DATE)
-
-DIR := $(shell basename $(RTE_OUTPUT))
-
-#
-# test: launch auto-tests, very simple for now.
-#
-.PHONY: test test-fast test-perf test-drivers test-dump coverage
-
-PERFLIST=ring_perf,mempool_perf,memcpy_perf,hash_perf,timer_perf,\
- reciprocal_division,reciprocal_division_perf,lpm_perf,red_all,\
- barrier,hash_multiwriter,timer_racecond,efd,hash_functions,\
- eventdev_selftest_sw,member_perf,efd_perf,lpm6_perf,red_perf,\
- distributor_perf,ring_pmd_perf,pmd_perf,ring_perf
-DRIVERSLIST=link_bonding,link_bonding_mode4,link_bonding_rssconf,\
- cryptodev_sw_mrvl,cryptodev_dpaa2_sec,cryptodev_dpaa_sec,\
- cryptodev_qat,cryptodev_aesni_mb,cryptodev_openssl,\
- cryptodev_scheduler,cryptodev_aesni_gcm,cryptodev_null,\
- cryptodev_sw_snow3g,cryptodev_sw_kasumi,cryptodev_sw_zuc
-DUMPLIST=dump_struct_sizes,dump_mempool,dump_malloc_stats,dump_devargs,\
- dump_log_types,dump_ring,dump_physmem,dump_memzone
-
-SPACESTR:=
-SPACESTR+=
-STRIPPED_PERFLIST=$(subst $(SPACESTR),,$(PERFLIST))
-STRIPPED_DRIVERSLIST=$(subst $(SPACESTR),,$(DRIVERSLIST))
-STRIPPED_DUMPLIST=$(subst $(SPACESTR),,$(DUMPLIST))
-
-coverage: BLACKLIST=-$(STRIPPED_PERFLIST)
-test-fast: BLACKLIST=-$(STRIPPED_PERFLIST),$(STRIPPED_DRIVERSLIST),$(STRIPPED_DUMPLIST)
-test-perf: WHITELIST=$(STRIPPED_PERFLIST)
-test-drivers: WHITELIST=$(STRIPPED_DRIVERSLIST)
-test-dump: WHITELIST=$(STRIPPED_DUMPLIST)
-
-test test-fast test-perf test-drivers test-dump:
- @mkdir -p $(AUTOTEST_DIR) ; \
- cd $(AUTOTEST_DIR) ; \
- if [ -f $(RTE_OUTPUT)/app/test ]; then \
- python $(RTE_SDK)/app/test/autotest.py \
- $(RTE_OUTPUT)/app/test \
- $(RTE_TARGET) \
- $(BLACKLIST) $(WHITELIST); \
- else \
- echo "No test found, please do a 'make' first, or specify O=" ; \
- fi
-
-# this is a special target to ease the pain of running coverage tests
-# this runs all the autotests, cmdline_test script and dpdk-procinfo
-coverage:
- @mkdir -p $(AUTOTEST_DIR) ; \
- cd $(AUTOTEST_DIR) ; \
- if [ -f $(RTE_OUTPUT)/app/test ]; then \
- python $(RTE_SDK)/test/cmdline_test/cmdline_test.py \
- $(RTE_OUTPUT)/app/cmdline_test; \
- ulimit -S -n 100 ; \
- python $(RTE_SDK)/app/test/autotest.py \
- $(RTE_OUTPUT)/app/test \
- $(RTE_TARGET) \
- $(BLACKLIST) $(WHITELIST) ; \
- $(RTE_OUTPUT)/app/dpdk-procinfo --file-prefix=ring_perf -- -m; \
- else \
- echo "No test found, please do a 'make' first, or specify O=" ;\
- fi
diff --git a/mk/rte.shared.mk b/mk/rte.shared.mk
deleted file mode 100644
index 2b501ddb84..0000000000
--- a/mk/rte.shared.mk
+++ /dev/null
@@ -1,108 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2012-2013 6WIND S.A.
-
-include $(RTE_SDK)/mk/internal/rte.compile-pre.mk
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-# VPATH contains at least SRCDIR
-VPATH += $(SRCDIR)
-
-_BUILD = $(SHARED)
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y) $(RTE_OUTPUT)/lib/$(SHARED)
-_CLEAN = doclean
-
-# Set fPIC in CFLAGS for .so generation
-CFLAGS += -fPIC
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
-
-ifeq ($(LINK_USING_CC),1)
-override EXTRA_LDFLAGS := $(call linkerprefix,$(EXTRA_LDFLAGS))
-O_TO_SO = $(CC) $(call linkerprefix,$(LDFLAGS)) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \
- -shared -o $@ $(OBJS-y) $(call linkerprefix,$(LDLIBS))
-else
-O_TO_SO = $(LD) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \
- -shared -o $@ $(OBJS-y) $(LDLIBS)
-endif
-
-O_TO_SO_STR = $(subst ','\'',$(O_TO_SO)) #'# fix syntax highlight
-O_TO_SO_DISP = $(if $(V),"$(O_TO_SO_STR)"," LD $(@)")
-O_TO_SO_CMD = "cmd_$@ = $(O_TO_SO_STR)"
-O_TO_SO_DO = @set -e; \
- echo $(O_TO_SO_DISP); \
- $(O_TO_SO) && \
- echo $(O_TO_SO_CMD) > $(call exe2cmd,$(@))
-
--include .$(SHARED).cmd
-
-# path where libraries are retrieved
-LDLIBS_PATH := $(subst -Wl$(comma)-L,,$(filter -Wl$(comma)-L%,$(LDLIBS)))
-LDLIBS_PATH += $(subst -L,,$(filter -L%,$(LDLIBS)))
-
-# list of .a files that are linked to this application
-LDLIBS_NAMES := $(patsubst -l%,lib%.a,$(filter -l%,$(LDLIBS)))
-LDLIBS_NAMES += $(patsubst -Wl$(comma)-l%,lib%.a,$(filter -Wl$(comma)-l%,$(LDLIBS)))
-
-# list of found libraries files (useful for deps). If not found, the
-# library is silently ignored and dep won't be checked
-LDLIBS_FILES := $(sort $(wildcard $(foreach dir,$(LDLIBS_PATH),\
- $(addprefix $(dir)/,$(LDLIBS_NAMES)))))
-
-#
-# Archive objects in .so file if needed
-#
-$(SHARED): $(OBJS-y) $(LDLIBS_FILES) $(DEP_$(SHARED)) FORCE
- @[ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(if $(D),\
- @echo -n "$< -> $@ " ; \
- echo -n "file_missing=$(call boolean,$(file_missing)) " ; \
- echo -n "cmdline_changed=$(call boolean,$(call cmdline_changed,$(O_TO_SO_STR))) " ; \
- echo -n "depfile_missing=$(call boolean,$(depfile_missing)) " ; \
- echo "depfile_newer=$(call boolean,$(depfile_newer)) ")
- $(if $(or \
- $(file_missing),\
- $(call cmdline_changed,$(O_TO_SO_STR)),\
- $(depfile_missing),\
- $(depfile_newer)),\
- $(O_TO_SO_DO))
-
-#
-# install lib in $(RTE_OUTPUT)/lib
-#
-$(RTE_OUTPUT)/lib/$(SHARED): $(SHARED)
- @echo " INSTALL-SHARED $(SHARED)"
- @[ -d $(RTE_OUTPUT)/lib ] || mkdir -p $(RTE_OUTPUT)/lib
- $(Q)cp -f $(SHARED) $(RTE_OUTPUT)/lib
-
-#
-# Clean all generated files
-#
-.PHONY: clean
-clean: _postclean
-
-.PHONY: doclean
-doclean:
- $(Q)rm -rf $(SHARED) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
- $(CMDS-all) $(INSTALL-FILES-all)
- $(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-include $(RTE_SDK)/mk/internal/rte.compile-post.mk
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.subdir.mk b/mk/rte.subdir.mk
deleted file mode 100644
index d6e64a2460..0000000000
--- a/mk/rte.subdir.mk
+++ /dev/null
@@ -1,65 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# .mk to build subdirectories
-#
-
-include $(RTE_SDK)/mk/internal/rte.install-pre.mk
-include $(RTE_SDK)/mk/internal/rte.clean-pre.mk
-include $(RTE_SDK)/mk/internal/rte.build-pre.mk
-
-ALL_DEPDIRS := $(patsubst DEPDIRS-%,%,$(filter DEPDIRS-%,$(.VARIABLES)))
-
-CLEANDIRS = $(addsuffix _clean,$(DIRS-y) $(DIRS-n) $(DIRS-))
-
-VPATH += $(SRCDIR)
-_BUILD = $(DIRS-y)
-_INSTALL = $(INSTALL-FILES-y) $(SYMLINK-FILES-y)
-_CLEAN = $(CLEANDIRS)
-
-.PHONY: all
-all: install
-
-.PHONY: install
-install: build _postinstall
-
-_postinstall: build
-
-.PHONY: build
-build: _postbuild
-
-.SECONDEXPANSION:
-.PHONY: $(DIRS-y)
-$(DIRS-y):
- @[ -d $(CURDIR)/$@ ] || mkdir -p $(CURDIR)/$@
- @echo "== Build $S/$@"
- @$(MAKE) S=$S/$@ -f $(SRCDIR)/$@/Makefile -C $(CURDIR)/$@ all
-
-.PHONY: clean
-clean: _postclean
-
-%_clean:
- @echo "== Clean $S/$*"
- @if [ -f $(SRCDIR)/$*/Makefile -a -d $(CURDIR)/$* ]; then \
- $(MAKE) S=$S/$* -f $(SRCDIR)/$*/Makefile -C $(CURDIR)/$* clean ; \
- fi
- @rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
-
-define depdirs_rule
-$(DEPDIRS-$(1)):
-
-$(1): | $(DEPDIRS-$(1))
-
-$(if $(D),$(info $(1) depends on $(DEPDIRS-$(1))))
-endef
-
-$(foreach dir,$(ALL_DEPDIRS),\
- $(eval $(call depdirs_rule,$(dir))))
-
-include $(RTE_SDK)/mk/internal/rte.install-post.mk
-include $(RTE_SDK)/mk/internal/rte.clean-post.mk
-include $(RTE_SDK)/mk/internal/rte.build-post.mk
-
-.PHONY: FORCE
-FORCE:
diff --git a/mk/rte.vars.mk b/mk/rte.vars.mk
deleted file mode 100644
index 07b0db127f..0000000000
--- a/mk/rte.vars.mk
+++ /dev/null
@@ -1,102 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# To be included at the beginning of all RTE user Makefiles. This
-# .mk will define the RTE environment variables by including the
-# config file of SDK. It also includes the config file from external
-# application if any.
-#
-
-ifeq ($(RTE_SDK),)
-$(error RTE_SDK is not defined)
-endif
-ifeq ($(wildcard $(RTE_SDK)),)
-$(error RTE_SDK variable points to an invalid location)
-endif
-
-# define Q to '@' or not. $(Q) is used to prefix all shell commands to
-# be executed silently.
-Q=@
-ifeq '$V' '0'
-override V=
-endif
-ifdef V
-ifeq ("$(origin V)", "command line")
-Q=
-endif
-endif
-export Q
-
-# if we are building SDK, only includes SDK configuration
-ifneq ($(BUILDING_RTE_SDK),)
- include $(RTE_OUTPUT)/.config
- # remove double-quotes from config names
- RTE_ARCH := $(CONFIG_RTE_ARCH:"%"=%)
- RTE_MACHINE := $(CONFIG_RTE_MACHINE:"%"=%)
- RTE_EXEC_ENV := $(CONFIG_RTE_EXEC_ENV:"%"=%)
- RTE_TOOLCHAIN := $(CONFIG_RTE_TOOLCHAIN:"%"=%)
- RTE_SDK_BIN := $(RTE_OUTPUT)
-endif
-
-RTE_TARGET ?= $(RTE_ARCH)-$(RTE_MACHINE)-$(RTE_EXEC_ENV)-$(RTE_TOOLCHAIN)
-
-ifeq ($(BUILDING_RTE_SDK),)
-# if we are building an external app/lib, include internal/rte.extvars.mk that will
-# define RTE_OUTPUT, RTE_SRCDIR, RTE_EXTMK, RTE_SDK_BIN, (etc ...)
-include $(RTE_SDK)/mk/internal/rte.extvars.mk
-endif
-
-CONFIG_RTE_LIBRTE_E1000_PMD = $(CONFIG_RTE_LIBRTE_IGB_PMD)
-ifneq ($(CONFIG_RTE_LIBRTE_E1000_PMD),y)
- CONFIG_RTE_LIBRTE_E1000_PMD = $(CONFIG_RTE_LIBRTE_EM_PMD)
-endif
-
-ifeq ($(RTE_ARCH),)
-$(error RTE_ARCH is not defined)
-endif
-
-ifeq ($(RTE_MACHINE),)
-$(error RTE_MACHINE is not defined)
-endif
-
-ifeq ($(RTE_EXEC_ENV),)
-$(error RTE_EXEC_ENV is not defined)
-endif
-
-ifeq ($(RTE_TOOLCHAIN),)
-$(error RTE_TOOLCHAIN is not defined)
-endif
-
-# can be overridden by make command line or exported environment variable
-RTE_KERNELDIR ?= /lib/modules/$(shell uname -r)/build
-
-export RTE_TARGET
-export RTE_ARCH
-export RTE_MACHINE
-export RTE_EXEC_ENV
-export RTE_TOOLCHAIN
-
-# developer build automatically enabled in a git tree
-ifneq ($(wildcard $(RTE_SDK)/.git),)
-RTE_DEVEL_BUILD ?= y
-endif
-
-# SRCDIR is the current source directory
-ifdef S
-SRCDIR := $(abspath $(RTE_SRCDIR)/$(S))
-else
-SRCDIR := $(RTE_SRCDIR)
-endif
-
-# helper: return y if option is set to y, else return an empty string
-testopt = $(if $(strip $(subst y,,$(1)) $(subst $(1),,y)),,y)
-
-# helper: return an empty string if option is set, else return y
-not = $(if $(strip $(subst y,,$(1)) $(subst $(1),,y)),,y)
-
-ifneq ($(wildcard $(RTE_SDK)/mk/target/$(RTE_TARGET)/rte.vars.mk),)
-include $(RTE_SDK)/mk/target/$(RTE_TARGET)/rte.vars.mk
-else
-include $(RTE_SDK)/mk/target/generic/rte.vars.mk
-endif
diff --git a/mk/target/generic/rte.app.mk b/mk/target/generic/rte.app.mk
deleted file mode 100644
index ed82656f18..0000000000
--- a/mk/target/generic/rte.app.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# define Makefile targets that are specific to an environment.
-#
-include $(RTE_SDK)/mk/exec-env/$(RTE_EXEC_ENV)/rte.app.mk
-
-.PHONY: exec-env-appinstall
-target-appinstall: exec-env-appinstall
-
-.PHONY: exec-env-appclean
-target-appclean: exec-env-appclean
diff --git a/mk/target/generic/rte.vars.mk b/mk/target/generic/rte.vars.mk
deleted file mode 100644
index 11b0418e55..0000000000
--- a/mk/target/generic/rte.vars.mk
+++ /dev/null
@@ -1,132 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# This .mk is the generic target rte.var.mk ; it includes .mk for
-# the specified machine, architecture, toolchain (compiler) and
-# executive environment.
-#
-
-#
-# toolchain:
-#
-# - define CC, LD, AR, AS, ...
-# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value)
-# - may override any previously defined variable
-#
-include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.vars.mk
-
-#
-# machine:
-#
-# - can define ARCH variable (overridden by cmdline value)
-# - can define CROSS variable (overridden by cmdline value)
-# - define MACHINE_CFLAGS variable (overridden by cmdline value)
-# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
-# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
-# - can define CPU_CFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
-# overrides the one defined in arch.
-#
-ifneq ($(wildcard $(RTE_SDK)/mk/machine/$(RTE_MACHINE)/rte.vars.mk),)
-include $(RTE_SDK)/mk/machine/$(RTE_MACHINE)/rte.vars.mk
-else
-MACHINE_CFLAGS := -march=$(RTE_MACHINE)
-endif
-
-#
-# arch:
-#
-# - define ARCH variable (overridden by cmdline or by previous
-# optional define in machine .mk)
-# - define CROSS variable (overridden by cmdline or previous define
-# in machine .mk)
-# - define CPU_CFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_LDFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - define CPU_ASFLAGS variable (overridden by cmdline or previous
-# define in machine .mk)
-# - may override any previously defined variable
-#
-include $(RTE_SDK)/mk/arch/$(RTE_ARCH)/rte.vars.mk
-
-#
-# exec-env:
-#
-# - define EXECENV_CFLAGS variable (overridden by cmdline)
-# - define EXECENV_LDFLAGS variable (overridden by cmdline)
-# - define EXECENV_ASFLAGS variable (overridden by cmdline)
-# - may override any previously defined variable
-#
-include $(RTE_SDK)/mk/exec-env/$(RTE_EXEC_ENV)/rte.vars.mk
-
-# Don't set CFLAGS/LDFLAGS flags for kernel module, all flags are
-# provided by Kbuild framework.
-ifeq ($(KERNELRELEASE),)
-
-# now that the environment is mostly set up, including the machine type we will
-# be passing to the compiler, set up the specific CPU flags based on that info.
-include $(RTE_SDK)/mk/rte.cpuflags.mk
-
-# merge all CFLAGS
-CFLAGS := $(CPU_CFLAGS) $(EXECENV_CFLAGS) $(TOOLCHAIN_CFLAGS) $(MACHINE_CFLAGS)
-CFLAGS += $(TARGET_CFLAGS)
-
-# merge all LDFLAGS
-LDFLAGS := $(CPU_LDFLAGS) $(EXECENV_LDFLAGS) $(TOOLCHAIN_LDFLAGS) $(MACHINE_LDFLAGS)
-LDFLAGS += $(TARGET_LDFLAGS)
-
-# merge all ASFLAGS
-ASFLAGS := $(CPU_ASFLAGS) $(EXECENV_ASFLAGS) $(TOOLCHAIN_ASFLAGS) $(MACHINE_ASFLAGS)
-ASFLAGS += $(TARGET_ASFLAGS)
-
-# add default include and lib paths
-CFLAGS += -I$(RTE_OUTPUT)/include
-LDFLAGS += -L$(RTE_OUTPUT)/lib
-
-# add in flag for supporting function versioning. The define is used in meson
-# builds to ensure that the user has properly flagged the unit in question as
-# using function versioning so it can be built twice - once for static lib and
-# then a second time for the shared lib. Since make only builds one library
-# type at a time, such precautions aren't necessary, so we can globally define
-# the flag
-CFLAGS += -DRTE_USE_FUNCTION_VERSIONING
-
-# always include rte_config.h: the one in $(RTE_OUTPUT)/include is
-# the configuration of SDK when $(BUILDING_RTE_SDK) is true, or the
-# configuration of the application if $(BUILDING_RTE_SDK) is not
-# defined.
-ifeq ($(BUILDING_RTE_SDK),1)
-# building sdk
-CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-CFLAGS += -DALLOW_INTERNAL_API
-else
-# if we are building an external application, include SDK's lib and
-# includes too
-CFLAGS += -I$(RTE_SDK_BIN)/include
-ifneq ($(wildcard $(RTE_OUTPUT)/include/rte_config.h),)
-CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
-endif
-CFLAGS += -include $(RTE_SDK_BIN)/include/rte_config.h
-LDFLAGS += -L$(RTE_SDK_BIN)/lib
-endif
-
-# always define _GNU_SOURCE
-CFLAGS += -D_GNU_SOURCE
-
-# define __BSD_VISIBLE when building for FreeBSD
-ifeq ($(CONFIG_RTE_EXEC_ENV_FREEBSD),y)
-CFLAGS += -D__BSD_VISIBLE
-endif
-
-export CFLAGS
-export LDFLAGS
-
-endif
diff --git a/mk/toolchain/clang/rte.toolchain-compat.mk b/mk/toolchain/clang/rte.toolchain-compat.mk
deleted file mode 100644
index e6189b498d..0000000000
--- a/mk/toolchain/clang/rte.toolchain-compat.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# CPUID-related options
-#
-# This was added to support compiler versions which might not support all the
-# flags we need
-#
-
-# find out CLANG version
-
-CLANG_VERSION := $(shell $(CC) -v 2>&1 | \
- sed -n "s/.*version \([0-9]*\.[0-9]*\).*/\1/p")
-
-CLANG_MAJOR_VERSION := $(shell echo $(CLANG_VERSION) | cut -f1 -d.)
-
-CLANG_MINOR_VERSION := $(shell echo $(CLANG_VERSION) | cut -f2 -d.)
-
-ifeq ($(shell test $(CLANG_MAJOR_VERSION)$(CLANG_MINOR_VERSION) -lt 35 && echo 1), 1)
- CC_SUPPORTS_Z := false
-endif
diff --git a/mk/toolchain/clang/rte.vars.mk b/mk/toolchain/clang/rte.vars.mk
deleted file mode 100644
index d441f6d8f3..0000000000
--- a/mk/toolchain/clang/rte.vars.mk
+++ /dev/null
@@ -1,60 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# toolchain:
-#
-# - define CC, LD, AR, AS, ... (overridden by cmdline value)
-# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value)
-#
-
-CC = $(CROSS)clang
-KERNELCC = $(CROSS)gcc
-CPP = $(CROSS)cpp
-# for now, we don't use as but nasm.
-# AS = $(CROSS)as
-AS = nasm
-AR = $(CROSS)ar
-LD = $(CROSS)ld
-OBJCOPY = $(CROSS)objcopy
-OBJDUMP = $(CROSS)objdump
-STRIP = $(CROSS)strip
-READELF = $(CROSS)readelf
-GCOV = $(CROSS)gcov
-
-ifeq ("$(origin CC)", "command line")
-HOSTCC = $(CC)
-else
-HOSTCC = clang
-endif
-HOSTAS = as
-
-TOOLCHAIN_ASFLAGS =
-TOOLCHAIN_CFLAGS =
-TOOLCHAIN_LDFLAGS =
-
-WERROR_FLAGS := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
-WERROR_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith
-WERROR_FLAGS += -Wnested-externs -Wcast-qual
-WERROR_FLAGS += -Wformat-nonliteral -Wformat-security
-WERROR_FLAGS += -Wundef -Wwrite-strings -Wdeprecated
-
-ifeq ($(RTE_DEVEL_BUILD),y)
-WERROR_FLAGS += -Werror
-endif
-
-# process cpu flags
-include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk
-
-# disable warning for non-initialised fields
-WERROR_FLAGS += -Wno-missing-field-initializers
-
-# disable packed member unalign warnings
-ifeq ($(shell test $(CLANG_MAJOR_VERSION) -ge 4 && echo 1), 1)
-WERROR_FLAGS += -Wno-address-of-packed-member
-endif
-
-export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
-export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS
diff --git a/mk/toolchain/gcc/rte.toolchain-compat.mk b/mk/toolchain/gcc/rte.toolchain-compat.mk
deleted file mode 100644
index 98dca3e786..0000000000
--- a/mk/toolchain/gcc/rte.toolchain-compat.mk
+++ /dev/null
@@ -1,120 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# CPUID-related options
-#
-# This was added to support compiler versions which might not support all the
-# flags we need
-#
-
-#find out GCC version
-
-GCC_MAJOR = $(shell echo __GNUC__ | $(CC) -E -x c - | tail -n 1)
-GCC_MINOR = $(shell echo __GNUC_MINOR__ | $(CC) -E -x c - | tail -n 1)
-GCC_PATCHLEVEL = $(shell echo __GNUC_PATCHLEVEL__ | $(CC) -E -x c - | tail -n 1)
-GCC_VERSION = $(GCC_MAJOR)$(GCC_MINOR)
-
-HOST_GCC_MAJOR = $(shell echo __GNUC__ | $(HOSTCC) -E -x c - | tail -n 1)
-HOST_GCC_MINOR = $(shell echo __GNUC_MINOR__ | $(HOSTCC) -E -x c - | tail -n 1)
-HOST_GCC_PATCHLEVEL = $(shell echo __GNUC_PATCHLEVEL__ | $(HOSTCC) -E -x c - | tail -n 1)
-HOST_GCC_VERSION = $(HOST_GCC_MAJOR)$(HOST_GCC_MINOR)
-
-LD_VERSION = $(shell $(LD) -v)
-# disable AVX512F support for GCC & binutils 2.30 as a workaround for Bug 97
-ifeq ($(CONFIG_RTE_ARCH_X86), y)
-ifneq ($(filter 2.30%,$(LD_VERSION)),)
-FORCE_DISABLE_AVX512 := y
-# print warning only once for librte_eal
-ifneq ($(filter %librte_eal,$(CURDIR)),)
-$(warning AVX512 support disabled because of binutils 2.30. See Bug 97)
-endif
-endif
-ifneq ($(filter 2.31%,$(LD_VERSION)),)
-FORCE_DISABLE_AVX512 := y
-# print warning only once for librte_eal
-ifneq ($(filter %librte_eal,$(CURDIR)),)
-$(warning AVX512 support disabled because of binutils 2.31. See Bug 249)
-endif
-endif
-endif
-
-# if GCC is older than 4.x
-ifeq ($(shell test $(GCC_VERSION) -lt 40 && echo 1), 1)
- MACHINE_CFLAGS =
-$(warning You are using GCC < 4.x. This is neither supported, nor tested.)
-
-
-else
-# GCC graceful degradation
-# GCC 4.2.x - added support for generic target
-# GCC 4.3.x - added support for core2, ssse3, sse4.1, sse4.2
-# GCC 4.4.x - added support for avx, aes, pclmul
-# GCC 4.5.x - added support for atom
-# GCC 4.6.x - added support for corei7, corei7-avx
-# GCC 4.7.x - added support for fsgsbase, rdrnd, f16c, core-avx-i, core-avx2
-# GCC 4.9.x - added support for armv8-a+crc
-#
- ifeq ($(shell test $(GCC_VERSION) -le 49 && echo 1), 1)
- MACHINE_CFLAGS := $(patsubst -march=armv8-a+crc,-march=armv8-a+crc -D__ARM_FEATURE_CRC32=1,$(MACHINE_CFLAGS))
- MACHINE_CFLAGS := $(patsubst -march=armv8-a+crc+crypto,-march=armv8-a+crc+crypto -D__ARM_FEATURE_CRC32=1,$(MACHINE_CFLAGS))
- endif
- ifeq ($(shell test $(GCC_VERSION) -le 47 && echo 1), 1)
- MACHINE_CFLAGS := $(patsubst -march=core-avx-i,-march=corei7-avx,$(MACHINE_CFLAGS))
- MACHINE_CFLAGS := $(patsubst -march=core-avx2,-march=core-avx2,$(MACHINE_CFLAGS))
- endif
- ifeq ($(shell test $(GCC_VERSION) -lt 46 && echo 1), 1)
- MACHINE_CFLAGS := $(patsubst -march=corei7-avx,-march=core2 -maes -mpclmul -mavx,$(MACHINE_CFLAGS))
- MACHINE_CFLAGS := $(patsubst -march=corei7,-march=core2 -maes -mpclmul,$(MACHINE_CFLAGS))
- endif
- ifeq ($(shell test $(GCC_VERSION) -lt 45 && echo 1), 1)
- MACHINE_CFLAGS := $(patsubst -march=atom,-march=core2 -mssse3,$(MACHINE_CFLAGS))
- endif
- ifeq ($(shell test $(GCC_VERSION) -lt 44 && echo 1), 1)
- MACHINE_CFLAGS := $(filter-out -mavx -mpclmul -maes,$(MACHINE_CFLAGS))
- ifneq ($(findstring SSE4_2, $(CPUFLAGS)),)
- MACHINE_CFLAGS += -msse4.2
- endif
- ifneq ($(findstring SSE4_1, $(CPUFLAGS)),)
- MACHINE_CFLAGS += -msse4.1
- endif
- endif
- ifeq ($(shell test $(GCC_VERSION) -lt 43 && echo 1), 1)
- MACHINE_CFLAGS := $(filter-out -msse% -mssse%,$(MACHINE_CFLAGS))
- MACHINE_CFLAGS := $(patsubst -march=core2,-march=generic,$(MACHINE_CFLAGS))
- MACHINE_CFLAGS += -msse3
- endif
- ifeq ($(shell test $(GCC_VERSION) -lt 42 && echo 1), 1)
- MACHINE_CFLAGS := $(filter-out -march% -mtune% -msse%,$(MACHINE_CFLAGS))
- endif
-
- ifeq ($(shell test $(GCC_VERSION) -lt 74 && echo 1), 1)
- CONFIG_RTE_ENABLE_LTO=n
- endif
-
- # Disable thunderx PMD for gcc < 4.7
- ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
- CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=d
- endif
-
- # Disable OPDL PMD for gcc < 4.7
- ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
- CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV=d
- endif
-
- # Disable OCTEON drivers and libs for arm64 gcc < 4.8.6
- ifeq ($(RTE_ARCH), arm64)
- ifeq ($(shell test $(GCC_VERSION)$(GCC_PATCHLEVEL) -lt 486 && echo 1), 1)
- CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=d
- CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL=d
- CONFIG_RTE_LIBRTE_OCTEONTX_PMD=d
- CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_DMA_RAWDEV=d
- CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EP_RAWDEV=d
- CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_EVENTDEV=d
- CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO=d
- CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL=d
- CONFIG_RTE_LIBRTE_OCTEONTX2_PMD=d
- endif
- endif
-
-endif
diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
deleted file mode 100644
index 928f0e0830..0000000000
--- a/mk/toolchain/gcc/rte.vars.mk
+++ /dev/null
@@ -1,109 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# toolchain:
-#
-# - define CC, LD, AR, AS, ... (overridden by cmdline value)
-# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value)
-#
-
-CC = $(CROSS)gcc
-KERNELCC = $(CROSS)gcc
-CPP = $(CROSS)cpp
-# for now, we don't use as but nasm.
-# AS = $(CROSS)as
-AS = nasm
-AR = $(CROSS)ar
-LD = $(CROSS)ld
-OBJCOPY = $(CROSS)objcopy
-OBJDUMP = $(CROSS)objdump
-STRIP = $(CROSS)strip
-READELF = $(CROSS)readelf
-GCOV = $(CROSS)gcov
-
-ifeq ("$(origin CC)", "command line")
-HOSTCC = $(CC)
-else
-HOSTCC = gcc
-endif
-HOSTAS = as
-
-TOOLCHAIN_ASFLAGS =
-TOOLCHAIN_CFLAGS =
-TOOLCHAIN_LDFLAGS =
-
-ifeq ($(CONFIG_RTE_LIBRTE_GCOV),y)
-TOOLCHAIN_CFLAGS += --coverage
-TOOLCHAIN_LDFLAGS += --coverage
-ifeq (,$(findstring -O0,$(EXTRA_CFLAGS)))
- $(warning "EXTRA_CFLAGS doesn't contains -O0, coverage will be inaccurate with optimizations enabled")
-endif
-endif
-
-WERROR_FLAGS := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
-WERROR_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith
-WERROR_FLAGS += -Wcast-align -Wnested-externs -Wcast-qual
-WERROR_FLAGS += -Wformat-nonliteral -Wformat-security
-WERROR_FLAGS += -Wundef -Wwrite-strings -Wdeprecated
-
-ifeq ($(RTE_DEVEL_BUILD),y)
-WERROR_FLAGS += -Werror
-endif
-
-# There are many issues reported for strict alignment architectures
-# which are not necessarily fatal. Report as warnings.
-ifeq ($(CONFIG_RTE_ARCH_STRICT_ALIGN),y)
-WERROR_FLAGS += -Wno-error=cast-align
-endif
-
-# process cpu flags
-include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk
-
-ifeq ($(CONFIG_RTE_ENABLE_LTO),y)
-# 'fat-lto' is used since pmdinfogen needs to have 'this_pmd_nameX'
-# exported in symbol table and without this option only internal
-# representation is present.
-TOOLCHAIN_CFLAGS += -flto -ffat-lto-objects
-TOOLCHAIN_LDFLAGS += -flto
-# workaround for GCC bug 81440
-ifeq ($(shell test $(GCC_VERSION) -lt 80 && echo 1), 1)
-WERROR_FLAGS += -Wno-lto-type-mismatch
-endif
-endif
-
-# disable warning for non-initialised fields
-WERROR_FLAGS += -Wno-missing-field-initializers
-# workaround GCC bug with warning "may be used uninitialized"
-ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
-WERROR_FLAGS += -Wno-uninitialized
-endif
-
-ifeq ($(shell test $(GCC_VERSION) -ge 100 && echo 1), 1)
-# FIXME: Bugzilla 396
-WERROR_FLAGS += -Wno-zero-length-bounds
-endif
-
-HOST_WERROR_FLAGS := $(WERROR_FLAGS)
-
-ifeq ($(shell test $(HOST_GCC_VERSION) -gt 70 && echo 1), 1)
-# Tell GCC only to error for switch fallthroughs without a suitable comment
-HOST_WERROR_FLAGS += -Wimplicit-fallthrough=2
-# Ignore errors for snprintf truncation
-HOST_WERROR_FLAGS += -Wno-format-truncation
-endif
-
-ifeq ($(shell test $(GCC_VERSION) -gt 70 && echo 1), 1)
-# Tell GCC only to error for switch fallthroughs without a suitable comment
-WERROR_FLAGS += -Wimplicit-fallthrough=2
-# Ignore errors for snprintf truncation
-WERROR_FLAGS += -Wno-format-truncation
-endif
-
-# disable packed member unalign warnings
-WERROR_FLAGS += -Wno-address-of-packed-member
-
-export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
-export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS
diff --git a/mk/toolchain/icc/rte.toolchain-compat.mk b/mk/toolchain/icc/rte.toolchain-compat.mk
deleted file mode 100644
index 2d663b34ad..0000000000
--- a/mk/toolchain/icc/rte.toolchain-compat.mk
+++ /dev/null
@@ -1,58 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# CPUID-related options
-#
-# This was added to support compiler versions which might not support all the
-# flags we need
-#
-
-# find out ICC version
-
-ICC_MAJOR_VERSION = $(shell icc -dumpversion | cut -f1 -d.)
-
-ifeq ($(shell test $(ICC_MAJOR_VERSION) -lt 12 && echo 1), 1)
- MACHINE_CFLAGS = -xSSE4.2
-$(warning You are not using ICC 12.x or higher. This is neither supported, nor tested.)
-
-else
-# proceed to adjust compiler flags
-
- ICC_MINOR_VERSION = $(shell icc -dumpversion | cut -f2 -d.)
-
-# replace GCC flags with ICC flags
- # if icc version >= 12
- ifeq ($(shell test $(ICC_MAJOR_VERSION) -ge 12 && echo 1), 1)
- # Atom
- MACHINE_CFLAGS := $(patsubst -march=atom,-xSSSE3_ATOM -march=atom,$(MACHINE_CFLAGS))
- # nehalem/westmere
- MACHINE_CFLAGS := $(patsubst -march=corei7,-xSSE4.2 -march=corei7,$(MACHINE_CFLAGS))
- # sandy bridge
- MACHINE_CFLAGS := $(patsubst -march=corei7-avx,-xAVX,$(MACHINE_CFLAGS))
- # ivy bridge
- MACHINE_CFLAGS := $(patsubst -march=core-avx-i,-xCORE-AVX-I,$(MACHINE_CFLAGS))
- # hsw
- MACHINE_CFLAGS := $(patsubst -march=core-avx2,-xCORE-AVX2,$(MACHINE_CFLAGS))
- # remove westmere flags
- MACHINE_CFLAGS := $(filter-out -mpclmul -maes,$(MACHINE_CFLAGS))
- endif
- # if icc version == 12.0
- ifeq ($(shell test $(ICC_MAJOR_VERSION) -eq 12 && test $(ICC_MINOR_VERSION) -eq 0 && echo 1), 1)
- # Atom
- MACHINE_CFLAGS := $(patsubst -xSSSE3_ATOM,-xSSE3_ATOM,$(MACHINE_CFLAGS))
- # remove march options
- MACHINE_CFLAGS := $(patsubst -march=%,-xSSE3,$(MACHINE_CFLAGS))
- endif
-
- # Disable thunderx PMD for icc <= 16.0
- ifeq ($(shell test $(ICC_MAJOR_VERSION) -le 16 && echo 1), 1)
- CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=d
- endif
-
- # Disable event/opdl PMD for icc <= 16.0
- ifeq ($(shell test $(ICC_MAJOR_VERSION) -le 16 && echo 1), 1)
- CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV=d
- endif
-
-endif
diff --git a/mk/toolchain/icc/rte.vars.mk b/mk/toolchain/icc/rte.vars.mk
deleted file mode 100644
index 1729f3d849..0000000000
--- a/mk/toolchain/icc/rte.vars.mk
+++ /dev/null
@@ -1,62 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# toolchain:
-#
-# - define CC, LD, AR, AS, ... (overridden by cmdline value)
-# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value)
-# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value)
-#
-
-# Warning: we do not use CROSS environment variable as icc is mainly a
-# x86->x86 compiler
-
-CC = icc
-KERNELCC = gcc
-CPP = cpp
-AS = nasm
-AR = ar
-LD = ld
-OBJCOPY = objcopy
-OBJDUMP = objdump
-STRIP = strip
-READELF = readelf
-
-ifeq ($(KERNELRELEASE),)
-HOSTCC = icc
-else
-HOSTCC = gcc
-endif
-HOSTAS = as
-
-TOOLCHAIN_CFLAGS =
-TOOLCHAIN_LDFLAGS =
-TOOLCHAIN_ASFLAGS =
-
-# Turn off some ICC warnings -
-# Remark #271 : trailing comma is nonstandard
-# Warning #1478 : function "<func_name>" (declared at line N of "<filename>")
-# error #13368: loop was not vectorized with "vector always assert"
-# error #15527: loop was not vectorized: function call to fprintf cannot be vectorize
-# was declared "deprecated"
-# Warning #11074, 11076: to prevent "inline-max-size" warnings.
-WERROR_FLAGS := -Wall -w2 -diag-disable 271 -diag-warning 1478
-WERROR_FLAGS += -diag-disable 13368 -diag-disable 15527
-WERROR_FLAGS += -diag-disable 188
-WERROR_FLAGS += -diag-disable 11074 -diag-disable 11076 -Wdeprecated
-
-# process cpu flags
-include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk
-
-ifeq ($(CONFIG_RTE_ENABLE_LTO),y)
-# 'fat-lto' is used since pmdinfogen needs to have 'this_pmd_nameX'
-# exported in symbol table and without this option only internal
-# representation is present.
-TOOLCHAIN_CFLAGS += -flto -ffat-lto-objects
-TOOLCHAIN_LDFLAGS += -flto
-endif
-
-export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
-export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS
--
2.17.1
^ permalink raw reply [relevance 1%]
* Re: [dpdk-dev] [PATCH] doc: add sample for ABI checks in contribution guide
2020-08-06 23:43 4% ` Thomas Monjalon
@ 2020-08-07 12:00 4% ` Kinsella, Ray
2020-08-07 12:58 4% ` Ferruh Yigit
2020-08-07 12:59 4% ` Kinsella, Ray
1 sibling, 1 reply; 200+ results
From: Kinsella, Ray @ 2020-08-07 12:00 UTC (permalink / raw)
To: Thomas Monjalon, Ferruh Yigit
Cc: John McNamara, Marko Kovacevic, dev, david.marchand, Neil Horman
On 07/08/2020 00:43, Thomas Monjalon wrote:
> +Cc David, Neil and Ray
>
> 03/07/2020 19:15, Ferruh Yigit:
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>> doc/guides/contributing/patches.rst | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst
>> index 25d97b85b..39ec64ec8 100644
>> --- a/doc/guides/contributing/patches.rst
>> +++ b/doc/guides/contributing/patches.rst
>> @@ -550,6 +550,10 @@ results in a subfolder of the current working directory.
>> The environment variable ``DPDK_ABI_REF_DIR`` can be set so that the results go
>> to a different location.
>>
>> +Sample::
>> +
>> + DPDK_ABI_REF_VERSION=v19.11 DPDK_ABI_REF_DIR=/tmp ./devtools/test-meson-builds.sh
>
>
This is good, but I think we ought to include some guidance on what version to use.
What we agreed at the techboard meeting was that the last release should always be used.
The script should probably automagically select the last version.
That is work to be done, for the moment, it will be sufficient to amend the line
"To enable them, a reference version must be selected via the environment variable DPDK_ABI_REF_VERSION."
to something like
"To enable them, a reference version must be selected via the environment variable DPDK_ABI_REF_VERSION. Contributors should be ordinarily be referencing the most recent release of DPDK."
Make sense?
Thanks,
Ray K
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH v3] doc: add new field to rxq info struct
2020-08-07 10:30 3% ` [dpdk-dev] [PATCH v3] " Chengchang Tang
@ 2020-08-07 10:35 0% ` Ferruh Yigit
0 siblings, 0 replies; 200+ results
From: Ferruh Yigit @ 2020-08-07 10:35 UTC (permalink / raw)
To: Chengchang Tang, dev; +Cc: linuxarm, thomas, arybchenko, stephen
On 8/7/2020 11:30 AM, Chengchang Tang wrote:
> Struct rte_eth_rxq_info will be modified to include a new field, indicating
> the size of each buffer that could be used for HW to receive packets. Add
> this field to rte_eth_rxq_info to expose relevant information to upper
> layer users/application.
>
> For more details:
> https://mails.dpdk.org/archives/dev/2020-July/176135.html
>
> Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> ---
> v3:
> - Remove redundant sentences.
> v2:
> - Remove field name.
> - Fix some spelling mistake.
> ---
> doc/guides/rel_notes/deprecation.rst | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 9af3ce0..057178d 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -195,6 +195,11 @@ Deprecation Notices
> following the IPv6 header, as proposed in RFC
> https://mails.dpdk.org/archives/dev/2020-August/177257.html.
>
> +* ethdev: The ``struct rte_eth_rxq_info`` struct will be modified to include
> + a new optional field, indicating the buffer size used in receiving packets
> + for HW. This change is planned for 20.11. For more details:
> + https://mails.dpdk.org/archives/dev/2020-July/176135.html.
> +
> * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
> ABI stable in the v19.11 release. The TM maintainer and other contributors have
> agreed to keep the TM APIs as experimental in expectation of additional spec
> --
> 2.7.4
>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH v3] doc: add new field to rxq info struct
2020-08-05 9:24 8% [dpdk-dev] [PATCH] doc: add new field to rxq info struct Chengchang Tang
2020-08-05 11:25 0% ` Andrew Rybchenko
2020-08-06 4:00 8% ` [dpdk-dev] [PATCH v2] " Chengchang Tang
@ 2020-08-07 10:30 3% ` Chengchang Tang
2020-08-07 10:35 0% ` Ferruh Yigit
2 siblings, 1 reply; 200+ results
From: Chengchang Tang @ 2020-08-07 10:30 UTC (permalink / raw)
To: dev; +Cc: linuxarm, thomas, ferruh.yigit, arybchenko, stephen
Struct rte_eth_rxq_info will be modified to include a new field, indicating
the size of each buffer that could be used for HW to receive packets. Add
this field to rte_eth_rxq_info to expose relevant information to upper
layer users/application.
For more details:
https://mails.dpdk.org/archives/dev/2020-July/176135.html
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
---
v3:
- Remove redundant sentences.
v2:
- Remove field name.
- Fix some spelling mistake.
---
doc/guides/rel_notes/deprecation.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 9af3ce0..057178d 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -195,6 +195,11 @@ Deprecation Notices
following the IPv6 header, as proposed in RFC
https://mails.dpdk.org/archives/dev/2020-August/177257.html.
+* ethdev: The ``struct rte_eth_rxq_info`` struct will be modified to include
+ a new optional field, indicating the buffer size used in receiving packets
+ for HW. This change is planned for 20.11. For more details:
+ https://mails.dpdk.org/archives/dev/2020-July/176135.html.
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
2.7.4
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v2] doc: add new field to rxq info struct
2020-08-07 3:51 0% ` Chengchang Tang
@ 2020-08-07 7:41 0% ` Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-07 7:41 UTC (permalink / raw)
To: Ferruh Yigit, dev, Chengchang Tang; +Cc: linuxarm, arybchenko, stephen
For info, today is the last day to get trusted acks on deprecations.
07/08/2020 05:51, Chengchang Tang:
> On 2020/8/6 23:25, Ferruh Yigit wrote:
> > On 8/6/2020 5:00 AM, Chengchang Tang wrote:
> >> Struct rte_eth_rxq_info will be modified to include a new field, indicating
> >> the size of each buffer that could be used for hw to receive packets. Add
> >> this field to rte_eth_rxq_info to expose relevant information to upper
> >> layer users/application.
> >>
> >> For more details:
> >> https://mails.dpdk.org/archives/dev/2020-July/176135.html
> >>
> >> Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
> >> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
> >> ---
> >> doc/guides/rel_notes/deprecation.rst | 9 +++++++++
> >> 1 file changed, 9 insertions(+)
> >>
> >> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> >> index ea4cfa7..f08b5f9 100644
> >> --- a/doc/guides/rel_notes/deprecation.rst
> >> +++ b/doc/guides/rel_notes/deprecation.rst
> >> @@ -110,6 +110,15 @@ Deprecation Notices
> >> break the ABI checks, that is why change is planned for 20.11.
> >> The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
> >>
> >> +* ethdev: A new field will be added to the public data structure
> >> + ``rte_eth_rxq_info`` to indicate the buffer size used in receiving packets
> >> + for HW. When receive packets, HW DMA won't exceed this size.
> >
> > Overall +1 to provide this information.
> >
> > This field is only to report back the PMD configured Rx buffer size, it won't
> > affect the configuration step, do you think should we highlight this?
> I think it is not necessary because this structure is designed to report PMD
> configuration. And it is only used in rte_eth_rx_queue_info_get.
> >
> > Also will this field be optional or mandatory, this matters for the scope of the
> > work for 20.11. I think the intention is to provide an optional field, what do
> > you think to documenting that it is optional?
> Yes, it is optional. I will highlight this in v3.
> >
> >> And it will
> >> + affect the number of fragments in receiving packets when scatter is enabled.
> >
> > Is this detail required in the deprecation notice? I see it is relevant but
> > the configured Rx buffer size affects the number of the fragments, but reporting
> > this value does not.
> > Do you want to mention above as motivation to have the field? If so I don't
> > expect application to calculate the number of the fragments using this value.
> > I am for dropping above sentences if I am not missing anything.
> Thank you for this advice. I am not sure what information should be reflected in
> a deprecation notice. I seem to have added some redundant and inappropriate stuff.
> I will drop these sentences in v3.
> >
> >> + So, add this field to ``rte_eth_rxq_info`` to expose relevant information to
> >> + upper layer user/application.
> >
> > And not sure above sentences says anything new, looks like duplication to me.
> >
> >> + This change is planned for 20.11. For more details:
> >> + https://mails.dpdk.org/archives/dev/2020-July/176135.html
> >> +
> >> * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
> >> ABI stable in the v19.11 release. The TM maintainer and other contributors have
> >> agreed to keep the TM APIs as experimental in expectation of additional spec
> >>
> >
> >
> > .
> >
>
>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add new field to rxq info struct
2020-08-06 12:50 0% ` Slava Ovsiienko
@ 2020-08-07 4:00 0% ` Chengchang Tang
0 siblings, 0 replies; 200+ results
From: Chengchang Tang @ 2020-08-07 4:00 UTC (permalink / raw)
To: Slava Ovsiienko, dev
Cc: linuxarm, Thomas Monjalon, ferruh.yigit, arybchenko, stephen
On 2020/8/6 20:50, Slava Ovsiienko wrote:
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Chengchang Tang
>> Sent: Thursday, August 6, 2020 7:01
>> To: dev@dpdk.org
>> Cc: linuxarm@huawei.com; Thomas Monjalon <thomas@monjalon.net>;
>> ferruh.yigit@intel.com; arybchenko@solarflare.com;
>> stephen@networkplumber.org
>> Subject: [dpdk-dev] [PATCH v2] doc: add new field to rxq info struct
>>
>> Struct rte_eth_rxq_info will be modified to include a new field, indicating the
>> size of each buffer that could be used for hw to receive packets. Add this
>> field to rte_eth_rxq_info to expose relevant information to upper layer
>> users/application.
>>
>> For more details:
>> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
>> dpdk.org%2Farchives%2Fdev%2F2020-
>> July%2F176135.html&data=02%7C01%7Cviacheslavo%40mellanox.com
>> %7Cdb0d8bcc221145a4a67508d839bd9f14%7Ca652971c7d2e4d9ba6a4d149
>> 256f461b%7C0%7C0%7C637322833881598698&sdata=W2G3iEdepIjSlp
>> Wq4296k7cmXV1RhMnfl88TAjivWLc%3D&reserved=0
>>
>> Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
>> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
>> ---
>> v2:
>> - Remove field name.
>> - Fix some spelling mistakes.
>> ---
>> doc/guides/rel_notes/deprecation.rst | 9 +++++++++
>> 1 file changed, 9 insertions(+)
>>
>> diff --git a/doc/guides/rel_notes/deprecation.rst
>> b/doc/guides/rel_notes/deprecation.rst
>> index ea4cfa7..f08b5f9 100644
>> --- a/doc/guides/rel_notes/deprecation.rst
>> +++ b/doc/guides/rel_notes/deprecation.rst
>> @@ -110,6 +110,15 @@ Deprecation Notices
>> break the ABI checks, that is why change is planned for 20.11.
>> The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
>>
>> +* ethdev: A new field will be added to the public data structure
>> + ``rte_eth_rxq_info`` to indicate the buffer size used in receiving
>> +packets
>> + for HW. When receive packets, HW DMA won't exceed this size. And it
>> +will
>> + affect the number of fragments in receiving packets when scatter is
>> enabled.
>> + So, add this field to ``rte_eth_rxq_info`` to expose relevant
>> +information to
>> + upper layer user/application.
>> + This change is planned for 20.11. For more details:
>> +
>> +https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail
>> s
>> +.dpdk.org%2Farchives%2Fdev%2F2020-
>> July%2F176135.html&data=02%7C01%7
>> +Cviacheslavo%40mellanox.com%7Cdb0d8bcc221145a4a67508d839bd9f14
>> %7Ca65297
>> +1c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637322833881598698&
>> ;sdata=W2G3i
>> +EdepIjSlpWq4296k7cmXV1RhMnfl88TAjivWLc%3D&reserved=0
>> +
>> * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly
>> made
>> ABI stable in the v19.11 release. The TM maintainer and other contributors
>> have
>> agreed to keep the TM APIs as experimental in expectation of additional
>> spec
>> --
>> 2.7.4
> We are going to introduce the more flexible format to descript the rx buffers
> with multiple segment lengths/pools. It might be worth to consider extending this
> info structure single field to array. I suppose it is the subject for further discussion (on RFC).
I saw your announcement about changing rxconf structure, and it looks interesting.
I am not sure if I need to mention this in v3?
>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
>
>
>
> .
>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add new field to rxq info struct
2020-08-06 15:25 0% ` Ferruh Yigit
@ 2020-08-07 3:51 0% ` Chengchang Tang
2020-08-07 7:41 0% ` Thomas Monjalon
0 siblings, 1 reply; 200+ results
From: Chengchang Tang @ 2020-08-07 3:51 UTC (permalink / raw)
To: Ferruh Yigit, dev; +Cc: linuxarm, thomas, arybchenko, stephen
On 2020/8/6 23:25, Ferruh Yigit wrote:
> On 8/6/2020 5:00 AM, Chengchang Tang wrote:
>> Struct rte_eth_rxq_info will be modified to include a new field, indicating
>> the size of each buffer that could be used for hw to receive packets. Add
>> this field to rte_eth_rxq_info to expose relevant information to upper
>> layer users/application.
>>
>> For more details:
>> https://mails.dpdk.org/archives/dev/2020-July/176135.html
>>
>> Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
>> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
>> ---
>> doc/guides/rel_notes/deprecation.rst | 9 +++++++++
>> 1 file changed, 9 insertions(+)
>>
>> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
>> index ea4cfa7..f08b5f9 100644
>> --- a/doc/guides/rel_notes/deprecation.rst
>> +++ b/doc/guides/rel_notes/deprecation.rst
>> @@ -110,6 +110,15 @@ Deprecation Notices
>> break the ABI checks, that is why change is planned for 20.11.
>> The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
>>
>> +* ethdev: A new field will be added to the public data structure
>> + ``rte_eth_rxq_info`` to indicate the buffer size used in receiving packets
>> + for HW. When receive packets, HW DMA won't exceed this size.
>
> Overall +1 to provide this information.
>
> This field is only to report back the PMD configured Rx buffer size, it won't
> affect the configuration step, do you think should we highlight this?
I think it is not necessary because this structure is designed to report PMD
configuration. And it is only used in rte_eth_rx_queue_info_get.
>
> Also will this field be optional or mandatory, this matters for the scope of the
> work for 20.11. I think the intention is to provide an optional field, what do
> you think to documenting that it is optional?
Yes, it is optional. I will highlight this in v3.
>
>> And it will
>> + affect the number of fragments in receiving packets when scatter is enabled.
>
> Is this detail required in the deprecation notice? I see it is relevant but
> the configured Rx buffer size affects the number of the fragments, but reporting
> this value does not.
> Do you want to mention above as motivation to have the field? If so I don't
> expect application to calculate the number of the fragments using this value.
> I am for dropping above sentences if I am not missing anything.
Thank you for this advice. I am not sure what information should be reflected in
a deprecation notice. I seem to have added some redundant and inappropriate stuff.
I will drop these sentences in v3.
>
>> + So, add this field to ``rte_eth_rxq_info`` to expose relevant information to
>> + upper layer user/application.
>
> And not sure above sentences says anything new, looks like duplication to me.
>
>> + This change is planned for 20.11. For more details:
>> + https://mails.dpdk.org/archives/dev/2020-July/176135.html
>> +
>> * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
>> ABI stable in the v19.11 release. The TM maintainer and other contributors have
>> agreed to keep the TM APIs as experimental in expectation of additional spec
>>
>
>
> .
>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: add sample for ABI checks in contribution guide
@ 2020-08-06 23:43 4% ` Thomas Monjalon
2020-08-07 12:00 4% ` Kinsella, Ray
2020-08-07 12:59 4% ` Kinsella, Ray
0 siblings, 2 replies; 200+ results
From: Thomas Monjalon @ 2020-08-06 23:43 UTC (permalink / raw)
To: Ferruh Yigit
Cc: John McNamara, Marko Kovacevic, dev, david.marchand, Neil Horman, mdr
+Cc David, Neil and Ray
03/07/2020 19:15, Ferruh Yigit:
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> doc/guides/contributing/patches.rst | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst
> index 25d97b85b..39ec64ec8 100644
> --- a/doc/guides/contributing/patches.rst
> +++ b/doc/guides/contributing/patches.rst
> @@ -550,6 +550,10 @@ results in a subfolder of the current working directory.
> The environment variable ``DPDK_ABI_REF_DIR`` can be set so that the results go
> to a different location.
>
> +Sample::
> +
> + DPDK_ABI_REF_VERSION=v19.11 DPDK_ABI_REF_DIR=/tmp ./devtools/test-meson-builds.sh
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct
2020-08-06 15:48 0% ` Ajit Khaparde
@ 2020-08-06 22:22 0% ` Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-06 22:22 UTC (permalink / raw)
To: Dekel Peled
Cc: dev, Jerin Jacob, Stephen Hemminger, Andrew Rybchenko,
maxime.coquelin, Olivier Matz, David Marchand, Ferruh Yigit,
Ajit Khaparde
> > > Struct rte_flow_item_ipv6 will be modified to include additional
> > > values, indicating existence or absence of IPv6 extension headers
> > > following the IPv6 header, as proposed in RFC
> > > https://mails.dpdk.org/archives/dev/2020-August/177257.html.
> > > Because of ABI break this change is proposed for 20.11.
> > >
> > > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > > ---
> > > +* ethdev: The ``struct rte_flow_item_ipv6`` struct will be modified to
> > include
> > > + additional values, indicating existence or absence of IPv6 extension
> > headers
> > > + following the IPv6 header, as proposed in RFC
> > > + https://mails.dpdk.org/archives/dev/2020-August/177257.html.
> >
> > That's the same idea as VLAN item, but for IPv6 extensions.
> > We need to address the issues of variable header parts with rte_flow, so
> > Acked-by: Thomas Monjalon <thomas@monjalon.net>
> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
> Acked-by: Ori Kam <orika@mellanox.com>
Applied
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs
2020-08-06 15:50 0% ` Ajit Khaparde
@ 2020-08-06 21:57 0% ` Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-06 21:57 UTC (permalink / raw)
To: Dekel Peled
Cc: Andrew Rybchenko, dev, dpdk-dev, Jerin Jacob, Stephen Hemminger,
maxime.coquelin, Olivier Matz, David Marchand, Ferruh Yigit,
Asaf Penso, Ajit Khaparde
> > >> Structs rte_flow_item_eth and rte_flow_item_vlan will be modified,
> > >> to include an additional value, indicating existence or absence of VLAN
> > >> headers following the current header, as proposed in RFC
> > >> https://mails.dpdk.org/archives/dev/2020-August/177536.html.
> > >> Because of ABI break this change is proposed for 20.11.
> > >>
> > >> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > >> ---
> > >> +* ethdev: The ``struct rte_flow_item_eth`` and ``struct
> > rte_flow_item_vlan``
> > >> + structs will be modified, to include an additional value, indicating
> > existence
> > >> + or absence of a VLAN header following the current header, as
> > proposed in RFC
> > >> + https://mails.dpdk.org/archives/dev/2020-August/177536.html.
> > > Specifying match patterns on none or multiple extensions
> > > is difficult to manage with rte_flow.
> > > It seems this approach of adding explicit fields in the items
> > > can work well.
> > >
> > > Acked-by: Thomas Monjalon <thomas@monjalon.net>
> >
> > Similar to IPv6, it looks required to add extra information to ETH (and may
> > be VLAN) item, but I'm not sure that proposed solution is 100% OK.
> > Anyway, the scope of the deprecation notice is ongoing changes, so:
> >
> > Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> Acked-by: Ori Kam <orika@mellanox.com>
Applied
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce remove of unused enum in ACL library
2020-08-06 17:06 0% ` Jerin Jacob
@ 2020-08-06 17:24 0% ` Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-06 17:24 UTC (permalink / raw)
To: Konstantin Ananyev
Cc: Bruce Richardson, dev, Ferruh Yigit, Stephen Hemminger,
Honnappa Nagarahalli, David Marchand, Kevin Traynor, Jerin Jacob
06/08/2020 19:06, Jerin Jacob:
> On Thu, Aug 6, 2020 at 10:36 PM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > On Thu, Aug 06, 2020 at 06:37:20PM +0200, Thomas Monjalon wrote:
> > > 06/08/2020 14:57, Ferruh Yigit:
> > > > On 8/6/2020 1:23 PM, Konstantin Ananyev wrote:
> > > > > Announce removal of unused enum value (RTE_ACL_CLASSIFY_NUM).
> > > > >
> > > > > Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> > > > > ---
> > > > > +* acl: ``RTE_ACL_CLASSIFY_NUM`` enum value will be removed. This enum
> > > > > + value is not used inside DPDK, while it prevents to add new classify
> > > > > + algorithms without causing an ABI breakage.
> > > >
> > > > Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > >
> > > Acked-by: Thomas Monjalon <thomas@monjalon.net>
> > >
> > Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>
> Acked-by: Jerin Jacob <jerinj@marvell.com>
Applied
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2 20.08 1/6] doc: announce deprecation of master lcore
2020-08-06 17:00 3% ` Stephen Hemminger
@ 2020-08-06 17:14 0% ` Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-08-06 17:14 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: dev, ferruh.yigit, bruce.richardson
06/08/2020 19:00, Stephen Hemminger:
> On Thu, 06 Aug 2020 18:49:28 +0200
> Thomas Monjalon <thomas@monjalon.net> wrote:
>
> > 30/07/2020 02:57, Stephen Hemminger:
> > > Announce upcoming changes related to master/slave in reference
> > > to lcore.
> > >
> > > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > > ---
> > > doc/guides/rel_notes/deprecation.rst | 17 +++++++++++++++++
> > > 1 file changed, 17 insertions(+)
> > >
> > > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > > index 99c98062ffc2..7c60779f3e68 100644
> > > --- a/doc/guides/rel_notes/deprecation.rst
> > > +++ b/doc/guides/rel_notes/deprecation.rst
> > > @@ -148,3 +148,20 @@ Deprecation Notices
> > > Python 2 support will be completely removed in 20.11.
> > > In 20.08, explicit deprecation warnings will be displayed when running
> > > scripts with Python 2.
> > > +
> > > +* eal: To be more inclusive in choice of naming, the DPDK project
> > > + will replace uses of master/slave in the API's and command line arguments.
> >
> > nit: double space
> > > +
> > > + References to master/slave in relation to lcore will be renamed
> > > + to initial/worker. The function ``rte_get_master_lcore()``
> > > + will be renamed to ``rte_get_initial_lcore()``.
> > > + For the 20.11, release both names will be present and the
> >
> > nit: comma misplaced
> >
> > > + old function will be marked with the deprecated tag.
> > > + The old function will be removed in 21.11 version.
> > > +
> > > + The iterator for worker lcores will also change:
> > > + ``RTE_LCORE_FOREACH_SLAVE`` will be replaced with
> > > + ``RTE_LCORE_FOREACH_WORKER``.
> > > +
> > > + The ``master-lcore`` argument to testpmd will be replaced
> > > + with ``initial-lcore``.
> >
> > It doesn't say that the old argument will be kept for compatibility in 20.11.
>
> Testpmd is not part of API/ABI compatibility area so it is not a hard
> requirement.
Not really hard, but I would say it is annoying enough to consider
maintaining compatibility in testpmd for some time.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct
2020-08-04 13:17 0% ` Dekel Peled
@ 2020-08-06 17:09 0% ` Ori Kam
0 siblings, 0 replies; 200+ results
From: Ori Kam @ 2020-08-06 17:09 UTC (permalink / raw)
To: Dekel Peled, dev
Cc: jerinjacobk, stephen, arybchenko, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit, Asaf Penso
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Dekel Peled
>
> Kind reminder to all maintainers, please review and ack/comment.
>
> > -----Original Message-----
> > From: Dekel Peled <dekelp@mellanox.com>
> > Sent: Monday, August 3, 2020 10:51 PM
> > To: dev@dpdk.org
> > Cc: jerinjacobk@gmail.com; stephen@networkplumber.org;
> > arybchenko@solarflare.com; ajit.khaparde@broadcom.com;
> > maxime.coquelin@redhat.com; olivier.matz@6wind.com;
> > david.marchand@redhat.com; ferruh.yigit@intel.com
> > Subject: [PATCH] doc: announce change in IPv6 item struct
> >
> > Struct rte_flow_item_ipv6 will be modified to include additional values,
> > indicating existence or absence of IPv6 extension headers following the IPv6
> > header, as proposed in RFC
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.dpd
> k.org%2Farchives%2Fdev%2F2020-
> &data=02%7C01%7Corika%40mellanox.com%7C0ae5d3ff8df34bc9304b08
> d83878ced6%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C6373214
> 38828980255&sdata=XEgqNAncKKXhrcvI5b7nQbTwmKLdB4sPYeGVzGgPy%
> 2Fw%3D&reserved=0
> > August/177257.html.
> > Because of ABI break this change is proposed for 20.11.
> >
> > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > ---
> > doc/guides/rel_notes/deprecation.rst | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/deprecation.rst
> > b/doc/guides/rel_notes/deprecation.rst
> > index ea4cfa7..5201142 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -110,6 +110,11 @@ Deprecation Notices
> > break the ABI checks, that is why change is planned for 20.11.
> > The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
> >
> > +* ethdev: The ``struct rte_flow_item_ipv6`` struct will be modified to
> > +include
> > + additional values, indicating existence or absence of IPv6 extension
> > +headers
> > + following the IPv6 header, as proposed in RFC
> > +
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.dpd
> k.org%2Farchives%2Fdev%2F2020-
> August%2F177257.html&data=02%7C01%7Corika%40mellanox.com%7C0a
> e5d3ff8df34bc9304b08d83878ced6%7Ca652971c7d2e4d9ba6a4d149256f461b
> %7C0%7C0%7C637321438828980255&sdata=aT3wab0eZiuac%2BC4BEG2
> 8nQlK7E5srbPqMZELpinWzQ%3D&reserved=0.
> > +
> > * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly
> > made
> > ABI stable in the v19.11 release. The TM maintainer and other contributors
> > have
> > agreed to keep the TM APIs as experimental in expectation of additional
> > spec
> > --
> > 1.8.3.1
Acked-by: Ori Kam <orika@mellanox.com>
Best,
Ori
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs
2020-08-06 10:45 8% ` [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs Dekel Peled
2020-08-06 12:25 0% ` Thomas Monjalon
@ 2020-08-06 17:07 0% ` Ori Kam
1 sibling, 0 replies; 200+ results
From: Ori Kam @ 2020-08-06 17:07 UTC (permalink / raw)
To: Dekel Peled, dev
Cc: jerinjacobk, stephen, arybchenko, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit, Asaf Penso
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Dekel Peled
>
> Structs rte_flow_item_eth and rte_flow_item_vlan will be modified,
> to include an additional value, indicating existence or absence of VLAN
> headers following the current header, as proposed in RFC
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.dpd
> k.org%2Farchives%2Fdev%2F2020-
> August%2F177536.html&data=02%7C01%7Corika%40mellanox.com%7Cb5
> 9964d529f14539086008d839f621db%7Ca652971c7d2e4d9ba6a4d149256f461b
> %7C0%7C0%7C637323076576373546&sdata=mWvf%2FeYiYhIXcoFaZMikx
> TqcJIS%2FxLQuNHGUqzcAf6w%3D&reserved=0.
> Because of ABI break this change is proposed for 20.11.
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst
> b/doc/guides/rel_notes/deprecation.rst
> index 5201142..2899f56 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -115,6 +115,11 @@ Deprecation Notices
> following the IPv6 header, as proposed in RFC
>
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.dpd
> k.org%2Farchives%2Fdev%2F2020-
> August%2F177257.html&data=02%7C01%7Corika%40mellanox.com%7Cb5
> 9964d529f14539086008d839f621db%7Ca652971c7d2e4d9ba6a4d149256f461b
> %7C0%7C0%7C637323076576373546&sdata=CR3%2B3iKBdLnGo4oRYy1ev
> MMsKxwVy%2Fzf6R44dQt2An8%3D&reserved=0.
>
> +* ethdev: The ``struct rte_flow_item_eth`` and ``struct rte_flow_item_vlan``
> + structs will be modified, to include an additional value, indicating existence
> + or absence of a VLAN header following the current header, as proposed in
> RFC
> +
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.dpd
> k.org%2Farchives%2Fdev%2F2020-
> August%2F177536.html&data=02%7C01%7Corika%40mellanox.com%7Cb5
> 9964d529f14539086008d839f621db%7Ca652971c7d2e4d9ba6a4d149256f461b
> %7C0%7C0%7C637323076576373546&sdata=mWvf%2FeYiYhIXcoFaZMikx
> TqcJIS%2FxLQuNHGUqzcAf6w%3D&reserved=0.
> +
> * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly
> made
> ABI stable in the v19.11 release. The TM maintainer and other contributors
> have
> agreed to keep the TM APIs as experimental in expectation of additional spec
> --
> 1.8.3.1
Acked-by: Ori Kam <orika@mellanox.com>
Thanks,
Ori
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce remove of unused enum in ACL library
2020-08-06 17:05 0% ` Bruce Richardson
@ 2020-08-06 17:06 0% ` Jerin Jacob
2020-08-06 17:24 0% ` Thomas Monjalon
0 siblings, 1 reply; 200+ results
From: Jerin Jacob @ 2020-08-06 17:06 UTC (permalink / raw)
To: Bruce Richardson
Cc: Thomas Monjalon, Konstantin Ananyev, dpdk-dev, Ferruh Yigit,
Stephen Hemminger, Honnappa Nagarahalli, David Marchand,
Kevin Traynor
On Thu, Aug 6, 2020 at 10:36 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Thu, Aug 06, 2020 at 06:37:20PM +0200, Thomas Monjalon wrote:
> > 06/08/2020 14:57, Ferruh Yigit:
> > > On 8/6/2020 1:23 PM, Konstantin Ananyev wrote:
> > > > Announce removal of unused enum value (RTE_ACL_CLASSIFY_NUM).
> > > >
> > > > Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> > > > ---
> > > > +* acl: ``RTE_ACL_CLASSIFY_NUM`` enum value will be removed. This enum
> > > > + value is not used inside DPDK, while it prevents to add new classify
> > > > + algorithms without causing an ABI breakage.
> > >
> > > Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >
> > Acked-by: Thomas Monjalon <thomas@monjalon.net>
> >
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce remove of unused enum in ACL library
2020-08-06 16:37 0% ` Thomas Monjalon
@ 2020-08-06 17:05 0% ` Bruce Richardson
2020-08-06 17:06 0% ` Jerin Jacob
0 siblings, 1 reply; 200+ results
From: Bruce Richardson @ 2020-08-06 17:05 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Konstantin Ananyev, dev, Ferruh Yigit, stephen,
honnappa.nagarahalli, david.marchand, ktraynor
On Thu, Aug 06, 2020 at 06:37:20PM +0200, Thomas Monjalon wrote:
> 06/08/2020 14:57, Ferruh Yigit:
> > On 8/6/2020 1:23 PM, Konstantin Ananyev wrote:
> > > Announce removal of unused enum value (RTE_ACL_CLASSIFY_NUM).
> > >
> > > Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> > > ---
> > > +* acl: ``RTE_ACL_CLASSIFY_NUM`` enum value will be removed. This enum
> > > + value is not used inside DPDK, while it prevents to add new classify
> > > + algorithms without causing an ABI breakage.
> >
> > Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
>
> Acked-by: Thomas Monjalon <thomas@monjalon.net>
>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2 20.08 1/6] doc: announce deprecation of master lcore
@ 2020-08-06 17:00 3% ` Stephen Hemminger
2020-08-06 17:14 0% ` Thomas Monjalon
0 siblings, 1 reply; 200+ results
From: Stephen Hemminger @ 2020-08-06 17:00 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
On Thu, 06 Aug 2020 18:49:28 +0200
Thomas Monjalon <thomas@monjalon.net> wrote:
> 30/07/2020 02:57, Stephen Hemminger:
> > Announce upcoming changes related to master/slave in reference
> > to lcore.
> >
> > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > ---
> > doc/guides/rel_notes/deprecation.rst | 17 +++++++++++++++++
> > 1 file changed, 17 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > index 99c98062ffc2..7c60779f3e68 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -148,3 +148,20 @@ Deprecation Notices
> > Python 2 support will be completely removed in 20.11.
> > In 20.08, explicit deprecation warnings will be displayed when running
> > scripts with Python 2.
> > +
> > +* eal: To be more inclusive in choice of naming, the DPDK project
> > + will replace uses of master/slave in the API's and command line arguments.
>
> nit: double space
> > +
> > + References to master/slave in relation to lcore will be renamed
> > + to initial/worker. The function ``rte_get_master_lcore()``
> > + will be renamed to ``rte_get_initial_lcore()``.
> > + For the 20.11, release both names will be present and the
>
> nit: comma misplaced
>
> > + old function will be marked with the deprecated tag.
> > + The old function will be removed in 21.11 version.
> > +
> > + The iterator for worker lcores will also change:
> > + ``RTE_LCORE_FOREACH_SLAVE`` will be replaced with
> > + ``RTE_LCORE_FOREACH_WORKER``.
> > +
> > + The ``master-lcore`` argument to testpmd will be replaced
> > + with ``initial-lcore``.
>
> It doesn't say that the old argument will be kept for compatibility in 20.11.
Testpmd is not part of API/ABI compatibility area so it is not a hard
requirement.
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-06 0:59 0% ` Stephen Hemminger
@ 2020-08-06 16:57 0% ` Jerin Jacob
0 siblings, 0 replies; 200+ results
From: Jerin Jacob @ 2020-08-06 16:57 UTC (permalink / raw)
To: Stephen Hemminger
Cc: Kinsella, Ray, Bruce Richardson, Pavan Nikhilesh, Jerin Jacob,
Neil Horman, John McNamara, Marko Kovacevic, dpdk-dev,
Thomas Monjalon, David Marchand
On Thu, Aug 6, 2020 at 6:29 AM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> On Wed, 5 Aug 2020 14:40:01 +0530
> Jerin Jacob <jerinjacobk@gmail.com> wrote:
>
> > On Wed, Aug 5, 2020 at 2:16 PM Kinsella, Ray <mdr@ashroe.eu> wrote:
> > >
> > >
> > >
> > > On 04/08/2020 17:20, Stephen Hemminger wrote:
> > > > On Tue, 4 Aug 2020 11:41:53 +0100
> > > > Bruce Richardson <bruce.richardson@intel.com> wrote:
> > > >
> > > >> On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> > > >>> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > > >>>
> > > >>> Add 64 byte padding at the end of event device public structure to allow
> > > >>> future extensions.
> > > >>>
> > > >>> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > > >>> Acked-by: Jerin Jacob <jerinj@marvell.com>
> > > >>> ---
> > > >>> v2 Changes:
> > > >>> - Modify commit title.
> > > >>> - Add patch reference to doc.
> > > >>>
> > > >>> doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> > > >>> 1 file changed, 11 insertions(+)
> > > >>>
> > > >>> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > > >>> index ea4cfa7a4..ec5db68e9 100644
> > > >>> --- a/doc/guides/rel_notes/deprecation.rst
> > > >>> +++ b/doc/guides/rel_notes/deprecation.rst
> > > >>> @@ -151,3 +151,14 @@ Deprecation Notices
> > > >>> Python 2 support will be completely removed in 20.11.
> > > >>> In 20.08, explicit deprecation warnings will be displayed when running
> > > >>> scripts with Python 2.
> > > >>> +
> > > >>> +* eventdev: A 64 byte padding is added at the end of the following structures
> > > >>> + in event device library to support future extensions:
> > > >>> + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> > > >>> + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> > > >>> + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> > > >>> + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> > > >>> + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> > > >>> + ``rte_event_timer_adapter_data``.
> > > >>> + Reference:
> > > >>> + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> > > >>> --
> > > >>
> > > >> I don't like this idea of adding lots of padding to the ends of these
> > > >> structures. For some structures, such as the public arrays for devices it
> > > >> may be necessary, but for all the conf structures passed as parameters to
> > > >> functions I think we can do better. Since these structures are passed by
> > > >> the user to various functions, function versioning can be used to ensure
> > > >> that the correct function in eventdev is always called. From there to the
> > > >> individual PMDs, we can implement ABI compatibility by either:
> > > >> 1. including the length of the struct as a parameter to the driver. (This is
> > > >> a bit similar to my proposal for rawdev [1])
> > > >> 2. including the ABI version as a parameter to the driver.
> > > >>
> > > >> Regards
> > > >> /Bruce
> > > >>
> > > >> [1] http://inbox.dpdk.org/dev/?q=enhance+rawdev+APIs
> > > >
> > > > This is a bad idea.
> > > >
> > > > Reserved fields won't work because nothing requires that the application
> > > > zero them. You can't start using them later because the application
> > > > may put uninitialized or junk data there.
> > > >
> > >
> > > +1, to Stephens comments.
> >
> > Since the problem is not specific to one substem, if we need to add a
> > field in config structures,
> > What will the expected way of handling across the DPDK?
>
> If you need fields go through the normal enhancement process, and get it
> reviewed and put them in a major release milestone.
> Sorry, there is no free lunch by adding reserved fields.
>
> Look up YAGNI
YAGNI is useful. But If we need to wait for one year to change the API
then it is the problem.
That's time frame silicon companies are making the next generation of
silicon nowadays.
We just tried to follow the existing scheme of things in the codebase[1].
But I am also not a great fan of the Reserved filed scheme either.
Probably it is better to add the new feature as a new API or config
structure with
out breaking anything(as experimental) and upcoming next release, rework to
adapt to subsystem API philosophy.
[1]
lib/librte_ethdev/rte_ethdev.h: uint64_t reserved_64s[2]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev.h: void *reserved_ptrs[2]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev.h: uint64_t reserved_64s[2]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev.h: void *reserved_ptrs[2]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev.h: uint64_t reserved_64s[2]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev.h: void *reserved_ptrs[2]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev.h: uint64_t reserved_64s[2]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev.h: void *reserved_ptrs[2]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev.h: uint64_t reserved_64s[2]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev.h: void *reserved_ptrs[2]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev_core.h: uint64_t reserved_64s[4]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev_core.h: void *reserved_ptrs[4]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev_core.h: uint64_t reserved_64s[4]; /**<
Reserved for future fields */
lib/librte_ethdev/rte_ethdev_core.h: void *reserved_ptrs[4]; /**<
Reserved for future fields */
lib/librte_eal/linux/eal_timer.c: uint64_t reserved0;
/**< Reserved for future use. */
lib/librte_eal/linux/eal_timer.c: uint64_t reserved1;
/**< Reserved for future use. */
lib/librte_eal/linux/eal_timer.c: uint64_t reserved2[25];
/**< Reserved for future use. */
lib/librte_eal/linux/eal_timer.c: uint64_t reserved3;
/**< Reserved for future use. */
lib/librte_eal/linux/eal_timer.c: uint64_t reserved4;
/**< Reserved for future use. */
lib/librte_eventdev/rte_eventdev.h: /**< Reserved
for future use */
lib/librte_eventdev/rte_eventdev.h: uint64_t reserved_64s[4]; /**<
Reserved for future fields */
lib/librte_eventdev/rte_eventdev.h: void *reserved_ptrs[4]; /**<
Reserved for future fields */
lib/librte_eventdev/rte_eventdev.h: uint64_t reserved_64s[4]; /**<
Reserved for future fields */
lib/librte_eventdev/rte_eventdev.h: void *reserved_ptrs[4]; /**<
Reserved for future fields */
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce remove of unused enum in ACL library
2020-08-06 12:57 0% ` Ferruh Yigit
@ 2020-08-06 16:37 0% ` Thomas Monjalon
2020-08-06 17:05 0% ` Bruce Richardson
0 siblings, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-08-06 16:37 UTC (permalink / raw)
To: Konstantin Ananyev
Cc: dev, Ferruh Yigit, stephen, honnappa.nagarahalli, david.marchand,
ktraynor
06/08/2020 14:57, Ferruh Yigit:
> On 8/6/2020 1:23 PM, Konstantin Ananyev wrote:
> > Announce removal of unused enum value (RTE_ACL_CLASSIFY_NUM).
> >
> > Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> > ---
> > +* acl: ``RTE_ACL_CLASSIFY_NUM`` enum value will be removed. This enum
> > + value is not used inside DPDK, while it prevents to add new classify
> > + algorithms without causing an ABI breakage.
>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs
2020-08-06 15:14 0% ` Andrew Rybchenko
@ 2020-08-06 15:50 0% ` Ajit Khaparde
2020-08-06 21:57 0% ` Thomas Monjalon
0 siblings, 1 reply; 200+ results
From: Ajit Khaparde @ 2020-08-06 15:50 UTC (permalink / raw)
To: Andrew Rybchenko
Cc: Thomas Monjalon, Dekel Peled, dpdk-dev, Jerin Jacob,
Stephen Hemminger, maxime.coquelin, Olivier Matz, David Marchand,
Ferruh Yigit, Asaf Penso
On Thu, Aug 6, 2020 at 8:14 AM Andrew Rybchenko <arybchenko@solarflare.com>
wrote:
> On 8/6/20 3:25 PM, Thomas Monjalon wrote:
> > 06/08/2020 12:45, Dekel Peled:
> >> Structs rte_flow_item_eth and rte_flow_item_vlan will be modified,
> >> to include an additional value, indicating existence or absence of VLAN
> >> headers following the current header, as proposed in RFC
> >> https://mails.dpdk.org/archives/dev/2020-August/177536.html.
> >> Because of ABI break this change is proposed for 20.11.
> >>
> >> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> >> ---
> >> +* ethdev: The ``struct rte_flow_item_eth`` and ``struct
> rte_flow_item_vlan``
> >> + structs will be modified, to include an additional value, indicating
> existence
> >> + or absence of a VLAN header following the current header, as
> proposed in RFC
> >> + https://mails.dpdk.org/archives/dev/2020-August/177536.html.
> > Specifying match patterns on none or multiple extensions
> > is difficult to manage with rte_flow.
> > It seems this approach of adding explicit fields in the items
> > can work well.
> >
> > Acked-by: Thomas Monjalon <thomas@monjalon.net>
>
> Similar to IPv6, it looks required to add extra information to ETH (and may
> be VLAN) item, but I'm not sure that proposed solution is 100% OK.
> Anyway, the scope of the deprecation notice is ongoing changes, so:
>
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct
2020-08-06 12:30 0% ` Thomas Monjalon
@ 2020-08-06 15:48 0% ` Ajit Khaparde
2020-08-06 22:22 0% ` Thomas Monjalon
0 siblings, 1 reply; 200+ results
From: Ajit Khaparde @ 2020-08-06 15:48 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Dekel Peled, dpdk-dev, Jerin Jacob, Stephen Hemminger,
Andrew Rybchenko, maxime.coquelin, Olivier Matz, David Marchand,
Ferruh Yigit
On Thu, Aug 6, 2020 at 5:30 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> 03/08/2020 21:51, Dekel Peled:
> > Struct rte_flow_item_ipv6 will be modified to include additional
> > values, indicating existence or absence of IPv6 extension headers
> > following the IPv6 header, as proposed in RFC
> > https://mails.dpdk.org/archives/dev/2020-August/177257.html.
> > Because of ABI break this change is proposed for 20.11.
> >
> > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > ---
> > +* ethdev: The ``struct rte_flow_item_ipv6`` struct will be modified to
> include
> > + additional values, indicating existence or absence of IPv6 extension
> headers
> > + following the IPv6 header, as proposed in RFC
> > + https://mails.dpdk.org/archives/dev/2020-August/177257.html.
>
> That's the same idea as VLAN item, but for IPv6 extensions.
> We need to address the issues of variable header parts with rte_flow, so
> Acked-by: Thomas Monjalon <thomas@monjalon.net>
>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add new field to rxq info struct
2020-08-06 4:00 5% ` Chengchang Tang
@ 2020-08-06 15:25 0% ` Ferruh Yigit
2020-08-07 3:51 0% ` Chengchang Tang
0 siblings, 1 reply; 200+ results
From: Ferruh Yigit @ 2020-08-06 15:25 UTC (permalink / raw)
To: Chengchang Tang, dev; +Cc: linuxarm, thomas, arybchenko, stephen
On 8/6/2020 5:00 AM, Chengchang Tang wrote:
> Struct rte_eth_rxq_info will be modified to include a new field, indicating
> the size of each buffer that could be used for hw to receive packets. Add
> this field to rte_eth_rxq_info to expose relevant information to upper
> layer users/application.
>
> For more details:
> https://mails.dpdk.org/archives/dev/2020-July/176135.html
>
> Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index ea4cfa7..f08b5f9 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -110,6 +110,15 @@ Deprecation Notices
> break the ABI checks, that is why change is planned for 20.11.
> The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
>
> +* ethdev: A new field will be added to the public data structure
> + ``rte_eth_rxq_info`` to indicate the buffer size used in receiving packets
> + for HW. When receive packets, HW DMA won't exceed this size.
Overall +1 to provide this information.
This field is only to report back the PMD configured Rx buffer size, it won't
affect the configuration step, do you think should we highlight this?
Also will this field be optional or mandatory, this matters for the scope of the
work for 20.11. I think the intention is to provide an optional field, what do
you think to documenting that it is optional?
> And it will
> + affect the number of fragments in receiving packets when scatter is enabled.
Is this detail required in the deprecation notice? I see it is relevant but
the configured Rx buffer size affects the number of the fragments, but reporting
this value does not.
Do you want to mention above as motivation to have the field? If so I don't
expect application to calculate the number of the fragments using this value.
I am for dropping above sentences if I am not missing anything.
> + So, add this field to ``rte_eth_rxq_info`` to expose relevant information to
> + upper layer user/application.
And not sure above sentences says anything new, looks like duplication to me.
> + This change is planned for 20.11. For more details:
> + https://mails.dpdk.org/archives/dev/2020-July/176135.html
> +
> * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
> ABI stable in the v19.11 release. The TM maintainer and other contributors have
> agreed to keep the TM APIs as experimental in expectation of additional spec
>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs
2020-08-06 12:25 0% ` Thomas Monjalon
@ 2020-08-06 15:14 0% ` Andrew Rybchenko
2020-08-06 15:50 0% ` Ajit Khaparde
0 siblings, 1 reply; 200+ results
From: Andrew Rybchenko @ 2020-08-06 15:14 UTC (permalink / raw)
To: Thomas Monjalon, Dekel Peled
Cc: dev, jerinjacobk, stephen, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit, asafp
On 8/6/20 3:25 PM, Thomas Monjalon wrote:
> 06/08/2020 12:45, Dekel Peled:
>> Structs rte_flow_item_eth and rte_flow_item_vlan will be modified,
>> to include an additional value, indicating existence or absence of VLAN
>> headers following the current header, as proposed in RFC
>> https://mails.dpdk.org/archives/dev/2020-August/177536.html.
>> Because of ABI break this change is proposed for 20.11.
>>
>> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
>> ---
>> +* ethdev: The ``struct rte_flow_item_eth`` and ``struct rte_flow_item_vlan``
>> + structs will be modified, to include an additional value, indicating existence
>> + or absence of a VLAN header following the current header, as proposed in RFC
>> + https://mails.dpdk.org/archives/dev/2020-August/177536.html.
> Specifying match patterns on none or multiple extensions
> is difficult to manage with rte_flow.
> It seems this approach of adding explicit fields in the items
> can work well.
>
> Acked-by: Thomas Monjalon <thomas@monjalon.net>
Similar to IPv6, it looks required to add extra information to ETH (and may
be VLAN) item, but I'm not sure that proposed solution is 100% OK.
Anyway, the scope of the deprecation notice is ongoing changes, so:
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct
2020-08-03 19:51 9% [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct Dekel Peled
2020-08-04 13:17 0% ` Dekel Peled
2020-08-06 12:30 0% ` Thomas Monjalon
@ 2020-08-06 15:10 0% ` Andrew Rybchenko
2 siblings, 0 replies; 200+ results
From: Andrew Rybchenko @ 2020-08-06 15:10 UTC (permalink / raw)
To: Dekel Peled, dev
Cc: jerinjacobk, stephen, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit
On 8/3/20 10:51 PM, Dekel Peled wrote:
> Struct rte_flow_item_ipv6 will be modified to include additional
> values, indicating existence or absence of IPv6 extension headers
> following the IPv6 header, as proposed in RFC
> https://mails.dpdk.org/archives/dev/2020-August/177257.html.
> Because of ABI break this change is proposed for 20.11.
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index ea4cfa7..5201142 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -110,6 +110,11 @@ Deprecation Notices
> break the ABI checks, that is why change is planned for 20.11.
> The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
>
> +* ethdev: The ``struct rte_flow_item_ipv6`` struct will be modified to include
> + additional values, indicating existence or absence of IPv6 extension headers
> + following the IPv6 header, as proposed in RFC
> + https://mails.dpdk.org/archives/dev/2020-August/177257.html.
> +
I agree that extra information is required in rte_flow_item_ipv6, but
I'm not
sure about proposed solution details. Taking it into account:
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce internal hotplug structure removal
2020-08-04 14:07 4% [dpdk-dev] [PATCH] doc: announce internal hotplug structure removal David Marchand
2020-08-04 14:29 0% ` Bruce Richardson
@ 2020-08-06 13:59 0% ` Kinsella, Ray
1 sibling, 0 replies; 200+ results
From: Kinsella, Ray @ 2020-08-06 13:59 UTC (permalink / raw)
To: David Marchand, dev; +Cc: thomas
On 04/08/2020 15:07, David Marchand wrote:
> rte_dev_event has never been used outside of the EAL.
> No point in exposing it.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 24808c002c..9f73297173 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -27,6 +27,9 @@ Deprecation Notices
> remove it from the externally visible ABI and allow it to be updated in the
> future.
>
> +* eal: The ``rte_dev_event`` structure will be made private to the EAL as no
> + public API makes use of it.
> +
> * rte_atomicNN_xxx: These APIs do not take memory order parameter. This does
> not allow for writing optimized code for all the CPU architectures supported
> in DPDK. DPDK will adopt C11 atomic operations semantics and provide wrappers
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce remove of unused enum in ACL library
2020-08-06 12:23 5% [dpdk-dev] [PATCH] doc: announce remove of unused enum in ACL library Konstantin Ananyev
@ 2020-08-06 12:57 0% ` Ferruh Yigit
2020-08-06 16:37 0% ` Thomas Monjalon
0 siblings, 1 reply; 200+ results
From: Ferruh Yigit @ 2020-08-06 12:57 UTC (permalink / raw)
To: Konstantin Ananyev, dev
On 8/6/2020 1:23 PM, Konstantin Ananyev wrote:
> Announce removal of unused enum value (RTE_ACL_CLASSIFY_NUM).
>
> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 1a07f8817..fd0168b23 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -232,3 +232,7 @@ Deprecation Notices
> Python 2 support will be completely removed in 20.11.
> In 20.08, explicit deprecation warnings will be displayed when running
> scripts with Python 2.
> +
> +* acl: ``RTE_ACL_CLASSIFY_NUM`` enum value will be removed. This enum
> + value is not used inside DPDK, while it prevents to add new classify
> + algorithms without causing an ABI breakage.
>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add new field to rxq info struct
2020-08-06 4:00 8% ` [dpdk-dev] [PATCH v2] " Chengchang Tang
2020-08-06 4:00 5% ` Chengchang Tang
@ 2020-08-06 12:50 0% ` Slava Ovsiienko
2020-08-07 4:00 0% ` Chengchang Tang
1 sibling, 1 reply; 200+ results
From: Slava Ovsiienko @ 2020-08-06 12:50 UTC (permalink / raw)
To: Chengchang Tang, dev
Cc: linuxarm, Thomas Monjalon, ferruh.yigit, arybchenko, stephen
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Chengchang Tang
> Sent: Thursday, August 6, 2020 7:01
> To: dev@dpdk.org
> Cc: linuxarm@huawei.com; Thomas Monjalon <thomas@monjalon.net>;
> ferruh.yigit@intel.com; arybchenko@solarflare.com;
> stephen@networkplumber.org
> Subject: [dpdk-dev] [PATCH v2] doc: add new field to rxq info struct
>
> Struct rte_eth_rxq_info will be modified to include a new field, indicating the
> size of each buffer that could be used for hw to receive packets. Add this
> field to rte_eth_rxq_info to expose relevant information to upper layer
> users/application.
>
> For more details:
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
> dpdk.org%2Farchives%2Fdev%2F2020-
> July%2F176135.html&data=02%7C01%7Cviacheslavo%40mellanox.com
> %7Cdb0d8bcc221145a4a67508d839bd9f14%7Ca652971c7d2e4d9ba6a4d149
> 256f461b%7C0%7C0%7C637322833881598698&sdata=W2G3iEdepIjSlp
> Wq4296k7cmXV1RhMnfl88TAjivWLc%3D&reserved=0
>
> Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
> ---
> v2:
> - Remove field name.
> - Fix some spelling mistakes.
> ---
> doc/guides/rel_notes/deprecation.rst | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst
> b/doc/guides/rel_notes/deprecation.rst
> index ea4cfa7..f08b5f9 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -110,6 +110,15 @@ Deprecation Notices
> break the ABI checks, that is why change is planned for 20.11.
> The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
>
> +* ethdev: A new field will be added to the public data structure
> + ``rte_eth_rxq_info`` to indicate the buffer size used in receiving
> +packets
> + for HW. When receive packets, HW DMA won't exceed this size. And it
> +will
> + affect the number of fragments in receiving packets when scatter is
> enabled.
> + So, add this field to ``rte_eth_rxq_info`` to expose relevant
> +information to
> + upper layer user/application.
> + This change is planned for 20.11. For more details:
> +
> +https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail
> s
> +.dpdk.org%2Farchives%2Fdev%2F2020-
> July%2F176135.html&data=02%7C01%7
> +Cviacheslavo%40mellanox.com%7Cdb0d8bcc221145a4a67508d839bd9f14
> %7Ca65297
> +1c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637322833881598698&
> ;sdata=W2G3i
> +EdepIjSlpWq4296k7cmXV1RhMnfl88TAjivWLc%3D&reserved=0
> +
> * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly
> made
> ABI stable in the v19.11 release. The TM maintainer and other contributors
> have
> agreed to keep the TM APIs as experimental in expectation of additional
> spec
> --
> 2.7.4
We are going to introduce the more flexible format to descript the rx buffers
with multiple segment lengths/pools. It might be worth to consider extending this
info structure single field to array. I suppose it is the subject for further discussion (on RFC).
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct
2020-08-03 19:51 9% [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct Dekel Peled
2020-08-04 13:17 0% ` Dekel Peled
@ 2020-08-06 12:30 0% ` Thomas Monjalon
2020-08-06 15:48 0% ` Ajit Khaparde
2020-08-06 15:10 0% ` Andrew Rybchenko
2 siblings, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-08-06 12:30 UTC (permalink / raw)
To: Dekel Peled
Cc: dev, jerinjacobk, stephen, arybchenko, ajit.khaparde,
maxime.coquelin, olivier.matz, david.marchand, ferruh.yigit
03/08/2020 21:51, Dekel Peled:
> Struct rte_flow_item_ipv6 will be modified to include additional
> values, indicating existence or absence of IPv6 extension headers
> following the IPv6 header, as proposed in RFC
> https://mails.dpdk.org/archives/dev/2020-August/177257.html.
> Because of ABI break this change is proposed for 20.11.
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> ---
> +* ethdev: The ``struct rte_flow_item_ipv6`` struct will be modified to include
> + additional values, indicating existence or absence of IPv6 extension headers
> + following the IPv6 header, as proposed in RFC
> + https://mails.dpdk.org/archives/dev/2020-August/177257.html.
That's the same idea as VLAN item, but for IPv6 extensions.
We need to address the issues of variable header parts with rte_flow, so
Acked-by: Thomas Monjalon <thomas@monjalon.net>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs
2020-08-06 10:45 8% ` [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs Dekel Peled
@ 2020-08-06 12:25 0% ` Thomas Monjalon
2020-08-06 15:14 0% ` Andrew Rybchenko
2020-08-06 17:07 0% ` Ori Kam
1 sibling, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-08-06 12:25 UTC (permalink / raw)
To: Dekel Peled
Cc: dev, jerinjacobk, stephen, arybchenko, ajit.khaparde,
maxime.coquelin, olivier.matz, david.marchand, ferruh.yigit,
asafp
06/08/2020 12:45, Dekel Peled:
> Structs rte_flow_item_eth and rte_flow_item_vlan will be modified,
> to include an additional value, indicating existence or absence of VLAN
> headers following the current header, as proposed in RFC
> https://mails.dpdk.org/archives/dev/2020-August/177536.html.
> Because of ABI break this change is proposed for 20.11.
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> ---
> +* ethdev: The ``struct rte_flow_item_eth`` and ``struct rte_flow_item_vlan``
> + structs will be modified, to include an additional value, indicating existence
> + or absence of a VLAN header following the current header, as proposed in RFC
> + https://mails.dpdk.org/archives/dev/2020-August/177536.html.
Specifying match patterns on none or multiple extensions
is difficult to manage with rte_flow.
It seems this approach of adding explicit fields in the items
can work well.
Acked-by: Thomas Monjalon <thomas@monjalon.net>
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH] doc: announce remove of unused enum in ACL library
@ 2020-08-06 12:23 5% Konstantin Ananyev
2020-08-06 12:57 0% ` Ferruh Yigit
0 siblings, 1 reply; 200+ results
From: Konstantin Ananyev @ 2020-08-06 12:23 UTC (permalink / raw)
To: dev; +Cc: Konstantin Ananyev
Announce removal of unused enum value (RTE_ACL_CLASSIFY_NUM).
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 1a07f8817..fd0168b23 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -232,3 +232,7 @@ Deprecation Notices
Python 2 support will be completely removed in 20.11.
In 20.08, explicit deprecation warnings will be displayed when running
scripts with Python 2.
+
+* acl: ``RTE_ACL_CLASSIFY_NUM`` enum value will be removed. This enum
+ value is not used inside DPDK, while it prevents to add new classify
+ algorithms without causing an ABI breakage.
--
2.17.1
^ permalink raw reply [relevance 5%]
* [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs
2020-08-04 16:01 8% [dpdk-dev] [PATCH] doc: announce change in ETH item struct Dekel Peled
2020-08-05 3:39 0% ` Ajit Khaparde
2020-08-05 10:49 0% ` Andrew Rybchenko
@ 2020-08-06 10:45 8% ` Dekel Peled
2020-08-06 12:25 0% ` Thomas Monjalon
2020-08-06 17:07 0% ` Ori Kam
2 siblings, 2 replies; 200+ results
From: Dekel Peled @ 2020-08-06 10:45 UTC (permalink / raw)
To: dev
Cc: jerinjacobk, stephen, arybchenko, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit, asafp
Structs rte_flow_item_eth and rte_flow_item_vlan will be modified,
to include an additional value, indicating existence or absence of VLAN
headers following the current header, as proposed in RFC
https://mails.dpdk.org/archives/dev/2020-August/177536.html.
Because of ABI break this change is proposed for 20.11.
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
---
doc/guides/rel_notes/deprecation.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 5201142..2899f56 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -115,6 +115,11 @@ Deprecation Notices
following the IPv6 header, as proposed in RFC
https://mails.dpdk.org/archives/dev/2020-August/177257.html.
+* ethdev: The ``struct rte_flow_item_eth`` and ``struct rte_flow_item_vlan``
+ structs will be modified, to include an additional value, indicating existence
+ or absence of a VLAN header following the current header, as proposed in RFC
+ https://mails.dpdk.org/archives/dev/2020-August/177536.html.
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
1.8.3.1
^ permalink raw reply [relevance 8%]
* [dpdk-dev] [PATCH v2] doc: add new field to rxq info struct
2020-08-05 9:24 8% [dpdk-dev] [PATCH] doc: add new field to rxq info struct Chengchang Tang
2020-08-05 11:25 0% ` Andrew Rybchenko
@ 2020-08-06 4:00 8% ` Chengchang Tang
2020-08-06 4:00 5% ` Chengchang Tang
2020-08-06 12:50 0% ` Slava Ovsiienko
2020-08-07 10:30 3% ` [dpdk-dev] [PATCH v3] " Chengchang Tang
2 siblings, 2 replies; 200+ results
From: Chengchang Tang @ 2020-08-06 4:00 UTC (permalink / raw)
To: dev; +Cc: linuxarm, thomas, ferruh.yigit, arybchenko, stephen
Struct rte_eth_rxq_info will be modified to include a new field, indicating
the size of each buffer that could be used for hw to receive packets. Add
this field to rte_eth_rxq_info to expose relevant information to upper
layer users/application.
For more details:
https://mails.dpdk.org/archives/dev/2020-July/176135.html
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
v2:
- Remove field name.
- Fix some spelling mistakes.
---
doc/guides/rel_notes/deprecation.rst | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index ea4cfa7..f08b5f9 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -110,6 +110,15 @@ Deprecation Notices
break the ABI checks, that is why change is planned for 20.11.
The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
+* ethdev: A new field will be added to the public data structure
+ ``rte_eth_rxq_info`` to indicate the buffer size used in receiving packets
+ for HW. When receive packets, HW DMA won't exceed this size. And it will
+ affect the number of fragments in receiving packets when scatter is enabled.
+ So, add this field to ``rte_eth_rxq_info`` to expose relevant information to
+ upper layer user/application.
+ This change is planned for 20.11. For more details:
+ https://mails.dpdk.org/archives/dev/2020-July/176135.html
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
2.7.4
^ permalink raw reply [relevance 8%]
* [dpdk-dev] [PATCH v2] doc: add new field to rxq info struct
2020-08-06 4:00 8% ` [dpdk-dev] [PATCH v2] " Chengchang Tang
@ 2020-08-06 4:00 5% ` Chengchang Tang
2020-08-06 15:25 0% ` Ferruh Yigit
2020-08-06 12:50 0% ` Slava Ovsiienko
1 sibling, 1 reply; 200+ results
From: Chengchang Tang @ 2020-08-06 4:00 UTC (permalink / raw)
To: dev; +Cc: linuxarm, thomas, ferruh.yigit, arybchenko, stephen
Struct rte_eth_rxq_info will be modified to include a new field, indicating
the size of each buffer that could be used for hw to receive packets. Add
this field to rte_eth_rxq_info to expose relevant information to upper
layer users/application.
For more details:
https://mails.dpdk.org/archives/dev/2020-July/176135.html
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
doc/guides/rel_notes/deprecation.rst | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index ea4cfa7..f08b5f9 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -110,6 +110,15 @@ Deprecation Notices
break the ABI checks, that is why change is planned for 20.11.
The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
+* ethdev: A new field will be added to the public data structure
+ ``rte_eth_rxq_info`` to indicate the buffer size used in receiving packets
+ for HW. When receive packets, HW DMA won't exceed this size. And it will
+ affect the number of fragments in receiving packets when scatter is enabled.
+ So, add this field to ``rte_eth_rxq_info`` to expose relevant information to
+ upper layer user/application.
+ This change is planned for 20.11. For more details:
+ https://mails.dpdk.org/archives/dev/2020-July/176135.html
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
2.7.4
^ permalink raw reply [relevance 5%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-05 9:10 0% ` Jerin Jacob
@ 2020-08-06 0:59 0% ` Stephen Hemminger
2020-08-06 16:57 0% ` Jerin Jacob
0 siblings, 1 reply; 200+ results
From: Stephen Hemminger @ 2020-08-06 0:59 UTC (permalink / raw)
To: Jerin Jacob
Cc: Kinsella, Ray, Bruce Richardson, Pavan Nikhilesh, Jerin Jacob,
Neil Horman, John McNamara, Marko Kovacevic, dpdk-dev,
Thomas Monjalon, David Marchand
On Wed, 5 Aug 2020 14:40:01 +0530
Jerin Jacob <jerinjacobk@gmail.com> wrote:
> On Wed, Aug 5, 2020 at 2:16 PM Kinsella, Ray <mdr@ashroe.eu> wrote:
> >
> >
> >
> > On 04/08/2020 17:20, Stephen Hemminger wrote:
> > > On Tue, 4 Aug 2020 11:41:53 +0100
> > > Bruce Richardson <bruce.richardson@intel.com> wrote:
> > >
> > >> On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> > >>> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > >>>
> > >>> Add 64 byte padding at the end of event device public structure to allow
> > >>> future extensions.
> > >>>
> > >>> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > >>> Acked-by: Jerin Jacob <jerinj@marvell.com>
> > >>> ---
> > >>> v2 Changes:
> > >>> - Modify commit title.
> > >>> - Add patch reference to doc.
> > >>>
> > >>> doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> > >>> 1 file changed, 11 insertions(+)
> > >>>
> > >>> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > >>> index ea4cfa7a4..ec5db68e9 100644
> > >>> --- a/doc/guides/rel_notes/deprecation.rst
> > >>> +++ b/doc/guides/rel_notes/deprecation.rst
> > >>> @@ -151,3 +151,14 @@ Deprecation Notices
> > >>> Python 2 support will be completely removed in 20.11.
> > >>> In 20.08, explicit deprecation warnings will be displayed when running
> > >>> scripts with Python 2.
> > >>> +
> > >>> +* eventdev: A 64 byte padding is added at the end of the following structures
> > >>> + in event device library to support future extensions:
> > >>> + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> > >>> + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> > >>> + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> > >>> + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> > >>> + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> > >>> + ``rte_event_timer_adapter_data``.
> > >>> + Reference:
> > >>> + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> > >>> --
> > >>
> > >> I don't like this idea of adding lots of padding to the ends of these
> > >> structures. For some structures, such as the public arrays for devices it
> > >> may be necessary, but for all the conf structures passed as parameters to
> > >> functions I think we can do better. Since these structures are passed by
> > >> the user to various functions, function versioning can be used to ensure
> > >> that the correct function in eventdev is always called. From there to the
> > >> individual PMDs, we can implement ABI compatibility by either:
> > >> 1. including the length of the struct as a parameter to the driver. (This is
> > >> a bit similar to my proposal for rawdev [1])
> > >> 2. including the ABI version as a parameter to the driver.
> > >>
> > >> Regards
> > >> /Bruce
> > >>
> > >> [1] http://inbox.dpdk.org/dev/?q=enhance+rawdev+APIs
> > >
> > > This is a bad idea.
> > >
> > > Reserved fields won't work because nothing requires that the application
> > > zero them. You can't start using them later because the application
> > > may put uninitialized or junk data there.
> > >
> >
> > +1, to Stephens comments.
>
> Since the problem is not specific to one substem, if we need to add a
> field in config structures,
> What will the expected way of handling across the DPDK?
If you need fields go through the normal enhancement process, and get it
reviewed and put them in a major release milestone.
Sorry, there is no free lunch by adding reserved fields.
Look up YAGNI
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD
2020-08-04 15:44 4% ` Hemant Agrawal
@ 2020-08-05 23:39 4% ` Thomas Monjalon
2020-08-07 16:21 4% ` McDaniel, Timothy
0 siblings, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-08-05 23:39 UTC (permalink / raw)
To: McDaniel, Timothy
Cc: Jerin Jacob, dev, Jerin Jacob, Mattias Rönnblom, Gage Eads,
Van Haaren, Harry, Hemant Agrawal
> > > From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
> >
> > There is still "," in the name.
> >
> > >
> > > The ABI changes associated with this notification will better support
> > > devices that:
> > > 1. Have limits on the number or queues that may be linked to a port 2.
> > > Have ports that are limited to exactly one linked queue 3. Are not
> > > able to transparently transfer the event flow_id field
> > >
> > > Signed-off-by: McDaniel Timothy
> > > <timothy.mcdaniel@intel.com>
> >
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
> > Acked-by: Jerin Jacob <jerinj@marvell.com>
> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Applied with name fixed, thanks
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH] doc: announce change in ETH item struct
2020-08-05 13:44 3% ` Andrew Rybchenko
@ 2020-08-05 14:25 0% ` Dekel Peled
0 siblings, 0 replies; 200+ results
From: Dekel Peled @ 2020-08-05 14:25 UTC (permalink / raw)
To: Andrew Rybchenko, dev
Cc: jerinjacobk, stephen, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit, Asaf Penso
> -----Original Message-----
> From: Andrew Rybchenko <arybchenko@solarflare.com>
> Sent: Wednesday, August 5, 2020 4:44 PM
> To: Dekel Peled <dekelp@mellanox.com>; dev@dpdk.org
> Cc: jerinjacobk@gmail.com; stephen@networkplumber.org;
> ajit.khaparde@broadcom.com; maxime.coquelin@redhat.com;
> olivier.matz@6wind.com; david.marchand@redhat.com;
> ferruh.yigit@intel.com; Asaf Penso <asafp@mellanox.com>
> Subject: Re: [dpdk-dev] [PATCH] doc: announce change in ETH item struct
>
> On 8/5/20 4:31 PM, Dekel Peled wrote:
> > Thanks, PSB.
> >
> >> -----Original Message-----
> >> From: Andrew Rybchenko <arybchenko@solarflare.com>
> >> Sent: Wednesday, August 5, 2020 1:49 PM
> >> To: Dekel Peled <dekelp@mellanox.com>; dev@dpdk.org
> >> Cc: jerinjacobk@gmail.com; stephen@networkplumber.org;
> >> ajit.khaparde@broadcom.com; maxime.coquelin@redhat.com;
> >> olivier.matz@6wind.com; david.marchand@redhat.com;
> >> ferruh.yigit@intel.com; Asaf Penso <asafp@mellanox.com>
> >> Subject: Re: [dpdk-dev] [PATCH] doc: announce change in ETH item
> >> struct
> >>
> >> On 8/4/20 7:01 PM, Dekel Peled wrote:
> >>> Struct rte_flow_item_eth will be modified to include additional
> >>> values, indicating existence or absence of VLAN headers following
> >>> the ETH header, as proposed in RFC
> >>>
> >>
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
> >> dpdk.org%2Farchives%2Fdev%2F2020-
> >>
> August%2F177349.html&data=02%7C01%7Cdekelp%40mellanox.com%7
> >>
> C7d12c0524d434c10f35a08d8392d3f53%7Ca652971c7d2e4d9ba6a4d149256f46
> >>
> 1b%7C0%7C0%7C637322213783925660&sdata=4rEXCifnCHd2%2FA6AU4
> >> F3vjBcD7CfoTpT0traJ2z1fBk%3D&reserved=0.
> >>> Because of ABI break this change is proposed for 20.11.
> >>>
> >>> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> >>> ---
> >>> doc/guides/rel_notes/deprecation.rst | 5 +++++
> >>> 1 file changed, 5 insertions(+)
> >>>
> >>> diff --git a/doc/guides/rel_notes/deprecation.rst
> >>> b/doc/guides/rel_notes/deprecation.rst
> >>> index 5201142..6241709 100644
> >>> --- a/doc/guides/rel_notes/deprecation.rst
> >>> +++ b/doc/guides/rel_notes/deprecation.rst
> >>> @@ -115,6 +115,11 @@ Deprecation Notices
> >>> following the IPv6 header, as proposed in RFC
> >>>
> >>
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
> >> dpdk.org%2Farchives%2Fdev%2F2020-
> >>
> August%2F177257.html&data=02%7C01%7Cdekelp%40mellanox.com%7
> >>
> C7d12c0524d434c10f35a08d8392d3f53%7Ca652971c7d2e4d9ba6a4d149256f46
> >>
> 1b%7C0%7C0%7C637322213783925660&sdata=Ix4Y2vEXMoBek%2BkXw
> >> QazY11a9mkc3aiZRJDX9cbUiZk%3D&reserved=0.
> >>>
> >>> +* ethdev: The ``struct rte_flow_item_eth`` struct will be modified
> >>> +to include
> >>> + additional values, indicating existence or absence of VLAN
> >>> +headers
> >>> + following the ETH header, as proposed in RFC
> >>> +
> >>
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
> >> dpdk.org%2Farchives%2Fdev%2F2020-
> >>
> August%2F177349.html&data=02%7C01%7Cdekelp%40mellanox.com%7
> >>
> C7d12c0524d434c10f35a08d8392d3f53%7Ca652971c7d2e4d9ba6a4d149256f46
> >>
> 1b%7C0%7C0%7C637322213783925660&sdata=4rEXCifnCHd2%2FA6AU4
> >> F3vjBcD7CfoTpT0traJ2z1fBk%3D&reserved=0.
> >>
> >> It is unclear how it will coexist with VLAN items in a pattern.
> > Same as the existing proto field coexist with following VLAN items.
> >
> >> Are you going to add consistency checks on ethdev-layer?
> > Not planned currently.
>
> IMHO, it is a must requirement if you introduce interface which has inter-
> dependencies and requires generic consistency check.
> It must be a part of ethdev, not every PMD.
OK, will take it into account in the implementation.
>
> >
> >>
> >> Also it is unclear why both bit fields and a number are required.
> > I agree it is redundancy, added for flexibility, but can leave num_of_vlans
> only.
> >
> >>
> >> Referenced RFC lacks definition of S-VLAN anc C-VLAN in the context.
> >> Exact definition to avoid ambiguity.
> > These are well defined terms, I will add reference to spec.
>
> Basically, I agree that changes in the ETH item may be required and OK to
> acknowledge the deprecation notice without deep technical details. The only
> requirement is API backward compatibility (i.e. just recompiled code to take
> ABI changes into account must work).
Of course, code including proposed change is built and runs.
>
> >
> >>
> >> So, it looks required to modify the structure, but I'd not stick to
> >> referenced RFC, since the result could differ a lot. May be reference
> >> it as just an example.
> > Thank you.
> >
> >
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce change in ETH item struct
2020-08-05 13:31 0% ` Dekel Peled
@ 2020-08-05 13:44 3% ` Andrew Rybchenko
2020-08-05 14:25 0% ` Dekel Peled
0 siblings, 1 reply; 200+ results
From: Andrew Rybchenko @ 2020-08-05 13:44 UTC (permalink / raw)
To: Dekel Peled, dev
Cc: jerinjacobk, stephen, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit, Asaf Penso
On 8/5/20 4:31 PM, Dekel Peled wrote:
> Thanks, PSB.
>
>> -----Original Message-----
>> From: Andrew Rybchenko <arybchenko@solarflare.com>
>> Sent: Wednesday, August 5, 2020 1:49 PM
>> To: Dekel Peled <dekelp@mellanox.com>; dev@dpdk.org
>> Cc: jerinjacobk@gmail.com; stephen@networkplumber.org;
>> ajit.khaparde@broadcom.com; maxime.coquelin@redhat.com;
>> olivier.matz@6wind.com; david.marchand@redhat.com;
>> ferruh.yigit@intel.com; Asaf Penso <asafp@mellanox.com>
>> Subject: Re: [dpdk-dev] [PATCH] doc: announce change in ETH item struct
>>
>> On 8/4/20 7:01 PM, Dekel Peled wrote:
>>> Struct rte_flow_item_eth will be modified to include additional
>>> values, indicating existence or absence of VLAN headers following the
>>> ETH header, as proposed in RFC
>>>
>> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
>> dpdk.org%2Farchives%2Fdev%2F2020-
>> August%2F177349.html&data=02%7C01%7Cdekelp%40mellanox.com%7
>> C7d12c0524d434c10f35a08d8392d3f53%7Ca652971c7d2e4d9ba6a4d149256f46
>> 1b%7C0%7C0%7C637322213783925660&sdata=4rEXCifnCHd2%2FA6AU4
>> F3vjBcD7CfoTpT0traJ2z1fBk%3D&reserved=0.
>>> Because of ABI break this change is proposed for 20.11.
>>>
>>> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
>>> ---
>>> doc/guides/rel_notes/deprecation.rst | 5 +++++
>>> 1 file changed, 5 insertions(+)
>>>
>>> diff --git a/doc/guides/rel_notes/deprecation.rst
>>> b/doc/guides/rel_notes/deprecation.rst
>>> index 5201142..6241709 100644
>>> --- a/doc/guides/rel_notes/deprecation.rst
>>> +++ b/doc/guides/rel_notes/deprecation.rst
>>> @@ -115,6 +115,11 @@ Deprecation Notices
>>> following the IPv6 header, as proposed in RFC
>>>
>> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
>> dpdk.org%2Farchives%2Fdev%2F2020-
>> August%2F177257.html&data=02%7C01%7Cdekelp%40mellanox.com%7
>> C7d12c0524d434c10f35a08d8392d3f53%7Ca652971c7d2e4d9ba6a4d149256f46
>> 1b%7C0%7C0%7C637322213783925660&sdata=Ix4Y2vEXMoBek%2BkXw
>> QazY11a9mkc3aiZRJDX9cbUiZk%3D&reserved=0.
>>>
>>> +* ethdev: The ``struct rte_flow_item_eth`` struct will be modified to
>>> +include
>>> + additional values, indicating existence or absence of VLAN headers
>>> + following the ETH header, as proposed in RFC
>>> +
>> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
>> dpdk.org%2Farchives%2Fdev%2F2020-
>> August%2F177349.html&data=02%7C01%7Cdekelp%40mellanox.com%7
>> C7d12c0524d434c10f35a08d8392d3f53%7Ca652971c7d2e4d9ba6a4d149256f46
>> 1b%7C0%7C0%7C637322213783925660&sdata=4rEXCifnCHd2%2FA6AU4
>> F3vjBcD7CfoTpT0traJ2z1fBk%3D&reserved=0.
>>
>> It is unclear how it will coexist with VLAN items in a pattern.
> Same as the existing proto field coexist with following VLAN items.
>
>> Are you going to add consistency checks on ethdev-layer?
> Not planned currently.
IMHO, it is a must requirement if you introduce interface which
has inter-dependencies and requires generic consistency check.
It must be a part of ethdev, not every PMD.
>
>>
>> Also it is unclear why both bit fields and a number are required.
> I agree it is redundancy, added for flexibility, but can leave num_of_vlans only.
>
>>
>> Referenced RFC lacks definition of S-VLAN anc C-VLAN in the context. Exact
>> definition to avoid ambiguity.
> These are well defined terms, I will add reference to spec.
Basically, I agree that changes in the ETH item may be
required and OK to acknowledge the deprecation notice
without deep technical details. The only requirement is
API backward compatibility (i.e. just recompiled code
to take ABI changes into account must work).
>
>>
>> So, it looks required to modify the structure, but I'd not stick to referenced
>> RFC, since the result could differ a lot. May be reference it as just an
>> example.
> Thank you.
>
>
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH] doc: announce change in ETH item struct
2020-08-05 10:49 0% ` Andrew Rybchenko
@ 2020-08-05 13:31 0% ` Dekel Peled
2020-08-05 13:44 3% ` Andrew Rybchenko
0 siblings, 1 reply; 200+ results
From: Dekel Peled @ 2020-08-05 13:31 UTC (permalink / raw)
To: Andrew Rybchenko, dev
Cc: jerinjacobk, stephen, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit, Asaf Penso
Thanks, PSB.
> -----Original Message-----
> From: Andrew Rybchenko <arybchenko@solarflare.com>
> Sent: Wednesday, August 5, 2020 1:49 PM
> To: Dekel Peled <dekelp@mellanox.com>; dev@dpdk.org
> Cc: jerinjacobk@gmail.com; stephen@networkplumber.org;
> ajit.khaparde@broadcom.com; maxime.coquelin@redhat.com;
> olivier.matz@6wind.com; david.marchand@redhat.com;
> ferruh.yigit@intel.com; Asaf Penso <asafp@mellanox.com>
> Subject: Re: [dpdk-dev] [PATCH] doc: announce change in ETH item struct
>
> On 8/4/20 7:01 PM, Dekel Peled wrote:
> > Struct rte_flow_item_eth will be modified to include additional
> > values, indicating existence or absence of VLAN headers following the
> > ETH header, as proposed in RFC
> >
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
> dpdk.org%2Farchives%2Fdev%2F2020-
> August%2F177349.html&data=02%7C01%7Cdekelp%40mellanox.com%7
> C7d12c0524d434c10f35a08d8392d3f53%7Ca652971c7d2e4d9ba6a4d149256f46
> 1b%7C0%7C0%7C637322213783925660&sdata=4rEXCifnCHd2%2FA6AU4
> F3vjBcD7CfoTpT0traJ2z1fBk%3D&reserved=0.
> > Because of ABI break this change is proposed for 20.11.
> >
> > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > ---
> > doc/guides/rel_notes/deprecation.rst | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/deprecation.rst
> > b/doc/guides/rel_notes/deprecation.rst
> > index 5201142..6241709 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -115,6 +115,11 @@ Deprecation Notices
> > following the IPv6 header, as proposed in RFC
> >
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
> dpdk.org%2Farchives%2Fdev%2F2020-
> August%2F177257.html&data=02%7C01%7Cdekelp%40mellanox.com%7
> C7d12c0524d434c10f35a08d8392d3f53%7Ca652971c7d2e4d9ba6a4d149256f46
> 1b%7C0%7C0%7C637322213783925660&sdata=Ix4Y2vEXMoBek%2BkXw
> QazY11a9mkc3aiZRJDX9cbUiZk%3D&reserved=0.
> >
> > +* ethdev: The ``struct rte_flow_item_eth`` struct will be modified to
> > +include
> > + additional values, indicating existence or absence of VLAN headers
> > + following the ETH header, as proposed in RFC
> > +
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.
> dpdk.org%2Farchives%2Fdev%2F2020-
> August%2F177349.html&data=02%7C01%7Cdekelp%40mellanox.com%7
> C7d12c0524d434c10f35a08d8392d3f53%7Ca652971c7d2e4d9ba6a4d149256f46
> 1b%7C0%7C0%7C637322213783925660&sdata=4rEXCifnCHd2%2FA6AU4
> F3vjBcD7CfoTpT0traJ2z1fBk%3D&reserved=0.
>
> It is unclear how it will coexist with VLAN items in a pattern.
Same as the existing proto field coexist with following VLAN items.
> Are you going to add consistency checks on ethdev-layer?
Not planned currently.
>
> Also it is unclear why both bit fields and a number are required.
I agree it is redundancy, added for flexibility, but can leave num_of_vlans only.
>
> Referenced RFC lacks definition of S-VLAN anc C-VLAN in the context. Exact
> definition to avoid ambiguity.
These are well defined terms, I will add reference to spec.
>
> So, it looks required to modify the structure, but I'd not stick to referenced
> RFC, since the result could differ a lot. May be reference it as just an
> example.
Thank you.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: add new field to rxq info struct
2020-08-05 9:24 8% [dpdk-dev] [PATCH] doc: add new field to rxq info struct Chengchang Tang
@ 2020-08-05 11:25 0% ` Andrew Rybchenko
2020-08-06 4:00 8% ` [dpdk-dev] [PATCH v2] " Chengchang Tang
2020-08-07 10:30 3% ` [dpdk-dev] [PATCH v3] " Chengchang Tang
2 siblings, 0 replies; 200+ results
From: Andrew Rybchenko @ 2020-08-05 11:25 UTC (permalink / raw)
To: Chengchang Tang, dev; +Cc: linuxarm, thomas, ferruh.yigit, stephen
On 8/5/20 12:24 PM, Chengchang Tang wrote:
> Struct rte_eth_rxq_info will be modified to include a new field, indicating
> the size of each buffer that could be used for hw to receive packets. Add
> this field to rte_eth_rxq_info to expose relevant information to upper
> layer users/application.
>
> For more details:
> https://mails.dpdk.org/archives/dev/2020-July/176135.html
>
> Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Few nits below
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index ea4cfa7..f931091 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -110,6 +110,15 @@ Deprecation Notices
> break the ABI checks, that is why change is planned for 20.11.
> The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
>
> +* ethdev: A new field named rx_buf_size will be added to the public data
I'd not name the field here. It is out-of-scope of the
deprecation notice. Field name may change on its way.
> + structure ``rte_eth_rxq_info`` to indicate the buffer size used in receiving
> + pkts for hw. when receive packets, hw DMA won't exceed this size. And it will
pkts -> packets
hw -> HW (2 cases)
when -> When
> + affect the number of fragments in receiving packets when scatter is enabled.
> + So, add this field to ``rte_eth_rxq_info`` to expose relevant information to
> + upper layer user/application.
> + This change is planed for 20.11. For more details:
> + https://mails.dpdk.org/archives/dev/2020-July/176135.html
> +
> * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
> ABI stable in the v19.11 release. The TM maintainer and other contributors have
> agreed to keep the TM APIs as experimental in expectation of additional spec
> --
> 2.7.4
>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce change in ETH item struct
2020-08-04 16:01 8% [dpdk-dev] [PATCH] doc: announce change in ETH item struct Dekel Peled
2020-08-05 3:39 0% ` Ajit Khaparde
@ 2020-08-05 10:49 0% ` Andrew Rybchenko
2020-08-05 13:31 0% ` Dekel Peled
2020-08-06 10:45 8% ` [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs Dekel Peled
2 siblings, 1 reply; 200+ results
From: Andrew Rybchenko @ 2020-08-05 10:49 UTC (permalink / raw)
To: Dekel Peled, dev
Cc: jerinjacobk, stephen, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit, asafp
On 8/4/20 7:01 PM, Dekel Peled wrote:
> Struct rte_flow_item_eth will be modified to include additional
> values, indicating existence or absence of VLAN headers following
> the ETH header, as proposed in RFC
> https://mails.dpdk.org/archives/dev/2020-August/177349.html.
> Because of ABI break this change is proposed for 20.11.
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 5201142..6241709 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -115,6 +115,11 @@ Deprecation Notices
> following the IPv6 header, as proposed in RFC
> https://mails.dpdk.org/archives/dev/2020-August/177257.html.
>
> +* ethdev: The ``struct rte_flow_item_eth`` struct will be modified to include
> + additional values, indicating existence or absence of VLAN headers
> + following the ETH header, as proposed in RFC
> + https://mails.dpdk.org/archives/dev/2020-August/177349.html.
It is unclear how it will coexist with VLAN items in a pattern.
Are you going to add consistency checks on ethdev-layer?
Also it is unclear why both bit fields and a number are
required.
Referenced RFC lacks definition of S-VLAN anc C-VLAN in
the context. Exact definition to avoid ambiguity.
So, it looks required to modify the structure, but I'd
not stick to referenced RFC, since the result could
differ a lot. May be reference it as just an example.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-05 9:18 4% ` Kinsella, Ray
@ 2020-08-05 10:07 0% ` Bruce Richardson
0 siblings, 0 replies; 200+ results
From: Bruce Richardson @ 2020-08-05 10:07 UTC (permalink / raw)
To: Kinsella, Ray
Cc: Jerin Jacob, Pavan Nikhilesh, Jerin Jacob, Neil Horman,
John McNamara, Marko Kovacevic, dpdk-dev, Thomas Monjalon,
David Marchand
On Wed, Aug 05, 2020 at 10:18:41AM +0100, Kinsella, Ray wrote:
>
>
> On 04/08/2020 18:18, Jerin Jacob wrote:
> > On Tue, Aug 4, 2020 at 9:54 PM Bruce Richardson
> > <bruce.richardson@intel.com> wrote:
> >>
> >> On Tue, Aug 04, 2020 at 09:33:14PM +0530, Jerin Jacob wrote:
> >>> On Tue, Aug 4, 2020 at 7:55 PM Bruce Richardson
> >>> <bruce.richardson@intel.com> wrote:
> >>>>
> >>>> On Tue, Aug 04, 2020 at 05:07:12PM +0530, Jerin Jacob wrote:
> >>>>> On Tue, Aug 4, 2020 at 4:12 PM Bruce Richardson
> >>>>> <bruce.richardson@intel.com> wrote:
> >>>>>>
> >>>>>> On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> >>>>>>> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >>>>>>>
> >>>>>>> Add 64 byte padding at the end of event device public structure to allow
> >>>>>>> future extensions.
> >>>>>>>
> >>>>>>> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >>>>>>> Acked-by: Jerin Jacob <jerinj@marvell.com>
> >>>>>>> ---
> >>>>>>> v2 Changes:
> >>>>>>> - Modify commit title.
> >>>>>>> - Add patch reference to doc.
> >>>>>>>
> >>>>>>> doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> >>>>>>> 1 file changed, 11 insertions(+)
> >>>>>>>
> >>>>>>> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> >>>>>>> index ea4cfa7a4..ec5db68e9 100644
> >>>>>>> --- a/doc/guides/rel_notes/deprecation.rst
> >>>>>>> +++ b/doc/guides/rel_notes/deprecation.rst
> >>>>>>> @@ -151,3 +151,14 @@ Deprecation Notices
> >>>>>>> Python 2 support will be completely removed in 20.11.
> >>>>>>> In 20.08, explicit deprecation warnings will be displayed when running
> >>>>>>> scripts with Python 2.
> >>>>>>> +
> >>>>>>> +* eventdev: A 64 byte padding is added at the end of the following structures
> >>>>>>> + in event device library to support future extensions:
> >>>>>>> + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> >>>>>>> + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> >>>>>>> + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> >>>>>>> + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> >>>>>>> + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> >>>>>>> + ``rte_event_timer_adapter_data``.
> >>>>>>> + Reference:
> >>>>>>> + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> >>>>>>> --
> >>>>>>
> >>>>>> I don't like this idea of adding lots of padding to the ends of these
> >>>>>> structures. For some structures, such as the public arrays for devices it
> >>>>>> may be necessary, but for all the conf structures passed as parameters to
> >>>>>> functions I think we can do better. Since these structures are passed by
> >>>>>> the user to various functions, function versioning can be used to ensure
> >>>>>> that the correct function in eventdev is always called. From there to the
> >>>>>> individual PMDs, we can implement ABI compatibility by either:
> >>>>>> 1. including the length of the struct as a parameter to the driver. (This is
> >>>>>> a bit similar to my proposal for rawdev [1])
> >>>>>> 2. including the ABI version as a parameter to the driver.
> >>>>>
> >>>>> But, Will the above solution work if the application is dependent on
> >>>>> struct size?
> >>>>> i.e change of s1 size will change offset of s3 i.e
> >>>>> app_sepecific_struct_s3. Right?
> >>>>> i.e DPDK version should not change the offset of s3. Right?
> >>>>>
> >>>>> example,
> >>>>> struct app_struct {
> >>>>> struct dpdk_public_struct_s1 s1;
> >>>>> struct dpdk_public_struct_s2 s2;
> >>>>> struct app_sepecific_struct_s3 s3;
> >>>>> }
> >>>>>
> >>>> Not sure what exactly you mean here. The actual offsets and sizes of the
> >>>> structs will obviously change as you change the struct, but the end
> >>>> compiled app has no idea of structs, all it knows of is offsets, which is
> >>>> why you provide ABI compatible versions of the functions which use "legacy"
> >>>> copies of the structs to ensure correct offsets. It's pretty much standard
> >>>> practice for ABI versioning.
> >>>
> >>> Currently, We have only function versioning(not structure versioning).
> >>> Are you suggesting having structure versioning?
> >>> Will it complicate the code in terms of readability and supporting multiple
> >>> structure versions aginst its support functions.
> >>>
> >>
> >> We don't, and can't version structures, only functions are versioned.
> >> Even if we do what you suggest and add a block of 64-bytes expansion room
> >> at the end of the structures, how is the function you are calling expected
> >> to know what the structure actually contains? For example, if you add a
> >> field to the end, and reduce the padding by 8 bytes, your structure is
> >> still the same size, and how does the called function know whether X or X+8
> >> bytes are valid in it. Basically, you still need to version all
> >> functions using the structure, just as if you didn't bother extending the
> >> struct.
> >
> > Yes. We need function versioning for sure if we change the behavior of
> > the function.
> > Is function version + reserved field enough to decode the correct value from
> > the reserved filed from the structure.
> >
> > My concern is, Let say, we are making the change in structure a->b and
> > function c->d
> > assisted with it.
> >
> > In the reserved filed case:
> > - struct a remains same(we will adding the fields in reserved filed)
> > - the function will have c and d version and both using struct a
> >
> > In another scheme:
> > - The application needs to change where versioned function(c or d) need to
> > give associate structure manually. Right? If it is manually, it will
> > be huge change
> > in application. Right?
> >
> > How an application can express the correct structure mapping?
> > Will it it be like
> > rte_substrem_v21(struct rte_subsystem_conf_v21 *config)?
> > vs
> > rte_substrem_v21(struct rte_subsystem_conf *config)?> where rte_subsystem_conf has reserved filed.
>
> So the ABI policy approach for doing this is
>
> rte_substrem_v21(struct rte_subsystem_conf_v21 *config)
>
> instead of
>
> rte_substrem_v21(struct rte_subsystem_conf *config) (with extension padding).
>
> There are benefits and drawbacks with each approach, these include ...
>
> The padding approach assumes you are always happy to tack whatever field you want
> onto the end of the structure, when in many cases it's more natural home is usually
> in the middle or beginning. Then there is also dead/unused and uninitialized memory,
> to be conscious of.
>
> However what you say is completely correct, if I have a v21 version of the function,
> only it should be looking at the new field/additional bytes in the structure.
>
> The alternative is to version the structure along with the function.
> And this is what is described in the ABI policy.
>
> The obvious drawback with this approach is that if you have a structure that is used across
> a large number of functions ... it can be a real headache as they all need to be versioned.
>
> The benefit with this approach is that it is completely explicit,
> which function and structure versions are associated.
>
IMHO, the only time we should look to use padding is for structures like
the ethdev structure that are internal-only but used across so many
functions and inline functions that it simply becomes impossible to version
them. For any structures that are simply passed as parameters, which I
believe applies to all structs referred to by this deprecation notice,
function versioning should be sufficient to deal with any issues.
Regards,
/Bruce
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH] doc: add new field to rxq info struct
@ 2020-08-05 9:24 8% Chengchang Tang
2020-08-05 11:25 0% ` Andrew Rybchenko
` (2 more replies)
0 siblings, 3 replies; 200+ results
From: Chengchang Tang @ 2020-08-05 9:24 UTC (permalink / raw)
To: dev; +Cc: linuxarm, thomas, ferruh.yigit, arybchenko, stephen
Struct rte_eth_rxq_info will be modified to include a new field, indicating
the size of each buffer that could be used for hw to receive packets. Add
this field to rte_eth_rxq_info to expose relevant information to upper
layer users/application.
For more details:
https://mails.dpdk.org/archives/dev/2020-July/176135.html
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
---
doc/guides/rel_notes/deprecation.rst | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index ea4cfa7..f931091 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -110,6 +110,15 @@ Deprecation Notices
break the ABI checks, that is why change is planned for 20.11.
The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
+* ethdev: A new field named rx_buf_size will be added to the public data
+ structure ``rte_eth_rxq_info`` to indicate the buffer size used in receiving
+ pkts for hw. when receive packets, hw DMA won't exceed this size. And it will
+ affect the number of fragments in receiving packets when scatter is enabled.
+ So, add this field to ``rte_eth_rxq_info`` to expose relevant information to
+ upper layer user/application.
+ This change is planed for 20.11. For more details:
+ https://mails.dpdk.org/archives/dev/2020-July/176135.html
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
2.7.4
^ permalink raw reply [relevance 8%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-04 17:18 0% ` Jerin Jacob
@ 2020-08-05 9:18 4% ` Kinsella, Ray
2020-08-05 10:07 0% ` Bruce Richardson
0 siblings, 1 reply; 200+ results
From: Kinsella, Ray @ 2020-08-05 9:18 UTC (permalink / raw)
To: Jerin Jacob, Bruce Richardson
Cc: Pavan Nikhilesh, Jerin Jacob, Neil Horman, John McNamara,
Marko Kovacevic, dpdk-dev, Thomas Monjalon, David Marchand
On 04/08/2020 18:18, Jerin Jacob wrote:
> On Tue, Aug 4, 2020 at 9:54 PM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
>>
>> On Tue, Aug 04, 2020 at 09:33:14PM +0530, Jerin Jacob wrote:
>>> On Tue, Aug 4, 2020 at 7:55 PM Bruce Richardson
>>> <bruce.richardson@intel.com> wrote:
>>>>
>>>> On Tue, Aug 04, 2020 at 05:07:12PM +0530, Jerin Jacob wrote:
>>>>> On Tue, Aug 4, 2020 at 4:12 PM Bruce Richardson
>>>>> <bruce.richardson@intel.com> wrote:
>>>>>>
>>>>>> On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
>>>>>>> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>>>>>>>
>>>>>>> Add 64 byte padding at the end of event device public structure to allow
>>>>>>> future extensions.
>>>>>>>
>>>>>>> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
>>>>>>> Acked-by: Jerin Jacob <jerinj@marvell.com>
>>>>>>> ---
>>>>>>> v2 Changes:
>>>>>>> - Modify commit title.
>>>>>>> - Add patch reference to doc.
>>>>>>>
>>>>>>> doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
>>>>>>> 1 file changed, 11 insertions(+)
>>>>>>>
>>>>>>> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
>>>>>>> index ea4cfa7a4..ec5db68e9 100644
>>>>>>> --- a/doc/guides/rel_notes/deprecation.rst
>>>>>>> +++ b/doc/guides/rel_notes/deprecation.rst
>>>>>>> @@ -151,3 +151,14 @@ Deprecation Notices
>>>>>>> Python 2 support will be completely removed in 20.11.
>>>>>>> In 20.08, explicit deprecation warnings will be displayed when running
>>>>>>> scripts with Python 2.
>>>>>>> +
>>>>>>> +* eventdev: A 64 byte padding is added at the end of the following structures
>>>>>>> + in event device library to support future extensions:
>>>>>>> + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
>>>>>>> + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
>>>>>>> + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
>>>>>>> + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
>>>>>>> + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
>>>>>>> + ``rte_event_timer_adapter_data``.
>>>>>>> + Reference:
>>>>>>> + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
>>>>>>> --
>>>>>>
>>>>>> I don't like this idea of adding lots of padding to the ends of these
>>>>>> structures. For some structures, such as the public arrays for devices it
>>>>>> may be necessary, but for all the conf structures passed as parameters to
>>>>>> functions I think we can do better. Since these structures are passed by
>>>>>> the user to various functions, function versioning can be used to ensure
>>>>>> that the correct function in eventdev is always called. From there to the
>>>>>> individual PMDs, we can implement ABI compatibility by either:
>>>>>> 1. including the length of the struct as a parameter to the driver. (This is
>>>>>> a bit similar to my proposal for rawdev [1])
>>>>>> 2. including the ABI version as a parameter to the driver.
>>>>>
>>>>> But, Will the above solution work if the application is dependent on
>>>>> struct size?
>>>>> i.e change of s1 size will change offset of s3 i.e
>>>>> app_sepecific_struct_s3. Right?
>>>>> i.e DPDK version should not change the offset of s3. Right?
>>>>>
>>>>> example,
>>>>> struct app_struct {
>>>>> struct dpdk_public_struct_s1 s1;
>>>>> struct dpdk_public_struct_s2 s2;
>>>>> struct app_sepecific_struct_s3 s3;
>>>>> }
>>>>>
>>>> Not sure what exactly you mean here. The actual offsets and sizes of the
>>>> structs will obviously change as you change the struct, but the end
>>>> compiled app has no idea of structs, all it knows of is offsets, which is
>>>> why you provide ABI compatible versions of the functions which use "legacy"
>>>> copies of the structs to ensure correct offsets. It's pretty much standard
>>>> practice for ABI versioning.
>>>
>>> Currently, We have only function versioning(not structure versioning).
>>> Are you suggesting having structure versioning?
>>> Will it complicate the code in terms of readability and supporting multiple
>>> structure versions aginst its support functions.
>>>
>>
>> We don't, and can't version structures, only functions are versioned.
>> Even if we do what you suggest and add a block of 64-bytes expansion room
>> at the end of the structures, how is the function you are calling expected
>> to know what the structure actually contains? For example, if you add a
>> field to the end, and reduce the padding by 8 bytes, your structure is
>> still the same size, and how does the called function know whether X or X+8
>> bytes are valid in it. Basically, you still need to version all
>> functions using the structure, just as if you didn't bother extending the
>> struct.
>
> Yes. We need function versioning for sure if we change the behavior of
> the function.
> Is function version + reserved field enough to decode the correct value from
> the reserved filed from the structure.
>
> My concern is, Let say, we are making the change in structure a->b and
> function c->d
> assisted with it.
>
> In the reserved filed case:
> - struct a remains same(we will adding the fields in reserved filed)
> - the function will have c and d version and both using struct a
>
> In another scheme:
> - The application needs to change where versioned function(c or d) need to
> give associate structure manually. Right? If it is manually, it will
> be huge change
> in application. Right?
>
> How an application can express the correct structure mapping?
> Will it it be like
> rte_substrem_v21(struct rte_subsystem_conf_v21 *config)?
> vs
> rte_substrem_v21(struct rte_subsystem_conf *config)?> where rte_subsystem_conf has reserved filed.
So the ABI policy approach for doing this is
rte_substrem_v21(struct rte_subsystem_conf_v21 *config)
instead of
rte_substrem_v21(struct rte_subsystem_conf *config) (with extension padding).
There are benefits and drawbacks with each approach, these include ...
The padding approach assumes you are always happy to tack whatever field you want
onto the end of the structure, when in many cases it's more natural home is usually
in the middle or beginning. Then there is also dead/unused and uninitialized memory,
to be conscious of.
However what you say is completely correct, if I have a v21 version of the function,
only it should be looking at the new field/additional bytes in the structure.
The alternative is to version the structure along with the function.
And this is what is described in the ABI policy.
The obvious drawback with this approach is that if you have a structure that is used across
a large number of functions ... it can be a real headache as they all need to be versioned.
The benefit with this approach is that it is completely explicit,
which function and structure versions are associated.
>
>>
>>>>
>>>> The real complication arises because the actual eventdev driver functions
>>>> are not called directly with the linker resolving symbol versioning.
>>>> Instead they are called using function pointers from the code. This is why
>>>> one needs to add in the additional parameter to the driver APIs so that the
>>>> ABI info - be it struct size or version - can be passed from the versioned
>>>> eventdev library function through to the driver.
>>>
>>> If I understand it correctly, it is easy for rawdev subsystem as
>>> config structure as _opaque_.
>>> But in the case for ethdev, cryptodev, eventdev, config structure are
>>> not opaque.
>>>
>>
>> Well, actually it's more complicated for rawdev because the structures are
>> opaque, so the value passed could be anything. With eventdev, they will
>> ever only be one or two possible values, so you just need enough info to
>> distinguish if it's the structure from version X, or the structure from
>> version Y you are passing.
>>
>>> If we take structure versioning, Is n't call for adding structure
>>> version change to
>>> functions that's been associated with(Kind of M x N case to make a
>>> structure change. Here M means
>>> offending structure to make change and N means function associated
>>> with structure)
>>>
>> Yes, to version any structure you basically do a new version of every
>> function using it, or using the changed fields. However, adding padding is
>> not going to remove that need.
>
> See above.
>
>>
>> Regards,
>> /Bruce
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-05 8:46 0% ` Kinsella, Ray
@ 2020-08-05 9:10 0% ` Jerin Jacob
2020-08-06 0:59 0% ` Stephen Hemminger
0 siblings, 1 reply; 200+ results
From: Jerin Jacob @ 2020-08-05 9:10 UTC (permalink / raw)
To: Kinsella, Ray
Cc: Stephen Hemminger, Bruce Richardson, Pavan Nikhilesh,
Jerin Jacob, Neil Horman, John McNamara, Marko Kovacevic,
dpdk-dev, Thomas Monjalon, David Marchand
On Wed, Aug 5, 2020 at 2:16 PM Kinsella, Ray <mdr@ashroe.eu> wrote:
>
>
>
> On 04/08/2020 17:20, Stephen Hemminger wrote:
> > On Tue, 4 Aug 2020 11:41:53 +0100
> > Bruce Richardson <bruce.richardson@intel.com> wrote:
> >
> >> On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> >>> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >>>
> >>> Add 64 byte padding at the end of event device public structure to allow
> >>> future extensions.
> >>>
> >>> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >>> Acked-by: Jerin Jacob <jerinj@marvell.com>
> >>> ---
> >>> v2 Changes:
> >>> - Modify commit title.
> >>> - Add patch reference to doc.
> >>>
> >>> doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> >>> 1 file changed, 11 insertions(+)
> >>>
> >>> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> >>> index ea4cfa7a4..ec5db68e9 100644
> >>> --- a/doc/guides/rel_notes/deprecation.rst
> >>> +++ b/doc/guides/rel_notes/deprecation.rst
> >>> @@ -151,3 +151,14 @@ Deprecation Notices
> >>> Python 2 support will be completely removed in 20.11.
> >>> In 20.08, explicit deprecation warnings will be displayed when running
> >>> scripts with Python 2.
> >>> +
> >>> +* eventdev: A 64 byte padding is added at the end of the following structures
> >>> + in event device library to support future extensions:
> >>> + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> >>> + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> >>> + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> >>> + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> >>> + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> >>> + ``rte_event_timer_adapter_data``.
> >>> + Reference:
> >>> + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> >>> --
> >>
> >> I don't like this idea of adding lots of padding to the ends of these
> >> structures. For some structures, such as the public arrays for devices it
> >> may be necessary, but for all the conf structures passed as parameters to
> >> functions I think we can do better. Since these structures are passed by
> >> the user to various functions, function versioning can be used to ensure
> >> that the correct function in eventdev is always called. From there to the
> >> individual PMDs, we can implement ABI compatibility by either:
> >> 1. including the length of the struct as a parameter to the driver. (This is
> >> a bit similar to my proposal for rawdev [1])
> >> 2. including the ABI version as a parameter to the driver.
> >>
> >> Regards
> >> /Bruce
> >>
> >> [1] http://inbox.dpdk.org/dev/?q=enhance+rawdev+APIs
> >
> > This is a bad idea.
> >
> > Reserved fields won't work because nothing requires that the application
> > zero them. You can't start using them later because the application
> > may put uninitialized or junk data there.
> >
>
> +1, to Stephens comments.
Since the problem is not specific to one substem, if we need to add a
field in config structures,
What will the expected way of handling across the DPDK?
How about
1) Public init functions to clear the params?
2) Different struct version for specific functions like
http://mails.dpdk.org/archives/dev/2020-August/177357.html
Or any other scheme in mind?
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-04 16:20 0% ` Stephen Hemminger
@ 2020-08-05 8:46 0% ` Kinsella, Ray
2020-08-05 9:10 0% ` Jerin Jacob
0 siblings, 1 reply; 200+ results
From: Kinsella, Ray @ 2020-08-05 8:46 UTC (permalink / raw)
To: Stephen Hemminger, Bruce Richardson
Cc: pbhagavatula, jerinj, Neil Horman, John McNamara,
Marko Kovacevic, dev, thomas, david.marchand
On 04/08/2020 17:20, Stephen Hemminger wrote:
> On Tue, 4 Aug 2020 11:41:53 +0100
> Bruce Richardson <bruce.richardson@intel.com> wrote:
>
>> On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
>>> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>>>
>>> Add 64 byte padding at the end of event device public structure to allow
>>> future extensions.
>>>
>>> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
>>> Acked-by: Jerin Jacob <jerinj@marvell.com>
>>> ---
>>> v2 Changes:
>>> - Modify commit title.
>>> - Add patch reference to doc.
>>>
>>> doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
>>> 1 file changed, 11 insertions(+)
>>>
>>> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
>>> index ea4cfa7a4..ec5db68e9 100644
>>> --- a/doc/guides/rel_notes/deprecation.rst
>>> +++ b/doc/guides/rel_notes/deprecation.rst
>>> @@ -151,3 +151,14 @@ Deprecation Notices
>>> Python 2 support will be completely removed in 20.11.
>>> In 20.08, explicit deprecation warnings will be displayed when running
>>> scripts with Python 2.
>>> +
>>> +* eventdev: A 64 byte padding is added at the end of the following structures
>>> + in event device library to support future extensions:
>>> + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
>>> + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
>>> + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
>>> + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
>>> + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
>>> + ``rte_event_timer_adapter_data``.
>>> + Reference:
>>> + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
>>> --
>>
>> I don't like this idea of adding lots of padding to the ends of these
>> structures. For some structures, such as the public arrays for devices it
>> may be necessary, but for all the conf structures passed as parameters to
>> functions I think we can do better. Since these structures are passed by
>> the user to various functions, function versioning can be used to ensure
>> that the correct function in eventdev is always called. From there to the
>> individual PMDs, we can implement ABI compatibility by either:
>> 1. including the length of the struct as a parameter to the driver. (This is
>> a bit similar to my proposal for rawdev [1])
>> 2. including the ABI version as a parameter to the driver.
>>
>> Regards
>> /Bruce
>>
>> [1] http://inbox.dpdk.org/dev/?q=enhance+rawdev+APIs
>
> This is a bad idea.
>
> Reserved fields won't work because nothing requires that the application
> zero them. You can't start using them later because the application
> may put uninitialized or junk data there.
>
+1, to Stephens comments.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v4 7/9] devtools: support python3 only
2020-08-04 14:07 4% ` [dpdk-dev] [PATCH v4 7/9] devtools: support python3 only Louise Kilheeney
@ 2020-08-05 8:44 0% ` Kinsella, Ray
0 siblings, 0 replies; 200+ results
From: Kinsella, Ray @ 2020-08-05 8:44 UTC (permalink / raw)
To: Louise Kilheeney, dev
Cc: anatoly.burakov, bruce.richardson, robin.jarry, Neil Horman
On 04/08/2020 15:07, Louise Kilheeney wrote:
> Changed script to explicitly use python3 only to avoid
> maintaining python 2 and removed deprecation notice.
>
> Cc: Neil Horman <nhorman@tuxdriver.com>
> Cc: Ray Kinsella <mdr@ashroe.eu>
>
> Signed-off-by: Louise Kilheeney <louise.kilheeney@intel.com>
> ---
> devtools/update_version_map_abi.py | 7 +------
> 1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/devtools/update_version_map_abi.py b/devtools/update_version_map_abi.py
> index 80a61641ed..830e6c58c8 100755
> --- a/devtools/update_version_map_abi.py
> +++ b/devtools/update_version_map_abi.py
> @@ -1,4 +1,4 @@
> -#!/usr/bin/env python
> +#!/usr/bin/env python3
> # SPDX-License-Identifier: BSD-3-Clause
> # Copyright(c) 2019 Intel Corporation
>
> @@ -9,7 +9,6 @@
> from the devtools/update-abi.sh utility.
> """
>
> -from __future__ import print_function
> import argparse
> import sys
> import re
> @@ -160,10 +159,6 @@ def __generate_internal_abi(f_out, lines):
> print("};", file=f_out)
>
> def __main():
> - if sys.version_info.major < 3:
> - print("WARNING: Python 2 is deprecated for use in DPDK, and will not work in future releases.", file=sys.stderr)
> - print("Please use Python 3 instead", file=sys.stderr)
> -
> arg_parser = argparse.ArgumentParser(
> description='Merge versions in linker version script.')
>
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce change in ETH item struct
2020-08-04 16:01 8% [dpdk-dev] [PATCH] doc: announce change in ETH item struct Dekel Peled
@ 2020-08-05 3:39 0% ` Ajit Khaparde
2020-08-05 10:49 0% ` Andrew Rybchenko
2020-08-06 10:45 8% ` [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs Dekel Peled
2 siblings, 0 replies; 200+ results
From: Ajit Khaparde @ 2020-08-05 3:39 UTC (permalink / raw)
To: Dekel Peled
Cc: dpdk-dev, Jerin Jacob, Stephen Hemminger, Andrew Rybchenko,
maxime.coquelin, Olivier Matz, David Marchand, Ferruh Yigit,
Asaf Penso
On Tue, Aug 4, 2020 at 9:07 AM Dekel Peled <dekelp@mellanox.com> wrote:
> Struct rte_flow_item_eth will be modified to include additional
> values, indicating existence or absence of VLAN headers following
> the ETH header, as proposed in RFC
> https://mails.dpdk.org/archives/dev/2020-August/177349.html.
> Because of ABI break this change is proposed for 20.11.
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst
> b/doc/guides/rel_notes/deprecation.rst
> index 5201142..6241709 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -115,6 +115,11 @@ Deprecation Notices
> following the IPv6 header, as proposed in RFC
> https://mails.dpdk.org/archives/dev/2020-August/177257.html.
>
> +* ethdev: The ``struct rte_flow_item_eth`` struct will be modified to
> include
> + additional values, indicating existence or absence of VLAN headers
> + following the ETH header, as proposed in RFC
> + https://mails.dpdk.org/archives/dev/2020-August/177349.html.
> +
> * traffic manager: All traffic manager API's in ``rte_tm.h`` were
> mistakenly made
> ABI stable in the v19.11 release. The TM maintainer and other
> contributors have
> agreed to keep the TM APIs as experimental in expectation of additional
> spec
> --
> 1.8.3.1
>
>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-04 16:24 0% ` Bruce Richardson
@ 2020-08-04 17:18 0% ` Jerin Jacob
2020-08-05 9:18 4% ` Kinsella, Ray
0 siblings, 1 reply; 200+ results
From: Jerin Jacob @ 2020-08-04 17:18 UTC (permalink / raw)
To: Bruce Richardson
Cc: Pavan Nikhilesh, Jerin Jacob, Ray Kinsella, Neil Horman,
John McNamara, Marko Kovacevic, dpdk-dev, Thomas Monjalon,
David Marchand
On Tue, Aug 4, 2020 at 9:54 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Tue, Aug 04, 2020 at 09:33:14PM +0530, Jerin Jacob wrote:
> > On Tue, Aug 4, 2020 at 7:55 PM Bruce Richardson
> > <bruce.richardson@intel.com> wrote:
> > >
> > > On Tue, Aug 04, 2020 at 05:07:12PM +0530, Jerin Jacob wrote:
> > > > On Tue, Aug 4, 2020 at 4:12 PM Bruce Richardson
> > > > <bruce.richardson@intel.com> wrote:
> > > > >
> > > > > On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> > > > > > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > > > > >
> > > > > > Add 64 byte padding at the end of event device public structure to allow
> > > > > > future extensions.
> > > > > >
> > > > > > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > > > > > Acked-by: Jerin Jacob <jerinj@marvell.com>
> > > > > > ---
> > > > > > v2 Changes:
> > > > > > - Modify commit title.
> > > > > > - Add patch reference to doc.
> > > > > >
> > > > > > doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> > > > > > 1 file changed, 11 insertions(+)
> > > > > >
> > > > > > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > > > > > index ea4cfa7a4..ec5db68e9 100644
> > > > > > --- a/doc/guides/rel_notes/deprecation.rst
> > > > > > +++ b/doc/guides/rel_notes/deprecation.rst
> > > > > > @@ -151,3 +151,14 @@ Deprecation Notices
> > > > > > Python 2 support will be completely removed in 20.11.
> > > > > > In 20.08, explicit deprecation warnings will be displayed when running
> > > > > > scripts with Python 2.
> > > > > > +
> > > > > > +* eventdev: A 64 byte padding is added at the end of the following structures
> > > > > > + in event device library to support future extensions:
> > > > > > + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> > > > > > + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> > > > > > + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> > > > > > + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> > > > > > + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> > > > > > + ``rte_event_timer_adapter_data``.
> > > > > > + Reference:
> > > > > > + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> > > > > > --
> > > > >
> > > > > I don't like this idea of adding lots of padding to the ends of these
> > > > > structures. For some structures, such as the public arrays for devices it
> > > > > may be necessary, but for all the conf structures passed as parameters to
> > > > > functions I think we can do better. Since these structures are passed by
> > > > > the user to various functions, function versioning can be used to ensure
> > > > > that the correct function in eventdev is always called. From there to the
> > > > > individual PMDs, we can implement ABI compatibility by either:
> > > > > 1. including the length of the struct as a parameter to the driver. (This is
> > > > > a bit similar to my proposal for rawdev [1])
> > > > > 2. including the ABI version as a parameter to the driver.
> > > >
> > > > But, Will the above solution work if the application is dependent on
> > > > struct size?
> > > > i.e change of s1 size will change offset of s3 i.e
> > > > app_sepecific_struct_s3. Right?
> > > > i.e DPDK version should not change the offset of s3. Right?
> > > >
> > > > example,
> > > > struct app_struct {
> > > > struct dpdk_public_struct_s1 s1;
> > > > struct dpdk_public_struct_s2 s2;
> > > > struct app_sepecific_struct_s3 s3;
> > > > }
> > > >
> > > Not sure what exactly you mean here. The actual offsets and sizes of the
> > > structs will obviously change as you change the struct, but the end
> > > compiled app has no idea of structs, all it knows of is offsets, which is
> > > why you provide ABI compatible versions of the functions which use "legacy"
> > > copies of the structs to ensure correct offsets. It's pretty much standard
> > > practice for ABI versioning.
> >
> > Currently, We have only function versioning(not structure versioning).
> > Are you suggesting having structure versioning?
> > Will it complicate the code in terms of readability and supporting multiple
> > structure versions aginst its support functions.
> >
>
> We don't, and can't version structures, only functions are versioned.
> Even if we do what you suggest and add a block of 64-bytes expansion room
> at the end of the structures, how is the function you are calling expected
> to know what the structure actually contains? For example, if you add a
> field to the end, and reduce the padding by 8 bytes, your structure is
> still the same size, and how does the called function know whether X or X+8
> bytes are valid in it. Basically, you still need to version all
> functions using the structure, just as if you didn't bother extending the
> struct.
Yes. We need function versioning for sure if we change the behavior of
the function.
Is function version + reserved field enough to decode the correct value from
the reserved filed from the structure.
My concern is, Let say, we are making the change in structure a->b and
function c->d
assisted with it.
In the reserved filed case:
- struct a remains same(we will adding the fields in reserved filed)
- the function will have c and d version and both using struct a
In another scheme:
- The application needs to change where versioned function(c or d) need to
give associate structure manually. Right? If it is manually, it will
be huge change
in application. Right?
How an application can express the correct structure mapping?
Will it it be like
rte_substrem_v21(struct rte_subsystem_conf_v21 *config)?
vs
rte_substrem_v21(struct rte_subsystem_conf *config)?
where rte_subsystem_conf has reserved filed.
>
> > >
> > > The real complication arises because the actual eventdev driver functions
> > > are not called directly with the linker resolving symbol versioning.
> > > Instead they are called using function pointers from the code. This is why
> > > one needs to add in the additional parameter to the driver APIs so that the
> > > ABI info - be it struct size or version - can be passed from the versioned
> > > eventdev library function through to the driver.
> >
> > If I understand it correctly, it is easy for rawdev subsystem as
> > config structure as _opaque_.
> > But in the case for ethdev, cryptodev, eventdev, config structure are
> > not opaque.
> >
>
> Well, actually it's more complicated for rawdev because the structures are
> opaque, so the value passed could be anything. With eventdev, they will
> ever only be one or two possible values, so you just need enough info to
> distinguish if it's the structure from version X, or the structure from
> version Y you are passing.
>
> > If we take structure versioning, Is n't call for adding structure
> > version change to
> > functions that's been associated with(Kind of M x N case to make a
> > structure change. Here M means
> > offending structure to make change and N means function associated
> > with structure)
> >
> Yes, to version any structure you basically do a new version of every
> function using it, or using the changed fields. However, adding padding is
> not going to remove that need.
See above.
>
> Regards,
> /Bruce
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-04 16:03 0% ` Jerin Jacob
@ 2020-08-04 16:24 0% ` Bruce Richardson
2020-08-04 17:18 0% ` Jerin Jacob
0 siblings, 1 reply; 200+ results
From: Bruce Richardson @ 2020-08-04 16:24 UTC (permalink / raw)
To: Jerin Jacob
Cc: Pavan Nikhilesh, Jerin Jacob, Ray Kinsella, Neil Horman,
John McNamara, Marko Kovacevic, dpdk-dev, Thomas Monjalon,
David Marchand
On Tue, Aug 04, 2020 at 09:33:14PM +0530, Jerin Jacob wrote:
> On Tue, Aug 4, 2020 at 7:55 PM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > On Tue, Aug 04, 2020 at 05:07:12PM +0530, Jerin Jacob wrote:
> > > On Tue, Aug 4, 2020 at 4:12 PM Bruce Richardson
> > > <bruce.richardson@intel.com> wrote:
> > > >
> > > > On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> > > > > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > > > >
> > > > > Add 64 byte padding at the end of event device public structure to allow
> > > > > future extensions.
> > > > >
> > > > > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > > > > Acked-by: Jerin Jacob <jerinj@marvell.com>
> > > > > ---
> > > > > v2 Changes:
> > > > > - Modify commit title.
> > > > > - Add patch reference to doc.
> > > > >
> > > > > doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> > > > > 1 file changed, 11 insertions(+)
> > > > >
> > > > > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > > > > index ea4cfa7a4..ec5db68e9 100644
> > > > > --- a/doc/guides/rel_notes/deprecation.rst
> > > > > +++ b/doc/guides/rel_notes/deprecation.rst
> > > > > @@ -151,3 +151,14 @@ Deprecation Notices
> > > > > Python 2 support will be completely removed in 20.11.
> > > > > In 20.08, explicit deprecation warnings will be displayed when running
> > > > > scripts with Python 2.
> > > > > +
> > > > > +* eventdev: A 64 byte padding is added at the end of the following structures
> > > > > + in event device library to support future extensions:
> > > > > + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> > > > > + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> > > > > + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> > > > > + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> > > > > + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> > > > > + ``rte_event_timer_adapter_data``.
> > > > > + Reference:
> > > > > + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> > > > > --
> > > >
> > > > I don't like this idea of adding lots of padding to the ends of these
> > > > structures. For some structures, such as the public arrays for devices it
> > > > may be necessary, but for all the conf structures passed as parameters to
> > > > functions I think we can do better. Since these structures are passed by
> > > > the user to various functions, function versioning can be used to ensure
> > > > that the correct function in eventdev is always called. From there to the
> > > > individual PMDs, we can implement ABI compatibility by either:
> > > > 1. including the length of the struct as a parameter to the driver. (This is
> > > > a bit similar to my proposal for rawdev [1])
> > > > 2. including the ABI version as a parameter to the driver.
> > >
> > > But, Will the above solution work if the application is dependent on
> > > struct size?
> > > i.e change of s1 size will change offset of s3 i.e
> > > app_sepecific_struct_s3. Right?
> > > i.e DPDK version should not change the offset of s3. Right?
> > >
> > > example,
> > > struct app_struct {
> > > struct dpdk_public_struct_s1 s1;
> > > struct dpdk_public_struct_s2 s2;
> > > struct app_sepecific_struct_s3 s3;
> > > }
> > >
> > Not sure what exactly you mean here. The actual offsets and sizes of the
> > structs will obviously change as you change the struct, but the end
> > compiled app has no idea of structs, all it knows of is offsets, which is
> > why you provide ABI compatible versions of the functions which use "legacy"
> > copies of the structs to ensure correct offsets. It's pretty much standard
> > practice for ABI versioning.
>
> Currently, We have only function versioning(not structure versioning).
> Are you suggesting having structure versioning?
> Will it complicate the code in terms of readability and supporting multiple
> structure versions aginst its support functions.
>
We don't, and can't version structures, only functions are versioned.
Even if we do what you suggest and add a block of 64-bytes expansion room
at the end of the structures, how is the function you are calling expected
to know what the structure actually contains? For example, if you add a
field to the end, and reduce the padding by 8 bytes, your structure is
still the same size, and how does the called function know whether X or X+8
bytes are valid in it. Basically, you still need to version all
functions using the structure, just as if you didn't bother extending the
struct.
> >
> > The real complication arises because the actual eventdev driver functions
> > are not called directly with the linker resolving symbol versioning.
> > Instead they are called using function pointers from the code. This is why
> > one needs to add in the additional parameter to the driver APIs so that the
> > ABI info - be it struct size or version - can be passed from the versioned
> > eventdev library function through to the driver.
>
> If I understand it correctly, it is easy for rawdev subsystem as
> config structure as _opaque_.
> But in the case for ethdev, cryptodev, eventdev, config structure are
> not opaque.
>
Well, actually it's more complicated for rawdev because the structures are
opaque, so the value passed could be anything. With eventdev, they will
ever only be one or two possible values, so you just need enough info to
distinguish if it's the structure from version X, or the structure from
version Y you are passing.
> If we take structure versioning, Is n't call for adding structure
> version change to
> functions that's been associated with(Kind of M x N case to make a
> structure change. Here M means
> offending structure to make change and N means function associated
> with structure)
>
Yes, to version any structure you basically do a new version of every
function using it, or using the changed fields. However, adding padding is
not going to remove that need.
Regards,
/Bruce
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-04 10:41 4% ` Bruce Richardson
2020-08-04 11:37 0% ` Jerin Jacob
@ 2020-08-04 16:20 0% ` Stephen Hemminger
2020-08-05 8:46 0% ` Kinsella, Ray
1 sibling, 1 reply; 200+ results
From: Stephen Hemminger @ 2020-08-04 16:20 UTC (permalink / raw)
To: Bruce Richardson
Cc: pbhagavatula, jerinj, Ray Kinsella, Neil Horman, John McNamara,
Marko Kovacevic, dev, thomas, david.marchand
On Tue, 4 Aug 2020 11:41:53 +0100
Bruce Richardson <bruce.richardson@intel.com> wrote:
> On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >
> > Add 64 byte padding at the end of event device public structure to allow
> > future extensions.
> >
> > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > Acked-by: Jerin Jacob <jerinj@marvell.com>
> > ---
> > v2 Changes:
> > - Modify commit title.
> > - Add patch reference to doc.
> >
> > doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > index ea4cfa7a4..ec5db68e9 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -151,3 +151,14 @@ Deprecation Notices
> > Python 2 support will be completely removed in 20.11.
> > In 20.08, explicit deprecation warnings will be displayed when running
> > scripts with Python 2.
> > +
> > +* eventdev: A 64 byte padding is added at the end of the following structures
> > + in event device library to support future extensions:
> > + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> > + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> > + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> > + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> > + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> > + ``rte_event_timer_adapter_data``.
> > + Reference:
> > + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> > --
>
> I don't like this idea of adding lots of padding to the ends of these
> structures. For some structures, such as the public arrays for devices it
> may be necessary, but for all the conf structures passed as parameters to
> functions I think we can do better. Since these structures are passed by
> the user to various functions, function versioning can be used to ensure
> that the correct function in eventdev is always called. From there to the
> individual PMDs, we can implement ABI compatibility by either:
> 1. including the length of the struct as a parameter to the driver. (This is
> a bit similar to my proposal for rawdev [1])
> 2. including the ABI version as a parameter to the driver.
>
> Regards
> /Bruce
>
> [1] http://inbox.dpdk.org/dev/?q=enhance+rawdev+APIs
This is a bad idea.
Reserved fields won't work because nothing requires that the application
zero them. You can't start using them later because the application
may put uninitialized or junk data there.
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH] doc: announce change in ETH item struct
@ 2020-08-04 16:01 8% Dekel Peled
2020-08-05 3:39 0% ` Ajit Khaparde
` (2 more replies)
0 siblings, 3 replies; 200+ results
From: Dekel Peled @ 2020-08-04 16:01 UTC (permalink / raw)
To: dev
Cc: jerinjacobk, stephen, arybchenko, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit, asafp
Struct rte_flow_item_eth will be modified to include additional
values, indicating existence or absence of VLAN headers following
the ETH header, as proposed in RFC
https://mails.dpdk.org/archives/dev/2020-August/177349.html.
Because of ABI break this change is proposed for 20.11.
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
---
doc/guides/rel_notes/deprecation.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 5201142..6241709 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -115,6 +115,11 @@ Deprecation Notices
following the IPv6 header, as proposed in RFC
https://mails.dpdk.org/archives/dev/2020-August/177257.html.
+* ethdev: The ``struct rte_flow_item_eth`` struct will be modified to include
+ additional values, indicating existence or absence of VLAN headers
+ following the ETH header, as proposed in RFC
+ https://mails.dpdk.org/archives/dev/2020-August/177349.html.
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
1.8.3.1
^ permalink raw reply [relevance 8%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-04 14:24 4% ` Bruce Richardson
@ 2020-08-04 16:03 0% ` Jerin Jacob
2020-08-04 16:24 0% ` Bruce Richardson
0 siblings, 1 reply; 200+ results
From: Jerin Jacob @ 2020-08-04 16:03 UTC (permalink / raw)
To: Bruce Richardson
Cc: Pavan Nikhilesh, Jerin Jacob, Ray Kinsella, Neil Horman,
John McNamara, Marko Kovacevic, dpdk-dev, Thomas Monjalon,
David Marchand
On Tue, Aug 4, 2020 at 7:55 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Tue, Aug 04, 2020 at 05:07:12PM +0530, Jerin Jacob wrote:
> > On Tue, Aug 4, 2020 at 4:12 PM Bruce Richardson
> > <bruce.richardson@intel.com> wrote:
> > >
> > > On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> > > > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > > >
> > > > Add 64 byte padding at the end of event device public structure to allow
> > > > future extensions.
> > > >
> > > > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > > > Acked-by: Jerin Jacob <jerinj@marvell.com>
> > > > ---
> > > > v2 Changes:
> > > > - Modify commit title.
> > > > - Add patch reference to doc.
> > > >
> > > > doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> > > > 1 file changed, 11 insertions(+)
> > > >
> > > > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > > > index ea4cfa7a4..ec5db68e9 100644
> > > > --- a/doc/guides/rel_notes/deprecation.rst
> > > > +++ b/doc/guides/rel_notes/deprecation.rst
> > > > @@ -151,3 +151,14 @@ Deprecation Notices
> > > > Python 2 support will be completely removed in 20.11.
> > > > In 20.08, explicit deprecation warnings will be displayed when running
> > > > scripts with Python 2.
> > > > +
> > > > +* eventdev: A 64 byte padding is added at the end of the following structures
> > > > + in event device library to support future extensions:
> > > > + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> > > > + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> > > > + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> > > > + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> > > > + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> > > > + ``rte_event_timer_adapter_data``.
> > > > + Reference:
> > > > + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> > > > --
> > >
> > > I don't like this idea of adding lots of padding to the ends of these
> > > structures. For some structures, such as the public arrays for devices it
> > > may be necessary, but for all the conf structures passed as parameters to
> > > functions I think we can do better. Since these structures are passed by
> > > the user to various functions, function versioning can be used to ensure
> > > that the correct function in eventdev is always called. From there to the
> > > individual PMDs, we can implement ABI compatibility by either:
> > > 1. including the length of the struct as a parameter to the driver. (This is
> > > a bit similar to my proposal for rawdev [1])
> > > 2. including the ABI version as a parameter to the driver.
> >
> > But, Will the above solution work if the application is dependent on
> > struct size?
> > i.e change of s1 size will change offset of s3 i.e
> > app_sepecific_struct_s3. Right?
> > i.e DPDK version should not change the offset of s3. Right?
> >
> > example,
> > struct app_struct {
> > struct dpdk_public_struct_s1 s1;
> > struct dpdk_public_struct_s2 s2;
> > struct app_sepecific_struct_s3 s3;
> > }
> >
> Not sure what exactly you mean here. The actual offsets and sizes of the
> structs will obviously change as you change the struct, but the end
> compiled app has no idea of structs, all it knows of is offsets, which is
> why you provide ABI compatible versions of the functions which use "legacy"
> copies of the structs to ensure correct offsets. It's pretty much standard
> practice for ABI versioning.
Currently, We have only function versioning(not structure versioning).
Are you suggesting having structure versioning?
Will it complicate the code in terms of readability and supporting multiple
structure versions aginst its support functions.
>
> The real complication arises because the actual eventdev driver functions
> are not called directly with the linker resolving symbol versioning.
> Instead they are called using function pointers from the code. This is why
> one needs to add in the additional parameter to the driver APIs so that the
> ABI info - be it struct size or version - can be passed from the versioned
> eventdev library function through to the driver.
If I understand it correctly, it is easy for rawdev subsystem as
config structure as _opaque_.
But in the case for ethdev, cryptodev, eventdev, config structure are
not opaque.
If we take structure versioning, Is n't call for adding structure
version change to
functions that's been associated with(Kind of M x N case to make a
structure change. Here M means
offending structure to make change and N means function associated
with structure)
>
> Regards,
> /Bruce
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD
2020-08-04 7:38 4% ` Jerin Jacob
@ 2020-08-04 15:44 4% ` Hemant Agrawal
2020-08-05 23:39 4% ` Thomas Monjalon
0 siblings, 1 reply; 200+ results
From: Hemant Agrawal @ 2020-08-04 15:44 UTC (permalink / raw)
To: Jerin Jacob, McDaniel, Timothy
Cc: Jerin Jacob, Mattias Rönnblom, dpdk-dev, Gage Eads,
Van Haaren, Harry
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Jerin Jacob
> Sent: Tuesday, August 4, 2020 1:09 PM
> To: McDaniel, Timothy <timothy.mcdaniel@intel.com>
> Cc: Jerin Jacob <jerinj@marvell.com>; Mattias Rönnblom
> <mattias.ronnblom@ericsson.com>; dpdk-dev <dev@dpdk.org>; Gage Eads
> <gage.eads@intel.com>; Van Haaren, Harry <harry.van.haaren@intel.com>
> Subject: Re: [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB
> PMD
>
> On Mon, Aug 3, 2020 at 11:28 PM McDaniel, Timothy
> <timothy.mcdaniel@intel.com> wrote:
> >
> > From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
>
> There is still "," in the name.
>
> >
> > The ABI changes associated with this notification will better support
> > devices that:
> > 1. Have limits on the number or queues that may be linked to a port 2.
> > Have ports that are limited to exactly one linked queue 3. Are not
> > able to transparently transfer the event flow_id field
> >
> > Signed-off-by: McDaniel Timothy
> > <timothy.mcdaniel@intel.com>
>
>
> Acked-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
>
>
> > ---
> > doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/deprecation.rst
> > b/doc/guides/rel_notes/deprecation.rst
> > index 99c9806..bfe6661 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -148,3 +148,14 @@ Deprecation Notices
> > Python 2 support will be completely removed in 20.11.
> > In 20.08, explicit deprecation warnings will be displayed when running
> > scripts with Python 2.
> > +
> > +* eventdev: ABI changes to support DLB PMD and future extensions:
> > + ``rte_event_dev_info``, ``rte_event_dev_config``,
> > +``rte_event_port_conf`` will
> > + be modified to support DLB PMD and future extensions in the eventdev
> library.
> > + Patches containing justification, documentation, and proposed
> > +modifications
> > + can be found at:
> > +
> > + -
> > +
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpa
> > +
> tches.dpdk.org%2Fpatch%2F71457%2F&data=02%7C01%7Chemant.agra
> wal%
> > +
> 40nxp.com%7C0a8caadf8d834b79220b08d838497b8b%7C686ea1d3bc2b4c6fa
> 92cd
> > +
> 99c5c301635%7C0%7C0%7C637321235549807830&sdata=9cH1qyDLlJz%2
> BNoI
> > + whoam9rzpuMKGqZJWG6lMDkuoy1A%3D&reserved=0
> > + -
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch
> es.dpdk.org%2Fpatch%2F71456%2F&data=02%7C01%7Chemant.agrawa
> l%40nxp.com%7C0a8caadf8d834b79220b08d838497b8b%7C686ea1d3bc2b4c6
> fa92cd99c5c301635%7C0%7C0%7C637321235549817822&sdata=dHNynX
> 75PGfiOtIycdm4raCRt5MWQPTWgHi%2Bj9Q331A%3D&reserved=0
> > +
> > +
> > --
> > 1.7.10
> >
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH] doc: announce internal hotplug structure removal
2020-08-04 14:07 4% [dpdk-dev] [PATCH] doc: announce internal hotplug structure removal David Marchand
@ 2020-08-04 14:29 0% ` Bruce Richardson
2020-08-06 13:59 0% ` Kinsella, Ray
1 sibling, 0 replies; 200+ results
From: Bruce Richardson @ 2020-08-04 14:29 UTC (permalink / raw)
To: David Marchand; +Cc: dev, thomas
On Tue, Aug 04, 2020 at 04:07:17PM +0200, David Marchand wrote:
> rte_dev_event has never been used outside of the EAL.
> No point in exposing it.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 24808c002c..9f73297173 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -27,6 +27,9 @@ Deprecation Notices
> remove it from the externally visible ABI and allow it to be updated in the
> future.
>
> +* eal: The ``rte_dev_event`` structure will be made private to the EAL as no
> + public API makes use of it.
> +
> * rte_atomicNN_xxx: These APIs do not take memory order parameter. This does
> not allow for writing optimized code for all the CPU architectures supported
> in DPDK. DPDK will adopt C11 atomic operations semantics and provide wrappers
> --
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-04 11:37 0% ` Jerin Jacob
@ 2020-08-04 14:24 4% ` Bruce Richardson
2020-08-04 16:03 0% ` Jerin Jacob
0 siblings, 1 reply; 200+ results
From: Bruce Richardson @ 2020-08-04 14:24 UTC (permalink / raw)
To: Jerin Jacob
Cc: Pavan Nikhilesh, Jerin Jacob, Ray Kinsella, Neil Horman,
John McNamara, Marko Kovacevic, dpdk-dev, Thomas Monjalon,
David Marchand
On Tue, Aug 04, 2020 at 05:07:12PM +0530, Jerin Jacob wrote:
> On Tue, Aug 4, 2020 at 4:12 PM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> > > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > >
> > > Add 64 byte padding at the end of event device public structure to allow
> > > future extensions.
> > >
> > > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > > Acked-by: Jerin Jacob <jerinj@marvell.com>
> > > ---
> > > v2 Changes:
> > > - Modify commit title.
> > > - Add patch reference to doc.
> > >
> > > doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> > > 1 file changed, 11 insertions(+)
> > >
> > > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > > index ea4cfa7a4..ec5db68e9 100644
> > > --- a/doc/guides/rel_notes/deprecation.rst
> > > +++ b/doc/guides/rel_notes/deprecation.rst
> > > @@ -151,3 +151,14 @@ Deprecation Notices
> > > Python 2 support will be completely removed in 20.11.
> > > In 20.08, explicit deprecation warnings will be displayed when running
> > > scripts with Python 2.
> > > +
> > > +* eventdev: A 64 byte padding is added at the end of the following structures
> > > + in event device library to support future extensions:
> > > + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> > > + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> > > + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> > > + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> > > + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> > > + ``rte_event_timer_adapter_data``.
> > > + Reference:
> > > + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> > > --
> >
> > I don't like this idea of adding lots of padding to the ends of these
> > structures. For some structures, such as the public arrays for devices it
> > may be necessary, but for all the conf structures passed as parameters to
> > functions I think we can do better. Since these structures are passed by
> > the user to various functions, function versioning can be used to ensure
> > that the correct function in eventdev is always called. From there to the
> > individual PMDs, we can implement ABI compatibility by either:
> > 1. including the length of the struct as a parameter to the driver. (This is
> > a bit similar to my proposal for rawdev [1])
> > 2. including the ABI version as a parameter to the driver.
>
> But, Will the above solution work if the application is dependent on
> struct size?
> i.e change of s1 size will change offset of s3 i.e
> app_sepecific_struct_s3. Right?
> i.e DPDK version should not change the offset of s3. Right?
>
> example,
> struct app_struct {
> struct dpdk_public_struct_s1 s1;
> struct dpdk_public_struct_s2 s2;
> struct app_sepecific_struct_s3 s3;
> }
>
Not sure what exactly you mean here. The actual offsets and sizes of the
structs will obviously change as you change the struct, but the end
compiled app has no idea of structs, all it knows of is offsets, which is
why you provide ABI compatible versions of the functions which use "legacy"
copies of the structs to ensure correct offsets. It's pretty much standard
practice for ABI versioning.
The real complication arises because the actual eventdev driver functions
are not called directly with the linker resolving symbol versioning.
Instead they are called using function pointers from the code. This is why
one needs to add in the additional parameter to the driver APIs so that the
ABI info - be it struct size or version - can be passed from the versioned
eventdev library function through to the driver.
Regards,
/Bruce
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH v4 7/9] devtools: support python3 only
@ 2020-08-04 14:07 4% ` Louise Kilheeney
2020-08-05 8:44 0% ` Kinsella, Ray
0 siblings, 1 reply; 200+ results
From: Louise Kilheeney @ 2020-08-04 14:07 UTC (permalink / raw)
To: dev
Cc: anatoly.burakov, bruce.richardson, robin.jarry, Louise Kilheeney,
Neil Horman, Ray Kinsella
Changed script to explicitly use python3 only to avoid
maintaining python 2 and removed deprecation notice.
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: Ray Kinsella <mdr@ashroe.eu>
Signed-off-by: Louise Kilheeney <louise.kilheeney@intel.com>
---
devtools/update_version_map_abi.py | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/devtools/update_version_map_abi.py b/devtools/update_version_map_abi.py
index 80a61641ed..830e6c58c8 100755
--- a/devtools/update_version_map_abi.py
+++ b/devtools/update_version_map_abi.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2019 Intel Corporation
@@ -9,7 +9,6 @@
from the devtools/update-abi.sh utility.
"""
-from __future__ import print_function
import argparse
import sys
import re
@@ -160,10 +159,6 @@ def __generate_internal_abi(f_out, lines):
print("};", file=f_out)
def __main():
- if sys.version_info.major < 3:
- print("WARNING: Python 2 is deprecated for use in DPDK, and will not work in future releases.", file=sys.stderr)
- print("Please use Python 3 instead", file=sys.stderr)
-
arg_parser = argparse.ArgumentParser(
description='Merge versions in linker version script.')
--
2.17.1
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH] doc: announce internal hotplug structure removal
@ 2020-08-04 14:07 4% David Marchand
2020-08-04 14:29 0% ` Bruce Richardson
2020-08-06 13:59 0% ` Kinsella, Ray
0 siblings, 2 replies; 200+ results
From: David Marchand @ 2020-08-04 14:07 UTC (permalink / raw)
To: dev; +Cc: thomas
rte_dev_event has never been used outside of the EAL.
No point in exposing it.
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
doc/guides/rel_notes/deprecation.rst | 3 +++
1 file changed, 3 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 24808c002c..9f73297173 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -27,6 +27,9 @@ Deprecation Notices
remove it from the externally visible ABI and allow it to be updated in the
future.
+* eal: The ``rte_dev_event`` structure will be made private to the EAL as no
+ public API makes use of it.
+
* rte_atomicNN_xxx: These APIs do not take memory order parameter. This does
not allow for writing optimized code for all the CPU architectures supported
in DPDK. DPDK will adopt C11 atomic operations semantics and provide wrappers
--
2.23.0
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD
2020-08-03 17:55 13% ` [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD McDaniel, Timothy
2020-08-04 7:38 4% ` Jerin Jacob
@ 2020-08-04 13:46 4% ` Van Haaren, Harry
1 sibling, 0 replies; 200+ results
From: Van Haaren, Harry @ 2020-08-04 13:46 UTC (permalink / raw)
To: McDaniel, Timothy; +Cc: mattias.ronnblom, dev, Eads, Gage, jerinj
> -----Original Message-----
> From: McDaniel, Timothy <timothy.mcdaniel@intel.com>
> Sent: Monday, August 3, 2020 6:56 PM
> To: jerinj@marvell.com
> Cc: mattias.ronnblom@ericsson.com; dev@dpdk.org; Eads, Gage
> <gage.eads@intel.com>; Van Haaren, Harry <harry.van.haaren@intel.com>;
> McDaniel, Timothy <timothy.mcdaniel@intel.com>
> Subject: [PATCH] doc: eventdev ABI change to support DLB PMD
>
> From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
>
> The ABI changes associated with this notification will better support
> devices that:
> 1. Have limits on the number or queues that may be linked to a port
> 2. Have ports that are limited to exactly one linked queue
> 3. Are not able to transparently transfer the event flow_id field
>
> Signed-off-by: McDaniel Timothy
> <timothy.mcdaniel@intel.com>
Nitpick: git warns on added extra new blank line at end of file.
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
<snip>
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct
2020-08-03 19:51 9% [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct Dekel Peled
@ 2020-08-04 13:17 0% ` Dekel Peled
2020-08-06 17:09 0% ` Ori Kam
2020-08-06 12:30 0% ` Thomas Monjalon
2020-08-06 15:10 0% ` Andrew Rybchenko
2 siblings, 1 reply; 200+ results
From: Dekel Peled @ 2020-08-04 13:17 UTC (permalink / raw)
To: dev
Cc: jerinjacobk, stephen, arybchenko, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit, Asaf Penso
Kind reminder to all maintainers, please review and ack/comment.
> -----Original Message-----
> From: Dekel Peled <dekelp@mellanox.com>
> Sent: Monday, August 3, 2020 10:51 PM
> To: dev@dpdk.org
> Cc: jerinjacobk@gmail.com; stephen@networkplumber.org;
> arybchenko@solarflare.com; ajit.khaparde@broadcom.com;
> maxime.coquelin@redhat.com; olivier.matz@6wind.com;
> david.marchand@redhat.com; ferruh.yigit@intel.com
> Subject: [PATCH] doc: announce change in IPv6 item struct
>
> Struct rte_flow_item_ipv6 will be modified to include additional values,
> indicating existence or absence of IPv6 extension headers following the IPv6
> header, as proposed in RFC https://mails.dpdk.org/archives/dev/2020-
> August/177257.html.
> Because of ABI break this change is proposed for 20.11.
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst
> b/doc/guides/rel_notes/deprecation.rst
> index ea4cfa7..5201142 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -110,6 +110,11 @@ Deprecation Notices
> break the ABI checks, that is why change is planned for 20.11.
> The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
>
> +* ethdev: The ``struct rte_flow_item_ipv6`` struct will be modified to
> +include
> + additional values, indicating existence or absence of IPv6 extension
> +headers
> + following the IPv6 header, as proposed in RFC
> + https://mails.dpdk.org/archives/dev/2020-August/177257.html.
> +
> * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly
> made
> ABI stable in the v19.11 release. The TM maintainer and other contributors
> have
> agreed to keep the TM APIs as experimental in expectation of additional
> spec
> --
> 1.8.3.1
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
2020-08-04 10:41 4% ` Bruce Richardson
@ 2020-08-04 11:37 0% ` Jerin Jacob
2020-08-04 14:24 4% ` Bruce Richardson
2020-08-04 16:20 0% ` Stephen Hemminger
1 sibling, 1 reply; 200+ results
From: Jerin Jacob @ 2020-08-04 11:37 UTC (permalink / raw)
To: Bruce Richardson
Cc: Pavan Nikhilesh, Jerin Jacob, Ray Kinsella, Neil Horman,
John McNamara, Marko Kovacevic, dpdk-dev, Thomas Monjalon,
David Marchand
On Tue, Aug 4, 2020 at 4:12 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >
> > Add 64 byte padding at the end of event device public structure to allow
> > future extensions.
> >
> > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > Acked-by: Jerin Jacob <jerinj@marvell.com>
> > ---
> > v2 Changes:
> > - Modify commit title.
> > - Add patch reference to doc.
> >
> > doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > index ea4cfa7a4..ec5db68e9 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -151,3 +151,14 @@ Deprecation Notices
> > Python 2 support will be completely removed in 20.11.
> > In 20.08, explicit deprecation warnings will be displayed when running
> > scripts with Python 2.
> > +
> > +* eventdev: A 64 byte padding is added at the end of the following structures
> > + in event device library to support future extensions:
> > + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> > + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> > + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> > + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> > + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> > + ``rte_event_timer_adapter_data``.
> > + Reference:
> > + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> > --
>
> I don't like this idea of adding lots of padding to the ends of these
> structures. For some structures, such as the public arrays for devices it
> may be necessary, but for all the conf structures passed as parameters to
> functions I think we can do better. Since these structures are passed by
> the user to various functions, function versioning can be used to ensure
> that the correct function in eventdev is always called. From there to the
> individual PMDs, we can implement ABI compatibility by either:
> 1. including the length of the struct as a parameter to the driver. (This is
> a bit similar to my proposal for rawdev [1])
> 2. including the ABI version as a parameter to the driver.
But, Will the above solution work if the application is dependent on
struct size?
i.e change of s1 size will change offset of s3 i.e
app_sepecific_struct_s3. Right?
i.e DPDK version should not change the offset of s3. Right?
example,
struct app_struct {
struct dpdk_public_struct_s1 s1;
struct dpdk_public_struct_s2 s2;
struct app_sepecific_struct_s3 s3;
}
>
> Regards
> /Bruce
>
> [1] http://inbox.dpdk.org/dev/?q=enhance+rawdev+APIs
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures
@ 2020-08-04 10:41 4% ` Bruce Richardson
2020-08-04 11:37 0% ` Jerin Jacob
2020-08-04 16:20 0% ` Stephen Hemminger
0 siblings, 2 replies; 200+ results
From: Bruce Richardson @ 2020-08-04 10:41 UTC (permalink / raw)
To: pbhagavatula
Cc: jerinj, Ray Kinsella, Neil Horman, John McNamara,
Marko Kovacevic, dev, thomas, david.marchand
On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote:
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Add 64 byte padding at the end of event device public structure to allow
> future extensions.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> Acked-by: Jerin Jacob <jerinj@marvell.com>
> ---
> v2 Changes:
> - Modify commit title.
> - Add patch reference to doc.
>
> doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index ea4cfa7a4..ec5db68e9 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -151,3 +151,14 @@ Deprecation Notices
> Python 2 support will be completely removed in 20.11.
> In 20.08, explicit deprecation warnings will be displayed when running
> scripts with Python 2.
> +
> +* eventdev: A 64 byte padding is added at the end of the following structures
> + in event device library to support future extensions:
> + ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> + ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> + ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> + ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> + ``rte_event_timer_adapter_data``.
> + Reference:
> + http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> --
I don't like this idea of adding lots of padding to the ends of these
structures. For some structures, such as the public arrays for devices it
may be necessary, but for all the conf structures passed as parameters to
functions I think we can do better. Since these structures are passed by
the user to various functions, function versioning can be used to ensure
that the correct function in eventdev is always called. From there to the
individual PMDs, we can implement ABI compatibility by either:
1. including the length of the struct as a parameter to the driver. (This is
a bit similar to my proposal for rawdev [1])
2. including the ABI version as a parameter to the driver.
Regards
/Bruce
[1] http://inbox.dpdk.org/dev/?q=enhance+rawdev+APIs
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD
2020-08-03 17:55 13% ` [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD McDaniel, Timothy
@ 2020-08-04 7:38 4% ` Jerin Jacob
2020-08-04 15:44 4% ` Hemant Agrawal
2020-08-04 13:46 4% ` Van Haaren, Harry
1 sibling, 1 reply; 200+ results
From: Jerin Jacob @ 2020-08-04 7:38 UTC (permalink / raw)
To: McDaniel, Timothy
Cc: Jerin Jacob, Mattias Rönnblom, dpdk-dev, Gage Eads,
Van Haaren, Harry
On Mon, Aug 3, 2020 at 11:28 PM McDaniel, Timothy
<timothy.mcdaniel@intel.com> wrote:
>
> From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
There is still "," in the name.
>
> The ABI changes associated with this notification will better support
> devices that:
> 1. Have limits on the number or queues that may be linked to a port
> 2. Have ports that are limited to exactly one linked queue
> 3. Are not able to transparently transfer the event flow_id field
>
> Signed-off-by: McDaniel Timothy
> <timothy.mcdaniel@intel.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 99c9806..bfe6661 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -148,3 +148,14 @@ Deprecation Notices
> Python 2 support will be completely removed in 20.11.
> In 20.08, explicit deprecation warnings will be displayed when running
> scripts with Python 2.
> +
> +* eventdev: ABI changes to support DLB PMD and future extensions:
> + ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_port_conf`` will
> + be modified to support DLB PMD and future extensions in the eventdev library.
> + Patches containing justification, documentation, and proposed modifications
> + can be found at:
> +
> + - https://patches.dpdk.org/patch/71457/
> + - https://patches.dpdk.org/patch/71456/
> +
> +
> --
> 1.7.10
>
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct
@ 2020-08-03 19:51 9% Dekel Peled
2020-08-04 13:17 0% ` Dekel Peled
` (2 more replies)
0 siblings, 3 replies; 200+ results
From: Dekel Peled @ 2020-08-03 19:51 UTC (permalink / raw)
To: dev
Cc: jerinjacobk, stephen, arybchenko, ajit.khaparde, maxime.coquelin,
olivier.matz, david.marchand, ferruh.yigit
Struct rte_flow_item_ipv6 will be modified to include additional
values, indicating existence or absence of IPv6 extension headers
following the IPv6 header, as proposed in RFC
https://mails.dpdk.org/archives/dev/2020-August/177257.html.
Because of ABI break this change is proposed for 20.11.
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
---
doc/guides/rel_notes/deprecation.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index ea4cfa7..5201142 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -110,6 +110,11 @@ Deprecation Notices
break the ABI checks, that is why change is planned for 20.11.
The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
+* ethdev: The ``struct rte_flow_item_ipv6`` struct will be modified to include
+ additional values, indicating existence or absence of IPv6 extension headers
+ following the IPv6 header, as proposed in RFC
+ https://mails.dpdk.org/archives/dev/2020-August/177257.html.
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
1.8.3.1
^ permalink raw reply [relevance 9%]
* [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD
2020-08-03 6:09 4% ` Jerin Jacob
@ 2020-08-03 17:55 13% ` McDaniel, Timothy
2020-08-04 7:38 4% ` Jerin Jacob
2020-08-04 13:46 4% ` Van Haaren, Harry
0 siblings, 2 replies; 200+ results
From: McDaniel, Timothy @ 2020-08-03 17:55 UTC (permalink / raw)
To: jerinj
Cc: mattias.ronnblom, dev, gage.eads, harry.van.haaren, McDaniel, Timothy
From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
The ABI changes associated with this notification will better support
devices that:
1. Have limits on the number or queues that may be linked to a port
2. Have ports that are limited to exactly one linked queue
3. Are not able to transparently transfer the event flow_id field
Signed-off-by: McDaniel Timothy
<timothy.mcdaniel@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 99c9806..bfe6661 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -148,3 +148,14 @@ Deprecation Notices
Python 2 support will be completely removed in 20.11.
In 20.08, explicit deprecation warnings will be displayed when running
scripts with Python 2.
+
+* eventdev: ABI changes to support DLB PMD and future extensions:
+ ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_port_conf`` will
+ be modified to support DLB PMD and future extensions in the eventdev library.
+ Patches containing justification, documentation, and proposed modifications
+ can be found at:
+
+ - https://patches.dpdk.org/patch/71457/
+ - https://patches.dpdk.org/patch/71456/
+
+
--
1.7.10
^ permalink raw reply [relevance 13%]
* [dpdk-dev] [RFC v3] ethdev: add extensions attributes to IPv6 item
2020-08-03 17:01 3% ` [dpdk-dev] [RFC v2] ethdev: add extensions attributes " Dekel Peled
@ 2020-08-03 17:11 3% ` Dekel Peled
0 siblings, 0 replies; 200+ results
From: Dekel Peled @ 2020-08-03 17:11 UTC (permalink / raw)
To: ferruh.yigit, arybchenko, orika, john.mcnamara, marko.kovacevic
Cc: asafp, matan, elibr, dev
Using the current implementation of DPDK, an application cannot match on
IPv6 packets, based on the existing extension headers, in a simple way.
Field 'Next Header' in IPv6 header indicates type of the first extension
header only. Following extension headers can't be identified by
inspecting the IPv6 header.
As a result, the existence or absence of specific extension headers
can't be used for packet matching.
For example, fragmented IPv6 packets contain a dedicated extension header,
as detailed in RFC [1], which is not yet supported in rte_flow.
Non-fragmented packets don't contain the fragment extension header.
For an application to match on non-fragmented IPv6 packets, the current
implementation doesn't provide a suitable solution.
Matching on the Next Header field is not sufficient, since additional
extension headers might be present in the same packet.
To match on fragmented IPv6 packets, the same difficulty exists.
Proposed update:
A set of additional values will be added to IPv6 header struct.
These values will indicate the existence of every defined extension
header type, providing simple means for identification of existing
extensions in the packet header.
Continuing the above example, fragmented packets can be identified using
the specific value indicating existence of fragment extension header.
This update changes ABI, and is proposed for the 20.11 LTS version.
[1] http://mails.dpdk.org/archives/dev/2020-March/160255.html
---
v3: Fix checkpatch comments.
v2: Update from fragment attribute to all extensions attributes.
---
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
---
lib/librte_ethdev/rte_flow.h | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
index da8bfa5..246918e 100644
--- a/lib/librte_ethdev/rte_flow.h
+++ b/lib/librte_ethdev/rte_flow.h
@@ -792,11 +792,33 @@ struct rte_flow_item_ipv4 {
*
* Matches an IPv6 header.
*
+ * Dedicated flags indicate existence of specific extension headers.
+ *
* Note: IPv6 options are handled by dedicated pattern items, see
* RTE_FLOW_ITEM_TYPE_IPV6_EXT.
*/
struct rte_flow_item_ipv6 {
struct rte_ipv6_hdr hdr; /**< IPv6 header definition. */
+ uint64_t hop_ext_exist:1;
+ /**< Hop-by-Hop Options extension header exists. */
+ uint64_t rout_ext_exist:1;
+ /**< Routing extension header exists. */
+ uint64_t frag_ext_exist:1;
+ /**< Fragment extension header exists. */
+ uint64_t auth_ext_exist:1;
+ /**< Authentication extension header exists. */
+ uint64_t esp_ext_exist:1;
+ /**< Encapsulation Security Payload extension header exists. */
+ uint64_t dest_ext_exist:1;
+ /**< Destination Options extension header exists. */
+ uint64_t mobil_ext_exist:1;
+ /**< Mobility extension header exists. */
+ uint64_t hip_ext_exist:1;
+ /**< Host Identity Protocol extension header exists. */
+ uint64_t shim6_ext_exist:1;
+ /**< Shim6 Protocol extension header exists. */
+ uint64_t reserved:55;
+ /**< Reserved for future extension headers, must be zero. */
};
/** Default mask for RTE_FLOW_ITEM_TYPE_IPV6. */
--
1.8.3.1
^ permalink raw reply [relevance 3%]
* [dpdk-dev] [RFC v2] ethdev: add extensions attributes to IPv6 item
@ 2020-08-03 17:01 3% ` Dekel Peled
2020-08-03 17:11 3% ` [dpdk-dev] [RFC v3] " Dekel Peled
0 siblings, 1 reply; 200+ results
From: Dekel Peled @ 2020-08-03 17:01 UTC (permalink / raw)
To: ferruh.yigit, arybchenko, orika, john.mcnamara, marko.kovacevic
Cc: asafp, matan, elibr, dev
Using the current implementation of DPDK, an application cannot match on
IPv6 packets, based on the existing extension headers, in a simple way.
Field 'Next Header' in IPv6 header indicates type of the first extension
header only. Following extension headers can't be identified by
inspecting the IPv6 header.
As a result, the existence or absence of specific extension headers
can't be used for packet matching.
For example, fragmented IPv6 packets contain a dedicated extension header,
as detailed in RFC [1], which is not yet supported in rte_flow.
Non-fragmented packets don't contain the fragment extension header.
For an application to match on non-fragmented IPv6 packets, the current
implementation doesn't provide a suitable solution.
Matching on the Next Header field is not sufficient, since additional
extension headers might be present in the same packet.
To match on fragmented IPv6 packets, the same difficulty exists.
Proposed update:
A set of additional values will be added to IPv6 header struct.
These values will indicate the existence of every defined extension
header type, providing simple means for identification of existing
extensions in the packet header.
Continuing the above example, fragmented packets can be identified using
the specific value indicating existence of fragment extension header.
This update changes ABI, and is proposed for the 20.11 LTS version.
[1] http://mails.dpdk.org/archives/dev/2020-March/160255.html
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
---
lib/librte_ethdev/rte_flow.h | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
index da8bfa5..8d2073d 100644
--- a/lib/librte_ethdev/rte_flow.h
+++ b/lib/librte_ethdev/rte_flow.h
@@ -792,11 +792,33 @@ struct rte_flow_item_ipv4 {
*
* Matches an IPv6 header.
*
+ * Dedicated flags indicate existence of specific extension headers.
+ *
* Note: IPv6 options are handled by dedicated pattern items, see
* RTE_FLOW_ITEM_TYPE_IPV6_EXT.
*/
struct rte_flow_item_ipv6 {
struct rte_ipv6_hdr hdr; /**< IPv6 header definition. */
+ uint64_t hop_ext_exist:1;
+ /**< Hop-by-Hop Options extension header exists. */
+ uint64_t rout_ext_exist:1;
+ /**< Routing extension header exists. */
+ uint64_t frag_ext_exist:1;
+ /**< Fragment extension header exists. */
+ uint64_t auth_ext_exist:1;
+ /**< Authentication extension header exists. */
+ uint64_t esp_ext_exist:1;
+ /**< Encapsulation Security Payload extension header exists. */
+ uint64_t dest_ext_exist:1;
+ /**< Destination Options extension header exists. */
+ uint64_t mobil_ext_exist:1;
+ /**< Mobility extension header exists. */
+ uint64_t hip_ext_exist:1;
+ /**< Host Identity Protocol extension header exists. */
+ uint64_t shim6_ext_exist:1;
+ /**< Shim6 Protocol extension header exists. */
+ uint64_t reserved:55;
+ /**< Reserved for future extension headers, must be zero. */
};
/** Default mask for RTE_FLOW_ITEM_TYPE_IPV6. */
--
1.8.3.1
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] The mbuf API needs some cleaning up
2020-07-31 15:24 0% ` Olivier Matz
@ 2020-08-03 8:42 0% ` Morten Brørup
0 siblings, 0 replies; 200+ results
From: Morten Brørup @ 2020-08-03 8:42 UTC (permalink / raw)
To: Olivier Matz; +Cc: dev, Thomas Monjalon
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Olivier Matz
> Sent: Friday, July 31, 2020 5:25 PM
>
> Hi Morten,
>
> Thanks for the feedback.
>
> On Mon, Jul 13, 2020 at 11:57:38AM +0200, Morten Brørup wrote:
>
> > The MBUF library exposes some macros and constants without the RTE_
> prefix. I
> > propose cleaning up these, so better names get into the coming LTS
> release.
>
> Yes, Thomas talked about it some time ago and he even drafted a patch
> to
> fix it. We can target 20.11 for the changes, but I think we'll have to
> keep a compat API until 21.11.
>
Great, then I will back off. No need for multiple patches fixing the same things. :-)
And I agree with all your feedback... although I do consider the mbuf port_id so much at the core of DPDK that I suggested RTE_PORT_INVALID over RTE_MBUF_PORT_INVALID, but I don't feel strongly about it. Whatever you and Thomas prefer is probably fine.
> > The worst is:
> > #define MBUF_INVALID_PORT UINT16_MAX
> >
> > I say it's the worst because when we were looking for the official
> "invalid"
> > port value for our application, we didn't find this one. (Probably
> because its
> > documentation is wrong.)
> >
> > MBUF_INVALID_PORT is defined in rte_mbuf_core.h without any
> description, and
> > in rte_mbuf.h, where it is injected between the rte_pktmbuf_reset()
> function
> > and its description, so the API documentation shows the function's
> description
> > for the constant, and no description for the function.
>
> The one in rte_mbuf_core.h should be kept, with a documentation.
>
> > I propose keeping it at a sensible location in rte_mbuf_core.h only,
> adding a description, and renaming it to:
> > #define RTE_PORT_INVALID UINT16_MAX
>
> I suggest RTE_MBUF_PORT_INVALID
>
> > For backwards compatibility, we could add:
> > /* this old name is deprecated */
> > #define MBUF_INVALID_PORT RTE_PORT_INVALID
> >
> > I also wonder why there are no compiler warnings about the double
> definition?
>
> If the value is the same, the compiler won't complain.
>
> > There are also the data buffer location constants:
> > #define EXT_ATTACHED_MBUF (1ULL << 61)
> > and
> > #define IND_ATTACHED_MBUF (1ULL << 62)
> >
> >
> > There are already macros (with good names) for reading these, so
> > simply adding the RTE_ prefix to these two constants suffices.
>
> Some applications use it, we also need a compat here.
>
> > And all the packet offload flags, such as:
> > #define PKT_RX_VLAN (1ULL << 0)
> >
> >
> > They are supposed to be used by applications, so I guess we should
> > keep them unchanged for ABI stability reasons.
>
> I propose RTE_MBUF_F_<name> for the mbuf flags.
>
> > And the local macro:
> > #define MBUF_RAW_ALLOC_CHECK(m) do { \
> >
> > This might as well be an internal inline function:
> > /* internal */
> > static inline void
> > __rte_mbuf_raw_alloc_check(const struct rte_mbuf *m)
> >
>
> agree, I don't think a macro is mandatory here
>
>
> Thanks,
> Olivier
>
>
> > Or we could keep it a macro and move it next to
> > __rte_mbuf_sanity_check(), keeping it clear that it is only relevant
> when
> > RTE_LIBRTE_MBUF_DEBUG is set. But rename it to lower case, similar to
> the
> > __rte_mbuf_sanity_check() macro.
> >
> >
> > Med venlig hilsen / kind regards
> > - Morten Brørup
> >
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: announce changes to eventdev public data structures
2020-07-31 19:31 5% ` McDaniel, Timothy
@ 2020-08-03 6:09 4% ` Jerin Jacob
2020-08-03 17:55 13% ` [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD McDaniel, Timothy
0 siblings, 1 reply; 200+ results
From: Jerin Jacob @ 2020-08-03 6:09 UTC (permalink / raw)
To: McDaniel, Timothy
Cc: Jerin Jacob, Mattias Rönnblom, dpdk-dev, Gage Eads,
Van Haaren, Harry
On Sat, Aug 1, 2020 at 1:04 AM McDaniel, Timothy
<timothy.mcdaniel@intel.com> wrote:
>
> From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
The patch should have some description and
Please change the subject to: "doc: eventdev ABI change to support DLB PMD"
>
> Signed-off-by: McDaniel, Timothy <timothy.mcdaniel@intel.com>
We don't use "," in the Signed-off-by.
Please change to ``Signed-off-by: McDaniel Timothy
<timothy.mcdaniel@intel.com>``
> ---
> doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 99c9806..b9682a7 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -148,3 +148,14 @@ Deprecation Notices
> Python 2 support will be completely removed in 20.11.
> In 20.08, explicit deprecation warnings will be displayed when running
> scripts with Python 2.
> +
> +* eventdev: ABI change to support DLB PMD and future extensions
> + The following structures and will be modified to support to DLB PMD and future
> + extension in the eventdev library.
> + - ``rte_event_dev_info``
> + - ``rte_event_dev_config``
> + - ``rte_event_port_conf``
> + Patches containing justification, documentation, and proposed modifications
> + can be found at:
> + - https://patches.dpdk.org/patch/71457/
> + - https://patches.dpdk.org/patch/71456/
The HTML rendering of the above text is not proper.
Please run "make doc-guides-html" to check generated HTML output.
You could use the below text as an example for sphinx syntax.
* eventdev: ABI change to support DLB PMD and future extensions:
``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_port_conf`` will
be modified to support to DLB PMD and future extension in the
eventdev library.
Patches containing justification, documentation, and proposed modifications
can be found at:
- https://patches.dpdk.org/patch/71457/
- https://patches.dpdk.org/patch/71456/
With the above changes:
Acked-by: Jerin Jacob <jerinj@marvell.com>
> --
> 1.7.10
>
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH] doc: announce changes to eventdev public data structures
2020-07-31 18:51 5% ` McDaniel, Timothy
@ 2020-07-31 19:31 5% ` McDaniel, Timothy
2020-08-03 6:09 4% ` Jerin Jacob
2 siblings, 1 reply; 200+ results
From: McDaniel, Timothy @ 2020-07-31 19:31 UTC (permalink / raw)
To: jerinj
Cc: mattias.ronnblom, dev, gage.eads, harry.van.haaren, McDaniel, Timothy
From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
Signed-off-by: McDaniel, Timothy <timothy.mcdaniel@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 99c9806..b9682a7 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -148,3 +148,14 @@ Deprecation Notices
Python 2 support will be completely removed in 20.11.
In 20.08, explicit deprecation warnings will be displayed when running
scripts with Python 2.
+
+* eventdev: ABI change to support DLB PMD and future extensions
+ The following structures and will be modified to support to DLB PMD and future
+ extension in the eventdev library.
+ - ``rte_event_dev_info``
+ - ``rte_event_dev_config``
+ - ``rte_event_port_conf``
+ Patches containing justification, documentation, and proposed modifications
+ can be found at:
+ - https://patches.dpdk.org/patch/71457/
+ - https://patches.dpdk.org/patch/71456/
--
1.7.10
^ permalink raw reply [relevance 5%]
* Re: [dpdk-dev] [PATCH] doc: announce changes to eventdev public data structures
2020-07-31 18:51 5% ` McDaniel, Timothy
@ 2020-07-31 19:03 0% ` Jerin Jacob
0 siblings, 0 replies; 200+ results
From: Jerin Jacob @ 2020-07-31 19:03 UTC (permalink / raw)
To: McDaniel, Timothy
Cc: Jerin Jacob, Mattias Rönnblom, dpdk-dev, Gage Eads,
Van Haaren, Harry
On Sat, Aug 1, 2020 at 12:24 AM McDaniel, Timothy
<timothy.mcdaniel@intel.com> wrote:
>
> From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
>
> Signed-off-by: McDaniel, Timothy <timothy.mcdaniel@intel.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 37 +++++++++-------------------------
> 1 file changed, 10 insertions(+), 27 deletions(-)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index ecb1bc4..4809643 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -149,30 +149,13 @@ Deprecation Notices
> In 20.08, explicit deprecation warnings will be displayed when running
> scripts with Python 2.
>
> -* eventdev: Three public data structures will be updated in 20.11;
> - ``rte_event_dev_info``, ``rte_event_dev_config``, and
> - ``rte_event_port_conf``.
> - Two new members will be added to the ``rte_event_dev_info`` struct.
> - The first, max_event_port_links, will be a uint8_t, and represents the
> - maximum number of queues that can be linked to a single event port by
> - this device. The second, max_single_link_event_port_queue_pairs, will be a
> - uint8_t, and represents the maximum number of event ports and queues that
> - are optimized for (and only capable of) single-link configurations
> - supported by this device. These ports and queues are not accounted for in
> - max_event_ports or max_event_queues.
> - One new member will be added to the ``rte_event_dev_config`` struct. The
> - nb_single_link_event_port_queues member will be a uint8_t, and will
> - represent the number of event ports and queues that will be singly-linked
> - to each other. These are a subset of the overall event ports and queues.
> - This value cannot exceed nb_event_ports or nb_event_queues. If the
> - device has ports and queues that are optimized for single-link usage, this
> - field is a hint for how many to allocate; otherwise, regular event ports and
> - queues can be used.
> - Finally, the ``rte_event_port_conf`` struct will be
> - modified as follows. The uint8_t implicit_release_disabled field
> - will be replaced by a uint32_t event_port_cfg field. The new field will
> - initially have two bits assigned. RTE_EVENT_PORT_CFG_DISABLE_IMPL_REL
> - will have the same meaning as implicit_release_disabled. The second bit,
> - RTE_EVENT_PORT_CFG_SINGLE_LINK will be set if the event port links only
> - to a single event queue.
Remove this section. It is a duplicate of the below section. One
deprecation notice is enough.
> -
> +* eventdev: ABI change to support DLB PMD and future extensions
> + The following structures and will be modified to support to DLB PMD and future
> + extension in the eventdev library.
> + - ``rte_event_dev_info``
> + - ``rte_event_dev_config``
> + - ``rte_event_port_conf``
> + Patches containing justification, documentation, and proposed modifications
> + can be found at
> + - https://patches.dpdk.org/patch/71457/
> + - https://patches.dpdk.org/patch/71456/
> --
> 1.7.10
>
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH] doc: announce changes to eventdev public data structures
@ 2020-07-31 18:51 5% ` McDaniel, Timothy
2020-07-31 19:03 0% ` Jerin Jacob
2020-07-31 19:31 5% ` McDaniel, Timothy
2 siblings, 1 reply; 200+ results
From: McDaniel, Timothy @ 2020-07-31 18:51 UTC (permalink / raw)
To: jerinj
Cc: mattias.ronnblom, dev, gage.eads, harry.van.haaren, McDaniel, Timothy
From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
Signed-off-by: McDaniel, Timothy <timothy.mcdaniel@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 37 +++++++++-------------------------
1 file changed, 10 insertions(+), 27 deletions(-)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index ecb1bc4..4809643 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -149,30 +149,13 @@ Deprecation Notices
In 20.08, explicit deprecation warnings will be displayed when running
scripts with Python 2.
-* eventdev: Three public data structures will be updated in 20.11;
- ``rte_event_dev_info``, ``rte_event_dev_config``, and
- ``rte_event_port_conf``.
- Two new members will be added to the ``rte_event_dev_info`` struct.
- The first, max_event_port_links, will be a uint8_t, and represents the
- maximum number of queues that can be linked to a single event port by
- this device. The second, max_single_link_event_port_queue_pairs, will be a
- uint8_t, and represents the maximum number of event ports and queues that
- are optimized for (and only capable of) single-link configurations
- supported by this device. These ports and queues are not accounted for in
- max_event_ports or max_event_queues.
- One new member will be added to the ``rte_event_dev_config`` struct. The
- nb_single_link_event_port_queues member will be a uint8_t, and will
- represent the number of event ports and queues that will be singly-linked
- to each other. These are a subset of the overall event ports and queues.
- This value cannot exceed nb_event_ports or nb_event_queues. If the
- device has ports and queues that are optimized for single-link usage, this
- field is a hint for how many to allocate; otherwise, regular event ports and
- queues can be used.
- Finally, the ``rte_event_port_conf`` struct will be
- modified as follows. The uint8_t implicit_release_disabled field
- will be replaced by a uint32_t event_port_cfg field. The new field will
- initially have two bits assigned. RTE_EVENT_PORT_CFG_DISABLE_IMPL_REL
- will have the same meaning as implicit_release_disabled. The second bit,
- RTE_EVENT_PORT_CFG_SINGLE_LINK will be set if the event port links only
- to a single event queue.
-
+* eventdev: ABI change to support DLB PMD and future extensions
+ The following structures and will be modified to support to DLB PMD and future
+ extension in the eventdev library.
+ - ``rte_event_dev_info``
+ - ``rte_event_dev_config``
+ - ``rte_event_port_conf``
+ Patches containing justification, documentation, and proposed modifications
+ can be found at
+ - https://patches.dpdk.org/patch/71457/
+ - https://patches.dpdk.org/patch/71456/
--
1.7.10
^ permalink raw reply [relevance 5%]
* Re: [dpdk-dev] [PATCH v3] cmdline: increase maximum line length
2020-07-31 12:55 0% ` Olivier Matz
2020-07-31 13:00 0% ` David Marchand
@ 2020-07-31 15:46 0% ` Stephen Hemminger
1 sibling, 0 replies; 200+ results
From: Stephen Hemminger @ 2020-07-31 15:46 UTC (permalink / raw)
To: Olivier Matz
Cc: David Marchand, Wisam Jaddo, dev, Raslan, Thomas Monjalon,
Iremonger, Bernard, dpdk stable
On Fri, 31 Jul 2020 14:55:16 +0200
Olivier Matz <olivier.matz@6wind.com> wrote:
> Hi,
>
> Ressurecting this old thread.
>
> On Sat, Feb 22, 2020 at 04:28:15PM +0100, David Marchand wrote:
> > This patch is flagged as an ABI breakage:
> > https://travis-ci.com/ovsrobot/dpdk/jobs/289313318#L2273
> >
>
> In case we want this fix for 20.11, should we do a deprecation notice
> in 20.08?
>
>
> Olivier
>
>
> >
> > On Thu, Feb 20, 2020 at 3:53 PM Wisam Jaddo <wisamm@mellanox.com> wrote:
> > >
> > > This increase due to the usage of cmdline in dpdk applications
> > > as config commands such as testpmd do for rte_flow rules creation.
> > >
> > > The current size of buffer is not enough to fill
> > > many cases of rte_flow commands validation/creation.
> > >
> > > rte_flow now can have outer items, inner items, modify
> > > actions, meta data actions, duplicate action, fate action and
> > > more in one single rte flow, thus 512 char will not be enough
> > > to validate such rte flow rules.
> > >
> > > Such change shouldn't affect the memory since the cmdline
> > > reading again using the same buffer.
> >
> > I don't get your point here.
The cmdline is a awkward user API. Thomas wanted to replace it but
it seems to have gotten nowhere.
Agree that having something dynamic would be best, Something
based of getline() or editline (readline).
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] The mbuf API needs some cleaning up
2020-07-13 9:57 3% [dpdk-dev] The mbuf API needs some cleaning up Morten Brørup
@ 2020-07-31 15:24 0% ` Olivier Matz
2020-08-03 8:42 0% ` Morten Brørup
0 siblings, 1 reply; 200+ results
From: Olivier Matz @ 2020-07-31 15:24 UTC (permalink / raw)
To: Morten Brørup; +Cc: dev
Hi Morten,
Thanks for the feedback.
On Mon, Jul 13, 2020 at 11:57:38AM +0200, Morten Brørup wrote:
> The MBUF library exposes some macros and constants without the RTE_ prefix. I
> propose cleaning up these, so better names get into the coming LTS release.
Yes, Thomas talked about it some time ago and he even drafted a patch to
fix it. We can target 20.11 for the changes, but I think we'll have to
keep a compat API until 21.11.
> The worst is:
> #define MBUF_INVALID_PORT UINT16_MAX
>
> I say it's the worst because when we were looking for the official "invalid"
> port value for our application, we didn't find this one. (Probably because its
> documentation is wrong.)
>
> MBUF_INVALID_PORT is defined in rte_mbuf_core.h without any description, and
> in rte_mbuf.h, where it is injected between the rte_pktmbuf_reset() function
> and its description, so the API documentation shows the function's description
> for the constant, and no description for the function.
The one in rte_mbuf_core.h should be kept, with a documentation.
> I propose keeping it at a sensible location in rte_mbuf_core.h only, adding a description, and renaming it to:
> #define RTE_PORT_INVALID UINT16_MAX
I suggest RTE_MBUF_PORT_INVALID
> For backwards compatibility, we could add:
> /* this old name is deprecated */
> #define MBUF_INVALID_PORT RTE_PORT_INVALID
>
> I also wonder why there are no compiler warnings about the double definition?
If the value is the same, the compiler won't complain.
> There are also the data buffer location constants:
> #define EXT_ATTACHED_MBUF (1ULL << 61)
> and
> #define IND_ATTACHED_MBUF (1ULL << 62)
>
>
> There are already macros (with good names) for reading these, so
> simply adding the RTE_ prefix to these two constants suffices.
Some applications use it, we also need a compat here.
> And all the packet offload flags, such as:
> #define PKT_RX_VLAN (1ULL << 0)
>
>
> They are supposed to be used by applications, so I guess we should
> keep them unchanged for ABI stability reasons.
I propose RTE_MBUF_F_<name> for the mbuf flags.
> And the local macro:
> #define MBUF_RAW_ALLOC_CHECK(m) do { \
>
> This might as well be an internal inline function:
> /* internal */
> static inline void
> __rte_mbuf_raw_alloc_check(const struct rte_mbuf *m)
>
agree, I don't think a macro is mandatory here
Thanks,
Olivier
> Or we could keep it a macro and move it next to
> __rte_mbuf_sanity_check(), keeping it clear that it is only relevant when
> RTE_LIBRTE_MBUF_DEBUG is set. But rename it to lower case, similar to the
> __rte_mbuf_sanity_check() macro.
>
>
> Med venlig hilsen / kind regards
> - Morten Brørup
>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v3] cmdline: increase maximum line length
2020-07-31 12:55 0% ` Olivier Matz
@ 2020-07-31 13:00 0% ` David Marchand
2020-07-31 15:46 0% ` Stephen Hemminger
1 sibling, 0 replies; 200+ results
From: David Marchand @ 2020-07-31 13:00 UTC (permalink / raw)
To: Olivier Matz
Cc: Wisam Jaddo, dev, Raslan, Thomas Monjalon, Iremonger, Bernard,
dpdk stable
On Fri, Jul 31, 2020 at 2:55 PM Olivier Matz <olivier.matz@6wind.com> wrote:
> Ressurecting this old thread.
>
> On Sat, Feb 22, 2020 at 04:28:15PM +0100, David Marchand wrote:
> > This patch is flagged as an ABI breakage:
> > https://travis-ci.com/ovsrobot/dpdk/jobs/289313318#L2273
> >
>
> In case we want this fix for 20.11, should we do a deprecation notice
> in 20.08?
If there is something to change, that would be removing this max size
rather than extend it.
Let's not go the "XX bytes ought to be enough for anybody" way.
--
David Marchand
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v3] cmdline: increase maximum line length
@ 2020-07-31 12:55 0% ` Olivier Matz
2020-07-31 13:00 0% ` David Marchand
2020-07-31 15:46 0% ` Stephen Hemminger
0 siblings, 2 replies; 200+ results
From: Olivier Matz @ 2020-07-31 12:55 UTC (permalink / raw)
To: David Marchand
Cc: Wisam Jaddo, dev, Raslan, Thomas Monjalon, Iremonger, Bernard,
dpdk stable
Hi,
Ressurecting this old thread.
On Sat, Feb 22, 2020 at 04:28:15PM +0100, David Marchand wrote:
> This patch is flagged as an ABI breakage:
> https://travis-ci.com/ovsrobot/dpdk/jobs/289313318#L2273
>
In case we want this fix for 20.11, should we do a deprecation notice
in 20.08?
Olivier
>
> On Thu, Feb 20, 2020 at 3:53 PM Wisam Jaddo <wisamm@mellanox.com> wrote:
> >
> > This increase due to the usage of cmdline in dpdk applications
> > as config commands such as testpmd do for rte_flow rules creation.
> >
> > The current size of buffer is not enough to fill
> > many cases of rte_flow commands validation/creation.
> >
> > rte_flow now can have outer items, inner items, modify
> > actions, meta data actions, duplicate action, fate action and
> > more in one single rte flow, thus 512 char will not be enough
> > to validate such rte flow rules.
> >
> > Such change shouldn't affect the memory since the cmdline
> > reading again using the same buffer.
>
> I don't get your point here.
>
>
> > Cc: stable@dpdk.org
>
> This is not a fix.
>
>
> --
> David Marchand
>
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH 08/27] event/dlb: add definitions shared with LKM or shared code
2020-07-30 19:49 1% ` [dpdk-dev] [PATCH 03/27] event/dlb: add shared code version 10.7.9 McDaniel, Timothy
@ 2020-07-30 19:49 1% ` McDaniel, Timothy
1 sibling, 0 replies; 200+ results
From: McDaniel, Timothy @ 2020-07-30 19:49 UTC (permalink / raw)
To: jerinj
Cc: mattias.ronnblom, dev, gage.eads, harry.van.haaren, McDaniel, Timothy
From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
Signed-off-by: McDaniel, Timothy <timothy.mcdaniel@intel.com>
---
drivers/event/dlb/dlb_user.h | 1083 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1083 insertions(+)
create mode 100644 drivers/event/dlb/dlb_user.h
diff --git a/drivers/event/dlb/dlb_user.h b/drivers/event/dlb/dlb_user.h
new file mode 100644
index 0000000..73b601b
--- /dev/null
+++ b/drivers/event/dlb/dlb_user.h
@@ -0,0 +1,1083 @@
+/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#ifndef __DLB_USER_H
+#define __DLB_USER_H
+
+#define DLB_MAX_NAME_LEN 64
+
+#include <linux/types.h>
+
+enum dlb_error {
+ DLB_ST_SUCCESS = 0,
+ DLB_ST_NAME_EXISTS,
+ DLB_ST_DOMAIN_UNAVAILABLE,
+ DLB_ST_LDB_PORTS_UNAVAILABLE,
+ DLB_ST_DIR_PORTS_UNAVAILABLE,
+ DLB_ST_LDB_QUEUES_UNAVAILABLE,
+ DLB_ST_LDB_CREDITS_UNAVAILABLE,
+ DLB_ST_DIR_CREDITS_UNAVAILABLE,
+ DLB_ST_LDB_CREDIT_POOLS_UNAVAILABLE,
+ DLB_ST_DIR_CREDIT_POOLS_UNAVAILABLE,
+ DLB_ST_SEQUENCE_NUMBERS_UNAVAILABLE,
+ DLB_ST_INVALID_DOMAIN_ID,
+ DLB_ST_INVALID_QID_INFLIGHT_ALLOCATION,
+ DLB_ST_ATOMIC_INFLIGHTS_UNAVAILABLE,
+ DLB_ST_HIST_LIST_ENTRIES_UNAVAILABLE,
+ DLB_ST_INVALID_LDB_CREDIT_POOL_ID,
+ DLB_ST_INVALID_DIR_CREDIT_POOL_ID,
+ DLB_ST_INVALID_POP_COUNT_VIRT_ADDR,
+ DLB_ST_INVALID_LDB_QUEUE_ID,
+ DLB_ST_INVALID_CQ_DEPTH,
+ DLB_ST_INVALID_CQ_VIRT_ADDR,
+ DLB_ST_INVALID_PORT_ID,
+ DLB_ST_INVALID_QID,
+ DLB_ST_INVALID_PRIORITY,
+ DLB_ST_NO_QID_SLOTS_AVAILABLE,
+ DLB_ST_QED_FREELIST_ENTRIES_UNAVAILABLE,
+ DLB_ST_DQED_FREELIST_ENTRIES_UNAVAILABLE,
+ DLB_ST_INVALID_DIR_QUEUE_ID,
+ DLB_ST_DIR_QUEUES_UNAVAILABLE,
+ DLB_ST_INVALID_LDB_CREDIT_LOW_WATERMARK,
+ DLB_ST_INVALID_LDB_CREDIT_QUANTUM,
+ DLB_ST_INVALID_DIR_CREDIT_LOW_WATERMARK,
+ DLB_ST_INVALID_DIR_CREDIT_QUANTUM,
+ DLB_ST_DOMAIN_NOT_CONFIGURED,
+ DLB_ST_PID_ALREADY_ATTACHED,
+ DLB_ST_PID_NOT_ATTACHED,
+ DLB_ST_INTERNAL_ERROR,
+ DLB_ST_DOMAIN_IN_USE,
+ DLB_ST_IOMMU_MAPPING_ERROR,
+ DLB_ST_FAIL_TO_PIN_MEMORY_PAGE,
+ DLB_ST_UNABLE_TO_PIN_POPCOUNT_PAGES,
+ DLB_ST_UNABLE_TO_PIN_CQ_PAGES,
+ DLB_ST_DISCONTIGUOUS_CQ_MEMORY,
+ DLB_ST_DISCONTIGUOUS_POP_COUNT_MEMORY,
+ DLB_ST_DOMAIN_STARTED,
+ DLB_ST_LARGE_POOL_NOT_SPECIFIED,
+ DLB_ST_SMALL_POOL_NOT_SPECIFIED,
+ DLB_ST_NEITHER_POOL_SPECIFIED,
+ DLB_ST_DOMAIN_NOT_STARTED,
+ DLB_ST_INVALID_MEASUREMENT_DURATION,
+ DLB_ST_INVALID_PERF_METRIC_GROUP_ID,
+ DLB_ST_LDB_PORT_REQUIRED_FOR_LDB_QUEUES,
+ DLB_ST_DOMAIN_RESET_FAILED,
+ DLB_ST_MBOX_ERROR,
+ DLB_ST_INVALID_HIST_LIST_DEPTH,
+ DLB_ST_NO_MEMORY,
+};
+
+static const char dlb_error_strings[][128] = {
+ "DLB_ST_SUCCESS",
+ "DLB_ST_NAME_EXISTS",
+ "DLB_ST_DOMAIN_UNAVAILABLE",
+ "DLB_ST_LDB_PORTS_UNAVAILABLE",
+ "DLB_ST_DIR_PORTS_UNAVAILABLE",
+ "DLB_ST_LDB_QUEUES_UNAVAILABLE",
+ "DLB_ST_LDB_CREDITS_UNAVAILABLE",
+ "DLB_ST_DIR_CREDITS_UNAVAILABLE",
+ "DLB_ST_LDB_CREDIT_POOLS_UNAVAILABLE",
+ "DLB_ST_DIR_CREDIT_POOLS_UNAVAILABLE",
+ "DLB_ST_SEQUENCE_NUMBERS_UNAVAILABLE",
+ "DLB_ST_INVALID_DOMAIN_ID",
+ "DLB_ST_INVALID_QID_INFLIGHT_ALLOCATION",
+ "DLB_ST_ATOMIC_INFLIGHTS_UNAVAILABLE",
+ "DLB_ST_HIST_LIST_ENTRIES_UNAVAILABLE",
+ "DLB_ST_INVALID_LDB_CREDIT_POOL_ID",
+ "DLB_ST_INVALID_DIR_CREDIT_POOL_ID",
+ "DLB_ST_INVALID_POP_COUNT_VIRT_ADDR",
+ "DLB_ST_INVALID_LDB_QUEUE_ID",
+ "DLB_ST_INVALID_CQ_DEPTH",
+ "DLB_ST_INVALID_CQ_VIRT_ADDR",
+ "DLB_ST_INVALID_PORT_ID",
+ "DLB_ST_INVALID_QID",
+ "DLB_ST_INVALID_PRIORITY",
+ "DLB_ST_NO_QID_SLOTS_AVAILABLE",
+ "DLB_ST_QED_FREELIST_ENTRIES_UNAVAILABLE",
+ "DLB_ST_DQED_FREELIST_ENTRIES_UNAVAILABLE",
+ "DLB_ST_INVALID_DIR_QUEUE_ID",
+ "DLB_ST_DIR_QUEUES_UNAVAILABLE",
+ "DLB_ST_INVALID_LDB_CREDIT_LOW_WATERMARK",
+ "DLB_ST_INVALID_LDB_CREDIT_QUANTUM",
+ "DLB_ST_INVALID_DIR_CREDIT_LOW_WATERMARK",
+ "DLB_ST_INVALID_DIR_CREDIT_QUANTUM",
+ "DLB_ST_DOMAIN_NOT_CONFIGURED",
+ "DLB_ST_PID_ALREADY_ATTACHED",
+ "DLB_ST_PID_NOT_ATTACHED",
+ "DLB_ST_INTERNAL_ERROR",
+ "DLB_ST_DOMAIN_IN_USE",
+ "DLB_ST_IOMMU_MAPPING_ERROR",
+ "DLB_ST_FAIL_TO_PIN_MEMORY_PAGE",
+ "DLB_ST_UNABLE_TO_PIN_POPCOUNT_PAGES",
+ "DLB_ST_UNABLE_TO_PIN_CQ_PAGES",
+ "DLB_ST_DISCONTIGUOUS_CQ_MEMORY",
+ "DLB_ST_DISCONTIGUOUS_POP_COUNT_MEMORY",
+ "DLB_ST_DOMAIN_STARTED",
+ "DLB_ST_LARGE_POOL_NOT_SPECIFIED",
+ "DLB_ST_SMALL_POOL_NOT_SPECIFIED",
+ "DLB_ST_NEITHER_POOL_SPECIFIED",
+ "DLB_ST_DOMAIN_NOT_STARTED",
+ "DLB_ST_INVALID_MEASUREMENT_DURATION",
+ "DLB_ST_INVALID_PERF_METRIC_GROUP_ID",
+ "DLB_ST_LDB_PORT_REQUIRED_FOR_LDB_QUEUES",
+ "DLB_ST_DOMAIN_RESET_FAILED",
+ "DLB_ST_MBOX_ERROR",
+ "DLB_ST_INVALID_HIST_LIST_DEPTH",
+ "DLB_ST_NO_MEMORY",
+};
+
+struct dlb_cmd_response {
+ __u32 status; /* Interpret using enum dlb_error */
+ __u32 id;
+};
+
+/******************************/
+/* 'dlb' device file commands */
+/******************************/
+
+#define DLB_DEVICE_VERSION(x) (((x) >> 8) & 0xFF)
+#define DLB_DEVICE_REVISION(x) ((x) & 0xFF)
+
+enum dlb_revisions {
+ DLB_REV_A0 = 0,
+ DLB_REV_A1 = 1,
+ DLB_REV_A2 = 2,
+ DLB_REV_A3 = 3,
+ DLB_REV_B0 = 4,
+};
+
+/*
+ * DLB_CMD_GET_DEVICE_VERSION: Query the DLB device version.
+ *
+ * This ioctl interface is the same in all driver versions and is always
+ * the first ioctl.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id[7:0]: Device revision.
+ * response.id[15:8]: Device version.
+ */
+
+struct dlb_get_device_version_args {
+ /* Output parameters */
+ __u64 response;
+};
+
+#define DLB_VERSION_MAJOR_NUMBER 10
+#define DLB_VERSION_MINOR_NUMBER 7
+#define DLB_VERSION_REVISION_NUMBER 9
+#define DLB_VERSION (DLB_VERSION_MAJOR_NUMBER << 24 | \
+ DLB_VERSION_MINOR_NUMBER << 16 | \
+ DLB_VERSION_REVISION_NUMBER)
+
+#define DLB_VERSION_GET_MAJOR_NUMBER(x) (((x) >> 24) & 0xFF)
+#define DLB_VERSION_GET_MINOR_NUMBER(x) (((x) >> 16) & 0xFF)
+#define DLB_VERSION_GET_REVISION_NUMBER(x) ((x) & 0xFFFF)
+
+static inline __u8 dlb_version_incompatible(__u32 version)
+{
+ __u8 inc;
+
+ inc = DLB_VERSION_GET_MAJOR_NUMBER(version) != DLB_VERSION_MAJOR_NUMBER;
+ inc |= (int)DLB_VERSION_GET_MINOR_NUMBER(version) <
+ DLB_VERSION_MINOR_NUMBER;
+
+ return inc;
+}
+
+/*
+ * DLB_CMD_GET_DRIVER_VERSION: Query the DLB driver version. The major number
+ * is changed when there is an ABI-breaking change, the minor number is
+ * changed if the API is changed in a backwards-compatible way, and the
+ * revision number is changed for fixes that don't affect the API.
+ *
+ * If the kernel driver's API version major number and the header's
+ * DLB_VERSION_MAJOR_NUMBER differ, the two are incompatible, or if the
+ * major numbers match but the kernel driver's minor number is less than
+ * the header file's, they are incompatible. The DLB_VERSION_INCOMPATIBLE
+ * macro should be used to check for compatibility.
+ *
+ * This ioctl interface is the same in all driver versions. Applications
+ * should check the driver version before performing any other ioctl
+ * operations.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Driver API version. Use the DLB_VERSION_GET_MAJOR_NUMBER,
+ * DLB_VERSION_GET_MINOR_NUMBER, and
+ * DLB_VERSION_GET_REVISION_NUMBER macros to interpret the field.
+ */
+
+struct dlb_get_driver_version_args {
+ /* Output parameters */
+ __u64 response;
+};
+
+/*
+ * DLB_CMD_CREATE_SCHED_DOMAIN: Create a DLB scheduling domain and reserve the
+ * resources (queues, ports, etc.) that it contains.
+ *
+ * Input parameters:
+ * - num_ldb_queues: Number of load-balanced queues.
+ * - num_ldb_ports: Number of load-balanced ports.
+ * - num_dir_ports: Number of directed ports. A directed port has one directed
+ * queue, so no num_dir_queues argument is necessary.
+ * - num_atomic_inflights: This specifies the amount of temporary atomic QE
+ * storage for the domain. This storage is divided among the domain's
+ * load-balanced queues that are configured for atomic scheduling.
+ * - num_hist_list_entries: Amount of history list storage. This is divided
+ * among the domain's CQs.
+ * - num_ldb_credits: Amount of load-balanced QE storage (QED). QEs occupy this
+ * space until they are scheduled to a load-balanced CQ. One credit
+ * represents the storage for one QE.
+ * - num_dir_credits: Amount of directed QE storage (DQED). QEs occupy this
+ * space until they are scheduled to a directed CQ. One credit represents
+ * the storage for one QE.
+ * - num_ldb_credit_pools: Number of pools into which the load-balanced credits
+ * are placed.
+ * - num_dir_credit_pools: Number of pools into which the directed credits are
+ * placed.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: domain ID.
+ */
+struct dlb_create_sched_domain_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 num_ldb_queues;
+ __u32 num_ldb_ports;
+ __u32 num_dir_ports;
+ __u32 num_atomic_inflights;
+ __u32 num_hist_list_entries;
+ __u32 num_ldb_credits;
+ __u32 num_dir_credits;
+ __u32 num_ldb_credit_pools;
+ __u32 num_dir_credit_pools;
+};
+
+/*
+ * DLB_CMD_GET_NUM_RESOURCES: Return the number of available resources
+ * (queues, ports, etc.) that this device owns.
+ *
+ * Output parameters:
+ * - num_domains: Number of available scheduling domains.
+ * - num_ldb_queues: Number of available load-balanced queues.
+ * - num_ldb_ports: Number of available load-balanced ports.
+ * - num_dir_ports: Number of available directed ports. There is one directed
+ * queue for every directed port.
+ * - num_atomic_inflights: Amount of available temporary atomic QE storage.
+ * - max_contiguous_atomic_inflights: When a domain is created, the temporary
+ * atomic QE storage is allocated in a contiguous chunk. This return value
+ * is the longest available contiguous range of atomic QE storage.
+ * - num_hist_list_entries: Amount of history list storage.
+ * - max_contiguous_hist_list_entries: History list storage is allocated in
+ * a contiguous chunk, and this return value is the longest available
+ * contiguous range of history list entries.
+ * - num_ldb_credits: Amount of available load-balanced QE storage.
+ * - max_contiguous_ldb_credits: QED storage is allocated in a contiguous
+ * chunk, and this return value is the longest available contiguous range
+ * of load-balanced credit storage.
+ * - num_dir_credits: Amount of available directed QE storage.
+ * - max_contiguous_dir_credits: DQED storage is allocated in a contiguous
+ * chunk, and this return value is the longest available contiguous range
+ * of directed credit storage.
+ * - num_ldb_credit_pools: Number of available load-balanced credit pools.
+ * - num_dir_credit_pools: Number of available directed credit pools.
+ * - padding0: Reserved for future use.
+ */
+struct dlb_get_num_resources_args {
+ /* Output parameters */
+ __u32 num_sched_domains;
+ __u32 num_ldb_queues;
+ __u32 num_ldb_ports;
+ __u32 num_dir_ports;
+ __u32 num_atomic_inflights;
+ __u32 max_contiguous_atomic_inflights;
+ __u32 num_hist_list_entries;
+ __u32 max_contiguous_hist_list_entries;
+ __u32 num_ldb_credits;
+ __u32 max_contiguous_ldb_credits;
+ __u32 num_dir_credits;
+ __u32 max_contiguous_dir_credits;
+ __u32 num_ldb_credit_pools;
+ __u32 num_dir_credit_pools;
+ __u32 padding0;
+};
+
+/*
+ * DLB_CMD_SET_SN_ALLOCATION: Configure a sequence number group
+ *
+ * Input parameters:
+ * - group: Sequence number group ID.
+ * - num: Number of sequence numbers per queue.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_set_sn_allocation_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 group;
+ __u32 num;
+};
+
+/*
+ * DLB_CMD_GET_SN_ALLOCATION: Get a sequence number group's configuration
+ *
+ * Input parameters:
+ * - group: Sequence number group ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Specified group's number of sequence numbers per queue.
+ */
+struct dlb_get_sn_allocation_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 group;
+ __u32 padding0;
+};
+
+enum dlb_cq_poll_modes {
+ DLB_CQ_POLL_MODE_STD,
+ DLB_CQ_POLL_MODE_SPARSE,
+
+ /* NUM_DLB_CQ_POLL_MODE must be last */
+ NUM_DLB_CQ_POLL_MODE,
+};
+
+/*
+ * DLB_CMD_QUERY_CQ_POLL_MODE: Query the CQ poll mode the kernel driver is using
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: CQ poll mode (see enum dlb_cq_poll_modes).
+ */
+struct dlb_query_cq_poll_mode_args {
+ /* Output parameters */
+ __u64 response;
+};
+
+/*
+ * DLB_CMD_GET_SN_OCCUPANCY: Get a sequence number group's occupancy
+ *
+ * Each sequence number group has one or more slots, depending on its
+ * configuration. I.e.:
+ * - If configured for 1024 sequence numbers per queue, the group has 1 slot
+ * - If configured for 512 sequence numbers per queue, the group has 2 slots
+ * ...
+ * - If configured for 32 sequence numbers per queue, the group has 32 slots
+ *
+ * This ioctl returns the group's number of in-use slots. If its occupancy is
+ * 0, the group's sequence number allocation can be reconfigured.
+ *
+ * Input parameters:
+ * - group: Sequence number group ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Specified group's number of used slots.
+ */
+struct dlb_get_sn_occupancy_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 group;
+ __u32 padding0;
+};
+
+enum dlb_user_interface_commands {
+ DLB_CMD_GET_DEVICE_VERSION,
+ DLB_CMD_CREATE_SCHED_DOMAIN,
+ DLB_CMD_GET_NUM_RESOURCES,
+ DLB_CMD_GET_DRIVER_VERSION,
+ DLB_CMD_SAMPLE_PERF_COUNTERS,
+ DLB_CMD_SET_SN_ALLOCATION,
+ DLB_CMD_GET_SN_ALLOCATION,
+ DLB_CMD_MEASURE_SCHED_COUNTS,
+ DLB_CMD_QUERY_CQ_POLL_MODE,
+ DLB_CMD_GET_SN_OCCUPANCY,
+
+ /* NUM_DLB_CMD must be last */
+ NUM_DLB_CMD,
+};
+
+/*******************************/
+/* 'domain' device file alerts */
+/*******************************/
+
+/* Scheduling domain device files can be read to receive domain-specific
+ * notifications, for alerts such as hardware errors.
+ *
+ * Each alert is encoded in a 16B message. The first 8B contains the alert ID,
+ * and the second 8B is optional and contains additional information.
+ * Applications should cast read data to a struct dlb_domain_alert, and
+ * interpret the struct's alert_id according to dlb_domain_alert_id. The read
+ * length must be 16B, or the function will return -EINVAL.
+ *
+ * Reads are destructive, and in the case of multiple file descriptors for the
+ * same domain device file, an alert will be read by only one of the file
+ * descriptors.
+ *
+ * The driver stores alerts in a fixed-size alert ring until they are read. If
+ * the alert ring fills completely, subsequent alerts will be dropped. It is
+ * recommended that DLB applications dedicate a thread to perform blocking
+ * reads on the device file.
+ */
+enum dlb_domain_alert_id {
+ /* A destination domain queue that this domain connected to has
+ * unregistered, and can no longer be sent to. The aux alert data
+ * contains the queue ID.
+ */
+ DLB_DOMAIN_ALERT_REMOTE_QUEUE_UNREGISTER,
+ /* A producer port in this domain attempted to send a QE without a
+ * credit. aux_alert_data[7:0] contains the port ID, and
+ * aux_alert_data[15:8] contains a flag indicating whether the port is
+ * load-balanced (1) or directed (0).
+ */
+ DLB_DOMAIN_ALERT_PP_OUT_OF_CREDITS,
+ /* Software issued an illegal enqueue for a port in this domain. An
+ * illegal enqueue could be:
+ * - Illegal (excess) completion
+ * - Illegal fragment
+ * - Illegal enqueue command
+ * aux_alert_data[7:0] contains the port ID, and aux_alert_data[15:8]
+ * contains a flag indicating whether the port is load-balanced (1) or
+ * directed (0).
+ */
+ DLB_DOMAIN_ALERT_PP_ILLEGAL_ENQ,
+ /* Software issued excess CQ token pops for a port in this domain.
+ * aux_alert_data[7:0] contains the port ID, and aux_alert_data[15:8]
+ * contains a flag indicating whether the port is load-balanced (1) or
+ * directed (0).
+ */
+ DLB_DOMAIN_ALERT_PP_EXCESS_TOKEN_POPS,
+ /* A enqueue contained either an invalid command encoding or a REL,
+ * REL_T, RLS, FWD, FWD_T, FRAG, or FRAG_T from a directed port.
+ *
+ * aux_alert_data[7:0] contains the port ID, and aux_alert_data[15:8]
+ * contains a flag indicating whether the port is load-balanced (1) or
+ * directed (0).
+ */
+ DLB_DOMAIN_ALERT_ILLEGAL_HCW,
+ /* The QID must be valid and less than 128.
+ *
+ * aux_alert_data[7:0] contains the port ID, and aux_alert_data[15:8]
+ * contains a flag indicating whether the port is load-balanced (1) or
+ * directed (0).
+ */
+ DLB_DOMAIN_ALERT_ILLEGAL_QID,
+ /* An enqueue went to a disabled QID.
+ *
+ * aux_alert_data[7:0] contains the port ID, and aux_alert_data[15:8]
+ * contains a flag indicating whether the port is load-balanced (1) or
+ * directed (0).
+ */
+ DLB_DOMAIN_ALERT_DISABLED_QID,
+ /* The device containing this domain was reset. All applications using
+ * the device need to exit for the driver to complete the reset
+ * procedure.
+ *
+ * aux_alert_data doesn't contain any information for this alert.
+ */
+ DLB_DOMAIN_ALERT_DEVICE_RESET,
+ /* User-space has enqueued an alert.
+ *
+ * aux_alert_data contains user-provided data.
+ */
+ DLB_DOMAIN_ALERT_USER,
+
+ /* Number of DLB domain alerts */
+ NUM_DLB_DOMAIN_ALERTS
+};
+
+static const char dlb_domain_alert_strings[][128] = {
+ "DLB_DOMAIN_ALERT_REMOTE_QUEUE_UNREGISTER",
+ "DLB_DOMAIN_ALERT_PP_OUT_OF_CREDITS",
+ "DLB_DOMAIN_ALERT_PP_ILLEGAL_ENQ",
+ "DLB_DOMAIN_ALERT_PP_EXCESS_TOKEN_POPS",
+ "DLB_DOMAIN_ALERT_ILLEGAL_HCW",
+ "DLB_DOMAIN_ALERT_ILLEGAL_QID",
+ "DLB_DOMAIN_ALERT_DISABLED_QID",
+ "DLB_DOMAIN_ALERT_DEVICE_RESET",
+ "DLB_DOMAIN_ALERT_USER",
+};
+
+struct dlb_domain_alert {
+ __u64 alert_id;
+ __u64 aux_alert_data;
+};
+
+/*********************************/
+/* 'domain' device file commands */
+/*********************************/
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_LDB_POOL: Configure a load-balanced credit pool.
+ * Input parameters:
+ * - num_ldb_credits: Number of load-balanced credits (QED space) for this
+ * pool.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: pool ID.
+ */
+struct dlb_create_ldb_pool_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 num_ldb_credits;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_DIR_POOL: Configure a directed credit pool.
+ * Input parameters:
+ * - num_dir_credits: Number of directed credits (DQED space) for this pool.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Pool ID.
+ */
+struct dlb_create_dir_pool_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 num_dir_credits;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_LDB_QUEUE: Configure a load-balanced queue.
+ * Input parameters:
+ * - num_atomic_inflights: This specifies the amount of temporary atomic QE
+ * storage for this queue. If zero, the queue will not support atomic
+ * scheduling.
+ * - num_sequence_numbers: This specifies the number of sequence numbers used
+ * by this queue. If zero, the queue will not support ordered scheduling.
+ * If non-zero, the queue will not support unordered scheduling.
+ * - num_qid_inflights: The maximum number of QEs that can be inflight
+ * (scheduled to a CQ but not completed) at any time. If
+ * num_sequence_numbers is non-zero, num_qid_inflights must be set equal
+ * to num_sequence_numbers.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Queue ID.
+ */
+struct dlb_create_ldb_queue_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 num_sequence_numbers;
+ __u32 num_qid_inflights;
+ __u32 num_atomic_inflights;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_DIR_QUEUE: Configure a directed queue.
+ * Input parameters:
+ * - port_id: Port ID. If the corresponding directed port is already created,
+ * specify its ID here. Else this argument must be 0xFFFFFFFF to indicate
+ * that the queue is being created before the port.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Queue ID.
+ */
+struct dlb_create_dir_queue_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __s32 port_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_LDB_PORT: Configure a load-balanced port.
+ * Input parameters:
+ * - ldb_credit_pool_id: Load-balanced credit pool this port will belong to.
+ * - dir_credit_pool_id: Directed credit pool this port will belong to.
+ * - ldb_credit_high_watermark: Number of load-balanced credits from the pool
+ * that this port will own.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_high_watermark: Number of directed credits from the pool that
+ * this port will own.
+ *
+ * If this port's scheduling domain doesn't have any directed queues,
+ * this argument is ignored and the port is given no directed credits.
+ * - ldb_credit_low_watermark: Load-balanced credit low watermark. When the
+ * port's credits reach this watermark, they become eligible to be
+ * refilled by the DLB as credits until the high watermark
+ * (num_ldb_credits) is reached.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_low_watermark: Directed credit low watermark. When the port's
+ * credits reach this watermark, they become eligible to be refilled by
+ * the DLB as credits until the high watermark (num_dir_credits) is
+ * reached.
+ *
+ * If this port's scheduling domain doesn't have any directed queues,
+ * this argument is ignored and the port is given no directed credits.
+ * - ldb_credit_quantum: Number of load-balanced credits for the DLB to refill
+ * per refill operation.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_quantum: Number of directed credits for the DLB to refill per
+ * refill operation.
+ *
+ * If this port's scheduling domain doesn't have any directed queues,
+ * this argument is ignored and the port is given no directed credits.
+ * - padding0: Reserved for future use.
+ * - cq_depth: Depth of the port's CQ. Must be a power-of-two between 8 and
+ * 1024, inclusive.
+ * - cq_depth_threshold: CQ depth interrupt threshold. A value of N means that
+ * the CQ interrupt won't fire until there are N or more outstanding CQ
+ * tokens.
+ * - cq_history_list_size: Number of history list entries. This must be greater
+ * than or equal to cq_depth.
+ * - padding1: Reserved for future use.
+ * - padding2: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: port ID.
+ */
+struct dlb_create_ldb_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 ldb_credit_pool_id;
+ __u32 dir_credit_pool_id;
+ __u16 ldb_credit_high_watermark;
+ __u16 ldb_credit_low_watermark;
+ __u16 ldb_credit_quantum;
+ __u16 dir_credit_high_watermark;
+ __u16 dir_credit_low_watermark;
+ __u16 dir_credit_quantum;
+ __u16 padding0;
+ __u16 cq_depth;
+ __u16 cq_depth_threshold;
+ __u16 cq_history_list_size;
+ __u32 padding1;
+};
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_DIR_PORT: Configure a directed port.
+ * Input parameters:
+ * - ldb_credit_pool_id: Load-balanced credit pool this port will belong to.
+ * - dir_credit_pool_id: Directed credit pool this port will belong to.
+ * - ldb_credit_high_watermark: Number of load-balanced credits from the pool
+ * that this port will own.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_high_watermark: Number of directed credits from the pool that
+ * this port will own.
+ * - ldb_credit_low_watermark: Load-balanced credit low watermark. When the
+ * port's credits reach this watermark, they become eligible to be
+ * refilled by the DLB as credits until the high watermark
+ * (num_ldb_credits) is reached.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_low_watermark: Directed credit low watermark. When the port's
+ * credits reach this watermark, they become eligible to be refilled by
+ * the DLB as credits until the high watermark (num_dir_credits) is
+ * reached.
+ * - ldb_credit_quantum: Number of load-balanced credits for the DLB to refill
+ * per refill operation.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_quantum: Number of directed credits for the DLB to refill per
+ * refill operation.
+ * - cq_depth: Depth of the port's CQ. Must be a power-of-two between 8 and
+ * 1024, inclusive.
+ * - cq_depth_threshold: CQ depth interrupt threshold. A value of N means that
+ * the CQ interrupt won't fire until there are N or more outstanding CQ
+ * tokens.
+ * - qid: Queue ID. If the corresponding directed queue is already created,
+ * specify its ID here. Else this argument must be 0xFFFFFFFF to indicate
+ * that the port is being created before the queue.
+ * - padding1: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Port ID.
+ */
+struct dlb_create_dir_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 ldb_credit_pool_id;
+ __u32 dir_credit_pool_id;
+ __u16 ldb_credit_high_watermark;
+ __u16 ldb_credit_low_watermark;
+ __u16 ldb_credit_quantum;
+ __u16 dir_credit_high_watermark;
+ __u16 dir_credit_low_watermark;
+ __u16 dir_credit_quantum;
+ __u16 cq_depth;
+ __u16 cq_depth_threshold;
+ __s32 queue_id;
+ __u32 padding1;
+};
+
+/*
+ * DLB_DOMAIN_CMD_START_DOMAIN: Mark the end of the domain configuration. This
+ * must be called before passing QEs into the device, and no configuration
+ * ioctls can be issued once the domain has started. Sending QEs into the
+ * device before calling this ioctl will result in undefined behavior.
+ * Input parameters:
+ * - (None)
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_start_domain_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+};
+
+/*
+ * DLB_DOMAIN_CMD_MAP_QID: Map a load-balanced queue to a load-balanced port.
+ * Input parameters:
+ * - port_id: Load-balanced port ID.
+ * - qid: Load-balanced queue ID.
+ * - priority: Queue->port service priority.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_map_qid_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 qid;
+ __u32 priority;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_UNMAP_QID: Unmap a load-balanced queue to a load-balanced
+ * port.
+ * Input parameters:
+ * - port_id: Load-balanced port ID.
+ * - qid: Load-balanced queue ID.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_unmap_qid_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 qid;
+};
+
+/*
+ * DLB_DOMAIN_CMD_ENABLE_LDB_PORT: Enable scheduling to a load-balanced port.
+ * Input parameters:
+ * - port_id: Load-balanced port ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_enable_ldb_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_ENABLE_DIR_PORT: Enable scheduling to a directed port.
+ * Input parameters:
+ * - port_id: Directed port ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_enable_dir_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+};
+
+/*
+ * DLB_DOMAIN_CMD_DISABLE_LDB_PORT: Disable scheduling to a load-balanced port.
+ * Input parameters:
+ * - port_id: Load-balanced port ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_disable_ldb_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_DISABLE_DIR_PORT: Disable scheduling to a directed port.
+ * Input parameters:
+ * - port_id: Directed port ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_disable_dir_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_BLOCK_ON_CQ_INTERRUPT: Block on a CQ interrupt until a QE
+ * arrives for the specified port. If a QE is already present, the ioctl
+ * will immediately return.
+ *
+ * Note: Only one thread can block on a CQ's interrupt at a time. Doing
+ * otherwise can result in hung threads.
+ *
+ * Input parameters:
+ * - port_id: Port ID.
+ * - is_ldb: True if the port is load-balanced, false otherwise.
+ * - arm: Tell the driver to arm the interrupt.
+ * - cq_gen: Current CQ generation bit.
+ * - padding0: Reserved for future use.
+ * - cq_va: VA of the CQ entry where the next QE will be placed.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_block_on_cq_interrupt_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u8 is_ldb;
+ __u8 arm;
+ __u8 cq_gen;
+ __u8 padding0;
+ __u64 cq_va;
+};
+
+/*
+ * DLB_DOMAIN_CMD_ENQUEUE_DOMAIN_ALERT: Enqueue a domain alert that will be
+ * read by one reader thread.
+ *
+ * Input parameters:
+ * - aux_alert_data: user-defined auxiliary data.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_enqueue_domain_alert_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u64 aux_alert_data;
+};
+
+/*
+ * DLB_DOMAIN_CMD_GET_LDB_QUEUE_DEPTH: Get a load-balanced queue's depth.
+ * Input parameters:
+ * - queue_id: The load-balanced queue ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: queue depth.
+ */
+struct dlb_get_ldb_queue_depth_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 queue_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_GET_DIR_QUEUE_DEPTH: Get a directed queue's depth.
+ * Input parameters:
+ * - queue_id: The directed queue ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: queue depth.
+ */
+struct dlb_get_dir_queue_depth_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 queue_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_PENDING_PORT_UNMAPS: Get number of queue unmap operations in
+ * progress for a load-balanced port.
+ *
+ * Note: This is a snapshot; the number of unmap operations in progress
+ * is subject to change at any time.
+ *
+ * Input parameters:
+ * - port_id: Load-balanced port ID.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: number of unmaps in progress.
+ */
+struct dlb_pending_port_unmaps_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 padding0;
+};
+
+enum dlb_domain_user_interface_commands {
+ DLB_DOMAIN_CMD_CREATE_LDB_POOL,
+ DLB_DOMAIN_CMD_CREATE_DIR_POOL,
+ DLB_DOMAIN_CMD_CREATE_LDB_QUEUE,
+ DLB_DOMAIN_CMD_CREATE_DIR_QUEUE,
+ DLB_DOMAIN_CMD_CREATE_LDB_PORT,
+ DLB_DOMAIN_CMD_CREATE_DIR_PORT,
+ DLB_DOMAIN_CMD_START_DOMAIN,
+ DLB_DOMAIN_CMD_MAP_QID,
+ DLB_DOMAIN_CMD_UNMAP_QID,
+ DLB_DOMAIN_CMD_ENABLE_LDB_PORT,
+ DLB_DOMAIN_CMD_ENABLE_DIR_PORT,
+ DLB_DOMAIN_CMD_DISABLE_LDB_PORT,
+ DLB_DOMAIN_CMD_DISABLE_DIR_PORT,
+ DLB_DOMAIN_CMD_BLOCK_ON_CQ_INTERRUPT,
+ DLB_DOMAIN_CMD_ENQUEUE_DOMAIN_ALERT,
+ DLB_DOMAIN_CMD_GET_LDB_QUEUE_DEPTH,
+ DLB_DOMAIN_CMD_GET_DIR_QUEUE_DEPTH,
+ DLB_DOMAIN_CMD_PENDING_PORT_UNMAPS,
+
+ /* NUM_DLB_DOMAIN_CMD must be last */
+ NUM_DLB_DOMAIN_CMD,
+};
+
+/*
+ * Base addresses for memory mapping the consumer queue (CQ) and popcount (PC)
+ * memory space, and producer port (PP) MMIO space. The CQ, PC, and PP
+ * addresses are per-port. Every address is page-separated (e.g. LDB PP 0 is at
+ * 0x2100000 and LDB PP 1 is at 0x2101000).
+ */
+#define DLB_LDB_CQ_BASE 0x3000000
+#define DLB_LDB_CQ_MAX_SIZE 65536
+#define DLB_LDB_CQ_OFFS(id) (DLB_LDB_CQ_BASE + (id) * DLB_LDB_CQ_MAX_SIZE)
+
+#define DLB_DIR_CQ_BASE 0x3800000
+#define DLB_DIR_CQ_MAX_SIZE 65536
+#define DLB_DIR_CQ_OFFS(id) (DLB_DIR_CQ_BASE + (id) * DLB_DIR_CQ_MAX_SIZE)
+
+#define DLB_LDB_PC_BASE 0x2300000
+#define DLB_LDB_PC_MAX_SIZE 4096
+#define DLB_LDB_PC_OFFS(id) (DLB_LDB_PC_BASE + (id) * DLB_LDB_PC_MAX_SIZE)
+
+#define DLB_DIR_PC_BASE 0x2200000
+#define DLB_DIR_PC_MAX_SIZE 4096
+#define DLB_DIR_PC_OFFS(id) (DLB_DIR_PC_BASE + (id) * DLB_DIR_PC_MAX_SIZE)
+
+#define DLB_LDB_PP_BASE 0x2100000
+#define DLB_LDB_PP_MAX_SIZE 4096
+#define DLB_LDB_PP_OFFS(id) (DLB_LDB_PP_BASE + (id) * DLB_LDB_PP_MAX_SIZE)
+
+#define DLB_DIR_PP_BASE 0x2000000
+#define DLB_DIR_PP_MAX_SIZE 4096
+#define DLB_DIR_PP_OFFS(id) (DLB_DIR_PP_BASE + (id) * DLB_DIR_PP_MAX_SIZE)
+
+#endif /* __DLB_USER_H */
--
1.7.10
^ permalink raw reply [relevance 1%]
* [dpdk-dev] [PATCH 03/27] event/dlb: add shared code version 10.7.9
@ 2020-07-30 19:49 1% ` McDaniel, Timothy
2020-07-30 19:49 1% ` [dpdk-dev] [PATCH 08/27] event/dlb: add definitions shared with LKM or shared code McDaniel, Timothy
1 sibling, 0 replies; 200+ results
From: McDaniel, Timothy @ 2020-07-30 19:49 UTC (permalink / raw)
To: jerinj
Cc: mattias.ronnblom, dev, gage.eads, harry.van.haaren, McDaniel, Timothy
From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
The DLB shared code is auto generated by Intel, and is being committed
here so that it can be built in the DPDK environment. The shared code
should not be modified. The shared code must be present in order to
successfully build the DLB PMD.
Changes since v1 patch series
1) convert C99 comment to standard C
2) remove TODO and FIXME comments
3) converted to use same log i/f as PMD
4) disable PF->VF ISR pending access alarm
5) disable VF->PF ISR pending access alarm
Signed-off-by: McDaniel, Timothy <timothy.mcdaniel@intel.com>
---
drivers/event/dlb/pf/base/dlb_hw_types.h | 360 +
drivers/event/dlb/pf/base/dlb_mbox.h | 645 ++
drivers/event/dlb/pf/base/dlb_osdep.h | 347 +
drivers/event/dlb/pf/base/dlb_osdep_bitmap.h | 442 ++
drivers/event/dlb/pf/base/dlb_osdep_list.h | 131 +
drivers/event/dlb/pf/base/dlb_osdep_types.h | 31 +
drivers/event/dlb/pf/base/dlb_regs.h | 2678 +++++++
drivers/event/dlb/pf/base/dlb_resource.c | 9722 ++++++++++++++++++++++++++
drivers/event/dlb/pf/base/dlb_resource.h | 1639 +++++
drivers/event/dlb/pf/base/dlb_user.h | 1084 +++
10 files changed, 17079 insertions(+)
create mode 100644 drivers/event/dlb/pf/base/dlb_hw_types.h
create mode 100644 drivers/event/dlb/pf/base/dlb_mbox.h
create mode 100644 drivers/event/dlb/pf/base/dlb_osdep.h
create mode 100644 drivers/event/dlb/pf/base/dlb_osdep_bitmap.h
create mode 100644 drivers/event/dlb/pf/base/dlb_osdep_list.h
create mode 100644 drivers/event/dlb/pf/base/dlb_osdep_types.h
create mode 100644 drivers/event/dlb/pf/base/dlb_regs.h
create mode 100644 drivers/event/dlb/pf/base/dlb_resource.c
create mode 100644 drivers/event/dlb/pf/base/dlb_resource.h
create mode 100644 drivers/event/dlb/pf/base/dlb_user.h
diff --git a/drivers/event/dlb/pf/base/dlb_hw_types.h b/drivers/event/dlb/pf/base/dlb_hw_types.h
new file mode 100644
index 0000000..d56590e
--- /dev/null
+++ b/drivers/event/dlb/pf/base/dlb_hw_types.h
@@ -0,0 +1,360 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#ifndef __DLB_HW_TYPES_H
+#define __DLB_HW_TYPES_H
+
+#include "dlb_user.h"
+#include "dlb_osdep_types.h"
+#include "dlb_osdep_list.h"
+
+#define DLB_MAX_NUM_VFS 16
+#define DLB_MAX_NUM_DOMAINS 32
+#define DLB_MAX_NUM_LDB_QUEUES 128
+#define DLB_MAX_NUM_LDB_PORTS 64
+#define DLB_MAX_NUM_DIR_PORTS 128
+#define DLB_MAX_NUM_LDB_CREDITS 16384
+#define DLB_MAX_NUM_DIR_CREDITS 4096
+#define DLB_MAX_NUM_LDB_CREDIT_POOLS 64
+#define DLB_MAX_NUM_DIR_CREDIT_POOLS 64
+#define DLB_MAX_NUM_HIST_LIST_ENTRIES 5120
+#define DLB_MAX_NUM_AQOS_ENTRIES 2048
+#define DLB_MAX_NUM_TOTAL_OUTSTANDING_COMPLETIONS 4096
+#define DLB_MAX_NUM_QIDS_PER_LDB_CQ 8
+#define DLB_MAX_NUM_SEQUENCE_NUMBER_GROUPS 4
+#define DLB_MAX_NUM_SEQUENCE_NUMBER_MODES 6
+#define DLB_QID_PRIORITIES 8
+#define DLB_NUM_ARB_WEIGHTS 8
+#define DLB_MAX_WEIGHT 255
+#define DLB_MAX_PORT_CREDIT_QUANTUM 1023
+#define DLB_MAX_CQ_COMP_CHECK_LOOPS 409600
+#define DLB_MAX_QID_EMPTY_CHECK_LOOPS (32 * 64 * 1024 * (800 / 30))
+#define DLB_HZ 800000000
+
+/* Used for DLB A-stepping workaround for hardware write buffer lock up issue */
+#define DLB_A_STEP_MAX_PORTS 128
+
+#define DLB_PF_DEV_ID 0x270B
+#define DLB_VF_DEV_ID 0x270C
+
+/* Interrupt related macros */
+#define DLB_PF_NUM_NON_CQ_INTERRUPT_VECTORS 8
+#define DLB_PF_NUM_CQ_INTERRUPT_VECTORS 64
+#define DLB_PF_TOTAL_NUM_INTERRUPT_VECTORS \
+ (DLB_PF_NUM_NON_CQ_INTERRUPT_VECTORS + \
+ DLB_PF_NUM_CQ_INTERRUPT_VECTORS)
+#define DLB_PF_NUM_COMPRESSED_MODE_VECTORS \
+ (DLB_PF_NUM_NON_CQ_INTERRUPT_VECTORS + 1)
+#define DLB_PF_NUM_PACKED_MODE_VECTORS DLB_PF_TOTAL_NUM_INTERRUPT_VECTORS
+#define DLB_PF_COMPRESSED_MODE_CQ_VECTOR_ID DLB_PF_NUM_NON_CQ_INTERRUPT_VECTORS
+
+#define DLB_VF_NUM_NON_CQ_INTERRUPT_VECTORS 1
+#define DLB_VF_NUM_CQ_INTERRUPT_VECTORS 31
+#define DLB_VF_BASE_CQ_VECTOR_ID 0
+#define DLB_VF_LAST_CQ_VECTOR_ID 30
+#define DLB_VF_MBOX_VECTOR_ID 31
+#define DLB_VF_TOTAL_NUM_INTERRUPT_VECTORS \
+ (DLB_VF_NUM_NON_CQ_INTERRUPT_VECTORS + \
+ DLB_VF_NUM_CQ_INTERRUPT_VECTORS)
+
+#define DLB_PF_NUM_ALARM_INTERRUPT_VECTORS 4
+/* DLB ALARM interrupts */
+#define DLB_INT_ALARM 0
+/* VF to PF Mailbox Service Request */
+#define DLB_INT_VF_TO_PF_MBOX 1
+/* HCW Ingress Errors */
+#define DLB_INT_INGRESS_ERROR 3
+
+#define DLB_ALARM_HW_SOURCE_SYS 0
+#define DLB_ALARM_HW_SOURCE_DLB 1
+
+#define DLB_ALARM_HW_UNIT_CHP 1
+#define DLB_ALARM_HW_UNIT_LSP 3
+
+#define DLB_ALARM_HW_CHP_AID_OUT_OF_CREDITS 6
+#define DLB_ALARM_HW_CHP_AID_ILLEGAL_ENQ 7
+#define DLB_ALARM_HW_LSP_AID_EXCESS_TOKEN_POPS 15
+#define DLB_ALARM_SYS_AID_ILLEGAL_HCW 0
+#define DLB_ALARM_SYS_AID_ILLEGAL_QID 3
+#define DLB_ALARM_SYS_AID_DISABLED_QID 4
+#define DLB_ALARM_SYS_AID_ILLEGAL_CQID 6
+
+/* Hardware-defined base addresses */
+#define DLB_LDB_PP_BASE 0x2100000
+#define DLB_LDB_PP_STRIDE 0x1000
+#define DLB_LDB_PP_BOUND \
+ (DLB_LDB_PP_BASE + DLB_LDB_PP_STRIDE * DLB_MAX_NUM_LDB_PORTS)
+#define DLB_DIR_PP_BASE 0x2000000
+#define DLB_DIR_PP_STRIDE 0x1000
+#define DLB_DIR_PP_BOUND \
+ (DLB_DIR_PP_BASE + DLB_DIR_PP_STRIDE * DLB_MAX_NUM_DIR_PORTS)
+
+struct dlb_resource_id {
+ u32 phys_id;
+ u32 virt_id;
+ u8 vf_owned;
+ u8 vf_id;
+};
+
+struct dlb_freelist {
+ u32 base;
+ u32 bound;
+ u32 offset;
+};
+
+static inline u32 dlb_freelist_count(struct dlb_freelist *list)
+{
+ return (list->bound - list->base) - list->offset;
+}
+
+struct dlb_hcw {
+ u64 data;
+ /* Word 3 */
+ u16 opaque;
+ u8 qid;
+ u8 sched_type:2;
+ u8 priority:3;
+ u8 msg_type:3;
+ /* Word 4 */
+ u16 lock_id;
+ u8 meas_lat:1;
+ u8 rsvd1:2;
+ u8 no_dec:1;
+ u8 cmp_id:4;
+ u8 cq_token:1;
+ u8 qe_comp:1;
+ u8 qe_frag:1;
+ u8 qe_valid:1;
+ u8 int_arm:1;
+ u8 error:1;
+ u8 rsvd:2;
+};
+
+struct dlb_ldb_queue {
+ struct dlb_list_entry domain_list;
+ struct dlb_list_entry func_list;
+ struct dlb_resource_id id;
+ struct dlb_resource_id domain_id;
+ u32 num_qid_inflights;
+ struct dlb_freelist aqed_freelist;
+ u8 sn_cfg_valid;
+ u32 sn_group;
+ u32 sn_slot;
+ u32 num_mappings;
+ u8 num_pending_additions;
+ u8 owned;
+ u8 configured;
+};
+
+/* Directed ports and queues are paired by nature, so the driver tracks them
+ * with a single data structure.
+ */
+struct dlb_dir_pq_pair {
+ struct dlb_list_entry domain_list;
+ struct dlb_list_entry func_list;
+ struct dlb_resource_id id;
+ struct dlb_resource_id domain_id;
+ u8 ldb_pool_used;
+ u8 dir_pool_used;
+ u8 queue_configured;
+ u8 port_configured;
+ u8 owned;
+ u8 enabled;
+ u32 ref_cnt;
+};
+
+enum dlb_qid_map_state {
+ /* The slot doesn't contain a valid queue mapping */
+ DLB_QUEUE_UNMAPPED,
+ /* The slot contains a valid queue mapping */
+ DLB_QUEUE_MAPPED,
+ /* The driver is mapping a queue into this slot */
+ DLB_QUEUE_MAP_IN_PROGRESS,
+ /* The driver is unmapping a queue from this slot */
+ DLB_QUEUE_UNMAP_IN_PROGRESS,
+ /* The driver is unmapping a queue from this slot, and once complete
+ * will replace it with another mapping.
+ */
+ DLB_QUEUE_UNMAP_IN_PROGRESS_PENDING_MAP,
+};
+
+struct dlb_ldb_port_qid_map {
+ u16 qid;
+ u8 priority;
+ u16 pending_qid;
+ u8 pending_priority;
+ enum dlb_qid_map_state state;
+};
+
+struct dlb_ldb_port {
+ struct dlb_list_entry domain_list;
+ struct dlb_list_entry func_list;
+ struct dlb_resource_id id;
+ struct dlb_resource_id domain_id;
+ u8 ldb_pool_used;
+ u8 dir_pool_used;
+ u8 init_tkn_cnt;
+ u32 hist_list_entry_base;
+ u32 hist_list_entry_limit;
+ /* The qid_map represents the hardware QID mapping state. */
+ struct dlb_ldb_port_qid_map qid_map[DLB_MAX_NUM_QIDS_PER_LDB_CQ];
+ u32 ref_cnt;
+ u8 num_pending_removals;
+ u8 num_mappings;
+ u8 owned;
+ u8 enabled;
+ u8 configured;
+};
+
+struct dlb_credit_pool {
+ struct dlb_list_entry domain_list;
+ struct dlb_list_entry func_list;
+ struct dlb_resource_id id;
+ struct dlb_resource_id domain_id;
+ u32 total_credits;
+ u32 avail_credits;
+ u8 owned;
+ u8 configured;
+};
+
+struct dlb_sn_group {
+ u32 mode;
+ u32 sequence_numbers_per_queue;
+ u32 slot_use_bitmap;
+ u32 id;
+};
+
+static inline bool dlb_sn_group_full(struct dlb_sn_group *group)
+{
+ u32 mask[6] = {
+ 0xffffffff, /* 32 SNs per queue */
+ 0x0000ffff, /* 64 SNs per queue */
+ 0x000000ff, /* 128 SNs per queue */
+ 0x0000000f, /* 256 SNs per queue */
+ 0x00000003, /* 512 SNs per queue */
+ 0x00000001}; /* 1024 SNs per queue */
+
+ return group->slot_use_bitmap == mask[group->mode];
+}
+
+static inline int dlb_sn_group_alloc_slot(struct dlb_sn_group *group)
+{
+ int bound[6] = {32, 16, 8, 4, 2, 1};
+ int i;
+
+ for (i = 0; i < bound[group->mode]; i++) {
+ if (!(group->slot_use_bitmap & (1 << i))) {
+ group->slot_use_bitmap |= 1 << i;
+ return i;
+ }
+ }
+
+ return -1;
+}
+
+static inline void dlb_sn_group_free_slot(struct dlb_sn_group *group, int slot)
+{
+ group->slot_use_bitmap &= ~(1 << slot);
+}
+
+static inline int dlb_sn_group_used_slots(struct dlb_sn_group *group)
+{
+ int i, cnt = 0;
+
+ for (i = 0; i < 32; i++)
+ cnt += !!(group->slot_use_bitmap & (1 << i));
+
+ return cnt;
+}
+
+struct dlb_domain {
+ struct dlb_function_resources *parent_func;
+ struct dlb_list_entry func_list;
+ struct dlb_list_head used_ldb_queues;
+ struct dlb_list_head used_ldb_ports;
+ struct dlb_list_head used_dir_pq_pairs;
+ struct dlb_list_head used_ldb_credit_pools;
+ struct dlb_list_head used_dir_credit_pools;
+ struct dlb_list_head avail_ldb_queues;
+ struct dlb_list_head avail_ldb_ports;
+ struct dlb_list_head avail_dir_pq_pairs;
+ struct dlb_list_head avail_ldb_credit_pools;
+ struct dlb_list_head avail_dir_credit_pools;
+ u32 total_hist_list_entries;
+ u32 avail_hist_list_entries;
+ u32 hist_list_entry_base;
+ u32 hist_list_entry_offset;
+ struct dlb_freelist qed_freelist;
+ struct dlb_freelist dqed_freelist;
+ struct dlb_freelist aqed_freelist;
+ struct dlb_resource_id id;
+ int num_pending_removals;
+ int num_pending_additions;
+ u8 configured;
+ u8 started;
+};
+
+struct dlb_bitmap;
+
+struct dlb_function_resources {
+ u32 num_avail_domains;
+ struct dlb_list_head avail_domains;
+ struct dlb_list_head used_domains;
+ u32 num_avail_ldb_queues;
+ struct dlb_list_head avail_ldb_queues;
+ u32 num_avail_ldb_ports;
+ struct dlb_list_head avail_ldb_ports;
+ u32 num_avail_dir_pq_pairs;
+ struct dlb_list_head avail_dir_pq_pairs;
+ struct dlb_bitmap *avail_hist_list_entries;
+ struct dlb_bitmap *avail_qed_freelist_entries;
+ struct dlb_bitmap *avail_dqed_freelist_entries;
+ struct dlb_bitmap *avail_aqed_freelist_entries;
+ u32 num_avail_ldb_credit_pools;
+ struct dlb_list_head avail_ldb_credit_pools;
+ u32 num_avail_dir_credit_pools;
+ struct dlb_list_head avail_dir_credit_pools;
+ u32 num_enabled_ldb_ports; /* (PF only) */
+ u8 locked; /* (VF only) */
+};
+
+/* After initialization, each resource in dlb_hw_resources is located in one of
+ * the following lists:
+ * -- The PF's available resources list. These are unconfigured resources owned
+ * by the PF and not allocated to a DLB scheduling domain.
+ * -- A VF's available resources list. These are VF-owned unconfigured
+ * resources not allocated to a DLB scheduling domain.
+ * -- A domain's available resources list. These are domain-owned unconfigured
+ * resources.
+ * -- A domain's used resources list. These are are domain-owned configured
+ * resources.
+ *
+ * A resource moves to a new list when a VF or domain is created or destroyed,
+ * or when the resource is configured.
+ */
+struct dlb_hw_resources {
+ struct dlb_ldb_queue ldb_queues[DLB_MAX_NUM_LDB_QUEUES];
+ struct dlb_ldb_port ldb_ports[DLB_MAX_NUM_LDB_PORTS];
+ struct dlb_dir_pq_pair dir_pq_pairs[DLB_MAX_NUM_DIR_PORTS];
+ struct dlb_credit_pool ldb_credit_pools[DLB_MAX_NUM_LDB_CREDIT_POOLS];
+ struct dlb_credit_pool dir_credit_pools[DLB_MAX_NUM_DIR_CREDIT_POOLS];
+ struct dlb_sn_group sn_groups[DLB_MAX_NUM_SEQUENCE_NUMBER_GROUPS];
+};
+
+struct dlb_hw {
+ /* BAR 0 address */
+ void *csr_kva;
+ unsigned long csr_phys_addr;
+ /* BAR 2 address */
+ void *func_kva;
+ unsigned long func_phys_addr;
+
+ /* Resource tracking */
+ struct dlb_hw_resources rsrcs;
+ struct dlb_function_resources pf;
+ struct dlb_function_resources vf[DLB_MAX_NUM_VFS];
+ struct dlb_domain domains[DLB_MAX_NUM_DOMAINS];
+};
+
+#endif /* __DLB_HW_TYPES_H */
diff --git a/drivers/event/dlb/pf/base/dlb_mbox.h b/drivers/event/dlb/pf/base/dlb_mbox.h
new file mode 100644
index 0000000..e195526
--- /dev/null
+++ b/drivers/event/dlb/pf/base/dlb_mbox.h
@@ -0,0 +1,645 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#ifndef __DLB_BASE_DLB_MBOX_H
+#define __DLB_BASE_DLB_MBOX_H
+
+#include "dlb_regs.h"
+#include "dlb_osdep_types.h"
+
+#define DLB_MBOX_INTERFACE_VERSION 1
+
+/* The PF uses its PF->VF mailbox to send responses to VF requests, as well as
+ * to send requests of its own (e.g. notifying a VF of an impending FLR).
+ * To avoid communication race conditions, e.g. the PF sends a response and then
+ * sends a request before the VF reads the response, the PF->VF mailbox is
+ * divided into two sections:
+ * - Bytes 0-47: PF responses
+ * - Bytes 48-63: PF requests
+ *
+ * Partitioning the PF->VF mailbox allows responses and requests to occupy the
+ * mailbox simultaneously.
+ */
+#define DLB_PF2VF_RESP_BYTES 48
+#define DLB_PF2VF_RESP_BASE 0
+#define DLB_PF2VF_RESP_BASE_WORD (DLB_PF2VF_RESP_BASE / 4)
+
+#define DLB_PF2VF_REQ_BYTES \
+ (DLB_FUNC_PF_PF2VF_MAILBOX_BYTES - DLB_PF2VF_RESP_BYTES)
+#define DLB_PF2VF_REQ_BASE DLB_PF2VF_RESP_BYTES
+#define DLB_PF2VF_REQ_BASE_WORD (DLB_PF2VF_REQ_BASE / 4)
+
+/* Similarly, the VF->PF mailbox is divided into two sections:
+ * - Bytes 0-239: VF requests
+ * - Bytes 240-255: VF responses
+ */
+#define DLB_VF2PF_REQ_BYTES 240
+#define DLB_VF2PF_REQ_BASE 0
+#define DLB_VF2PF_REQ_BASE_WORD (DLB_VF2PF_REQ_BASE / 4)
+
+#define DLB_VF2PF_RESP_BYTES \
+ (DLB_FUNC_VF_VF2PF_MAILBOX_BYTES - DLB_VF2PF_REQ_BYTES)
+#define DLB_VF2PF_RESP_BASE DLB_VF2PF_REQ_BYTES
+#define DLB_VF2PF_RESP_BASE_WORD (DLB_VF2PF_RESP_BASE / 4)
+
+/* VF-initiated commands */
+enum dlb_mbox_cmd_type {
+ DLB_MBOX_CMD_REGISTER,
+ DLB_MBOX_CMD_UNREGISTER,
+ DLB_MBOX_CMD_GET_NUM_RESOURCES,
+ DLB_MBOX_CMD_CREATE_SCHED_DOMAIN,
+ DLB_MBOX_CMD_RESET_SCHED_DOMAIN,
+ DLB_MBOX_CMD_CREATE_LDB_POOL,
+ DLB_MBOX_CMD_CREATE_DIR_POOL,
+ DLB_MBOX_CMD_CREATE_LDB_QUEUE,
+ DLB_MBOX_CMD_CREATE_DIR_QUEUE,
+ DLB_MBOX_CMD_CREATE_LDB_PORT,
+ DLB_MBOX_CMD_CREATE_DIR_PORT,
+ DLB_MBOX_CMD_ENABLE_LDB_PORT,
+ DLB_MBOX_CMD_DISABLE_LDB_PORT,
+ DLB_MBOX_CMD_ENABLE_DIR_PORT,
+ DLB_MBOX_CMD_DISABLE_DIR_PORT,
+ DLB_MBOX_CMD_LDB_PORT_OWNED_BY_DOMAIN,
+ DLB_MBOX_CMD_DIR_PORT_OWNED_BY_DOMAIN,
+ DLB_MBOX_CMD_MAP_QID,
+ DLB_MBOX_CMD_UNMAP_QID,
+ DLB_MBOX_CMD_START_DOMAIN,
+ DLB_MBOX_CMD_ENABLE_LDB_PORT_INTR,
+ DLB_MBOX_CMD_ENABLE_DIR_PORT_INTR,
+ DLB_MBOX_CMD_ARM_CQ_INTR,
+ DLB_MBOX_CMD_GET_NUM_USED_RESOURCES,
+ DLB_MBOX_CMD_INIT_CQ_SCHED_COUNT,
+ DLB_MBOX_CMD_COLLECT_CQ_SCHED_COUNT,
+ DLB_MBOX_CMD_ACK_VF_FLR_DONE,
+ DLB_MBOX_CMD_GET_SN_ALLOCATION,
+ DLB_MBOX_CMD_GET_LDB_QUEUE_DEPTH,
+ DLB_MBOX_CMD_GET_DIR_QUEUE_DEPTH,
+ DLB_MBOX_CMD_PENDING_PORT_UNMAPS,
+ DLB_MBOX_CMD_QUERY_CQ_POLL_MODE,
+ DLB_MBOX_CMD_GET_SN_OCCUPANCY,
+
+ /* NUM_QE_CMD_TYPES must be last */
+ NUM_DLB_MBOX_CMD_TYPES,
+};
+
+static const char dlb_mbox_cmd_type_strings[][128] = {
+ "DLB_MBOX_CMD_REGISTER",
+ "DLB_MBOX_CMD_UNREGISTER",
+ "DLB_MBOX_CMD_GET_NUM_RESOURCES",
+ "DLB_MBOX_CMD_CREATE_SCHED_DOMAIN",
+ "DLB_MBOX_CMD_RESET_SCHED_DOMAIN",
+ "DLB_MBOX_CMD_CREATE_LDB_POOL",
+ "DLB_MBOX_CMD_CREATE_DIR_POOL",
+ "DLB_MBOX_CMD_CREATE_LDB_QUEUE",
+ "DLB_MBOX_CMD_CREATE_DIR_QUEUE",
+ "DLB_MBOX_CMD_CREATE_LDB_PORT",
+ "DLB_MBOX_CMD_CREATE_DIR_PORT",
+ "DLB_MBOX_CMD_ENABLE_LDB_PORT",
+ "DLB_MBOX_CMD_DISABLE_LDB_PORT",
+ "DLB_MBOX_CMD_ENABLE_DIR_PORT",
+ "DLB_MBOX_CMD_DISABLE_DIR_PORT",
+ "DLB_MBOX_CMD_LDB_PORT_OWNED_BY_DOMAIN",
+ "DLB_MBOX_CMD_DIR_PORT_OWNED_BY_DOMAIN",
+ "DLB_MBOX_CMD_MAP_QID",
+ "DLB_MBOX_CMD_UNMAP_QID",
+ "DLB_MBOX_CMD_START_DOMAIN",
+ "DLB_MBOX_CMD_ENABLE_LDB_PORT_INTR",
+ "DLB_MBOX_CMD_ENABLE_DIR_PORT_INTR",
+ "DLB_MBOX_CMD_ARM_CQ_INTR",
+ "DLB_MBOX_CMD_GET_NUM_USED_RESOURCES",
+ "DLB_MBOX_CMD_INIT_CQ_SCHED_COUNT",
+ "DLB_MBOX_CMD_COLLECT_CQ_SCHED_COUNT",
+ "DLB_MBOX_CMD_ACK_VF_FLR_DONE",
+ "DLB_MBOX_CMD_GET_SN_ALLOCATION",
+ "DLB_MBOX_CMD_GET_LDB_QUEUE_DEPTH",
+ "DLB_MBOX_CMD_GET_DIR_QUEUE_DEPTH",
+ "DLB_MBOX_CMD_PENDING_PORT_UNMAPS",
+ "DLB_MBOX_CMD_QUERY_CQ_POLL_MODE",
+ "DLB_MBOX_CMD_GET_SN_OCCUPANCY",
+};
+
+/* PF-initiated commands */
+enum dlb_mbox_vf_cmd_type {
+ DLB_MBOX_VF_CMD_DOMAIN_ALERT,
+ DLB_MBOX_VF_CMD_NOTIFICATION,
+ DLB_MBOX_VF_CMD_IN_USE,
+
+ /* NUM_DLB_MBOX_VF_CMD_TYPES must be last */
+ NUM_DLB_MBOX_VF_CMD_TYPES,
+};
+
+static const char dlb_mbox_vf_cmd_type_strings[][128] = {
+ "DLB_MBOX_VF_CMD_DOMAIN_ALERT",
+ "DLB_MBOX_VF_CMD_NOTIFICATION",
+ "DLB_MBOX_VF_CMD_IN_USE",
+};
+
+#define DLB_MBOX_CMD_TYPE(hdr) \
+ (((struct dlb_mbox_req_hdr *)hdr)->type)
+#define DLB_MBOX_CMD_STRING(hdr) \
+ dlb_mbox_cmd_type_strings[DLB_MBOX_CMD_TYPE(hdr)]
+
+enum dlb_mbox_status_type {
+ DLB_MBOX_ST_SUCCESS,
+ DLB_MBOX_ST_INVALID_CMD_TYPE,
+ DLB_MBOX_ST_VERSION_MISMATCH,
+ DLB_MBOX_ST_EXPECTED_PHASE_ONE,
+ DLB_MBOX_ST_EXPECTED_PHASE_TWO,
+ DLB_MBOX_ST_INVALID_OWNER_VF,
+};
+
+static const char dlb_mbox_status_type_strings[][128] = {
+ "DLB_MBOX_ST_SUCCESS",
+ "DLB_MBOX_ST_INVALID_CMD_TYPE",
+ "DLB_MBOX_ST_VERSION_MISMATCH",
+ "DLB_MBOX_ST_EXPECTED_PHASE_ONE",
+ "DLB_MBOX_ST_EXPECTED_PHASE_TWO",
+ "DLB_MBOX_ST_INVALID_OWNER_VF",
+};
+
+#define DLB_MBOX_ST_TYPE(hdr) \
+ (((struct dlb_mbox_resp_hdr *)hdr)->status)
+#define DLB_MBOX_ST_STRING(hdr) \
+ dlb_mbox_status_type_strings[DLB_MBOX_ST_TYPE(hdr)]
+
+/* This structure is always the first field in a request structure */
+struct dlb_mbox_req_hdr {
+ u32 type;
+};
+
+/* This structure is always the first field in a response structure */
+struct dlb_mbox_resp_hdr {
+ u32 status;
+};
+
+struct dlb_mbox_register_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u16 min_interface_version;
+ u16 max_interface_version;
+};
+
+struct dlb_mbox_register_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 interface_version;
+ u8 pf_id;
+ u8 vf_id;
+ u8 is_auxiliary_vf;
+ u8 primary_vf_id;
+ u32 padding;
+};
+
+struct dlb_mbox_unregister_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 padding;
+};
+
+struct dlb_mbox_unregister_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 padding;
+};
+
+struct dlb_mbox_get_num_resources_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 padding;
+};
+
+struct dlb_mbox_get_num_resources_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u16 num_sched_domains;
+ u16 num_ldb_queues;
+ u16 num_ldb_ports;
+ u16 num_dir_ports;
+ u16 padding0;
+ u8 num_ldb_credit_pools;
+ u8 num_dir_credit_pools;
+ u32 num_atomic_inflights;
+ u32 max_contiguous_atomic_inflights;
+ u32 num_hist_list_entries;
+ u32 max_contiguous_hist_list_entries;
+ u16 num_ldb_credits;
+ u16 max_contiguous_ldb_credits;
+ u16 num_dir_credits;
+ u16 max_contiguous_dir_credits;
+ u32 padding1;
+};
+
+struct dlb_mbox_create_sched_domain_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 num_ldb_queues;
+ u32 num_ldb_ports;
+ u32 num_dir_ports;
+ u32 num_atomic_inflights;
+ u32 num_hist_list_entries;
+ u32 num_ldb_credits;
+ u32 num_dir_credits;
+ u32 num_ldb_credit_pools;
+ u32 num_dir_credit_pools;
+};
+
+struct dlb_mbox_create_sched_domain_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 id;
+};
+
+struct dlb_mbox_reset_sched_domain_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 id;
+};
+
+struct dlb_mbox_reset_sched_domain_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+};
+
+struct dlb_mbox_create_credit_pool_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 num_credits;
+ u32 padding;
+};
+
+struct dlb_mbox_create_credit_pool_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 id;
+};
+
+struct dlb_mbox_create_ldb_queue_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 num_sequence_numbers;
+ u32 num_qid_inflights;
+ u32 num_atomic_inflights;
+ u32 padding;
+};
+
+struct dlb_mbox_create_ldb_queue_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 id;
+};
+
+struct dlb_mbox_create_dir_queue_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 padding0;
+};
+
+struct dlb_mbox_create_dir_queue_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 id;
+};
+
+struct dlb_mbox_create_ldb_port_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 ldb_credit_pool_id;
+ u32 dir_credit_pool_id;
+ u64 pop_count_address;
+ u16 ldb_credit_high_watermark;
+ u16 ldb_credit_low_watermark;
+ u16 ldb_credit_quantum;
+ u16 dir_credit_high_watermark;
+ u16 dir_credit_low_watermark;
+ u16 dir_credit_quantum;
+ u32 padding0;
+ u16 cq_depth;
+ u16 cq_history_list_size;
+ u32 padding1;
+ u64 cq_base_address;
+ u64 nq_base_address;
+ u32 nq_size;
+ u32 padding2;
+};
+
+struct dlb_mbox_create_ldb_port_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 id;
+};
+
+struct dlb_mbox_create_dir_port_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 ldb_credit_pool_id;
+ u32 dir_credit_pool_id;
+ u64 pop_count_address;
+ u16 ldb_credit_high_watermark;
+ u16 ldb_credit_low_watermark;
+ u16 ldb_credit_quantum;
+ u16 dir_credit_high_watermark;
+ u16 dir_credit_low_watermark;
+ u16 dir_credit_quantum;
+ u16 cq_depth;
+ u16 padding0;
+ u64 cq_base_address;
+ s32 queue_id;
+ u32 padding1;
+};
+
+struct dlb_mbox_create_dir_port_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 id;
+};
+
+struct dlb_mbox_enable_ldb_port_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 padding;
+};
+
+struct dlb_mbox_enable_ldb_port_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 padding;
+};
+
+struct dlb_mbox_disable_ldb_port_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 padding;
+};
+
+struct dlb_mbox_disable_ldb_port_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 padding;
+};
+
+struct dlb_mbox_enable_dir_port_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 padding;
+};
+
+struct dlb_mbox_enable_dir_port_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 padding;
+};
+
+struct dlb_mbox_disable_dir_port_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 padding;
+};
+
+struct dlb_mbox_disable_dir_port_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 padding;
+};
+
+struct dlb_mbox_ldb_port_owned_by_domain_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 padding;
+};
+
+struct dlb_mbox_ldb_port_owned_by_domain_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ s32 owned;
+};
+
+struct dlb_mbox_dir_port_owned_by_domain_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 padding;
+};
+
+struct dlb_mbox_dir_port_owned_by_domain_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ s32 owned;
+};
+
+struct dlb_mbox_map_qid_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 qid;
+ u32 priority;
+ u32 padding0;
+};
+
+struct dlb_mbox_map_qid_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 id;
+};
+
+struct dlb_mbox_unmap_qid_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 qid;
+};
+
+struct dlb_mbox_unmap_qid_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 padding;
+};
+
+struct dlb_mbox_start_domain_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+};
+
+struct dlb_mbox_start_domain_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 padding;
+};
+
+struct dlb_mbox_enable_ldb_port_intr_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u16 port_id;
+ u16 thresh;
+ u16 vector;
+ u16 owner_vf;
+ u16 reserved[2];
+};
+
+struct dlb_mbox_enable_ldb_port_intr_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 padding0;
+};
+
+struct dlb_mbox_enable_dir_port_intr_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u16 port_id;
+ u16 thresh;
+ u16 vector;
+ u16 owner_vf;
+ u16 reserved[2];
+};
+
+struct dlb_mbox_enable_dir_port_intr_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 padding0;
+};
+
+struct dlb_mbox_arm_cq_intr_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 is_ldb;
+};
+
+struct dlb_mbox_arm_cq_intr_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 padding0;
+};
+
+/* The alert_id and aux_alert_data follows the format of the alerts defined in
+ * dlb_types.h. The alert id contains an enum dlb_domain_alert_id value, and
+ * the aux_alert_data value varies depending on the alert.
+ */
+struct dlb_mbox_vf_alert_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 alert_id;
+ u32 aux_alert_data;
+};
+
+enum dlb_mbox_vf_notification_type {
+ DLB_MBOX_VF_NOTIFICATION_PRE_RESET,
+ DLB_MBOX_VF_NOTIFICATION_POST_RESET,
+
+ /* NUM_DLB_MBOX_VF_NOTIFICATION_TYPES must be last */
+ NUM_DLB_MBOX_VF_NOTIFICATION_TYPES,
+};
+
+struct dlb_mbox_vf_notification_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 notification;
+};
+
+struct dlb_mbox_vf_in_use_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 padding;
+};
+
+struct dlb_mbox_vf_in_use_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 in_use;
+};
+
+struct dlb_mbox_ack_vf_flr_done_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 padding;
+};
+
+struct dlb_mbox_ack_vf_flr_done_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 padding;
+};
+
+struct dlb_mbox_get_sn_allocation_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 group_id;
+};
+
+struct dlb_mbox_get_sn_allocation_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 num;
+};
+
+struct dlb_mbox_get_ldb_queue_depth_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 queue_id;
+ u32 padding;
+};
+
+struct dlb_mbox_get_ldb_queue_depth_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 depth;
+};
+
+struct dlb_mbox_get_dir_queue_depth_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 queue_id;
+ u32 padding;
+};
+
+struct dlb_mbox_get_dir_queue_depth_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 depth;
+};
+
+struct dlb_mbox_pending_port_unmaps_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 domain_id;
+ u32 port_id;
+ u32 padding;
+};
+
+struct dlb_mbox_pending_port_unmaps_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 num;
+};
+
+struct dlb_mbox_query_cq_poll_mode_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 padding;
+};
+
+struct dlb_mbox_query_cq_poll_mode_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 error_code;
+ u32 status;
+ u32 mode;
+};
+
+struct dlb_mbox_get_sn_occupancy_cmd_req {
+ struct dlb_mbox_req_hdr hdr;
+ u32 group_id;
+};
+
+struct dlb_mbox_get_sn_occupancy_cmd_resp {
+ struct dlb_mbox_resp_hdr hdr;
+ u32 num;
+};
+
+#endif /* __DLB_BASE_DLB_MBOX_H */
diff --git a/drivers/event/dlb/pf/base/dlb_osdep.h b/drivers/event/dlb/pf/base/dlb_osdep.h
new file mode 100644
index 0000000..36b0995
--- /dev/null
+++ b/drivers/event/dlb/pf/base/dlb_osdep.h
@@ -0,0 +1,347 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#ifndef __DLB_OSDEP_H__
+#define __DLB_OSDEP_H__
+
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <rte_string_fns.h>
+#include <rte_cycles.h>
+#include <rte_io.h>
+#include <rte_log.h>
+#include <rte_spinlock.h>
+#include "../dlb_main.h"
+#include "dlb_resource.h"
+#include "../../dlb_log.h"
+#include "../../dlb_user.h"
+
+
+#define DLB_PCI_REG_READ(reg) rte_read32((void *)reg)
+#define DLB_PCI_REG_WRITE(reg, val) rte_write32(val, (void *)reg)
+
+#define DLB_CSR_REG_ADDR(a, reg) ((void *)((uintptr_t)(a)->csr_kva + (reg)))
+#define DLB_CSR_RD(hw, reg) \
+ DLB_PCI_REG_READ(DLB_CSR_REG_ADDR((hw), (reg)))
+#define DLB_CSR_WR(hw, reg, val) \
+ DLB_PCI_REG_WRITE(DLB_CSR_REG_ADDR((hw), (reg)), (val))
+
+#define DLB_FUNC_REG_ADDR(a, reg) ((void *)((uintptr_t)(a)->func_kva + (reg)))
+#define DLB_FUNC_RD(hw, reg) \
+ DLB_PCI_REG_READ(DLB_FUNC_REG_ADDR((hw), (reg)))
+#define DLB_FUNC_WR(hw, reg, val) \
+ DLB_PCI_REG_WRITE(DLB_FUNC_REG_ADDR((hw), (reg)), (val))
+
+#define READ_ONCE(x) (x)
+#define WRITE_ONCE(x, y) ((x) = (y))
+
+#define OS_READ_ONCE(x) READ_ONCE(x)
+#define OS_WRITE_ONCE(x, y) WRITE_ONCE(x, y)
+
+
+extern unsigned int dlb_unregister_timeout_s;
+/**
+ * os_queue_unregister_timeout_s() - timeout (in seconds) to wait for queue
+ * unregister acknowledgments.
+ */
+static inline unsigned int os_queue_unregister_timeout_s(void)
+{
+ return dlb_unregister_timeout_s;
+}
+
+static inline size_t os_strlcpy(char *dst, const char *src, size_t sz)
+{
+ return rte_strlcpy(dst, src, sz);
+}
+
+/**
+ * os_udelay() - busy-wait for a number of microseconds
+ * @usecs: delay duration.
+ */
+static inline void os_udelay(int usecs)
+{
+ rte_delay_us(usecs);
+}
+
+/**
+ * os_msleep() - sleep for a number of milliseconds
+ * @usecs: delay duration.
+ */
+
+static inline void os_msleep(int msecs)
+{
+ rte_delay_ms(msecs);
+}
+
+/**
+ * os_curtime_s() - get the current time (in seconds)
+ * @usecs: delay duration.
+ */
+static inline unsigned long os_curtime_s(void)
+{
+ struct timespec tv;
+
+ clock_gettime(CLOCK_MONOTONIC, &tv);
+
+ return (unsigned long)tv.tv_sec;
+}
+
+#define DLB_PP_BASE(__is_ldb) ((__is_ldb) ? DLB_LDB_PP_BASE : DLB_DIR_PP_BASE)
+/**
+ * os_map_producer_port() - map a producer port into the caller's address space
+ * @hw: dlb_hw handle for a particular device.
+ * @port_id: port ID
+ * @is_ldb: true for load-balanced port, false for a directed port
+ *
+ * This function maps the requested producer port memory into the caller's
+ * address space.
+ *
+ * Return:
+ * Returns the base address at which the PP memory was mapped, else NULL.
+ */
+static inline void *os_map_producer_port(struct dlb_hw *hw,
+ u8 port_id,
+ bool is_ldb)
+{
+ uint64_t addr;
+ uint64_t pp_dma_base;
+
+
+ pp_dma_base = (uintptr_t)hw->func_kva + DLB_PP_BASE(is_ldb);
+ addr = (pp_dma_base + (PAGE_SIZE * port_id));
+
+ return (void *)(uintptr_t)addr;
+
+}
+/**
+ * os_unmap_producer_port() - unmap a producer port
+ * @addr: mapped producer port address
+ *
+ * This function undoes os_map_producer_port() by unmapping the producer port
+ * memory from the caller's address space.
+ *
+ * Return:
+ * Returns the base address at which the PP memory was mapped, else NULL.
+ */
+
+/* PFPMD - Nothing to do here, since memory was not actually mapped by us */
+static inline void os_unmap_producer_port(struct dlb_hw *hw, void *addr)
+{
+ RTE_SET_USED(hw);
+ RTE_SET_USED(addr);
+}
+/**
+ * os_enqueue_four_hcws() - enqueue four HCWs to DLB
+ * @hw: dlb_hw handle for a particular device.
+ * @hcw: pointer to the 64B-aligned contiguous HCW memory
+ * @addr: producer port address
+ */
+static inline void os_enqueue_four_hcws(struct dlb_hw *hw,
+ struct dlb_hcw *hcw,
+ void *addr)
+{
+ struct dlb_dev *dlb_dev;
+
+ dlb_dev = container_of(hw, struct dlb_dev, hw);
+
+ dlb_dev->enqueue_four(hcw, addr);
+}
+
+/**
+ * os_fence_hcw() - fence an HCW to ensure it arrives at the device
+ * @hw: dlb_hw handle for a particular device.
+ * @pp_addr: producer port address
+ */
+static inline void os_fence_hcw(struct dlb_hw *hw, u64 *pp_addr)
+{
+ RTE_SET_USED(hw);
+
+ /* To ensure outstanding HCWs reach the device, read the PP address. IA
+ * memory ordering prevents reads from passing older writes, and the
+ * mfence also ensures this.
+ */
+ rte_mb();
+
+ *(volatile u64 *)pp_addr;
+}
+
+/* Map to PMDs logging interface */
+#define DLB_ERR(dev, fmt, args...) \
+ DLB_LOG_ERR(fmt, ## args)
+
+#define DLB_INFO(dev, fmt, args...) \
+ DLB_LOG_INFO(fmt, ## args)
+
+#define DLB_DEBUG(dev, fmt, args...) \
+ DLB_LOG_DEBUG(fmt, ## args)
+
+/**
+ * DLB_HW_ERR() - log an error message
+ * @dlb: dlb_hw handle for a particular device.
+ * @...: variable string args.
+ */
+#define DLB_HW_ERR(dlb, ...) do { \
+ RTE_SET_USED(dlb); \
+ DLB_ERR(dlb, __VA_ARGS__); \
+} while (0)
+
+/**
+ * DLB_HW_INFO() - log an info message
+ * @dlb: dlb_hw handle for a particular device.
+ * @...: variable string args.
+ */
+#define DLB_HW_INFO(dlb, ...) do { \
+ RTE_SET_USED(dlb); \
+ DLB_INFO(dlb, __VA_ARGS__); \
+} while (0)
+
+/*** scheduling functions ***/
+
+/* The callback runs until it completes all outstanding QID->CQ
+ * map and unmap requests. To prevent deadlock, this function gives other
+ * threads a chance to grab the resource mutex and configure hardware.
+ */
+static void *dlb_complete_queue_map_unmap(void *__args)
+{
+ struct dlb_dev *dlb_dev = (struct dlb_dev *)__args;
+ int ret;
+
+ while (1) {
+ rte_spinlock_lock(&dlb_dev->resource_mutex);
+
+ ret = dlb_finish_unmap_qid_procedures(&dlb_dev->hw);
+ ret += dlb_finish_map_qid_procedures(&dlb_dev->hw);
+
+ if (ret != 0) {
+ rte_spinlock_unlock(&dlb_dev->resource_mutex);
+ /* Relinquish the CPU so the application can process
+ * its CQs, so this function doesn't deadlock.
+ */
+ sched_yield();
+ } else
+ break;
+ }
+
+ dlb_dev->worker_launched = false;
+
+ rte_spinlock_unlock(&dlb_dev->resource_mutex);
+
+ return NULL;
+}
+
+
+/**
+ * os_schedule_work() - launch a thread to process pending map and unmap work
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function launches a thread that will run until all pending
+ * map and unmap procedures are complete.
+ */
+static inline void os_schedule_work(struct dlb_hw *hw)
+{
+ struct dlb_dev *dlb_dev;
+ pthread_t complete_queue_map_unmap_thread;
+ int ret;
+
+ dlb_dev = container_of(hw, struct dlb_dev, hw);
+
+ ret = pthread_create(&complete_queue_map_unmap_thread,
+ NULL,
+ dlb_complete_queue_map_unmap,
+ dlb_dev);
+ if (ret)
+ DLB_ERR(dlb_dev,
+ "Could not create queue complete map /unmap thread, err=%d\n",
+ ret);
+ else
+ dlb_dev->worker_launched = true;
+}
+
+/**
+ * os_worker_active() - query whether the map/unmap worker thread is active
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function returns a boolean indicating whether a thread (launched by
+ * os_schedule_work()) is active. This function is used to determine
+ * whether or not to launch a worker thread.
+ */
+static inline bool os_worker_active(struct dlb_hw *hw)
+{
+ struct dlb_dev *dlb_dev;
+
+ dlb_dev = container_of(hw, struct dlb_dev, hw);
+
+ return dlb_dev->worker_launched;
+}
+
+/**
+ * os_notify_user_space() - notify user space
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: ID of domain to notify.
+ * @alert_id: alert ID.
+ * @aux_alert_data: additional alert data.
+ *
+ * This function notifies user space of an alert (such as a remote queue
+ * unregister or hardware alarm).
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ */
+static inline int os_notify_user_space(struct dlb_hw *hw,
+ u32 domain_id,
+ u64 alert_id,
+ u64 aux_alert_data)
+{
+ RTE_SET_USED(hw);
+ RTE_SET_USED(domain_id);
+ RTE_SET_USED(alert_id);
+ RTE_SET_USED(aux_alert_data);
+
+ rte_panic("internal_error: %s should never be called for DLB PF PMD\n",
+ __func__);
+ return -1;
+}
+
+enum dlb_dev_revision {
+ DLB_A0,
+ DLB_A1,
+ DLB_A2,
+ DLB_A3,
+ DLB_B0,
+};
+
+#include <cpuid.h>
+
+/**
+ * os_get_dev_revision() - query the device_revision
+ * @hw: dlb_hw handle for a particular device.
+ */
+static inline enum dlb_dev_revision os_get_dev_revision(struct dlb_hw *hw)
+{
+ uint32_t a, b, c, d, stepping;
+
+ RTE_SET_USED(hw);
+
+ __cpuid(0x1, a, b, c, d);
+
+ stepping = a & 0xf;
+
+ switch (stepping) {
+ case 0:
+ return DLB_A0;
+ case 1:
+ return DLB_A1;
+ case 2:
+ return DLB_A2;
+ case 3:
+ return DLB_A3;
+ default:
+ /* Treat all revisions >= 4 as B0 */
+ return DLB_B0;
+ }
+}
+
+#endif /* __DLB_OSDEP_H__ */
diff --git a/drivers/event/dlb/pf/base/dlb_osdep_bitmap.h b/drivers/event/dlb/pf/base/dlb_osdep_bitmap.h
new file mode 100644
index 0000000..8df1d59
--- /dev/null
+++ b/drivers/event/dlb/pf/base/dlb_osdep_bitmap.h
@@ -0,0 +1,442 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#ifndef __DLB_OSDEP_BITMAP_H__
+#define __DLB_OSDEP_BITMAP_H__
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <rte_bitmap.h>
+#include <rte_string_fns.h>
+#include <rte_malloc.h>
+#include <rte_errno.h>
+#include "../dlb_main.h"
+
+
+/*************************/
+/*** Bitmap operations ***/
+/*************************/
+struct dlb_bitmap {
+ struct rte_bitmap *map;
+ unsigned int len;
+ struct dlb_hw *hw;
+};
+
+/**
+ * dlb_bitmap_alloc() - alloc a bitmap data structure
+ * @bitmap: pointer to dlb_bitmap structure pointer.
+ * @len: number of entries in the bitmap.
+ *
+ * This function allocates a bitmap and initializes it with length @len. All
+ * entries are initially zero.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise.
+ *
+ * Errors:
+ * EINVAL - bitmap is NULL or len is 0.
+ * ENOMEM - could not allocate memory for the bitmap data structure.
+ */
+static inline int dlb_bitmap_alloc(struct dlb_hw *hw,
+ struct dlb_bitmap **bitmap,
+ unsigned int len)
+{
+ struct dlb_bitmap *bm;
+ void *mem;
+ uint32_t alloc_size;
+ uint32_t nbits = (uint32_t) len;
+ RTE_SET_USED(hw);
+
+ if (!bitmap || nbits == 0)
+ return -EINVAL;
+
+ /* Allocate DLB bitmap control struct */
+ bm = rte_malloc("DLB_PF",
+ sizeof(struct dlb_bitmap),
+ RTE_CACHE_LINE_SIZE);
+
+ if (!bm)
+ return -ENOMEM;
+
+ /* Allocate bitmap memory */
+ alloc_size = rte_bitmap_get_memory_footprint(nbits);
+ mem = rte_malloc("DLB_PF_BITMAP", alloc_size, RTE_CACHE_LINE_SIZE);
+ if (!mem) {
+ rte_free(bm);
+ return -ENOMEM;
+ }
+
+ bm->map = rte_bitmap_init(len, mem, alloc_size);
+ if (!bm->map) {
+ rte_free(mem);
+ rte_free(bm);
+ return -ENOMEM;
+ }
+
+ bm->len = len;
+
+ *bitmap = bm;
+
+ return 0;
+}
+
+/**
+ * dlb_bitmap_free() - free a previously allocated bitmap data structure
+ * @bitmap: pointer to dlb_bitmap structure.
+ *
+ * This function frees a bitmap that was allocated with dlb_bitmap_alloc().
+ */
+static inline void dlb_bitmap_free(struct dlb_bitmap *bitmap)
+{
+ if (!bitmap)
+ rte_panic("NULL dlb_bitmap in %s\n", __func__);
+
+ rte_free(bitmap->map);
+ rte_free(bitmap);
+}
+
+/**
+ * dlb_bitmap_fill() - fill a bitmap with all 1s
+ * @bitmap: pointer to dlb_bitmap structure.
+ *
+ * This function sets all bitmap values to 1.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise.
+ *
+ * Errors:
+ * EINVAL - bitmap is NULL or is uninitialized.
+ */
+static inline int dlb_bitmap_fill(struct dlb_bitmap *bitmap)
+{
+ unsigned int i;
+
+ if (!bitmap || !bitmap->map)
+ return -EINVAL;
+
+ for (i = 0; i != bitmap->len; i++)
+ rte_bitmap_set(bitmap->map, i);
+
+ return 0;
+}
+
+/**
+ * dlb_bitmap_fill() - fill a bitmap with all 0s
+ * @bitmap: pointer to dlb_bitmap structure.
+ *
+ * This function sets all bitmap values to 0.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise.
+ *
+ * Errors:
+ * EINVAL - bitmap is NULL or is uninitialized.
+ */
+static inline int dlb_bitmap_zero(struct dlb_bitmap *bitmap)
+{
+ if (!bitmap || !bitmap->map)
+ return -EINVAL;
+
+ rte_bitmap_reset(bitmap->map);
+
+ return 0;
+}
+
+/**
+ * dlb_bitmap_set() - set a bitmap entry
+ * @bitmap: pointer to dlb_bitmap structure.
+ * @bit: bit index.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise.
+ *
+ * Errors:
+ * EINVAL - bitmap is NULL or is uninitialized, or bit is larger than the
+ * bitmap length.
+ */
+static inline int dlb_bitmap_set(struct dlb_bitmap *bitmap,
+ unsigned int bit)
+{
+ if (!bitmap || !bitmap->map)
+ return -EINVAL;
+
+ if (bitmap->len <= bit)
+ return -EINVAL;
+
+ rte_bitmap_set(bitmap->map, bit);
+
+ return 0;
+}
+
+/**
+ * dlb_bitmap_set_range() - set a range of bitmap entries
+ * @bitmap: pointer to dlb_bitmap structure.
+ * @bit: starting bit index.
+ * @len: length of the range.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise.
+ *
+ * Errors:
+ * EINVAL - bitmap is NULL or is uninitialized, or the range exceeds the bitmap
+ * length.
+ */
+static inline int dlb_bitmap_set_range(struct dlb_bitmap *bitmap,
+ unsigned int bit,
+ unsigned int len)
+{
+ unsigned int i;
+
+ if (!bitmap || !bitmap->map)
+ return -EINVAL;
+
+ if (bitmap->len <= bit)
+ return -EINVAL;
+
+ for (i = 0; i != len; i++)
+ rte_bitmap_set(bitmap->map, bit + i);
+
+ return 0;
+}
+
+/**
+ * dlb_bitmap_clear() - clear a bitmap entry
+ * @bitmap: pointer to dlb_bitmap structure.
+ * @bit: bit index.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise.
+ *
+ * Errors:
+ * EINVAL - bitmap is NULL or is uninitialized, or bit is larger than the
+ * bitmap length.
+ */
+static inline int dlb_bitmap_clear(struct dlb_bitmap *bitmap,
+ unsigned int bit)
+{
+ if (!bitmap || !bitmap->map)
+ return -EINVAL;
+
+ if (bitmap->len <= bit)
+ return -EINVAL;
+
+ rte_bitmap_clear(bitmap->map, bit);
+
+ return 0;
+}
+
+/**
+ * dlb_bitmap_clear_range() - clear a range of bitmap entries
+ * @bitmap: pointer to dlb_bitmap structure.
+ * @bit: starting bit index.
+ * @len: length of the range.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise.
+ *
+ * Errors:
+ * EINVAL - bitmap is NULL or is uninitialized, or the range exceeds the bitmap
+ * length.
+ */
+static inline int dlb_bitmap_clear_range(struct dlb_bitmap *bitmap,
+ unsigned int bit,
+ unsigned int len)
+{
+ unsigned int i;
+
+ if (!bitmap || !bitmap->map)
+ return -EINVAL;
+
+ if (bitmap->len <= bit)
+ return -EINVAL;
+
+ for (i = 0; i != len; i++)
+ rte_bitmap_clear(bitmap->map, bit + i);
+
+ return 0;
+}
+
+/**
+ * dlb_bitmap_find_set_bit_range() - find a range of set bits
+ * @bitmap: pointer to dlb_bitmap structure.
+ * @len: length of the range.
+ *
+ * This function looks for a range of set bits of length @len.
+ *
+ * Return:
+ * Returns the base bit index upon success, < 0 otherwise.
+ *
+ * Errors:
+ * ENOENT - unable to find a length *len* range of set bits.
+ * EINVAL - bitmap is NULL or is uninitialized, or len is invalid.
+ */
+static inline int dlb_bitmap_find_set_bit_range(struct dlb_bitmap *bitmap,
+ unsigned int len)
+{
+ unsigned int i, j = 0;
+
+ if (!bitmap || !bitmap->map || len == 0)
+ return -EINVAL;
+
+ if (bitmap->len < len)
+ return -ENOENT;
+
+ for (i = 0; i != bitmap->len; i++) {
+ if (rte_bitmap_get(bitmap->map, i)) {
+ if (++j == len)
+ return i - j + 1;
+ } else
+ j = 0;
+ }
+
+ /* No set bit range of length len? */
+ return -ENOENT;
+}
+
+/**
+ * dlb_bitmap_find_set_bit() - find the first set bit
+ * @bitmap: pointer to dlb_bitmap structure.
+ *
+ * This function looks for a single set bit.
+ *
+ * Return:
+ * Returns the base bit index upon success, < 0 otherwise.
+ *
+ * Errors:
+ * ENOENT - the bitmap contains no set bits.
+ * EINVAL - bitmap is NULL or is uninitialized, or len is invalid.
+ */
+static inline int dlb_bitmap_find_set_bit(struct dlb_bitmap *bitmap)
+{
+ unsigned int i;
+
+ if (!bitmap)
+ return -EINVAL;
+
+ if (!bitmap->map)
+ return -EINVAL;
+
+ for (i = 0; i != bitmap->len; i++) {
+ if (rte_bitmap_get(bitmap->map, i))
+ return i;
+ }
+
+ return -ENOENT;
+}
+
+/**
+ * dlb_bitmap_count() - returns the number of set bits
+ * @bitmap: pointer to dlb_bitmap structure.
+ *
+ * This function looks for a single set bit.
+ *
+ * Return:
+ * Returns the number of set bits upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - bitmap is NULL or is uninitialized.
+ */
+static inline int dlb_bitmap_count(struct dlb_bitmap *bitmap)
+{
+ int weight = 0;
+ unsigned int i;
+
+ if (!bitmap)
+ return -EINVAL;
+
+ if (!bitmap->map)
+ return -EINVAL;
+
+ for (i = 0; i != bitmap->len; i++) {
+ if (rte_bitmap_get(bitmap->map, i))
+ weight++;
+ }
+ return weight;
+}
+
+/**
+ * dlb_bitmap_longest_set_range() - returns longest contiguous range of set bits
+ * @bitmap: pointer to dlb_bitmap structure.
+ *
+ * Return:
+ * Returns the bitmap's longest contiguous range of of set bits upon success,
+ * <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - bitmap is NULL or is uninitialized.
+ */
+static inline int dlb_bitmap_longest_set_range(struct dlb_bitmap *bitmap)
+{
+ int max_len = 0, len = 0;
+ unsigned int i;
+
+ if (!bitmap)
+ return -EINVAL;
+
+ if (!bitmap->map)
+ return -EINVAL;
+
+ for (i = 0; i != bitmap->len; i++) {
+ if (rte_bitmap_get(bitmap->map, i)) {
+ len++;
+ } else {
+ if (len > max_len)
+ max_len = len;
+ len = 0;
+ }
+ }
+
+ if (len > max_len)
+ max_len = len;
+
+ return max_len;
+}
+
+/**
+ * dlb_bitmap_or() - store the logical 'or' of two bitmaps into a third
+ * @dest: pointer to dlb_bitmap structure, which will contain the results of
+ * the 'or' of src1 and src2.
+ * @src1: pointer to dlb_bitmap structure, will be 'or'ed with src2.
+ * @src2: pointer to dlb_bitmap structure, will be 'or'ed with src1.
+ *
+ * This function 'or's two bitmaps together and stores the result in a third
+ * bitmap. The source and destination bitmaps can be the same.
+ *
+ * Return:
+ * Returns the number of set bits upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - One of the bitmaps is NULL or is uninitialized.
+ */
+static inline int dlb_bitmap_or(struct dlb_bitmap *dest,
+ struct dlb_bitmap *src1,
+ struct dlb_bitmap *src2)
+{
+ unsigned int i, min;
+ int numset = 0;
+
+ if (!dest || !dest->map ||
+ !src1 || !src1->map ||
+ !src2 || !src2->map)
+ return -EINVAL;
+
+ min = dest->len;
+ min = (min > src1->len) ? src1->len : min;
+ min = (min > src2->len) ? src2->len : min;
+
+ for (i = 0; i != min; i++) {
+ if (rte_bitmap_get(src1->map, i) ||
+ rte_bitmap_get(src2->map, i)) {
+ rte_bitmap_set(dest->map, i);
+ numset++;
+ } else
+ rte_bitmap_clear(dest->map, i);
+ }
+
+ return numset;
+}
+
+#endif /* __DLB_OSDEP_BITMAP_H__ */
diff --git a/drivers/event/dlb/pf/base/dlb_osdep_list.h b/drivers/event/dlb/pf/base/dlb_osdep_list.h
new file mode 100644
index 0000000..a53b362
--- /dev/null
+++ b/drivers/event/dlb/pf/base/dlb_osdep_list.h
@@ -0,0 +1,131 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#ifndef __DLB_OSDEP_LIST_H__
+#define __DLB_OSDEP_LIST_H__
+
+#include <rte_tailq.h>
+
+struct dlb_list_entry {
+ TAILQ_ENTRY(dlb_list_entry) node;
+};
+
+/* Dummy - just a struct definition */
+TAILQ_HEAD(dlb_list_head, dlb_list_entry);
+
+/* =================
+ * TAILQ Supplements
+ * =================
+ */
+
+#ifndef TAILQ_FOREACH_ENTRY
+#define TAILQ_FOREACH_ENTRY(ptr, head, name, iter) \
+ for ((iter) = TAILQ_FIRST(&head); \
+ (iter) \
+ && (ptr = container_of(iter, typeof(*(ptr)), name)); \
+ (iter) = TAILQ_NEXT((iter), node))
+#endif
+
+#ifndef TAILQ_FOREACH_ENTRY_SAFE
+#define TAILQ_FOREACH_ENTRY_SAFE(ptr, head, name, iter, tvar) \
+ for ((iter) = TAILQ_FIRST(&head); \
+ (iter) && \
+ (ptr = container_of(iter, typeof(*(ptr)), name)) &&\
+ ((tvar) = TAILQ_NEXT((iter), node), 1); \
+ (iter) = (tvar))
+#endif
+
+/* =========
+ * DLB Lists
+ * =========
+ */
+
+/**
+ * dlb_list_init_head() - initialize the head of a list
+ * @head: list head
+ */
+static inline void dlb_list_init_head(struct dlb_list_head *head)
+{
+ TAILQ_INIT(head);
+}
+
+/**
+ * dlb_list_add() - add an entry to a list
+ * @head: new entry will be added after this list header
+ * @entry: new list entry to be added
+ */
+static inline void dlb_list_add(struct dlb_list_head *head,
+ struct dlb_list_entry *entry)
+{
+ TAILQ_INSERT_TAIL(head, entry, node);
+}
+
+/**
+ * @head: list head
+ * @entry: list entry to be deleted
+ */
+static inline void dlb_list_del(struct dlb_list_head *head,
+ struct dlb_list_entry *entry)
+{
+ TAILQ_REMOVE(head, entry, node);
+}
+
+/**
+ * dlb_list_empty() - check if a list is empty
+ * @head: list head
+ *
+ * Return:
+ * Returns 1 if empty, 0 if not.
+ */
+static inline bool dlb_list_empty(struct dlb_list_head *head)
+{
+ return TAILQ_EMPTY(head);
+}
+
+/**
+ * dlb_list_empty() - check if a list is empty
+ * @src_head: list to be added
+ * @ head: where src_head will be inserted
+ */
+static inline void dlb_list_splice(struct dlb_list_head *src_head,
+ struct dlb_list_head *head)
+{
+ TAILQ_CONCAT(head, src_head, node);
+}
+
+/**
+ * DLB_LIST_HEAD() - retrieve the head of the list
+ * @head: list head
+ * @type: type of the list variable
+ * @name: name of the dlb_list within the struct
+ */
+#define DLB_LIST_HEAD(head, type, name) \
+ (TAILQ_FIRST(&head) ? \
+ container_of(TAILQ_FIRST(&head), type, name) : \
+ NULL)
+
+/**
+ * DLB_LIST_FOR_EACH() - iterate over a list
+ * @head: list head
+ * @ptr: pointer to struct containing a struct dlb_list_entry
+ * @name: name of the dlb_list_entry field within the containing struct
+ * @iter: iterator variable
+ */
+#define DLB_LIST_FOR_EACH(head, ptr, name, tmp_iter) \
+ TAILQ_FOREACH_ENTRY(ptr, head, name, tmp_iter)
+
+/**
+ * DLB_LIST_FOR_EACH_SAFE() - iterate over a list. This loop works even if
+ * an element is removed from the list while processing it.
+ * @ptr: pointer to struct containing a struct dlb_list_entry
+ * @ptr_tmp: pointer to struct containing a struct dlb_list_entry (temporary)
+ * @head: list head
+ * @name: name of the dlb_list_entry field within the containing struct
+ * @iter: iterator variable
+ * @iter_tmp: iterator variable (temporary)
+ */
+#define DLB_LIST_FOR_EACH_SAFE(head, ptr, ptr_tmp, name, tmp_iter, saf_iter) \
+ TAILQ_FOREACH_ENTRY_SAFE(ptr, head, name, tmp_iter, saf_iter)
+
+#endif /* __DLB_OSDEP_LIST_H__ */
diff --git a/drivers/event/dlb/pf/base/dlb_osdep_types.h b/drivers/event/dlb/pf/base/dlb_osdep_types.h
new file mode 100644
index 0000000..2e9d7d8
--- /dev/null
+++ b/drivers/event/dlb/pf/base/dlb_osdep_types.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#ifndef __DLB_OSDEP_TYPES_H
+#define __DLB_OSDEP_TYPES_H
+
+#include <linux/types.h>
+
+#include <inttypes.h>
+#include <ctype.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+/* Types for user mode PF PMD */
+typedef uint8_t u8;
+typedef int8_t s8;
+typedef uint16_t u16;
+typedef int16_t s16;
+typedef uint32_t u32;
+typedef int32_t s32;
+typedef uint64_t u64;
+
+#define __iomem
+
+/* END types for user mode PF PMD */
+
+#endif /* __DLB_OSDEP_TYPES_H */
diff --git a/drivers/event/dlb/pf/base/dlb_regs.h b/drivers/event/dlb/pf/base/dlb_regs.h
new file mode 100644
index 0000000..fce5c0b
--- /dev/null
+++ b/drivers/event/dlb/pf/base/dlb_regs.h
@@ -0,0 +1,2678 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#ifndef __DLB_REGS_H
+#define __DLB_REGS_H
+
+#include "dlb_osdep_types.h"
+
+#define DLB_FUNC_PF_VF2PF_MAILBOX_BYTES 256
+#define DLB_FUNC_PF_VF2PF_MAILBOX(vf_id, x) \
+ (0x1000 + 0x4 * (x) + (vf_id) * 0x10000)
+#define DLB_FUNC_PF_VF2PF_MAILBOX_RST 0x0
+union dlb_func_pf_vf2pf_mailbox {
+ struct {
+ u32 msg : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_PF_VF2PF_MAILBOX_ISR(vf_id) \
+ (0x1f00 + (vf_id) * 0x10000)
+#define DLB_FUNC_PF_VF2PF_MAILBOX_ISR_RST 0x0
+union dlb_func_pf_vf2pf_mailbox_isr {
+ struct {
+ u32 vf_isr : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_PF_VF2PF_FLR_ISR(vf_id) \
+ (0x1f04 + (vf_id) * 0x10000)
+#define DLB_FUNC_PF_VF2PF_FLR_ISR_RST 0x0
+union dlb_func_pf_vf2pf_flr_isr {
+ struct {
+ u32 vf_isr : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_PF_VF2PF_ISR_PEND(vf_id) \
+ (0x1f10 + (vf_id) * 0x10000)
+#define DLB_FUNC_PF_VF2PF_ISR_PEND_RST 0x0
+union dlb_func_pf_vf2pf_isr_pend {
+ struct {
+ u32 isr_pend : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_PF_PF2VF_MAILBOX_BYTES 64
+#define DLB_FUNC_PF_PF2VF_MAILBOX(vf_id, x) \
+ (0x2000 + 0x4 * (x) + (vf_id) * 0x10000)
+#define DLB_FUNC_PF_PF2VF_MAILBOX_RST 0x0
+union dlb_func_pf_pf2vf_mailbox {
+ struct {
+ u32 msg : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_PF_PF2VF_MAILBOX_ISR(vf_id) \
+ (0x2f00 + (vf_id) * 0x10000)
+#define DLB_FUNC_PF_PF2VF_MAILBOX_ISR_RST 0x0
+union dlb_func_pf_pf2vf_mailbox_isr {
+ struct {
+ u32 isr : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_PF_VF_RESET_IN_PROGRESS(vf_id) \
+ (0x3000 + (vf_id) * 0x10000)
+#define DLB_FUNC_PF_VF_RESET_IN_PROGRESS_RST 0xffff
+union dlb_func_pf_vf_reset_in_progress {
+ struct {
+ u32 reset_in_progress : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_MSIX_MEM_VECTOR_CTRL(x) \
+ (0x100000c + (x) * 0x10)
+#define DLB_MSIX_MEM_VECTOR_CTRL_RST 0x1
+union dlb_msix_mem_vector_ctrl {
+ struct {
+ u32 vec_mask : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_TOTAL_VAS 0x124
+#define DLB_SYS_TOTAL_VAS_RST 0x20
+union dlb_sys_total_vas {
+ struct {
+ u32 total_vas : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_ALARM_PF_SYND2 0x508
+#define DLB_SYS_ALARM_PF_SYND2_RST 0x0
+union dlb_sys_alarm_pf_synd2 {
+ struct {
+ u32 lock_id : 16;
+ u32 meas : 1;
+ u32 debug : 7;
+ u32 cq_pop : 1;
+ u32 qe_uhl : 1;
+ u32 qe_orsp : 1;
+ u32 qe_valid : 1;
+ u32 cq_int_rearm : 1;
+ u32 dsi_error : 1;
+ u32 rsvd0 : 2;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_ALARM_PF_SYND1 0x504
+#define DLB_SYS_ALARM_PF_SYND1_RST 0x0
+union dlb_sys_alarm_pf_synd1 {
+ struct {
+ u32 dsi : 16;
+ u32 qid : 8;
+ u32 qtype : 2;
+ u32 qpri : 3;
+ u32 msg_type : 3;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_ALARM_PF_SYND0 0x500
+#define DLB_SYS_ALARM_PF_SYND0_RST 0x0
+union dlb_sys_alarm_pf_synd0 {
+ struct {
+ u32 syndrome : 8;
+ u32 rtype : 2;
+ u32 rsvd0 : 2;
+ u32 from_dmv : 1;
+ u32 is_ldb : 1;
+ u32 cls : 2;
+ u32 aid : 6;
+ u32 unit : 4;
+ u32 source : 4;
+ u32 more : 1;
+ u32 valid : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_VF_LDB_VPP_V(x) \
+ (0xf00 + (x) * 0x1000)
+#define DLB_SYS_VF_LDB_VPP_V_RST 0x0
+union dlb_sys_vf_ldb_vpp_v {
+ struct {
+ u32 vpp_v : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_VF_LDB_VPP2PP(x) \
+ (0xf08 + (x) * 0x1000)
+#define DLB_SYS_VF_LDB_VPP2PP_RST 0x0
+union dlb_sys_vf_ldb_vpp2pp {
+ struct {
+ u32 pp : 6;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_VF_DIR_VPP_V(x) \
+ (0xf10 + (x) * 0x1000)
+#define DLB_SYS_VF_DIR_VPP_V_RST 0x0
+union dlb_sys_vf_dir_vpp_v {
+ struct {
+ u32 vpp_v : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_VF_DIR_VPP2PP(x) \
+ (0xf18 + (x) * 0x1000)
+#define DLB_SYS_VF_DIR_VPP2PP_RST 0x0
+union dlb_sys_vf_dir_vpp2pp {
+ struct {
+ u32 pp : 7;
+ u32 rsvd0 : 25;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_VF_LDB_VQID_V(x) \
+ (0xf20 + (x) * 0x1000)
+#define DLB_SYS_VF_LDB_VQID_V_RST 0x0
+union dlb_sys_vf_ldb_vqid_v {
+ struct {
+ u32 vqid_v : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_VF_LDB_VQID2QID(x) \
+ (0xf28 + (x) * 0x1000)
+#define DLB_SYS_VF_LDB_VQID2QID_RST 0x0
+union dlb_sys_vf_ldb_vqid2qid {
+ struct {
+ u32 qid : 7;
+ u32 rsvd0 : 25;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_QID2VQID(x) \
+ (0xf2c + (x) * 0x1000)
+#define DLB_SYS_LDB_QID2VQID_RST 0x0
+union dlb_sys_ldb_qid2vqid {
+ struct {
+ u32 vqid : 7;
+ u32 rsvd0 : 25;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_VF_DIR_VQID_V(x) \
+ (0xf30 + (x) * 0x1000)
+#define DLB_SYS_VF_DIR_VQID_V_RST 0x0
+union dlb_sys_vf_dir_vqid_v {
+ struct {
+ u32 vqid_v : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_VF_DIR_VQID2QID(x) \
+ (0xf38 + (x) * 0x1000)
+#define DLB_SYS_VF_DIR_VQID2QID_RST 0x0
+union dlb_sys_vf_dir_vqid2qid {
+ struct {
+ u32 qid : 7;
+ u32 rsvd0 : 25;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_VASQID_V(x) \
+ (0xf60 + (x) * 0x1000)
+#define DLB_SYS_LDB_VASQID_V_RST 0x0
+union dlb_sys_ldb_vasqid_v {
+ struct {
+ u32 vasqid_v : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_VASQID_V(x) \
+ (0xf68 + (x) * 0x1000)
+#define DLB_SYS_DIR_VASQID_V_RST 0x0
+union dlb_sys_dir_vasqid_v {
+ struct {
+ u32 vasqid_v : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_WBUF_DIR_FLAGS(x) \
+ (0xf70 + (x) * 0x1000)
+#define DLB_SYS_WBUF_DIR_FLAGS_RST 0x0
+union dlb_sys_wbuf_dir_flags {
+ struct {
+ u32 wb_v : 4;
+ u32 cl : 1;
+ u32 busy : 1;
+ u32 opt : 1;
+ u32 rsvd0 : 25;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_WBUF_LDB_FLAGS(x) \
+ (0xf78 + (x) * 0x1000)
+#define DLB_SYS_WBUF_LDB_FLAGS_RST 0x0
+union dlb_sys_wbuf_ldb_flags {
+ struct {
+ u32 wb_v : 4;
+ u32 cl : 1;
+ u32 busy : 1;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_ALARM_VF_SYND2(x) \
+ (0x8000018 + (x) * 0x1000)
+#define DLB_SYS_ALARM_VF_SYND2_RST 0x0
+union dlb_sys_alarm_vf_synd2 {
+ struct {
+ u32 lock_id : 16;
+ u32 meas : 1;
+ u32 debug : 7;
+ u32 cq_pop : 1;
+ u32 qe_uhl : 1;
+ u32 qe_orsp : 1;
+ u32 qe_valid : 1;
+ u32 cq_int_rearm : 1;
+ u32 dsi_error : 1;
+ u32 rsvd0 : 2;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_ALARM_VF_SYND1(x) \
+ (0x8000014 + (x) * 0x1000)
+#define DLB_SYS_ALARM_VF_SYND1_RST 0x0
+union dlb_sys_alarm_vf_synd1 {
+ struct {
+ u32 dsi : 16;
+ u32 qid : 8;
+ u32 qtype : 2;
+ u32 qpri : 3;
+ u32 msg_type : 3;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_ALARM_VF_SYND0(x) \
+ (0x8000010 + (x) * 0x1000)
+#define DLB_SYS_ALARM_VF_SYND0_RST 0x0
+union dlb_sys_alarm_vf_synd0 {
+ struct {
+ u32 syndrome : 8;
+ u32 rtype : 2;
+ u32 rsvd0 : 2;
+ u32 from_dmv : 1;
+ u32 is_ldb : 1;
+ u32 cls : 2;
+ u32 aid : 6;
+ u32 unit : 4;
+ u32 source : 4;
+ u32 more : 1;
+ u32 valid : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_QID_V(x) \
+ (0x8000034 + (x) * 0x1000)
+#define DLB_SYS_LDB_QID_V_RST 0x0
+union dlb_sys_ldb_qid_v {
+ struct {
+ u32 qid_v : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_QID_CFG_V(x) \
+ (0x8000030 + (x) * 0x1000)
+#define DLB_SYS_LDB_QID_CFG_V_RST 0x0
+union dlb_sys_ldb_qid_cfg_v {
+ struct {
+ u32 sn_cfg_v : 1;
+ u32 fid_cfg_v : 1;
+ u32 rsvd0 : 30;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_QID_V(x) \
+ (0x8000040 + (x) * 0x1000)
+#define DLB_SYS_DIR_QID_V_RST 0x0
+union dlb_sys_dir_qid_v {
+ struct {
+ u32 qid_v : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_POOL_ENBLD(x) \
+ (0x8000070 + (x) * 0x1000)
+#define DLB_SYS_LDB_POOL_ENBLD_RST 0x0
+union dlb_sys_ldb_pool_enbld {
+ struct {
+ u32 pool_enabled : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_POOL_ENBLD(x) \
+ (0x8000080 + (x) * 0x1000)
+#define DLB_SYS_DIR_POOL_ENBLD_RST 0x0
+union dlb_sys_dir_pool_enbld {
+ struct {
+ u32 pool_enabled : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_PP2VPP(x) \
+ (0x8000090 + (x) * 0x1000)
+#define DLB_SYS_LDB_PP2VPP_RST 0x0
+union dlb_sys_ldb_pp2vpp {
+ struct {
+ u32 vpp : 6;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_PP2VPP(x) \
+ (0x8000094 + (x) * 0x1000)
+#define DLB_SYS_DIR_PP2VPP_RST 0x0
+union dlb_sys_dir_pp2vpp {
+ struct {
+ u32 vpp : 7;
+ u32 rsvd0 : 25;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_PP_V(x) \
+ (0x8000128 + (x) * 0x1000)
+#define DLB_SYS_LDB_PP_V_RST 0x0
+union dlb_sys_ldb_pp_v {
+ struct {
+ u32 pp_v : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_CQ_ISR(x) \
+ (0x8000124 + (x) * 0x1000)
+#define DLB_SYS_LDB_CQ_ISR_RST 0x0
+/* CQ Interrupt Modes */
+#define DLB_CQ_ISR_MODE_DIS 0
+#define DLB_CQ_ISR_MODE_MSI 1
+#define DLB_CQ_ISR_MODE_MSIX 2
+union dlb_sys_ldb_cq_isr {
+ struct {
+ u32 vector : 6;
+ u32 vf : 4;
+ u32 en_code : 2;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_CQ2VF_PF(x) \
+ (0x8000120 + (x) * 0x1000)
+#define DLB_SYS_LDB_CQ2VF_PF_RST 0x0
+union dlb_sys_ldb_cq2vf_pf {
+ struct {
+ u32 vf : 4;
+ u32 is_pf : 1;
+ u32 rsvd0 : 27;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_PP2VAS(x) \
+ (0x800011c + (x) * 0x1000)
+#define DLB_SYS_LDB_PP2VAS_RST 0x0
+union dlb_sys_ldb_pp2vas {
+ struct {
+ u32 vas : 5;
+ u32 rsvd0 : 27;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_PP2LDBPOOL(x) \
+ (0x8000118 + (x) * 0x1000)
+#define DLB_SYS_LDB_PP2LDBPOOL_RST 0x0
+union dlb_sys_ldb_pp2ldbpool {
+ struct {
+ u32 ldbpool : 6;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_PP2DIRPOOL(x) \
+ (0x8000114 + (x) * 0x1000)
+#define DLB_SYS_LDB_PP2DIRPOOL_RST 0x0
+union dlb_sys_ldb_pp2dirpool {
+ struct {
+ u32 dirpool : 6;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_PP2VF_PF(x) \
+ (0x8000110 + (x) * 0x1000)
+#define DLB_SYS_LDB_PP2VF_PF_RST 0x0
+union dlb_sys_ldb_pp2vf_pf {
+ struct {
+ u32 vf : 4;
+ u32 is_pf : 1;
+ u32 rsvd0 : 27;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_PP_ADDR_U(x) \
+ (0x800010c + (x) * 0x1000)
+#define DLB_SYS_LDB_PP_ADDR_U_RST 0x0
+union dlb_sys_ldb_pp_addr_u {
+ struct {
+ u32 addr_u : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_PP_ADDR_L(x) \
+ (0x8000108 + (x) * 0x1000)
+#define DLB_SYS_LDB_PP_ADDR_L_RST 0x0
+union dlb_sys_ldb_pp_addr_l {
+ struct {
+ u32 rsvd0 : 7;
+ u32 addr_l : 25;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_CQ_ADDR_U(x) \
+ (0x8000104 + (x) * 0x1000)
+#define DLB_SYS_LDB_CQ_ADDR_U_RST 0x0
+union dlb_sys_ldb_cq_addr_u {
+ struct {
+ u32 addr_u : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_CQ_ADDR_L(x) \
+ (0x8000100 + (x) * 0x1000)
+#define DLB_SYS_LDB_CQ_ADDR_L_RST 0x0
+union dlb_sys_ldb_cq_addr_l {
+ struct {
+ u32 rsvd0 : 6;
+ u32 addr_l : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_PP_V(x) \
+ (0x8000228 + (x) * 0x1000)
+#define DLB_SYS_DIR_PP_V_RST 0x0
+union dlb_sys_dir_pp_v {
+ struct {
+ u32 pp_v : 1;
+ u32 mb_dm : 1;
+ u32 rsvd0 : 30;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_CQ_ISR(x) \
+ (0x8000224 + (x) * 0x1000)
+#define DLB_SYS_DIR_CQ_ISR_RST 0x0
+union dlb_sys_dir_cq_isr {
+ struct {
+ u32 vector : 6;
+ u32 vf : 4;
+ u32 en_code : 2;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_CQ2VF_PF(x) \
+ (0x8000220 + (x) * 0x1000)
+#define DLB_SYS_DIR_CQ2VF_PF_RST 0x0
+union dlb_sys_dir_cq2vf_pf {
+ struct {
+ u32 vf : 4;
+ u32 is_pf : 1;
+ u32 rsvd0 : 27;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_PP2VAS(x) \
+ (0x800021c + (x) * 0x1000)
+#define DLB_SYS_DIR_PP2VAS_RST 0x0
+union dlb_sys_dir_pp2vas {
+ struct {
+ u32 vas : 5;
+ u32 rsvd0 : 27;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_PP2LDBPOOL(x) \
+ (0x8000218 + (x) * 0x1000)
+#define DLB_SYS_DIR_PP2LDBPOOL_RST 0x0
+union dlb_sys_dir_pp2ldbpool {
+ struct {
+ u32 ldbpool : 6;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_PP2DIRPOOL(x) \
+ (0x8000214 + (x) * 0x1000)
+#define DLB_SYS_DIR_PP2DIRPOOL_RST 0x0
+union dlb_sys_dir_pp2dirpool {
+ struct {
+ u32 dirpool : 6;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_PP2VF_PF(x) \
+ (0x8000210 + (x) * 0x1000)
+#define DLB_SYS_DIR_PP2VF_PF_RST 0x0
+union dlb_sys_dir_pp2vf_pf {
+ struct {
+ u32 vf : 4;
+ u32 is_pf : 1;
+ u32 is_hw_dsi : 1;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_PP_ADDR_U(x) \
+ (0x800020c + (x) * 0x1000)
+#define DLB_SYS_DIR_PP_ADDR_U_RST 0x0
+union dlb_sys_dir_pp_addr_u {
+ struct {
+ u32 addr_u : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_PP_ADDR_L(x) \
+ (0x8000208 + (x) * 0x1000)
+#define DLB_SYS_DIR_PP_ADDR_L_RST 0x0
+union dlb_sys_dir_pp_addr_l {
+ struct {
+ u32 rsvd0 : 7;
+ u32 addr_l : 25;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_CQ_ADDR_U(x) \
+ (0x8000204 + (x) * 0x1000)
+#define DLB_SYS_DIR_CQ_ADDR_U_RST 0x0
+union dlb_sys_dir_cq_addr_u {
+ struct {
+ u32 addr_u : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_CQ_ADDR_L(x) \
+ (0x8000200 + (x) * 0x1000)
+#define DLB_SYS_DIR_CQ_ADDR_L_RST 0x0
+union dlb_sys_dir_cq_addr_l {
+ struct {
+ u32 rsvd0 : 6;
+ u32 addr_l : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_INGRESS_ALARM_ENBL 0x300
+#define DLB_SYS_INGRESS_ALARM_ENBL_RST 0x0
+union dlb_sys_ingress_alarm_enbl {
+ struct {
+ u32 illegal_hcw : 1;
+ u32 illegal_pp : 1;
+ u32 disabled_pp : 1;
+ u32 illegal_qid : 1;
+ u32 disabled_qid : 1;
+ u32 illegal_ldb_qid_cfg : 1;
+ u32 illegal_cqid : 1;
+ u32 rsvd0 : 25;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_CQ_MODE 0x30c
+#define DLB_SYS_CQ_MODE_RST 0x0
+union dlb_sys_cq_mode {
+ struct {
+ u32 ldb_cq64 : 1;
+ u32 dir_cq64 : 1;
+ u32 rsvd0 : 30;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_FUNC_VF_BAR_DSBL(x) \
+ (0x310 + (x) * 0x4)
+#define DLB_SYS_FUNC_VF_BAR_DSBL_RST 0x0
+union dlb_sys_func_vf_bar_dsbl {
+ struct {
+ u32 func_vf_bar_dis : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_MSIX_ACK 0x400
+#define DLB_SYS_MSIX_ACK_RST 0x0
+union dlb_sys_msix_ack {
+ struct {
+ u32 msix_0_ack : 1;
+ u32 msix_1_ack : 1;
+ u32 msix_2_ack : 1;
+ u32 msix_3_ack : 1;
+ u32 msix_4_ack : 1;
+ u32 msix_5_ack : 1;
+ u32 msix_6_ack : 1;
+ u32 msix_7_ack : 1;
+ u32 msix_8_ack : 1;
+ u32 rsvd0 : 23;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_MSIX_PASSTHRU 0x404
+#define DLB_SYS_MSIX_PASSTHRU_RST 0x0
+union dlb_sys_msix_passthru {
+ struct {
+ u32 msix_0_passthru : 1;
+ u32 msix_1_passthru : 1;
+ u32 msix_2_passthru : 1;
+ u32 msix_3_passthru : 1;
+ u32 msix_4_passthru : 1;
+ u32 msix_5_passthru : 1;
+ u32 msix_6_passthru : 1;
+ u32 msix_7_passthru : 1;
+ u32 msix_8_passthru : 1;
+ u32 rsvd0 : 23;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_MSIX_MODE 0x408
+#define DLB_SYS_MSIX_MODE_RST 0x0
+/* MSI-X Modes */
+#define DLB_MSIX_MODE_PACKED 0
+#define DLB_MSIX_MODE_COMPRESSED 1
+union dlb_sys_msix_mode {
+ struct {
+ u32 mode : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_CQ_31_0_OCC_INT_STS 0x440
+#define DLB_SYS_DIR_CQ_31_0_OCC_INT_STS_RST 0x0
+union dlb_sys_dir_cq_31_0_occ_int_sts {
+ struct {
+ u32 cq_0_occ_int : 1;
+ u32 cq_1_occ_int : 1;
+ u32 cq_2_occ_int : 1;
+ u32 cq_3_occ_int : 1;
+ u32 cq_4_occ_int : 1;
+ u32 cq_5_occ_int : 1;
+ u32 cq_6_occ_int : 1;
+ u32 cq_7_occ_int : 1;
+ u32 cq_8_occ_int : 1;
+ u32 cq_9_occ_int : 1;
+ u32 cq_10_occ_int : 1;
+ u32 cq_11_occ_int : 1;
+ u32 cq_12_occ_int : 1;
+ u32 cq_13_occ_int : 1;
+ u32 cq_14_occ_int : 1;
+ u32 cq_15_occ_int : 1;
+ u32 cq_16_occ_int : 1;
+ u32 cq_17_occ_int : 1;
+ u32 cq_18_occ_int : 1;
+ u32 cq_19_occ_int : 1;
+ u32 cq_20_occ_int : 1;
+ u32 cq_21_occ_int : 1;
+ u32 cq_22_occ_int : 1;
+ u32 cq_23_occ_int : 1;
+ u32 cq_24_occ_int : 1;
+ u32 cq_25_occ_int : 1;
+ u32 cq_26_occ_int : 1;
+ u32 cq_27_occ_int : 1;
+ u32 cq_28_occ_int : 1;
+ u32 cq_29_occ_int : 1;
+ u32 cq_30_occ_int : 1;
+ u32 cq_31_occ_int : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_CQ_63_32_OCC_INT_STS 0x444
+#define DLB_SYS_DIR_CQ_63_32_OCC_INT_STS_RST 0x0
+union dlb_sys_dir_cq_63_32_occ_int_sts {
+ struct {
+ u32 cq_32_occ_int : 1;
+ u32 cq_33_occ_int : 1;
+ u32 cq_34_occ_int : 1;
+ u32 cq_35_occ_int : 1;
+ u32 cq_36_occ_int : 1;
+ u32 cq_37_occ_int : 1;
+ u32 cq_38_occ_int : 1;
+ u32 cq_39_occ_int : 1;
+ u32 cq_40_occ_int : 1;
+ u32 cq_41_occ_int : 1;
+ u32 cq_42_occ_int : 1;
+ u32 cq_43_occ_int : 1;
+ u32 cq_44_occ_int : 1;
+ u32 cq_45_occ_int : 1;
+ u32 cq_46_occ_int : 1;
+ u32 cq_47_occ_int : 1;
+ u32 cq_48_occ_int : 1;
+ u32 cq_49_occ_int : 1;
+ u32 cq_50_occ_int : 1;
+ u32 cq_51_occ_int : 1;
+ u32 cq_52_occ_int : 1;
+ u32 cq_53_occ_int : 1;
+ u32 cq_54_occ_int : 1;
+ u32 cq_55_occ_int : 1;
+ u32 cq_56_occ_int : 1;
+ u32 cq_57_occ_int : 1;
+ u32 cq_58_occ_int : 1;
+ u32 cq_59_occ_int : 1;
+ u32 cq_60_occ_int : 1;
+ u32 cq_61_occ_int : 1;
+ u32 cq_62_occ_int : 1;
+ u32 cq_63_occ_int : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_CQ_95_64_OCC_INT_STS 0x448
+#define DLB_SYS_DIR_CQ_95_64_OCC_INT_STS_RST 0x0
+union dlb_sys_dir_cq_95_64_occ_int_sts {
+ struct {
+ u32 cq_64_occ_int : 1;
+ u32 cq_65_occ_int : 1;
+ u32 cq_66_occ_int : 1;
+ u32 cq_67_occ_int : 1;
+ u32 cq_68_occ_int : 1;
+ u32 cq_69_occ_int : 1;
+ u32 cq_70_occ_int : 1;
+ u32 cq_71_occ_int : 1;
+ u32 cq_72_occ_int : 1;
+ u32 cq_73_occ_int : 1;
+ u32 cq_74_occ_int : 1;
+ u32 cq_75_occ_int : 1;
+ u32 cq_76_occ_int : 1;
+ u32 cq_77_occ_int : 1;
+ u32 cq_78_occ_int : 1;
+ u32 cq_79_occ_int : 1;
+ u32 cq_80_occ_int : 1;
+ u32 cq_81_occ_int : 1;
+ u32 cq_82_occ_int : 1;
+ u32 cq_83_occ_int : 1;
+ u32 cq_84_occ_int : 1;
+ u32 cq_85_occ_int : 1;
+ u32 cq_86_occ_int : 1;
+ u32 cq_87_occ_int : 1;
+ u32 cq_88_occ_int : 1;
+ u32 cq_89_occ_int : 1;
+ u32 cq_90_occ_int : 1;
+ u32 cq_91_occ_int : 1;
+ u32 cq_92_occ_int : 1;
+ u32 cq_93_occ_int : 1;
+ u32 cq_94_occ_int : 1;
+ u32 cq_95_occ_int : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_DIR_CQ_127_96_OCC_INT_STS 0x44c
+#define DLB_SYS_DIR_CQ_127_96_OCC_INT_STS_RST 0x0
+union dlb_sys_dir_cq_127_96_occ_int_sts {
+ struct {
+ u32 cq_96_occ_int : 1;
+ u32 cq_97_occ_int : 1;
+ u32 cq_98_occ_int : 1;
+ u32 cq_99_occ_int : 1;
+ u32 cq_100_occ_int : 1;
+ u32 cq_101_occ_int : 1;
+ u32 cq_102_occ_int : 1;
+ u32 cq_103_occ_int : 1;
+ u32 cq_104_occ_int : 1;
+ u32 cq_105_occ_int : 1;
+ u32 cq_106_occ_int : 1;
+ u32 cq_107_occ_int : 1;
+ u32 cq_108_occ_int : 1;
+ u32 cq_109_occ_int : 1;
+ u32 cq_110_occ_int : 1;
+ u32 cq_111_occ_int : 1;
+ u32 cq_112_occ_int : 1;
+ u32 cq_113_occ_int : 1;
+ u32 cq_114_occ_int : 1;
+ u32 cq_115_occ_int : 1;
+ u32 cq_116_occ_int : 1;
+ u32 cq_117_occ_int : 1;
+ u32 cq_118_occ_int : 1;
+ u32 cq_119_occ_int : 1;
+ u32 cq_120_occ_int : 1;
+ u32 cq_121_occ_int : 1;
+ u32 cq_122_occ_int : 1;
+ u32 cq_123_occ_int : 1;
+ u32 cq_124_occ_int : 1;
+ u32 cq_125_occ_int : 1;
+ u32 cq_126_occ_int : 1;
+ u32 cq_127_occ_int : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_CQ_31_0_OCC_INT_STS 0x460
+#define DLB_SYS_LDB_CQ_31_0_OCC_INT_STS_RST 0x0
+union dlb_sys_ldb_cq_31_0_occ_int_sts {
+ struct {
+ u32 cq_0_occ_int : 1;
+ u32 cq_1_occ_int : 1;
+ u32 cq_2_occ_int : 1;
+ u32 cq_3_occ_int : 1;
+ u32 cq_4_occ_int : 1;
+ u32 cq_5_occ_int : 1;
+ u32 cq_6_occ_int : 1;
+ u32 cq_7_occ_int : 1;
+ u32 cq_8_occ_int : 1;
+ u32 cq_9_occ_int : 1;
+ u32 cq_10_occ_int : 1;
+ u32 cq_11_occ_int : 1;
+ u32 cq_12_occ_int : 1;
+ u32 cq_13_occ_int : 1;
+ u32 cq_14_occ_int : 1;
+ u32 cq_15_occ_int : 1;
+ u32 cq_16_occ_int : 1;
+ u32 cq_17_occ_int : 1;
+ u32 cq_18_occ_int : 1;
+ u32 cq_19_occ_int : 1;
+ u32 cq_20_occ_int : 1;
+ u32 cq_21_occ_int : 1;
+ u32 cq_22_occ_int : 1;
+ u32 cq_23_occ_int : 1;
+ u32 cq_24_occ_int : 1;
+ u32 cq_25_occ_int : 1;
+ u32 cq_26_occ_int : 1;
+ u32 cq_27_occ_int : 1;
+ u32 cq_28_occ_int : 1;
+ u32 cq_29_occ_int : 1;
+ u32 cq_30_occ_int : 1;
+ u32 cq_31_occ_int : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_LDB_CQ_63_32_OCC_INT_STS 0x464
+#define DLB_SYS_LDB_CQ_63_32_OCC_INT_STS_RST 0x0
+union dlb_sys_ldb_cq_63_32_occ_int_sts {
+ struct {
+ u32 cq_32_occ_int : 1;
+ u32 cq_33_occ_int : 1;
+ u32 cq_34_occ_int : 1;
+ u32 cq_35_occ_int : 1;
+ u32 cq_36_occ_int : 1;
+ u32 cq_37_occ_int : 1;
+ u32 cq_38_occ_int : 1;
+ u32 cq_39_occ_int : 1;
+ u32 cq_40_occ_int : 1;
+ u32 cq_41_occ_int : 1;
+ u32 cq_42_occ_int : 1;
+ u32 cq_43_occ_int : 1;
+ u32 cq_44_occ_int : 1;
+ u32 cq_45_occ_int : 1;
+ u32 cq_46_occ_int : 1;
+ u32 cq_47_occ_int : 1;
+ u32 cq_48_occ_int : 1;
+ u32 cq_49_occ_int : 1;
+ u32 cq_50_occ_int : 1;
+ u32 cq_51_occ_int : 1;
+ u32 cq_52_occ_int : 1;
+ u32 cq_53_occ_int : 1;
+ u32 cq_54_occ_int : 1;
+ u32 cq_55_occ_int : 1;
+ u32 cq_56_occ_int : 1;
+ u32 cq_57_occ_int : 1;
+ u32 cq_58_occ_int : 1;
+ u32 cq_59_occ_int : 1;
+ u32 cq_60_occ_int : 1;
+ u32 cq_61_occ_int : 1;
+ u32 cq_62_occ_int : 1;
+ u32 cq_63_occ_int : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_ALARM_HW_SYND 0x50c
+#define DLB_SYS_ALARM_HW_SYND_RST 0x0
+union dlb_sys_alarm_hw_synd {
+ struct {
+ u32 syndrome : 8;
+ u32 rtype : 2;
+ u32 rsvd0 : 2;
+ u32 from_dmv : 1;
+ u32 is_ldb : 1;
+ u32 cls : 2;
+ u32 aid : 6;
+ u32 unit : 4;
+ u32 source : 4;
+ u32 more : 1;
+ u32 valid : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_SYS_SYS_ALARM_INT_ENABLE 0xc001048
+#define DLB_SYS_SYS_ALARM_INT_ENABLE_RST 0x7fffff
+union dlb_sys_sys_alarm_int_enable {
+ struct {
+ u32 cq_addr_overflow_error : 1;
+ u32 ingress_perr : 1;
+ u32 egress_perr : 1;
+ u32 alarm_perr : 1;
+ u32 vf_to_pf_isr_pend_error : 1;
+ u32 pf_to_vf_isr_pend_error : 1;
+ u32 timeout_error : 1;
+ u32 dmvw_sm_error : 1;
+ u32 pptr_sm_par_error : 1;
+ u32 pptr_sm_len_error : 1;
+ u32 sch_sm_error : 1;
+ u32 wbuf_flag_error : 1;
+ u32 dmvw_cl_error : 1;
+ u32 dmvr_cl_error : 1;
+ u32 cmpl_data_error : 1;
+ u32 cmpl_error : 1;
+ u32 fifo_underflow : 1;
+ u32 fifo_overflow : 1;
+ u32 sb_ep_parity_err : 1;
+ u32 ti_parity_err : 1;
+ u32 ri_parity_err : 1;
+ u32 cfgm_ppw_err : 1;
+ u32 system_csr_perr : 1;
+ u32 rsvd0 : 9;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_LDB_TOT_SCH_CNT_CTRL(x) \
+ (0x20000000 + (x) * 0x1000)
+#define DLB_LSP_CQ_LDB_TOT_SCH_CNT_CTRL_RST 0x0
+union dlb_lsp_cq_ldb_tot_sch_cnt_ctrl {
+ struct {
+ u32 count : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_LDB_DSBL(x) \
+ (0x20000124 + (x) * 0x1000)
+#define DLB_LSP_CQ_LDB_DSBL_RST 0x1
+union dlb_lsp_cq_ldb_dsbl {
+ struct {
+ u32 disabled : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_LDB_TOT_SCH_CNTH(x) \
+ (0x20000120 + (x) * 0x1000)
+#define DLB_LSP_CQ_LDB_TOT_SCH_CNTH_RST 0x0
+union dlb_lsp_cq_ldb_tot_sch_cnth {
+ struct {
+ u32 count : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_LDB_TOT_SCH_CNTL(x) \
+ (0x2000011c + (x) * 0x1000)
+#define DLB_LSP_CQ_LDB_TOT_SCH_CNTL_RST 0x0
+union dlb_lsp_cq_ldb_tot_sch_cntl {
+ struct {
+ u32 count : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_LDB_TKN_DEPTH_SEL(x) \
+ (0x20000118 + (x) * 0x1000)
+#define DLB_LSP_CQ_LDB_TKN_DEPTH_SEL_RST 0x0
+union dlb_lsp_cq_ldb_tkn_depth_sel {
+ struct {
+ u32 token_depth_select : 4;
+ u32 ignore_depth : 1;
+ u32 enab_shallow_cq : 1;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_LDB_TKN_CNT(x) \
+ (0x20000114 + (x) * 0x1000)
+#define DLB_LSP_CQ_LDB_TKN_CNT_RST 0x0
+union dlb_lsp_cq_ldb_tkn_cnt {
+ struct {
+ u32 token_count : 11;
+ u32 rsvd0 : 21;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_LDB_INFL_LIM(x) \
+ (0x20000110 + (x) * 0x1000)
+#define DLB_LSP_CQ_LDB_INFL_LIM_RST 0x0
+union dlb_lsp_cq_ldb_infl_lim {
+ struct {
+ u32 limit : 13;
+ u32 rsvd0 : 19;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_LDB_INFL_CNT(x) \
+ (0x2000010c + (x) * 0x1000)
+#define DLB_LSP_CQ_LDB_INFL_CNT_RST 0x0
+union dlb_lsp_cq_ldb_infl_cnt {
+ struct {
+ u32 count : 13;
+ u32 rsvd0 : 19;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ2QID(x, y) \
+ (0x20000104 + (x) * 0x1000 + (y) * 0x4)
+#define DLB_LSP_CQ2QID_RST 0x0
+union dlb_lsp_cq2qid {
+ struct {
+ u32 qid_p0 : 7;
+ u32 rsvd3 : 1;
+ u32 qid_p1 : 7;
+ u32 rsvd2 : 1;
+ u32 qid_p2 : 7;
+ u32 rsvd1 : 1;
+ u32 qid_p3 : 7;
+ u32 rsvd0 : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ2PRIOV(x) \
+ (0x20000100 + (x) * 0x1000)
+#define DLB_LSP_CQ2PRIOV_RST 0x0
+union dlb_lsp_cq2priov {
+ struct {
+ u32 prio : 24;
+ u32 v : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_DIR_DSBL(x) \
+ (0x20000310 + (x) * 0x1000)
+#define DLB_LSP_CQ_DIR_DSBL_RST 0x1
+union dlb_lsp_cq_dir_dsbl {
+ struct {
+ u32 disabled : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_DIR_TKN_DEPTH_SEL_DSI(x) \
+ (0x2000030c + (x) * 0x1000)
+#define DLB_LSP_CQ_DIR_TKN_DEPTH_SEL_DSI_RST 0x0
+union dlb_lsp_cq_dir_tkn_depth_sel_dsi {
+ struct {
+ u32 token_depth_select : 4;
+ u32 disable_wb_opt : 1;
+ u32 ignore_depth : 1;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_DIR_TOT_SCH_CNTH(x) \
+ (0x20000308 + (x) * 0x1000)
+#define DLB_LSP_CQ_DIR_TOT_SCH_CNTH_RST 0x0
+union dlb_lsp_cq_dir_tot_sch_cnth {
+ struct {
+ u32 count : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_DIR_TOT_SCH_CNTL(x) \
+ (0x20000304 + (x) * 0x1000)
+#define DLB_LSP_CQ_DIR_TOT_SCH_CNTL_RST 0x0
+union dlb_lsp_cq_dir_tot_sch_cntl {
+ struct {
+ u32 count : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CQ_DIR_TKN_CNT(x) \
+ (0x20000300 + (x) * 0x1000)
+#define DLB_LSP_CQ_DIR_TKN_CNT_RST 0x0
+union dlb_lsp_cq_dir_tkn_cnt {
+ struct {
+ u32 count : 11;
+ u32 rsvd0 : 21;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_QID_LDB_QID2CQIDX(x, y) \
+ (0x20000400 + (x) * 0x1000 + (y) * 0x4)
+#define DLB_LSP_QID_LDB_QID2CQIDX_RST 0x0
+union dlb_lsp_qid_ldb_qid2cqidx {
+ struct {
+ u32 cq_p0 : 8;
+ u32 cq_p1 : 8;
+ u32 cq_p2 : 8;
+ u32 cq_p3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_QID_LDB_QID2CQIDX2(x, y) \
+ (0x20000500 + (x) * 0x1000 + (y) * 0x4)
+#define DLB_LSP_QID_LDB_QID2CQIDX2_RST 0x0
+union dlb_lsp_qid_ldb_qid2cqidx2 {
+ struct {
+ u32 cq_p0 : 8;
+ u32 cq_p1 : 8;
+ u32 cq_p2 : 8;
+ u32 cq_p3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_QID_ATQ_ENQUEUE_CNT(x) \
+ (0x2000066c + (x) * 0x1000)
+#define DLB_LSP_QID_ATQ_ENQUEUE_CNT_RST 0x0
+union dlb_lsp_qid_atq_enqueue_cnt {
+ struct {
+ u32 count : 15;
+ u32 rsvd0 : 17;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_QID_LDB_INFL_LIM(x) \
+ (0x2000064c + (x) * 0x1000)
+#define DLB_LSP_QID_LDB_INFL_LIM_RST 0x0
+union dlb_lsp_qid_ldb_infl_lim {
+ struct {
+ u32 limit : 13;
+ u32 rsvd0 : 19;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_QID_LDB_INFL_CNT(x) \
+ (0x2000062c + (x) * 0x1000)
+#define DLB_LSP_QID_LDB_INFL_CNT_RST 0x0
+union dlb_lsp_qid_ldb_infl_cnt {
+ struct {
+ u32 count : 13;
+ u32 rsvd0 : 19;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_QID_AQED_ACTIVE_LIM(x) \
+ (0x20000628 + (x) * 0x1000)
+#define DLB_LSP_QID_AQED_ACTIVE_LIM_RST 0x0
+union dlb_lsp_qid_aqed_active_lim {
+ struct {
+ u32 limit : 12;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_QID_AQED_ACTIVE_CNT(x) \
+ (0x20000624 + (x) * 0x1000)
+#define DLB_LSP_QID_AQED_ACTIVE_CNT_RST 0x0
+union dlb_lsp_qid_aqed_active_cnt {
+ struct {
+ u32 count : 12;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_QID_LDB_ENQUEUE_CNT(x) \
+ (0x20000604 + (x) * 0x1000)
+#define DLB_LSP_QID_LDB_ENQUEUE_CNT_RST 0x0
+union dlb_lsp_qid_ldb_enqueue_cnt {
+ struct {
+ u32 count : 15;
+ u32 rsvd0 : 17;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_QID_LDB_REPLAY_CNT(x) \
+ (0x20000600 + (x) * 0x1000)
+#define DLB_LSP_QID_LDB_REPLAY_CNT_RST 0x0
+union dlb_lsp_qid_ldb_replay_cnt {
+ struct {
+ u32 count : 15;
+ u32 rsvd0 : 17;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_QID_DIR_ENQUEUE_CNT(x) \
+ (0x20000700 + (x) * 0x1000)
+#define DLB_LSP_QID_DIR_ENQUEUE_CNT_RST 0x0
+union dlb_lsp_qid_dir_enqueue_cnt {
+ struct {
+ u32 count : 13;
+ u32 rsvd0 : 19;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CTRL_CONFIG_0 0x2800002c
+#define DLB_LSP_CTRL_CONFIG_0_RST 0x12cc
+union dlb_lsp_ctrl_config_0 {
+ struct {
+ u32 atm_cq_qid_priority_prot : 1;
+ u32 ldb_arb_ignore_empty : 1;
+ u32 ldb_arb_mode : 2;
+ u32 ldb_arb_threshold : 18;
+ u32 cfg_cq_sla_upd_always : 1;
+ u32 cfg_cq_wcn_upd_always : 1;
+ u32 spare : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CFG_ARB_WEIGHT_ATM_NALB_QID_1 0x28000028
+#define DLB_LSP_CFG_ARB_WEIGHT_ATM_NALB_QID_1_RST 0x0
+union dlb_lsp_cfg_arb_weight_atm_nalb_qid_1 {
+ struct {
+ u32 slot4_weight : 8;
+ u32 slot5_weight : 8;
+ u32 slot6_weight : 8;
+ u32 slot7_weight : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CFG_ARB_WEIGHT_ATM_NALB_QID_0 0x28000024
+#define DLB_LSP_CFG_ARB_WEIGHT_ATM_NALB_QID_0_RST 0x0
+union dlb_lsp_cfg_arb_weight_atm_nalb_qid_0 {
+ struct {
+ u32 slot0_weight : 8;
+ u32 slot1_weight : 8;
+ u32 slot2_weight : 8;
+ u32 slot3_weight : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CFG_ARB_WEIGHT_LDB_QID_1 0x28000020
+#define DLB_LSP_CFG_ARB_WEIGHT_LDB_QID_1_RST 0x0
+union dlb_lsp_cfg_arb_weight_ldb_qid_1 {
+ struct {
+ u32 slot4_weight : 8;
+ u32 slot5_weight : 8;
+ u32 slot6_weight : 8;
+ u32 slot7_weight : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_CFG_ARB_WEIGHT_LDB_QID_0 0x2800001c
+#define DLB_LSP_CFG_ARB_WEIGHT_LDB_QID_0_RST 0x0
+union dlb_lsp_cfg_arb_weight_ldb_qid_0 {
+ struct {
+ u32 slot0_weight : 8;
+ u32 slot1_weight : 8;
+ u32 slot2_weight : 8;
+ u32 slot3_weight : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_LDB_SCHED_CTRL 0x28100000
+#define DLB_LSP_LDB_SCHED_CTRL_RST 0x0
+union dlb_lsp_ldb_sched_ctrl {
+ struct {
+ u32 cq : 8;
+ u32 qidix : 3;
+ u32 value : 1;
+ u32 nalb_haswork_v : 1;
+ u32 rlist_haswork_v : 1;
+ u32 slist_haswork_v : 1;
+ u32 inflight_ok_v : 1;
+ u32 aqed_nfull_v : 1;
+ u32 spare0 : 15;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_DIR_SCH_CNT_H 0x2820000c
+#define DLB_LSP_DIR_SCH_CNT_H_RST 0x0
+union dlb_lsp_dir_sch_cnt_h {
+ struct {
+ u32 count : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_DIR_SCH_CNT_L 0x28200008
+#define DLB_LSP_DIR_SCH_CNT_L_RST 0x0
+union dlb_lsp_dir_sch_cnt_l {
+ struct {
+ u32 count : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_LDB_SCH_CNT_H 0x28200004
+#define DLB_LSP_LDB_SCH_CNT_H_RST 0x0
+union dlb_lsp_ldb_sch_cnt_h {
+ struct {
+ u32 count : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_LSP_LDB_SCH_CNT_L 0x28200000
+#define DLB_LSP_LDB_SCH_CNT_L_RST 0x0
+union dlb_lsp_ldb_sch_cnt_l {
+ struct {
+ u32 count : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_DP_DIR_CSR_CTRL 0x38000018
+#define DLB_DP_DIR_CSR_CTRL_RST 0xc0000000
+union dlb_dp_dir_csr_ctrl {
+ struct {
+ u32 cfg_int_dis : 1;
+ u32 cfg_int_dis_sbe : 1;
+ u32 cfg_int_dis_mbe : 1;
+ u32 spare0 : 27;
+ u32 cfg_vasr_dis : 1;
+ u32 cfg_int_dis_synd : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_DIR_1 0x38000014
+#define DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_DIR_1_RST 0xfffefdfc
+union dlb_dp_cfg_ctrl_arb_weights_tqpri_dir_1 {
+ struct {
+ u32 pri4 : 8;
+ u32 pri5 : 8;
+ u32 pri6 : 8;
+ u32 pri7 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_DIR_0 0x38000010
+#define DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_DIR_0_RST 0xfbfaf9f8
+union dlb_dp_cfg_ctrl_arb_weights_tqpri_dir_0 {
+ struct {
+ u32 pri0 : 8;
+ u32 pri1 : 8;
+ u32 pri2 : 8;
+ u32 pri3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_1 0x3800000c
+#define DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_1_RST 0xfffefdfc
+union dlb_dp_cfg_ctrl_arb_weights_tqpri_replay_1 {
+ struct {
+ u32 pri4 : 8;
+ u32 pri5 : 8;
+ u32 pri6 : 8;
+ u32 pri7 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_0 0x38000008
+#define DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_0_RST 0xfbfaf9f8
+union dlb_dp_cfg_ctrl_arb_weights_tqpri_replay_0 {
+ struct {
+ u32 pri0 : 8;
+ u32 pri1 : 8;
+ u32 pri2 : 8;
+ u32 pri3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_NALB_PIPE_CTRL_ARB_WEIGHTS_TQPRI_NALB_1 0x6800001c
+#define DLB_NALB_PIPE_CTRL_ARB_WEIGHTS_TQPRI_NALB_1_RST 0xfffefdfc
+union dlb_nalb_pipe_ctrl_arb_weights_tqpri_nalb_1 {
+ struct {
+ u32 pri4 : 8;
+ u32 pri5 : 8;
+ u32 pri6 : 8;
+ u32 pri7 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_NALB_PIPE_CTRL_ARB_WEIGHTS_TQPRI_NALB_0 0x68000018
+#define DLB_NALB_PIPE_CTRL_ARB_WEIGHTS_TQPRI_NALB_0_RST 0xfbfaf9f8
+union dlb_nalb_pipe_ctrl_arb_weights_tqpri_nalb_0 {
+ struct {
+ u32 pri0 : 8;
+ u32 pri1 : 8;
+ u32 pri2 : 8;
+ u32 pri3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_ATQ_1 0x68000014
+#define DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_ATQ_1_RST 0xfffefdfc
+union dlb_nalb_pipe_cfg_ctrl_arb_weights_tqpri_atq_1 {
+ struct {
+ u32 pri4 : 8;
+ u32 pri5 : 8;
+ u32 pri6 : 8;
+ u32 pri7 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_ATQ_0 0x68000010
+#define DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_ATQ_0_RST 0xfbfaf9f8
+union dlb_nalb_pipe_cfg_ctrl_arb_weights_tqpri_atq_0 {
+ struct {
+ u32 pri0 : 8;
+ u32 pri1 : 8;
+ u32 pri2 : 8;
+ u32 pri3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_1 0x6800000c
+#define DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_1_RST 0xfffefdfc
+union dlb_nalb_pipe_cfg_ctrl_arb_weights_tqpri_replay_1 {
+ struct {
+ u32 pri4 : 8;
+ u32 pri5 : 8;
+ u32 pri6 : 8;
+ u32 pri7 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_0 0x68000008
+#define DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_0_RST 0xfbfaf9f8
+union dlb_nalb_pipe_cfg_ctrl_arb_weights_tqpri_replay_0 {
+ struct {
+ u32 pri0 : 8;
+ u32 pri1 : 8;
+ u32 pri2 : 8;
+ u32 pri3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_ATM_PIPE_QID_LDB_QID2CQIDX(x, y) \
+ (0x70000000 + (x) * 0x1000 + (y) * 0x4)
+#define DLB_ATM_PIPE_QID_LDB_QID2CQIDX_RST 0x0
+union dlb_atm_pipe_qid_ldb_qid2cqidx {
+ struct {
+ u32 cq_p0 : 8;
+ u32 cq_p1 : 8;
+ u32 cq_p2 : 8;
+ u32 cq_p3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_ATM_PIPE_CFG_CTRL_ARB_WEIGHTS_SCHED_BIN 0x7800000c
+#define DLB_ATM_PIPE_CFG_CTRL_ARB_WEIGHTS_SCHED_BIN_RST 0xfffefdfc
+union dlb_atm_pipe_cfg_ctrl_arb_weights_sched_bin {
+ struct {
+ u32 bin0 : 8;
+ u32 bin1 : 8;
+ u32 bin2 : 8;
+ u32 bin3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_ATM_PIPE_CTRL_ARB_WEIGHTS_RDY_BIN 0x78000008
+#define DLB_ATM_PIPE_CTRL_ARB_WEIGHTS_RDY_BIN_RST 0xfffefdfc
+union dlb_atm_pipe_ctrl_arb_weights_rdy_bin {
+ struct {
+ u32 bin0 : 8;
+ u32 bin1 : 8;
+ u32 bin2 : 8;
+ u32 bin3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_AQED_PIPE_QID_FID_LIM(x) \
+ (0x80000014 + (x) * 0x1000)
+#define DLB_AQED_PIPE_QID_FID_LIM_RST 0x7ff
+union dlb_aqed_pipe_qid_fid_lim {
+ struct {
+ u32 qid_fid_limit : 13;
+ u32 rsvd0 : 19;
+ } field;
+ u32 val;
+};
+
+#define DLB_AQED_PIPE_FL_POP_PTR(x) \
+ (0x80000010 + (x) * 0x1000)
+#define DLB_AQED_PIPE_FL_POP_PTR_RST 0x0
+union dlb_aqed_pipe_fl_pop_ptr {
+ struct {
+ u32 pop_ptr : 11;
+ u32 generation : 1;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_AQED_PIPE_FL_PUSH_PTR(x) \
+ (0x8000000c + (x) * 0x1000)
+#define DLB_AQED_PIPE_FL_PUSH_PTR_RST 0x0
+union dlb_aqed_pipe_fl_push_ptr {
+ struct {
+ u32 push_ptr : 11;
+ u32 generation : 1;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_AQED_PIPE_FL_BASE(x) \
+ (0x80000008 + (x) * 0x1000)
+#define DLB_AQED_PIPE_FL_BASE_RST 0x0
+union dlb_aqed_pipe_fl_base {
+ struct {
+ u32 base : 11;
+ u32 rsvd0 : 21;
+ } field;
+ u32 val;
+};
+
+#define DLB_AQED_PIPE_FL_LIM(x) \
+ (0x80000004 + (x) * 0x1000)
+#define DLB_AQED_PIPE_FL_LIM_RST 0x800
+union dlb_aqed_pipe_fl_lim {
+ struct {
+ u32 limit : 11;
+ u32 freelist_disable : 1;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_AQED_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_ATM_0 0x88000008
+#define DLB_AQED_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_ATM_0_RST 0xfffe
+union dlb_aqed_pipe_cfg_ctrl_arb_weights_tqpri_atm_0 {
+ struct {
+ u32 pri0 : 8;
+ u32 pri1 : 8;
+ u32 pri2 : 8;
+ u32 pri3 : 8;
+ } field;
+ u32 val;
+};
+
+#define DLB_RO_PIPE_QID2GRPSLT(x) \
+ (0x90000000 + (x) * 0x1000)
+#define DLB_RO_PIPE_QID2GRPSLT_RST 0x0
+union dlb_ro_pipe_qid2grpslt {
+ struct {
+ u32 slot : 5;
+ u32 rsvd1 : 3;
+ u32 group : 2;
+ u32 rsvd0 : 22;
+ } field;
+ u32 val;
+};
+
+#define DLB_RO_PIPE_GRP_SN_MODE 0x98000008
+#define DLB_RO_PIPE_GRP_SN_MODE_RST 0x0
+union dlb_ro_pipe_grp_sn_mode {
+ struct {
+ u32 sn_mode_0 : 3;
+ u32 reserved0 : 5;
+ u32 sn_mode_1 : 3;
+ u32 reserved1 : 5;
+ u32 sn_mode_2 : 3;
+ u32 reserved2 : 5;
+ u32 sn_mode_3 : 3;
+ u32 reserved3 : 5;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_CFG_DIR_PP_SW_ALARM_EN(x) \
+ (0xa000003c + (x) * 0x1000)
+#define DLB_CHP_CFG_DIR_PP_SW_ALARM_EN_RST 0x1
+union dlb_chp_cfg_dir_pp_sw_alarm_en {
+ struct {
+ u32 alarm_enable : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_WD_ENB(x) \
+ (0xa0000038 + (x) * 0x1000)
+#define DLB_CHP_DIR_CQ_WD_ENB_RST 0x0
+union dlb_chp_dir_cq_wd_enb {
+ struct {
+ u32 wd_enable : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_LDB_PP2POOL(x) \
+ (0xa0000034 + (x) * 0x1000)
+#define DLB_CHP_DIR_LDB_PP2POOL_RST 0x0
+union dlb_chp_dir_ldb_pp2pool {
+ struct {
+ u32 pool : 6;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_DIR_PP2POOL(x) \
+ (0xa0000030 + (x) * 0x1000)
+#define DLB_CHP_DIR_DIR_PP2POOL_RST 0x0
+union dlb_chp_dir_dir_pp2pool {
+ struct {
+ u32 pool : 6;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_LDB_CRD_CNT(x) \
+ (0xa000002c + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_LDB_CRD_CNT_RST 0x0
+union dlb_chp_dir_pp_ldb_crd_cnt {
+ struct {
+ u32 count : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_DIR_CRD_CNT(x) \
+ (0xa0000028 + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_DIR_CRD_CNT_RST 0x0
+union dlb_chp_dir_pp_dir_crd_cnt {
+ struct {
+ u32 count : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_TMR_THRESHOLD(x) \
+ (0xa0000024 + (x) * 0x1000)
+#define DLB_CHP_DIR_CQ_TMR_THRESHOLD_RST 0x0
+union dlb_chp_dir_cq_tmr_threshold {
+ struct {
+ u32 timer_thrsh : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_INT_ENB(x) \
+ (0xa0000020 + (x) * 0x1000)
+#define DLB_CHP_DIR_CQ_INT_ENB_RST 0x0
+union dlb_chp_dir_cq_int_enb {
+ struct {
+ u32 en_tim : 1;
+ u32 en_depth : 1;
+ u32 rsvd0 : 30;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_INT_DEPTH_THRSH(x) \
+ (0xa000001c + (x) * 0x1000)
+#define DLB_CHP_DIR_CQ_INT_DEPTH_THRSH_RST 0x0
+union dlb_chp_dir_cq_int_depth_thrsh {
+ struct {
+ u32 depth_threshold : 12;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_TKN_DEPTH_SEL(x) \
+ (0xa0000018 + (x) * 0x1000)
+#define DLB_CHP_DIR_CQ_TKN_DEPTH_SEL_RST 0x0
+union dlb_chp_dir_cq_tkn_depth_sel {
+ struct {
+ u32 token_depth_select : 4;
+ u32 rsvd0 : 28;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_LDB_MIN_CRD_QNT(x) \
+ (0xa0000014 + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_LDB_MIN_CRD_QNT_RST 0x1
+union dlb_chp_dir_pp_ldb_min_crd_qnt {
+ struct {
+ u32 quanta : 10;
+ u32 rsvd0 : 22;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_DIR_MIN_CRD_QNT(x) \
+ (0xa0000010 + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_DIR_MIN_CRD_QNT_RST 0x1
+union dlb_chp_dir_pp_dir_min_crd_qnt {
+ struct {
+ u32 quanta : 10;
+ u32 rsvd0 : 22;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_LDB_CRD_LWM(x) \
+ (0xa000000c + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_LDB_CRD_LWM_RST 0x0
+union dlb_chp_dir_pp_ldb_crd_lwm {
+ struct {
+ u32 lwm : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_LDB_CRD_HWM(x) \
+ (0xa0000008 + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_LDB_CRD_HWM_RST 0x0
+union dlb_chp_dir_pp_ldb_crd_hwm {
+ struct {
+ u32 hwm : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_DIR_CRD_LWM(x) \
+ (0xa0000004 + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_DIR_CRD_LWM_RST 0x0
+union dlb_chp_dir_pp_dir_crd_lwm {
+ struct {
+ u32 lwm : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_DIR_CRD_HWM(x) \
+ (0xa0000000 + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_DIR_CRD_HWM_RST 0x0
+union dlb_chp_dir_pp_dir_crd_hwm {
+ struct {
+ u32 hwm : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_CFG_LDB_PP_SW_ALARM_EN(x) \
+ (0xa0000148 + (x) * 0x1000)
+#define DLB_CHP_CFG_LDB_PP_SW_ALARM_EN_RST 0x1
+union dlb_chp_cfg_ldb_pp_sw_alarm_en {
+ struct {
+ u32 alarm_enable : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_CQ_WD_ENB(x) \
+ (0xa0000144 + (x) * 0x1000)
+#define DLB_CHP_LDB_CQ_WD_ENB_RST 0x0
+union dlb_chp_ldb_cq_wd_enb {
+ struct {
+ u32 wd_enable : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_SN_CHK_ENBL(x) \
+ (0xa0000140 + (x) * 0x1000)
+#define DLB_CHP_SN_CHK_ENBL_RST 0x0
+union dlb_chp_sn_chk_enbl {
+ struct {
+ u32 en : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_HIST_LIST_BASE(x) \
+ (0xa000013c + (x) * 0x1000)
+#define DLB_CHP_HIST_LIST_BASE_RST 0x0
+union dlb_chp_hist_list_base {
+ struct {
+ u32 base : 13;
+ u32 rsvd0 : 19;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_HIST_LIST_LIM(x) \
+ (0xa0000138 + (x) * 0x1000)
+#define DLB_CHP_HIST_LIST_LIM_RST 0x0
+union dlb_chp_hist_list_lim {
+ struct {
+ u32 limit : 13;
+ u32 rsvd0 : 19;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_LDB_PP2POOL(x) \
+ (0xa0000134 + (x) * 0x1000)
+#define DLB_CHP_LDB_LDB_PP2POOL_RST 0x0
+union dlb_chp_ldb_ldb_pp2pool {
+ struct {
+ u32 pool : 6;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_DIR_PP2POOL(x) \
+ (0xa0000130 + (x) * 0x1000)
+#define DLB_CHP_LDB_DIR_PP2POOL_RST 0x0
+union dlb_chp_ldb_dir_pp2pool {
+ struct {
+ u32 pool : 6;
+ u32 rsvd0 : 26;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_LDB_CRD_CNT(x) \
+ (0xa000012c + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_LDB_CRD_CNT_RST 0x0
+union dlb_chp_ldb_pp_ldb_crd_cnt {
+ struct {
+ u32 count : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_DIR_CRD_CNT(x) \
+ (0xa0000128 + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_DIR_CRD_CNT_RST 0x0
+union dlb_chp_ldb_pp_dir_crd_cnt {
+ struct {
+ u32 count : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_CQ_TMR_THRESHOLD(x) \
+ (0xa0000124 + (x) * 0x1000)
+#define DLB_CHP_LDB_CQ_TMR_THRESHOLD_RST 0x0
+union dlb_chp_ldb_cq_tmr_threshold {
+ struct {
+ u32 thrsh : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_CQ_INT_ENB(x) \
+ (0xa0000120 + (x) * 0x1000)
+#define DLB_CHP_LDB_CQ_INT_ENB_RST 0x0
+union dlb_chp_ldb_cq_int_enb {
+ struct {
+ u32 en_tim : 1;
+ u32 en_depth : 1;
+ u32 rsvd0 : 30;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_CQ_INT_DEPTH_THRSH(x) \
+ (0xa000011c + (x) * 0x1000)
+#define DLB_CHP_LDB_CQ_INT_DEPTH_THRSH_RST 0x0
+union dlb_chp_ldb_cq_int_depth_thrsh {
+ struct {
+ u32 depth_threshold : 12;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_CQ_TKN_DEPTH_SEL(x) \
+ (0xa0000118 + (x) * 0x1000)
+#define DLB_CHP_LDB_CQ_TKN_DEPTH_SEL_RST 0x0
+union dlb_chp_ldb_cq_tkn_depth_sel {
+ struct {
+ u32 token_depth_select : 4;
+ u32 rsvd0 : 28;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_LDB_MIN_CRD_QNT(x) \
+ (0xa0000114 + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_LDB_MIN_CRD_QNT_RST 0x1
+union dlb_chp_ldb_pp_ldb_min_crd_qnt {
+ struct {
+ u32 quanta : 10;
+ u32 rsvd0 : 22;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_DIR_MIN_CRD_QNT(x) \
+ (0xa0000110 + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_DIR_MIN_CRD_QNT_RST 0x1
+union dlb_chp_ldb_pp_dir_min_crd_qnt {
+ struct {
+ u32 quanta : 10;
+ u32 rsvd0 : 22;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_LDB_CRD_LWM(x) \
+ (0xa000010c + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_LDB_CRD_LWM_RST 0x0
+union dlb_chp_ldb_pp_ldb_crd_lwm {
+ struct {
+ u32 lwm : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_LDB_CRD_HWM(x) \
+ (0xa0000108 + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_LDB_CRD_HWM_RST 0x0
+union dlb_chp_ldb_pp_ldb_crd_hwm {
+ struct {
+ u32 hwm : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_DIR_CRD_LWM(x) \
+ (0xa0000104 + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_DIR_CRD_LWM_RST 0x0
+union dlb_chp_ldb_pp_dir_crd_lwm {
+ struct {
+ u32 lwm : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_DIR_CRD_HWM(x) \
+ (0xa0000100 + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_DIR_CRD_HWM_RST 0x0
+union dlb_chp_ldb_pp_dir_crd_hwm {
+ struct {
+ u32 hwm : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_DEPTH(x) \
+ (0xa0000218 + (x) * 0x1000)
+#define DLB_CHP_DIR_CQ_DEPTH_RST 0x0
+union dlb_chp_dir_cq_depth {
+ struct {
+ u32 cq_depth : 11;
+ u32 rsvd0 : 21;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_WPTR(x) \
+ (0xa0000214 + (x) * 0x1000)
+#define DLB_CHP_DIR_CQ_WPTR_RST 0x0
+union dlb_chp_dir_cq_wptr {
+ struct {
+ u32 write_pointer : 10;
+ u32 rsvd0 : 22;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_LDB_PUSH_PTR(x) \
+ (0xa0000210 + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_LDB_PUSH_PTR_RST 0x0
+union dlb_chp_dir_pp_ldb_push_ptr {
+ struct {
+ u32 push_pointer : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_DIR_PUSH_PTR(x) \
+ (0xa000020c + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_DIR_PUSH_PTR_RST 0x0
+union dlb_chp_dir_pp_dir_push_ptr {
+ struct {
+ u32 push_pointer : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_STATE_RESET(x) \
+ (0xa0000204 + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_STATE_RESET_RST 0x0
+union dlb_chp_dir_pp_state_reset {
+ struct {
+ u32 rsvd1 : 7;
+ u32 dir_type : 1;
+ u32 rsvd0 : 23;
+ u32 reset_pp_state : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_PP_CRD_REQ_STATE(x) \
+ (0xa0000200 + (x) * 0x1000)
+#define DLB_CHP_DIR_PP_CRD_REQ_STATE_RST 0x0
+union dlb_chp_dir_pp_crd_req_state {
+ struct {
+ u32 dir_crd_req_active_valid : 1;
+ u32 dir_crd_req_active_check : 1;
+ u32 dir_crd_req_active_busy : 1;
+ u32 rsvd1 : 1;
+ u32 ldb_crd_req_active_valid : 1;
+ u32 ldb_crd_req_active_check : 1;
+ u32 ldb_crd_req_active_busy : 1;
+ u32 rsvd0 : 1;
+ u32 no_pp_credit_update : 1;
+ u32 crd_req_state : 23;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_CQ_DEPTH(x) \
+ (0xa0000320 + (x) * 0x1000)
+#define DLB_CHP_LDB_CQ_DEPTH_RST 0x0
+union dlb_chp_ldb_cq_depth {
+ struct {
+ u32 depth : 11;
+ u32 reserved : 2;
+ u32 rsvd0 : 19;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_CQ_WPTR(x) \
+ (0xa000031c + (x) * 0x1000)
+#define DLB_CHP_LDB_CQ_WPTR_RST 0x0
+union dlb_chp_ldb_cq_wptr {
+ struct {
+ u32 write_pointer : 10;
+ u32 rsvd0 : 22;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_LDB_PUSH_PTR(x) \
+ (0xa0000318 + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_LDB_PUSH_PTR_RST 0x0
+union dlb_chp_ldb_pp_ldb_push_ptr {
+ struct {
+ u32 push_pointer : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_DIR_PUSH_PTR(x) \
+ (0xa0000314 + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_DIR_PUSH_PTR_RST 0x0
+union dlb_chp_ldb_pp_dir_push_ptr {
+ struct {
+ u32 push_pointer : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_HIST_LIST_POP_PTR(x) \
+ (0xa000030c + (x) * 0x1000)
+#define DLB_CHP_HIST_LIST_POP_PTR_RST 0x0
+union dlb_chp_hist_list_pop_ptr {
+ struct {
+ u32 pop_ptr : 13;
+ u32 generation : 1;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_HIST_LIST_PUSH_PTR(x) \
+ (0xa0000308 + (x) * 0x1000)
+#define DLB_CHP_HIST_LIST_PUSH_PTR_RST 0x0
+union dlb_chp_hist_list_push_ptr {
+ struct {
+ u32 push_ptr : 13;
+ u32 generation : 1;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_STATE_RESET(x) \
+ (0xa0000304 + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_STATE_RESET_RST 0x0
+union dlb_chp_ldb_pp_state_reset {
+ struct {
+ u32 rsvd1 : 7;
+ u32 dir_type : 1;
+ u32 rsvd0 : 23;
+ u32 reset_pp_state : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_PP_CRD_REQ_STATE(x) \
+ (0xa0000300 + (x) * 0x1000)
+#define DLB_CHP_LDB_PP_CRD_REQ_STATE_RST 0x0
+union dlb_chp_ldb_pp_crd_req_state {
+ struct {
+ u32 dir_crd_req_active_valid : 1;
+ u32 dir_crd_req_active_check : 1;
+ u32 dir_crd_req_active_busy : 1;
+ u32 rsvd1 : 1;
+ u32 ldb_crd_req_active_valid : 1;
+ u32 ldb_crd_req_active_check : 1;
+ u32 ldb_crd_req_active_busy : 1;
+ u32 rsvd0 : 1;
+ u32 no_pp_credit_update : 1;
+ u32 crd_req_state : 23;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_ORD_QID_SN(x) \
+ (0xa0000408 + (x) * 0x1000)
+#define DLB_CHP_ORD_QID_SN_RST 0x0
+union dlb_chp_ord_qid_sn {
+ struct {
+ u32 sn : 12;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_ORD_QID_SN_MAP(x) \
+ (0xa0000404 + (x) * 0x1000)
+#define DLB_CHP_ORD_QID_SN_MAP_RST 0x0
+union dlb_chp_ord_qid_sn_map {
+ struct {
+ u32 mode : 3;
+ u32 slot : 5;
+ u32 grp : 2;
+ u32 rsvd0 : 22;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_POOL_CRD_CNT(x) \
+ (0xa000050c + (x) * 0x1000)
+#define DLB_CHP_LDB_POOL_CRD_CNT_RST 0x0
+union dlb_chp_ldb_pool_crd_cnt {
+ struct {
+ u32 count : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_QED_FL_BASE(x) \
+ (0xa0000508 + (x) * 0x1000)
+#define DLB_CHP_QED_FL_BASE_RST 0x0
+union dlb_chp_qed_fl_base {
+ struct {
+ u32 base : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_QED_FL_LIM(x) \
+ (0xa0000504 + (x) * 0x1000)
+#define DLB_CHP_QED_FL_LIM_RST 0x8000
+union dlb_chp_qed_fl_lim {
+ struct {
+ u32 limit : 14;
+ u32 rsvd1 : 1;
+ u32 freelist_disable : 1;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_POOL_CRD_LIM(x) \
+ (0xa0000500 + (x) * 0x1000)
+#define DLB_CHP_LDB_POOL_CRD_LIM_RST 0x0
+union dlb_chp_ldb_pool_crd_lim {
+ struct {
+ u32 limit : 16;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_QED_FL_POP_PTR(x) \
+ (0xa0000604 + (x) * 0x1000)
+#define DLB_CHP_QED_FL_POP_PTR_RST 0x0
+union dlb_chp_qed_fl_pop_ptr {
+ struct {
+ u32 pop_ptr : 14;
+ u32 reserved0 : 1;
+ u32 generation : 1;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_QED_FL_PUSH_PTR(x) \
+ (0xa0000600 + (x) * 0x1000)
+#define DLB_CHP_QED_FL_PUSH_PTR_RST 0x0
+union dlb_chp_qed_fl_push_ptr {
+ struct {
+ u32 push_ptr : 14;
+ u32 reserved0 : 1;
+ u32 generation : 1;
+ u32 rsvd0 : 16;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_POOL_CRD_CNT(x) \
+ (0xa000070c + (x) * 0x1000)
+#define DLB_CHP_DIR_POOL_CRD_CNT_RST 0x0
+union dlb_chp_dir_pool_crd_cnt {
+ struct {
+ u32 count : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DQED_FL_BASE(x) \
+ (0xa0000708 + (x) * 0x1000)
+#define DLB_CHP_DQED_FL_BASE_RST 0x0
+union dlb_chp_dqed_fl_base {
+ struct {
+ u32 base : 12;
+ u32 rsvd0 : 20;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DQED_FL_LIM(x) \
+ (0xa0000704 + (x) * 0x1000)
+#define DLB_CHP_DQED_FL_LIM_RST 0x2000
+union dlb_chp_dqed_fl_lim {
+ struct {
+ u32 limit : 12;
+ u32 rsvd1 : 1;
+ u32 freelist_disable : 1;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_POOL_CRD_LIM(x) \
+ (0xa0000700 + (x) * 0x1000)
+#define DLB_CHP_DIR_POOL_CRD_LIM_RST 0x0
+union dlb_chp_dir_pool_crd_lim {
+ struct {
+ u32 limit : 14;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DQED_FL_POP_PTR(x) \
+ (0xa0000804 + (x) * 0x1000)
+#define DLB_CHP_DQED_FL_POP_PTR_RST 0x0
+union dlb_chp_dqed_fl_pop_ptr {
+ struct {
+ u32 pop_ptr : 12;
+ u32 reserved0 : 1;
+ u32 generation : 1;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DQED_FL_PUSH_PTR(x) \
+ (0xa0000800 + (x) * 0x1000)
+#define DLB_CHP_DQED_FL_PUSH_PTR_RST 0x0
+union dlb_chp_dqed_fl_push_ptr {
+ struct {
+ u32 push_ptr : 12;
+ u32 reserved0 : 1;
+ u32 generation : 1;
+ u32 rsvd0 : 18;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_CTRL_DIAG_02 0xa8000154
+#define DLB_CHP_CTRL_DIAG_02_RST 0x0
+union dlb_chp_ctrl_diag_02 {
+ struct {
+ u32 control : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_CFG_CHP_CSR_CTRL 0xa8000130
+#define DLB_CHP_CFG_CHP_CSR_CTRL_RST 0xc0003fff
+#define DLB_CHP_CFG_EXCESS_TOKENS_SHIFT 12
+union dlb_chp_cfg_chp_csr_ctrl {
+ struct {
+ u32 int_inf_alarm_enable_0 : 1;
+ u32 int_inf_alarm_enable_1 : 1;
+ u32 int_inf_alarm_enable_2 : 1;
+ u32 int_inf_alarm_enable_3 : 1;
+ u32 int_inf_alarm_enable_4 : 1;
+ u32 int_inf_alarm_enable_5 : 1;
+ u32 int_inf_alarm_enable_6 : 1;
+ u32 int_inf_alarm_enable_7 : 1;
+ u32 int_inf_alarm_enable_8 : 1;
+ u32 int_inf_alarm_enable_9 : 1;
+ u32 int_inf_alarm_enable_10 : 1;
+ u32 int_inf_alarm_enable_11 : 1;
+ u32 int_inf_alarm_enable_12 : 1;
+ u32 int_cor_alarm_enable : 1;
+ u32 csr_control_spare : 14;
+ u32 cfg_vasr_dis : 1;
+ u32 counter_clear : 1;
+ u32 blk_cor_report : 1;
+ u32 blk_cor_synd : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_CQ_INTR_ARMED1 0xa8000068
+#define DLB_CHP_LDB_CQ_INTR_ARMED1_RST 0x0
+union dlb_chp_ldb_cq_intr_armed1 {
+ struct {
+ u32 armed : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_LDB_CQ_INTR_ARMED0 0xa8000064
+#define DLB_CHP_LDB_CQ_INTR_ARMED0_RST 0x0
+union dlb_chp_ldb_cq_intr_armed0 {
+ struct {
+ u32 armed : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_INTR_ARMED3 0xa8000024
+#define DLB_CHP_DIR_CQ_INTR_ARMED3_RST 0x0
+union dlb_chp_dir_cq_intr_armed3 {
+ struct {
+ u32 armed : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_INTR_ARMED2 0xa8000020
+#define DLB_CHP_DIR_CQ_INTR_ARMED2_RST 0x0
+union dlb_chp_dir_cq_intr_armed2 {
+ struct {
+ u32 armed : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_INTR_ARMED1 0xa800001c
+#define DLB_CHP_DIR_CQ_INTR_ARMED1_RST 0x0
+union dlb_chp_dir_cq_intr_armed1 {
+ struct {
+ u32 armed : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_CHP_DIR_CQ_INTR_ARMED0 0xa8000018
+#define DLB_CHP_DIR_CQ_INTR_ARMED0_RST 0x0
+union dlb_chp_dir_cq_intr_armed0 {
+ struct {
+ u32 armed : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_CFG_MSTR_DIAG_RESET_STS 0xb8000004
+#define DLB_CFG_MSTR_DIAG_RESET_STS_RST 0x1ff
+union dlb_cfg_mstr_diag_reset_sts {
+ struct {
+ u32 chp_pf_reset_done : 1;
+ u32 rop_pf_reset_done : 1;
+ u32 lsp_pf_reset_done : 1;
+ u32 nalb_pf_reset_done : 1;
+ u32 ap_pf_reset_done : 1;
+ u32 dp_pf_reset_done : 1;
+ u32 qed_pf_reset_done : 1;
+ u32 dqed_pf_reset_done : 1;
+ u32 aqed_pf_reset_done : 1;
+ u32 rsvd1 : 6;
+ u32 pf_reset_active : 1;
+ u32 chp_vf_reset_done : 1;
+ u32 rop_vf_reset_done : 1;
+ u32 lsp_vf_reset_done : 1;
+ u32 nalb_vf_reset_done : 1;
+ u32 ap_vf_reset_done : 1;
+ u32 dp_vf_reset_done : 1;
+ u32 qed_vf_reset_done : 1;
+ u32 dqed_vf_reset_done : 1;
+ u32 aqed_vf_reset_done : 1;
+ u32 rsvd0 : 6;
+ u32 vf_reset_active : 1;
+ } field;
+ u32 val;
+};
+
+#define DLB_CFG_MSTR_BCAST_RESET_VF_START 0xc8100000
+#define DLB_CFG_MSTR_BCAST_RESET_VF_START_RST 0x0
+/* HW Reset Types */
+#define VF_RST_TYPE_CQ_LDB 0
+#define VF_RST_TYPE_QID_LDB 1
+#define VF_RST_TYPE_POOL_LDB 2
+#define VF_RST_TYPE_CQ_DIR 8
+#define VF_RST_TYPE_QID_DIR 9
+#define VF_RST_TYPE_POOL_DIR 10
+union dlb_cfg_mstr_bcast_reset_vf_start {
+ struct {
+ u32 vf_reset_start : 1;
+ u32 reserved : 3;
+ u32 vf_reset_type : 4;
+ u32 vf_reset_id : 24;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_VF_VF2PF_MAILBOX_BYTES 256
+#define DLB_FUNC_VF_VF2PF_MAILBOX(x) \
+ (0x1000 + (x) * 0x4)
+#define DLB_FUNC_VF_VF2PF_MAILBOX_RST 0x0
+union dlb_func_vf_vf2pf_mailbox {
+ struct {
+ u32 msg : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_VF_VF2PF_MAILBOX_ISR 0x1f00
+#define DLB_FUNC_VF_VF2PF_MAILBOX_ISR_RST 0x0
+union dlb_func_vf_vf2pf_mailbox_isr {
+ struct {
+ u32 isr : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_VF_PF2VF_MAILBOX_BYTES 64
+#define DLB_FUNC_VF_PF2VF_MAILBOX(x) \
+ (0x2000 + (x) * 0x4)
+#define DLB_FUNC_VF_PF2VF_MAILBOX_RST 0x0
+union dlb_func_vf_pf2vf_mailbox {
+ struct {
+ u32 msg : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_VF_PF2VF_MAILBOX_ISR 0x2f00
+#define DLB_FUNC_VF_PF2VF_MAILBOX_ISR_RST 0x0
+union dlb_func_vf_pf2vf_mailbox_isr {
+ struct {
+ u32 pf_isr : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_VF_VF_MSI_ISR_PEND 0x2f10
+#define DLB_FUNC_VF_VF_MSI_ISR_PEND_RST 0x0
+union dlb_func_vf_vf_msi_isr_pend {
+ struct {
+ u32 isr_pend : 32;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_VF_VF_RESET_IN_PROGRESS 0x3000
+#define DLB_FUNC_VF_VF_RESET_IN_PROGRESS_RST 0x1
+union dlb_func_vf_vf_reset_in_progress {
+ struct {
+ u32 reset_in_progress : 1;
+ u32 rsvd0 : 31;
+ } field;
+ u32 val;
+};
+
+#define DLB_FUNC_VF_VF_MSI_ISR 0x4000
+#define DLB_FUNC_VF_VF_MSI_ISR_RST 0x0
+union dlb_func_vf_vf_msi_isr {
+ struct {
+ u32 vf_msi_isr : 32;
+ } field;
+ u32 val;
+};
+
+#endif /* __DLB_REGS_H */
diff --git a/drivers/event/dlb/pf/base/dlb_resource.c b/drivers/event/dlb/pf/base/dlb_resource.c
new file mode 100644
index 0000000..51265b9
--- /dev/null
+++ b/drivers/event/dlb/pf/base/dlb_resource.c
@@ -0,0 +1,9722 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#include "dlb_hw_types.h"
+#include "dlb_user.h"
+#include "dlb_resource.h"
+#include "dlb_osdep.h"
+#include "dlb_osdep_bitmap.h"
+#include "dlb_osdep_types.h"
+#include "dlb_regs.h"
+#include "dlb_mbox.h"
+
+#define DLB_DOM_LIST_HEAD(head, type) \
+ DLB_LIST_HEAD((head), type, domain_list)
+
+#define DLB_FUNC_LIST_HEAD(head, type) \
+ DLB_LIST_HEAD((head), type, func_list)
+
+#define DLB_DOM_LIST_FOR(head, ptr, iter) \
+ DLB_LIST_FOR_EACH(head, ptr, domain_list, iter)
+
+#define DLB_FUNC_LIST_FOR(head, ptr, iter) \
+ DLB_LIST_FOR_EACH(head, ptr, func_list, iter)
+
+#define DLB_DOM_LIST_FOR_SAFE(head, ptr, ptr_tmp, it, it_tmp) \
+ DLB_LIST_FOR_EACH_SAFE((head), ptr, ptr_tmp, domain_list, it, it_tmp)
+
+#define DLB_FUNC_LIST_FOR_SAFE(head, ptr, ptr_tmp, it, it_tmp) \
+ DLB_LIST_FOR_EACH_SAFE((head), ptr, ptr_tmp, func_list, it, it_tmp)
+
+/* The PF driver cannot assume that a register write will affect subsequent HCW
+ * writes. To ensure a write completes, the driver must read back a CSR. This
+ * function only need be called for configuration that can occur after the
+ * domain has started; prior to starting, applications can't send HCWs.
+ */
+static inline void dlb_flush_csr(struct dlb_hw *hw)
+{
+ DLB_CSR_RD(hw, DLB_SYS_TOTAL_VAS);
+}
+
+static void dlb_init_fn_rsrc_lists(struct dlb_function_resources *rsrc)
+{
+ dlb_list_init_head(&rsrc->avail_domains);
+ dlb_list_init_head(&rsrc->used_domains);
+ dlb_list_init_head(&rsrc->avail_ldb_queues);
+ dlb_list_init_head(&rsrc->avail_ldb_ports);
+ dlb_list_init_head(&rsrc->avail_dir_pq_pairs);
+ dlb_list_init_head(&rsrc->avail_ldb_credit_pools);
+ dlb_list_init_head(&rsrc->avail_dir_credit_pools);
+}
+
+static void dlb_init_domain_rsrc_lists(struct dlb_domain *domain)
+{
+ dlb_list_init_head(&domain->used_ldb_queues);
+ dlb_list_init_head(&domain->used_ldb_ports);
+ dlb_list_init_head(&domain->used_dir_pq_pairs);
+ dlb_list_init_head(&domain->used_ldb_credit_pools);
+ dlb_list_init_head(&domain->used_dir_credit_pools);
+ dlb_list_init_head(&domain->avail_ldb_queues);
+ dlb_list_init_head(&domain->avail_ldb_ports);
+ dlb_list_init_head(&domain->avail_dir_pq_pairs);
+ dlb_list_init_head(&domain->avail_ldb_credit_pools);
+ dlb_list_init_head(&domain->avail_dir_credit_pools);
+}
+
+int dlb_resource_init(struct dlb_hw *hw)
+{
+ struct dlb_list_entry *list;
+ unsigned int i;
+
+ /* For optimal load-balancing, ports that map to one or more QIDs in
+ * common should not be in numerical sequence. This is application
+ * dependent, but the driver interleaves port IDs as much as possible
+ * to reduce the likelihood of this. This initial allocation maximizes
+ * the average distance between an ID and its immediate neighbors (i.e.
+ * the distance from 1 to 0 and to 2, the distance from 2 to 1 and to
+ * 3, etc.).
+ */
+ u32 init_ldb_port_allocation[DLB_MAX_NUM_LDB_PORTS] = {
+ 0, 31, 62, 29, 60, 27, 58, 25, 56, 23, 54, 21, 52, 19, 50, 17,
+ 48, 15, 46, 13, 44, 11, 42, 9, 40, 7, 38, 5, 36, 3, 34, 1,
+ 32, 63, 30, 61, 28, 59, 26, 57, 24, 55, 22, 53, 20, 51, 18, 49,
+ 16, 47, 14, 45, 12, 43, 10, 41, 8, 39, 6, 37, 4, 35, 2, 33
+ };
+
+ /* Zero-out resource tracking data structures */
+ memset(&hw->rsrcs, 0, sizeof(hw->rsrcs));
+ memset(&hw->pf, 0, sizeof(hw->pf));
+
+ dlb_init_fn_rsrc_lists(&hw->pf);
+
+ for (i = 0; i < DLB_MAX_NUM_VFS; i++) {
+ memset(&hw->vf[i], 0, sizeof(hw->vf[i]));
+ dlb_init_fn_rsrc_lists(&hw->vf[i]);
+ }
+
+ for (i = 0; i < DLB_MAX_NUM_DOMAINS; i++) {
+ memset(&hw->domains[i], 0, sizeof(hw->domains[i]));
+ dlb_init_domain_rsrc_lists(&hw->domains[i]);
+ hw->domains[i].parent_func = &hw->pf;
+ }
+
+ /* Give all resources to the PF driver */
+ hw->pf.num_avail_domains = DLB_MAX_NUM_DOMAINS;
+ for (i = 0; i < hw->pf.num_avail_domains; i++) {
+ list = &hw->domains[i].func_list;
+
+ dlb_list_add(&hw->pf.avail_domains, list);
+ }
+
+ hw->pf.num_avail_ldb_queues = DLB_MAX_NUM_LDB_QUEUES;
+ for (i = 0; i < hw->pf.num_avail_ldb_queues; i++) {
+ list = &hw->rsrcs.ldb_queues[i].func_list;
+
+ dlb_list_add(&hw->pf.avail_ldb_queues, list);
+ }
+
+ hw->pf.num_avail_ldb_ports = DLB_MAX_NUM_LDB_PORTS;
+ for (i = 0; i < hw->pf.num_avail_ldb_ports; i++) {
+ struct dlb_ldb_port *port;
+
+ port = &hw->rsrcs.ldb_ports[init_ldb_port_allocation[i]];
+
+ dlb_list_add(&hw->pf.avail_ldb_ports, &port->func_list);
+ }
+
+ hw->pf.num_avail_dir_pq_pairs = DLB_MAX_NUM_DIR_PORTS;
+ for (i = 0; i < hw->pf.num_avail_dir_pq_pairs; i++) {
+ list = &hw->rsrcs.dir_pq_pairs[i].func_list;
+
+ dlb_list_add(&hw->pf.avail_dir_pq_pairs, list);
+ }
+
+ hw->pf.num_avail_ldb_credit_pools = DLB_MAX_NUM_LDB_CREDIT_POOLS;
+ for (i = 0; i < hw->pf.num_avail_ldb_credit_pools; i++) {
+ list = &hw->rsrcs.ldb_credit_pools[i].func_list;
+
+ dlb_list_add(&hw->pf.avail_ldb_credit_pools, list);
+ }
+
+ hw->pf.num_avail_dir_credit_pools = DLB_MAX_NUM_DIR_CREDIT_POOLS;
+ for (i = 0; i < hw->pf.num_avail_dir_credit_pools; i++) {
+ list = &hw->rsrcs.dir_credit_pools[i].func_list;
+
+ dlb_list_add(&hw->pf.avail_dir_credit_pools, list);
+ }
+
+ /* There are 5120 history list entries, which allows us to overprovision
+ * the inflight limit (4096) by 1k.
+ */
+ if (dlb_bitmap_alloc(hw,
+ &hw->pf.avail_hist_list_entries,
+ DLB_MAX_NUM_HIST_LIST_ENTRIES))
+ return -1;
+
+ if (dlb_bitmap_fill(hw->pf.avail_hist_list_entries))
+ return -1;
+
+ if (dlb_bitmap_alloc(hw,
+ &hw->pf.avail_qed_freelist_entries,
+ DLB_MAX_NUM_LDB_CREDITS))
+ return -1;
+
+ if (dlb_bitmap_fill(hw->pf.avail_qed_freelist_entries))
+ return -1;
+
+ if (dlb_bitmap_alloc(hw,
+ &hw->pf.avail_dqed_freelist_entries,
+ DLB_MAX_NUM_DIR_CREDITS))
+ return -1;
+
+ if (dlb_bitmap_fill(hw->pf.avail_dqed_freelist_entries))
+ return -1;
+
+ if (dlb_bitmap_alloc(hw,
+ &hw->pf.avail_aqed_freelist_entries,
+ DLB_MAX_NUM_AQOS_ENTRIES))
+ return -1;
+
+ if (dlb_bitmap_fill(hw->pf.avail_aqed_freelist_entries))
+ return -1;
+
+ for (i = 0; i < DLB_MAX_NUM_VFS; i++) {
+ if (dlb_bitmap_alloc(hw,
+ &hw->vf[i].avail_hist_list_entries,
+ DLB_MAX_NUM_HIST_LIST_ENTRIES))
+ return -1;
+ if (dlb_bitmap_alloc(hw,
+ &hw->vf[i].avail_qed_freelist_entries,
+ DLB_MAX_NUM_LDB_CREDITS))
+ return -1;
+ if (dlb_bitmap_alloc(hw,
+ &hw->vf[i].avail_dqed_freelist_entries,
+ DLB_MAX_NUM_DIR_CREDITS))
+ return -1;
+ if (dlb_bitmap_alloc(hw,
+ &hw->vf[i].avail_aqed_freelist_entries,
+ DLB_MAX_NUM_AQOS_ENTRIES))
+ return -1;
+
+ if (dlb_bitmap_zero(hw->vf[i].avail_hist_list_entries))
+ return -1;
+
+ if (dlb_bitmap_zero(hw->vf[i].avail_qed_freelist_entries))
+ return -1;
+
+ if (dlb_bitmap_zero(hw->vf[i].avail_dqed_freelist_entries))
+ return -1;
+
+ if (dlb_bitmap_zero(hw->vf[i].avail_aqed_freelist_entries))
+ return -1;
+ }
+
+ /* Initialize the hardware resource IDs */
+ for (i = 0; i < DLB_MAX_NUM_DOMAINS; i++) {
+ hw->domains[i].id.phys_id = i;
+ hw->domains[i].id.vf_owned = false;
+ }
+
+ for (i = 0; i < DLB_MAX_NUM_LDB_QUEUES; i++) {
+ hw->rsrcs.ldb_queues[i].id.phys_id = i;
+ hw->rsrcs.ldb_queues[i].id.vf_owned = false;
+ }
+
+ for (i = 0; i < DLB_MAX_NUM_LDB_PORTS; i++) {
+ hw->rsrcs.ldb_ports[i].id.phys_id = i;
+ hw->rsrcs.ldb_ports[i].id.vf_owned = false;
+ }
+
+ for (i = 0; i < DLB_MAX_NUM_DIR_PORTS; i++) {
+ hw->rsrcs.dir_pq_pairs[i].id.phys_id = i;
+ hw->rsrcs.dir_pq_pairs[i].id.vf_owned = false;
+ }
+
+ for (i = 0; i < DLB_MAX_NUM_LDB_CREDIT_POOLS; i++) {
+ hw->rsrcs.ldb_credit_pools[i].id.phys_id = i;
+ hw->rsrcs.ldb_credit_pools[i].id.vf_owned = false;
+ }
+
+ for (i = 0; i < DLB_MAX_NUM_DIR_CREDIT_POOLS; i++) {
+ hw->rsrcs.dir_credit_pools[i].id.phys_id = i;
+ hw->rsrcs.dir_credit_pools[i].id.vf_owned = false;
+ }
+
+ for (i = 0; i < DLB_MAX_NUM_SEQUENCE_NUMBER_GROUPS; i++) {
+ hw->rsrcs.sn_groups[i].id = i;
+ /* Default mode (0) is 32 sequence numbers per queue */
+ hw->rsrcs.sn_groups[i].mode = 0;
+ hw->rsrcs.sn_groups[i].sequence_numbers_per_queue = 32;
+ hw->rsrcs.sn_groups[i].slot_use_bitmap = 0;
+ }
+
+ return 0;
+}
+
+void dlb_resource_free(struct dlb_hw *hw)
+{
+ int i;
+
+ dlb_bitmap_free(hw->pf.avail_hist_list_entries);
+
+ dlb_bitmap_free(hw->pf.avail_qed_freelist_entries);
+
+ dlb_bitmap_free(hw->pf.avail_dqed_freelist_entries);
+
+ dlb_bitmap_free(hw->pf.avail_aqed_freelist_entries);
+
+ for (i = 0; i < DLB_MAX_NUM_VFS; i++) {
+ dlb_bitmap_free(hw->vf[i].avail_hist_list_entries);
+ dlb_bitmap_free(hw->vf[i].avail_qed_freelist_entries);
+ dlb_bitmap_free(hw->vf[i].avail_dqed_freelist_entries);
+ dlb_bitmap_free(hw->vf[i].avail_aqed_freelist_entries);
+ }
+}
+
+static struct dlb_domain *dlb_get_domain_from_id(struct dlb_hw *hw,
+ u32 id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_function_resources *rsrcs;
+ struct dlb_domain *domain;
+
+ if (id >= DLB_MAX_NUM_DOMAINS)
+ return NULL;
+
+ if (!vf_request)
+ return &hw->domains[id];
+
+ rsrcs = &hw->vf[vf_id];
+
+ DLB_FUNC_LIST_FOR(rsrcs->used_domains, domain, iter)
+ if (domain->id.virt_id == id)
+ return domain;
+
+ return NULL;
+}
+
+static struct dlb_credit_pool *
+dlb_get_domain_ldb_pool(u32 id,
+ bool vf_request,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_credit_pool *pool;
+
+ if (id >= DLB_MAX_NUM_LDB_CREDIT_POOLS)
+ return NULL;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_credit_pools, pool, iter)
+ if ((!vf_request && pool->id.phys_id == id) ||
+ (vf_request && pool->id.virt_id == id))
+ return pool;
+
+ return NULL;
+}
+
+static struct dlb_credit_pool *
+dlb_get_domain_dir_pool(u32 id,
+ bool vf_request,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_credit_pool *pool;
+
+ if (id >= DLB_MAX_NUM_DIR_CREDIT_POOLS)
+ return NULL;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_credit_pools, pool, iter)
+ if ((!vf_request && pool->id.phys_id == id) ||
+ (vf_request && pool->id.virt_id == id))
+ return pool;
+
+ return NULL;
+}
+
+static struct dlb_ldb_port *dlb_get_ldb_port_from_id(struct dlb_hw *hw,
+ u32 id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_list_entry *iter1 __attribute__((unused));
+ struct dlb_list_entry *iter2 __attribute__((unused));
+ struct dlb_function_resources *rsrcs;
+ struct dlb_ldb_port *port;
+ struct dlb_domain *domain;
+
+ if (id >= DLB_MAX_NUM_LDB_PORTS)
+ return NULL;
+
+ rsrcs = (vf_request) ? &hw->vf[vf_id] : &hw->pf;
+
+ if (!vf_request)
+ return &hw->rsrcs.ldb_ports[id];
+
+ DLB_FUNC_LIST_FOR(rsrcs->used_domains, domain, iter1) {
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter2)
+ if (port->id.virt_id == id)
+ return port;
+ }
+
+ DLB_FUNC_LIST_FOR(rsrcs->avail_ldb_ports, port, iter1)
+ if (port->id.virt_id == id)
+ return port;
+
+ return NULL;
+}
+
+static struct dlb_ldb_port *
+dlb_get_domain_used_ldb_port(u32 id,
+ bool vf_request,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+
+ if (id >= DLB_MAX_NUM_LDB_PORTS)
+ return NULL;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter)
+ if ((!vf_request && port->id.phys_id == id) ||
+ (vf_request && port->id.virt_id == id))
+ return port;
+
+ DLB_DOM_LIST_FOR(domain->avail_ldb_ports, port, iter)
+ if ((!vf_request && port->id.phys_id == id) ||
+ (vf_request && port->id.virt_id == id))
+ return port;
+
+ return NULL;
+}
+
+static struct dlb_ldb_port *dlb_get_domain_ldb_port(u32 id,
+ bool vf_request,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+
+ if (id >= DLB_MAX_NUM_LDB_PORTS)
+ return NULL;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter)
+ if ((!vf_request && port->id.phys_id == id) ||
+ (vf_request && port->id.virt_id == id))
+ return port;
+
+ DLB_DOM_LIST_FOR(domain->avail_ldb_ports, port, iter)
+ if ((!vf_request && port->id.phys_id == id) ||
+ (vf_request && port->id.virt_id == id))
+ return port;
+
+ return NULL;
+}
+
+static struct dlb_dir_pq_pair *dlb_get_dir_pq_from_id(struct dlb_hw *hw,
+ u32 id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_list_entry *iter1 __attribute__((unused));
+ struct dlb_list_entry *iter2 __attribute__((unused));
+ struct dlb_function_resources *rsrcs;
+ struct dlb_dir_pq_pair *port;
+ struct dlb_domain *domain;
+
+ if (id >= DLB_MAX_NUM_DIR_PORTS)
+ return NULL;
+
+ rsrcs = (vf_request) ? &hw->vf[vf_id] : &hw->pf;
+
+ if (!vf_request)
+ return &hw->rsrcs.dir_pq_pairs[id];
+
+ DLB_FUNC_LIST_FOR(rsrcs->used_domains, domain, iter1) {
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter2)
+ if (port->id.virt_id == id)
+ return port;
+ }
+
+ DLB_FUNC_LIST_FOR(rsrcs->avail_dir_pq_pairs, port, iter1)
+ if (port->id.virt_id == id)
+ return port;
+
+ return NULL;
+}
+
+static struct dlb_dir_pq_pair *
+dlb_get_domain_used_dir_pq(u32 id,
+ bool vf_request,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *port;
+
+ if (id >= DLB_MAX_NUM_DIR_PORTS)
+ return NULL;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter)
+ if ((!vf_request && port->id.phys_id == id) ||
+ (vf_request && port->id.virt_id == id))
+ return port;
+
+ return NULL;
+}
+
+static struct dlb_dir_pq_pair *dlb_get_domain_dir_pq(u32 id,
+ bool vf_request,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *port;
+
+ if (id >= DLB_MAX_NUM_DIR_PORTS)
+ return NULL;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter)
+ if ((!vf_request && port->id.phys_id == id) ||
+ (vf_request && port->id.virt_id == id))
+ return port;
+
+ DLB_DOM_LIST_FOR(domain->avail_dir_pq_pairs, port, iter)
+ if ((!vf_request && port->id.phys_id == id) ||
+ (vf_request && port->id.virt_id == id))
+ return port;
+
+ return NULL;
+}
+
+static struct dlb_ldb_queue *dlb_get_ldb_queue_from_id(struct dlb_hw *hw,
+ u32 id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_list_entry *iter1 __attribute__((unused));
+ struct dlb_list_entry *iter2 __attribute__((unused));
+ struct dlb_function_resources *rsrcs;
+ struct dlb_ldb_queue *queue;
+ struct dlb_domain *domain;
+
+ if (id >= DLB_MAX_NUM_LDB_QUEUES)
+ return NULL;
+
+ rsrcs = (vf_request) ? &hw->vf[vf_id] : &hw->pf;
+
+ if (!vf_request)
+ return &hw->rsrcs.ldb_queues[id];
+
+ DLB_FUNC_LIST_FOR(rsrcs->used_domains, domain, iter1) {
+ DLB_DOM_LIST_FOR(domain->used_ldb_queues, queue, iter2)
+ if (queue->id.virt_id == id)
+ return queue;
+ }
+
+ DLB_FUNC_LIST_FOR(rsrcs->avail_ldb_queues, queue, iter1)
+ if (queue->id.virt_id == id)
+ return queue;
+
+ return NULL;
+}
+
+static struct dlb_ldb_queue *dlb_get_domain_ldb_queue(u32 id,
+ bool vf_request,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_queue *queue;
+
+ if (id >= DLB_MAX_NUM_LDB_QUEUES)
+ return NULL;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_queues, queue, iter)
+ if ((!vf_request && queue->id.phys_id == id) ||
+ (vf_request && queue->id.virt_id == id))
+ return queue;
+
+ return NULL;
+}
+
+#define DLB_XFER_LL_RSRC(dst, src, num, type_t, name) ({ \
+ struct dlb_list_entry *it1 __attribute__((unused)); \
+ struct dlb_list_entry *it2 __attribute__((unused)); \
+ struct dlb_function_resources *_src = src; \
+ struct dlb_function_resources *_dst = dst; \
+ type_t *ptr, *tmp __attribute__((unused)); \
+ unsigned int i = 0; \
+ \
+ DLB_FUNC_LIST_FOR_SAFE(_src->avail_##name##s, ptr, tmp, it1, it2) { \
+ if (i++ == (num)) \
+ break; \
+ \
+ dlb_list_del(&_src->avail_##name##s, &ptr->func_list); \
+ dlb_list_add(&_dst->avail_##name##s, &ptr->func_list); \
+ _src->num_avail_##name##s--; \
+ _dst->num_avail_##name##s++; \
+ } \
+})
+
+#define DLB_VF_ID_CLEAR(head, type_t) ({ \
+ struct dlb_list_entry *iter __attribute__((unused)); \
+ type_t *var; \
+ \
+ DLB_FUNC_LIST_FOR(head, var, iter) \
+ var->id.vf_owned = false; \
+})
+
+int dlb_update_vf_sched_domains(struct dlb_hw *hw, u32 vf_id, u32 num)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_function_resources *src, *dst;
+ struct dlb_domain *domain;
+ unsigned int orig;
+ int ret;
+
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ src = &hw->pf;
+ dst = &hw->vf[vf_id];
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ orig = dst->num_avail_domains;
+
+ /* Detach the destination VF's current resources before checking if
+ * enough are available, and set their IDs accordingly.
+ */
+ DLB_VF_ID_CLEAR(dst->avail_domains, struct dlb_domain);
+
+ DLB_XFER_LL_RSRC(src, dst, orig, struct dlb_domain, domain);
+
+ /* Are there enough available resources to satisfy the request? */
+ if (num > src->num_avail_domains) {
+ num = orig;
+ ret = -EINVAL;
+ } else {
+ ret = 0;
+ }
+
+ DLB_XFER_LL_RSRC(dst, src, num, struct dlb_domain, domain);
+
+ /* Set the domains' VF backpointer */
+ DLB_FUNC_LIST_FOR(dst->avail_domains, domain, iter)
+ domain->parent_func = dst;
+
+ return ret;
+}
+
+int dlb_update_vf_ldb_queues(struct dlb_hw *hw, u32 vf_id, u32 num)
+{
+ struct dlb_function_resources *src, *dst;
+ unsigned int orig;
+ int ret;
+
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ src = &hw->pf;
+ dst = &hw->vf[vf_id];
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ orig = dst->num_avail_ldb_queues;
+
+ /* Detach the destination VF's current resources before checking if
+ * enough are available, and set their IDs accordingly.
+ */
+ DLB_VF_ID_CLEAR(dst->avail_ldb_queues, struct dlb_ldb_queue);
+
+ DLB_XFER_LL_RSRC(src, dst, orig, struct dlb_ldb_queue, ldb_queue);
+
+ /* Are there enough available resources to satisfy the request? */
+ if (num > src->num_avail_ldb_queues) {
+ num = orig;
+ ret = -EINVAL;
+ } else {
+ ret = 0;
+ }
+
+ DLB_XFER_LL_RSRC(dst, src, num, struct dlb_ldb_queue, ldb_queue);
+
+ return ret;
+}
+
+int dlb_update_vf_ldb_ports(struct dlb_hw *hw, u32 vf_id, u32 num)
+{
+ struct dlb_function_resources *src, *dst;
+ unsigned int orig;
+ int ret;
+
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ src = &hw->pf;
+ dst = &hw->vf[vf_id];
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ orig = dst->num_avail_ldb_ports;
+
+ /* Detach the destination VF's current resources before checking if
+ * enough are available, and set their IDs accordingly.
+ */
+ DLB_VF_ID_CLEAR(dst->avail_ldb_ports, struct dlb_ldb_port);
+
+ DLB_XFER_LL_RSRC(src, dst, orig, struct dlb_ldb_port, ldb_port);
+
+ /* Are there enough available resources to satisfy the request? */
+ if (num > src->num_avail_ldb_ports) {
+ num = orig;
+ ret = -EINVAL;
+ } else {
+ ret = 0;
+ }
+
+ DLB_XFER_LL_RSRC(dst, src, num, struct dlb_ldb_port, ldb_port);
+
+ return ret;
+}
+
+int dlb_update_vf_dir_ports(struct dlb_hw *hw, u32 vf_id, u32 num)
+{
+ struct dlb_function_resources *src, *dst;
+ unsigned int orig;
+ int ret;
+
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ src = &hw->pf;
+ dst = &hw->vf[vf_id];
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ orig = dst->num_avail_dir_pq_pairs;
+
+ /* Detach the destination VF's current resources before checking if
+ * enough are available, and set their IDs accordingly.
+ */
+ DLB_VF_ID_CLEAR(dst->avail_dir_pq_pairs, struct dlb_dir_pq_pair);
+
+ DLB_XFER_LL_RSRC(src, dst, orig, struct dlb_dir_pq_pair, dir_pq_pair);
+
+ /* Are there enough available resources to satisfy the request? */
+ if (num > src->num_avail_dir_pq_pairs) {
+ num = orig;
+ ret = -EINVAL;
+ } else {
+ ret = 0;
+ }
+
+ DLB_XFER_LL_RSRC(dst, src, num, struct dlb_dir_pq_pair, dir_pq_pair);
+
+ return ret;
+}
+
+int dlb_update_vf_ldb_credit_pools(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 num)
+{
+ struct dlb_function_resources *src, *dst;
+ unsigned int orig;
+ int ret;
+
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ src = &hw->pf;
+ dst = &hw->vf[vf_id];
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ orig = dst->num_avail_ldb_credit_pools;
+
+ /* Detach the destination VF's current resources before checking if
+ * enough are available, and set their IDs accordingly.
+ */
+ DLB_VF_ID_CLEAR(dst->avail_ldb_credit_pools, struct dlb_credit_pool);
+
+ DLB_XFER_LL_RSRC(src,
+ dst,
+ orig,
+ struct dlb_credit_pool,
+ ldb_credit_pool);
+
+ /* Are there enough available resources to satisfy the request? */
+ if (num > src->num_avail_ldb_credit_pools) {
+ num = orig;
+ ret = -EINVAL;
+ } else {
+ ret = 0;
+ }
+
+ DLB_XFER_LL_RSRC(dst,
+ src,
+ num,
+ struct dlb_credit_pool,
+ ldb_credit_pool);
+
+ return ret;
+}
+
+int dlb_update_vf_dir_credit_pools(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 num)
+{
+ struct dlb_function_resources *src, *dst;
+ unsigned int orig;
+ int ret;
+
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ src = &hw->pf;
+ dst = &hw->vf[vf_id];
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ orig = dst->num_avail_dir_credit_pools;
+
+ /* Detach the VF's current resources before checking if enough are
+ * available, and set their IDs accordingly.
+ */
+ DLB_VF_ID_CLEAR(dst->avail_dir_credit_pools, struct dlb_credit_pool);
+
+ DLB_XFER_LL_RSRC(src,
+ dst,
+ orig,
+ struct dlb_credit_pool,
+ dir_credit_pool);
+
+ /* Are there enough available resources to satisfy the request? */
+ if (num > src->num_avail_dir_credit_pools) {
+ num = orig;
+ ret = -EINVAL;
+ } else {
+ ret = 0;
+ }
+
+ DLB_XFER_LL_RSRC(dst,
+ src,
+ num,
+ struct dlb_credit_pool,
+ dir_credit_pool);
+
+ return ret;
+}
+
+static int dlb_transfer_bitmap_resources(struct dlb_bitmap *src,
+ struct dlb_bitmap *dst,
+ u32 num)
+{
+ int orig, ret, base;
+
+ /* Validate bitmaps before use */
+ if (dlb_bitmap_count(dst) < 0 || dlb_bitmap_count(src) < 0)
+ return -EINVAL;
+
+ /* Reassign the dest's bitmap entries to the source's before checking
+ * if a contiguous chunk of size 'num' is available. The reassignment
+ * may be necessary to create a sufficiently large contiguous chunk.
+ */
+ orig = dlb_bitmap_count(dst);
+
+ dlb_bitmap_or(src, src, dst);
+
+ dlb_bitmap_zero(dst);
+
+ /* Are there enough available resources to satisfy the request? */
+ base = dlb_bitmap_find_set_bit_range(src, num);
+
+ if (base == -ENOENT) {
+ num = orig;
+ base = dlb_bitmap_find_set_bit_range(src, num);
+ ret = -EINVAL;
+ } else {
+ ret = 0;
+ }
+
+ dlb_bitmap_set_range(dst, base, num);
+
+ dlb_bitmap_clear_range(src, base, num);
+
+ return ret;
+}
+
+int dlb_update_vf_ldb_credits(struct dlb_hw *hw, u32 vf_id, u32 num)
+{
+ struct dlb_function_resources *src, *dst;
+
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ src = &hw->pf;
+ dst = &hw->vf[vf_id];
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ return dlb_transfer_bitmap_resources(src->avail_qed_freelist_entries,
+ dst->avail_qed_freelist_entries,
+ num);
+}
+
+int dlb_update_vf_dir_credits(struct dlb_hw *hw, u32 vf_id, u32 num)
+{
+ struct dlb_function_resources *src, *dst;
+
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ src = &hw->pf;
+ dst = &hw->vf[vf_id];
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ return dlb_transfer_bitmap_resources(src->avail_dqed_freelist_entries,
+ dst->avail_dqed_freelist_entries,
+ num);
+}
+
+int dlb_update_vf_hist_list_entries(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 num)
+{
+ struct dlb_function_resources *src, *dst;
+
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ src = &hw->pf;
+ dst = &hw->vf[vf_id];
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ return dlb_transfer_bitmap_resources(src->avail_hist_list_entries,
+ dst->avail_hist_list_entries,
+ num);
+}
+
+int dlb_update_vf_atomic_inflights(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 num)
+{
+ struct dlb_function_resources *src, *dst;
+
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ src = &hw->pf;
+ dst = &hw->vf[vf_id];
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ return dlb_transfer_bitmap_resources(src->avail_aqed_freelist_entries,
+ dst->avail_aqed_freelist_entries,
+ num);
+}
+
+static int dlb_attach_ldb_queues(struct dlb_hw *hw,
+ struct dlb_function_resources *rsrcs,
+ struct dlb_domain *domain,
+ u32 num_queues,
+ struct dlb_cmd_response *resp)
+{
+ unsigned int i, j;
+
+ if (rsrcs->num_avail_ldb_queues < num_queues) {
+ resp->status = DLB_ST_LDB_QUEUES_UNAVAILABLE;
+ return -1;
+ }
+
+ for (i = 0; i < num_queues; i++) {
+ struct dlb_ldb_queue *queue;
+
+ queue = DLB_FUNC_LIST_HEAD(rsrcs->avail_ldb_queues,
+ typeof(*queue));
+ if (!queue) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: domain validation failed\n",
+ __func__);
+ goto cleanup;
+ }
+
+ dlb_list_del(&rsrcs->avail_ldb_queues, &queue->func_list);
+
+ queue->domain_id = domain->id;
+ queue->owned = true;
+
+ dlb_list_add(&domain->avail_ldb_queues, &queue->domain_list);
+ }
+
+ rsrcs->num_avail_ldb_queues -= num_queues;
+
+ return 0;
+
+cleanup:
+
+ /* Return the assigned queues */
+ for (j = 0; j < i; j++) {
+ struct dlb_ldb_queue *queue;
+
+ queue = DLB_FUNC_LIST_HEAD(domain->avail_ldb_queues,
+ typeof(*queue));
+ /* Unrecoverable internal error */
+ if (!queue)
+ break;
+
+ queue->owned = false;
+
+ dlb_list_del(&domain->avail_ldb_queues, &queue->domain_list);
+
+ dlb_list_add(&rsrcs->avail_ldb_queues, &queue->func_list);
+ }
+
+ return -EFAULT;
+}
+
+static struct dlb_ldb_port *
+dlb_get_next_ldb_port(struct dlb_hw *hw,
+ struct dlb_function_resources *rsrcs,
+ u32 domain_id)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+
+ /* To reduce the odds of consecutive load-balanced ports mapping to the
+ * same queue(s), the driver attempts to allocate ports whose neighbors
+ * are owned by a different domain.
+ */
+ DLB_FUNC_LIST_FOR(rsrcs->avail_ldb_ports, port, iter) {
+ u32 next, prev;
+ u32 phys_id;
+
+ phys_id = port->id.phys_id;
+ next = phys_id + 1;
+ prev = phys_id - 1;
+
+ if (phys_id == DLB_MAX_NUM_LDB_PORTS - 1)
+ next = 0;
+ if (phys_id == 0)
+ prev = DLB_MAX_NUM_LDB_PORTS - 1;
+
+ if (!hw->rsrcs.ldb_ports[next].owned ||
+ hw->rsrcs.ldb_ports[next].domain_id.phys_id == domain_id)
+ continue;
+
+ if (!hw->rsrcs.ldb_ports[prev].owned ||
+ hw->rsrcs.ldb_ports[prev].domain_id.phys_id == domain_id)
+ continue;
+
+ return port;
+ }
+
+ /* Failing that, the driver looks for a port with one neighbor owned by
+ * a different domain and the other unallocated.
+ */
+ DLB_FUNC_LIST_FOR(rsrcs->avail_ldb_ports, port, iter) {
+ u32 next, prev;
+ u32 phys_id;
+
+ phys_id = port->id.phys_id;
+ next = phys_id + 1;
+ prev = phys_id - 1;
+
+ if (phys_id == DLB_MAX_NUM_LDB_PORTS - 1)
+ next = 0;
+ if (phys_id == 0)
+ prev = DLB_MAX_NUM_LDB_PORTS - 1;
+
+ if (!hw->rsrcs.ldb_ports[prev].owned &&
+ hw->rsrcs.ldb_ports[next].owned &&
+ hw->rsrcs.ldb_ports[next].domain_id.phys_id != domain_id)
+ return port;
+
+ if (!hw->rsrcs.ldb_ports[next].owned &&
+ hw->rsrcs.ldb_ports[prev].owned &&
+ hw->rsrcs.ldb_ports[prev].domain_id.phys_id != domain_id)
+ return port;
+ }
+
+ /* Failing that, the driver looks for a port with both neighbors
+ * unallocated.
+ */
+ DLB_FUNC_LIST_FOR(rsrcs->avail_ldb_ports, port, iter) {
+ u32 next, prev;
+ u32 phys_id;
+
+ phys_id = port->id.phys_id;
+ next = phys_id + 1;
+ prev = phys_id - 1;
+
+ if (phys_id == DLB_MAX_NUM_LDB_PORTS - 1)
+ next = 0;
+ if (phys_id == 0)
+ prev = DLB_MAX_NUM_LDB_PORTS - 1;
+
+ if (!hw->rsrcs.ldb_ports[prev].owned &&
+ !hw->rsrcs.ldb_ports[next].owned)
+ return port;
+ }
+
+ /* If all else fails, the driver returns the next available port. */
+ return DLB_FUNC_LIST_HEAD(rsrcs->avail_ldb_ports, typeof(*port));
+}
+
+static int dlb_attach_ldb_ports(struct dlb_hw *hw,
+ struct dlb_function_resources *rsrcs,
+ struct dlb_domain *domain,
+ u32 num_ports,
+ struct dlb_cmd_response *resp)
+{
+ unsigned int i, j;
+
+ if (rsrcs->num_avail_ldb_ports < num_ports) {
+ resp->status = DLB_ST_LDB_PORTS_UNAVAILABLE;
+ return -1;
+ }
+
+ for (i = 0; i < num_ports; i++) {
+ struct dlb_ldb_port *port;
+
+ port = dlb_get_next_ldb_port(hw, rsrcs, domain->id.phys_id);
+
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: domain validation failed\n",
+ __func__);
+ goto cleanup;
+ }
+
+ dlb_list_del(&rsrcs->avail_ldb_ports, &port->func_list);
+
+ port->domain_id = domain->id;
+ port->owned = true;
+
+ dlb_list_add(&domain->avail_ldb_ports, &port->domain_list);
+ }
+
+ rsrcs->num_avail_ldb_ports -= num_ports;
+
+ return 0;
+
+cleanup:
+
+ /* Return the assigned ports */
+ for (j = 0; j < i; j++) {
+ struct dlb_ldb_port *port;
+
+ port = DLB_FUNC_LIST_HEAD(domain->avail_ldb_ports,
+ typeof(*port));
+ /* Unrecoverable internal error */
+ if (!port)
+ break;
+
+ port->owned = false;
+
+ dlb_list_del(&domain->avail_ldb_ports, &port->domain_list);
+
+ dlb_list_add(&rsrcs->avail_ldb_ports, &port->func_list);
+ }
+
+ return -EFAULT;
+}
+
+static int dlb_attach_dir_ports(struct dlb_hw *hw,
+ struct dlb_function_resources *rsrcs,
+ struct dlb_domain *domain,
+ u32 num_ports,
+ struct dlb_cmd_response *resp)
+{
+ unsigned int i, j;
+
+ if (rsrcs->num_avail_dir_pq_pairs < num_ports) {
+ resp->status = DLB_ST_DIR_PORTS_UNAVAILABLE;
+ return -1;
+ }
+
+ for (i = 0; i < num_ports; i++) {
+ struct dlb_dir_pq_pair *port;
+
+ port = DLB_FUNC_LIST_HEAD(rsrcs->avail_dir_pq_pairs,
+ typeof(*port));
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: domain validation failed\n",
+ __func__);
+ goto cleanup;
+ }
+
+ dlb_list_del(&rsrcs->avail_dir_pq_pairs, &port->func_list);
+
+ port->domain_id = domain->id;
+ port->owned = true;
+
+ dlb_list_add(&domain->avail_dir_pq_pairs, &port->domain_list);
+ }
+
+ rsrcs->num_avail_dir_pq_pairs -= num_ports;
+
+ return 0;
+
+cleanup:
+
+ /* Return the assigned ports */
+ for (j = 0; j < i; j++) {
+ struct dlb_dir_pq_pair *port;
+
+ port = DLB_FUNC_LIST_HEAD(domain->avail_dir_pq_pairs,
+ typeof(*port));
+ /* Unrecoverable internal error */
+ if (!port)
+ break;
+
+ port->owned = false;
+
+ dlb_list_del(&domain->avail_dir_pq_pairs, &port->domain_list);
+
+ dlb_list_add(&rsrcs->avail_dir_pq_pairs, &port->func_list);
+ }
+
+ return -EFAULT;
+}
+
+static int dlb_attach_ldb_credits(struct dlb_function_resources *rsrcs,
+ struct dlb_domain *domain,
+ u32 num_credits,
+ struct dlb_cmd_response *resp)
+{
+ struct dlb_bitmap *bitmap = rsrcs->avail_qed_freelist_entries;
+
+ if (dlb_bitmap_count(bitmap) < (int)num_credits) {
+ resp->status = DLB_ST_LDB_CREDITS_UNAVAILABLE;
+ return -1;
+ }
+
+ if (num_credits) {
+ int base;
+
+ base = dlb_bitmap_find_set_bit_range(bitmap, num_credits);
+ if (base < 0)
+ goto error;
+
+ domain->qed_freelist.base = base;
+ domain->qed_freelist.bound = base + num_credits;
+ domain->qed_freelist.offset = 0;
+
+ dlb_bitmap_clear_range(bitmap, base, num_credits);
+ }
+
+ return 0;
+
+error:
+ resp->status = DLB_ST_QED_FREELIST_ENTRIES_UNAVAILABLE;
+ return -1;
+}
+
+static int dlb_attach_dir_credits(struct dlb_function_resources *rsrcs,
+ struct dlb_domain *domain,
+ u32 num_credits,
+ struct dlb_cmd_response *resp)
+{
+ struct dlb_bitmap *bitmap = rsrcs->avail_dqed_freelist_entries;
+
+ if (dlb_bitmap_count(bitmap) < (int)num_credits) {
+ resp->status = DLB_ST_DIR_CREDITS_UNAVAILABLE;
+ return -1;
+ }
+
+ if (num_credits) {
+ int base;
+
+ base = dlb_bitmap_find_set_bit_range(bitmap, num_credits);
+ if (base < 0)
+ goto error;
+
+ domain->dqed_freelist.base = base;
+ domain->dqed_freelist.bound = base + num_credits;
+ domain->dqed_freelist.offset = 0;
+
+ dlb_bitmap_clear_range(bitmap, base, num_credits);
+ }
+
+ return 0;
+
+error:
+ resp->status = DLB_ST_DQED_FREELIST_ENTRIES_UNAVAILABLE;
+ return -1;
+}
+
+static int dlb_attach_ldb_credit_pools(struct dlb_hw *hw,
+ struct dlb_function_resources *rsrcs,
+ struct dlb_domain *domain,
+ u32 num_credit_pools,
+ struct dlb_cmd_response *resp)
+{
+ unsigned int i, j;
+
+ if (rsrcs->num_avail_ldb_credit_pools < num_credit_pools) {
+ resp->status = DLB_ST_LDB_CREDIT_POOLS_UNAVAILABLE;
+ return -1;
+ }
+
+ for (i = 0; i < num_credit_pools; i++) {
+ struct dlb_credit_pool *pool;
+
+ pool = DLB_FUNC_LIST_HEAD(rsrcs->avail_ldb_credit_pools,
+ typeof(*pool));
+ if (!pool) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: domain validation failed\n",
+ __func__);
+ goto cleanup;
+ }
+
+ dlb_list_del(&rsrcs->avail_ldb_credit_pools,
+ &pool->func_list);
+
+ pool->domain_id = domain->id;
+ pool->owned = true;
+
+ dlb_list_add(&domain->avail_ldb_credit_pools,
+ &pool->domain_list);
+ }
+
+ rsrcs->num_avail_ldb_credit_pools -= num_credit_pools;
+
+ return 0;
+
+cleanup:
+
+ /* Return the assigned credit pools */
+ for (j = 0; j < i; j++) {
+ struct dlb_credit_pool *pool;
+
+ pool = DLB_FUNC_LIST_HEAD(domain->avail_ldb_credit_pools,
+ typeof(*pool));
+ /* Unrecoverable internal error */
+ if (!pool)
+ break;
+
+ pool->owned = false;
+
+ dlb_list_del(&domain->avail_ldb_credit_pools,
+ &pool->domain_list);
+
+ dlb_list_add(&rsrcs->avail_ldb_credit_pools,
+ &pool->func_list);
+ }
+
+ return -EFAULT;
+}
+
+static int dlb_attach_dir_credit_pools(struct dlb_hw *hw,
+ struct dlb_function_resources *rsrcs,
+ struct dlb_domain *domain,
+ u32 num_credit_pools,
+ struct dlb_cmd_response *resp)
+{
+ unsigned int i, j;
+
+ if (rsrcs->num_avail_dir_credit_pools < num_credit_pools) {
+ resp->status = DLB_ST_DIR_CREDIT_POOLS_UNAVAILABLE;
+ return -1;
+ }
+
+ for (i = 0; i < num_credit_pools; i++) {
+ struct dlb_credit_pool *pool;
+
+ pool = DLB_FUNC_LIST_HEAD(rsrcs->avail_dir_credit_pools,
+ typeof(*pool));
+ if (!pool) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: domain validation failed\n",
+ __func__);
+ goto cleanup;
+ }
+
+ dlb_list_del(&rsrcs->avail_dir_credit_pools,
+ &pool->func_list);
+
+ pool->domain_id = domain->id;
+ pool->owned = true;
+
+ dlb_list_add(&domain->avail_dir_credit_pools,
+ &pool->domain_list);
+ }
+
+ rsrcs->num_avail_dir_credit_pools -= num_credit_pools;
+
+ return 0;
+
+cleanup:
+
+ /* Return the assigned credit pools */
+ for (j = 0; j < i; j++) {
+ struct dlb_credit_pool *pool;
+
+ pool = DLB_FUNC_LIST_HEAD(domain->avail_dir_credit_pools,
+ typeof(*pool));
+ /* Unrecoverable internal error */
+ if (!pool)
+ break;
+
+ pool->owned = false;
+
+ dlb_list_del(&domain->avail_dir_credit_pools,
+ &pool->domain_list);
+
+ dlb_list_add(&rsrcs->avail_dir_credit_pools,
+ &pool->func_list);
+ }
+
+ return -EFAULT;
+}
+
+static int dlb_attach_atomic_inflights(struct dlb_function_resources *rsrcs,
+ struct dlb_domain *domain,
+ u32 num_atomic_inflights,
+ struct dlb_cmd_response *resp)
+{
+ if (num_atomic_inflights) {
+ struct dlb_bitmap *bitmap =
+ rsrcs->avail_aqed_freelist_entries;
+ int base;
+
+ base = dlb_bitmap_find_set_bit_range(bitmap,
+ num_atomic_inflights);
+ if (base < 0)
+ goto error;
+
+ domain->aqed_freelist.base = base;
+ domain->aqed_freelist.bound = base + num_atomic_inflights;
+ domain->aqed_freelist.offset = 0;
+
+ dlb_bitmap_clear_range(bitmap, base, num_atomic_inflights);
+ }
+
+ return 0;
+
+error:
+ resp->status = DLB_ST_ATOMIC_INFLIGHTS_UNAVAILABLE;
+ return -1;
+}
+
+static int
+dlb_attach_domain_hist_list_entries(struct dlb_function_resources *rsrcs,
+ struct dlb_domain *domain,
+ u32 num_hist_list_entries,
+ struct dlb_cmd_response *resp)
+{
+ struct dlb_bitmap *bitmap;
+ int base;
+
+ if (num_hist_list_entries) {
+ bitmap = rsrcs->avail_hist_list_entries;
+
+ base = dlb_bitmap_find_set_bit_range(bitmap,
+ num_hist_list_entries);
+ if (base < 0)
+ goto error;
+
+ domain->total_hist_list_entries = num_hist_list_entries;
+ domain->avail_hist_list_entries = num_hist_list_entries;
+ domain->hist_list_entry_base = base;
+ domain->hist_list_entry_offset = 0;
+
+ dlb_bitmap_clear_range(bitmap, base, num_hist_list_entries);
+ }
+ return 0;
+
+error:
+ resp->status = DLB_ST_HIST_LIST_ENTRIES_UNAVAILABLE;
+ return -1;
+}
+
+static unsigned int
+dlb_get_num_ports_in_use(struct dlb_hw *hw)
+{
+ unsigned int i, n = 0;
+
+ for (i = 0; i < DLB_MAX_NUM_LDB_PORTS; i++)
+ if (hw->rsrcs.ldb_ports[i].owned)
+ n++;
+
+ for (i = 0; i < DLB_MAX_NUM_DIR_PORTS; i++)
+ if (hw->rsrcs.dir_pq_pairs[i].owned)
+ n++;
+
+ return n;
+}
+
+static int
+dlb_verify_create_sched_domain_args(struct dlb_hw *hw,
+ struct dlb_function_resources *rsrcs,
+ struct dlb_create_sched_domain_args *args,
+ struct dlb_cmd_response *resp)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_bitmap *ldb_credit_freelist;
+ struct dlb_bitmap *dir_credit_freelist;
+ unsigned int ldb_credit_freelist_count;
+ unsigned int dir_credit_freelist_count;
+ unsigned int max_contig_aqed_entries;
+ unsigned int max_contig_dqed_entries;
+ unsigned int max_contig_qed_entries;
+ unsigned int max_contig_hl_entries;
+ struct dlb_bitmap *aqed_freelist;
+ enum dlb_dev_revision revision;
+
+ ldb_credit_freelist = rsrcs->avail_qed_freelist_entries;
+ dir_credit_freelist = rsrcs->avail_dqed_freelist_entries;
+ aqed_freelist = rsrcs->avail_aqed_freelist_entries;
+
+ ldb_credit_freelist_count = dlb_bitmap_count(ldb_credit_freelist);
+ dir_credit_freelist_count = dlb_bitmap_count(dir_credit_freelist);
+
+ max_contig_hl_entries =
+ dlb_bitmap_longest_set_range(rsrcs->avail_hist_list_entries);
+ max_contig_aqed_entries =
+ dlb_bitmap_longest_set_range(aqed_freelist);
+ max_contig_qed_entries =
+ dlb_bitmap_longest_set_range(ldb_credit_freelist);
+ max_contig_dqed_entries =
+ dlb_bitmap_longest_set_range(dir_credit_freelist);
+
+ if (rsrcs->num_avail_domains < 1)
+ resp->status = DLB_ST_DOMAIN_UNAVAILABLE;
+ else if (rsrcs->num_avail_ldb_queues < args->num_ldb_queues)
+ resp->status = DLB_ST_LDB_QUEUES_UNAVAILABLE;
+ else if (rsrcs->num_avail_ldb_ports < args->num_ldb_ports)
+ resp->status = DLB_ST_LDB_PORTS_UNAVAILABLE;
+ else if (args->num_ldb_queues > 0 && args->num_ldb_ports == 0)
+ resp->status = DLB_ST_LDB_PORT_REQUIRED_FOR_LDB_QUEUES;
+ else if (rsrcs->num_avail_dir_pq_pairs < args->num_dir_ports)
+ resp->status = DLB_ST_DIR_PORTS_UNAVAILABLE;
+ else if (ldb_credit_freelist_count < args->num_ldb_credits)
+ resp->status = DLB_ST_LDB_CREDITS_UNAVAILABLE;
+ else if (dir_credit_freelist_count < args->num_dir_credits)
+ resp->status = DLB_ST_DIR_CREDITS_UNAVAILABLE;
+ else if (rsrcs->num_avail_ldb_credit_pools < args->num_ldb_credit_pools)
+ resp->status = DLB_ST_LDB_CREDIT_POOLS_UNAVAILABLE;
+ else if (rsrcs->num_avail_dir_credit_pools < args->num_dir_credit_pools)
+ resp->status = DLB_ST_DIR_CREDIT_POOLS_UNAVAILABLE;
+ else if (max_contig_hl_entries < args->num_hist_list_entries)
+ resp->status = DLB_ST_HIST_LIST_ENTRIES_UNAVAILABLE;
+ else if (max_contig_aqed_entries < args->num_atomic_inflights)
+ resp->status = DLB_ST_ATOMIC_INFLIGHTS_UNAVAILABLE;
+ else if (max_contig_qed_entries < args->num_ldb_credits)
+ resp->status = DLB_ST_QED_FREELIST_ENTRIES_UNAVAILABLE;
+ else if (max_contig_dqed_entries < args->num_dir_credits)
+ resp->status = DLB_ST_DQED_FREELIST_ENTRIES_UNAVAILABLE;
+
+ /* DLB A-stepping workaround for hardware write buffer lock up issue:
+ * limit the maximum configured ports to less than 128 and disable CQ
+ * occupancy interrupts.
+ */
+ revision = os_get_dev_revision(hw);
+
+ if (revision < DLB_B0) {
+ u32 n = dlb_get_num_ports_in_use(hw);
+
+ n += args->num_ldb_ports + args->num_dir_ports;
+
+ if (n >= DLB_A_STEP_MAX_PORTS)
+ resp->status = args->num_ldb_ports ?
+ DLB_ST_LDB_PORTS_UNAVAILABLE :
+ DLB_ST_DIR_PORTS_UNAVAILABLE;
+ }
+
+ if (resp->status)
+ return -1;
+
+ return 0;
+}
+
+static int
+dlb_verify_create_ldb_pool_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_ldb_pool_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_freelist *qed_freelist;
+ struct dlb_domain *domain;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ qed_freelist = &domain->qed_freelist;
+
+ if (dlb_freelist_count(qed_freelist) < args->num_ldb_credits) {
+ resp->status = DLB_ST_LDB_CREDITS_UNAVAILABLE;
+ return -1;
+ }
+
+ if (dlb_list_empty(&domain->avail_ldb_credit_pools)) {
+ resp->status = DLB_ST_LDB_CREDIT_POOLS_UNAVAILABLE;
+ return -1;
+ }
+
+ if (domain->started) {
+ resp->status = DLB_ST_DOMAIN_STARTED;
+ return -1;
+ }
+
+ return 0;
+}
+
+static void
+dlb_configure_ldb_credit_pool(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_create_ldb_pool_args *args,
+ struct dlb_credit_pool *pool)
+{
+ union dlb_sys_ldb_pool_enbld r0 = { {0} };
+ union dlb_chp_ldb_pool_crd_lim r1 = { {0} };
+ union dlb_chp_ldb_pool_crd_cnt r2 = { {0} };
+ union dlb_chp_qed_fl_base r3 = { {0} };
+ union dlb_chp_qed_fl_lim r4 = { {0} };
+ union dlb_chp_qed_fl_push_ptr r5 = { {0} };
+ union dlb_chp_qed_fl_pop_ptr r6 = { {0} };
+
+ r1.field.limit = args->num_ldb_credits;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_POOL_CRD_LIM(pool->id.phys_id), r1.val);
+
+ r2.field.count = args->num_ldb_credits;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_POOL_CRD_CNT(pool->id.phys_id), r2.val);
+
+ r3.field.base = domain->qed_freelist.base + domain->qed_freelist.offset;
+
+ DLB_CSR_WR(hw, DLB_CHP_QED_FL_BASE(pool->id.phys_id), r3.val);
+
+ r4.field.freelist_disable = 0;
+ r4.field.limit = r3.field.base + args->num_ldb_credits - 1;
+
+ DLB_CSR_WR(hw, DLB_CHP_QED_FL_LIM(pool->id.phys_id), r4.val);
+
+ r5.field.push_ptr = r3.field.base;
+ r5.field.generation = 1;
+
+ DLB_CSR_WR(hw, DLB_CHP_QED_FL_PUSH_PTR(pool->id.phys_id), r5.val);
+
+ r6.field.pop_ptr = r3.field.base;
+ r6.field.generation = 0;
+
+ DLB_CSR_WR(hw, DLB_CHP_QED_FL_POP_PTR(pool->id.phys_id), r6.val);
+
+ r0.field.pool_enabled = 1;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_POOL_ENBLD(pool->id.phys_id), r0.val);
+
+ pool->avail_credits = args->num_ldb_credits;
+ pool->total_credits = args->num_ldb_credits;
+ domain->qed_freelist.offset += args->num_ldb_credits;
+
+ pool->configured = true;
+}
+
+static int
+dlb_verify_create_dir_pool_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_dir_pool_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_freelist *dqed_freelist;
+ struct dlb_domain *domain;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ dqed_freelist = &domain->dqed_freelist;
+
+ if (dlb_freelist_count(dqed_freelist) < args->num_dir_credits) {
+ resp->status = DLB_ST_DIR_CREDITS_UNAVAILABLE;
+ return -1;
+ }
+
+ if (dlb_list_empty(&domain->avail_dir_credit_pools)) {
+ resp->status = DLB_ST_DIR_CREDIT_POOLS_UNAVAILABLE;
+ return -1;
+ }
+
+ if (domain->started) {
+ resp->status = DLB_ST_DOMAIN_STARTED;
+ return -1;
+ }
+
+ return 0;
+}
+
+static void
+dlb_configure_dir_credit_pool(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_create_dir_pool_args *args,
+ struct dlb_credit_pool *pool)
+{
+ union dlb_sys_dir_pool_enbld r0 = { {0} };
+ union dlb_chp_dir_pool_crd_lim r1 = { {0} };
+ union dlb_chp_dir_pool_crd_cnt r2 = { {0} };
+ union dlb_chp_dqed_fl_base r3 = { {0} };
+ union dlb_chp_dqed_fl_lim r4 = { {0} };
+ union dlb_chp_dqed_fl_push_ptr r5 = { {0} };
+ union dlb_chp_dqed_fl_pop_ptr r6 = { {0} };
+
+ r1.field.limit = args->num_dir_credits;
+
+ DLB_CSR_WR(hw, DLB_CHP_DIR_POOL_CRD_LIM(pool->id.phys_id), r1.val);
+
+ r2.field.count = args->num_dir_credits;
+
+ DLB_CSR_WR(hw, DLB_CHP_DIR_POOL_CRD_CNT(pool->id.phys_id), r2.val);
+
+ r3.field.base = domain->dqed_freelist.base +
+ domain->dqed_freelist.offset;
+
+ DLB_CSR_WR(hw, DLB_CHP_DQED_FL_BASE(pool->id.phys_id), r3.val);
+
+ r4.field.freelist_disable = 0;
+ r4.field.limit = r3.field.base + args->num_dir_credits - 1;
+
+ DLB_CSR_WR(hw, DLB_CHP_DQED_FL_LIM(pool->id.phys_id), r4.val);
+
+ r5.field.push_ptr = r3.field.base;
+ r5.field.generation = 1;
+
+ DLB_CSR_WR(hw, DLB_CHP_DQED_FL_PUSH_PTR(pool->id.phys_id), r5.val);
+
+ r6.field.pop_ptr = r3.field.base;
+ r6.field.generation = 0;
+
+ DLB_CSR_WR(hw, DLB_CHP_DQED_FL_POP_PTR(pool->id.phys_id), r6.val);
+
+ r0.field.pool_enabled = 1;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_POOL_ENBLD(pool->id.phys_id), r0.val);
+
+ pool->avail_credits = args->num_dir_credits;
+ pool->total_credits = args->num_dir_credits;
+ domain->dqed_freelist.offset += args->num_dir_credits;
+
+ pool->configured = true;
+}
+
+static int
+dlb_verify_create_ldb_queue_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_ldb_queue_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_freelist *aqed_freelist;
+ struct dlb_domain *domain;
+ int i;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ if (domain->started) {
+ resp->status = DLB_ST_DOMAIN_STARTED;
+ return -1;
+ }
+
+ if (dlb_list_empty(&domain->avail_ldb_queues)) {
+ resp->status = DLB_ST_LDB_QUEUES_UNAVAILABLE;
+ return -1;
+ }
+
+ if (args->num_sequence_numbers) {
+ for (i = 0; i < DLB_MAX_NUM_SEQUENCE_NUMBER_GROUPS; i++) {
+ struct dlb_sn_group *group = &hw->rsrcs.sn_groups[i];
+
+ if (group->sequence_numbers_per_queue ==
+ args->num_sequence_numbers &&
+ !dlb_sn_group_full(group))
+ break;
+ }
+
+ if (i == DLB_MAX_NUM_SEQUENCE_NUMBER_GROUPS) {
+ resp->status = DLB_ST_SEQUENCE_NUMBERS_UNAVAILABLE;
+ return -1;
+ }
+ }
+
+ if (args->num_qid_inflights > 4096) {
+ resp->status = DLB_ST_INVALID_QID_INFLIGHT_ALLOCATION;
+ return -1;
+ }
+
+ /* Inflights must be <= number of sequence numbers if ordered */
+ if (args->num_sequence_numbers != 0 &&
+ args->num_qid_inflights > args->num_sequence_numbers) {
+ resp->status = DLB_ST_INVALID_QID_INFLIGHT_ALLOCATION;
+ return -1;
+ }
+
+ aqed_freelist = &domain->aqed_freelist;
+
+ if (dlb_freelist_count(aqed_freelist) < args->num_atomic_inflights) {
+ resp->status = DLB_ST_ATOMIC_INFLIGHTS_UNAVAILABLE;
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+dlb_verify_create_dir_queue_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_dir_queue_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ if (domain->started) {
+ resp->status = DLB_ST_DOMAIN_STARTED;
+ return -1;
+ }
+
+ /* If the user claims the port is already configured, validate the port
+ * ID, its domain, and whether the port is configured.
+ */
+ if (args->port_id != -1) {
+ struct dlb_dir_pq_pair *port;
+
+ port = dlb_get_domain_used_dir_pq(args->port_id,
+ vf_request,
+ domain);
+
+ if (!port || port->domain_id.phys_id != domain->id.phys_id ||
+ !port->port_configured) {
+ resp->status = DLB_ST_INVALID_PORT_ID;
+ return -1;
+ }
+ }
+
+ /* If the queue's port is not configured, validate that a free
+ * port-queue pair is available.
+ */
+ if (args->port_id == -1 &&
+ dlb_list_empty(&domain->avail_dir_pq_pairs)) {
+ resp->status = DLB_ST_DIR_QUEUES_UNAVAILABLE;
+ return -1;
+ }
+
+ return 0;
+}
+
+static void dlb_configure_ldb_queue(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_queue *queue,
+ struct dlb_create_ldb_queue_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ union dlb_sys_vf_ldb_vqid_v r0 = { {0} };
+ union dlb_sys_vf_ldb_vqid2qid r1 = { {0} };
+ union dlb_sys_ldb_qid2vqid r2 = { {0} };
+ union dlb_sys_ldb_vasqid_v r3 = { {0} };
+ union dlb_lsp_qid_ldb_infl_lim r4 = { {0} };
+ union dlb_lsp_qid_aqed_active_lim r5 = { {0} };
+ union dlb_aqed_pipe_fl_lim r6 = { {0} };
+ union dlb_aqed_pipe_fl_base r7 = { {0} };
+ union dlb_chp_ord_qid_sn_map r11 = { {0} };
+ union dlb_sys_ldb_qid_cfg_v r12 = { {0} };
+ union dlb_sys_ldb_qid_v r13 = { {0} };
+ union dlb_aqed_pipe_fl_push_ptr r14 = { {0} };
+ union dlb_aqed_pipe_fl_pop_ptr r15 = { {0} };
+ union dlb_aqed_pipe_qid_fid_lim r16 = { {0} };
+ union dlb_ro_pipe_qid2grpslt r17 = { {0} };
+ struct dlb_sn_group *sn_group;
+ unsigned int offs;
+
+ /* QID write permissions are turned on when the domain is started */
+ r3.field.vasqid_v = 0;
+
+ offs = domain->id.phys_id * DLB_MAX_NUM_LDB_QUEUES + queue->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_VASQID_V(offs), r3.val);
+
+ /* Unordered QIDs get 4K inflights, ordered get as many as the number
+ * of sequence numbers.
+ */
+ r4.field.limit = args->num_qid_inflights;
+
+ DLB_CSR_WR(hw, DLB_LSP_QID_LDB_INFL_LIM(queue->id.phys_id), r4.val);
+
+ r5.field.limit = queue->aqed_freelist.bound -
+ queue->aqed_freelist.base;
+
+ if (r5.field.limit > DLB_MAX_NUM_AQOS_ENTRIES)
+ r5.field.limit = DLB_MAX_NUM_AQOS_ENTRIES;
+
+ /* AQOS */
+ DLB_CSR_WR(hw, DLB_LSP_QID_AQED_ACTIVE_LIM(queue->id.phys_id), r5.val);
+
+ r6.field.freelist_disable = 0;
+ r6.field.limit = queue->aqed_freelist.bound - 1;
+
+ DLB_CSR_WR(hw, DLB_AQED_PIPE_FL_LIM(queue->id.phys_id), r6.val);
+
+ r7.field.base = queue->aqed_freelist.base;
+
+ DLB_CSR_WR(hw, DLB_AQED_PIPE_FL_BASE(queue->id.phys_id), r7.val);
+
+ r14.field.push_ptr = r7.field.base;
+ r14.field.generation = 1;
+
+ DLB_CSR_WR(hw, DLB_AQED_PIPE_FL_PUSH_PTR(queue->id.phys_id), r14.val);
+
+ r15.field.pop_ptr = r7.field.base;
+ r15.field.generation = 0;
+
+ DLB_CSR_WR(hw, DLB_AQED_PIPE_FL_POP_PTR(queue->id.phys_id), r15.val);
+
+ /* Configure SNs */
+ sn_group = &hw->rsrcs.sn_groups[queue->sn_group];
+ r11.field.mode = sn_group->mode;
+ r11.field.slot = queue->sn_slot;
+ r11.field.grp = sn_group->id;
+
+ DLB_CSR_WR(hw, DLB_CHP_ORD_QID_SN_MAP(queue->id.phys_id), r11.val);
+
+ /* This register limits the number of inflight flows a queue can have
+ * at one time. It has an upper bound of 2048, but can be
+ * over-subscribed. 512 is chosen so that a single queue doesn't use
+ * the entire atomic storage, but can use a substantial portion if
+ * needed.
+ */
+ r16.field.qid_fid_limit = 512;
+
+ DLB_CSR_WR(hw, DLB_AQED_PIPE_QID_FID_LIM(queue->id.phys_id), r16.val);
+
+ r17.field.group = sn_group->id;
+ r17.field.slot = queue->sn_slot;
+
+ DLB_CSR_WR(hw, DLB_RO_PIPE_QID2GRPSLT(queue->id.phys_id), r17.val);
+
+ r12.field.sn_cfg_v = (args->num_sequence_numbers != 0);
+ r12.field.fid_cfg_v = (args->num_atomic_inflights != 0);
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_QID_CFG_V(queue->id.phys_id), r12.val);
+
+ if (vf_request) {
+ unsigned int offs;
+
+ r0.field.vqid_v = 1;
+
+ offs = vf_id * DLB_MAX_NUM_LDB_QUEUES + queue->id.virt_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_VF_LDB_VQID_V(offs), r0.val);
+
+ r1.field.qid = queue->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_VF_LDB_VQID2QID(offs), r1.val);
+
+ r2.field.vqid = queue->id.virt_id;
+
+ offs = vf_id * DLB_MAX_NUM_LDB_QUEUES + queue->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_QID2VQID(offs), r2.val);
+ }
+
+ r13.field.qid_v = 1;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_QID_V(queue->id.phys_id), r13.val);
+}
+
+static void dlb_configure_dir_queue(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_dir_pq_pair *queue,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ union dlb_sys_dir_vasqid_v r0 = { {0} };
+ unsigned int offs;
+
+ /* QID write permissions are turned on when the domain is started */
+ r0.field.vasqid_v = 0;
+
+ offs = (domain->id.phys_id * DLB_MAX_NUM_DIR_PORTS) + queue->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_VASQID_V(offs), r0.val);
+
+ if (vf_request) {
+ union dlb_sys_vf_dir_vqid_v r1 = { {0} };
+ union dlb_sys_vf_dir_vqid2qid r2 = { {0} };
+
+ r1.field.vqid_v = 1;
+
+ offs = (vf_id * DLB_MAX_NUM_DIR_PORTS) + queue->id.virt_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_VF_DIR_VQID_V(offs), r1.val);
+
+ r2.field.qid = queue->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_VF_DIR_VQID2QID(offs), r2.val);
+ } else {
+ union dlb_sys_dir_qid_v r3 = { {0} };
+
+ r3.field.qid_v = 1;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_QID_V(queue->id.phys_id), r3.val);
+ }
+
+ queue->queue_configured = true;
+}
+
+static int
+dlb_verify_create_ldb_port_args(struct dlb_hw *hw,
+ u32 domain_id,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_create_ldb_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ struct dlb_credit_pool *pool;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ if (domain->started) {
+ resp->status = DLB_ST_DOMAIN_STARTED;
+ return -1;
+ }
+
+ if (dlb_list_empty(&domain->avail_ldb_ports)) {
+ resp->status = DLB_ST_LDB_PORTS_UNAVAILABLE;
+ return -1;
+ }
+
+ /* If the scheduling domain has no LDB queues, we configure the
+ * hardware to not supply the port with any LDB credits. In that
+ * case, ignore the LDB credit arguments.
+ */
+ if (!dlb_list_empty(&domain->used_ldb_queues) ||
+ !dlb_list_empty(&domain->avail_ldb_queues)) {
+ pool = dlb_get_domain_ldb_pool(args->ldb_credit_pool_id,
+ vf_request,
+ domain);
+
+ if (!pool || !pool->configured ||
+ pool->domain_id.phys_id != domain->id.phys_id) {
+ resp->status = DLB_ST_INVALID_LDB_CREDIT_POOL_ID;
+ return -1;
+ }
+
+ if (args->ldb_credit_high_watermark > pool->avail_credits) {
+ resp->status = DLB_ST_LDB_CREDITS_UNAVAILABLE;
+ return -1;
+ }
+
+ if (args->ldb_credit_low_watermark >=
+ args->ldb_credit_high_watermark) {
+ resp->status = DLB_ST_INVALID_LDB_CREDIT_LOW_WATERMARK;
+ return -1;
+ }
+
+ if (args->ldb_credit_quantum >=
+ args->ldb_credit_high_watermark) {
+ resp->status = DLB_ST_INVALID_LDB_CREDIT_QUANTUM;
+ return -1;
+ }
+
+ if (args->ldb_credit_quantum > DLB_MAX_PORT_CREDIT_QUANTUM) {
+ resp->status = DLB_ST_INVALID_LDB_CREDIT_QUANTUM;
+ return -1;
+ }
+ }
+
+ /* Likewise, if the scheduling domain has no DIR queues, we configure
+ * the hardware to not supply the port with any DIR credits. In that
+ * case, ignore the DIR credit arguments.
+ */
+ if (!dlb_list_empty(&domain->used_dir_pq_pairs) ||
+ !dlb_list_empty(&domain->avail_dir_pq_pairs)) {
+ pool = dlb_get_domain_dir_pool(args->dir_credit_pool_id,
+ vf_request,
+ domain);
+
+ if (!pool || !pool->configured ||
+ pool->domain_id.phys_id != domain->id.phys_id) {
+ resp->status = DLB_ST_INVALID_DIR_CREDIT_POOL_ID;
+ return -1;
+ }
+
+ if (args->dir_credit_high_watermark > pool->avail_credits) {
+ resp->status = DLB_ST_DIR_CREDITS_UNAVAILABLE;
+ return -1;
+ }
+
+ if (args->dir_credit_low_watermark >=
+ args->dir_credit_high_watermark) {
+ resp->status = DLB_ST_INVALID_DIR_CREDIT_LOW_WATERMARK;
+ return -1;
+ }
+
+ if (args->dir_credit_quantum >=
+ args->dir_credit_high_watermark) {
+ resp->status = DLB_ST_INVALID_DIR_CREDIT_QUANTUM;
+ return -1;
+ }
+
+ if (args->dir_credit_quantum > DLB_MAX_PORT_CREDIT_QUANTUM) {
+ resp->status = DLB_ST_INVALID_DIR_CREDIT_QUANTUM;
+ return -1;
+ }
+ }
+
+ /* Check cache-line alignment */
+ if ((pop_count_dma_base & 0x3F) != 0) {
+ resp->status = DLB_ST_INVALID_POP_COUNT_VIRT_ADDR;
+ return -1;
+ }
+
+ if ((cq_dma_base & 0x3F) != 0) {
+ resp->status = DLB_ST_INVALID_CQ_VIRT_ADDR;
+ return -1;
+ }
+
+ if (args->cq_depth != 1 &&
+ args->cq_depth != 2 &&
+ args->cq_depth != 4 &&
+ args->cq_depth != 8 &&
+ args->cq_depth != 16 &&
+ args->cq_depth != 32 &&
+ args->cq_depth != 64 &&
+ args->cq_depth != 128 &&
+ args->cq_depth != 256 &&
+ args->cq_depth != 512 &&
+ args->cq_depth != 1024) {
+ resp->status = DLB_ST_INVALID_CQ_DEPTH;
+ return -1;
+ }
+
+ /* The history list size must be >= 1 */
+ if (!args->cq_history_list_size) {
+ resp->status = DLB_ST_INVALID_HIST_LIST_DEPTH;
+ return -1;
+ }
+
+ if (args->cq_history_list_size > domain->avail_hist_list_entries) {
+ resp->status = DLB_ST_HIST_LIST_ENTRIES_UNAVAILABLE;
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+dlb_verify_create_dir_port_args(struct dlb_hw *hw,
+ u32 domain_id,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_create_dir_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ struct dlb_credit_pool *pool;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ if (domain->started) {
+ resp->status = DLB_ST_DOMAIN_STARTED;
+ return -1;
+ }
+
+ /* If the user claims the queue is already configured, validate
+ * the queue ID, its domain, and whether the queue is configured.
+ */
+ if (args->queue_id != -1) {
+ struct dlb_dir_pq_pair *queue;
+
+ queue = dlb_get_domain_used_dir_pq(args->queue_id,
+ vf_request,
+ domain);
+
+ if (!queue || queue->domain_id.phys_id != domain->id.phys_id ||
+ !queue->queue_configured) {
+ resp->status = DLB_ST_INVALID_DIR_QUEUE_ID;
+ return -1;
+ }
+ }
+
+ /* If the port's queue is not configured, validate that a free
+ * port-queue pair is available.
+ */
+ if (args->queue_id == -1 &&
+ dlb_list_empty(&domain->avail_dir_pq_pairs)) {
+ resp->status = DLB_ST_DIR_PORTS_UNAVAILABLE;
+ return -1;
+ }
+
+ /* If the scheduling domain has no LDB queues, we configure the
+ * hardware to not supply the port with any LDB credits. In that
+ * case, ignore the LDB credit arguments.
+ */
+ if (!dlb_list_empty(&domain->used_ldb_queues) ||
+ !dlb_list_empty(&domain->avail_ldb_queues)) {
+ pool = dlb_get_domain_ldb_pool(args->ldb_credit_pool_id,
+ vf_request,
+ domain);
+
+ if (!pool || !pool->configured ||
+ pool->domain_id.phys_id != domain->id.phys_id) {
+ resp->status = DLB_ST_INVALID_LDB_CREDIT_POOL_ID;
+ return -1;
+ }
+
+ if (args->ldb_credit_high_watermark > pool->avail_credits) {
+ resp->status = DLB_ST_LDB_CREDITS_UNAVAILABLE;
+ return -1;
+ }
+
+ if (args->ldb_credit_low_watermark >=
+ args->ldb_credit_high_watermark) {
+ resp->status = DLB_ST_INVALID_LDB_CREDIT_LOW_WATERMARK;
+ return -1;
+ }
+
+ if (args->ldb_credit_quantum >=
+ args->ldb_credit_high_watermark) {
+ resp->status = DLB_ST_INVALID_LDB_CREDIT_QUANTUM;
+ return -1;
+ }
+
+ if (args->ldb_credit_quantum > DLB_MAX_PORT_CREDIT_QUANTUM) {
+ resp->status = DLB_ST_INVALID_LDB_CREDIT_QUANTUM;
+ return -1;
+ }
+ }
+
+ pool = dlb_get_domain_dir_pool(args->dir_credit_pool_id,
+ vf_request,
+ domain);
+
+ if (!pool || !pool->configured ||
+ pool->domain_id.phys_id != domain->id.phys_id) {
+ resp->status = DLB_ST_INVALID_DIR_CREDIT_POOL_ID;
+ return -1;
+ }
+
+ if (args->dir_credit_high_watermark > pool->avail_credits) {
+ resp->status = DLB_ST_DIR_CREDITS_UNAVAILABLE;
+ return -1;
+ }
+
+ if (args->dir_credit_low_watermark >= args->dir_credit_high_watermark) {
+ resp->status = DLB_ST_INVALID_DIR_CREDIT_LOW_WATERMARK;
+ return -1;
+ }
+
+ if (args->dir_credit_quantum >= args->dir_credit_high_watermark) {
+ resp->status = DLB_ST_INVALID_DIR_CREDIT_QUANTUM;
+ return -1;
+ }
+
+ if (args->dir_credit_quantum > DLB_MAX_PORT_CREDIT_QUANTUM) {
+ resp->status = DLB_ST_INVALID_DIR_CREDIT_QUANTUM;
+ return -1;
+ }
+
+ /* Check cache-line alignment */
+ if ((pop_count_dma_base & 0x3F) != 0) {
+ resp->status = DLB_ST_INVALID_POP_COUNT_VIRT_ADDR;
+ return -1;
+ }
+
+ if ((cq_dma_base & 0x3F) != 0) {
+ resp->status = DLB_ST_INVALID_CQ_VIRT_ADDR;
+ return -1;
+ }
+
+ if (args->cq_depth != 8 &&
+ args->cq_depth != 16 &&
+ args->cq_depth != 32 &&
+ args->cq_depth != 64 &&
+ args->cq_depth != 128 &&
+ args->cq_depth != 256 &&
+ args->cq_depth != 512 &&
+ args->cq_depth != 1024) {
+ resp->status = DLB_ST_INVALID_CQ_DEPTH;
+ return -1;
+ }
+
+ return 0;
+}
+
+static int dlb_verify_start_domain_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ if (domain->started) {
+ resp->status = DLB_ST_DOMAIN_STARTED;
+ return -1;
+ }
+
+ return 0;
+}
+
+static int dlb_verify_map_qid_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_map_qid_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ struct dlb_ldb_port *port;
+ struct dlb_ldb_queue *queue;
+ int id;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_ldb_port(id, vf_request, domain);
+
+ if (!port || !port->configured) {
+ resp->status = DLB_ST_INVALID_PORT_ID;
+ return -1;
+ }
+
+ if (args->priority >= DLB_QID_PRIORITIES) {
+ resp->status = DLB_ST_INVALID_PRIORITY;
+ return -1;
+ }
+
+ queue = dlb_get_domain_ldb_queue(args->qid, vf_request, domain);
+
+ if (!queue || !queue->configured) {
+ resp->status = DLB_ST_INVALID_QID;
+ return -1;
+ }
+
+ if (queue->domain_id.phys_id != domain->id.phys_id) {
+ resp->status = DLB_ST_INVALID_QID;
+ return -1;
+ }
+
+ if (port->domain_id.phys_id != domain->id.phys_id) {
+ resp->status = DLB_ST_INVALID_PORT_ID;
+ return -1;
+ }
+
+ return 0;
+}
+
+static bool dlb_port_find_slot(struct dlb_ldb_port *port,
+ enum dlb_qid_map_state state,
+ int *slot)
+{
+ int i;
+
+ for (i = 0; i < DLB_MAX_NUM_QIDS_PER_LDB_CQ; i++) {
+ if (port->qid_map[i].state == state)
+ break;
+ }
+
+ *slot = i;
+
+ return (i < DLB_MAX_NUM_QIDS_PER_LDB_CQ);
+}
+
+static bool dlb_port_find_slot_queue(struct dlb_ldb_port *port,
+ enum dlb_qid_map_state state,
+ struct dlb_ldb_queue *queue,
+ int *slot)
+{
+ int i;
+
+ for (i = 0; i < DLB_MAX_NUM_QIDS_PER_LDB_CQ; i++) {
+ if (port->qid_map[i].state == state &&
+ port->qid_map[i].qid == queue->id.phys_id)
+ break;
+ }
+
+ *slot = i;
+
+ return (i < DLB_MAX_NUM_QIDS_PER_LDB_CQ);
+}
+
+static bool
+dlb_port_find_slot_with_pending_map_queue(struct dlb_ldb_port *port,
+ struct dlb_ldb_queue *queue,
+ int *slot)
+{
+ int i;
+
+ for (i = 0; i < DLB_MAX_NUM_QIDS_PER_LDB_CQ; i++) {
+ struct dlb_ldb_port_qid_map *map = &port->qid_map[i];
+
+ if (map->state == DLB_QUEUE_UNMAP_IN_PROGRESS_PENDING_MAP &&
+ map->pending_qid == queue->id.phys_id)
+ break;
+ }
+
+ *slot = i;
+
+ return (i < DLB_MAX_NUM_QIDS_PER_LDB_CQ);
+}
+
+static int dlb_port_slot_state_transition(struct dlb_hw *hw,
+ struct dlb_ldb_port *port,
+ struct dlb_ldb_queue *queue,
+ int slot,
+ enum dlb_qid_map_state new_state)
+{
+ enum dlb_qid_map_state curr_state = port->qid_map[slot].state;
+ struct dlb_domain *domain;
+
+ domain = dlb_get_domain_from_id(hw, port->domain_id.phys_id, false, 0);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: unable to find domain %d\n",
+ __func__, port->domain_id.phys_id);
+ return -EFAULT;
+ }
+
+ switch (curr_state) {
+ case DLB_QUEUE_UNMAPPED:
+ switch (new_state) {
+ case DLB_QUEUE_MAPPED:
+ queue->num_mappings++;
+ port->num_mappings++;
+ break;
+ case DLB_QUEUE_MAP_IN_PROGRESS:
+ queue->num_pending_additions++;
+ domain->num_pending_additions++;
+ break;
+ default:
+ goto error;
+ }
+ break;
+ case DLB_QUEUE_MAPPED:
+ switch (new_state) {
+ case DLB_QUEUE_UNMAPPED:
+ queue->num_mappings--;
+ port->num_mappings--;
+ break;
+ case DLB_QUEUE_UNMAP_IN_PROGRESS:
+ port->num_pending_removals++;
+ domain->num_pending_removals++;
+ break;
+ case DLB_QUEUE_MAPPED:
+ /* Priority change, nothing to update */
+ break;
+ default:
+ goto error;
+ }
+ break;
+ case DLB_QUEUE_MAP_IN_PROGRESS:
+ switch (new_state) {
+ case DLB_QUEUE_UNMAPPED:
+ queue->num_pending_additions--;
+ domain->num_pending_additions--;
+ break;
+ case DLB_QUEUE_MAPPED:
+ queue->num_mappings++;
+ port->num_mappings++;
+ queue->num_pending_additions--;
+ domain->num_pending_additions--;
+ break;
+ default:
+ goto error;
+ }
+ break;
+ case DLB_QUEUE_UNMAP_IN_PROGRESS:
+ switch (new_state) {
+ case DLB_QUEUE_UNMAPPED:
+ port->num_pending_removals--;
+ domain->num_pending_removals--;
+ queue->num_mappings--;
+ port->num_mappings--;
+ break;
+ case DLB_QUEUE_MAPPED:
+ port->num_pending_removals--;
+ domain->num_pending_removals--;
+ break;
+ case DLB_QUEUE_UNMAP_IN_PROGRESS_PENDING_MAP:
+ /* Nothing to update */
+ break;
+ default:
+ goto error;
+ }
+ break;
+ case DLB_QUEUE_UNMAP_IN_PROGRESS_PENDING_MAP:
+ switch (new_state) {
+ case DLB_QUEUE_UNMAP_IN_PROGRESS:
+ /* Nothing to update */
+ break;
+ case DLB_QUEUE_UNMAPPED:
+ /* An UNMAP_IN_PROGRESS_PENDING_MAP slot briefly
+ * becomes UNMAPPED before it transitions to
+ * MAP_IN_PROGRESS.
+ */
+ queue->num_mappings--;
+ port->num_mappings--;
+ port->num_pending_removals--;
+ domain->num_pending_removals--;
+ break;
+ default:
+ goto error;
+ }
+ break;
+ default:
+ goto error;
+ }
+
+ port->qid_map[slot].state = new_state;
+
+ DLB_HW_INFO(hw,
+ "[%s()] queue %d -> port %d state transition (%d -> %d)\n",
+ __func__, queue->id.phys_id, port->id.phys_id, curr_state,
+ new_state);
+ return 0;
+
+error:
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: invalid queue %d -> port %d state transition (%d -> %d)\n",
+ __func__, queue->id.phys_id, port->id.phys_id, curr_state,
+ new_state);
+ return -EFAULT;
+}
+
+static int dlb_verify_map_qid_slot_available(struct dlb_ldb_port *port,
+ struct dlb_ldb_queue *queue,
+ struct dlb_cmd_response *resp)
+{
+ enum dlb_qid_map_state state;
+ int i;
+
+ /* Unused slot available? */
+ if (port->num_mappings < DLB_MAX_NUM_QIDS_PER_LDB_CQ)
+ return 0;
+
+ /* If the queue is already mapped (from the application's perspective),
+ * this is simply a priority update.
+ */
+ state = DLB_QUEUE_MAPPED;
+ if (dlb_port_find_slot_queue(port, state, queue, &i))
+ return 0;
+
+ state = DLB_QUEUE_MAP_IN_PROGRESS;
+ if (dlb_port_find_slot_queue(port, state, queue, &i))
+ return 0;
+
+ if (dlb_port_find_slot_with_pending_map_queue(port, queue, &i))
+ return 0;
+
+ /* If the slot contains an unmap in progress, it's considered
+ * available.
+ */
+ state = DLB_QUEUE_UNMAP_IN_PROGRESS;
+ if (dlb_port_find_slot(port, state, &i))
+ return 0;
+
+ state = DLB_QUEUE_UNMAPPED;
+ if (dlb_port_find_slot(port, state, &i))
+ return 0;
+
+ resp->status = DLB_ST_NO_QID_SLOTS_AVAILABLE;
+ return -EINVAL;
+}
+
+static int dlb_verify_unmap_qid_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_unmap_qid_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ enum dlb_qid_map_state state;
+ struct dlb_domain *domain;
+ struct dlb_ldb_port *port;
+ struct dlb_ldb_queue *queue;
+ int slot;
+ int id;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_ldb_port(id, vf_request, domain);
+
+ if (!port || !port->configured) {
+ resp->status = DLB_ST_INVALID_PORT_ID;
+ return -1;
+ }
+
+ if (port->domain_id.phys_id != domain->id.phys_id) {
+ resp->status = DLB_ST_INVALID_PORT_ID;
+ return -1;
+ }
+
+ queue = dlb_get_domain_ldb_queue(args->qid, vf_request, domain);
+
+ if (!queue || !queue->configured) {
+ DLB_HW_ERR(hw, "[%s()] Can't unmap unconfigured queue %d\n",
+ __func__, args->qid);
+ resp->status = DLB_ST_INVALID_QID;
+ return -1;
+ }
+
+ /* Verify that the port has the queue mapped. From the application's
+ * perspective a queue is mapped if it is actually mapped, the map is
+ * in progress, or the map is blocked pending an unmap.
+ */
+ state = DLB_QUEUE_MAPPED;
+ if (dlb_port_find_slot_queue(port, state, queue, &slot))
+ return 0;
+
+ state = DLB_QUEUE_MAP_IN_PROGRESS;
+ if (dlb_port_find_slot_queue(port, state, queue, &slot))
+ return 0;
+
+ if (dlb_port_find_slot_with_pending_map_queue(port, queue, &slot))
+ return 0;
+
+ resp->status = DLB_ST_INVALID_QID;
+ return -1;
+}
+
+static int
+dlb_verify_enable_ldb_port_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_enable_ldb_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ struct dlb_ldb_port *port;
+ int id;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_ldb_port(id, vf_request, domain);
+
+ if (!port || !port->configured) {
+ resp->status = DLB_ST_INVALID_PORT_ID;
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+dlb_verify_enable_dir_port_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_enable_dir_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ struct dlb_dir_pq_pair *port;
+ int id;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_dir_pq(id, vf_request, domain);
+
+ if (!port || !port->port_configured) {
+ resp->status = DLB_ST_INVALID_PORT_ID;
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+dlb_verify_disable_ldb_port_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_disable_ldb_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ struct dlb_ldb_port *port;
+ int id;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_ldb_port(id, vf_request, domain);
+
+ if (!port || !port->configured) {
+ resp->status = DLB_ST_INVALID_PORT_ID;
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+dlb_verify_disable_dir_port_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_disable_dir_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ struct dlb_dir_pq_pair *port;
+ int id;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -1;
+ }
+
+ if (!domain->configured) {
+ resp->status = DLB_ST_DOMAIN_NOT_CONFIGURED;
+ return -1;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_dir_pq(id, vf_request, domain);
+
+ if (!port || !port->port_configured) {
+ resp->status = DLB_ST_INVALID_PORT_ID;
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+dlb_domain_attach_resources(struct dlb_hw *hw,
+ struct dlb_function_resources *rsrcs,
+ struct dlb_domain *domain,
+ struct dlb_create_sched_domain_args *args,
+ struct dlb_cmd_response *resp)
+{
+ int ret;
+
+ ret = dlb_attach_ldb_queues(hw,
+ rsrcs,
+ domain,
+ args->num_ldb_queues,
+ resp);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_attach_ldb_ports(hw,
+ rsrcs,
+ domain,
+ args->num_ldb_ports,
+ resp);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_attach_dir_ports(hw,
+ rsrcs,
+ domain,
+ args->num_dir_ports,
+ resp);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_attach_ldb_credits(rsrcs,
+ domain,
+ args->num_ldb_credits,
+ resp);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_attach_dir_credits(rsrcs,
+ domain,
+ args->num_dir_credits,
+ resp);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_attach_ldb_credit_pools(hw,
+ rsrcs,
+ domain,
+ args->num_ldb_credit_pools,
+ resp);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_attach_dir_credit_pools(hw,
+ rsrcs,
+ domain,
+ args->num_dir_credit_pools,
+ resp);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_attach_domain_hist_list_entries(rsrcs,
+ domain,
+ args->num_hist_list_entries,
+ resp);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_attach_atomic_inflights(rsrcs,
+ domain,
+ args->num_atomic_inflights,
+ resp);
+ if (ret < 0)
+ return ret;
+
+ domain->configured = true;
+
+ domain->started = false;
+
+ rsrcs->num_avail_domains--;
+
+ return 0;
+}
+
+static int
+dlb_ldb_queue_attach_to_sn_group(struct dlb_hw *hw,
+ struct dlb_ldb_queue *queue,
+ struct dlb_create_ldb_queue_args *args)
+{
+ int slot = -1;
+ int i;
+
+ queue->sn_cfg_valid = false;
+
+ if (args->num_sequence_numbers == 0)
+ return 0;
+
+ for (i = 0; i < DLB_MAX_NUM_SEQUENCE_NUMBER_GROUPS; i++) {
+ struct dlb_sn_group *group = &hw->rsrcs.sn_groups[i];
+
+ if (group->sequence_numbers_per_queue ==
+ args->num_sequence_numbers &&
+ !dlb_sn_group_full(group)) {
+ slot = dlb_sn_group_alloc_slot(group);
+ if (slot >= 0)
+ break;
+ }
+ }
+
+ if (slot == -1) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: no sequence number slots available\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ queue->sn_cfg_valid = true;
+ queue->sn_group = i;
+ queue->sn_slot = slot;
+ return 0;
+}
+
+static int
+dlb_ldb_queue_attach_resources(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_queue *queue,
+ struct dlb_create_ldb_queue_args *args)
+{
+ int ret;
+
+ ret = dlb_ldb_queue_attach_to_sn_group(hw, queue, args);
+ if (ret)
+ return ret;
+
+ /* Attach QID inflights */
+ queue->num_qid_inflights = args->num_qid_inflights;
+
+ /* Attach atomic inflights */
+ queue->aqed_freelist.base = domain->aqed_freelist.base +
+ domain->aqed_freelist.offset;
+ queue->aqed_freelist.bound = queue->aqed_freelist.base +
+ args->num_atomic_inflights;
+ domain->aqed_freelist.offset += args->num_atomic_inflights;
+
+ return 0;
+}
+
+static void dlb_ldb_port_cq_enable(struct dlb_hw *hw,
+ struct dlb_ldb_port *port)
+{
+ union dlb_lsp_cq_ldb_dsbl reg;
+
+ /* Don't re-enable the port if a removal is pending. The caller should
+ * mark this port as enabled (if it isn't already), and when the
+ * removal completes the port will be enabled.
+ */
+ if (port->num_pending_removals)
+ return;
+
+ reg.field.disabled = 0;
+
+ DLB_CSR_WR(hw, DLB_LSP_CQ_LDB_DSBL(port->id.phys_id), reg.val);
+
+ dlb_flush_csr(hw);
+}
+
+static void dlb_ldb_port_cq_disable(struct dlb_hw *hw,
+ struct dlb_ldb_port *port)
+{
+ union dlb_lsp_cq_ldb_dsbl reg;
+
+ reg.field.disabled = 1;
+
+ DLB_CSR_WR(hw, DLB_LSP_CQ_LDB_DSBL(port->id.phys_id), reg.val);
+
+ dlb_flush_csr(hw);
+}
+
+static void dlb_dir_port_cq_enable(struct dlb_hw *hw,
+ struct dlb_dir_pq_pair *port)
+{
+ union dlb_lsp_cq_dir_dsbl reg;
+
+ reg.field.disabled = 0;
+
+ DLB_CSR_WR(hw, DLB_LSP_CQ_DIR_DSBL(port->id.phys_id), reg.val);
+
+ dlb_flush_csr(hw);
+}
+
+static void dlb_dir_port_cq_disable(struct dlb_hw *hw,
+ struct dlb_dir_pq_pair *port)
+{
+ union dlb_lsp_cq_dir_dsbl reg;
+
+ reg.field.disabled = 1;
+
+ DLB_CSR_WR(hw, DLB_LSP_CQ_DIR_DSBL(port->id.phys_id), reg.val);
+
+ dlb_flush_csr(hw);
+}
+
+static int dlb_ldb_port_configure_pp(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_port *port,
+ struct dlb_create_ldb_port_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ union dlb_sys_ldb_pp2ldbpool r0 = { {0} };
+ union dlb_sys_ldb_pp2dirpool r1 = { {0} };
+ union dlb_sys_ldb_pp2vf_pf r2 = { {0} };
+ union dlb_sys_ldb_pp2vas r3 = { {0} };
+ union dlb_sys_ldb_pp_v r4 = { {0} };
+ union dlb_sys_ldb_pp2vpp r5 = { {0} };
+ union dlb_chp_ldb_pp_ldb_crd_hwm r6 = { {0} };
+ union dlb_chp_ldb_pp_dir_crd_hwm r7 = { {0} };
+ union dlb_chp_ldb_pp_ldb_crd_lwm r8 = { {0} };
+ union dlb_chp_ldb_pp_dir_crd_lwm r9 = { {0} };
+ union dlb_chp_ldb_pp_ldb_min_crd_qnt r10 = { {0} };
+ union dlb_chp_ldb_pp_dir_min_crd_qnt r11 = { {0} };
+ union dlb_chp_ldb_pp_ldb_crd_cnt r12 = { {0} };
+ union dlb_chp_ldb_pp_dir_crd_cnt r13 = { {0} };
+ union dlb_chp_ldb_ldb_pp2pool r14 = { {0} };
+ union dlb_chp_ldb_dir_pp2pool r15 = { {0} };
+ union dlb_chp_ldb_pp_crd_req_state r16 = { {0} };
+ union dlb_chp_ldb_pp_ldb_push_ptr r17 = { {0} };
+ union dlb_chp_ldb_pp_dir_push_ptr r18 = { {0} };
+
+ struct dlb_credit_pool *ldb_pool = NULL;
+ struct dlb_credit_pool *dir_pool = NULL;
+ unsigned int offs;
+
+ if (port->ldb_pool_used) {
+ ldb_pool = dlb_get_domain_ldb_pool(args->ldb_credit_pool_id,
+ vf_request,
+ domain);
+ if (!ldb_pool) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: port validation failed\n",
+ __func__);
+ return -EFAULT;
+ }
+ }
+
+ if (port->dir_pool_used) {
+ dir_pool = dlb_get_domain_dir_pool(args->dir_credit_pool_id,
+ vf_request,
+ domain);
+ if (!dir_pool) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: port validation failed\n",
+ __func__);
+ return -EFAULT;
+ }
+ }
+
+ r0.field.ldbpool = (port->ldb_pool_used) ? ldb_pool->id.phys_id : 0;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_PP2LDBPOOL(port->id.phys_id), r0.val);
+
+ r1.field.dirpool = (port->dir_pool_used) ? dir_pool->id.phys_id : 0;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_PP2DIRPOOL(port->id.phys_id), r1.val);
+
+ r2.field.vf = vf_id;
+ r2.field.is_pf = !vf_request;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_PP2VF_PF(port->id.phys_id), r2.val);
+
+ r3.field.vas = domain->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_PP2VAS(port->id.phys_id), r3.val);
+
+ r5.field.vpp = port->id.virt_id;
+
+ offs = (vf_id * DLB_MAX_NUM_LDB_PORTS) + port->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_PP2VPP(offs), r5.val);
+
+ r6.field.hwm = args->ldb_credit_high_watermark;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_PP_LDB_CRD_HWM(port->id.phys_id), r6.val);
+
+ r7.field.hwm = args->dir_credit_high_watermark;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_PP_DIR_CRD_HWM(port->id.phys_id), r7.val);
+
+ r8.field.lwm = args->ldb_credit_low_watermark;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_PP_LDB_CRD_LWM(port->id.phys_id), r8.val);
+
+ r9.field.lwm = args->dir_credit_low_watermark;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_PP_DIR_CRD_LWM(port->id.phys_id), r9.val);
+
+ r10.field.quanta = args->ldb_credit_quantum;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_LDB_MIN_CRD_QNT(port->id.phys_id),
+ r10.val);
+
+ r11.field.quanta = args->dir_credit_quantum;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_DIR_MIN_CRD_QNT(port->id.phys_id),
+ r11.val);
+
+ r12.field.count = args->ldb_credit_high_watermark;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_PP_LDB_CRD_CNT(port->id.phys_id), r12.val);
+
+ r13.field.count = args->dir_credit_high_watermark;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_PP_DIR_CRD_CNT(port->id.phys_id), r13.val);
+
+ r14.field.pool = (port->ldb_pool_used) ? ldb_pool->id.phys_id : 0;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_LDB_PP2POOL(port->id.phys_id), r14.val);
+
+ r15.field.pool = (port->dir_pool_used) ? dir_pool->id.phys_id : 0;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_DIR_PP2POOL(port->id.phys_id), r15.val);
+
+ r16.field.no_pp_credit_update = 0;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_PP_CRD_REQ_STATE(port->id.phys_id), r16.val);
+
+ r17.field.push_pointer = 0;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_PP_LDB_PUSH_PTR(port->id.phys_id), r17.val);
+
+ r18.field.push_pointer = 0;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_PP_DIR_PUSH_PTR(port->id.phys_id), r18.val);
+
+ if (vf_request) {
+ union dlb_sys_vf_ldb_vpp2pp r16 = { {0} };
+ union dlb_sys_vf_ldb_vpp_v r17 = { {0} };
+
+ r16.field.pp = port->id.phys_id;
+
+ offs = vf_id * DLB_MAX_NUM_LDB_PORTS + port->id.virt_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_VF_LDB_VPP2PP(offs), r16.val);
+
+ r17.field.vpp_v = 1;
+
+ DLB_CSR_WR(hw, DLB_SYS_VF_LDB_VPP_V(offs), r17.val);
+ }
+
+ r4.field.pp_v = 1;
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_PP_V(port->id.phys_id),
+ r4.val);
+
+ return 0;
+}
+
+static int dlb_ldb_port_configure_cq(struct dlb_hw *hw,
+ struct dlb_ldb_port *port,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_create_ldb_port_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ int i;
+
+ union dlb_sys_ldb_cq_addr_l r0 = { {0} };
+ union dlb_sys_ldb_cq_addr_u r1 = { {0} };
+ union dlb_sys_ldb_cq2vf_pf r2 = { {0} };
+ union dlb_chp_ldb_cq_tkn_depth_sel r3 = { {0} };
+ union dlb_chp_hist_list_lim r4 = { {0} };
+ union dlb_chp_hist_list_base r5 = { {0} };
+ union dlb_lsp_cq_ldb_infl_lim r6 = { {0} };
+ union dlb_lsp_cq2priov r7 = { {0} };
+ union dlb_chp_hist_list_push_ptr r8 = { {0} };
+ union dlb_chp_hist_list_pop_ptr r9 = { {0} };
+ union dlb_lsp_cq_ldb_tkn_depth_sel r10 = { {0} };
+ union dlb_sys_ldb_pp_addr_l r11 = { {0} };
+ union dlb_sys_ldb_pp_addr_u r12 = { {0} };
+
+ /* The CQ address is 64B-aligned, and the DLB only wants bits [63:6] */
+ r0.field.addr_l = cq_dma_base >> 6;
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_CQ_ADDR_L(port->id.phys_id),
+ r0.val);
+
+ r1.field.addr_u = cq_dma_base >> 32;
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_CQ_ADDR_U(port->id.phys_id),
+ r1.val);
+
+ r2.field.vf = vf_id;
+ r2.field.is_pf = !vf_request;
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_CQ2VF_PF(port->id.phys_id),
+ r2.val);
+
+ if (args->cq_depth <= 8) {
+ r3.field.token_depth_select = 1;
+ } else if (args->cq_depth == 16) {
+ r3.field.token_depth_select = 2;
+ } else if (args->cq_depth == 32) {
+ r3.field.token_depth_select = 3;
+ } else if (args->cq_depth == 64) {
+ r3.field.token_depth_select = 4;
+ } else if (args->cq_depth == 128) {
+ r3.field.token_depth_select = 5;
+ } else if (args->cq_depth == 256) {
+ r3.field.token_depth_select = 6;
+ } else if (args->cq_depth == 512) {
+ r3.field.token_depth_select = 7;
+ } else if (args->cq_depth == 1024) {
+ r3.field.token_depth_select = 8;
+ } else {
+ DLB_HW_ERR(hw, "[%s():%d] Internal error: invalid CQ depth\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_CQ_TKN_DEPTH_SEL(port->id.phys_id),
+ r3.val);
+
+ r10.field.token_depth_select = r3.field.token_depth_select;
+ r10.field.ignore_depth = 0;
+ /* TDT algorithm: DLB must be able to write CQs with depth < 4 */
+ r10.field.enab_shallow_cq = 1;
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_CQ_LDB_TKN_DEPTH_SEL(port->id.phys_id),
+ r10.val);
+
+ /* To support CQs with depth less than 8, program the token count
+ * register with a non-zero initial value. Operations such as domain
+ * reset must take this initial value into account when quiescing the
+ * CQ.
+ */
+ port->init_tkn_cnt = 0;
+
+ if (args->cq_depth < 8) {
+ union dlb_lsp_cq_ldb_tkn_cnt r12 = { {0} };
+
+ port->init_tkn_cnt = 8 - args->cq_depth;
+
+ r12.field.token_count = port->init_tkn_cnt;
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_CQ_LDB_TKN_CNT(port->id.phys_id),
+ r12.val);
+ }
+
+ r4.field.limit = port->hist_list_entry_limit - 1;
+
+ DLB_CSR_WR(hw, DLB_CHP_HIST_LIST_LIM(port->id.phys_id), r4.val);
+
+ r5.field.base = port->hist_list_entry_base;
+
+ DLB_CSR_WR(hw, DLB_CHP_HIST_LIST_BASE(port->id.phys_id), r5.val);
+
+ r8.field.push_ptr = r5.field.base;
+ r8.field.generation = 0;
+
+ DLB_CSR_WR(hw, DLB_CHP_HIST_LIST_PUSH_PTR(port->id.phys_id), r8.val);
+
+ r9.field.pop_ptr = r5.field.base;
+ r9.field.generation = 0;
+
+ DLB_CSR_WR(hw, DLB_CHP_HIST_LIST_POP_PTR(port->id.phys_id), r9.val);
+
+ /* The inflight limit sets a cap on the number of QEs for which this CQ
+ * can owe completions at one time.
+ */
+ r6.field.limit = args->cq_history_list_size;
+
+ DLB_CSR_WR(hw, DLB_LSP_CQ_LDB_INFL_LIM(port->id.phys_id), r6.val);
+
+ /* Disable the port's QID mappings */
+ r7.field.v = 0;
+
+ DLB_CSR_WR(hw, DLB_LSP_CQ2PRIOV(port->id.phys_id), r7.val);
+
+ /* Two cache lines (128B) are dedicated for the port's pop counts */
+ r11.field.addr_l = pop_count_dma_base >> 7;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_PP_ADDR_L(port->id.phys_id), r11.val);
+
+ r12.field.addr_u = pop_count_dma_base >> 32;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_PP_ADDR_U(port->id.phys_id), r12.val);
+
+ for (i = 0; i < DLB_MAX_NUM_QIDS_PER_LDB_CQ; i++)
+ port->qid_map[i].state = DLB_QUEUE_UNMAPPED;
+
+ return 0;
+}
+
+static void dlb_update_ldb_arb_threshold(struct dlb_hw *hw)
+{
+ union dlb_lsp_ctrl_config_0 r0 = { {0} };
+
+ /* From the hardware spec:
+ * "The optimal value for ldb_arb_threshold is in the region of {8 *
+ * #CQs}. It is expected therefore that the PF will change this value
+ * dynamically as the number of active ports changes."
+ */
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_CTRL_CONFIG_0);
+
+ r0.field.ldb_arb_threshold = hw->pf.num_enabled_ldb_ports * 8;
+ r0.field.ldb_arb_ignore_empty = 1;
+ r0.field.ldb_arb_mode = 1;
+
+ DLB_CSR_WR(hw, DLB_LSP_CTRL_CONFIG_0, r0.val);
+
+ dlb_flush_csr(hw);
+}
+
+static void dlb_ldb_pool_update_credit_count(struct dlb_hw *hw,
+ u32 pool_id,
+ u32 count)
+{
+ hw->rsrcs.ldb_credit_pools[pool_id].avail_credits -= count;
+}
+
+static void dlb_dir_pool_update_credit_count(struct dlb_hw *hw,
+ u32 pool_id,
+ u32 count)
+{
+ hw->rsrcs.dir_credit_pools[pool_id].avail_credits -= count;
+}
+
+static void dlb_ldb_pool_write_credit_count_reg(struct dlb_hw *hw,
+ u32 pool_id)
+{
+ union dlb_chp_ldb_pool_crd_cnt r0 = { {0} };
+ struct dlb_credit_pool *pool;
+
+ pool = &hw->rsrcs.ldb_credit_pools[pool_id];
+
+ r0.field.count = pool->avail_credits;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_POOL_CRD_CNT(pool->id.phys_id),
+ r0.val);
+}
+
+static void dlb_dir_pool_write_credit_count_reg(struct dlb_hw *hw,
+ u32 pool_id)
+{
+ union dlb_chp_dir_pool_crd_cnt r0 = { {0} };
+ struct dlb_credit_pool *pool;
+
+ pool = &hw->rsrcs.dir_credit_pools[pool_id];
+
+ r0.field.count = pool->avail_credits;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_POOL_CRD_CNT(pool->id.phys_id),
+ r0.val);
+}
+
+static int dlb_configure_ldb_port(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_port *port,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_create_ldb_port_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_credit_pool *ldb_pool, *dir_pool;
+ int ret;
+
+ port->hist_list_entry_base = domain->hist_list_entry_base +
+ domain->hist_list_entry_offset;
+ port->hist_list_entry_limit = port->hist_list_entry_base +
+ args->cq_history_list_size;
+
+ domain->hist_list_entry_offset += args->cq_history_list_size;
+ domain->avail_hist_list_entries -= args->cq_history_list_size;
+
+ port->ldb_pool_used = !dlb_list_empty(&domain->used_ldb_queues) ||
+ !dlb_list_empty(&domain->avail_ldb_queues);
+ port->dir_pool_used = !dlb_list_empty(&domain->used_dir_pq_pairs) ||
+ !dlb_list_empty(&domain->avail_dir_pq_pairs);
+
+ if (port->ldb_pool_used) {
+ u32 cnt = args->ldb_credit_high_watermark;
+
+ ldb_pool = dlb_get_domain_ldb_pool(args->ldb_credit_pool_id,
+ vf_request,
+ domain);
+ if (!ldb_pool) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: port validation failed\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ dlb_ldb_pool_update_credit_count(hw, ldb_pool->id.phys_id, cnt);
+ } else {
+ args->ldb_credit_high_watermark = 0;
+ args->ldb_credit_low_watermark = 0;
+ args->ldb_credit_quantum = 0;
+ }
+
+ if (port->dir_pool_used) {
+ u32 cnt = args->dir_credit_high_watermark;
+
+ dir_pool = dlb_get_domain_dir_pool(args->dir_credit_pool_id,
+ vf_request,
+ domain);
+ if (!dir_pool) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: port validation failed\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ dlb_dir_pool_update_credit_count(hw, dir_pool->id.phys_id, cnt);
+ } else {
+ args->dir_credit_high_watermark = 0;
+ args->dir_credit_low_watermark = 0;
+ args->dir_credit_quantum = 0;
+ }
+
+ ret = dlb_ldb_port_configure_cq(hw,
+ port,
+ pop_count_dma_base,
+ cq_dma_base,
+ args,
+ vf_request,
+ vf_id);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_ldb_port_configure_pp(hw,
+ domain,
+ port,
+ args,
+ vf_request,
+ vf_id);
+ if (ret < 0)
+ return ret;
+
+ dlb_ldb_port_cq_enable(hw, port);
+
+ port->num_mappings = 0;
+
+ port->enabled = true;
+
+ hw->pf.num_enabled_ldb_ports++;
+
+ dlb_update_ldb_arb_threshold(hw);
+
+ port->configured = true;
+
+ return 0;
+}
+
+static int dlb_dir_port_configure_pp(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_dir_pq_pair *port,
+ struct dlb_create_dir_port_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ union dlb_sys_dir_pp2ldbpool r0 = { {0} };
+ union dlb_sys_dir_pp2dirpool r1 = { {0} };
+ union dlb_sys_dir_pp2vf_pf r2 = { {0} };
+ union dlb_sys_dir_pp2vas r3 = { {0} };
+ union dlb_sys_dir_pp_v r4 = { {0} };
+ union dlb_sys_dir_pp2vpp r5 = { {0} };
+ union dlb_chp_dir_pp_ldb_crd_hwm r6 = { {0} };
+ union dlb_chp_dir_pp_dir_crd_hwm r7 = { {0} };
+ union dlb_chp_dir_pp_ldb_crd_lwm r8 = { {0} };
+ union dlb_chp_dir_pp_dir_crd_lwm r9 = { {0} };
+ union dlb_chp_dir_pp_ldb_min_crd_qnt r10 = { {0} };
+ union dlb_chp_dir_pp_dir_min_crd_qnt r11 = { {0} };
+ union dlb_chp_dir_pp_ldb_crd_cnt r12 = { {0} };
+ union dlb_chp_dir_pp_dir_crd_cnt r13 = { {0} };
+ union dlb_chp_dir_ldb_pp2pool r14 = { {0} };
+ union dlb_chp_dir_dir_pp2pool r15 = { {0} };
+ union dlb_chp_dir_pp_crd_req_state r16 = { {0} };
+ union dlb_chp_dir_pp_ldb_push_ptr r17 = { {0} };
+ union dlb_chp_dir_pp_dir_push_ptr r18 = { {0} };
+
+ struct dlb_credit_pool *ldb_pool = NULL;
+ struct dlb_credit_pool *dir_pool = NULL;
+
+ if (port->ldb_pool_used) {
+ ldb_pool = dlb_get_domain_ldb_pool(args->ldb_credit_pool_id,
+ vf_request,
+ domain);
+ if (!ldb_pool) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: port validation failed\n",
+ __func__);
+ return -EFAULT;
+ }
+ }
+
+ if (port->dir_pool_used) {
+ dir_pool = dlb_get_domain_dir_pool(args->dir_credit_pool_id,
+ vf_request,
+ domain);
+ if (!dir_pool) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: port validation failed\n",
+ __func__);
+ return -EFAULT;
+ }
+ }
+
+ r0.field.ldbpool = (port->ldb_pool_used) ? ldb_pool->id.phys_id : 0;
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP2LDBPOOL(port->id.phys_id),
+ r0.val);
+
+ r1.field.dirpool = (port->dir_pool_used) ? dir_pool->id.phys_id : 0;
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP2DIRPOOL(port->id.phys_id),
+ r1.val);
+
+ r2.field.vf = vf_id;
+ r2.field.is_pf = !vf_request;
+ r2.field.is_hw_dsi = 0;
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP2VF_PF(port->id.phys_id),
+ r2.val);
+
+ r3.field.vas = domain->id.phys_id;
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP2VAS(port->id.phys_id),
+ r3.val);
+
+ r5.field.vpp = port->id.virt_id;
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP2VPP((vf_id * DLB_MAX_NUM_DIR_PORTS) +
+ port->id.phys_id),
+ r5.val);
+
+ r6.field.hwm = args->ldb_credit_high_watermark;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_LDB_CRD_HWM(port->id.phys_id),
+ r6.val);
+
+ r7.field.hwm = args->dir_credit_high_watermark;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_DIR_CRD_HWM(port->id.phys_id),
+ r7.val);
+
+ r8.field.lwm = args->ldb_credit_low_watermark;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_LDB_CRD_LWM(port->id.phys_id),
+ r8.val);
+
+ r9.field.lwm = args->dir_credit_low_watermark;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_DIR_CRD_LWM(port->id.phys_id),
+ r9.val);
+
+ r10.field.quanta = args->ldb_credit_quantum;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_LDB_MIN_CRD_QNT(port->id.phys_id),
+ r10.val);
+
+ r11.field.quanta = args->dir_credit_quantum;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_DIR_MIN_CRD_QNT(port->id.phys_id),
+ r11.val);
+
+ r12.field.count = args->ldb_credit_high_watermark;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_LDB_CRD_CNT(port->id.phys_id),
+ r12.val);
+
+ r13.field.count = args->dir_credit_high_watermark;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_DIR_CRD_CNT(port->id.phys_id),
+ r13.val);
+
+ r14.field.pool = (port->ldb_pool_used) ? ldb_pool->id.phys_id : 0;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_LDB_PP2POOL(port->id.phys_id),
+ r14.val);
+
+ r15.field.pool = (port->dir_pool_used) ? dir_pool->id.phys_id : 0;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_DIR_PP2POOL(port->id.phys_id),
+ r15.val);
+
+ r16.field.no_pp_credit_update = 0;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_CRD_REQ_STATE(port->id.phys_id),
+ r16.val);
+
+ r17.field.push_pointer = 0;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_LDB_PUSH_PTR(port->id.phys_id),
+ r17.val);
+
+ r18.field.push_pointer = 0;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_DIR_PUSH_PTR(port->id.phys_id),
+ r18.val);
+
+ if (vf_request) {
+ union dlb_sys_vf_dir_vpp2pp r16 = { {0} };
+ union dlb_sys_vf_dir_vpp_v r17 = { {0} };
+ unsigned int offs;
+
+ r16.field.pp = port->id.phys_id;
+
+ offs = vf_id * DLB_MAX_NUM_DIR_PORTS + port->id.virt_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_VF_DIR_VPP2PP(offs), r16.val);
+
+ r17.field.vpp_v = 1;
+
+ DLB_CSR_WR(hw, DLB_SYS_VF_DIR_VPP_V(offs), r17.val);
+ }
+
+ r4.field.pp_v = 1;
+ r4.field.mb_dm = 0;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_PP_V(port->id.phys_id), r4.val);
+
+ return 0;
+}
+
+static int dlb_dir_port_configure_cq(struct dlb_hw *hw,
+ struct dlb_dir_pq_pair *port,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_create_dir_port_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ union dlb_sys_dir_cq_addr_l r0 = { {0} };
+ union dlb_sys_dir_cq_addr_u r1 = { {0} };
+ union dlb_sys_dir_cq2vf_pf r2 = { {0} };
+ union dlb_chp_dir_cq_tkn_depth_sel r3 = { {0} };
+ union dlb_lsp_cq_dir_tkn_depth_sel_dsi r4 = { {0} };
+ union dlb_sys_dir_pp_addr_l r5 = { {0} };
+ union dlb_sys_dir_pp_addr_u r6 = { {0} };
+
+ /* The CQ address is 64B-aligned, and the DLB only wants bits [63:6] */
+ r0.field.addr_l = cq_dma_base >> 6;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_CQ_ADDR_L(port->id.phys_id), r0.val);
+
+ r1.field.addr_u = cq_dma_base >> 32;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_CQ_ADDR_U(port->id.phys_id), r1.val);
+
+ r2.field.vf = vf_id;
+ r2.field.is_pf = !vf_request;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_CQ2VF_PF(port->id.phys_id), r2.val);
+
+ if (args->cq_depth == 8) {
+ r3.field.token_depth_select = 1;
+ } else if (args->cq_depth == 16) {
+ r3.field.token_depth_select = 2;
+ } else if (args->cq_depth == 32) {
+ r3.field.token_depth_select = 3;
+ } else if (args->cq_depth == 64) {
+ r3.field.token_depth_select = 4;
+ } else if (args->cq_depth == 128) {
+ r3.field.token_depth_select = 5;
+ } else if (args->cq_depth == 256) {
+ r3.field.token_depth_select = 6;
+ } else if (args->cq_depth == 512) {
+ r3.field.token_depth_select = 7;
+ } else if (args->cq_depth == 1024) {
+ r3.field.token_depth_select = 8;
+ } else {
+ DLB_HW_ERR(hw, "[%s():%d] Internal error: invalid CQ depth\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_CQ_TKN_DEPTH_SEL(port->id.phys_id),
+ r3.val);
+
+ r4.field.token_depth_select = r3.field.token_depth_select;
+ r4.field.disable_wb_opt = 0;
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_CQ_DIR_TKN_DEPTH_SEL_DSI(port->id.phys_id),
+ r4.val);
+
+ /* Two cache lines (128B) are dedicated for the port's pop counts */
+ r5.field.addr_l = pop_count_dma_base >> 7;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_PP_ADDR_L(port->id.phys_id), r5.val);
+
+ r6.field.addr_u = pop_count_dma_base >> 32;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_PP_ADDR_U(port->id.phys_id), r6.val);
+
+ return 0;
+}
+
+static int dlb_configure_dir_port(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_dir_pq_pair *port,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_create_dir_port_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_credit_pool *ldb_pool, *dir_pool;
+ int ret;
+
+ port->ldb_pool_used = !dlb_list_empty(&domain->used_ldb_queues) ||
+ !dlb_list_empty(&domain->avail_ldb_queues);
+
+ /* Each directed port has a directed queue, hence this port requires
+ * directed credits.
+ */
+ port->dir_pool_used = true;
+
+ if (port->ldb_pool_used) {
+ u32 cnt = args->ldb_credit_high_watermark;
+
+ ldb_pool = dlb_get_domain_ldb_pool(args->ldb_credit_pool_id,
+ vf_request,
+ domain);
+ if (!ldb_pool) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: port validation failed\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ dlb_ldb_pool_update_credit_count(hw, ldb_pool->id.phys_id, cnt);
+ } else {
+ args->ldb_credit_high_watermark = 0;
+ args->ldb_credit_low_watermark = 0;
+ args->ldb_credit_quantum = 0;
+ }
+
+ dir_pool = dlb_get_domain_dir_pool(args->dir_credit_pool_id,
+ vf_request,
+ domain);
+ if (!dir_pool) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: port validation failed\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ dlb_dir_pool_update_credit_count(hw,
+ dir_pool->id.phys_id,
+ args->dir_credit_high_watermark);
+
+ ret = dlb_dir_port_configure_cq(hw,
+ port,
+ pop_count_dma_base,
+ cq_dma_base,
+ args,
+ vf_request,
+ vf_id);
+
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_dir_port_configure_pp(hw,
+ domain,
+ port,
+ args,
+ vf_request,
+ vf_id);
+ if (ret < 0)
+ return ret;
+
+ dlb_dir_port_cq_enable(hw, port);
+
+ port->enabled = true;
+
+ port->port_configured = true;
+
+ return 0;
+}
+
+static int dlb_ldb_port_map_qid_static(struct dlb_hw *hw,
+ struct dlb_ldb_port *p,
+ struct dlb_ldb_queue *q,
+ u8 priority)
+{
+ union dlb_lsp_cq2priov r0;
+ union dlb_lsp_cq2qid r1;
+ union dlb_atm_pipe_qid_ldb_qid2cqidx r2;
+ union dlb_lsp_qid_ldb_qid2cqidx r3;
+ union dlb_lsp_qid_ldb_qid2cqidx2 r4;
+ enum dlb_qid_map_state state;
+ int i;
+
+ /* Look for a pending or already mapped slot, else an unused slot */
+ if (!dlb_port_find_slot_queue(p, DLB_QUEUE_MAP_IN_PROGRESS, q, &i) &&
+ !dlb_port_find_slot_queue(p, DLB_QUEUE_MAPPED, q, &i) &&
+ !dlb_port_find_slot(p, DLB_QUEUE_UNMAPPED, &i)) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: CQ has no available QID mapping slots\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ if (i >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ /* Read-modify-write the priority and valid bit register */
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_CQ2PRIOV(p->id.phys_id));
+
+ r0.field.v |= 1 << i;
+ r0.field.prio |= (priority & 0x7) << i * 3;
+
+ DLB_CSR_WR(hw, DLB_LSP_CQ2PRIOV(p->id.phys_id), r0.val);
+
+ /* Read-modify-write the QID map register */
+ r1.val = DLB_CSR_RD(hw, DLB_LSP_CQ2QID(p->id.phys_id, i / 4));
+
+ if (i == 0 || i == 4)
+ r1.field.qid_p0 = q->id.phys_id;
+ if (i == 1 || i == 5)
+ r1.field.qid_p1 = q->id.phys_id;
+ if (i == 2 || i == 6)
+ r1.field.qid_p2 = q->id.phys_id;
+ if (i == 3 || i == 7)
+ r1.field.qid_p3 = q->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_LSP_CQ2QID(p->id.phys_id, i / 4), r1.val);
+
+ r2.val = DLB_CSR_RD(hw,
+ DLB_ATM_PIPE_QID_LDB_QID2CQIDX(q->id.phys_id,
+ p->id.phys_id / 4));
+
+ r3.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_LDB_QID2CQIDX(q->id.phys_id,
+ p->id.phys_id / 4));
+
+ r4.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_LDB_QID2CQIDX2(q->id.phys_id,
+ p->id.phys_id / 4));
+
+ switch (p->id.phys_id % 4) {
+ case 0:
+ r2.field.cq_p0 |= 1 << i;
+ r3.field.cq_p0 |= 1 << i;
+ r4.field.cq_p0 |= 1 << i;
+ break;
+
+ case 1:
+ r2.field.cq_p1 |= 1 << i;
+ r3.field.cq_p1 |= 1 << i;
+ r4.field.cq_p1 |= 1 << i;
+ break;
+
+ case 2:
+ r2.field.cq_p2 |= 1 << i;
+ r3.field.cq_p2 |= 1 << i;
+ r4.field.cq_p2 |= 1 << i;
+ break;
+
+ case 3:
+ r2.field.cq_p3 |= 1 << i;
+ r3.field.cq_p3 |= 1 << i;
+ r4.field.cq_p3 |= 1 << i;
+ break;
+ }
+
+ DLB_CSR_WR(hw,
+ DLB_ATM_PIPE_QID_LDB_QID2CQIDX(q->id.phys_id,
+ p->id.phys_id / 4),
+ r2.val);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_QID_LDB_QID2CQIDX(q->id.phys_id,
+ p->id.phys_id / 4),
+ r3.val);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_QID_LDB_QID2CQIDX2(q->id.phys_id,
+ p->id.phys_id / 4),
+ r4.val);
+
+ dlb_flush_csr(hw);
+
+ p->qid_map[i].qid = q->id.phys_id;
+ p->qid_map[i].priority = priority;
+
+ state = DLB_QUEUE_MAPPED;
+
+ return dlb_port_slot_state_transition(hw, p, q, i, state);
+}
+
+static void dlb_ldb_port_change_qid_priority(struct dlb_hw *hw,
+ struct dlb_ldb_port *port,
+ int slot,
+ struct dlb_map_qid_args *args)
+{
+ union dlb_lsp_cq2priov r0;
+
+ /* Read-modify-write the priority and valid bit register */
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_CQ2PRIOV(port->id.phys_id));
+
+ r0.field.v |= 1 << slot;
+ r0.field.prio |= (args->priority & 0x7) << slot * 3;
+
+ DLB_CSR_WR(hw, DLB_LSP_CQ2PRIOV(port->id.phys_id), r0.val);
+
+ dlb_flush_csr(hw);
+
+ port->qid_map[slot].priority = args->priority;
+}
+
+static int dlb_ldb_port_set_has_work_bits(struct dlb_hw *hw,
+ struct dlb_ldb_port *port,
+ struct dlb_ldb_queue *queue,
+ int slot)
+{
+ union dlb_lsp_qid_aqed_active_cnt r0;
+ union dlb_lsp_qid_ldb_enqueue_cnt r1;
+ union dlb_lsp_ldb_sched_ctrl r2 = { {0} };
+
+ /* Set the atomic scheduling haswork bit */
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_QID_AQED_ACTIVE_CNT(queue->id.phys_id));
+
+ r2.field.cq = port->id.phys_id;
+ r2.field.qidix = slot;
+ r2.field.value = 1;
+ r2.field.rlist_haswork_v = r0.field.count > 0;
+
+ /* Set the non-atomic scheduling haswork bit */
+ DLB_CSR_WR(hw, DLB_LSP_LDB_SCHED_CTRL, r2.val);
+
+ r1.val = DLB_CSR_RD(hw, DLB_LSP_QID_LDB_ENQUEUE_CNT(queue->id.phys_id));
+
+ memset(&r2, 0, sizeof(r2));
+
+ r2.field.cq = port->id.phys_id;
+ r2.field.qidix = slot;
+ r2.field.value = 1;
+ r2.field.nalb_haswork_v = (r1.field.count > 0);
+
+ DLB_CSR_WR(hw, DLB_LSP_LDB_SCHED_CTRL, r2.val);
+
+ dlb_flush_csr(hw);
+
+ return 0;
+}
+
+static void dlb_ldb_port_clear_has_work_bits(struct dlb_hw *hw,
+ struct dlb_ldb_port *port,
+ u8 slot)
+{
+ union dlb_lsp_ldb_sched_ctrl r2 = { {0} };
+
+ r2.field.cq = port->id.phys_id;
+ r2.field.qidix = slot;
+ r2.field.value = 0;
+ r2.field.rlist_haswork_v = 1;
+
+ DLB_CSR_WR(hw, DLB_LSP_LDB_SCHED_CTRL, r2.val);
+
+ memset(&r2, 0, sizeof(r2));
+
+ r2.field.cq = port->id.phys_id;
+ r2.field.qidix = slot;
+ r2.field.value = 0;
+ r2.field.nalb_haswork_v = 1;
+
+ DLB_CSR_WR(hw, DLB_LSP_LDB_SCHED_CTRL, r2.val);
+
+ dlb_flush_csr(hw);
+}
+
+static void dlb_ldb_port_clear_queue_if_status(struct dlb_hw *hw,
+ struct dlb_ldb_port *port,
+ int slot)
+{
+ union dlb_lsp_ldb_sched_ctrl r0 = { {0} };
+
+ r0.field.cq = port->id.phys_id;
+ r0.field.qidix = slot;
+ r0.field.value = 0;
+ r0.field.inflight_ok_v = 1;
+
+ DLB_CSR_WR(hw, DLB_LSP_LDB_SCHED_CTRL, r0.val);
+
+ dlb_flush_csr(hw);
+}
+
+static void dlb_ldb_port_set_queue_if_status(struct dlb_hw *hw,
+ struct dlb_ldb_port *port,
+ int slot)
+{
+ union dlb_lsp_ldb_sched_ctrl r0 = { {0} };
+
+ r0.field.cq = port->id.phys_id;
+ r0.field.qidix = slot;
+ r0.field.value = 1;
+ r0.field.inflight_ok_v = 1;
+
+ DLB_CSR_WR(hw, DLB_LSP_LDB_SCHED_CTRL, r0.val);
+
+ dlb_flush_csr(hw);
+}
+
+static void dlb_ldb_queue_set_inflight_limit(struct dlb_hw *hw,
+ struct dlb_ldb_queue *queue)
+{
+ union dlb_lsp_qid_ldb_infl_lim r0 = { {0} };
+
+ r0.field.limit = queue->num_qid_inflights;
+
+ DLB_CSR_WR(hw, DLB_LSP_QID_LDB_INFL_LIM(queue->id.phys_id), r0.val);
+}
+
+static void dlb_ldb_queue_clear_inflight_limit(struct dlb_hw *hw,
+ struct dlb_ldb_queue *queue)
+{
+ DLB_CSR_WR(hw,
+ DLB_LSP_QID_LDB_INFL_LIM(queue->id.phys_id),
+ DLB_LSP_QID_LDB_INFL_LIM_RST);
+}
+
+/* dlb_ldb_queue_{enable, disable}_mapped_cqs() don't operate exactly as their
+ * function names imply, and should only be called by the dynamic CQ mapping
+ * code.
+ */
+static void dlb_ldb_queue_disable_mapped_cqs(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_queue *queue)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+ int slot;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter) {
+ enum dlb_qid_map_state state = DLB_QUEUE_MAPPED;
+
+ if (!dlb_port_find_slot_queue(port, state, queue, &slot))
+ continue;
+
+ if (port->enabled)
+ dlb_ldb_port_cq_disable(hw, port);
+ }
+}
+
+static void dlb_ldb_queue_enable_mapped_cqs(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_queue *queue)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+ int slot;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter) {
+ enum dlb_qid_map_state state = DLB_QUEUE_MAPPED;
+
+ if (!dlb_port_find_slot_queue(port, state, queue, &slot))
+ continue;
+
+ if (port->enabled)
+ dlb_ldb_port_cq_enable(hw, port);
+ }
+}
+
+static int dlb_ldb_port_finish_map_qid_dynamic(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_port *port,
+ struct dlb_ldb_queue *queue)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_lsp_qid_ldb_infl_cnt r0;
+ enum dlb_qid_map_state state;
+ int slot, ret;
+ u8 prio;
+
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_QID_LDB_INFL_CNT(queue->id.phys_id));
+
+ if (r0.field.count) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: non-zero QID inflight count\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ /* For each port with a pending mapping to this queue, perform the
+ * static mapping and set the corresponding has_work bits.
+ */
+ state = DLB_QUEUE_MAP_IN_PROGRESS;
+ if (!dlb_port_find_slot_queue(port, state, queue, &slot))
+ return -EINVAL;
+
+ if (slot >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ prio = port->qid_map[slot].priority;
+
+ /* Update the CQ2QID, CQ2PRIOV, and QID2CQIDX registers, and
+ * the port's qid_map state.
+ */
+ ret = dlb_ldb_port_map_qid_static(hw, port, queue, prio);
+ if (ret)
+ return ret;
+
+ ret = dlb_ldb_port_set_has_work_bits(hw, port, queue, slot);
+ if (ret)
+ return ret;
+
+ /* Ensure IF_status(cq,qid) is 0 before enabling the port to
+ * prevent spurious schedules to cause the queue's inflight
+ * count to increase.
+ */
+ dlb_ldb_port_clear_queue_if_status(hw, port, slot);
+
+ /* Reset the queue's inflight status */
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter) {
+ state = DLB_QUEUE_MAPPED;
+ if (!dlb_port_find_slot_queue(port, state, queue, &slot))
+ continue;
+
+ dlb_ldb_port_set_queue_if_status(hw, port, slot);
+ }
+
+ dlb_ldb_queue_set_inflight_limit(hw, queue);
+
+ /* Re-enable CQs mapped to this queue */
+ dlb_ldb_queue_enable_mapped_cqs(hw, domain, queue);
+
+ /* If this queue has other mappings pending, clear its inflight limit */
+ if (queue->num_pending_additions > 0)
+ dlb_ldb_queue_clear_inflight_limit(hw, queue);
+
+ return 0;
+}
+
+/**
+ * dlb_ldb_port_map_qid_dynamic() - perform a "dynamic" QID->CQ mapping
+ * @hw: dlb_hw handle for a particular device.
+ * @port: load-balanced port
+ * @queue: load-balanced queue
+ * @priority: queue servicing priority
+ *
+ * Returns 0 if the queue was mapped, 1 if the mapping is scheduled to occur
+ * at a later point, and <0 if an error occurred.
+ */
+static int dlb_ldb_port_map_qid_dynamic(struct dlb_hw *hw,
+ struct dlb_ldb_port *port,
+ struct dlb_ldb_queue *queue,
+ u8 priority)
+{
+ union dlb_lsp_qid_ldb_infl_cnt r0 = { {0} };
+ enum dlb_qid_map_state state;
+ struct dlb_domain *domain;
+ int slot, ret;
+
+ domain = dlb_get_domain_from_id(hw, port->domain_id.phys_id, false, 0);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: unable to find domain %d\n",
+ __func__, port->domain_id.phys_id);
+ return -EFAULT;
+ }
+
+ /* Set the QID inflight limit to 0 to prevent further scheduling of the
+ * queue.
+ */
+ DLB_CSR_WR(hw, DLB_LSP_QID_LDB_INFL_LIM(queue->id.phys_id), 0);
+
+ if (!dlb_port_find_slot(port, DLB_QUEUE_UNMAPPED, &slot)) {
+ DLB_HW_ERR(hw,
+ "Internal error: No available unmapped slots\n");
+ return -EFAULT;
+ }
+
+ if (slot >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ port->qid_map[slot].qid = queue->id.phys_id;
+ port->qid_map[slot].priority = priority;
+
+ state = DLB_QUEUE_MAP_IN_PROGRESS;
+ ret = dlb_port_slot_state_transition(hw, port, queue, slot, state);
+ if (ret)
+ return ret;
+
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_QID_LDB_INFL_CNT(queue->id.phys_id));
+
+ if (r0.field.count) {
+ /* The queue is owed completions so it's not safe to map it
+ * yet. Schedule a kernel thread to complete the mapping later,
+ * once software has completed all the queue's inflight events.
+ */
+ if (!os_worker_active(hw))
+ os_schedule_work(hw);
+
+ return 1;
+ }
+
+ /* Disable the affected CQ, and the CQs already mapped to the QID,
+ * before reading the QID's inflight count a second time. There is an
+ * unlikely race in which the QID may schedule one more QE after we
+ * read an inflight count of 0, and disabling the CQs guarantees that
+ * the race will not occur after a re-read of the inflight count
+ * register.
+ */
+ if (port->enabled)
+ dlb_ldb_port_cq_disable(hw, port);
+
+ dlb_ldb_queue_disable_mapped_cqs(hw, domain, queue);
+
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_QID_LDB_INFL_CNT(queue->id.phys_id));
+
+ if (r0.field.count) {
+ if (port->enabled)
+ dlb_ldb_port_cq_enable(hw, port);
+
+ dlb_ldb_queue_enable_mapped_cqs(hw, domain, queue);
+
+ /* The queue is owed completions so it's not safe to map it
+ * yet. Schedule a kernel thread to complete the mapping later,
+ * once software has completed all the queue's inflight events.
+ */
+ if (!os_worker_active(hw))
+ os_schedule_work(hw);
+
+ return 1;
+ }
+
+ return dlb_ldb_port_finish_map_qid_dynamic(hw, domain, port, queue);
+}
+
+static int dlb_ldb_port_map_qid(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_port *port,
+ struct dlb_ldb_queue *queue,
+ u8 prio)
+{
+ if (domain->started)
+ return dlb_ldb_port_map_qid_dynamic(hw, port, queue, prio);
+ else
+ return dlb_ldb_port_map_qid_static(hw, port, queue, prio);
+}
+
+static int dlb_ldb_port_unmap_qid(struct dlb_hw *hw,
+ struct dlb_ldb_port *port,
+ struct dlb_ldb_queue *queue)
+{
+ enum dlb_qid_map_state mapped, in_progress, pending_map, unmapped;
+ union dlb_lsp_cq2priov r0;
+ union dlb_atm_pipe_qid_ldb_qid2cqidx r1;
+ union dlb_lsp_qid_ldb_qid2cqidx r2;
+ union dlb_lsp_qid_ldb_qid2cqidx2 r3;
+ u32 queue_id;
+ u32 port_id;
+ int i;
+
+ /* Find the queue's slot */
+ mapped = DLB_QUEUE_MAPPED;
+ in_progress = DLB_QUEUE_UNMAP_IN_PROGRESS;
+ pending_map = DLB_QUEUE_UNMAP_IN_PROGRESS_PENDING_MAP;
+
+ if (!dlb_port_find_slot_queue(port, mapped, queue, &i) &&
+ !dlb_port_find_slot_queue(port, in_progress, queue, &i) &&
+ !dlb_port_find_slot_queue(port, pending_map, queue, &i)) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: QID %d isn't mapped\n",
+ __func__, __LINE__, queue->id.phys_id);
+ return -EFAULT;
+ }
+
+ if (i >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ port_id = port->id.phys_id;
+ queue_id = queue->id.phys_id;
+
+ /* Read-modify-write the priority and valid bit register */
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_CQ2PRIOV(port_id));
+
+ r0.field.v &= ~(1 << i);
+
+ DLB_CSR_WR(hw, DLB_LSP_CQ2PRIOV(port_id), r0.val);
+
+ r1.val = DLB_CSR_RD(hw,
+ DLB_ATM_PIPE_QID_LDB_QID2CQIDX(queue_id,
+ port_id / 4));
+
+ r2.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_LDB_QID2CQIDX(queue_id,
+ port_id / 4));
+
+ r3.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_LDB_QID2CQIDX2(queue_id,
+ port_id / 4));
+
+ switch (port_id % 4) {
+ case 0:
+ r1.field.cq_p0 &= ~(1 << i);
+ r2.field.cq_p0 &= ~(1 << i);
+ r3.field.cq_p0 &= ~(1 << i);
+ break;
+
+ case 1:
+ r1.field.cq_p1 &= ~(1 << i);
+ r2.field.cq_p1 &= ~(1 << i);
+ r3.field.cq_p1 &= ~(1 << i);
+ break;
+
+ case 2:
+ r1.field.cq_p2 &= ~(1 << i);
+ r2.field.cq_p2 &= ~(1 << i);
+ r3.field.cq_p2 &= ~(1 << i);
+ break;
+
+ case 3:
+ r1.field.cq_p3 &= ~(1 << i);
+ r2.field.cq_p3 &= ~(1 << i);
+ r3.field.cq_p3 &= ~(1 << i);
+ break;
+ }
+
+ DLB_CSR_WR(hw,
+ DLB_ATM_PIPE_QID_LDB_QID2CQIDX(queue_id, port_id / 4),
+ r1.val);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_QID_LDB_QID2CQIDX(queue_id, port_id / 4),
+ r2.val);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_QID_LDB_QID2CQIDX2(queue_id, port_id / 4),
+ r3.val);
+
+ dlb_flush_csr(hw);
+
+ unmapped = DLB_QUEUE_UNMAPPED;
+
+ return dlb_port_slot_state_transition(hw, port, queue, i, unmapped);
+}
+
+static void
+dlb_log_create_sched_domain_args(struct dlb_hw *hw,
+ struct dlb_create_sched_domain_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB create sched domain arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tNumber of LDB queues: %d\n",
+ args->num_ldb_queues);
+ DLB_HW_INFO(hw, "\tNumber of LDB ports: %d\n",
+ args->num_ldb_ports);
+ DLB_HW_INFO(hw, "\tNumber of DIR ports: %d\n",
+ args->num_dir_ports);
+ DLB_HW_INFO(hw, "\tNumber of ATM inflights: %d\n",
+ args->num_atomic_inflights);
+ DLB_HW_INFO(hw, "\tNumber of hist list entries: %d\n",
+ args->num_hist_list_entries);
+ DLB_HW_INFO(hw, "\tNumber of LDB credits: %d\n",
+ args->num_ldb_credits);
+ DLB_HW_INFO(hw, "\tNumber of DIR credits: %d\n",
+ args->num_dir_credits);
+ DLB_HW_INFO(hw, "\tNumber of LDB credit pools: %d\n",
+ args->num_ldb_credit_pools);
+ DLB_HW_INFO(hw, "\tNumber of DIR credit pools: %d\n",
+ args->num_dir_credit_pools);
+}
+
+/**
+ * dlb_hw_create_sched_domain() - Allocate and initialize a DLB scheduling
+ * domain and its resources.
+ * @hw: Contains the current state of the DLB hardware.
+ * @args: User-provided arguments.
+ * @resp: Response to user.
+ * @vf_request: Request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * Return: returns < 0 on error, 0 otherwise. If the driver is unable to
+ * satisfy a request, resp->status will be set accordingly.
+ */
+int dlb_hw_create_sched_domain(struct dlb_hw *hw,
+ struct dlb_create_sched_domain_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ struct dlb_function_resources *rsrcs;
+ int ret;
+
+ rsrcs = (vf_request) ? &hw->vf[vf_id] : &hw->pf;
+
+ dlb_log_create_sched_domain_args(hw, args, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_create_sched_domain_args(hw, rsrcs, args, resp))
+ return -EINVAL;
+
+ domain = DLB_FUNC_LIST_HEAD(rsrcs->avail_domains, typeof(*domain));
+
+ /* Verification should catch this. */
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: no available domains\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ if (domain->configured) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: avail_domains contains configured domains.\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ dlb_init_domain_rsrc_lists(domain);
+
+ /* Verification should catch this too. */
+ ret = dlb_domain_attach_resources(hw, rsrcs, domain, args, resp);
+ if (ret < 0) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to verify args.\n",
+ __func__);
+
+ return -EFAULT;
+ }
+
+ dlb_list_del(&rsrcs->avail_domains, &domain->func_list);
+
+ dlb_list_add(&rsrcs->used_domains, &domain->func_list);
+
+ resp->id = (vf_request) ? domain->id.virt_id : domain->id.phys_id;
+ resp->status = 0;
+
+ return 0;
+}
+
+static void
+dlb_log_create_ldb_pool_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_ldb_pool_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB create load-balanced credit pool arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n", domain_id);
+ DLB_HW_INFO(hw, "\tNumber of LDB credits: %d\n",
+ args->num_ldb_credits);
+}
+
+/**
+ * dlb_hw_create_ldb_pool() - Allocate and initialize a DLB credit pool.
+ * @hw: Contains the current state of the DLB hardware.
+ * @args: User-provided arguments.
+ * @resp: Response to user.
+ *
+ * Return: returns < 0 on error, 0 otherwise. If the driver is unable to
+ * satisfy a request, resp->status will be set accordingly.
+ */
+int dlb_hw_create_ldb_pool(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_ldb_pool_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_credit_pool *pool;
+ struct dlb_domain *domain;
+
+ dlb_log_create_ldb_pool_args(hw, domain_id, args, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_create_ldb_pool_args(hw,
+ domain_id,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ pool = DLB_DOM_LIST_HEAD(domain->avail_ldb_credit_pools, typeof(*pool));
+
+ /* Verification should catch this. */
+ if (!pool) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: no available ldb credit pools\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ dlb_configure_ldb_credit_pool(hw, domain, args, pool);
+
+ /* Configuration succeeded, so move the resource from the 'avail' to
+ * the 'used' list.
+ */
+ dlb_list_del(&domain->avail_ldb_credit_pools, &pool->domain_list);
+
+ dlb_list_add(&domain->used_ldb_credit_pools, &pool->domain_list);
+
+ resp->status = 0;
+ resp->id = (vf_request) ? pool->id.virt_id : pool->id.phys_id;
+
+ return 0;
+}
+
+static void
+dlb_log_create_dir_pool_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_dir_pool_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB create directed credit pool arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n", domain_id);
+ DLB_HW_INFO(hw, "\tNumber of DIR credits: %d\n",
+ args->num_dir_credits);
+}
+
+/**
+ * dlb_hw_create_dir_pool() - Allocate and initialize a DLB credit pool.
+ * @hw: Contains the current state of the DLB hardware.
+ * @args: User-provided arguments.
+ * @resp: Response to user.
+ *
+ * Return: returns < 0 on error, 0 otherwise. If the driver is unable to
+ * satisfy a request, resp->status will be set accordingly.
+ */
+int dlb_hw_create_dir_pool(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_dir_pool_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_credit_pool *pool;
+ struct dlb_domain *domain;
+
+ dlb_log_create_dir_pool_args(hw, domain_id, args, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ /* At least one available pool */
+ if (dlb_verify_create_dir_pool_args(hw,
+ domain_id,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ pool = DLB_DOM_LIST_HEAD(domain->avail_dir_credit_pools, typeof(*pool));
+
+ /* Verification should catch this. */
+ if (!pool) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: no available dir credit pools\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ dlb_configure_dir_credit_pool(hw, domain, args, pool);
+
+ /* Configuration succeeded, so move the resource from the 'avail' to
+ * the 'used' list.
+ */
+ dlb_list_del(&domain->avail_dir_credit_pools, &pool->domain_list);
+
+ dlb_list_add(&domain->used_dir_credit_pools, &pool->domain_list);
+
+ resp->status = 0;
+ resp->id = (vf_request) ? pool->id.virt_id : pool->id.phys_id;
+
+ return 0;
+}
+
+static void
+dlb_log_create_ldb_queue_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_ldb_queue_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB create load-balanced queue arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n",
+ domain_id);
+ DLB_HW_INFO(hw, "\tNumber of sequence numbers: %d\n",
+ args->num_sequence_numbers);
+ DLB_HW_INFO(hw, "\tNumber of QID inflights: %d\n",
+ args->num_qid_inflights);
+ DLB_HW_INFO(hw, "\tNumber of ATM inflights: %d\n",
+ args->num_atomic_inflights);
+}
+
+/**
+ * dlb_hw_create_ldb_queue() - Allocate and initialize a DLB LDB queue.
+ * @hw: Contains the current state of the DLB hardware.
+ * @args: User-provided arguments.
+ * @resp: Response to user.
+ *
+ * Return: returns < 0 on error, 0 otherwise. If the driver is unable to
+ * satisfy a request, resp->status will be set accordingly.
+ */
+int dlb_hw_create_ldb_queue(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_ldb_queue_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_ldb_queue *queue;
+ struct dlb_domain *domain;
+ int ret;
+
+ dlb_log_create_ldb_queue_args(hw, domain_id, args, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ /* At least one available queue */
+ if (dlb_verify_create_ldb_queue_args(hw,
+ domain_id,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ queue = DLB_DOM_LIST_HEAD(domain->avail_ldb_queues, typeof(*queue));
+
+ /* Verification should catch this. */
+ if (!queue) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: no available ldb queues\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ ret = dlb_ldb_queue_attach_resources(hw, domain, queue, args);
+ if (ret < 0) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: failed to attach the ldb queue resources\n",
+ __func__, __LINE__);
+ return ret;
+ }
+
+ dlb_configure_ldb_queue(hw, domain, queue, args, vf_request, vf_id);
+
+ queue->num_mappings = 0;
+
+ queue->configured = true;
+
+ /* Configuration succeeded, so move the resource from the 'avail' to
+ * the 'used' list.
+ */
+ dlb_list_del(&domain->avail_ldb_queues, &queue->domain_list);
+
+ dlb_list_add(&domain->used_ldb_queues, &queue->domain_list);
+
+ resp->status = 0;
+ resp->id = (vf_request) ? queue->id.virt_id : queue->id.phys_id;
+
+ return 0;
+}
+
+static void
+dlb_log_create_dir_queue_args(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_dir_queue_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB create directed queue arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n", domain_id);
+ DLB_HW_INFO(hw, "\tPort ID: %d\n", args->port_id);
+}
+
+/**
+ * dlb_hw_create_dir_queue() - Allocate and initialize a DLB DIR queue.
+ * @hw: Contains the current state of the DLB hardware.
+ * @args: User-provided arguments.
+ * @resp: Response to user.
+ *
+ * Return: returns < 0 on error, 0 otherwise. If the driver is unable to
+ * satisfy a request, resp->status will be set accordingly.
+ */
+int dlb_hw_create_dir_queue(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_dir_queue_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_dir_pq_pair *queue;
+ struct dlb_domain *domain;
+
+ dlb_log_create_dir_queue_args(hw, domain_id, args, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_create_dir_queue_args(hw,
+ domain_id,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ if (args->port_id != -1)
+ queue = dlb_get_domain_used_dir_pq(args->port_id,
+ vf_request,
+ domain);
+ else
+ queue = DLB_DOM_LIST_HEAD(domain->avail_dir_pq_pairs,
+ typeof(*queue));
+
+ /* Verification should catch this. */
+ if (!queue) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: no available dir queues\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ dlb_configure_dir_queue(hw, domain, queue, vf_request, vf_id);
+
+ /* Configuration succeeded, so move the resource from the 'avail' to
+ * the 'used' list (if it's not already there).
+ */
+ if (args->port_id == -1) {
+ dlb_list_del(&domain->avail_dir_pq_pairs, &queue->domain_list);
+
+ dlb_list_add(&domain->used_dir_pq_pairs, &queue->domain_list);
+ }
+
+ resp->status = 0;
+
+ resp->id = (vf_request) ? queue->id.virt_id : queue->id.phys_id;
+
+ return 0;
+}
+
+static void dlb_log_create_ldb_port_args(struct dlb_hw *hw,
+ u32 domain_id,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_create_ldb_port_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB create load-balanced port arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n",
+ domain_id);
+ DLB_HW_INFO(hw, "\tLDB credit pool ID: %d\n",
+ args->ldb_credit_pool_id);
+ DLB_HW_INFO(hw, "\tLDB credit high watermark: %d\n",
+ args->ldb_credit_high_watermark);
+ DLB_HW_INFO(hw, "\tLDB credit low watermark: %d\n",
+ args->ldb_credit_low_watermark);
+ DLB_HW_INFO(hw, "\tLDB credit quantum: %d\n",
+ args->ldb_credit_quantum);
+ DLB_HW_INFO(hw, "\tDIR credit pool ID: %d\n",
+ args->dir_credit_pool_id);
+ DLB_HW_INFO(hw, "\tDIR credit high watermark: %d\n",
+ args->dir_credit_high_watermark);
+ DLB_HW_INFO(hw, "\tDIR credit low watermark: %d\n",
+ args->dir_credit_low_watermark);
+ DLB_HW_INFO(hw, "\tDIR credit quantum: %d\n",
+ args->dir_credit_quantum);
+ DLB_HW_INFO(hw, "\tpop_count_address: 0x%"PRIx64"\n",
+ pop_count_dma_base);
+ DLB_HW_INFO(hw, "\tCQ depth: %d\n",
+ args->cq_depth);
+ DLB_HW_INFO(hw, "\tCQ hist list size: %d\n",
+ args->cq_history_list_size);
+ DLB_HW_INFO(hw, "\tCQ base address: 0x%"PRIx64"\n",
+ cq_dma_base);
+}
+
+/**
+ * dlb_hw_create_ldb_port() - Allocate and initialize a load-balanced port and
+ * its resources.
+ * @hw: Contains the current state of the DLB hardware.
+ * @args: User-provided arguments.
+ * @resp: Response to user.
+ *
+ * Return: returns < 0 on error, 0 otherwise. If the driver is unable to
+ * satisfy a request, resp->status will be set accordingly.
+ */
+int dlb_hw_create_ldb_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_ldb_port_args *args,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_ldb_port *port;
+ struct dlb_domain *domain;
+ int ret;
+
+ dlb_log_create_ldb_port_args(hw,
+ domain_id,
+ pop_count_dma_base,
+ cq_dma_base,
+ args,
+ vf_request,
+ vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_create_ldb_port_args(hw,
+ domain_id,
+ pop_count_dma_base,
+ cq_dma_base,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ port = DLB_DOM_LIST_HEAD(domain->avail_ldb_ports, typeof(*port));
+
+ /* Verification should catch this. */
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: no available ldb ports\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ if (port->configured) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: avail_ldb_ports contains configured ports.\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ ret = dlb_configure_ldb_port(hw,
+ domain,
+ port,
+ pop_count_dma_base,
+ cq_dma_base,
+ args,
+ vf_request,
+ vf_id);
+ if (ret < 0)
+ return ret;
+
+ /* Configuration succeeded, so move the resource from the 'avail' to
+ * the 'used' list.
+ */
+ dlb_list_del(&domain->avail_ldb_ports, &port->domain_list);
+
+ dlb_list_add(&domain->used_ldb_ports, &port->domain_list);
+
+ resp->status = 0;
+ resp->id = (vf_request) ? port->id.virt_id : port->id.phys_id;
+
+ return 0;
+}
+
+static void dlb_log_create_dir_port_args(struct dlb_hw *hw,
+ u32 domain_id,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_create_dir_port_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB create directed port arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n",
+ domain_id);
+ DLB_HW_INFO(hw, "\tLDB credit pool ID: %d\n",
+ args->ldb_credit_pool_id);
+ DLB_HW_INFO(hw, "\tLDB credit high watermark: %d\n",
+ args->ldb_credit_high_watermark);
+ DLB_HW_INFO(hw, "\tLDB credit low watermark: %d\n",
+ args->ldb_credit_low_watermark);
+ DLB_HW_INFO(hw, "\tLDB credit quantum: %d\n",
+ args->ldb_credit_quantum);
+ DLB_HW_INFO(hw, "\tDIR credit pool ID: %d\n",
+ args->dir_credit_pool_id);
+ DLB_HW_INFO(hw, "\tDIR credit high watermark: %d\n",
+ args->dir_credit_high_watermark);
+ DLB_HW_INFO(hw, "\tDIR credit low watermark: %d\n",
+ args->dir_credit_low_watermark);
+ DLB_HW_INFO(hw, "\tDIR credit quantum: %d\n",
+ args->dir_credit_quantum);
+ DLB_HW_INFO(hw, "\tpop_count_address: 0x%"PRIx64"\n",
+ pop_count_dma_base);
+ DLB_HW_INFO(hw, "\tCQ depth: %d\n",
+ args->cq_depth);
+ DLB_HW_INFO(hw, "\tCQ base address: 0x%"PRIx64"\n",
+ cq_dma_base);
+}
+
+/**
+ * dlb_hw_create_dir_port() - Allocate and initialize a DLB directed port and
+ * queue. The port/queue pair have the same ID and name.
+ * @hw: Contains the current state of the DLB hardware.
+ * @args: User-provided arguments.
+ * @resp: Response to user.
+ *
+ * Return: returns < 0 on error, 0 otherwise. If the driver is unable to
+ * satisfy a request, resp->status will be set accordingly.
+ */
+int dlb_hw_create_dir_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_dir_port_args *args,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_dir_pq_pair *port;
+ struct dlb_domain *domain;
+ int ret;
+
+ dlb_log_create_dir_port_args(hw,
+ domain_id,
+ pop_count_dma_base,
+ cq_dma_base,
+ args,
+ vf_request,
+ vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_create_dir_port_args(hw,
+ domain_id,
+ pop_count_dma_base,
+ cq_dma_base,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ if (args->queue_id != -1)
+ port = dlb_get_domain_used_dir_pq(args->queue_id,
+ vf_request,
+ domain);
+ else
+ port = DLB_DOM_LIST_HEAD(domain->avail_dir_pq_pairs,
+ typeof(*port));
+
+ /* Verification should catch this. */
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: no available dir ports\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ ret = dlb_configure_dir_port(hw,
+ domain,
+ port,
+ pop_count_dma_base,
+ cq_dma_base,
+ args,
+ vf_request,
+ vf_id);
+ if (ret < 0)
+ return ret;
+
+ /* Configuration succeeded, so move the resource from the 'avail' to
+ * the 'used' list (if it's not already there).
+ */
+ if (args->queue_id == -1) {
+ dlb_list_del(&domain->avail_dir_pq_pairs, &port->domain_list);
+
+ dlb_list_add(&domain->used_dir_pq_pairs, &port->domain_list);
+ }
+
+ resp->status = 0;
+ resp->id = (vf_request) ? port->id.virt_id : port->id.phys_id;
+
+ return 0;
+}
+
+static void dlb_log_start_domain(struct dlb_hw *hw,
+ u32 domain_id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB start domain arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n", domain_id);
+}
+
+/**
+ * dlb_hw_start_domain() - Lock the domain configuration
+ * @hw: Contains the current state of the DLB hardware.
+ * @args: User-provided arguments.
+ * @resp: Response to user.
+ *
+ * Return: returns < 0 on error, 0 otherwise. If the driver is unable to
+ * satisfy a request, resp->status will be set accordingly.
+ */
+int dlb_hw_start_domain(struct dlb_hw *hw,
+ u32 domain_id,
+ __attribute((unused)) struct dlb_start_domain_args *arg,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *dir_queue;
+ struct dlb_ldb_queue *ldb_queue;
+ struct dlb_credit_pool *pool;
+ struct dlb_domain *domain;
+
+ dlb_log_start_domain(hw, domain_id, vf_request, vf_id);
+
+ if (dlb_verify_start_domain_args(hw,
+ domain_id,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ /* Write the domain's pool credit counts, which have been updated
+ * during port configuration. The sum of the pool credit count plus
+ * each producer port's credit count must equal the pool's credit
+ * allocation *before* traffic is sent.
+ */
+ DLB_DOM_LIST_FOR(domain->used_ldb_credit_pools, pool, iter)
+ dlb_ldb_pool_write_credit_count_reg(hw, pool->id.phys_id);
+
+ DLB_DOM_LIST_FOR(domain->used_dir_credit_pools, pool, iter)
+ dlb_dir_pool_write_credit_count_reg(hw, pool->id.phys_id);
+
+ /* Enable load-balanced and directed queue write permissions for the
+ * queues this domain owns. Without this, the DLB will drop all
+ * incoming traffic to those queues.
+ */
+ DLB_DOM_LIST_FOR(domain->used_ldb_queues, ldb_queue, iter) {
+ union dlb_sys_ldb_vasqid_v r0 = { {0} };
+ unsigned int offs;
+
+ r0.field.vasqid_v = 1;
+
+ offs = domain->id.phys_id * DLB_MAX_NUM_LDB_QUEUES +
+ ldb_queue->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_VASQID_V(offs), r0.val);
+ }
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, dir_queue, iter) {
+ union dlb_sys_dir_vasqid_v r0 = { {0} };
+ unsigned int offs;
+
+ r0.field.vasqid_v = 1;
+
+ offs = domain->id.phys_id * DLB_MAX_NUM_DIR_PORTS +
+ dir_queue->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_VASQID_V(offs), r0.val);
+ }
+
+ dlb_flush_csr(hw);
+
+ domain->started = true;
+
+ resp->status = 0;
+
+ return 0;
+}
+
+static void dlb_domain_finish_unmap_port_slot(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_port *port,
+ int slot)
+{
+ enum dlb_qid_map_state state;
+ struct dlb_ldb_queue *queue;
+
+ queue = &hw->rsrcs.ldb_queues[port->qid_map[slot].qid];
+
+ state = port->qid_map[slot].state;
+
+ /* Update the QID2CQIDX and CQ2QID vectors */
+ dlb_ldb_port_unmap_qid(hw, port, queue);
+
+ /* Ensure the QID will not be serviced by this {CQ, slot} by clearing
+ * the has_work bits
+ */
+ dlb_ldb_port_clear_has_work_bits(hw, port, slot);
+
+ /* Reset the {CQ, slot} to its default state */
+ dlb_ldb_port_set_queue_if_status(hw, port, slot);
+
+ /* Re-enable the CQ if it wasn't manually disabled by the user */
+ if (port->enabled)
+ dlb_ldb_port_cq_enable(hw, port);
+
+ /* If there is a mapping that is pending this slot's removal, perform
+ * the mapping now.
+ */
+ if (state == DLB_QUEUE_UNMAP_IN_PROGRESS_PENDING_MAP) {
+ struct dlb_ldb_port_qid_map *map;
+ struct dlb_ldb_queue *map_queue;
+ u8 prio;
+
+ map = &port->qid_map[slot];
+
+ map->qid = map->pending_qid;
+ map->priority = map->pending_priority;
+
+ map_queue = &hw->rsrcs.ldb_queues[map->qid];
+ prio = map->priority;
+
+ dlb_ldb_port_map_qid(hw, domain, port, map_queue, prio);
+ }
+}
+
+static bool dlb_domain_finish_unmap_port(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_port *port)
+{
+ union dlb_lsp_cq_ldb_infl_cnt r0;
+ int i;
+
+ if (port->num_pending_removals == 0)
+ return false;
+
+ /* The unmap requires all the CQ's outstanding inflights to be
+ * completed.
+ */
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_CQ_LDB_INFL_CNT(port->id.phys_id));
+ if (r0.field.count > 0)
+ return false;
+
+ for (i = 0; i < DLB_MAX_NUM_QIDS_PER_LDB_CQ; i++) {
+ struct dlb_ldb_port_qid_map *map;
+
+ map = &port->qid_map[i];
+
+ if (map->state != DLB_QUEUE_UNMAP_IN_PROGRESS &&
+ map->state != DLB_QUEUE_UNMAP_IN_PROGRESS_PENDING_MAP)
+ continue;
+
+ dlb_domain_finish_unmap_port_slot(hw, domain, port, i);
+ }
+
+ return true;
+}
+
+static unsigned int
+dlb_domain_finish_unmap_qid_procedures(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+
+ if (!domain->configured || domain->num_pending_removals == 0)
+ return 0;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter)
+ dlb_domain_finish_unmap_port(hw, domain, port);
+
+ return domain->num_pending_removals;
+}
+
+unsigned int dlb_finish_unmap_qid_procedures(struct dlb_hw *hw)
+{
+ int i, num = 0;
+
+ /* Finish queue unmap jobs for any domain that needs it */
+ for (i = 0; i < DLB_MAX_NUM_DOMAINS; i++) {
+ struct dlb_domain *domain = &hw->domains[i];
+
+ num += dlb_domain_finish_unmap_qid_procedures(hw, domain);
+ }
+
+ return num;
+}
+
+static void dlb_domain_finish_map_port(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_port *port)
+{
+ int i;
+
+ for (i = 0; i < DLB_MAX_NUM_QIDS_PER_LDB_CQ; i++) {
+ union dlb_lsp_qid_ldb_infl_cnt r0;
+ struct dlb_ldb_queue *queue;
+ int qid;
+
+ if (port->qid_map[i].state != DLB_QUEUE_MAP_IN_PROGRESS)
+ continue;
+
+ qid = port->qid_map[i].qid;
+
+ queue = dlb_get_ldb_queue_from_id(hw, qid, false, 0);
+
+ if (!queue) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: unable to find queue %d\n",
+ __func__, qid);
+ continue;
+ }
+
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_QID_LDB_INFL_CNT(qid));
+
+ if (r0.field.count)
+ continue;
+
+ /* Disable the affected CQ, and the CQs already mapped to the
+ * QID, before reading the QID's inflight count a second time.
+ * There is an unlikely race in which the QID may schedule one
+ * more QE after we read an inflight count of 0, and disabling
+ * the CQs guarantees that the race will not occur after a
+ * re-read of the inflight count register.
+ */
+ if (port->enabled)
+ dlb_ldb_port_cq_disable(hw, port);
+
+ dlb_ldb_queue_disable_mapped_cqs(hw, domain, queue);
+
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_QID_LDB_INFL_CNT(qid));
+
+ if (r0.field.count) {
+ if (port->enabled)
+ dlb_ldb_port_cq_enable(hw, port);
+
+ dlb_ldb_queue_enable_mapped_cqs(hw, domain, queue);
+
+ continue;
+ }
+
+ dlb_ldb_port_finish_map_qid_dynamic(hw, domain, port, queue);
+ }
+}
+
+static unsigned int
+dlb_domain_finish_map_qid_procedures(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+
+ if (!domain->configured || domain->num_pending_additions == 0)
+ return 0;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter)
+ dlb_domain_finish_map_port(hw, domain, port);
+
+ return domain->num_pending_additions;
+}
+
+unsigned int dlb_finish_map_qid_procedures(struct dlb_hw *hw)
+{
+ int i, num = 0;
+
+ /* Finish queue map jobs for any domain that needs it */
+ for (i = 0; i < DLB_MAX_NUM_DOMAINS; i++) {
+ struct dlb_domain *domain = &hw->domains[i];
+
+ num += dlb_domain_finish_map_qid_procedures(hw, domain);
+ }
+
+ return num;
+}
+
+static void dlb_log_map_qid(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_map_qid_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB map QID arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n",
+ domain_id);
+ DLB_HW_INFO(hw, "\tPort ID: %d\n",
+ args->port_id);
+ DLB_HW_INFO(hw, "\tQueue ID: %d\n",
+ args->qid);
+ DLB_HW_INFO(hw, "\tPriority: %d\n",
+ args->priority);
+}
+
+int dlb_hw_map_qid(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_map_qid_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ enum dlb_qid_map_state state;
+ struct dlb_ldb_queue *queue;
+ struct dlb_ldb_port *port;
+ struct dlb_domain *domain;
+ int ret, i, id;
+ u8 prio;
+
+ dlb_log_map_qid(hw, domain_id, args, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_map_qid_args(hw,
+ domain_id,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ prio = args->priority;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_ldb_port(id, vf_request, domain);
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ queue = dlb_get_domain_ldb_queue(args->qid, vf_request, domain);
+ if (!queue) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: queue not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ /* If there are any outstanding detach operations for this port,
+ * attempt to complete them. This may be necessary to free up a QID
+ * slot for this requested mapping.
+ */
+ if (port->num_pending_removals)
+ dlb_domain_finish_unmap_port(hw, domain, port);
+
+ ret = dlb_verify_map_qid_slot_available(port, queue, resp);
+ if (ret)
+ return ret;
+
+ /* Hardware requires disabling the CQ before mapping QIDs. */
+ if (port->enabled)
+ dlb_ldb_port_cq_disable(hw, port);
+
+ /* If this is only a priority change, don't perform the full QID->CQ
+ * mapping procedure
+ */
+ state = DLB_QUEUE_MAPPED;
+ if (dlb_port_find_slot_queue(port, state, queue, &i)) {
+ if (i >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ if (prio != port->qid_map[i].priority) {
+ dlb_ldb_port_change_qid_priority(hw, port, i, args);
+ DLB_HW_INFO(hw, "DLB map: priority change only\n");
+ }
+
+ state = DLB_QUEUE_MAPPED;
+ ret = dlb_port_slot_state_transition(hw, port, queue, i, state);
+ if (ret)
+ return ret;
+
+ goto map_qid_done;
+ }
+
+ state = DLB_QUEUE_UNMAP_IN_PROGRESS;
+ if (dlb_port_find_slot_queue(port, state, queue, &i)) {
+ if (i >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ if (prio != port->qid_map[i].priority) {
+ dlb_ldb_port_change_qid_priority(hw, port, i, args);
+ DLB_HW_INFO(hw, "DLB map: priority change only\n");
+ }
+
+ state = DLB_QUEUE_MAPPED;
+ ret = dlb_port_slot_state_transition(hw, port, queue, i, state);
+ if (ret)
+ return ret;
+
+ goto map_qid_done;
+ }
+
+ /* If this is a priority change on an in-progress mapping, don't
+ * perform the full QID->CQ mapping procedure.
+ */
+ state = DLB_QUEUE_MAP_IN_PROGRESS;
+ if (dlb_port_find_slot_queue(port, state, queue, &i)) {
+ if (i >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ port->qid_map[i].priority = prio;
+
+ DLB_HW_INFO(hw, "DLB map: priority change only\n");
+
+ goto map_qid_done;
+ }
+
+ /* If this is a priority change on a pending mapping, update the
+ * pending priority
+ */
+ if (dlb_port_find_slot_with_pending_map_queue(port, queue, &i)) {
+ if (i >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ port->qid_map[i].pending_priority = prio;
+
+ DLB_HW_INFO(hw, "DLB map: priority change only\n");
+
+ goto map_qid_done;
+ }
+
+ /* If all the CQ's slots are in use, then there's an unmap in progress
+ * (guaranteed by dlb_verify_map_qid_slot_available()), so add this
+ * mapping to pending_map and return. When the removal is completed for
+ * the slot's current occupant, this mapping will be performed.
+ */
+ if (!dlb_port_find_slot(port, DLB_QUEUE_UNMAPPED, &i)) {
+ if (dlb_port_find_slot(port, DLB_QUEUE_UNMAP_IN_PROGRESS, &i)) {
+ enum dlb_qid_map_state state;
+
+ if (i >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ port->qid_map[i].pending_qid = queue->id.phys_id;
+ port->qid_map[i].pending_priority = prio;
+
+ state = DLB_QUEUE_UNMAP_IN_PROGRESS_PENDING_MAP;
+
+ ret = dlb_port_slot_state_transition(hw, port, queue,
+ i, state);
+ if (ret)
+ return ret;
+
+ DLB_HW_INFO(hw, "DLB map: map pending removal\n");
+
+ goto map_qid_done;
+ }
+ }
+
+ /* If the domain has started, a special "dynamic" CQ->queue mapping
+ * procedure is required in order to safely update the CQ<->QID tables.
+ * The "static" procedure cannot be used when traffic is flowing,
+ * because the CQ<->QID tables cannot be updated atomically and the
+ * scheduler won't see the new mapping unless the queue's if_status
+ * changes, which isn't guaranteed.
+ */
+ ret = dlb_ldb_port_map_qid(hw, domain, port, queue, prio);
+
+ /* If ret is less than zero, it's due to an internal error */
+ if (ret < 0)
+ return ret;
+
+map_qid_done:
+ if (port->enabled)
+ dlb_ldb_port_cq_enable(hw, port);
+
+ resp->status = 0;
+
+ return 0;
+}
+
+static void dlb_log_unmap_qid(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_unmap_qid_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB unmap QID arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n",
+ domain_id);
+ DLB_HW_INFO(hw, "\tPort ID: %d\n",
+ args->port_id);
+ DLB_HW_INFO(hw, "\tQueue ID: %d\n",
+ args->qid);
+ if (args->qid < DLB_MAX_NUM_LDB_QUEUES)
+ DLB_HW_INFO(hw, "\tQueue's num mappings: %d\n",
+ hw->rsrcs.ldb_queues[args->qid].num_mappings);
+}
+
+int dlb_hw_unmap_qid(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_unmap_qid_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ enum dlb_qid_map_state state;
+ struct dlb_ldb_queue *queue;
+ struct dlb_ldb_port *port;
+ struct dlb_domain *domain;
+ bool unmap_complete;
+ int i, ret, id;
+
+ dlb_log_unmap_qid(hw, domain_id, args, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_unmap_qid_args(hw,
+ domain_id,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_ldb_port(id, vf_request, domain);
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ queue = dlb_get_domain_ldb_queue(args->qid, vf_request, domain);
+ if (!queue) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: queue not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ /* If the queue hasn't been mapped yet, we need to update the slot's
+ * state and re-enable the queue's inflights.
+ */
+ state = DLB_QUEUE_MAP_IN_PROGRESS;
+ if (dlb_port_find_slot_queue(port, state, queue, &i)) {
+ if (i >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ /* Since the in-progress map was aborted, re-enable the QID's
+ * inflights.
+ */
+ if (queue->num_pending_additions == 0)
+ dlb_ldb_queue_set_inflight_limit(hw, queue);
+
+ state = DLB_QUEUE_UNMAPPED;
+ ret = dlb_port_slot_state_transition(hw, port, queue, i, state);
+ if (ret)
+ return ret;
+
+ goto unmap_qid_done;
+ }
+
+ /* If the queue mapping is on hold pending an unmap, we simply need to
+ * update the slot's state.
+ */
+ if (dlb_port_find_slot_with_pending_map_queue(port, queue, &i)) {
+ if (i >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ state = DLB_QUEUE_UNMAP_IN_PROGRESS;
+ ret = dlb_port_slot_state_transition(hw, port, queue, i, state);
+ if (ret)
+ return ret;
+
+ goto unmap_qid_done;
+ }
+
+ state = DLB_QUEUE_MAPPED;
+ if (!dlb_port_find_slot_queue(port, state, queue, &i)) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: no available CQ slots\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ if (i >= DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port slot tracking failed\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ /* QID->CQ mapping removal is an asychronous procedure. It requires
+ * stopping the DLB from scheduling this CQ, draining all inflights
+ * from the CQ, then unmapping the queue from the CQ. This function
+ * simply marks the port as needing the queue unmapped, and (if
+ * necessary) starts the unmapping worker thread.
+ */
+ dlb_ldb_port_cq_disable(hw, port);
+
+ state = DLB_QUEUE_UNMAP_IN_PROGRESS;
+ ret = dlb_port_slot_state_transition(hw, port, queue, i, state);
+ if (ret)
+ return ret;
+
+ /* Attempt to finish the unmapping now, in case the port has no
+ * outstanding inflights. If that's not the case, this will fail and
+ * the unmapping will be completed at a later time.
+ */
+ unmap_complete = dlb_domain_finish_unmap_port(hw, domain, port);
+
+ /* If the unmapping couldn't complete immediately, launch the worker
+ * thread (if it isn't already launched) to finish it later.
+ */
+ if (!unmap_complete && !os_worker_active(hw))
+ os_schedule_work(hw);
+
+unmap_qid_done:
+ resp->status = 0;
+
+ return 0;
+}
+
+static void dlb_log_enable_port(struct dlb_hw *hw,
+ u32 domain_id,
+ u32 port_id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB enable port arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n",
+ domain_id);
+ DLB_HW_INFO(hw, "\tPort ID: %d\n",
+ port_id);
+}
+
+int dlb_hw_enable_ldb_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_enable_ldb_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_ldb_port *port;
+ struct dlb_domain *domain;
+ int id;
+
+ dlb_log_enable_port(hw, domain_id, args->port_id, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_enable_ldb_port_args(hw,
+ domain_id,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_ldb_port(id, vf_request, domain);
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ /* Hardware requires disabling the CQ before unmapping QIDs. */
+ if (!port->enabled) {
+ dlb_ldb_port_cq_enable(hw, port);
+ port->enabled = true;
+
+ hw->pf.num_enabled_ldb_ports++;
+ dlb_update_ldb_arb_threshold(hw);
+ }
+
+ resp->status = 0;
+
+ return 0;
+}
+
+static void dlb_log_disable_port(struct dlb_hw *hw,
+ u32 domain_id,
+ u32 port_id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB disable port arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n",
+ domain_id);
+ DLB_HW_INFO(hw, "\tPort ID: %d\n",
+ port_id);
+}
+
+int dlb_hw_disable_ldb_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_disable_ldb_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_ldb_port *port;
+ struct dlb_domain *domain;
+ int id;
+
+ dlb_log_disable_port(hw, domain_id, args->port_id, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_disable_ldb_port_args(hw,
+ domain_id,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_ldb_port(id, vf_request, domain);
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ /* Hardware requires disabling the CQ before unmapping QIDs. */
+ if (port->enabled) {
+ dlb_ldb_port_cq_disable(hw, port);
+ port->enabled = false;
+
+ hw->pf.num_enabled_ldb_ports--;
+ dlb_update_ldb_arb_threshold(hw);
+ }
+
+ resp->status = 0;
+
+ return 0;
+}
+
+int dlb_hw_enable_dir_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_enable_dir_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_dir_pq_pair *port;
+ struct dlb_domain *domain;
+ int id;
+
+ dlb_log_enable_port(hw, domain_id, args->port_id, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_enable_dir_port_args(hw,
+ domain_id,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_dir_pq(id, vf_request, domain);
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ /* Hardware requires disabling the CQ before unmapping QIDs. */
+ if (!port->enabled) {
+ dlb_dir_port_cq_enable(hw, port);
+ port->enabled = true;
+ }
+
+ resp->status = 0;
+
+ return 0;
+}
+
+int dlb_hw_disable_dir_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_disable_dir_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_dir_pq_pair *port;
+ struct dlb_domain *domain;
+ int id;
+
+ dlb_log_disable_port(hw, domain_id, args->port_id, vf_request, vf_id);
+
+ /* Verify that hardware resources are available before attempting to
+ * satisfy the request. This simplifies the error unwinding code.
+ */
+ if (dlb_verify_disable_dir_port_args(hw,
+ domain_id,
+ args,
+ resp,
+ vf_request,
+ vf_id))
+ return -EINVAL;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+ if (!domain) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: domain not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ id = args->port_id;
+
+ port = dlb_get_domain_used_dir_pq(id, vf_request, domain);
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s():%d] Internal error: port not found\n",
+ __func__, __LINE__);
+ return -EFAULT;
+ }
+
+ /* Hardware requires disabling the CQ before unmapping QIDs. */
+ if (port->enabled) {
+ dlb_dir_port_cq_disable(hw, port);
+ port->enabled = false;
+ }
+
+ resp->status = 0;
+
+ return 0;
+}
+
+int dlb_notify_vf(struct dlb_hw *hw,
+ unsigned int vf_id,
+ enum dlb_mbox_vf_notification_type notification)
+{
+ struct dlb_mbox_vf_notification_cmd_req req;
+ int retry_cnt;
+
+ req.hdr.type = DLB_MBOX_VF_CMD_NOTIFICATION;
+ req.notification = notification;
+
+ if (dlb_pf_write_vf_mbox_req(hw, vf_id, &req, sizeof(req)))
+ return -1;
+
+ dlb_send_async_pf_to_vf_msg(hw, vf_id);
+
+ /* Timeout after 1 second of inactivity */
+ retry_cnt = 0;
+ while (!dlb_pf_to_vf_complete(hw, vf_id)) {
+ os_msleep(1);
+ if (++retry_cnt >= 1000) {
+ DLB_HW_ERR(hw,
+ "PF driver timed out waiting for mbox response\n");
+ return -1;
+ }
+ }
+
+ /* No response data expected for notifications. */
+
+ return 0;
+}
+
+int dlb_vf_in_use(struct dlb_hw *hw, unsigned int vf_id)
+{
+ struct dlb_mbox_vf_in_use_cmd_resp resp;
+ struct dlb_mbox_vf_in_use_cmd_req req;
+ int retry_cnt;
+
+ req.hdr.type = DLB_MBOX_VF_CMD_IN_USE;
+
+ if (dlb_pf_write_vf_mbox_req(hw, vf_id, &req, sizeof(req)))
+ return -1;
+
+ dlb_send_async_pf_to_vf_msg(hw, vf_id);
+
+ /* Timeout after 1 second of inactivity */
+ retry_cnt = 0;
+ while (!dlb_pf_to_vf_complete(hw, vf_id)) {
+ os_msleep(1);
+ if (++retry_cnt >= 1000) {
+ DLB_HW_ERR(hw,
+ "PF driver timed out waiting for mbox response\n");
+ return -1;
+ }
+ }
+
+ if (dlb_pf_read_vf_mbox_resp(hw, vf_id, &resp, sizeof(resp)))
+ return -1;
+
+ if (resp.hdr.status != DLB_MBOX_ST_SUCCESS) {
+ DLB_HW_ERR(hw,
+ "[%s()]: failed with mailbox error: %s\n",
+ __func__,
+ DLB_MBOX_ST_STRING(&resp));
+
+ return -1;
+ }
+
+ return resp.in_use;
+}
+
+static int dlb_vf_domain_alert(struct dlb_hw *hw,
+ unsigned int vf_id,
+ u32 domain_id,
+ u32 alert_id,
+ u32 aux_alert_data)
+{
+ struct dlb_mbox_vf_alert_cmd_req req;
+ int retry_cnt;
+
+ req.hdr.type = DLB_MBOX_VF_CMD_DOMAIN_ALERT;
+ req.domain_id = domain_id;
+ req.alert_id = alert_id;
+ req.aux_alert_data = aux_alert_data;
+
+ if (dlb_pf_write_vf_mbox_req(hw, vf_id, &req, sizeof(req)))
+ return -1;
+
+ dlb_send_async_pf_to_vf_msg(hw, vf_id);
+
+ /* Timeout after 1 second of inactivity */
+ retry_cnt = 0;
+ while (!dlb_pf_to_vf_complete(hw, vf_id)) {
+ os_msleep(1);
+ if (++retry_cnt >= 1000) {
+ DLB_HW_ERR(hw,
+ "PF driver timed out waiting for mbox response\n");
+ return -1;
+ }
+ }
+
+ /* No response data expected for alarm notifications. */
+
+ return 0;
+}
+
+void dlb_set_msix_mode(struct dlb_hw *hw, int mode)
+{
+ union dlb_sys_msix_mode r0 = { {0} };
+
+ r0.field.mode = mode;
+
+ DLB_CSR_WR(hw, DLB_SYS_MSIX_MODE, r0.val);
+}
+
+int dlb_configure_ldb_cq_interrupt(struct dlb_hw *hw,
+ int port_id,
+ int vector,
+ int mode,
+ unsigned int vf,
+ unsigned int owner_vf,
+ u16 threshold)
+{
+ union dlb_chp_ldb_cq_int_depth_thrsh r0 = { {0} };
+ union dlb_chp_ldb_cq_int_enb r1 = { {0} };
+ union dlb_sys_ldb_cq_isr r2 = { {0} };
+ struct dlb_ldb_port *port;
+ bool vf_request;
+
+ vf_request = (mode == DLB_CQ_ISR_MODE_MSI);
+
+ port = dlb_get_ldb_port_from_id(hw, port_id, vf_request, vf);
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s()]: Internal error: failed to enable LDB CQ int\n\tport_id: %u, vf_req: %u, vf: %u\n",
+ __func__, port_id, vf_request, vf);
+ return -EINVAL;
+ }
+
+ /* Trigger the interrupt when threshold or more QEs arrive in the CQ */
+ r0.field.depth_threshold = threshold - 1;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_CQ_INT_DEPTH_THRSH(port->id.phys_id),
+ r0.val);
+
+ r1.field.en_depth = 1;
+
+ DLB_CSR_WR(hw, DLB_CHP_LDB_CQ_INT_ENB(port->id.phys_id), r1.val);
+
+ r2.field.vector = vector;
+ r2.field.vf = owner_vf;
+ r2.field.en_code = mode;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_CQ_ISR(port->id.phys_id), r2.val);
+
+ return 0;
+}
+
+int dlb_configure_dir_cq_interrupt(struct dlb_hw *hw,
+ int port_id,
+ int vector,
+ int mode,
+ unsigned int vf,
+ unsigned int owner_vf,
+ u16 threshold)
+{
+ union dlb_chp_dir_cq_int_depth_thrsh r0 = { {0} };
+ union dlb_chp_dir_cq_int_enb r1 = { {0} };
+ union dlb_sys_dir_cq_isr r2 = { {0} };
+ struct dlb_dir_pq_pair *port;
+ bool vf_request;
+
+ vf_request = (mode == DLB_CQ_ISR_MODE_MSI);
+
+ port = dlb_get_dir_pq_from_id(hw, port_id, vf_request, vf);
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s()]: Internal error: failed to enable DIR CQ int\n\tport_id: %u, vf_req: %u, vf: %u\n",
+ __func__, port_id, vf_request, vf);
+ return -EINVAL;
+ }
+
+ /* Trigger the interrupt when threshold or more QEs arrive in the CQ */
+ r0.field.depth_threshold = threshold - 1;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_CQ_INT_DEPTH_THRSH(port->id.phys_id),
+ r0.val);
+
+ r1.field.en_depth = 1;
+
+ DLB_CSR_WR(hw, DLB_CHP_DIR_CQ_INT_ENB(port->id.phys_id), r1.val);
+
+ r2.field.vector = vector;
+ r2.field.vf = owner_vf;
+ r2.field.en_code = mode;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_CQ_ISR(port->id.phys_id), r2.val);
+
+ return 0;
+}
+
+int dlb_arm_cq_interrupt(struct dlb_hw *hw,
+ int port_id,
+ bool is_ldb,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ u32 val;
+ u32 reg;
+
+ if (vf_request && is_ldb) {
+ struct dlb_ldb_port *ldb_port;
+
+ ldb_port = dlb_get_ldb_port_from_id(hw, port_id, true, vf_id);
+
+ if (!ldb_port || !ldb_port->configured)
+ return -EINVAL;
+
+ port_id = ldb_port->id.phys_id;
+ } else if (vf_request && !is_ldb) {
+ struct dlb_dir_pq_pair *dir_port;
+
+ dir_port = dlb_get_dir_pq_from_id(hw, port_id, true, vf_id);
+
+ if (!dir_port || !dir_port->port_configured)
+ return -EINVAL;
+
+ port_id = dir_port->id.phys_id;
+ }
+
+ val = 1 << (port_id % 32);
+
+ if (is_ldb && port_id < 32)
+ reg = DLB_CHP_LDB_CQ_INTR_ARMED0;
+ else if (is_ldb && port_id < 64)
+ reg = DLB_CHP_LDB_CQ_INTR_ARMED1;
+ else if (!is_ldb && port_id < 32)
+ reg = DLB_CHP_DIR_CQ_INTR_ARMED0;
+ else if (!is_ldb && port_id < 64)
+ reg = DLB_CHP_DIR_CQ_INTR_ARMED1;
+ else if (!is_ldb && port_id < 96)
+ reg = DLB_CHP_DIR_CQ_INTR_ARMED2;
+ else
+ reg = DLB_CHP_DIR_CQ_INTR_ARMED3;
+
+ DLB_CSR_WR(hw, reg, val);
+
+ dlb_flush_csr(hw);
+
+ return 0;
+}
+
+void dlb_read_compressed_cq_intr_status(struct dlb_hw *hw,
+ u32 *ldb_interrupts,
+ u32 *dir_interrupts)
+{
+ /* Read every CQ's interrupt status */
+
+ ldb_interrupts[0] = DLB_CSR_RD(hw, DLB_SYS_LDB_CQ_31_0_OCC_INT_STS);
+ ldb_interrupts[1] = DLB_CSR_RD(hw, DLB_SYS_LDB_CQ_63_32_OCC_INT_STS);
+
+ dir_interrupts[0] = DLB_CSR_RD(hw, DLB_SYS_DIR_CQ_31_0_OCC_INT_STS);
+ dir_interrupts[1] = DLB_CSR_RD(hw, DLB_SYS_DIR_CQ_63_32_OCC_INT_STS);
+ dir_interrupts[2] = DLB_CSR_RD(hw, DLB_SYS_DIR_CQ_95_64_OCC_INT_STS);
+ dir_interrupts[3] = DLB_CSR_RD(hw, DLB_SYS_DIR_CQ_127_96_OCC_INT_STS);
+}
+
+static void dlb_ack_msix_interrupt(struct dlb_hw *hw, int vector)
+{
+ union dlb_sys_msix_ack r0 = { {0} };
+
+ switch (vector) {
+ case 0:
+ r0.field.msix_0_ack = 1;
+ break;
+ case 1:
+ r0.field.msix_1_ack = 1;
+ break;
+ case 2:
+ r0.field.msix_2_ack = 1;
+ break;
+ case 3:
+ r0.field.msix_3_ack = 1;
+ break;
+ case 4:
+ r0.field.msix_4_ack = 1;
+ break;
+ case 5:
+ r0.field.msix_5_ack = 1;
+ break;
+ case 6:
+ r0.field.msix_6_ack = 1;
+ break;
+ case 7:
+ r0.field.msix_7_ack = 1;
+ break;
+ case 8:
+ r0.field.msix_8_ack = 1;
+ /*
+ * CSSY-1650
+ * workaround h/w bug for lost MSI-X interrupts
+ *
+ * The recommended workaround for acknowledging
+ * vector 8 interrupts is :
+ * 1: set MSI-X mask
+ * 2: set MSIX_PASSTHROUGH
+ * 3: clear MSIX_ACK
+ * 4: clear MSIX_PASSTHROUGH
+ * 5: clear MSI-X mask
+ *
+ * The MSIX-ACK (step 3) is cleared for all vectors
+ * below. We handle steps 1 & 2 for vector 8 here.
+ *
+ * The bitfields for MSIX_ACK and MSIX_PASSTHRU are
+ * defined the same, so we just use the MSIX_ACK
+ * value when writing to PASSTHRU.
+ */
+
+ /* set MSI-X mask and passthrough for vector 8 */
+ DLB_FUNC_WR(hw, DLB_MSIX_MEM_VECTOR_CTRL(8), 1);
+ DLB_CSR_WR(hw, DLB_SYS_MSIX_PASSTHRU, r0.val);
+ break;
+ }
+
+ /* clear MSIX_ACK (write one to clear) */
+ DLB_CSR_WR(hw, DLB_SYS_MSIX_ACK, r0.val);
+
+ if (vector == 8) {
+ /*
+ * finish up steps 4 & 5 of the workaround -
+ * clear pasthrough and mask
+ */
+ DLB_CSR_WR(hw, DLB_SYS_MSIX_PASSTHRU, 0);
+ DLB_FUNC_WR(hw, DLB_MSIX_MEM_VECTOR_CTRL(8), 0);
+ }
+
+ dlb_flush_csr(hw);
+}
+
+void dlb_ack_compressed_cq_intr(struct dlb_hw *hw,
+ u32 *ldb_interrupts,
+ u32 *dir_interrupts)
+{
+ /* Write back the status regs to ack the interrupts */
+ if (ldb_interrupts[0])
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_CQ_31_0_OCC_INT_STS,
+ ldb_interrupts[0]);
+ if (ldb_interrupts[1])
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_CQ_63_32_OCC_INT_STS,
+ ldb_interrupts[1]);
+
+ if (dir_interrupts[0])
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_CQ_31_0_OCC_INT_STS,
+ dir_interrupts[0]);
+ if (dir_interrupts[1])
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_CQ_63_32_OCC_INT_STS,
+ dir_interrupts[1]);
+ if (dir_interrupts[2])
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_CQ_95_64_OCC_INT_STS,
+ dir_interrupts[2]);
+ if (dir_interrupts[3])
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_CQ_127_96_OCC_INT_STS,
+ dir_interrupts[3]);
+
+ dlb_ack_msix_interrupt(hw, DLB_PF_COMPRESSED_MODE_CQ_VECTOR_ID);
+}
+
+u32 dlb_read_vf_intr_status(struct dlb_hw *hw)
+{
+ return DLB_FUNC_RD(hw, DLB_FUNC_VF_VF_MSI_ISR);
+}
+
+void dlb_ack_vf_intr_status(struct dlb_hw *hw, u32 interrupts)
+{
+ DLB_FUNC_WR(hw, DLB_FUNC_VF_VF_MSI_ISR, interrupts);
+}
+
+void dlb_ack_vf_msi_intr(struct dlb_hw *hw, u32 interrupts)
+{
+ DLB_FUNC_WR(hw, DLB_FUNC_VF_VF_MSI_ISR_PEND, interrupts);
+}
+
+void dlb_ack_pf_mbox_int(struct dlb_hw *hw)
+{
+ union dlb_func_vf_pf2vf_mailbox_isr r0;
+
+ r0.field.pf_isr = 1;
+
+ DLB_FUNC_WR(hw, DLB_FUNC_VF_PF2VF_MAILBOX_ISR, r0.val);
+}
+
+u32 dlb_read_vf_to_pf_int_bitvec(struct dlb_hw *hw)
+{
+ /* The PF has one VF->PF MBOX ISR register per VF space, but they all
+ * alias to the same physical register.
+ */
+ return DLB_FUNC_RD(hw, DLB_FUNC_PF_VF2PF_MAILBOX_ISR(0));
+}
+
+void dlb_ack_vf_mbox_int(struct dlb_hw *hw, u32 bitvec)
+{
+ /* The PF has one VF->PF MBOX ISR register per VF space, but they all
+ * alias to the same physical register.
+ */
+ DLB_FUNC_WR(hw, DLB_FUNC_PF_VF2PF_MAILBOX_ISR(0), bitvec);
+}
+
+u32 dlb_read_vf_flr_int_bitvec(struct dlb_hw *hw)
+{
+ /* The PF has one VF->PF FLR ISR register per VF space, but they all
+ * alias to the same physical register.
+ */
+ return DLB_FUNC_RD(hw, DLB_FUNC_PF_VF2PF_FLR_ISR(0));
+}
+
+void dlb_set_vf_reset_in_progress(struct dlb_hw *hw, int vf)
+{
+ u32 bitvec = DLB_FUNC_RD(hw, DLB_FUNC_PF_VF_RESET_IN_PROGRESS(0));
+
+ bitvec |= (1 << vf);
+
+ DLB_FUNC_WR(hw, DLB_FUNC_PF_VF_RESET_IN_PROGRESS(0), bitvec);
+}
+
+void dlb_clr_vf_reset_in_progress(struct dlb_hw *hw, int vf)
+{
+ u32 bitvec = DLB_FUNC_RD(hw, DLB_FUNC_PF_VF_RESET_IN_PROGRESS(0));
+
+ bitvec &= ~(1 << vf);
+
+ DLB_FUNC_WR(hw, DLB_FUNC_PF_VF_RESET_IN_PROGRESS(0), bitvec);
+}
+
+void dlb_ack_vf_flr_int(struct dlb_hw *hw, u32 bitvec, bool a_stepping)
+{
+ union dlb_sys_func_vf_bar_dsbl r0 = { {0} };
+ u32 clear;
+ int i;
+
+ if (!bitvec)
+ return;
+
+ /* Re-enable access to the VF BAR */
+ r0.field.func_vf_bar_dis = 0;
+ for (i = 0; i < DLB_MAX_NUM_VFS; i++) {
+ if (!(bitvec & (1 << i)))
+ continue;
+
+ DLB_CSR_WR(hw, DLB_SYS_FUNC_VF_BAR_DSBL(i), r0.val);
+ }
+
+ /* Notify the VF driver that the reset has completed. This register is
+ * RW in A-stepping devices, WOCLR otherwise.
+ */
+ if (a_stepping) {
+ clear = DLB_FUNC_RD(hw, DLB_FUNC_PF_VF_RESET_IN_PROGRESS(0));
+ clear &= ~bitvec;
+ } else {
+ clear = bitvec;
+ }
+
+ DLB_FUNC_WR(hw, DLB_FUNC_PF_VF_RESET_IN_PROGRESS(0), clear);
+
+ /* Mark the FLR ISR as complete */
+ DLB_FUNC_WR(hw, DLB_FUNC_PF_VF2PF_FLR_ISR(0), bitvec);
+}
+
+void dlb_ack_vf_to_pf_int(struct dlb_hw *hw,
+ u32 mbox_bitvec,
+ u32 flr_bitvec)
+{
+ int i;
+
+ dlb_ack_msix_interrupt(hw, DLB_INT_VF_TO_PF_MBOX);
+
+ for (i = 0; i < DLB_MAX_NUM_VFS; i++) {
+ union dlb_func_pf_vf2pf_isr_pend r0 = { {0} };
+
+ if (!((mbox_bitvec & (1 << i)) || (flr_bitvec & (1 << i))))
+ continue;
+
+ /* Unset the VF's ISR pending bit */
+ r0.field.isr_pend = 1;
+ DLB_FUNC_WR(hw, DLB_FUNC_PF_VF2PF_ISR_PEND(i), r0.val);
+ }
+}
+
+void dlb_enable_alarm_interrupts(struct dlb_hw *hw)
+{
+ union dlb_sys_ingress_alarm_enbl r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_SYS_INGRESS_ALARM_ENBL);
+
+ r0.field.illegal_hcw = 1;
+ r0.field.illegal_pp = 1;
+ r0.field.disabled_pp = 1;
+ r0.field.illegal_qid = 1;
+ r0.field.disabled_qid = 1;
+ r0.field.illegal_ldb_qid_cfg = 1;
+ r0.field.illegal_cqid = 1;
+
+ DLB_CSR_WR(hw, DLB_SYS_INGRESS_ALARM_ENBL, r0.val);
+}
+
+void dlb_disable_alarm_interrupts(struct dlb_hw *hw)
+{
+ union dlb_sys_ingress_alarm_enbl r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_SYS_INGRESS_ALARM_ENBL);
+
+ r0.field.illegal_hcw = 0;
+ r0.field.illegal_pp = 0;
+ r0.field.disabled_pp = 0;
+ r0.field.illegal_qid = 0;
+ r0.field.disabled_qid = 0;
+ r0.field.illegal_ldb_qid_cfg = 0;
+ r0.field.illegal_cqid = 0;
+
+ DLB_CSR_WR(hw, DLB_SYS_INGRESS_ALARM_ENBL, r0.val);
+}
+
+static void dlb_log_alarm_syndrome(struct dlb_hw *hw,
+ const char *str,
+ union dlb_sys_alarm_hw_synd r0)
+{
+ DLB_HW_ERR(hw, "%s:\n", str);
+ DLB_HW_ERR(hw, "\tsyndrome: 0x%x\n", r0.field.syndrome);
+ DLB_HW_ERR(hw, "\trtype: 0x%x\n", r0.field.rtype);
+ DLB_HW_ERR(hw, "\tfrom_dmv: 0x%x\n", r0.field.from_dmv);
+ DLB_HW_ERR(hw, "\tis_ldb: 0x%x\n", r0.field.is_ldb);
+ DLB_HW_ERR(hw, "\tcls: 0x%x\n", r0.field.cls);
+ DLB_HW_ERR(hw, "\taid: 0x%x\n", r0.field.aid);
+ DLB_HW_ERR(hw, "\tunit: 0x%x\n", r0.field.unit);
+ DLB_HW_ERR(hw, "\tsource: 0x%x\n", r0.field.source);
+ DLB_HW_ERR(hw, "\tmore: 0x%x\n", r0.field.more);
+ DLB_HW_ERR(hw, "\tvalid: 0x%x\n", r0.field.valid);
+}
+
+/* Note: this array's contents must match dlb_alert_id() */
+static const char dlb_alert_strings[NUM_DLB_DOMAIN_ALERTS][128] = {
+ [DLB_DOMAIN_ALERT_PP_OUT_OF_CREDITS] = "Insufficient credits",
+ [DLB_DOMAIN_ALERT_PP_ILLEGAL_ENQ] = "Illegal enqueue",
+ [DLB_DOMAIN_ALERT_PP_EXCESS_TOKEN_POPS] = "Excess token pops",
+ [DLB_DOMAIN_ALERT_ILLEGAL_HCW] = "Illegal HCW",
+ [DLB_DOMAIN_ALERT_ILLEGAL_QID] = "Illegal QID",
+ [DLB_DOMAIN_ALERT_DISABLED_QID] = "Disabled QID",
+};
+
+static void dlb_log_pf_vf_syndrome(struct dlb_hw *hw,
+ const char *str,
+ union dlb_sys_alarm_pf_synd0 r0,
+ union dlb_sys_alarm_pf_synd1 r1,
+ union dlb_sys_alarm_pf_synd2 r2,
+ u32 alert_id)
+{
+ DLB_HW_ERR(hw, "%s:\n", str);
+ if (alert_id < NUM_DLB_DOMAIN_ALERTS)
+ DLB_HW_ERR(hw, "Alert: %s\n", dlb_alert_strings[alert_id]);
+ DLB_HW_ERR(hw, "\tsyndrome: 0x%x\n", r0.field.syndrome);
+ DLB_HW_ERR(hw, "\trtype: 0x%x\n", r0.field.rtype);
+ DLB_HW_ERR(hw, "\tfrom_dmv: 0x%x\n", r0.field.from_dmv);
+ DLB_HW_ERR(hw, "\tis_ldb: 0x%x\n", r0.field.is_ldb);
+ DLB_HW_ERR(hw, "\tcls: 0x%x\n", r0.field.cls);
+ DLB_HW_ERR(hw, "\taid: 0x%x\n", r0.field.aid);
+ DLB_HW_ERR(hw, "\tunit: 0x%x\n", r0.field.unit);
+ DLB_HW_ERR(hw, "\tsource: 0x%x\n", r0.field.source);
+ DLB_HW_ERR(hw, "\tmore: 0x%x\n", r0.field.more);
+ DLB_HW_ERR(hw, "\tvalid: 0x%x\n", r0.field.valid);
+ DLB_HW_ERR(hw, "\tdsi: 0x%x\n", r1.field.dsi);
+ DLB_HW_ERR(hw, "\tqid: 0x%x\n", r1.field.qid);
+ DLB_HW_ERR(hw, "\tqtype: 0x%x\n", r1.field.qtype);
+ DLB_HW_ERR(hw, "\tqpri: 0x%x\n", r1.field.qpri);
+ DLB_HW_ERR(hw, "\tmsg_type: 0x%x\n", r1.field.msg_type);
+ DLB_HW_ERR(hw, "\tlock_id: 0x%x\n", r2.field.lock_id);
+ DLB_HW_ERR(hw, "\tmeas: 0x%x\n", r2.field.meas);
+ DLB_HW_ERR(hw, "\tdebug: 0x%x\n", r2.field.debug);
+ DLB_HW_ERR(hw, "\tcq_pop: 0x%x\n", r2.field.cq_pop);
+ DLB_HW_ERR(hw, "\tqe_uhl: 0x%x\n", r2.field.qe_uhl);
+ DLB_HW_ERR(hw, "\tqe_orsp: 0x%x\n", r2.field.qe_orsp);
+ DLB_HW_ERR(hw, "\tqe_valid: 0x%x\n", r2.field.qe_valid);
+ DLB_HW_ERR(hw, "\tcq_int_rearm: 0x%x\n", r2.field.cq_int_rearm);
+ DLB_HW_ERR(hw, "\tdsi_error: 0x%x\n", r2.field.dsi_error);
+}
+
+static void dlb_clear_syndrome_register(struct dlb_hw *hw, u32 offset)
+{
+ union dlb_sys_alarm_hw_synd r0 = { {0} };
+
+ r0.field.valid = 1;
+ r0.field.more = 1;
+
+ DLB_CSR_WR(hw, offset, r0.val);
+}
+
+void dlb_process_alarm_interrupt(struct dlb_hw *hw)
+{
+ union dlb_sys_alarm_hw_synd r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_SYS_ALARM_HW_SYND);
+
+ dlb_log_alarm_syndrome(hw, "HW alarm syndrome", r0);
+
+ dlb_clear_syndrome_register(hw, DLB_SYS_ALARM_HW_SYND);
+
+ dlb_ack_msix_interrupt(hw, DLB_INT_ALARM);
+}
+
+static void dlb_process_ingress_error(struct dlb_hw *hw,
+ union dlb_sys_alarm_pf_synd0 r0,
+ u32 alert_id,
+ bool vf_error,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ bool is_ldb;
+ u8 port_id;
+ int ret;
+
+ port_id = r0.field.syndrome & 0x7F;
+ if (r0.field.source == DLB_ALARM_HW_SOURCE_SYS)
+ is_ldb = r0.field.is_ldb;
+ else
+ is_ldb = (r0.field.syndrome & 0x80) != 0;
+
+ /* Get the domain ID and, if it's a VF domain, the virtual port ID */
+ if (is_ldb) {
+ struct dlb_ldb_port *port;
+
+ port = dlb_get_ldb_port_from_id(hw, port_id, vf_error, vf_id);
+
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s()]: Internal error: unable to find LDB port\n\tport: %u, vf_error: %u, vf_id: %u\n",
+ __func__, port_id, vf_error, vf_id);
+ return;
+ }
+
+ domain = &hw->domains[port->domain_id.phys_id];
+ } else {
+ struct dlb_dir_pq_pair *port;
+
+ port = dlb_get_dir_pq_from_id(hw, port_id, vf_error, vf_id);
+
+ if (!port) {
+ DLB_HW_ERR(hw,
+ "[%s()]: Internal error: unable to find DIR port\n\tport: %u, vf_error: %u, vf_id: %u\n",
+ __func__, port_id, vf_error, vf_id);
+ return;
+ }
+
+ domain = &hw->domains[port->domain_id.phys_id];
+ }
+
+ if (vf_error)
+ ret = dlb_vf_domain_alert(hw,
+ vf_id,
+ domain->id.virt_id,
+ alert_id,
+ (is_ldb << 8) | port_id);
+ else
+ ret = os_notify_user_space(hw,
+ domain->id.phys_id,
+ alert_id,
+ (is_ldb << 8) | port_id);
+
+ if (ret)
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to notify\n",
+ __func__);
+}
+
+static u32 dlb_alert_id(union dlb_sys_alarm_pf_synd0 r0)
+{
+ if (r0.field.unit == DLB_ALARM_HW_UNIT_CHP &&
+ r0.field.aid == DLB_ALARM_HW_CHP_AID_OUT_OF_CREDITS)
+ return DLB_DOMAIN_ALERT_PP_OUT_OF_CREDITS;
+ else if (r0.field.unit == DLB_ALARM_HW_UNIT_CHP &&
+ r0.field.aid == DLB_ALARM_HW_CHP_AID_ILLEGAL_ENQ)
+ return DLB_DOMAIN_ALERT_PP_ILLEGAL_ENQ;
+ else if (r0.field.unit == DLB_ALARM_HW_UNIT_LSP &&
+ r0.field.aid == DLB_ALARM_HW_LSP_AID_EXCESS_TOKEN_POPS)
+ return DLB_DOMAIN_ALERT_PP_EXCESS_TOKEN_POPS;
+ else if (r0.field.source == DLB_ALARM_HW_SOURCE_SYS &&
+ r0.field.aid == DLB_ALARM_SYS_AID_ILLEGAL_HCW)
+ return DLB_DOMAIN_ALERT_ILLEGAL_HCW;
+ else if (r0.field.source == DLB_ALARM_HW_SOURCE_SYS &&
+ r0.field.aid == DLB_ALARM_SYS_AID_ILLEGAL_QID)
+ return DLB_DOMAIN_ALERT_ILLEGAL_QID;
+ else if (r0.field.source == DLB_ALARM_HW_SOURCE_SYS &&
+ r0.field.aid == DLB_ALARM_SYS_AID_DISABLED_QID)
+ return DLB_DOMAIN_ALERT_DISABLED_QID;
+ else
+ return NUM_DLB_DOMAIN_ALERTS;
+}
+
+void dlb_process_ingress_error_interrupt(struct dlb_hw *hw)
+{
+ union dlb_sys_alarm_pf_synd0 r0;
+ union dlb_sys_alarm_pf_synd1 r1;
+ union dlb_sys_alarm_pf_synd2 r2;
+ u32 alert_id;
+ int i;
+
+ r0.val = DLB_CSR_RD(hw, DLB_SYS_ALARM_PF_SYND0);
+
+ if (r0.field.valid) {
+ r1.val = DLB_CSR_RD(hw, DLB_SYS_ALARM_PF_SYND1);
+ r2.val = DLB_CSR_RD(hw, DLB_SYS_ALARM_PF_SYND2);
+
+ alert_id = dlb_alert_id(r0);
+
+ dlb_log_pf_vf_syndrome(hw,
+ "PF Ingress error alarm",
+ r0, r1, r2, alert_id);
+
+ dlb_clear_syndrome_register(hw, DLB_SYS_ALARM_PF_SYND0);
+
+ dlb_process_ingress_error(hw, r0, alert_id, false, 0);
+ }
+
+ for (i = 0; i < DLB_MAX_NUM_VFS; i++) {
+ r0.val = DLB_CSR_RD(hw, DLB_SYS_ALARM_VF_SYND0(i));
+
+ if (!r0.field.valid)
+ continue;
+
+ r1.val = DLB_CSR_RD(hw, DLB_SYS_ALARM_VF_SYND1(i));
+ r2.val = DLB_CSR_RD(hw, DLB_SYS_ALARM_VF_SYND2(i));
+
+ alert_id = dlb_alert_id(r0);
+
+ dlb_log_pf_vf_syndrome(hw,
+ "VF Ingress error alarm",
+ r0, r1, r2, alert_id);
+
+ dlb_clear_syndrome_register(hw,
+ DLB_SYS_ALARM_VF_SYND0(i));
+
+ dlb_process_ingress_error(hw, r0, alert_id, true, i);
+ }
+
+ dlb_ack_msix_interrupt(hw, DLB_INT_INGRESS_ERROR);
+}
+
+int dlb_get_group_sequence_numbers(struct dlb_hw *hw, unsigned int group_id)
+{
+ if (group_id >= DLB_MAX_NUM_SEQUENCE_NUMBER_GROUPS)
+ return -EINVAL;
+
+ return hw->rsrcs.sn_groups[group_id].sequence_numbers_per_queue;
+}
+
+int dlb_get_group_sequence_number_occupancy(struct dlb_hw *hw,
+ unsigned int group_id)
+{
+ if (group_id >= DLB_MAX_NUM_SEQUENCE_NUMBER_GROUPS)
+ return -EINVAL;
+
+ return dlb_sn_group_used_slots(&hw->rsrcs.sn_groups[group_id]);
+}
+
+static void dlb_log_set_group_sequence_numbers(struct dlb_hw *hw,
+ unsigned int group_id,
+ unsigned long val)
+{
+ DLB_HW_INFO(hw, "DLB set group sequence numbers:\n");
+ DLB_HW_INFO(hw, "\tGroup ID: %u\n", group_id);
+ DLB_HW_INFO(hw, "\tValue: %lu\n", val);
+}
+
+int dlb_set_group_sequence_numbers(struct dlb_hw *hw,
+ unsigned int group_id,
+ unsigned long val)
+{
+ u32 valid_allocations[6] = {32, 64, 128, 256, 512, 1024};
+ union dlb_ro_pipe_grp_sn_mode r0 = { {0} };
+ struct dlb_sn_group *group;
+ int mode;
+
+ if (group_id >= DLB_MAX_NUM_SEQUENCE_NUMBER_GROUPS)
+ return -EINVAL;
+
+ group = &hw->rsrcs.sn_groups[group_id];
+
+ /* Once the first load-balanced queue using an SN group is configured,
+ * the group cannot be changed.
+ */
+ if (group->slot_use_bitmap != 0)
+ return -EPERM;
+
+ for (mode = 0; mode < DLB_MAX_NUM_SEQUENCE_NUMBER_MODES; mode++)
+ if (val == valid_allocations[mode])
+ break;
+
+ if (mode == DLB_MAX_NUM_SEQUENCE_NUMBER_MODES)
+ return -EINVAL;
+
+ group->mode = mode;
+ group->sequence_numbers_per_queue = val;
+
+ r0.field.sn_mode_0 = hw->rsrcs.sn_groups[0].mode;
+ r0.field.sn_mode_1 = hw->rsrcs.sn_groups[1].mode;
+ r0.field.sn_mode_2 = hw->rsrcs.sn_groups[2].mode;
+ r0.field.sn_mode_3 = hw->rsrcs.sn_groups[3].mode;
+
+ DLB_CSR_WR(hw, DLB_RO_PIPE_GRP_SN_MODE, r0.val);
+
+ dlb_log_set_group_sequence_numbers(hw, group_id, val);
+
+ return 0;
+}
+
+void dlb_disable_dp_vasr_feature(struct dlb_hw *hw)
+{
+ union dlb_dp_dir_csr_ctrl r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_DP_DIR_CSR_CTRL);
+
+ r0.field.cfg_vasr_dis = 1;
+
+ DLB_CSR_WR(hw, DLB_DP_DIR_CSR_CTRL, r0.val);
+}
+
+void dlb_enable_excess_tokens_alarm(struct dlb_hw *hw)
+{
+ union dlb_chp_cfg_chp_csr_ctrl r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_CHP_CFG_CHP_CSR_CTRL);
+
+ r0.val |= 1 << DLB_CHP_CFG_EXCESS_TOKENS_SHIFT;
+
+ DLB_CSR_WR(hw, DLB_CHP_CFG_CHP_CSR_CTRL, r0.val);
+}
+
+void dlb_disable_excess_tokens_alarm(struct dlb_hw *hw)
+{
+ union dlb_chp_cfg_chp_csr_ctrl r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_CHP_CFG_CHP_CSR_CTRL);
+
+ r0.val &= ~(1 << DLB_CHP_CFG_EXCESS_TOKENS_SHIFT);
+
+ DLB_CSR_WR(hw, DLB_CHP_CFG_CHP_CSR_CTRL, r0.val);
+}
+
+static int dlb_reset_hw_resource(struct dlb_hw *hw, int type, int id)
+{
+ union dlb_cfg_mstr_diag_reset_sts r0 = { {0} };
+ union dlb_cfg_mstr_bcast_reset_vf_start r1 = { {0} };
+ int i;
+
+ r1.field.vf_reset_start = 1;
+
+ r1.field.vf_reset_type = type;
+ r1.field.vf_reset_id = id;
+
+ DLB_CSR_WR(hw, DLB_CFG_MSTR_BCAST_RESET_VF_START, r1.val);
+
+ /* Wait for hardware to complete. This is a finite time operation,
+ * but wait set a loop bound just in case.
+ */
+ for (i = 0; i < 1024 * 1024; i++) {
+ r0.val = DLB_CSR_RD(hw, DLB_CFG_MSTR_DIAG_RESET_STS);
+
+ if (r0.field.chp_vf_reset_done &&
+ r0.field.rop_vf_reset_done &&
+ r0.field.lsp_vf_reset_done &&
+ r0.field.nalb_vf_reset_done &&
+ r0.field.ap_vf_reset_done &&
+ r0.field.dp_vf_reset_done &&
+ r0.field.qed_vf_reset_done &&
+ r0.field.dqed_vf_reset_done &&
+ r0.field.aqed_vf_reset_done)
+ return 0;
+
+ os_udelay(1);
+ }
+
+ return -ETIMEDOUT;
+}
+
+static int dlb_domain_reset_hw_resources(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *dir_port;
+ struct dlb_ldb_queue *ldb_queue;
+ struct dlb_ldb_port *ldb_port;
+ struct dlb_credit_pool *pool;
+ int ret;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_credit_pools, pool, iter) {
+ ret = dlb_reset_hw_resource(hw,
+ VF_RST_TYPE_POOL_LDB,
+ pool->id.phys_id);
+ if (ret)
+ return ret;
+ }
+
+ DLB_DOM_LIST_FOR(domain->used_dir_credit_pools, pool, iter) {
+ ret = dlb_reset_hw_resource(hw,
+ VF_RST_TYPE_POOL_DIR,
+ pool->id.phys_id);
+ if (ret)
+ return ret;
+ }
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_queues, ldb_queue, iter) {
+ ret = dlb_reset_hw_resource(hw,
+ VF_RST_TYPE_QID_LDB,
+ ldb_queue->id.phys_id);
+ if (ret)
+ return ret;
+ }
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, dir_port, iter) {
+ ret = dlb_reset_hw_resource(hw,
+ VF_RST_TYPE_QID_DIR,
+ dir_port->id.phys_id);
+ if (ret)
+ return ret;
+ }
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, ldb_port, iter) {
+ ret = dlb_reset_hw_resource(hw,
+ VF_RST_TYPE_CQ_LDB,
+ ldb_port->id.phys_id);
+ if (ret)
+ return ret;
+ }
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, dir_port, iter) {
+ ret = dlb_reset_hw_resource(hw,
+ VF_RST_TYPE_CQ_DIR,
+ dir_port->id.phys_id);
+ if (ret)
+ return ret;
+ }
+
+ return 0;
+}
+
+static u32 dlb_ldb_cq_inflight_count(struct dlb_hw *hw,
+ struct dlb_ldb_port *port)
+{
+ union dlb_lsp_cq_ldb_infl_cnt r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_CQ_LDB_INFL_CNT(port->id.phys_id));
+
+ return r0.field.count;
+}
+
+static u32 dlb_ldb_cq_token_count(struct dlb_hw *hw,
+ struct dlb_ldb_port *port)
+{
+ union dlb_lsp_cq_ldb_tkn_cnt r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_CQ_LDB_TKN_CNT(port->id.phys_id));
+
+ return r0.field.token_count;
+}
+
+static int dlb_drain_ldb_cq(struct dlb_hw *hw, struct dlb_ldb_port *port)
+{
+ u32 infl_cnt, tkn_cnt;
+ unsigned int i;
+
+ infl_cnt = dlb_ldb_cq_inflight_count(hw, port);
+
+ /* Account for the initial token count, which is used in order to
+ * provide a CQ with depth less than 8.
+ */
+ tkn_cnt = dlb_ldb_cq_token_count(hw, port) - port->init_tkn_cnt;
+
+ if (infl_cnt || tkn_cnt) {
+ struct dlb_hcw hcw_mem[8], *hcw;
+ void *pp_addr;
+
+ pp_addr = os_map_producer_port(hw, port->id.phys_id, true);
+
+ /* Point hcw to a 64B-aligned location */
+ hcw = (struct dlb_hcw *)((uintptr_t)&hcw_mem[4] & ~0x3F);
+
+ /* Program the first HCW for a completion and token return and
+ * the other HCWs as NOOPS
+ */
+
+ memset(hcw, 0, 4 * sizeof(*hcw));
+ hcw->qe_comp = (infl_cnt > 0);
+ hcw->cq_token = (tkn_cnt > 0);
+ hcw->lock_id = tkn_cnt - 1;
+
+ /* Return tokens in the first HCW */
+ os_enqueue_four_hcws(hw, hcw, pp_addr);
+
+ hcw->cq_token = 0;
+
+ /* Issue remaining completions (if any) */
+ for (i = 1; i < infl_cnt; i++)
+ os_enqueue_four_hcws(hw, hcw, pp_addr);
+
+ os_fence_hcw(hw, pp_addr);
+
+ os_unmap_producer_port(hw, pp_addr);
+ }
+
+ return 0;
+}
+
+static int dlb_domain_wait_for_ldb_cqs_to_empty(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter) {
+ int i;
+
+ for (i = 0; i < DLB_MAX_CQ_COMP_CHECK_LOOPS; i++) {
+ if (dlb_ldb_cq_inflight_count(hw, port) == 0)
+ break;
+ }
+
+ if (i == DLB_MAX_CQ_COMP_CHECK_LOOPS) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to flush load-balanced port %d's completions.\n",
+ __func__, port->id.phys_id);
+ return -EFAULT;
+ }
+ }
+
+ return 0;
+}
+
+static int dlb_domain_reset_software_state(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_ldb_queue *tmp_ldb_queue __attribute__((unused));
+ struct dlb_dir_pq_pair *tmp_dir_port __attribute__((unused));
+ struct dlb_ldb_port *tmp_ldb_port __attribute__((unused));
+ struct dlb_credit_pool *tmp_pool __attribute__((unused));
+ struct dlb_list_entry *iter1 __attribute__((unused));
+ struct dlb_list_entry *iter2 __attribute__((unused));
+ struct dlb_ldb_queue *ldb_queue;
+ struct dlb_dir_pq_pair *dir_port;
+ struct dlb_ldb_port *ldb_port;
+ struct dlb_credit_pool *pool;
+
+ struct dlb_function_resources *rsrcs;
+ struct dlb_list_head *list;
+ int ret;
+
+ rsrcs = domain->parent_func;
+
+ /* Move the domain's ldb queues to the function's avail list */
+ list = &domain->used_ldb_queues;
+ DLB_DOM_LIST_FOR_SAFE(*list, ldb_queue, tmp_ldb_queue, iter1, iter2) {
+ if (ldb_queue->sn_cfg_valid) {
+ struct dlb_sn_group *grp;
+
+ grp = &hw->rsrcs.sn_groups[ldb_queue->sn_group];
+
+ dlb_sn_group_free_slot(grp, ldb_queue->sn_slot);
+ ldb_queue->sn_cfg_valid = false;
+ }
+
+ ldb_queue->owned = false;
+ ldb_queue->num_mappings = 0;
+ ldb_queue->num_pending_additions = 0;
+
+ dlb_list_del(&domain->used_ldb_queues, &ldb_queue->domain_list);
+ dlb_list_add(&rsrcs->avail_ldb_queues, &ldb_queue->func_list);
+ rsrcs->num_avail_ldb_queues++;
+ }
+
+ list = &domain->avail_ldb_queues;
+ DLB_DOM_LIST_FOR_SAFE(*list, ldb_queue, tmp_ldb_queue, iter1, iter2) {
+ ldb_queue->owned = false;
+
+ dlb_list_del(&domain->avail_ldb_queues,
+ &ldb_queue->domain_list);
+ dlb_list_add(&rsrcs->avail_ldb_queues,
+ &ldb_queue->func_list);
+ rsrcs->num_avail_ldb_queues++;
+ }
+
+ /* Move the domain's ldb ports to the function's avail list */
+ list = &domain->used_ldb_ports;
+ DLB_DOM_LIST_FOR_SAFE(*list, ldb_port, tmp_ldb_port, iter1, iter2) {
+ int i;
+
+ ldb_port->owned = false;
+ ldb_port->configured = false;
+ ldb_port->num_pending_removals = 0;
+ ldb_port->num_mappings = 0;
+ for (i = 0; i < DLB_MAX_NUM_QIDS_PER_LDB_CQ; i++)
+ ldb_port->qid_map[i].state = DLB_QUEUE_UNMAPPED;
+
+ dlb_list_del(&domain->used_ldb_ports, &ldb_port->domain_list);
+ dlb_list_add(&rsrcs->avail_ldb_ports, &ldb_port->func_list);
+ rsrcs->num_avail_ldb_ports++;
+ }
+
+ list = &domain->avail_ldb_ports;
+ DLB_DOM_LIST_FOR_SAFE(*list, ldb_port, tmp_ldb_port, iter1, iter2) {
+ ldb_port->owned = false;
+
+ dlb_list_del(&domain->avail_ldb_ports, &ldb_port->domain_list);
+ dlb_list_add(&rsrcs->avail_ldb_ports, &ldb_port->func_list);
+ rsrcs->num_avail_ldb_ports++;
+ }
+
+ /* Move the domain's dir ports to the function's avail list */
+ list = &domain->used_dir_pq_pairs;
+ DLB_DOM_LIST_FOR_SAFE(*list, dir_port, tmp_dir_port, iter1, iter2) {
+ dir_port->owned = false;
+ dir_port->port_configured = false;
+
+ dlb_list_del(&domain->used_dir_pq_pairs,
+ &dir_port->domain_list);
+
+ dlb_list_add(&rsrcs->avail_dir_pq_pairs,
+ &dir_port->func_list);
+ rsrcs->num_avail_dir_pq_pairs++;
+ }
+
+ list = &domain->avail_dir_pq_pairs;
+ DLB_DOM_LIST_FOR_SAFE(*list, dir_port, tmp_dir_port, iter1, iter2) {
+ dir_port->owned = false;
+
+ dlb_list_del(&domain->avail_dir_pq_pairs,
+ &dir_port->domain_list);
+
+ dlb_list_add(&rsrcs->avail_dir_pq_pairs,
+ &dir_port->func_list);
+ rsrcs->num_avail_dir_pq_pairs++;
+ }
+
+ /* Return hist list entries to the function */
+ ret = dlb_bitmap_set_range(rsrcs->avail_hist_list_entries,
+ domain->hist_list_entry_base,
+ domain->total_hist_list_entries);
+ if (ret) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: domain hist list base doesn't match the function's bitmap.\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ domain->total_hist_list_entries = 0;
+ domain->avail_hist_list_entries = 0;
+ domain->hist_list_entry_base = 0;
+ domain->hist_list_entry_offset = 0;
+
+ /* Return QED entries to the function */
+ ret = dlb_bitmap_set_range(rsrcs->avail_qed_freelist_entries,
+ domain->qed_freelist.base,
+ (domain->qed_freelist.bound -
+ domain->qed_freelist.base));
+ if (ret) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: domain QED base doesn't match the function's bitmap.\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ domain->qed_freelist.base = 0;
+ domain->qed_freelist.bound = 0;
+ domain->qed_freelist.offset = 0;
+
+ /* Return DQED entries back to the function */
+ ret = dlb_bitmap_set_range(rsrcs->avail_dqed_freelist_entries,
+ domain->dqed_freelist.base,
+ (domain->dqed_freelist.bound -
+ domain->dqed_freelist.base));
+ if (ret) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: domain DQED base doesn't match the function's bitmap.\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ domain->dqed_freelist.base = 0;
+ domain->dqed_freelist.bound = 0;
+ domain->dqed_freelist.offset = 0;
+
+ /* Return AQED entries back to the function */
+ ret = dlb_bitmap_set_range(rsrcs->avail_aqed_freelist_entries,
+ domain->aqed_freelist.base,
+ (domain->aqed_freelist.bound -
+ domain->aqed_freelist.base));
+ if (ret) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: domain AQED base doesn't match the function's bitmap.\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ domain->aqed_freelist.base = 0;
+ domain->aqed_freelist.bound = 0;
+ domain->aqed_freelist.offset = 0;
+
+ /* Return ldb credit pools back to the function's avail list */
+ list = &domain->used_ldb_credit_pools;
+ DLB_DOM_LIST_FOR_SAFE(*list, pool, tmp_pool, iter1, iter2) {
+ pool->owned = false;
+ pool->configured = false;
+
+ dlb_list_del(&domain->used_ldb_credit_pools,
+ &pool->domain_list);
+ dlb_list_add(&rsrcs->avail_ldb_credit_pools,
+ &pool->func_list);
+ rsrcs->num_avail_ldb_credit_pools++;
+ }
+
+ list = &domain->avail_ldb_credit_pools;
+ DLB_DOM_LIST_FOR_SAFE(*list, pool, tmp_pool, iter1, iter2) {
+ pool->owned = false;
+
+ dlb_list_del(&domain->avail_ldb_credit_pools,
+ &pool->domain_list);
+ dlb_list_add(&rsrcs->avail_ldb_credit_pools,
+ &pool->func_list);
+ rsrcs->num_avail_ldb_credit_pools++;
+ }
+
+ /* Move dir credit pools back to the function */
+ list = &domain->used_dir_credit_pools;
+ DLB_DOM_LIST_FOR_SAFE(*list, pool, tmp_pool, iter1, iter2) {
+ pool->owned = false;
+ pool->configured = false;
+
+ dlb_list_del(&domain->used_dir_credit_pools,
+ &pool->domain_list);
+ dlb_list_add(&rsrcs->avail_dir_credit_pools,
+ &pool->func_list);
+ rsrcs->num_avail_dir_credit_pools++;
+ }
+
+ list = &domain->avail_dir_credit_pools;
+ DLB_DOM_LIST_FOR_SAFE(*list, pool, tmp_pool, iter1, iter2) {
+ pool->owned = false;
+
+ dlb_list_del(&domain->avail_dir_credit_pools,
+ &pool->domain_list);
+ dlb_list_add(&rsrcs->avail_dir_credit_pools,
+ &pool->func_list);
+ rsrcs->num_avail_dir_credit_pools++;
+ }
+
+ domain->num_pending_removals = 0;
+ domain->num_pending_additions = 0;
+ domain->configured = false;
+ domain->started = false;
+
+ /* Move the domain out of the used_domains list and back to the
+ * function's avail_domains list.
+ */
+ dlb_list_del(&rsrcs->used_domains, &domain->func_list);
+ dlb_list_add(&rsrcs->avail_domains, &domain->func_list);
+ rsrcs->num_avail_domains++;
+
+ return 0;
+}
+
+void dlb_resource_reset(struct dlb_hw *hw)
+{
+ struct dlb_domain *domain, *next __attribute__((unused));
+ struct dlb_list_entry *iter1 __attribute__((unused));
+ struct dlb_list_entry *iter2 __attribute__((unused));
+ int i;
+
+ for (i = 0; i < DLB_MAX_NUM_VFS; i++) {
+ DLB_FUNC_LIST_FOR_SAFE(hw->vf[i].used_domains, domain,
+ next, iter1, iter2)
+ dlb_domain_reset_software_state(hw, domain);
+ }
+
+ DLB_FUNC_LIST_FOR_SAFE(hw->pf.used_domains, domain, next, iter1, iter2)
+ dlb_domain_reset_software_state(hw, domain);
+}
+
+static u32 dlb_dir_queue_depth(struct dlb_hw *hw,
+ struct dlb_dir_pq_pair *queue)
+{
+ union dlb_lsp_qid_dir_enqueue_cnt r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_QID_DIR_ENQUEUE_CNT(queue->id.phys_id));
+
+ return r0.field.count;
+}
+
+static bool dlb_dir_queue_is_empty(struct dlb_hw *hw,
+ struct dlb_dir_pq_pair *queue)
+{
+ return dlb_dir_queue_depth(hw, queue) == 0;
+}
+
+static void dlb_log_get_dir_queue_depth(struct dlb_hw *hw,
+ u32 domain_id,
+ u32 queue_id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB get directed queue depth:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n", domain_id);
+ DLB_HW_INFO(hw, "\tQueue ID: %d\n", queue_id);
+}
+
+int dlb_hw_get_dir_queue_depth(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_get_dir_queue_depth_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_dir_pq_pair *queue;
+ struct dlb_domain *domain;
+ int id;
+
+ id = domain_id;
+
+ dlb_log_get_dir_queue_depth(hw, domain_id, args->queue_id,
+ vf_request, vf_id);
+
+ domain = dlb_get_domain_from_id(hw, id, vf_request, vf_id);
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -EINVAL;
+ }
+
+ id = args->queue_id;
+
+ queue = dlb_get_domain_used_dir_pq(id, vf_request, domain);
+ if (!queue) {
+ resp->status = DLB_ST_INVALID_QID;
+ return -EINVAL;
+ }
+
+ resp->id = dlb_dir_queue_depth(hw, queue);
+
+ return 0;
+}
+
+static void
+dlb_log_pending_port_unmaps_args(struct dlb_hw *hw,
+ struct dlb_pending_port_unmaps_args *args,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB pending port unmaps arguments:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tPort ID: %d\n", args->port_id);
+}
+
+int dlb_hw_pending_port_unmaps(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_pending_port_unmaps_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ struct dlb_ldb_port *port;
+
+ dlb_log_pending_port_unmaps_args(hw, args, vf_request, vf_id);
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -EINVAL;
+ }
+
+ port = dlb_get_domain_used_ldb_port(args->port_id, vf_request, domain);
+ if (!port || !port->configured) {
+ resp->status = DLB_ST_INVALID_PORT_ID;
+ return -EINVAL;
+ }
+
+ resp->id = port->num_pending_removals;
+
+ return 0;
+}
+
+/* Returns whether the queue is empty, including its inflight and replay
+ * counts.
+ */
+static bool dlb_ldb_queue_is_empty(struct dlb_hw *hw,
+ struct dlb_ldb_queue *queue)
+{
+ union dlb_lsp_qid_ldb_replay_cnt r0;
+ union dlb_lsp_qid_aqed_active_cnt r1;
+ union dlb_lsp_qid_atq_enqueue_cnt r2;
+ union dlb_lsp_qid_ldb_enqueue_cnt r3;
+ union dlb_lsp_qid_ldb_infl_cnt r4;
+
+ r0.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_LDB_REPLAY_CNT(queue->id.phys_id));
+ if (r0.val)
+ return false;
+
+ r1.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_AQED_ACTIVE_CNT(queue->id.phys_id));
+ if (r1.val)
+ return false;
+
+ r2.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_ATQ_ENQUEUE_CNT(queue->id.phys_id));
+ if (r2.val)
+ return false;
+
+ r3.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_LDB_ENQUEUE_CNT(queue->id.phys_id));
+ if (r3.val)
+ return false;
+
+ r4.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_LDB_INFL_CNT(queue->id.phys_id));
+ if (r4.val)
+ return false;
+
+ return true;
+}
+
+static void dlb_log_get_ldb_queue_depth(struct dlb_hw *hw,
+ u32 domain_id,
+ u32 queue_id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB get load-balanced queue depth:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n", domain_id);
+ DLB_HW_INFO(hw, "\tQueue ID: %d\n", queue_id);
+}
+
+int dlb_hw_get_ldb_queue_depth(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_get_ldb_queue_depth_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_req,
+ unsigned int vf_id)
+{
+ union dlb_lsp_qid_aqed_active_cnt r0;
+ union dlb_lsp_qid_atq_enqueue_cnt r1;
+ union dlb_lsp_qid_ldb_enqueue_cnt r2;
+ struct dlb_ldb_queue *queue;
+ struct dlb_domain *domain;
+
+ dlb_log_get_ldb_queue_depth(hw, domain_id, args->queue_id,
+ vf_req, vf_id);
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_req, vf_id);
+ if (!domain) {
+ resp->status = DLB_ST_INVALID_DOMAIN_ID;
+ return -EINVAL;
+ }
+
+ queue = dlb_get_domain_ldb_queue(args->queue_id, vf_req, domain);
+ if (!queue) {
+ resp->status = DLB_ST_INVALID_QID;
+ return -EINVAL;
+ }
+
+ r0.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_AQED_ACTIVE_CNT(queue->id.phys_id));
+
+ r1.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_ATQ_ENQUEUE_CNT(queue->id.phys_id));
+
+ r2.val = DLB_CSR_RD(hw,
+ DLB_LSP_QID_LDB_ENQUEUE_CNT(queue->id.phys_id));
+
+ resp->id = r0.val + r1.val + r2.val;
+
+ return 0;
+}
+
+static u32 dlb_dir_cq_token_count(struct dlb_hw *hw,
+ struct dlb_dir_pq_pair *port)
+{
+ union dlb_lsp_cq_dir_tkn_cnt r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_LSP_CQ_DIR_TKN_CNT(port->id.phys_id));
+
+ return r0.field.count;
+}
+
+static int dlb_domain_verify_reset_success(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *dir_port;
+ struct dlb_ldb_port *ldb_port;
+ struct dlb_credit_pool *pool;
+ struct dlb_ldb_queue *queue;
+
+ /* Confirm that all credits are returned to the domain's credit pools */
+ DLB_DOM_LIST_FOR(domain->used_dir_credit_pools, pool, iter) {
+ union dlb_chp_dqed_fl_pop_ptr r0;
+ union dlb_chp_dqed_fl_push_ptr r1;
+
+ r0.val = DLB_CSR_RD(hw,
+ DLB_CHP_DQED_FL_POP_PTR(pool->id.phys_id));
+
+ r1.val = DLB_CSR_RD(hw,
+ DLB_CHP_DQED_FL_PUSH_PTR(pool->id.phys_id));
+
+ if (r0.field.pop_ptr != r1.field.push_ptr ||
+ r0.field.generation == r1.field.generation) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to refill directed pool %d's credits.\n",
+ __func__, pool->id.phys_id);
+ return -EFAULT;
+ }
+ }
+
+ /* Confirm that all the domain's queue's inflight counts and AQED
+ * active counts are 0.
+ */
+ DLB_DOM_LIST_FOR(domain->used_ldb_queues, queue, iter) {
+ if (!dlb_ldb_queue_is_empty(hw, queue)) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to empty ldb queue %d\n",
+ __func__, queue->id.phys_id);
+ return -EFAULT;
+ }
+ }
+
+ /* Confirm that all the domain's CQs inflight and token counts are 0. */
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, ldb_port, iter) {
+ if (dlb_ldb_cq_inflight_count(hw, ldb_port) ||
+ dlb_ldb_cq_token_count(hw, ldb_port)) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to empty ldb port %d\n",
+ __func__, ldb_port->id.phys_id);
+ return -EFAULT;
+ }
+ }
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, dir_port, iter) {
+ if (!dlb_dir_queue_is_empty(hw, dir_port)) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to empty dir queue %d\n",
+ __func__, dir_port->id.phys_id);
+ return -EFAULT;
+ }
+
+ if (dlb_dir_cq_token_count(hw, dir_port)) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to empty dir port %d\n",
+ __func__, dir_port->id.phys_id);
+ return -EFAULT;
+ }
+ }
+
+ return 0;
+}
+
+static void __dlb_domain_reset_ldb_port_registers(struct dlb_hw *hw,
+ struct dlb_ldb_port *port)
+{
+ union dlb_chp_ldb_pp_state_reset r0 = { {0} };
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_CRD_REQ_STATE(port->id.phys_id),
+ DLB_CHP_LDB_PP_CRD_REQ_STATE_RST);
+
+ /* Reset the port's load-balanced and directed credit state */
+ r0.field.dir_type = 0;
+ r0.field.reset_pp_state = 1;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_STATE_RESET(port->id.phys_id),
+ r0.val);
+
+ r0.field.dir_type = 1;
+ r0.field.reset_pp_state = 1;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_STATE_RESET(port->id.phys_id),
+ r0.val);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_DIR_PUSH_PTR(port->id.phys_id),
+ DLB_CHP_LDB_PP_DIR_PUSH_PTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_LDB_PUSH_PTR(port->id.phys_id),
+ DLB_CHP_LDB_PP_LDB_PUSH_PTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_LDB_MIN_CRD_QNT(port->id.phys_id),
+ DLB_CHP_LDB_PP_LDB_MIN_CRD_QNT_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_LDB_CRD_LWM(port->id.phys_id),
+ DLB_CHP_LDB_PP_LDB_CRD_LWM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_LDB_CRD_HWM(port->id.phys_id),
+ DLB_CHP_LDB_PP_LDB_CRD_HWM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_LDB_PP2POOL(port->id.phys_id),
+ DLB_CHP_LDB_LDB_PP2POOL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_DIR_MIN_CRD_QNT(port->id.phys_id),
+ DLB_CHP_LDB_PP_DIR_MIN_CRD_QNT_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_DIR_CRD_LWM(port->id.phys_id),
+ DLB_CHP_LDB_PP_DIR_CRD_LWM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_DIR_CRD_HWM(port->id.phys_id),
+ DLB_CHP_LDB_PP_DIR_CRD_HWM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_DIR_PP2POOL(port->id.phys_id),
+ DLB_CHP_LDB_DIR_PP2POOL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_PP2LDBPOOL(port->id.phys_id),
+ DLB_SYS_LDB_PP2LDBPOOL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_PP2DIRPOOL(port->id.phys_id),
+ DLB_SYS_LDB_PP2DIRPOOL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_HIST_LIST_LIM(port->id.phys_id),
+ DLB_CHP_HIST_LIST_LIM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_HIST_LIST_BASE(port->id.phys_id),
+ DLB_CHP_HIST_LIST_BASE_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_HIST_LIST_POP_PTR(port->id.phys_id),
+ DLB_CHP_HIST_LIST_POP_PTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_HIST_LIST_PUSH_PTR(port->id.phys_id),
+ DLB_CHP_HIST_LIST_PUSH_PTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_CQ_WPTR(port->id.phys_id),
+ DLB_CHP_LDB_CQ_WPTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_CQ_INT_DEPTH_THRSH(port->id.phys_id),
+ DLB_CHP_LDB_CQ_INT_DEPTH_THRSH_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_CQ_TMR_THRESHOLD(port->id.phys_id),
+ DLB_CHP_LDB_CQ_TMR_THRESHOLD_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_CQ_INT_ENB(port->id.phys_id),
+ DLB_CHP_LDB_CQ_INT_ENB_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_CQ_LDB_INFL_LIM(port->id.phys_id),
+ DLB_LSP_CQ_LDB_INFL_LIM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_CQ2PRIOV(port->id.phys_id),
+ DLB_LSP_CQ2PRIOV_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_CQ_LDB_TOT_SCH_CNT_CTRL(port->id.phys_id),
+ DLB_LSP_CQ_LDB_TOT_SCH_CNT_CTRL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_CQ_LDB_TKN_DEPTH_SEL(port->id.phys_id),
+ DLB_LSP_CQ_LDB_TKN_DEPTH_SEL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_CQ_TKN_DEPTH_SEL(port->id.phys_id),
+ DLB_CHP_LDB_CQ_TKN_DEPTH_SEL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_CQ_LDB_DSBL(port->id.phys_id),
+ DLB_LSP_CQ_LDB_DSBL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_CQ2VF_PF(port->id.phys_id),
+ DLB_SYS_LDB_CQ2VF_PF_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_PP2VF_PF(port->id.phys_id),
+ DLB_SYS_LDB_PP2VF_PF_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_CQ_ADDR_L(port->id.phys_id),
+ DLB_SYS_LDB_CQ_ADDR_L_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_CQ_ADDR_U(port->id.phys_id),
+ DLB_SYS_LDB_CQ_ADDR_U_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_PP_ADDR_L(port->id.phys_id),
+ DLB_SYS_LDB_PP_ADDR_L_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_PP_ADDR_U(port->id.phys_id),
+ DLB_SYS_LDB_PP_ADDR_U_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_PP_V(port->id.phys_id),
+ DLB_SYS_LDB_PP_V_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_PP2VAS(port->id.phys_id),
+ DLB_SYS_LDB_PP2VAS_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_CQ_ISR(port->id.phys_id),
+ DLB_SYS_LDB_CQ_ISR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_WBUF_LDB_FLAGS(port->id.phys_id),
+ DLB_SYS_WBUF_LDB_FLAGS_RST);
+}
+
+static void dlb_domain_reset_ldb_port_registers(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter)
+ __dlb_domain_reset_ldb_port_registers(hw, port);
+}
+
+static void __dlb_domain_reset_dir_port_registers(struct dlb_hw *hw,
+ struct dlb_dir_pq_pair *port)
+{
+ union dlb_chp_dir_pp_state_reset r0 = { {0} };
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_CRD_REQ_STATE(port->id.phys_id),
+ DLB_CHP_DIR_PP_CRD_REQ_STATE_RST);
+
+ /* Reset the port's load-balanced and directed credit state */
+ r0.field.dir_type = 0;
+ r0.field.reset_pp_state = 1;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_STATE_RESET(port->id.phys_id),
+ r0.val);
+
+ r0.field.dir_type = 1;
+ r0.field.reset_pp_state = 1;
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_STATE_RESET(port->id.phys_id),
+ r0.val);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_DIR_PUSH_PTR(port->id.phys_id),
+ DLB_CHP_DIR_PP_DIR_PUSH_PTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_LDB_PUSH_PTR(port->id.phys_id),
+ DLB_CHP_DIR_PP_LDB_PUSH_PTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_LDB_MIN_CRD_QNT(port->id.phys_id),
+ DLB_CHP_DIR_PP_LDB_MIN_CRD_QNT_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_LDB_CRD_LWM(port->id.phys_id),
+ DLB_CHP_DIR_PP_LDB_CRD_LWM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_LDB_CRD_HWM(port->id.phys_id),
+ DLB_CHP_DIR_PP_LDB_CRD_HWM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_LDB_PP2POOL(port->id.phys_id),
+ DLB_CHP_DIR_LDB_PP2POOL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_DIR_MIN_CRD_QNT(port->id.phys_id),
+ DLB_CHP_DIR_PP_DIR_MIN_CRD_QNT_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_DIR_CRD_LWM(port->id.phys_id),
+ DLB_CHP_DIR_PP_DIR_CRD_LWM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_DIR_CRD_HWM(port->id.phys_id),
+ DLB_CHP_DIR_PP_DIR_CRD_HWM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_DIR_PP2POOL(port->id.phys_id),
+ DLB_CHP_DIR_DIR_PP2POOL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP2LDBPOOL(port->id.phys_id),
+ DLB_SYS_DIR_PP2LDBPOOL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP2DIRPOOL(port->id.phys_id),
+ DLB_SYS_DIR_PP2DIRPOOL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_CQ_WPTR(port->id.phys_id),
+ DLB_CHP_DIR_CQ_WPTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_CQ_DIR_TKN_DEPTH_SEL_DSI(port->id.phys_id),
+ DLB_LSP_CQ_DIR_TKN_DEPTH_SEL_DSI_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_CQ_TKN_DEPTH_SEL(port->id.phys_id),
+ DLB_CHP_DIR_CQ_TKN_DEPTH_SEL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_CQ_DIR_DSBL(port->id.phys_id),
+ DLB_LSP_CQ_DIR_DSBL_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_CQ_WPTR(port->id.phys_id),
+ DLB_CHP_DIR_CQ_WPTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_CQ_INT_DEPTH_THRSH(port->id.phys_id),
+ DLB_CHP_DIR_CQ_INT_DEPTH_THRSH_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_CQ_TMR_THRESHOLD(port->id.phys_id),
+ DLB_CHP_DIR_CQ_TMR_THRESHOLD_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_CQ_INT_ENB(port->id.phys_id),
+ DLB_CHP_DIR_CQ_INT_ENB_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_CQ2VF_PF(port->id.phys_id),
+ DLB_SYS_DIR_CQ2VF_PF_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP2VF_PF(port->id.phys_id),
+ DLB_SYS_DIR_PP2VF_PF_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_CQ_ADDR_L(port->id.phys_id),
+ DLB_SYS_DIR_CQ_ADDR_L_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_CQ_ADDR_U(port->id.phys_id),
+ DLB_SYS_DIR_CQ_ADDR_U_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP_ADDR_L(port->id.phys_id),
+ DLB_SYS_DIR_PP_ADDR_L_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP_ADDR_U(port->id.phys_id),
+ DLB_SYS_DIR_PP_ADDR_U_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP_V(port->id.phys_id),
+ DLB_SYS_DIR_PP_V_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP2VAS(port->id.phys_id),
+ DLB_SYS_DIR_PP2VAS_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_CQ_ISR(port->id.phys_id),
+ DLB_SYS_DIR_CQ_ISR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_WBUF_DIR_FLAGS(port->id.phys_id),
+ DLB_SYS_WBUF_DIR_FLAGS_RST);
+}
+
+static void dlb_domain_reset_dir_port_registers(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *port;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter)
+ __dlb_domain_reset_dir_port_registers(hw, port);
+}
+
+static void dlb_domain_reset_ldb_queue_registers(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_queue *queue;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_queues, queue, iter) {
+ DLB_CSR_WR(hw,
+ DLB_AQED_PIPE_FL_LIM(queue->id.phys_id),
+ DLB_AQED_PIPE_FL_LIM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_AQED_PIPE_FL_BASE(queue->id.phys_id),
+ DLB_AQED_PIPE_FL_BASE_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_AQED_PIPE_FL_POP_PTR(queue->id.phys_id),
+ DLB_AQED_PIPE_FL_POP_PTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_AQED_PIPE_FL_PUSH_PTR(queue->id.phys_id),
+ DLB_AQED_PIPE_FL_PUSH_PTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_AQED_PIPE_QID_FID_LIM(queue->id.phys_id),
+ DLB_AQED_PIPE_QID_FID_LIM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_QID_AQED_ACTIVE_LIM(queue->id.phys_id),
+ DLB_LSP_QID_AQED_ACTIVE_LIM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_LSP_QID_LDB_INFL_LIM(queue->id.phys_id),
+ DLB_LSP_QID_LDB_INFL_LIM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_QID_V(queue->id.phys_id),
+ DLB_SYS_LDB_QID_V_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_QID_V(queue->id.phys_id),
+ DLB_SYS_LDB_QID_V_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_ORD_QID_SN(queue->id.phys_id),
+ DLB_CHP_ORD_QID_SN_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_ORD_QID_SN_MAP(queue->id.phys_id),
+ DLB_CHP_ORD_QID_SN_MAP_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_RO_PIPE_QID2GRPSLT(queue->id.phys_id),
+ DLB_RO_PIPE_QID2GRPSLT_RST);
+ }
+}
+
+static void dlb_domain_reset_dir_queue_registers(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *queue;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, queue, iter) {
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_QID_V(queue->id.phys_id),
+ DLB_SYS_DIR_QID_V_RST);
+ }
+}
+
+static void dlb_domain_reset_ldb_pool_registers(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_credit_pool *pool;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_credit_pools, pool, iter) {
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_POOL_CRD_LIM(pool->id.phys_id),
+ DLB_CHP_LDB_POOL_CRD_LIM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_POOL_CRD_CNT(pool->id.phys_id),
+ DLB_CHP_LDB_POOL_CRD_CNT_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_QED_FL_BASE(pool->id.phys_id),
+ DLB_CHP_QED_FL_BASE_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_QED_FL_LIM(pool->id.phys_id),
+ DLB_CHP_QED_FL_LIM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_QED_FL_PUSH_PTR(pool->id.phys_id),
+ DLB_CHP_QED_FL_PUSH_PTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_QED_FL_POP_PTR(pool->id.phys_id),
+ DLB_CHP_QED_FL_POP_PTR_RST);
+ }
+}
+
+static void dlb_domain_reset_dir_pool_registers(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_credit_pool *pool;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_credit_pools, pool, iter) {
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_POOL_CRD_LIM(pool->id.phys_id),
+ DLB_CHP_DIR_POOL_CRD_LIM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_POOL_CRD_CNT(pool->id.phys_id),
+ DLB_CHP_DIR_POOL_CRD_CNT_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DQED_FL_BASE(pool->id.phys_id),
+ DLB_CHP_DQED_FL_BASE_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DQED_FL_LIM(pool->id.phys_id),
+ DLB_CHP_DQED_FL_LIM_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DQED_FL_PUSH_PTR(pool->id.phys_id),
+ DLB_CHP_DQED_FL_PUSH_PTR_RST);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DQED_FL_POP_PTR(pool->id.phys_id),
+ DLB_CHP_DQED_FL_POP_PTR_RST);
+ }
+}
+
+static void dlb_domain_reset_registers(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ dlb_domain_reset_ldb_port_registers(hw, domain);
+
+ dlb_domain_reset_dir_port_registers(hw, domain);
+
+ dlb_domain_reset_ldb_queue_registers(hw, domain);
+
+ dlb_domain_reset_dir_queue_registers(hw, domain);
+
+ dlb_domain_reset_ldb_pool_registers(hw, domain);
+
+ dlb_domain_reset_dir_pool_registers(hw, domain);
+}
+
+static int dlb_domain_drain_ldb_cqs(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ bool toggle_port)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+ int ret;
+
+ /* If the domain hasn't been started, there's no traffic to drain */
+ if (!domain->started)
+ return 0;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter) {
+ if (toggle_port)
+ dlb_ldb_port_cq_disable(hw, port);
+
+ ret = dlb_drain_ldb_cq(hw, port);
+ if (ret < 0)
+ return ret;
+
+ if (toggle_port)
+ dlb_ldb_port_cq_enable(hw, port);
+ }
+
+ return 0;
+}
+
+static bool dlb_domain_mapped_queues_empty(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_queue *queue;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_queues, queue, iter) {
+ if (queue->num_mappings == 0)
+ continue;
+
+ if (!dlb_ldb_queue_is_empty(hw, queue))
+ return false;
+ }
+
+ return true;
+}
+
+static int dlb_domain_drain_mapped_queues(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ int i, ret;
+
+ /* If the domain hasn't been started, there's no traffic to drain */
+ if (!domain->started)
+ return 0;
+
+ if (domain->num_pending_removals > 0) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to unmap domain queues\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ for (i = 0; i < DLB_MAX_QID_EMPTY_CHECK_LOOPS; i++) {
+ ret = dlb_domain_drain_ldb_cqs(hw, domain, true);
+ if (ret < 0)
+ return ret;
+
+ if (dlb_domain_mapped_queues_empty(hw, domain))
+ break;
+ }
+
+ if (i == DLB_MAX_QID_EMPTY_CHECK_LOOPS) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to empty queues\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ /* Drain the CQs one more time. For the queues to go empty, they would
+ * have scheduled one or more QEs.
+ */
+ ret = dlb_domain_drain_ldb_cqs(hw, domain, true);
+ if (ret < 0)
+ return ret;
+
+ return 0;
+}
+
+static int dlb_domain_drain_unmapped_queue(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ struct dlb_ldb_queue *queue)
+{
+ struct dlb_ldb_port *port;
+ int ret;
+
+ /* If a domain has LDB queues, it must have LDB ports */
+ if (dlb_list_empty(&domain->used_ldb_ports)) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: No configured LDB ports\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ port = DLB_DOM_LIST_HEAD(domain->used_ldb_ports, typeof(*port));
+
+ /* If necessary, free up a QID slot in this CQ */
+ if (port->num_mappings == DLB_MAX_NUM_QIDS_PER_LDB_CQ) {
+ struct dlb_ldb_queue *mapped_queue;
+
+ mapped_queue = &hw->rsrcs.ldb_queues[port->qid_map[0].qid];
+
+ ret = dlb_ldb_port_unmap_qid(hw, port, mapped_queue);
+ if (ret)
+ return ret;
+ }
+
+ ret = dlb_ldb_port_map_qid_dynamic(hw, port, queue, 0);
+ if (ret)
+ return ret;
+
+ return dlb_domain_drain_mapped_queues(hw, domain);
+}
+
+static int dlb_domain_drain_unmapped_queues(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_queue *queue;
+ int ret;
+
+ /* If the domain hasn't been started, there's no traffic to drain */
+ if (!domain->started)
+ return 0;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_queues, queue, iter) {
+ if (queue->num_mappings != 0 ||
+ dlb_ldb_queue_is_empty(hw, queue))
+ continue;
+
+ ret = dlb_domain_drain_unmapped_queue(hw, domain, queue);
+ if (ret)
+ return ret;
+ }
+
+ return 0;
+}
+
+static void dlb_drain_dir_cq(struct dlb_hw *hw, struct dlb_dir_pq_pair *port)
+{
+ unsigned int port_id = port->id.phys_id;
+ u32 cnt;
+
+ /* Return any outstanding tokens */
+ cnt = dlb_dir_cq_token_count(hw, port);
+
+ if (cnt != 0) {
+ struct dlb_hcw hcw_mem[8], *hcw;
+ void *pp_addr;
+
+ pp_addr = os_map_producer_port(hw, port_id, false);
+
+ /* Point hcw to a 64B-aligned location */
+ hcw = (struct dlb_hcw *)((uintptr_t)&hcw_mem[4] & ~0x3F);
+
+ /* Program the first HCW for a batch token return and
+ * the rest as NOOPS
+ */
+ memset(hcw, 0, 4 * sizeof(*hcw));
+ hcw->cq_token = 1;
+ hcw->lock_id = cnt - 1;
+
+ os_enqueue_four_hcws(hw, hcw, pp_addr);
+
+ os_fence_hcw(hw, pp_addr);
+
+ os_unmap_producer_port(hw, pp_addr);
+ }
+}
+
+static int dlb_domain_drain_dir_cqs(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ bool toggle_port)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *port;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter) {
+ /* Can't drain a port if it's not configured, and there's
+ * nothing to drain if its queue is unconfigured.
+ */
+ if (!port->port_configured || !port->queue_configured)
+ continue;
+
+ if (toggle_port)
+ dlb_dir_port_cq_disable(hw, port);
+
+ dlb_drain_dir_cq(hw, port);
+
+ if (toggle_port)
+ dlb_dir_port_cq_enable(hw, port);
+ }
+
+ return 0;
+}
+
+static bool dlb_domain_dir_queues_empty(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *queue;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, queue, iter) {
+ if (!dlb_dir_queue_is_empty(hw, queue))
+ return false;
+ }
+
+ return true;
+}
+
+static int dlb_domain_drain_dir_queues(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ int i;
+
+ /* If the domain hasn't been started, there's no traffic to drain */
+ if (!domain->started)
+ return 0;
+
+ for (i = 0; i < DLB_MAX_QID_EMPTY_CHECK_LOOPS; i++) {
+ dlb_domain_drain_dir_cqs(hw, domain, true);
+
+ if (dlb_domain_dir_queues_empty(hw, domain))
+ break;
+ }
+
+ if (i == DLB_MAX_QID_EMPTY_CHECK_LOOPS) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: failed to empty queues\n",
+ __func__);
+ return -EFAULT;
+ }
+
+ /* Drain the CQs one more time. For the queues to go empty, they would
+ * have scheduled one or more QEs.
+ */
+ dlb_domain_drain_dir_cqs(hw, domain, true);
+
+ return 0;
+}
+
+static void dlb_domain_disable_dir_producer_ports(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *port;
+ union dlb_sys_dir_pp_v r1;
+
+ r1.field.pp_v = 0;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter)
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_PP_V(port->id.phys_id),
+ r1.val);
+}
+
+static void dlb_domain_disable_ldb_producer_ports(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_sys_ldb_pp_v r1;
+ struct dlb_ldb_port *port;
+
+ r1.field.pp_v = 0;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter) {
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_PP_V(port->id.phys_id),
+ r1.val);
+
+ hw->pf.num_enabled_ldb_ports--;
+ }
+}
+
+static void dlb_domain_disable_dir_vpps(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ unsigned int vf_id)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_sys_vf_dir_vpp_v r1;
+ struct dlb_dir_pq_pair *port;
+
+ r1.field.vpp_v = 0;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter) {
+ unsigned int offs;
+
+ offs = vf_id * DLB_MAX_NUM_DIR_PORTS + port->id.virt_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_VF_DIR_VPP_V(offs), r1.val);
+ }
+}
+
+static void dlb_domain_disable_ldb_vpps(struct dlb_hw *hw,
+ struct dlb_domain *domain,
+ unsigned int vf_id)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_sys_vf_ldb_vpp_v r1;
+ struct dlb_ldb_port *port;
+
+ r1.field.vpp_v = 0;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter) {
+ unsigned int offs;
+
+ offs = vf_id * DLB_MAX_NUM_LDB_PORTS + port->id.virt_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_VF_LDB_VPP_V(offs), r1.val);
+ }
+}
+
+static void dlb_domain_disable_dir_pools(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_sys_dir_pool_enbld r0 = { {0} };
+ struct dlb_credit_pool *pool;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_credit_pools, pool, iter)
+ DLB_CSR_WR(hw,
+ DLB_SYS_DIR_POOL_ENBLD(pool->id.phys_id),
+ r0.val);
+}
+
+static void dlb_domain_disable_ldb_pools(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_sys_ldb_pool_enbld r0 = { {0} };
+ struct dlb_credit_pool *pool;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_credit_pools, pool, iter)
+ DLB_CSR_WR(hw,
+ DLB_SYS_LDB_POOL_ENBLD(pool->id.phys_id),
+ r0.val);
+}
+
+static void dlb_domain_disable_ldb_seq_checks(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_chp_sn_chk_enbl r1;
+ struct dlb_ldb_port *port;
+
+ r1.field.en = 0;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter)
+ DLB_CSR_WR(hw,
+ DLB_CHP_SN_CHK_ENBL(port->id.phys_id),
+ r1.val);
+}
+
+static void dlb_domain_disable_ldb_port_crd_updates(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_chp_ldb_pp_crd_req_state r0;
+ struct dlb_ldb_port *port;
+
+ r0.field.no_pp_credit_update = 1;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter)
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_PP_CRD_REQ_STATE(port->id.phys_id),
+ r0.val);
+}
+
+static void dlb_domain_disable_ldb_port_interrupts(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_chp_ldb_cq_int_enb r0 = { {0} };
+ union dlb_chp_ldb_cq_wd_enb r1 = { {0} };
+ struct dlb_ldb_port *port;
+
+ r0.field.en_tim = 0;
+ r0.field.en_depth = 0;
+
+ r1.field.wd_enable = 0;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter) {
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_CQ_INT_ENB(port->id.phys_id),
+ r0.val);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_LDB_CQ_WD_ENB(port->id.phys_id),
+ r1.val);
+ }
+}
+
+static void dlb_domain_disable_dir_port_interrupts(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_chp_dir_cq_int_enb r0 = { {0} };
+ union dlb_chp_dir_cq_wd_enb r1 = { {0} };
+ struct dlb_dir_pq_pair *port;
+
+ r0.field.en_tim = 0;
+ r0.field.en_depth = 0;
+
+ r1.field.wd_enable = 0;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter) {
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_CQ_INT_ENB(port->id.phys_id),
+ r0.val);
+
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_CQ_WD_ENB(port->id.phys_id),
+ r1.val);
+ }
+}
+
+static void dlb_domain_disable_dir_port_crd_updates(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_chp_dir_pp_crd_req_state r0;
+ struct dlb_dir_pq_pair *port;
+
+ r0.field.no_pp_credit_update = 1;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter)
+ DLB_CSR_WR(hw,
+ DLB_CHP_DIR_PP_CRD_REQ_STATE(port->id.phys_id),
+ r0.val);
+}
+
+static void dlb_domain_disable_ldb_queue_write_perms(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ int domain_offset = domain->id.phys_id * DLB_MAX_NUM_LDB_QUEUES;
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_sys_ldb_vasqid_v r0;
+ struct dlb_ldb_queue *queue;
+
+ r0.field.vasqid_v = 0;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_queues, queue, iter) {
+ int idx = domain_offset + queue->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_LDB_VASQID_V(idx), r0.val);
+ }
+}
+
+static void dlb_domain_disable_dir_queue_write_perms(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ int domain_offset = domain->id.phys_id * DLB_MAX_NUM_DIR_PORTS;
+ struct dlb_list_entry *iter __attribute__((unused));
+ union dlb_sys_dir_vasqid_v r0;
+ struct dlb_dir_pq_pair *port;
+
+ r0.field.vasqid_v = 0;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter) {
+ int idx = domain_offset + port->id.phys_id;
+
+ DLB_CSR_WR(hw, DLB_SYS_DIR_VASQID_V(idx), r0.val);
+ }
+}
+
+static void dlb_domain_disable_dir_cqs(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *port;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, port, iter) {
+ port->enabled = false;
+
+ dlb_dir_port_cq_disable(hw, port);
+ }
+}
+
+static void dlb_domain_disable_ldb_cqs(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter) {
+ port->enabled = false;
+
+ dlb_ldb_port_cq_disable(hw, port);
+ }
+}
+
+static void dlb_domain_enable_ldb_cqs(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_ldb_port *port;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, port, iter) {
+ port->enabled = true;
+
+ dlb_ldb_port_cq_enable(hw, port);
+ }
+}
+
+static int dlb_domain_wait_for_ldb_pool_refill(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_credit_pool *pool;
+
+ /* Confirm that all credits are returned to the domain's credit pools */
+ DLB_DOM_LIST_FOR(domain->used_ldb_credit_pools, pool, iter) {
+ union dlb_chp_qed_fl_push_ptr r0;
+ union dlb_chp_qed_fl_pop_ptr r1;
+ unsigned long pop_offs, push_offs;
+ int i;
+
+ push_offs = DLB_CHP_QED_FL_PUSH_PTR(pool->id.phys_id);
+ pop_offs = DLB_CHP_QED_FL_POP_PTR(pool->id.phys_id);
+
+ for (i = 0; i < DLB_MAX_QID_EMPTY_CHECK_LOOPS; i++) {
+ r0.val = DLB_CSR_RD(hw, push_offs);
+
+ r1.val = DLB_CSR_RD(hw, pop_offs);
+
+ /* Break early if the freelist is replenished */
+ if (r1.field.pop_ptr == r0.field.push_ptr &&
+ r1.field.generation != r0.field.generation) {
+ break;
+ }
+ }
+
+ /* Error if the freelist is not full */
+ if (r1.field.pop_ptr != r0.field.push_ptr ||
+ r1.field.generation == r0.field.generation) {
+ return -EFAULT;
+ }
+ }
+
+ return 0;
+}
+
+static int dlb_domain_wait_for_dir_pool_refill(struct dlb_hw *hw,
+ struct dlb_domain *domain)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_credit_pool *pool;
+
+ /* Confirm that all credits are returned to the domain's credit pools */
+ DLB_DOM_LIST_FOR(domain->used_dir_credit_pools, pool, iter) {
+ union dlb_chp_dqed_fl_push_ptr r0;
+ union dlb_chp_dqed_fl_pop_ptr r1;
+ unsigned long pop_offs, push_offs;
+ int i;
+
+ push_offs = DLB_CHP_DQED_FL_PUSH_PTR(pool->id.phys_id);
+ pop_offs = DLB_CHP_DQED_FL_POP_PTR(pool->id.phys_id);
+
+ for (i = 0; i < DLB_MAX_QID_EMPTY_CHECK_LOOPS; i++) {
+ r0.val = DLB_CSR_RD(hw, push_offs);
+
+ r1.val = DLB_CSR_RD(hw, pop_offs);
+
+ /* Break early if the freelist is replenished */
+ if (r1.field.pop_ptr == r0.field.push_ptr &&
+ r1.field.generation != r0.field.generation) {
+ break;
+ }
+ }
+
+ /* Error if the freelist is not full */
+ if (r1.field.pop_ptr != r0.field.push_ptr ||
+ r1.field.generation == r0.field.generation) {
+ return -EFAULT;
+ }
+ }
+
+ return 0;
+}
+
+static void dlb_log_reset_domain(struct dlb_hw *hw,
+ u32 domain_id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ DLB_HW_INFO(hw, "DLB reset domain:\n");
+ if (vf_request)
+ DLB_HW_INFO(hw, "(Request from VF %d)\n", vf_id);
+ DLB_HW_INFO(hw, "\tDomain ID: %d\n", domain_id);
+}
+
+/**
+ * dlb_reset_domain() - Reset a DLB scheduling domain and its associated
+ * hardware resources.
+ * @hw: Contains the current state of the DLB hardware.
+ * @args: User-provided arguments.
+ * @resp: Response to user.
+ *
+ * Note: User software *must* stop sending to this domain's producer ports
+ * before invoking this function, otherwise undefined behavior will result.
+ *
+ * Return: returns < 0 on error, 0 otherwise.
+ */
+int dlb_reset_domain(struct dlb_hw *hw,
+ u32 domain_id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_domain *domain;
+ int ret;
+
+ dlb_log_reset_domain(hw, domain_id, vf_request, vf_id);
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain || !domain->configured)
+ return -EINVAL;
+
+ if (vf_request) {
+ dlb_domain_disable_dir_vpps(hw, domain, vf_id);
+
+ dlb_domain_disable_ldb_vpps(hw, domain, vf_id);
+ }
+
+ /* For each queue owned by this domain, disable its write permissions to
+ * cause any traffic sent to it to be dropped. Well-behaved software
+ * should not be sending QEs at this point.
+ */
+ dlb_domain_disable_dir_queue_write_perms(hw, domain);
+
+ dlb_domain_disable_ldb_queue_write_perms(hw, domain);
+
+ /* Disable credit updates and turn off completion tracking on all the
+ * domain's PPs.
+ */
+ dlb_domain_disable_dir_port_crd_updates(hw, domain);
+
+ dlb_domain_disable_ldb_port_crd_updates(hw, domain);
+
+ dlb_domain_disable_dir_port_interrupts(hw, domain);
+
+ dlb_domain_disable_ldb_port_interrupts(hw, domain);
+
+ dlb_domain_disable_ldb_seq_checks(hw, domain);
+
+ /* Disable the LDB CQs and drain them in order to complete the map and
+ * unmap procedures, which require zero CQ inflights and zero QID
+ * inflights respectively.
+ */
+ dlb_domain_disable_ldb_cqs(hw, domain);
+
+ ret = dlb_domain_drain_ldb_cqs(hw, domain, false);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_domain_wait_for_ldb_cqs_to_empty(hw, domain);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_domain_finish_unmap_qid_procedures(hw, domain);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_domain_finish_map_qid_procedures(hw, domain);
+ if (ret < 0)
+ return ret;
+
+ /* Re-enable the CQs in order to drain the mapped queues. */
+ dlb_domain_enable_ldb_cqs(hw, domain);
+
+ ret = dlb_domain_drain_mapped_queues(hw, domain);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_domain_drain_unmapped_queues(hw, domain);
+ if (ret < 0)
+ return ret;
+
+ ret = dlb_domain_wait_for_ldb_pool_refill(hw, domain);
+ if (ret) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: LDB credits failed to refill\n",
+ __func__);
+ return ret;
+ }
+
+ /* Done draining LDB QEs, so disable the CQs. */
+ dlb_domain_disable_ldb_cqs(hw, domain);
+
+ /* Directed queues are reset in dlb_domain_reset_hw_resources(), but
+ * that process doesn't decrement the directed queue size counters used
+ * by SMON for its average DQED depth measurement. So, we manually drain
+ * the directed queues here.
+ */
+ dlb_domain_drain_dir_queues(hw, domain);
+
+ ret = dlb_domain_wait_for_dir_pool_refill(hw, domain);
+ if (ret) {
+ DLB_HW_ERR(hw,
+ "[%s()] Internal error: DIR credits failed to refill\n",
+ __func__);
+ return ret;
+ }
+
+ /* Done draining DIR QEs, so disable the CQs. */
+ dlb_domain_disable_dir_cqs(hw, domain);
+
+ dlb_domain_disable_dir_producer_ports(hw, domain);
+
+ dlb_domain_disable_ldb_producer_ports(hw, domain);
+
+ dlb_domain_disable_dir_pools(hw, domain);
+
+ dlb_domain_disable_ldb_pools(hw, domain);
+
+ /* Reset the QID, credit pool, and CQ hardware.
+ *
+ * Note: DLB 1.0 A0 h/w does not disarm CQ interrupts during VAS reset.
+ * A spurious interrupt can occur on subsequent use of a reset CQ.
+ */
+ ret = dlb_domain_reset_hw_resources(hw, domain);
+ if (ret)
+ return ret;
+
+ ret = dlb_domain_verify_reset_success(hw, domain);
+ if (ret)
+ return ret;
+
+ dlb_domain_reset_registers(hw, domain);
+
+ /* Hardware reset complete. Reset the domain's software state */
+ ret = dlb_domain_reset_software_state(hw, domain);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
+int dlb_reset_vf(struct dlb_hw *hw, unsigned int vf_id)
+{
+ struct dlb_domain *domain, *next __attribute__((unused));
+ struct dlb_list_entry *it1 __attribute__((unused));
+ struct dlb_list_entry *it2 __attribute__((unused));
+ struct dlb_function_resources *rsrcs;
+
+ if (vf_id >= DLB_MAX_NUM_VFS) {
+ DLB_HW_ERR(hw, "[%s()] Internal error: invalid VF ID %d\n",
+ __func__, vf_id);
+ return -EFAULT;
+ }
+
+ rsrcs = &hw->vf[vf_id];
+
+ DLB_FUNC_LIST_FOR_SAFE(rsrcs->used_domains, domain, next, it1, it2) {
+ int ret = dlb_reset_domain(hw,
+ domain->id.virt_id,
+ true,
+ vf_id);
+ if (ret)
+ return ret;
+ }
+
+ return 0;
+}
+
+int dlb_ldb_port_owned_by_domain(struct dlb_hw *hw,
+ u32 domain_id,
+ u32 port_id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_ldb_port *port;
+ struct dlb_domain *domain;
+
+ if (vf_request && vf_id >= DLB_MAX_NUM_VFS)
+ return -1;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain || !domain->configured)
+ return -EINVAL;
+
+ port = dlb_get_domain_ldb_port(port_id, vf_request, domain);
+
+ if (!port)
+ return -EINVAL;
+
+ return port->domain_id.phys_id == domain->id.phys_id;
+}
+
+int dlb_dir_port_owned_by_domain(struct dlb_hw *hw,
+ u32 domain_id,
+ u32 port_id,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_dir_pq_pair *port;
+ struct dlb_domain *domain;
+
+ if (vf_request && vf_id >= DLB_MAX_NUM_VFS)
+ return -1;
+
+ domain = dlb_get_domain_from_id(hw, domain_id, vf_request, vf_id);
+
+ if (!domain || !domain->configured)
+ return -EINVAL;
+
+ port = dlb_get_domain_dir_pq(port_id, vf_request, domain);
+
+ if (!port)
+ return -EINVAL;
+
+ return port->domain_id.phys_id == domain->id.phys_id;
+}
+
+int dlb_hw_get_num_resources(struct dlb_hw *hw,
+ struct dlb_get_num_resources_args *arg,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_function_resources *rsrcs;
+ struct dlb_bitmap *map;
+
+ if (vf_request && vf_id >= DLB_MAX_NUM_VFS)
+ return -1;
+
+ if (vf_request)
+ rsrcs = &hw->vf[vf_id];
+ else
+ rsrcs = &hw->pf;
+
+ arg->num_sched_domains = rsrcs->num_avail_domains;
+
+ arg->num_ldb_queues = rsrcs->num_avail_ldb_queues;
+
+ arg->num_ldb_ports = rsrcs->num_avail_ldb_ports;
+
+ arg->num_dir_ports = rsrcs->num_avail_dir_pq_pairs;
+
+ map = rsrcs->avail_aqed_freelist_entries;
+
+ arg->num_atomic_inflights = dlb_bitmap_count(map);
+
+ arg->max_contiguous_atomic_inflights =
+ dlb_bitmap_longest_set_range(map);
+
+ map = rsrcs->avail_hist_list_entries;
+
+ arg->num_hist_list_entries = dlb_bitmap_count(map);
+
+ arg->max_contiguous_hist_list_entries =
+ dlb_bitmap_longest_set_range(map);
+
+ map = rsrcs->avail_qed_freelist_entries;
+
+ arg->num_ldb_credits = dlb_bitmap_count(map);
+
+ arg->max_contiguous_ldb_credits = dlb_bitmap_longest_set_range(map);
+
+ map = rsrcs->avail_dqed_freelist_entries;
+
+ arg->num_dir_credits = dlb_bitmap_count(map);
+
+ arg->max_contiguous_dir_credits = dlb_bitmap_longest_set_range(map);
+
+ arg->num_ldb_credit_pools = rsrcs->num_avail_ldb_credit_pools;
+
+ arg->num_dir_credit_pools = rsrcs->num_avail_dir_credit_pools;
+
+ return 0;
+}
+
+int dlb_hw_get_num_used_resources(struct dlb_hw *hw,
+ struct dlb_get_num_resources_args *arg,
+ bool vf_request,
+ unsigned int vf_id)
+{
+ struct dlb_list_entry *iter1 __attribute__((unused));
+ struct dlb_list_entry *iter2 __attribute__((unused));
+ struct dlb_function_resources *rsrcs;
+ struct dlb_domain *domain;
+
+ if (vf_request && vf_id >= DLB_MAX_NUM_VFS)
+ return -1;
+
+ rsrcs = (vf_request) ? &hw->vf[vf_id] : &hw->pf;
+
+ memset(arg, 0, sizeof(*arg));
+
+ DLB_FUNC_LIST_FOR(rsrcs->used_domains, domain, iter1) {
+ struct dlb_dir_pq_pair *dir_port;
+ struct dlb_ldb_port *ldb_port;
+ struct dlb_credit_pool *pool;
+ struct dlb_ldb_queue *queue;
+
+ arg->num_sched_domains++;
+
+ arg->num_atomic_inflights +=
+ domain->aqed_freelist.bound -
+ domain->aqed_freelist.base;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_queues, queue, iter2)
+ arg->num_ldb_queues++;
+ DLB_DOM_LIST_FOR(domain->avail_ldb_queues, queue, iter2)
+ arg->num_ldb_queues++;
+
+ DLB_DOM_LIST_FOR(domain->used_ldb_ports, ldb_port, iter2)
+ arg->num_ldb_ports++;
+ DLB_DOM_LIST_FOR(domain->avail_ldb_ports, ldb_port, iter2)
+ arg->num_ldb_ports++;
+
+ DLB_DOM_LIST_FOR(domain->used_dir_pq_pairs, dir_port, iter2)
+ arg->num_dir_ports++;
+ DLB_DOM_LIST_FOR(domain->avail_dir_pq_pairs, dir_port, iter2)
+ arg->num_dir_ports++;
+
+ arg->num_ldb_credits +=
+ domain->qed_freelist.bound -
+ domain->qed_freelist.base;
+
+ DLB_DOM_LIST_FOR(domain->avail_ldb_credit_pools, pool, iter2)
+ arg->num_ldb_credit_pools++;
+ DLB_DOM_LIST_FOR(domain->used_ldb_credit_pools, pool, iter2) {
+ arg->num_ldb_credit_pools++;
+ arg->num_ldb_credits += pool->total_credits;
+ }
+
+ arg->num_dir_credits +=
+ domain->dqed_freelist.bound -
+ domain->dqed_freelist.base;
+
+ DLB_DOM_LIST_FOR(domain->avail_dir_credit_pools, pool, iter2)
+ arg->num_dir_credit_pools++;
+ DLB_DOM_LIST_FOR(domain->used_dir_credit_pools, pool, iter2) {
+ arg->num_dir_credit_pools++;
+ arg->num_dir_credits += pool->total_credits;
+ }
+
+ arg->num_hist_list_entries += domain->total_hist_list_entries;
+ }
+
+ return 0;
+}
+
+static inline bool dlb_ldb_port_owned_by_vf(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 port_id)
+{
+ return (hw->rsrcs.ldb_ports[port_id].id.vf_owned &&
+ hw->rsrcs.ldb_ports[port_id].id.vf_id == vf_id);
+}
+
+static inline bool dlb_dir_port_owned_by_vf(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 port_id)
+{
+ return (hw->rsrcs.dir_pq_pairs[port_id].id.vf_owned &&
+ hw->rsrcs.dir_pq_pairs[port_id].id.vf_id == vf_id);
+}
+
+void dlb_send_async_pf_to_vf_msg(struct dlb_hw *hw, unsigned int vf_id)
+{
+ union dlb_func_pf_pf2vf_mailbox_isr r0 = { {0} };
+
+ r0.field.isr = 1 << vf_id;
+
+ DLB_FUNC_WR(hw, DLB_FUNC_PF_PF2VF_MAILBOX_ISR(0), r0.val);
+}
+
+bool dlb_pf_to_vf_complete(struct dlb_hw *hw, unsigned int vf_id)
+{
+ union dlb_func_pf_pf2vf_mailbox_isr r0;
+
+ r0.val = DLB_FUNC_RD(hw, DLB_FUNC_PF_PF2VF_MAILBOX_ISR(vf_id));
+
+ return (r0.val & (1 << vf_id)) == 0;
+}
+
+void dlb_send_async_vf_to_pf_msg(struct dlb_hw *hw)
+{
+ union dlb_func_vf_vf2pf_mailbox_isr r0 = { {0} };
+
+ r0.field.isr = 1;
+ DLB_FUNC_WR(hw, DLB_FUNC_VF_VF2PF_MAILBOX_ISR, r0.val);
+}
+
+bool dlb_vf_to_pf_complete(struct dlb_hw *hw)
+{
+ union dlb_func_vf_vf2pf_mailbox_isr r0;
+
+ r0.val = DLB_FUNC_RD(hw, DLB_FUNC_VF_VF2PF_MAILBOX_ISR);
+
+ return (r0.field.isr == 0);
+}
+
+bool dlb_vf_flr_complete(struct dlb_hw *hw)
+{
+ union dlb_func_vf_vf_reset_in_progress r0;
+
+ r0.val = DLB_FUNC_RD(hw, DLB_FUNC_VF_VF_RESET_IN_PROGRESS);
+
+ return (r0.field.reset_in_progress == 0);
+}
+
+int dlb_pf_read_vf_mbox_req(struct dlb_hw *hw,
+ unsigned int vf_id,
+ void *data,
+ int len)
+{
+ u32 buf[DLB_VF2PF_REQ_BYTES / 4];
+ int num_words;
+ int i;
+
+ if (len > DLB_VF2PF_REQ_BYTES) {
+ DLB_HW_ERR(hw, "[%s()] len (%d) > VF->PF mailbox req size\n",
+ __func__, len);
+ return -EINVAL;
+ }
+
+ if (len == 0) {
+ DLB_HW_ERR(hw, "[%s()] invalid len (0)\n", __func__);
+ return -EINVAL;
+ }
+
+ /* Round up len to the nearest 4B boundary, since the mailbox registers
+ * are 32b wide.
+ */
+ num_words = len / 4;
+ if (len % 4 != 0)
+ num_words++;
+
+ for (i = 0; i < num_words; i++) {
+ u32 idx = i + DLB_VF2PF_REQ_BASE_WORD;
+
+ buf[i] = DLB_FUNC_RD(hw, DLB_FUNC_PF_VF2PF_MAILBOX(vf_id, idx));
+ }
+
+ memcpy(data, buf, len);
+
+ return 0;
+}
+
+int dlb_pf_read_vf_mbox_resp(struct dlb_hw *hw,
+ unsigned int vf_id,
+ void *data,
+ int len)
+{
+ u32 buf[DLB_VF2PF_RESP_BYTES / 4];
+ int num_words;
+ int i;
+
+ if (len > DLB_VF2PF_RESP_BYTES) {
+ DLB_HW_ERR(hw, "[%s()] len (%d) > VF->PF mailbox resp size\n",
+ __func__, len);
+ return -EINVAL;
+ }
+
+ /* Round up len to the nearest 4B boundary, since the mailbox registers
+ * are 32b wide.
+ */
+ num_words = len / 4;
+ if (len % 4 != 0)
+ num_words++;
+
+ for (i = 0; i < num_words; i++) {
+ u32 idx = i + DLB_VF2PF_RESP_BASE_WORD;
+
+ buf[i] = DLB_FUNC_RD(hw, DLB_FUNC_PF_VF2PF_MAILBOX(vf_id, idx));
+ }
+
+ memcpy(data, buf, len);
+
+ return 0;
+}
+
+int dlb_pf_write_vf_mbox_resp(struct dlb_hw *hw,
+ unsigned int vf_id,
+ void *data,
+ int len)
+{
+ u32 buf[DLB_PF2VF_RESP_BYTES / 4];
+ int num_words;
+ int i;
+
+ if (len > DLB_PF2VF_RESP_BYTES) {
+ DLB_HW_ERR(hw, "[%s()] len (%d) > PF->VF mailbox resp size\n",
+ __func__, len);
+ return -EINVAL;
+ }
+
+ memcpy(buf, data, len);
+
+ /* Round up len to the nearest 4B boundary, since the mailbox registers
+ * are 32b wide.
+ */
+ num_words = len / 4;
+ if (len % 4 != 0)
+ num_words++;
+
+ for (i = 0; i < num_words; i++) {
+ u32 idx = i + DLB_PF2VF_RESP_BASE_WORD;
+
+ DLB_FUNC_WR(hw, DLB_FUNC_PF_PF2VF_MAILBOX(vf_id, idx), buf[i]);
+ }
+
+ return 0;
+}
+
+int dlb_pf_write_vf_mbox_req(struct dlb_hw *hw,
+ unsigned int vf_id,
+ void *data,
+ int len)
+{
+ u32 buf[DLB_PF2VF_REQ_BYTES / 4];
+ int num_words;
+ int i;
+
+ if (len > DLB_PF2VF_REQ_BYTES) {
+ DLB_HW_ERR(hw, "[%s()] len (%d) > PF->VF mailbox req size\n",
+ __func__, len);
+ return -EINVAL;
+ }
+
+ memcpy(buf, data, len);
+
+ /* Round up len to the nearest 4B boundary, since the mailbox registers
+ * are 32b wide.
+ */
+ num_words = len / 4;
+ if (len % 4 != 0)
+ num_words++;
+
+ for (i = 0; i < num_words; i++) {
+ u32 idx = i + DLB_PF2VF_REQ_BASE_WORD;
+
+ DLB_FUNC_WR(hw, DLB_FUNC_PF_PF2VF_MAILBOX(vf_id, idx), buf[i]);
+ }
+
+ return 0;
+}
+
+int dlb_vf_read_pf_mbox_resp(struct dlb_hw *hw, void *data, int len)
+{
+ u32 buf[DLB_PF2VF_RESP_BYTES / 4];
+ int num_words;
+ int i;
+
+ if (len > DLB_PF2VF_RESP_BYTES) {
+ DLB_HW_ERR(hw, "[%s()] len (%d) > PF->VF mailbox resp size\n",
+ __func__, len);
+ return -EINVAL;
+ }
+
+ if (len == 0) {
+ DLB_HW_ERR(hw, "[%s()] invalid len (0)\n", __func__);
+ return -EINVAL;
+ }
+
+ /* Round up len to the nearest 4B boundary, since the mailbox registers
+ * are 32b wide.
+ */
+ num_words = len / 4;
+ if (len % 4 != 0)
+ num_words++;
+
+ for (i = 0; i < num_words; i++) {
+ u32 idx = i + DLB_PF2VF_RESP_BASE_WORD;
+
+ buf[i] = DLB_FUNC_RD(hw, DLB_FUNC_VF_PF2VF_MAILBOX(idx));
+ }
+
+ memcpy(data, buf, len);
+
+ return 0;
+}
+
+int dlb_vf_read_pf_mbox_req(struct dlb_hw *hw, void *data, int len)
+{
+ u32 buf[DLB_PF2VF_REQ_BYTES / 4];
+ int num_words;
+ int i;
+
+ if (len > DLB_PF2VF_REQ_BYTES) {
+ DLB_HW_ERR(hw, "[%s()] len (%d) > PF->VF mailbox req size\n",
+ __func__, len);
+ return -EINVAL;
+ }
+
+ /* Round up len to the nearest 4B boundary, since the mailbox registers
+ * are 32b wide.
+ */
+ num_words = len / 4;
+ if ((len % 4) != 0)
+ num_words++;
+
+ for (i = 0; i < num_words; i++) {
+ u32 idx = i + DLB_PF2VF_REQ_BASE_WORD;
+
+ buf[i] = DLB_FUNC_RD(hw, DLB_FUNC_VF_PF2VF_MAILBOX(idx));
+ }
+
+ memcpy(data, buf, len);
+
+ return 0;
+}
+
+int dlb_vf_write_pf_mbox_req(struct dlb_hw *hw, void *data, int len)
+{
+ u32 buf[DLB_VF2PF_REQ_BYTES / 4];
+ int num_words;
+ int i;
+
+ if (len > DLB_VF2PF_REQ_BYTES) {
+ DLB_HW_ERR(hw, "[%s()] len (%d) > VF->PF mailbox req size\n",
+ __func__, len);
+ return -EINVAL;
+ }
+
+ memcpy(buf, data, len);
+
+ /* Round up len to the nearest 4B boundary, since the mailbox registers
+ * are 32b wide.
+ */
+ num_words = len / 4;
+ if (len % 4 != 0)
+ num_words++;
+
+ for (i = 0; i < num_words; i++) {
+ u32 idx = i + DLB_VF2PF_REQ_BASE_WORD;
+
+ DLB_FUNC_WR(hw, DLB_FUNC_VF_VF2PF_MAILBOX(idx), buf[i]);
+ }
+
+ return 0;
+}
+
+int dlb_vf_write_pf_mbox_resp(struct dlb_hw *hw, void *data, int len)
+{
+ u32 buf[DLB_VF2PF_RESP_BYTES / 4];
+ int num_words;
+ int i;
+
+ if (len > DLB_VF2PF_RESP_BYTES) {
+ DLB_HW_ERR(hw, "[%s()] len (%d) > VF->PF mailbox resp size\n",
+ __func__, len);
+ return -EINVAL;
+ }
+
+ memcpy(buf, data, len);
+
+ /* Round up len to the nearest 4B boundary, since the mailbox registers
+ * are 32b wide.
+ */
+ num_words = len / 4;
+ if (len % 4 != 0)
+ num_words++;
+
+ for (i = 0; i < num_words; i++) {
+ u32 idx = i + DLB_VF2PF_RESP_BASE_WORD;
+
+ DLB_FUNC_WR(hw, DLB_FUNC_VF_VF2PF_MAILBOX(idx), buf[i]);
+ }
+
+ return 0;
+}
+
+bool dlb_vf_is_locked(struct dlb_hw *hw, unsigned int vf_id)
+{
+ return hw->vf[vf_id].locked;
+}
+
+static void dlb_vf_set_rsrc_virt_ids(struct dlb_function_resources *rsrcs,
+ unsigned int vf_id)
+{
+ struct dlb_list_entry *iter __attribute__((unused));
+ struct dlb_dir_pq_pair *dir_port;
+ struct dlb_ldb_queue *ldb_queue;
+ struct dlb_ldb_port *ldb_port;
+ struct dlb_credit_pool *pool;
+ struct dlb_domain *domain;
+ int i;
+
+ i = 0;
+ DLB_FUNC_LIST_FOR(rsrcs->avail_domains, domain, iter) {
+ domain->id.virt_id = i;
+ domain->id.vf_owned = true;
+ domain->id.vf_id = vf_id;
+ i++;
+ }
+
+ i = 0;
+ DLB_FUNC_LIST_FOR(rsrcs->avail_ldb_queues, ldb_queue, iter) {
+ ldb_queue->id.virt_id = i;
+ ldb_queue->id.vf_owned = true;
+ ldb_queue->id.vf_id = vf_id;
+ i++;
+ }
+
+ i = 0;
+ DLB_FUNC_LIST_FOR(rsrcs->avail_ldb_ports, ldb_port, iter) {
+ ldb_port->id.virt_id = i;
+ ldb_port->id.vf_owned = true;
+ ldb_port->id.vf_id = vf_id;
+ i++;
+ }
+
+ i = 0;
+ DLB_FUNC_LIST_FOR(rsrcs->avail_dir_pq_pairs, dir_port, iter) {
+ dir_port->id.virt_id = i;
+ dir_port->id.vf_owned = true;
+ dir_port->id.vf_id = vf_id;
+ i++;
+ }
+
+ i = 0;
+ DLB_FUNC_LIST_FOR(rsrcs->avail_ldb_credit_pools, pool, iter) {
+ pool->id.virt_id = i;
+ pool->id.vf_owned = true;
+ pool->id.vf_id = vf_id;
+ i++;
+ }
+
+ i = 0;
+ DLB_FUNC_LIST_FOR(rsrcs->avail_dir_credit_pools, pool, iter) {
+ pool->id.virt_id = i;
+ pool->id.vf_owned = true;
+ pool->id.vf_id = vf_id;
+ i++;
+ }
+}
+
+void dlb_lock_vf(struct dlb_hw *hw, unsigned int vf_id)
+{
+ struct dlb_function_resources *rsrcs = &hw->vf[vf_id];
+
+ rsrcs->locked = true;
+
+ dlb_vf_set_rsrc_virt_ids(rsrcs, vf_id);
+}
+
+void dlb_unlock_vf(struct dlb_hw *hw, unsigned int vf_id)
+{
+ hw->vf[vf_id].locked = false;
+}
+
+int dlb_reset_vf_resources(struct dlb_hw *hw, unsigned int vf_id)
+{
+ if (vf_id >= DLB_MAX_NUM_VFS)
+ return -EINVAL;
+
+ /* If the VF is locked, its resource assignment can't be changed */
+ if (dlb_vf_is_locked(hw, vf_id))
+ return -EPERM;
+
+ dlb_update_vf_sched_domains(hw, vf_id, 0);
+ dlb_update_vf_ldb_queues(hw, vf_id, 0);
+ dlb_update_vf_ldb_ports(hw, vf_id, 0);
+ dlb_update_vf_dir_ports(hw, vf_id, 0);
+ dlb_update_vf_ldb_credit_pools(hw, vf_id, 0);
+ dlb_update_vf_dir_credit_pools(hw, vf_id, 0);
+ dlb_update_vf_ldb_credits(hw, vf_id, 0);
+ dlb_update_vf_dir_credits(hw, vf_id, 0);
+ dlb_update_vf_hist_list_entries(hw, vf_id, 0);
+ dlb_update_vf_atomic_inflights(hw, vf_id, 0);
+
+ return 0;
+}
+
+void dlb_hw_enable_sparse_ldb_cq_mode(struct dlb_hw *hw)
+{
+ union dlb_sys_cq_mode r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_SYS_CQ_MODE);
+
+ r0.field.ldb_cq64 = 1;
+
+ DLB_CSR_WR(hw, DLB_SYS_CQ_MODE, r0.val);
+}
+
+void dlb_hw_enable_sparse_dir_cq_mode(struct dlb_hw *hw)
+{
+ union dlb_sys_cq_mode r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_SYS_CQ_MODE);
+
+ r0.field.dir_cq64 = 1;
+
+ DLB_CSR_WR(hw, DLB_SYS_CQ_MODE, r0.val);
+}
+
+void dlb_hw_set_qe_arbiter_weights(struct dlb_hw *hw, u8 weight[8])
+{
+ union dlb_atm_pipe_ctrl_arb_weights_rdy_bin r0 = { {0} };
+ union dlb_nalb_pipe_ctrl_arb_weights_tqpri_nalb_0 r1 = { {0} };
+ union dlb_nalb_pipe_ctrl_arb_weights_tqpri_nalb_1 r2 = { {0} };
+ union dlb_nalb_pipe_cfg_ctrl_arb_weights_tqpri_replay_0 r3 = { {0} };
+ union dlb_nalb_pipe_cfg_ctrl_arb_weights_tqpri_replay_1 r4 = { {0} };
+ union dlb_dp_cfg_ctrl_arb_weights_tqpri_replay_0 r5 = { {0} };
+ union dlb_dp_cfg_ctrl_arb_weights_tqpri_replay_1 r6 = { {0} };
+ union dlb_dp_cfg_ctrl_arb_weights_tqpri_dir_0 r7 = { {0} };
+ union dlb_dp_cfg_ctrl_arb_weights_tqpri_dir_1 r8 = { {0} };
+ union dlb_nalb_pipe_cfg_ctrl_arb_weights_tqpri_atq_0 r9 = { {0} };
+ union dlb_nalb_pipe_cfg_ctrl_arb_weights_tqpri_atq_1 r10 = { {0} };
+ union dlb_atm_pipe_cfg_ctrl_arb_weights_sched_bin r11 = { {0} };
+ union dlb_aqed_pipe_cfg_ctrl_arb_weights_tqpri_atm_0 r12 = { {0} };
+
+ r0.field.bin0 = weight[1];
+ r0.field.bin1 = weight[3];
+ r0.field.bin2 = weight[5];
+ r0.field.bin3 = weight[7];
+
+ r1.field.pri0 = weight[0];
+ r1.field.pri1 = weight[1];
+ r1.field.pri2 = weight[2];
+ r1.field.pri3 = weight[3];
+ r2.field.pri4 = weight[4];
+ r2.field.pri5 = weight[5];
+ r2.field.pri6 = weight[6];
+ r2.field.pri7 = weight[7];
+
+ r3.field.pri0 = weight[0];
+ r3.field.pri1 = weight[1];
+ r3.field.pri2 = weight[2];
+ r3.field.pri3 = weight[3];
+ r4.field.pri4 = weight[4];
+ r4.field.pri5 = weight[5];
+ r4.field.pri6 = weight[6];
+ r4.field.pri7 = weight[7];
+
+ r5.field.pri0 = weight[0];
+ r5.field.pri1 = weight[1];
+ r5.field.pri2 = weight[2];
+ r5.field.pri3 = weight[3];
+ r6.field.pri4 = weight[4];
+ r6.field.pri5 = weight[5];
+ r6.field.pri6 = weight[6];
+ r6.field.pri7 = weight[7];
+
+ r7.field.pri0 = weight[0];
+ r7.field.pri1 = weight[1];
+ r7.field.pri2 = weight[2];
+ r7.field.pri3 = weight[3];
+ r8.field.pri4 = weight[4];
+ r8.field.pri5 = weight[5];
+ r8.field.pri6 = weight[6];
+ r8.field.pri7 = weight[7];
+
+ r9.field.pri0 = weight[0];
+ r9.field.pri1 = weight[1];
+ r9.field.pri2 = weight[2];
+ r9.field.pri3 = weight[3];
+ r10.field.pri4 = weight[4];
+ r10.field.pri5 = weight[5];
+ r10.field.pri6 = weight[6];
+ r10.field.pri7 = weight[7];
+
+ r11.field.bin0 = weight[1];
+ r11.field.bin1 = weight[3];
+ r11.field.bin2 = weight[5];
+ r11.field.bin3 = weight[7];
+
+ r12.field.pri0 = weight[1];
+ r12.field.pri1 = weight[3];
+ r12.field.pri2 = weight[5];
+ r12.field.pri3 = weight[7];
+
+ DLB_CSR_WR(hw, DLB_ATM_PIPE_CTRL_ARB_WEIGHTS_RDY_BIN, r0.val);
+ DLB_CSR_WR(hw, DLB_NALB_PIPE_CTRL_ARB_WEIGHTS_TQPRI_NALB_0, r1.val);
+ DLB_CSR_WR(hw, DLB_NALB_PIPE_CTRL_ARB_WEIGHTS_TQPRI_NALB_1, r2.val);
+ DLB_CSR_WR(hw,
+ DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_0,
+ r3.val);
+ DLB_CSR_WR(hw,
+ DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_1,
+ r4.val);
+ DLB_CSR_WR(hw, DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_0, r5.val);
+ DLB_CSR_WR(hw, DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_REPLAY_1, r6.val);
+ DLB_CSR_WR(hw, DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_DIR_0, r7.val);
+ DLB_CSR_WR(hw, DLB_DP_CFG_CTRL_ARB_WEIGHTS_TQPRI_DIR_1, r8.val);
+ DLB_CSR_WR(hw, DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_ATQ_0, r9.val);
+ DLB_CSR_WR(hw, DLB_NALB_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_ATQ_1, r10.val);
+ DLB_CSR_WR(hw, DLB_ATM_PIPE_CFG_CTRL_ARB_WEIGHTS_SCHED_BIN, r11.val);
+ DLB_CSR_WR(hw, DLB_AQED_PIPE_CFG_CTRL_ARB_WEIGHTS_TQPRI_ATM_0, r12.val);
+}
+
+void dlb_hw_set_qid_arbiter_weights(struct dlb_hw *hw, u8 weight[8])
+{
+ union dlb_lsp_cfg_arb_weight_ldb_qid_0 r0 = { {0} };
+ union dlb_lsp_cfg_arb_weight_ldb_qid_1 r1 = { {0} };
+ union dlb_lsp_cfg_arb_weight_atm_nalb_qid_0 r2 = { {0} };
+ union dlb_lsp_cfg_arb_weight_atm_nalb_qid_1 r3 = { {0} };
+
+ r0.field.slot0_weight = weight[0];
+ r0.field.slot1_weight = weight[1];
+ r0.field.slot2_weight = weight[2];
+ r0.field.slot3_weight = weight[3];
+ r1.field.slot4_weight = weight[4];
+ r1.field.slot5_weight = weight[5];
+ r1.field.slot6_weight = weight[6];
+ r1.field.slot7_weight = weight[7];
+
+ r2.field.slot0_weight = weight[0];
+ r2.field.slot1_weight = weight[1];
+ r2.field.slot2_weight = weight[2];
+ r2.field.slot3_weight = weight[3];
+ r3.field.slot4_weight = weight[4];
+ r3.field.slot5_weight = weight[5];
+ r3.field.slot6_weight = weight[6];
+ r3.field.slot7_weight = weight[7];
+
+ DLB_CSR_WR(hw, DLB_LSP_CFG_ARB_WEIGHT_LDB_QID_0, r0.val);
+ DLB_CSR_WR(hw, DLB_LSP_CFG_ARB_WEIGHT_LDB_QID_1, r1.val);
+ DLB_CSR_WR(hw, DLB_LSP_CFG_ARB_WEIGHT_ATM_NALB_QID_0, r2.val);
+ DLB_CSR_WR(hw, DLB_LSP_CFG_ARB_WEIGHT_ATM_NALB_QID_1, r3.val);
+}
+
+void dlb_hw_enable_pp_sw_alarms(struct dlb_hw *hw)
+{
+ union dlb_chp_cfg_ldb_pp_sw_alarm_en r0 = { {0} };
+ union dlb_chp_cfg_dir_pp_sw_alarm_en r1 = { {0} };
+ int i;
+
+ r0.field.alarm_enable = 1;
+ r1.field.alarm_enable = 1;
+
+ for (i = 0; i < DLB_MAX_NUM_LDB_PORTS; i++)
+ DLB_CSR_WR(hw, DLB_CHP_CFG_LDB_PP_SW_ALARM_EN(i), r0.val);
+
+ for (i = 0; i < DLB_MAX_NUM_DIR_PORTS; i++)
+ DLB_CSR_WR(hw, DLB_CHP_CFG_DIR_PP_SW_ALARM_EN(i), r1.val);
+}
+
+void dlb_hw_disable_pp_sw_alarms(struct dlb_hw *hw)
+{
+ union dlb_chp_cfg_ldb_pp_sw_alarm_en r0 = { {0} };
+ union dlb_chp_cfg_dir_pp_sw_alarm_en r1 = { {0} };
+ int i;
+
+ r0.field.alarm_enable = 0;
+ r1.field.alarm_enable = 0;
+
+ for (i = 0; i < DLB_MAX_NUM_LDB_PORTS; i++)
+ DLB_CSR_WR(hw, DLB_CHP_CFG_LDB_PP_SW_ALARM_EN(i), r0.val);
+
+ for (i = 0; i < DLB_MAX_NUM_DIR_PORTS; i++)
+ DLB_CSR_WR(hw, DLB_CHP_CFG_DIR_PP_SW_ALARM_EN(i), r1.val);
+}
+
+void dlb_hw_disable_pf_to_vf_isr_pend_err(struct dlb_hw *hw)
+{
+ union dlb_sys_sys_alarm_int_enable r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_SYS_SYS_ALARM_INT_ENABLE);
+
+ r0.field.pf_to_vf_isr_pend_error = 0;
+
+ DLB_CSR_WR(hw, DLB_SYS_SYS_ALARM_INT_ENABLE, r0.val);
+}
+
+void dlb_hw_disable_vf_to_pf_isr_pend_err(struct dlb_hw *hw)
+{
+ union dlb_sys_sys_alarm_int_enable r0;
+
+ r0.val = DLB_CSR_RD(hw, DLB_SYS_SYS_ALARM_INT_ENABLE);
+
+ r0.field.vf_to_pf_isr_pend_error = 0;
+
+ DLB_CSR_WR(hw, DLB_SYS_SYS_ALARM_INT_ENABLE, r0.val);
+}
diff --git a/drivers/event/dlb/pf/base/dlb_resource.h b/drivers/event/dlb/pf/base/dlb_resource.h
new file mode 100644
index 0000000..b67424a
--- /dev/null
+++ b/drivers/event/dlb/pf/base/dlb_resource.h
@@ -0,0 +1,1639 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#ifndef __DLB_RESOURCE_H
+#define __DLB_RESOURCE_H
+
+#include "dlb_hw_types.h"
+#include "dlb_osdep_types.h"
+#include "dlb_user.h"
+
+/**
+ * dlb_resource_init() - initialize the device
+ * @hw: pointer to struct dlb_hw.
+ *
+ * This function initializes the device's software state (pointed to by the hw
+ * argument) and programs global scheduling QoS registers. This function should
+ * be called during driver initialization.
+ *
+ * The dlb_hw struct must be unique per DLB device and persist until the device
+ * is reset.
+ *
+ * Return:
+ * Returns 0 upon success, -1 otherwise.
+ */
+int dlb_resource_init(struct dlb_hw *hw);
+
+/**
+ * dlb_resource_free() - free device state memory
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function frees software state pointed to by dlb_hw. This function
+ * should be called when resetting the device or unloading the driver.
+ */
+void dlb_resource_free(struct dlb_hw *hw);
+
+/**
+ * dlb_resource_reset() - reset in-use resources to their initial state
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function resets in-use resources, and makes them available for use.
+ * All resources go back to their owning function, whether a PF or a VF.
+ */
+void dlb_resource_reset(struct dlb_hw *hw);
+
+/**
+ * dlb_hw_create_sched_domain() - create a scheduling domain
+ * @hw: dlb_hw handle for a particular device.
+ * @args: scheduling domain creation arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function creates a scheduling domain containing the resources specified
+ * in args. The individual resources (queues, ports, credit pools) can be
+ * configured after creating a scheduling domain.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error. If successful, resp->id
+ * contains the domain ID.
+ *
+ * Note: resp->id contains a virtual ID if vf_request is true.
+ *
+ * Errors:
+ * EINVAL - A requested resource is unavailable, or the requested domain name
+ * is already in use.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_create_sched_domain(struct dlb_hw *hw,
+ struct dlb_create_sched_domain_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_create_ldb_pool() - create a load-balanced credit pool
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: credit pool creation arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function creates a load-balanced credit pool containing the number of
+ * requested credits.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error. If successful, resp->id
+ * contains the pool ID.
+ *
+ * Note: resp->id contains a virtual ID if vf_request is true.
+ *
+ * Errors:
+ * EINVAL - A requested resource is unavailable, the domain is not configured,
+ * or the domain has already been started.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_create_ldb_pool(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_ldb_pool_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_create_dir_pool() - create a directed credit pool
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: credit pool creation arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function creates a directed credit pool containing the number of
+ * requested credits.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error. If successful, resp->id
+ * contains the pool ID.
+ *
+ * Note: resp->id contains a virtual ID if vf_request is true.
+ *
+ * Errors:
+ * EINVAL - A requested resource is unavailable, the domain is not configured,
+ * or the domain has already been started.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_create_dir_pool(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_dir_pool_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_create_ldb_queue() - create a load-balanced queue
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: queue creation arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function creates a load-balanced queue.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error. If successful, resp->id
+ * contains the queue ID.
+ *
+ * Note: resp->id contains a virtual ID if vf_request is true.
+ *
+ * Errors:
+ * EINVAL - A requested resource is unavailable, the domain is not configured,
+ * the domain has already been started, or the requested queue name is
+ * already in use.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_create_ldb_queue(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_ldb_queue_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_create_dir_queue() - create a directed queue
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: queue creation arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function creates a directed queue.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error. If successful, resp->id
+ * contains the queue ID.
+ *
+ * Note: resp->id contains a virtual ID if vf_request is true.
+ *
+ * Errors:
+ * EINVAL - A requested resource is unavailable, the domain is not configured,
+ * or the domain has already been started.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_create_dir_queue(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_dir_queue_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_create_dir_port() - create a directed port
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: port creation arguments.
+ * @pop_count_dma_base: base address of the pop count memory. This can be
+ * a PA or an IOVA.
+ * @cq_dma_base: base address of the CQ memory. This can be a PA or an IOVA.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function creates a directed port.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error. If successful, resp->id
+ * contains the port ID.
+ *
+ * Note: resp->id contains a virtual ID if vf_request is true.
+ *
+ * Errors:
+ * EINVAL - A requested resource is unavailable, a credit setting is invalid, a
+ * pool ID is invalid, a pointer address is not properly aligned, the
+ * domain is not configured, or the domain has already been started.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_create_dir_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_dir_port_args *args,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_create_ldb_port() - create a load-balanced port
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: port creation arguments.
+ * @pop_count_dma_base: base address of the pop count memory. This can be
+ * a PA or an IOVA.
+ * @cq_dma_base: base address of the CQ memory. This can be a PA or an IOVA.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function creates a load-balanced port.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error. If successful, resp->id
+ * contains the port ID.
+ *
+ * Note: resp->id contains a virtual ID if vf_request is true.
+ *
+ * Errors:
+ * EINVAL - A requested resource is unavailable, a credit setting is invalid, a
+ * pool ID is invalid, a pointer address is not properly aligned, the
+ * domain is not configured, or the domain has already been started.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_create_ldb_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_create_ldb_port_args *args,
+ u64 pop_count_dma_base,
+ u64 cq_dma_base,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_start_domain() - start a scheduling domain
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: start domain arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function starts a scheduling domain, which allows applications to send
+ * traffic through it. Once a domain is started, its resources can no longer be
+ * configured (besides QID remapping and port enable/disable).
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error.
+ *
+ * Errors:
+ * EINVAL - the domain is not configured, or the domain is already started.
+ */
+int dlb_hw_start_domain(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_start_domain_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_map_qid() - map a load-balanced queue to a load-balanced port
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: map QID arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function configures the DLB to schedule QEs from the specified queue to
+ * the specified port. Each load-balanced port can be mapped to up to 8 queues;
+ * each load-balanced queue can potentially map to all the load-balanced ports.
+ *
+ * A successful return does not necessarily mean the mapping was configured. If
+ * this function is unable to immediately map the queue to the port, it will
+ * add the requested operation to a per-port list of pending map/unmap
+ * operations, and (if it's not already running) launch a kernel thread that
+ * periodically attempts to process all pending operations. In a sense, this is
+ * an asynchronous function.
+ *
+ * This asynchronicity creates two views of the state of hardware: the actual
+ * hardware state and the requested state (as if every request completed
+ * immediately). If there are any pending map/unmap operations, the requested
+ * state will differ from the actual state. All validation is performed with
+ * respect to the pending state; for instance, if there are 8 pending map
+ * operations for port X, a request for a 9th will fail because a load-balanced
+ * port can only map up to 8 queues.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error.
+ *
+ * Errors:
+ * EINVAL - A requested resource is unavailable, invalid port or queue ID, or
+ * the domain is not configured.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_map_qid(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_map_qid_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_unmap_qid() - Unmap a load-balanced queue from a load-balanced port
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: unmap QID arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function configures the DLB to stop scheduling QEs from the specified
+ * queue to the specified port.
+ *
+ * A successful return does not necessarily mean the mapping was removed. If
+ * this function is unable to immediately unmap the queue from the port, it
+ * will add the requested operation to a per-port list of pending map/unmap
+ * operations, and (if it's not already running) launch a kernel thread that
+ * periodically attempts to process all pending operations. See
+ * dlb_hw_map_qid() for more details.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error.
+ *
+ * Errors:
+ * EINVAL - A requested resource is unavailable, invalid port or queue ID, or
+ * the domain is not configured.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_unmap_qid(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_unmap_qid_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_finish_unmap_qid_procedures() - finish any pending unmap procedures
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function attempts to finish any outstanding unmap procedures.
+ * This function should be called by the kernel thread responsible for
+ * finishing map/unmap procedures.
+ *
+ * Return:
+ * Returns the number of procedures that weren't completed.
+ */
+unsigned int dlb_finish_unmap_qid_procedures(struct dlb_hw *hw);
+
+/**
+ * dlb_finish_map_qid_procedures() - finish any pending map procedures
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function attempts to finish any outstanding map procedures.
+ * This function should be called by the kernel thread responsible for
+ * finishing map/unmap procedures.
+ *
+ * Return:
+ * Returns the number of procedures that weren't completed.
+ */
+unsigned int dlb_finish_map_qid_procedures(struct dlb_hw *hw);
+
+/**
+ * dlb_hw_enable_ldb_port() - enable a load-balanced port for scheduling
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: port enable arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function configures the DLB to schedule QEs to a load-balanced port.
+ * Ports are enabled by default.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error.
+ *
+ * Errors:
+ * EINVAL - The port ID is invalid or the domain is not configured.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_enable_ldb_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_enable_ldb_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_disable_ldb_port() - disable a load-balanced port for scheduling
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: port disable arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function configures the DLB to stop scheduling QEs to a load-balanced
+ * port. Ports are enabled by default.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error.
+ *
+ * Errors:
+ * EINVAL - The port ID is invalid or the domain is not configured.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_disable_ldb_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_disable_ldb_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_enable_dir_port() - enable a directed port for scheduling
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: port enable arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function configures the DLB to schedule QEs to a directed port.
+ * Ports are enabled by default.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error.
+ *
+ * Errors:
+ * EINVAL - The port ID is invalid or the domain is not configured.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_enable_dir_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_enable_dir_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_disable_dir_port() - disable a directed port for scheduling
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: port disable arguments.
+ * @resp: response structure.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function configures the DLB to stop scheduling QEs to a directed port.
+ * Ports are enabled by default.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error.
+ *
+ * Errors:
+ * EINVAL - The port ID is invalid or the domain is not configured.
+ * EFAULT - Internal error (resp->status not set).
+ */
+int dlb_hw_disable_dir_port(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_disable_dir_port_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_configure_ldb_cq_interrupt() - configure load-balanced CQ for interrupts
+ * @hw: dlb_hw handle for a particular device.
+ * @port_id: load-balancd port ID.
+ * @vector: interrupt vector ID. Should be 0 for MSI or compressed MSI-X mode,
+ * else a value up to 64.
+ * @mode: interrupt type (DLB_CQ_ISR_MODE_MSI or DLB_CQ_ISR_MODE_MSIX)
+ * @vf: If the port is VF-owned, the VF's ID. This is used for translating the
+ * virtual port ID to a physical port ID. Ignored if mode is not MSI.
+ * @owner_vf: the VF to route the interrupt to. Ignore if mode is not MSI.
+ * @threshold: the minimum CQ depth at which the interrupt can fire. Must be
+ * greater than 0.
+ *
+ * This function configures the DLB registers for load-balanced CQ's interrupts.
+ * This doesn't enable the CQ's interrupt; that can be done with
+ * dlb_arm_cq_interrupt() or through an interrupt arm QE.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise.
+ *
+ * Errors:
+ * EINVAL - The port ID is invalid.
+ */
+int dlb_configure_ldb_cq_interrupt(struct dlb_hw *hw,
+ int port_id,
+ int vector,
+ int mode,
+ unsigned int vf,
+ unsigned int owner_vf,
+ u16 threshold);
+
+/**
+ * dlb_configure_dir_cq_interrupt() - configure directed CQ for interrupts
+ * @hw: dlb_hw handle for a particular device.
+ * @port_id: load-balancd port ID.
+ * @vector: interrupt vector ID. Should be 0 for MSI or compressed MSI-X mode,
+ * else a value up to 64.
+ * @mode: interrupt type (DLB_CQ_ISR_MODE_MSI or DLB_CQ_ISR_MODE_MSIX)
+ * @vf: If the port is VF-owned, the VF's ID. This is used for translating the
+ * virtual port ID to a physical port ID. Ignored if mode is not MSI.
+ * @owner_vf: the VF to route the interrupt to. Ignore if mode is not MSI.
+ * @threshold: the minimum CQ depth at which the interrupt can fire. Must be
+ * greater than 0.
+ *
+ * This function configures the DLB registers for directed CQ's interrupts.
+ * This doesn't enable the CQ's interrupt; that can be done with
+ * dlb_arm_cq_interrupt() or through an interrupt arm QE.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise.
+ *
+ * Errors:
+ * EINVAL - The port ID is invalid.
+ */
+int dlb_configure_dir_cq_interrupt(struct dlb_hw *hw,
+ int port_id,
+ int vector,
+ int mode,
+ unsigned int vf,
+ unsigned int owner_vf,
+ u16 threshold);
+
+/**
+ * dlb_enable_alarm_interrupts() - enable certain hardware alarm interrupts
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function configures the ingress error alarm. (Other alarms are enabled
+ * by default.)
+ */
+void dlb_enable_alarm_interrupts(struct dlb_hw *hw);
+
+/**
+ * dlb_disable_alarm_interrupts() - disable certain hardware alarm interrupts
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function configures the ingress error alarm. (Other alarms are disabled
+ * by default.)
+ */
+void dlb_disable_alarm_interrupts(struct dlb_hw *hw);
+
+/**
+ * dlb_set_msix_mode() - enable certain hardware alarm interrupts
+ * @hw: dlb_hw handle for a particular device.
+ * @mode: MSI-X mode (DLB_MSIX_MODE_PACKED or DLB_MSIX_MODE_COMPRESSED)
+ *
+ * This function configures the hardware to use either packed or compressed
+ * mode. This function should not be called if using MSI interrupts.
+ */
+void dlb_set_msix_mode(struct dlb_hw *hw, int mode);
+
+/**
+ * dlb_arm_cq_interrupt() - arm a CQ's interrupt
+ * @hw: dlb_hw handle for a particular device.
+ * @port_id: port ID
+ * @is_ldb: true for load-balanced port, false for a directed port
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function arms the CQ's interrupt. The CQ must be configured prior to
+ * calling this function.
+ *
+ * The function does no parameter validation; that is the caller's
+ * responsibility.
+ *
+ * Return: returns 0 upon success, <0 otherwise.
+ *
+ * EINVAL - Invalid port ID.
+ */
+int dlb_arm_cq_interrupt(struct dlb_hw *hw,
+ int port_id,
+ bool is_ldb,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_read_compressed_cq_intr_status() - read compressed CQ interrupt status
+ * @hw: dlb_hw handle for a particular device.
+ * @ldb_interrupts: 2-entry array of u32 bitmaps
+ * @dir_interrupts: 4-entry array of u32 bitmaps
+ *
+ * This function can be called from a compressed CQ interrupt handler to
+ * determine which CQ interrupts have fired. The caller should take appropriate
+ * (such as waking threads blocked on a CQ's interrupt) then ack the interrupts
+ * with dlb_ack_compressed_cq_intr().
+ */
+void dlb_read_compressed_cq_intr_status(struct dlb_hw *hw,
+ u32 *ldb_interrupts,
+ u32 *dir_interrupts);
+
+/**
+ * dlb_ack_compressed_cq_intr_status() - ack compressed CQ interrupts
+ * @hw: dlb_hw handle for a particular device.
+ * @ldb_interrupts: 2-entry array of u32 bitmaps
+ * @dir_interrupts: 4-entry array of u32 bitmaps
+ *
+ * This function ACKs compressed CQ interrupts. Its arguments should be the
+ * same ones passed to dlb_read_compressed_cq_intr_status().
+ */
+void dlb_ack_compressed_cq_intr(struct dlb_hw *hw,
+ u32 *ldb_interrupts,
+ u32 *dir_interrupts);
+
+/**
+ * dlb_read_vf_intr_status() - read the VF interrupt status register
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function can be called from a VF's interrupt handler to determine
+ * which interrupts have fired. The first 31 bits correspond to CQ interrupt
+ * vectors, and the final bit is for the PF->VF mailbox interrupt vector.
+ *
+ * Return:
+ * Returns a bit vector indicating which interrupt vectors are active.
+ */
+u32 dlb_read_vf_intr_status(struct dlb_hw *hw);
+
+/**
+ * dlb_ack_vf_intr_status() - ack VF interrupts
+ * @hw: dlb_hw handle for a particular device.
+ * @interrupts: 32-bit bitmap
+ *
+ * This function ACKs a VF's interrupts. Its interrupts argument should be the
+ * value returned by dlb_read_vf_intr_status().
+ */
+void dlb_ack_vf_intr_status(struct dlb_hw *hw, u32 interrupts);
+
+/**
+ * dlb_ack_vf_msi_intr() - ack VF MSI interrupt
+ * @hw: dlb_hw handle for a particular device.
+ * @interrupts: 32-bit bitmap
+ *
+ * This function clears the VF's MSI interrupt pending register. Its interrupts
+ * argument should be contain the MSI vectors to ACK. For example, if MSI MME
+ * is in mode 0, then one bit 0 should ever be set.
+ */
+void dlb_ack_vf_msi_intr(struct dlb_hw *hw, u32 interrupts);
+
+/**
+ * dlb_ack_vf_mbox_int() - ack PF->VF mailbox interrupt
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * When done processing the PF mailbox request, this function unsets
+ * the PF's mailbox ISR register.
+ */
+void dlb_ack_pf_mbox_int(struct dlb_hw *hw);
+
+/**
+ * dlb_read_vf_to_pf_int_bitvec() - return a bit vector of all requesting VFs
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * When the VF->PF ISR fires, this function can be called to determine which
+ * VF(s) are requesting service. This bitvector must be passed to
+ * dlb_ack_vf_to_pf_int() when processing is complete for all requesting VFs.
+ *
+ * Return:
+ * Returns a bit vector indicating which VFs (0-15) have requested service.
+ */
+u32 dlb_read_vf_to_pf_int_bitvec(struct dlb_hw *hw);
+
+/**
+ * dlb_ack_vf_mbox_int() - ack processed VF->PF mailbox interrupt
+ * @hw: dlb_hw handle for a particular device.
+ * @bitvec: bit vector returned by dlb_read_vf_to_pf_int_bitvec()
+ *
+ * When done processing all VF mailbox requests, this function unsets the VF's
+ * mailbox ISR register.
+ */
+void dlb_ack_vf_mbox_int(struct dlb_hw *hw, u32 bitvec);
+
+/**
+ * dlb_read_vf_flr_int_bitvec() - return a bit vector of all VFs requesting FLR
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * When the VF FLR ISR fires, this function can be called to determine which
+ * VF(s) are requesting FLRs. This bitvector must passed to
+ * dlb_ack_vf_flr_int() when processing is complete for all requesting VFs.
+ *
+ * Return:
+ * Returns a bit vector indicating which VFs (0-15) have requested FLRs.
+ */
+u32 dlb_read_vf_flr_int_bitvec(struct dlb_hw *hw);
+
+/**
+ * dlb_ack_vf_flr_int() - ack processed VF<->PF interrupt(s)
+ * @hw: dlb_hw handle for a particular device.
+ * @bitvec: bit vector returned by dlb_read_vf_flr_int_bitvec()
+ * @a_stepping: device is A-stepping
+ *
+ * When done processing all VF FLR requests, this function unsets the VF's FLR
+ * ISR register.
+ *
+ * Note: The caller must ensure dlb_set_vf_reset_in_progress(),
+ * dlb_clr_vf_reset_in_progress(), and dlb_ack_vf_flr_int() are not executed in
+ * parallel, because the reset-in-progress register does not support atomic
+ * updates on A-stepping devices.
+ */
+void dlb_ack_vf_flr_int(struct dlb_hw *hw, u32 bitvec, bool a_stepping);
+
+/**
+ * dlb_ack_vf_to_pf_int() - ack processed VF mbox and FLR interrupt(s)
+ * @hw: dlb_hw handle for a particular device.
+ * @mbox_bitvec: bit vector returned by dlb_read_vf_to_pf_int_bitvec()
+ * @flr_bitvec: bit vector returned by dlb_read_vf_flr_int_bitvec()
+ *
+ * When done processing all VF requests, this function communicates to the
+ * hardware that processing is complete. When this function completes, hardware
+ * can immediately generate another VF mbox or FLR interrupt.
+ */
+void dlb_ack_vf_to_pf_int(struct dlb_hw *hw,
+ u32 mbox_bitvec,
+ u32 flr_bitvec);
+
+/**
+ * dlb_process_alarm_interrupt() - process an alarm interrupt
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function reads the alarm syndrome, logs its, and acks the interrupt.
+ * This function should be called from the alarm interrupt handler when
+ * interrupt vector DLB_INT_ALARM fires.
+ */
+void dlb_process_alarm_interrupt(struct dlb_hw *hw);
+
+/**
+ * dlb_process_ingress_error_interrupt() - process ingress error interrupts
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function reads the alarm syndrome, logs it, notifies user-space, and
+ * acks the interrupt. This function should be called from the alarm interrupt
+ * handler when interrupt vector DLB_INT_INGRESS_ERROR fires.
+ */
+void dlb_process_ingress_error_interrupt(struct dlb_hw *hw);
+
+/**
+ * dlb_get_group_sequence_numbers() - return a group's number of SNs per queue
+ * @hw: dlb_hw handle for a particular device.
+ * @group_id: sequence number group ID.
+ *
+ * This function returns the configured number of sequence numbers per queue
+ * for the specified group.
+ *
+ * Return:
+ * Returns -EINVAL if group_id is invalid, else the group's SNs per queue.
+ */
+int dlb_get_group_sequence_numbers(struct dlb_hw *hw, unsigned int group_id);
+
+/**
+ * dlb_get_group_sequence_number_occupancy() - return a group's in-use slots
+ * @hw: dlb_hw handle for a particular device.
+ * @group_id: sequence number group ID.
+ *
+ * This function returns the group's number of in-use slots (i.e. load-balanced
+ * queues using the specified group).
+ *
+ * Return:
+ * Returns -EINVAL if group_id is invalid, else the group's occupancy.
+ */
+int dlb_get_group_sequence_number_occupancy(struct dlb_hw *hw,
+ unsigned int group_id);
+
+/**
+ * dlb_set_group_sequence_numbers() - assign a group's number of SNs per queue
+ * @hw: dlb_hw handle for a particular device.
+ * @group_id: sequence number group ID.
+ * @val: requested amount of sequence numbers per queue.
+ *
+ * This function configures the group's number of sequence numbers per queue.
+ * val can be a power-of-two between 32 and 1024, inclusive. This setting can
+ * be configured until the first ordered load-balanced queue is configured, at
+ * which point the configuration is locked.
+ *
+ * Return:
+ * Returns 0 upon success; -EINVAL if group_id or val is invalid, -EPERM if an
+ * ordered queue is configured.
+ */
+int dlb_set_group_sequence_numbers(struct dlb_hw *hw,
+ unsigned int group_id,
+ unsigned long val);
+
+/**
+ * dlb_reset_domain() - reset a scheduling domain
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function resets and frees a DLB scheduling domain and its associated
+ * resources.
+ *
+ * Pre-condition: the driver must ensure software has stopped sending QEs
+ * through this domain's producer ports before invoking this function, or
+ * undefined behavior will result.
+ *
+ * Return:
+ * Returns 0 upon success, -1 otherwise.
+ *
+ * EINVAL - Invalid domain ID, or the domain is not configured.
+ * EFAULT - Internal error. (Possibly caused if software is the pre-condition
+ * is not met.)
+ * ETIMEDOUT - Hardware component didn't reset in the expected time.
+ */
+int dlb_reset_domain(struct dlb_hw *hw,
+ u32 domain_id,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_ldb_port_owned_by_domain() - query whether a port is owned by a domain
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @port_id: indicates whether this request came from a VF.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function returns whether a load-balanced port is owned by a specified
+ * domain.
+ *
+ * Return:
+ * Returns 0 if false, 1 if true, <0 otherwise.
+ *
+ * EINVAL - Invalid domain or port ID, or the domain is not configured.
+ */
+int dlb_ldb_port_owned_by_domain(struct dlb_hw *hw,
+ u32 domain_id,
+ u32 port_id,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_dir_port_owned_by_domain() - query whether a port is owned by a domain
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @port_id: indicates whether this request came from a VF.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function returns whether a directed port is owned by a specified
+ * domain.
+ *
+ * Return:
+ * Returns 0 if false, 1 if true, <0 otherwise.
+ *
+ * EINVAL - Invalid domain or port ID, or the domain is not configured.
+ */
+int dlb_dir_port_owned_by_domain(struct dlb_hw *hw,
+ u32 domain_id,
+ u32 port_id,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_get_num_resources() - query the PCI function's available resources
+ * @arg: pointer to resource counts.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function returns the number of available resources for the PF or for a
+ * VF.
+ *
+ * Return:
+ * Returns 0 upon success, -1 if vf_request is true and vf_id is invalid.
+ */
+int dlb_hw_get_num_resources(struct dlb_hw *hw,
+ struct dlb_get_num_resources_args *arg,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_get_num_used_resources() - query the PCI function's used resources
+ * @arg: pointer to resource counts.
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function returns the number of resources in use by the PF or a VF. It
+ * fills in the fields that args points to, except the following:
+ * - max_contiguous_atomic_inflights
+ * - max_contiguous_hist_list_entries
+ * - max_contiguous_ldb_credits
+ * - max_contiguous_dir_credits
+ *
+ * Return:
+ * Returns 0 upon success, -1 if vf_request is true and vf_id is invalid.
+ */
+int dlb_hw_get_num_used_resources(struct dlb_hw *hw,
+ struct dlb_get_num_resources_args *arg,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_send_async_vf_to_pf_msg() - (VF only) send a mailbox message to the PF
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function sends a VF->PF mailbox message. It is asynchronous, so it
+ * returns once the message is sent but potentially before the PF has processed
+ * the message. The caller must call dlb_vf_to_pf_complete() to determine when
+ * the PF has finished processing the request.
+ */
+void dlb_send_async_vf_to_pf_msg(struct dlb_hw *hw);
+
+/**
+ * dlb_vf_to_pf_complete() - check the status of an asynchronous mailbox request
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function returns a boolean indicating whether the PF has finished
+ * processing a VF->PF mailbox request. It should only be called after sending
+ * an asynchronous request with dlb_send_async_vf_to_pf_msg().
+ */
+bool dlb_vf_to_pf_complete(struct dlb_hw *hw);
+
+/**
+ * dlb_vf_flr_complete() - check the status of a VF FLR
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function returns a boolean indicating whether the PF has finished
+ * executing the VF FLR. It should only be called after setting the VF's FLR
+ * bit.
+ */
+bool dlb_vf_flr_complete(struct dlb_hw *hw);
+
+/**
+ * dlb_set_vf_reset_in_progress() - set a VF's reset in progress bit
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID.
+ *
+ * Note: This function is only supported on A-stepping devices.
+ *
+ * Note: The caller must ensure dlb_set_vf_reset_in_progress(),
+ * dlb_clr_vf_reset_in_progress(), and dlb_ack_vf_flr_int() are not executed in
+ * parallel, because the reset-in-progress register does not support atomic
+ * updates on A-stepping devices.
+ */
+void dlb_set_vf_reset_in_progress(struct dlb_hw *hw, int vf_id);
+
+/**
+ * dlb_clr_vf_reset_in_progress() - clear a VF's reset in progress bit
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID.
+ *
+ * Note: This function is only supported on A-stepping devices.
+ *
+ * Note: The caller must ensure dlb_set_vf_reset_in_progress(),
+ * dlb_clr_vf_reset_in_progress(), and dlb_ack_vf_flr_int() are not executed in
+ * parallel, because the reset-in-progress register does not support atomic
+ * updates on A-stepping devices.
+ */
+void dlb_clr_vf_reset_in_progress(struct dlb_hw *hw, int vf_id);
+
+/**
+ * dlb_send_async_pf_to_vf_msg() - (PF only) send a mailbox message to the VF
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID.
+ *
+ * This function sends a PF->VF mailbox message. It is asynchronous, so it
+ * returns once the message is sent but potentially before the VF has processed
+ * the message. The caller must call dlb_pf_to_vf_complete() to determine when
+ * the VF has finished processing the request.
+ */
+void dlb_send_async_pf_to_vf_msg(struct dlb_hw *hw, unsigned int vf_id);
+
+/**
+ * dlb_pf_to_vf_complete() - check the status of an asynchronous mailbox request
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID.
+ *
+ * This function returns a boolean indicating whether the VF has finished
+ * processing a PF->VF mailbox request. It should only be called after sending
+ * an asynchronous request with dlb_send_async_pf_to_vf_msg().
+ */
+bool dlb_pf_to_vf_complete(struct dlb_hw *hw, unsigned int vf_id);
+
+/**
+ * dlb_pf_read_vf_mbox_req() - (PF only) read a VF->PF mailbox request
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID.
+ * @data: pointer to message data.
+ * @len: size, in bytes, of the data array.
+ *
+ * This function copies one of the PF's VF->PF mailboxes into the array pointed
+ * to by data.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * EINVAL - len >= DLB_VF2PF_REQ_BYTES.
+ */
+int dlb_pf_read_vf_mbox_req(struct dlb_hw *hw,
+ unsigned int vf_id,
+ void *data,
+ int len);
+
+/**
+ * dlb_pf_read_vf_mbox_resp() - (PF only) read a VF->PF mailbox response
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID.
+ * @data: pointer to message data.
+ * @len: size, in bytes, of the data array.
+ *
+ * This function copies one of the PF's VF->PF mailboxes into the array pointed
+ * to by data.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * EINVAL - len >= DLB_VF2PF_RESP_BYTES.
+ */
+int dlb_pf_read_vf_mbox_resp(struct dlb_hw *hw,
+ unsigned int vf_id,
+ void *data,
+ int len);
+
+/**
+ * dlb_pf_write_vf_mbox_resp() - (PF only) write a PF->VF mailbox response
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID.
+ * @data: pointer to message data.
+ * @len: size, in bytes, of the data array.
+ *
+ * This function copies the user-provided message data into of the PF's VF->PF
+ * mailboxes.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * EINVAL - len >= DLB_PF2VF_RESP_BYTES.
+ */
+int dlb_pf_write_vf_mbox_resp(struct dlb_hw *hw,
+ unsigned int vf_id,
+ void *data,
+ int len);
+
+/**
+ * dlb_pf_write_vf_mbox_req() - (PF only) write a PF->VF mailbox request
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID.
+ * @data: pointer to message data.
+ * @len: size, in bytes, of the data array.
+ *
+ * This function copies the user-provided message data into of the PF's VF->PF
+ * mailboxes.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * EINVAL - len >= DLB_PF2VF_REQ_BYTES.
+ */
+int dlb_pf_write_vf_mbox_req(struct dlb_hw *hw,
+ unsigned int vf_id,
+ void *data,
+ int len);
+
+/**
+ * dlb_vf_read_pf_mbox_resp() - (VF only) read a PF->VF mailbox response
+ * @hw: dlb_hw handle for a particular device.
+ * @data: pointer to message data.
+ * @len: size, in bytes, of the data array.
+ *
+ * This function copies the VF's PF->VF mailbox into the array pointed to by
+ * data.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * EINVAL - len >= DLB_PF2VF_RESP_BYTES.
+ */
+int dlb_vf_read_pf_mbox_resp(struct dlb_hw *hw, void *data, int len);
+
+/**
+ * dlb_vf_read_pf_mbox_req() - (VF only) read a PF->VF mailbox request
+ * @hw: dlb_hw handle for a particular device.
+ * @data: pointer to message data.
+ * @len: size, in bytes, of the data array.
+ *
+ * This function copies the VF's PF->VF mailbox into the array pointed to by
+ * data.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * EINVAL - len >= DLB_PF2VF_REQ_BYTES.
+ */
+int dlb_vf_read_pf_mbox_req(struct dlb_hw *hw, void *data, int len);
+
+/**
+ * dlb_vf_write_pf_mbox_req() - (VF only) write a VF->PF mailbox request
+ * @hw: dlb_hw handle for a particular device.
+ * @data: pointer to message data.
+ * @len: size, in bytes, of the data array.
+ *
+ * This function copies the user-provided message data into of the VF's PF->VF
+ * mailboxes.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * EINVAL - len >= DLB_VF2PF_REQ_BYTES.
+ */
+int dlb_vf_write_pf_mbox_req(struct dlb_hw *hw, void *data, int len);
+
+/**
+ * dlb_vf_write_pf_mbox_resp() - (VF only) write a VF->PF mailbox response
+ * @hw: dlb_hw handle for a particular device.
+ * @data: pointer to message data.
+ * @len: size, in bytes, of the data array.
+ *
+ * This function copies the user-provided message data into of the VF's PF->VF
+ * mailboxes.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * EINVAL - len >= DLB_VF2PF_RESP_BYTES.
+ */
+int dlb_vf_write_pf_mbox_resp(struct dlb_hw *hw, void *data, int len);
+
+/**
+ * dlb_reset_vf() - reset the hardware owned by a VF
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ *
+ * This function resets the hardware owned by a VF (if any), by resetting the
+ * VF's domains one by one.
+ */
+int dlb_reset_vf(struct dlb_hw *hw, unsigned int vf_id);
+
+/**
+ * dlb_vf_is_locked() - check whether the VF's resources are locked
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ *
+ * This function returns whether or not the VF's resource assignments are
+ * locked. If locked, no resources can be added to or subtracted from the
+ * group.
+ */
+bool dlb_vf_is_locked(struct dlb_hw *hw, unsigned int vf_id);
+
+/**
+ * dlb_lock_vf() - lock the VF's resources
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ *
+ * This function sets a flag indicating that the VF is using its resources.
+ * When VF is locked, its resource assignment cannot be changed.
+ */
+void dlb_lock_vf(struct dlb_hw *hw, unsigned int vf_id);
+
+/**
+ * dlb_unlock_vf() - unlock the VF's resources
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ *
+ * This function unlocks the VF's resource assignment, allowing it to be
+ * modified.
+ */
+void dlb_unlock_vf(struct dlb_hw *hw, unsigned int vf_id);
+
+/**
+ * dlb_update_vf_sched_domains() - update the domains assigned to a VF
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @num: number of scheduling domains to assign to this VF
+ *
+ * This function assigns num scheduling domains to the specified VF. If the VF
+ * already has domains assigned, this existing assignment is adjusted
+ * accordingly.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid, or the requested number of resources are
+ * unavailable.
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_update_vf_sched_domains(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 num);
+
+/**
+ * dlb_update_vf_ldb_queues() - update the LDB queues assigned to a VF
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @num: number of LDB queues to assign to this VF
+ *
+ * This function assigns num LDB queues to the specified VF. If the VF already
+ * has LDB queues assigned, this existing assignment is adjusted
+ * accordingly.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid, or the requested number of resources are
+ * unavailable.
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_update_vf_ldb_queues(struct dlb_hw *hw, u32 vf_id, u32 num);
+
+/**
+ * dlb_update_vf_ldb_ports() - update the LDB ports assigned to a VF
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @num: number of LDB ports to assign to this VF
+ *
+ * This function assigns num LDB ports to the specified VF. If the VF already
+ * has LDB ports assigned, this existing assignment is adjusted accordingly.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid, or the requested number of resources are
+ * unavailable.
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_update_vf_ldb_ports(struct dlb_hw *hw, u32 vf_id, u32 num);
+
+/**
+ * dlb_update_vf_dir_ports() - update the DIR ports assigned to a VF
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @num: number of DIR ports to assign to this VF
+ *
+ * This function assigns num DIR ports to the specified VF. If the VF already
+ * has DIR ports assigned, this existing assignment is adjusted accordingly.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid, or the requested number of resources are
+ * unavailable.
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_update_vf_dir_ports(struct dlb_hw *hw, u32 vf_id, u32 num);
+
+/**
+ * dlb_update_vf_ldb_credit_pools() - update the VF's assigned LDB pools
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @num: number of LDB credit pools to assign to this VF
+ *
+ * This function assigns num LDB credit pools to the specified VF. If the VF
+ * already has LDB credit pools assigned, this existing assignment is adjusted
+ * accordingly.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid, or the requested number of resources are
+ * unavailable.
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_update_vf_ldb_credit_pools(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 num);
+
+/**
+ * dlb_update_vf_dir_credit_pools() - update the VF's assigned DIR pools
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @num: number of DIR credit pools to assign to this VF
+ *
+ * This function assigns num DIR credit pools to the specified VF. If the VF
+ * already has DIR credit pools assigned, this existing assignment is adjusted
+ * accordingly.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid, or the requested number of resources are
+ * unavailable.
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_update_vf_dir_credit_pools(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 num);
+
+/**
+ * dlb_update_vf_ldb_credits() - update the VF's assigned LDB credits
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @num: number of LDB credits to assign to this VF
+ *
+ * This function assigns num LDB credits to the specified VF. If the VF already
+ * has LDB credits assigned, this existing assignment is adjusted accordingly.
+ * VF's are assigned a contiguous chunk of credits, so this function may fail
+ * if a sufficiently large contiguous chunk is not available.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid, or the requested number of resources are
+ * unavailable.
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_update_vf_ldb_credits(struct dlb_hw *hw, u32 vf_id, u32 num);
+
+/**
+ * dlb_update_vf_dir_credits() - update the VF's assigned DIR credits
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @num: number of DIR credits to assign to this VF
+ *
+ * This function assigns num DIR credits to the specified VF. If the VF already
+ * has DIR credits assigned, this existing assignment is adjusted accordingly.
+ * VF's are assigned a contiguous chunk of credits, so this function may fail
+ * if a sufficiently large contiguous chunk is not available.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid, or the requested number of resources are
+ * unavailable.
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_update_vf_dir_credits(struct dlb_hw *hw, u32 vf_id, u32 num);
+
+/**
+ * dlb_update_vf_hist_list_entries() - update the VF's assigned HL entries
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @num: number of history list entries to assign to this VF
+ *
+ * This function assigns num history list entries to the specified VF. If the
+ * VF already has history list entries assigned, this existing assignment is
+ * adjusted accordingly. VF's are assigned a contiguous chunk of entries, so
+ * this function may fail if a sufficiently large contiguous chunk is not
+ * available.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid, or the requested number of resources are
+ * unavailable.
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_update_vf_hist_list_entries(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 num);
+
+/**
+ * dlb_update_vf_atomic_inflights() - update the VF's atomic inflights
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @num: number of atomic inflights to assign to this VF
+ *
+ * This function assigns num atomic inflights to the specified VF. If the VF
+ * already has atomic inflights assigned, this existing assignment is adjusted
+ * accordingly. VF's are assigned a contiguous chunk of entries, so this
+ * function may fail if a sufficiently large contiguous chunk is not available.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid, or the requested number of resources are
+ * unavailable.
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_update_vf_atomic_inflights(struct dlb_hw *hw,
+ u32 vf_id,
+ u32 num);
+
+/**
+ * dlb_reset_vf_resources() - reassign the VF's resources to the PF
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ *
+ * This function takes any resources currently assigned to the VF and reassigns
+ * them to the PF.
+ *
+ * Return:
+ * Returns 0 upon success, <0 otherwise.
+ *
+ * Errors:
+ * EINVAL - vf_id is invalid
+ * EPERM - The VF's resource assignment is locked and cannot be changed.
+ */
+int dlb_reset_vf_resources(struct dlb_hw *hw, unsigned int vf_id);
+
+/**
+ * dlb_notify_vf() - send a notification to a VF
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ * @notification: notification
+ *
+ * This function sends a notification (as defined in dlb_mbox.h) to a VF.
+ *
+ * Return:
+ * Returns 0 upon success, -1 if the VF doesn't ACK the PF->VF interrupt.
+ */
+int dlb_notify_vf(struct dlb_hw *hw,
+ unsigned int vf_id,
+ u32 notification);
+
+/**
+ * dlb_vf_in_use() - query whether a VF is in use
+ * @hw: dlb_hw handle for a particular device.
+ * @vf_id: VF ID
+ *
+ * This function sends a mailbox request to the VF to query whether the VF is in
+ * use.
+ *
+ * Return:
+ * Returns 0 for false, 1 for true, and -1 if the mailbox request times out or
+ * an internal error occurs.
+ */
+int dlb_vf_in_use(struct dlb_hw *hw, unsigned int vf_id);
+
+/**
+ * dlb_disable_dp_vasr_feature() - disable directed pipe VAS reset hardware
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function disables certain hardware in the directed pipe,
+ * necessary to workaround a DLB VAS reset issue.
+ */
+void dlb_disable_dp_vasr_feature(struct dlb_hw *hw);
+
+/**
+ * dlb_enable_excess_tokens_alarm() - enable interrupts for the excess token
+ * pop alarm
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function enables the PF ingress error alarm interrupt to fire when an
+ * excess token pop occurs.
+ */
+void dlb_enable_excess_tokens_alarm(struct dlb_hw *hw);
+
+/**
+ * dlb_disable_excess_tokens_alarm() - disable interrupts for the excess token
+ * pop alarm
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function disables the PF ingress error alarm interrupt to fire when an
+ * excess token pop occurs.
+ */
+void dlb_disable_excess_tokens_alarm(struct dlb_hw *hw);
+
+/**
+ * dlb_hw_get_ldb_queue_depth() - returns the depth of a load-balanced queue
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: queue depth args
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function returns the depth of a load-balanced queue.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error. If successful, resp->id
+ * contains the depth.
+ *
+ * Errors:
+ * EINVAL - Invalid domain ID or queue ID.
+ */
+int dlb_hw_get_ldb_queue_depth(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_get_ldb_queue_depth_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_get_dir_queue_depth() - returns the depth of a directed queue
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: queue depth args
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * This function returns the depth of a directed queue.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error. If successful, resp->id
+ * contains the depth.
+ *
+ * Errors:
+ * EINVAL - Invalid domain ID or queue ID.
+ */
+int dlb_hw_get_dir_queue_depth(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_get_dir_queue_depth_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_pending_port_unmaps() - returns the number of unmap operations in
+ * progress for a load-balanced port.
+ * @hw: dlb_hw handle for a particular device.
+ * @domain_id: domain ID.
+ * @args: number of unmaps in progress args
+ * @vf_request: indicates whether this request came from a VF.
+ * @vf_id: If vf_request is true, this contains the VF's ID.
+ *
+ * Return:
+ * Returns 0 upon success, < 0 otherwise. If an error occurs, resp->status is
+ * assigned a detailed error code from enum dlb_error. If successful, resp->id
+ * contains the number of unmaps in progress.
+ *
+ * Errors:
+ * EINVAL - Invalid port ID.
+ */
+int dlb_hw_pending_port_unmaps(struct dlb_hw *hw,
+ u32 domain_id,
+ struct dlb_pending_port_unmaps_args *args,
+ struct dlb_cmd_response *resp,
+ bool vf_request,
+ unsigned int vf_id);
+
+/**
+ * dlb_hw_enable_sparse_ldb_cq_mode() - enable sparse mode for load-balanced
+ * ports.
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function must be called prior to configuring scheduling domains.
+ */
+void dlb_hw_enable_sparse_ldb_cq_mode(struct dlb_hw *hw);
+
+/**
+ * dlb_hw_enable_sparse_dir_cq_mode() - enable sparse mode for directed ports
+ * @hw: dlb_hw handle for a particular device.
+ *
+ * This function must be called prior to configuring scheduling domains.
+ */
+void dlb_hw_enable_sparse_dir_cq_mode(struct dlb_hw *hw);
+
+/**
+ * dlb_hw_set_qe_arbiter_weights() - program QE arbiter weights
+ * @hw: dlb_hw handle for a particular device.
+ * @weight: 8-entry array of arbiter weights.
+ *
+ * weight[N] programs priority N's weight. In cases where the 8 priorities are
+ * reduced to 4 bins, the mapping is:
+ * - weight[1] programs bin 0
+ * - weight[3] programs bin 1
+ * - weight[5] programs bin 2
+ * - weight[7] programs bin 3
+ */
+void dlb_hw_set_qe_arbiter_weights(struct dlb_hw *hw, u8 weight[8]);
+
+/**
+ * dlb_hw_set_qid_arbiter_weights() - program QID arbiter weights
+ * @hw: dlb_hw handle for a particular device.
+ * @weight: 8-entry array of arbiter weights.
+ *
+ * weight[N] programs priority N's weight. In cases where the 8 priorities are
+ * reduced to 4 bins, the mapping is:
+ * - weight[1] programs bin 0
+ * - weight[3] programs bin 1
+ * - weight[5] programs bin 2
+ * - weight[7] programs bin 3
+ */
+void dlb_hw_set_qid_arbiter_weights(struct dlb_hw *hw, u8 weight[8]);
+
+/**
+ * dlb_hw_enable_pp_sw_alarms() - enable out-of-credit alarm for all producer
+ * ports
+ * @hw: dlb_hw handle for a particular device.
+ */
+void dlb_hw_enable_pp_sw_alarms(struct dlb_hw *hw);
+
+/**
+ * dlb_hw_disable_pp_sw_alarms() - disable out-of-credit alarm for all producer
+ * ports
+ * @hw: dlb_hw handle for a particular device.
+ */
+void dlb_hw_disable_pp_sw_alarms(struct dlb_hw *hw);
+
+/**
+ * dlb_hw_disable_pf_to_vf_isr_pend_err() - disable alarm triggered by PF
+ * access to VF's ISR pending register
+ * @hw: dlb_hw handle for a particular device.
+ */
+void dlb_hw_disable_pf_to_vf_isr_pend_err(struct dlb_hw *hw);
+
+/**
+ * dlb_hw_disable_vf_to_pf_isr_pend_err() - disable alarm triggered by VF
+ * access to PF's ISR pending register
+ * @hw: dlb_hw handle for a particular device.
+ */
+void dlb_hw_disable_vf_to_pf_isr_pend_err(struct dlb_hw *hw);
+
+#endif /* __DLB_RESOURCE_H */
diff --git a/drivers/event/dlb/pf/base/dlb_user.h b/drivers/event/dlb/pf/base/dlb_user.h
new file mode 100644
index 0000000..6e7ee2e
--- /dev/null
+++ b/drivers/event/dlb/pf/base/dlb_user.h
@@ -0,0 +1,1084 @@
+/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
+ * Copyright(c) 2016-2020 Intel Corporation
+ */
+
+#ifndef __DLB_USER_H
+#define __DLB_USER_H
+
+#define DLB_MAX_NAME_LEN 64
+
+#include "dlb_osdep_types.h"
+
+enum dlb_error {
+ DLB_ST_SUCCESS = 0,
+ DLB_ST_NAME_EXISTS,
+ DLB_ST_DOMAIN_UNAVAILABLE,
+ DLB_ST_LDB_PORTS_UNAVAILABLE,
+ DLB_ST_DIR_PORTS_UNAVAILABLE,
+ DLB_ST_LDB_QUEUES_UNAVAILABLE,
+ DLB_ST_LDB_CREDITS_UNAVAILABLE,
+ DLB_ST_DIR_CREDITS_UNAVAILABLE,
+ DLB_ST_LDB_CREDIT_POOLS_UNAVAILABLE,
+ DLB_ST_DIR_CREDIT_POOLS_UNAVAILABLE,
+ DLB_ST_SEQUENCE_NUMBERS_UNAVAILABLE,
+ DLB_ST_INVALID_DOMAIN_ID,
+ DLB_ST_INVALID_QID_INFLIGHT_ALLOCATION,
+ DLB_ST_ATOMIC_INFLIGHTS_UNAVAILABLE,
+ DLB_ST_HIST_LIST_ENTRIES_UNAVAILABLE,
+ DLB_ST_INVALID_LDB_CREDIT_POOL_ID,
+ DLB_ST_INVALID_DIR_CREDIT_POOL_ID,
+ DLB_ST_INVALID_POP_COUNT_VIRT_ADDR,
+ DLB_ST_INVALID_LDB_QUEUE_ID,
+ DLB_ST_INVALID_CQ_DEPTH,
+ DLB_ST_INVALID_CQ_VIRT_ADDR,
+ DLB_ST_INVALID_PORT_ID,
+ DLB_ST_INVALID_QID,
+ DLB_ST_INVALID_PRIORITY,
+ DLB_ST_NO_QID_SLOTS_AVAILABLE,
+ DLB_ST_QED_FREELIST_ENTRIES_UNAVAILABLE,
+ DLB_ST_DQED_FREELIST_ENTRIES_UNAVAILABLE,
+ DLB_ST_INVALID_DIR_QUEUE_ID,
+ DLB_ST_DIR_QUEUES_UNAVAILABLE,
+ DLB_ST_INVALID_LDB_CREDIT_LOW_WATERMARK,
+ DLB_ST_INVALID_LDB_CREDIT_QUANTUM,
+ DLB_ST_INVALID_DIR_CREDIT_LOW_WATERMARK,
+ DLB_ST_INVALID_DIR_CREDIT_QUANTUM,
+ DLB_ST_DOMAIN_NOT_CONFIGURED,
+ DLB_ST_PID_ALREADY_ATTACHED,
+ DLB_ST_PID_NOT_ATTACHED,
+ DLB_ST_INTERNAL_ERROR,
+ DLB_ST_DOMAIN_IN_USE,
+ DLB_ST_IOMMU_MAPPING_ERROR,
+ DLB_ST_FAIL_TO_PIN_MEMORY_PAGE,
+ DLB_ST_UNABLE_TO_PIN_POPCOUNT_PAGES,
+ DLB_ST_UNABLE_TO_PIN_CQ_PAGES,
+ DLB_ST_DISCONTIGUOUS_CQ_MEMORY,
+ DLB_ST_DISCONTIGUOUS_POP_COUNT_MEMORY,
+ DLB_ST_DOMAIN_STARTED,
+ DLB_ST_LARGE_POOL_NOT_SPECIFIED,
+ DLB_ST_SMALL_POOL_NOT_SPECIFIED,
+ DLB_ST_NEITHER_POOL_SPECIFIED,
+ DLB_ST_DOMAIN_NOT_STARTED,
+ DLB_ST_INVALID_MEASUREMENT_DURATION,
+ DLB_ST_INVALID_PERF_METRIC_GROUP_ID,
+ DLB_ST_LDB_PORT_REQUIRED_FOR_LDB_QUEUES,
+ DLB_ST_DOMAIN_RESET_FAILED,
+ DLB_ST_MBOX_ERROR,
+ DLB_ST_INVALID_HIST_LIST_DEPTH,
+ DLB_ST_NO_MEMORY,
+};
+
+static const char dlb_error_strings[][128] = {
+ "DLB_ST_SUCCESS",
+ "DLB_ST_NAME_EXISTS",
+ "DLB_ST_DOMAIN_UNAVAILABLE",
+ "DLB_ST_LDB_PORTS_UNAVAILABLE",
+ "DLB_ST_DIR_PORTS_UNAVAILABLE",
+ "DLB_ST_LDB_QUEUES_UNAVAILABLE",
+ "DLB_ST_LDB_CREDITS_UNAVAILABLE",
+ "DLB_ST_DIR_CREDITS_UNAVAILABLE",
+ "DLB_ST_LDB_CREDIT_POOLS_UNAVAILABLE",
+ "DLB_ST_DIR_CREDIT_POOLS_UNAVAILABLE",
+ "DLB_ST_SEQUENCE_NUMBERS_UNAVAILABLE",
+ "DLB_ST_INVALID_DOMAIN_ID",
+ "DLB_ST_INVALID_QID_INFLIGHT_ALLOCATION",
+ "DLB_ST_ATOMIC_INFLIGHTS_UNAVAILABLE",
+ "DLB_ST_HIST_LIST_ENTRIES_UNAVAILABLE",
+ "DLB_ST_INVALID_LDB_CREDIT_POOL_ID",
+ "DLB_ST_INVALID_DIR_CREDIT_POOL_ID",
+ "DLB_ST_INVALID_POP_COUNT_VIRT_ADDR",
+ "DLB_ST_INVALID_LDB_QUEUE_ID",
+ "DLB_ST_INVALID_CQ_DEPTH",
+ "DLB_ST_INVALID_CQ_VIRT_ADDR",
+ "DLB_ST_INVALID_PORT_ID",
+ "DLB_ST_INVALID_QID",
+ "DLB_ST_INVALID_PRIORITY",
+ "DLB_ST_NO_QID_SLOTS_AVAILABLE",
+ "DLB_ST_QED_FREELIST_ENTRIES_UNAVAILABLE",
+ "DLB_ST_DQED_FREELIST_ENTRIES_UNAVAILABLE",
+ "DLB_ST_INVALID_DIR_QUEUE_ID",
+ "DLB_ST_DIR_QUEUES_UNAVAILABLE",
+ "DLB_ST_INVALID_LDB_CREDIT_LOW_WATERMARK",
+ "DLB_ST_INVALID_LDB_CREDIT_QUANTUM",
+ "DLB_ST_INVALID_DIR_CREDIT_LOW_WATERMARK",
+ "DLB_ST_INVALID_DIR_CREDIT_QUANTUM",
+ "DLB_ST_DOMAIN_NOT_CONFIGURED",
+ "DLB_ST_PID_ALREADY_ATTACHED",
+ "DLB_ST_PID_NOT_ATTACHED",
+ "DLB_ST_INTERNAL_ERROR",
+ "DLB_ST_DOMAIN_IN_USE",
+ "DLB_ST_IOMMU_MAPPING_ERROR",
+ "DLB_ST_FAIL_TO_PIN_MEMORY_PAGE",
+ "DLB_ST_UNABLE_TO_PIN_POPCOUNT_PAGES",
+ "DLB_ST_UNABLE_TO_PIN_CQ_PAGES",
+ "DLB_ST_DISCONTIGUOUS_CQ_MEMORY",
+ "DLB_ST_DISCONTIGUOUS_POP_COUNT_MEMORY",
+ "DLB_ST_DOMAIN_STARTED",
+ "DLB_ST_LARGE_POOL_NOT_SPECIFIED",
+ "DLB_ST_SMALL_POOL_NOT_SPECIFIED",
+ "DLB_ST_NEITHER_POOL_SPECIFIED",
+ "DLB_ST_DOMAIN_NOT_STARTED",
+ "DLB_ST_INVALID_MEASUREMENT_DURATION",
+ "DLB_ST_INVALID_PERF_METRIC_GROUP_ID",
+ "DLB_ST_LDB_PORT_REQUIRED_FOR_LDB_QUEUES",
+ "DLB_ST_DOMAIN_RESET_FAILED",
+ "DLB_ST_MBOX_ERROR",
+ "DLB_ST_INVALID_HIST_LIST_DEPTH",
+ "DLB_ST_NO_MEMORY",
+};
+
+struct dlb_cmd_response {
+ __u32 status; /* Interpret using enum dlb_error */
+ __u32 id;
+};
+
+/******************************/
+/* 'dlb' device file commands */
+/******************************/
+
+#define DLB_DEVICE_VERSION(x) (((x) >> 8) & 0xFF)
+#define DLB_DEVICE_REVISION(x) ((x) & 0xFF)
+
+enum dlb_revisions {
+ DLB_REV_A0 = 0,
+ DLB_REV_A1 = 1,
+ DLB_REV_A2 = 2,
+ DLB_REV_A3 = 3,
+ DLB_REV_B0 = 4,
+};
+
+/*
+ * DLB_CMD_GET_DEVICE_VERSION: Query the DLB device version.
+ *
+ * This ioctl interface is the same in all driver versions and is always
+ * the first ioctl.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id[7:0]: Device revision.
+ * response.id[15:8]: Device version.
+ */
+
+struct dlb_get_device_version_args {
+ /* Output parameters */
+ __u64 response;
+};
+
+#define DLB_VERSION_MAJOR_NUMBER 10
+#define DLB_VERSION_MINOR_NUMBER 7
+#define DLB_VERSION_REVISION_NUMBER 9
+#define DLB_VERSION (DLB_VERSION_MAJOR_NUMBER << 24 | \
+ DLB_VERSION_MINOR_NUMBER << 16 | \
+ DLB_VERSION_REVISION_NUMBER)
+
+#define DLB_VERSION_GET_MAJOR_NUMBER(x) (((x) >> 24) & 0xFF)
+#define DLB_VERSION_GET_MINOR_NUMBER(x) (((x) >> 16) & 0xFF)
+#define DLB_VERSION_GET_REVISION_NUMBER(x) ((x) & 0xFFFF)
+
+static inline __u8 dlb_version_incompatible(__u32 version)
+{
+ __u8 inc;
+
+ inc = DLB_VERSION_GET_MAJOR_NUMBER(version) != DLB_VERSION_MAJOR_NUMBER;
+ inc |= (int)DLB_VERSION_GET_MINOR_NUMBER(version) <
+ DLB_VERSION_MINOR_NUMBER;
+
+ return inc;
+}
+
+/*
+ * DLB_CMD_GET_DRIVER_VERSION: Query the DLB driver version. The major number
+ * is changed when there is an ABI-breaking change, the minor number is
+ * changed if the API is changed in a backwards-compatible way, and the
+ * revision number is changed for fixes that don't affect the API.
+ *
+ * If the kernel driver's API version major number and the header's
+ * DLB_VERSION_MAJOR_NUMBER differ, the two are incompatible, or if the
+ * major numbers match but the kernel driver's minor number is less than
+ * the header file's, they are incompatible. The DLB_VERSION_INCOMPATIBLE
+ * macro should be used to check for compatibility.
+ *
+ * This ioctl interface is the same in all driver versions. Applications
+ * should check the driver version before performing any other ioctl
+ * operations.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Driver API version. Use the DLB_VERSION_GET_MAJOR_NUMBER,
+ * DLB_VERSION_GET_MINOR_NUMBER, and
+ * DLB_VERSION_GET_REVISION_NUMBER macros to interpret the field.
+ */
+
+struct dlb_get_driver_version_args {
+ /* Output parameters */
+ __u64 response;
+};
+
+/*
+ * DLB_CMD_CREATE_SCHED_DOMAIN: Create a DLB scheduling domain and reserve the
+ * resources (queues, ports, etc.) that it contains.
+ *
+ * Input parameters:
+ * - num_ldb_queues: Number of load-balanced queues.
+ * - num_ldb_ports: Number of load-balanced ports.
+ * - num_dir_ports: Number of directed ports. A directed port has one directed
+ * queue, so no num_dir_queues argument is necessary.
+ * - num_atomic_inflights: This specifies the amount of temporary atomic QE
+ * storage for the domain. This storage is divided among the domain's
+ * load-balanced queues that are configured for atomic scheduling.
+ * - num_hist_list_entries: Amount of history list storage. This is divided
+ * among the domain's CQs.
+ * - num_ldb_credits: Amount of load-balanced QE storage (QED). QEs occupy this
+ * space until they are scheduled to a load-balanced CQ. One credit
+ * represents the storage for one QE.
+ * - num_dir_credits: Amount of directed QE storage (DQED). QEs occupy this
+ * space until they are scheduled to a directed CQ. One credit represents
+ * the storage for one QE.
+ * - num_ldb_credit_pools: Number of pools into which the load-balanced credits
+ * are placed.
+ * - num_dir_credit_pools: Number of pools into which the directed credits are
+ * placed.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: domain ID.
+ */
+struct dlb_create_sched_domain_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 num_ldb_queues;
+ __u32 num_ldb_ports;
+ __u32 num_dir_ports;
+ __u32 num_atomic_inflights;
+ __u32 num_hist_list_entries;
+ __u32 num_ldb_credits;
+ __u32 num_dir_credits;
+ __u32 num_ldb_credit_pools;
+ __u32 num_dir_credit_pools;
+};
+
+/*
+ * DLB_CMD_GET_NUM_RESOURCES: Return the number of available resources
+ * (queues, ports, etc.) that this device owns.
+ *
+ * Output parameters:
+ * - num_domains: Number of available scheduling domains.
+ * - num_ldb_queues: Number of available load-balanced queues.
+ * - num_ldb_ports: Number of available load-balanced ports.
+ * - num_dir_ports: Number of available directed ports. There is one directed
+ * queue for every directed port.
+ * - num_atomic_inflights: Amount of available temporary atomic QE storage.
+ * - max_contiguous_atomic_inflights: When a domain is created, the temporary
+ * atomic QE storage is allocated in a contiguous chunk. This return value
+ * is the longest available contiguous range of atomic QE storage.
+ * - num_hist_list_entries: Amount of history list storage.
+ * - max_contiguous_hist_list_entries: History list storage is allocated in
+ * a contiguous chunk, and this return value is the longest available
+ * contiguous range of history list entries.
+ * - num_ldb_credits: Amount of available load-balanced QE storage.
+ * - max_contiguous_ldb_credits: QED storage is allocated in a contiguous
+ * chunk, and this return value is the longest available contiguous range
+ * of load-balanced credit storage.
+ * - num_dir_credits: Amount of available directed QE storage.
+ * - max_contiguous_dir_credits: DQED storage is allocated in a contiguous
+ * chunk, and this return value is the longest available contiguous range
+ * of directed credit storage.
+ * - num_ldb_credit_pools: Number of available load-balanced credit pools.
+ * - num_dir_credit_pools: Number of available directed credit pools.
+ * - padding0: Reserved for future use.
+ */
+struct dlb_get_num_resources_args {
+ /* Output parameters */
+ __u32 num_sched_domains;
+ __u32 num_ldb_queues;
+ __u32 num_ldb_ports;
+ __u32 num_dir_ports;
+ __u32 num_atomic_inflights;
+ __u32 max_contiguous_atomic_inflights;
+ __u32 num_hist_list_entries;
+ __u32 max_contiguous_hist_list_entries;
+ __u32 num_ldb_credits;
+ __u32 max_contiguous_ldb_credits;
+ __u32 num_dir_credits;
+ __u32 max_contiguous_dir_credits;
+ __u32 num_ldb_credit_pools;
+ __u32 num_dir_credit_pools;
+ __u32 padding0;
+};
+
+/*
+ * DLB_CMD_SET_SN_ALLOCATION: Configure a sequence number group
+ *
+ * Input parameters:
+ * - group: Sequence number group ID.
+ * - num: Number of sequence numbers per queue.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_set_sn_allocation_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 group;
+ __u32 num;
+};
+
+/*
+ * DLB_CMD_GET_SN_ALLOCATION: Get a sequence number group's configuration
+ *
+ * Input parameters:
+ * - group: Sequence number group ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Specified group's number of sequence numbers per queue.
+ */
+struct dlb_get_sn_allocation_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 group;
+ __u32 padding0;
+};
+
+/*
+ * DLB_CMD_QUERY_CQ_POLL_MODE: Query the CQ poll mode the kernel driver is using
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: CQ poll mode (see enum dlb_cq_poll_modes).
+ */
+struct dlb_query_cq_poll_mode_args {
+ /* Output parameters */
+ __u64 response;
+};
+
+enum dlb_cq_poll_modes {
+ DLB_CQ_POLL_MODE_STD,
+ DLB_CQ_POLL_MODE_SPARSE,
+
+ /* NUM_DLB_CQ_POLL_MODE must be last */
+ NUM_DLB_CQ_POLL_MODE,
+};
+
+/*
+ * DLB_CMD_GET_SN_OCCUPANCY: Get a sequence number group's occupancy
+ *
+ * Each sequence number group has one or more slots, depending on its
+ * configuration. I.e.:
+ * - If configured for 1024 sequence numbers per queue, the group has 1 slot
+ * - If configured for 512 sequence numbers per queue, the group has 2 slots
+ * ...
+ * - If configured for 32 sequence numbers per queue, the group has 32 slots
+ *
+ * This ioctl returns the group's number of in-use slots. If its occupancy is
+ * 0, the group's sequence number allocation can be reconfigured.
+ *
+ * Input parameters:
+ * - group: Sequence number group ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Specified group's number of used slots.
+ */
+struct dlb_get_sn_occupancy_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 group;
+ __u32 padding0;
+};
+
+enum dlb_user_interface_commands {
+ DLB_CMD_GET_DEVICE_VERSION,
+ DLB_CMD_CREATE_SCHED_DOMAIN,
+ DLB_CMD_GET_NUM_RESOURCES,
+ DLB_CMD_GET_DRIVER_VERSION,
+ DLB_CMD_SAMPLE_PERF_COUNTERS,
+ DLB_CMD_SET_SN_ALLOCATION,
+ DLB_CMD_GET_SN_ALLOCATION,
+ DLB_CMD_MEASURE_SCHED_COUNTS,
+ DLB_CMD_QUERY_CQ_POLL_MODE,
+ DLB_CMD_GET_SN_OCCUPANCY,
+
+ /* NUM_DLB_CMD must be last */
+ NUM_DLB_CMD,
+};
+
+/*******************************/
+/* 'domain' device file alerts */
+/*******************************/
+
+/* Scheduling domain device files can be read to receive domain-specific
+ * notifications, for alerts such as hardware errors.
+ *
+ * Each alert is encoded in a 16B message. The first 8B contains the alert ID,
+ * and the second 8B is optional and contains additional information.
+ * Applications should cast read data to a struct dlb_domain_alert, and
+ * interpret the struct's alert_id according to dlb_domain_alert_id. The read
+ * length must be 16B, or the function will return -EINVAL.
+ *
+ * Reads are destructive, and in the case of multiple file descriptors for the
+ * same domain device file, an alert will be read by only one of the file
+ * descriptors.
+ *
+ * The driver stores alerts in a fixed-size alert ring until they are read. If
+ * the alert ring fills completely, subsequent alerts will be dropped. It is
+ * recommended that DLB applications dedicate a thread to perform blocking
+ * reads on the device file.
+ */
+enum dlb_domain_alert_id {
+ /* A destination domain queue that this domain connected to has
+ * unregistered, and can no longer be sent to. The aux alert data
+ * contains the queue ID.
+ */
+ DLB_DOMAIN_ALERT_REMOTE_QUEUE_UNREGISTER,
+ /* A producer port in this domain attempted to send a QE without a
+ * credit. aux_alert_data[7:0] contains the port ID, and
+ * aux_alert_data[15:8] contains a flag indicating whether the port is
+ * load-balanced (1) or directed (0).
+ */
+ DLB_DOMAIN_ALERT_PP_OUT_OF_CREDITS,
+ /* Software issued an illegal enqueue for a port in this domain. An
+ * illegal enqueue could be:
+ * - Illegal (excess) completion
+ * - Illegal fragment
+ * - Illegal enqueue command
+ * aux_alert_data[7:0] contains the port ID, and aux_alert_data[15:8]
+ * contains a flag indicating whether the port is load-balanced (1) or
+ * directed (0).
+ */
+ DLB_DOMAIN_ALERT_PP_ILLEGAL_ENQ,
+ /* Software issued excess CQ token pops for a port in this domain.
+ * aux_alert_data[7:0] contains the port ID, and aux_alert_data[15:8]
+ * contains a flag indicating whether the port is load-balanced (1) or
+ * directed (0).
+ */
+ DLB_DOMAIN_ALERT_PP_EXCESS_TOKEN_POPS,
+ /* A enqueue contained either an invalid command encoding or a REL,
+ * REL_T, RLS, FWD, FWD_T, FRAG, or FRAG_T from a directed port.
+ *
+ * aux_alert_data[7:0] contains the port ID, and aux_alert_data[15:8]
+ * contains a flag indicating whether the port is load-balanced (1) or
+ * directed (0).
+ */
+ DLB_DOMAIN_ALERT_ILLEGAL_HCW,
+ /* The QID must be valid and less than 128.
+ *
+ * aux_alert_data[7:0] contains the port ID, and aux_alert_data[15:8]
+ * contains a flag indicating whether the port is load-balanced (1) or
+ * directed (0).
+ */
+ DLB_DOMAIN_ALERT_ILLEGAL_QID,
+ /* An enqueue went to a disabled QID.
+ *
+ * aux_alert_data[7:0] contains the port ID, and aux_alert_data[15:8]
+ * contains a flag indicating whether the port is load-balanced (1) or
+ * directed (0).
+ */
+ DLB_DOMAIN_ALERT_DISABLED_QID,
+ /* The device containing this domain was reset. All applications using
+ * the device need to exit for the driver to complete the reset
+ * procedure.
+ *
+ * aux_alert_data doesn't contain any information for this alert.
+ */
+ DLB_DOMAIN_ALERT_DEVICE_RESET,
+ /* User-space has enqueued an alert.
+ *
+ * aux_alert_data contains user-provided data.
+ */
+ DLB_DOMAIN_ALERT_USER,
+
+ /* Number of DLB domain alerts */
+ NUM_DLB_DOMAIN_ALERTS
+};
+
+static const char dlb_domain_alert_strings[][128] = {
+ "DLB_DOMAIN_ALERT_REMOTE_QUEUE_UNREGISTER",
+ "DLB_DOMAIN_ALERT_PP_OUT_OF_CREDITS",
+ "DLB_DOMAIN_ALERT_PP_ILLEGAL_ENQ",
+ "DLB_DOMAIN_ALERT_PP_EXCESS_TOKEN_POPS",
+ "DLB_DOMAIN_ALERT_ILLEGAL_HCW",
+ "DLB_DOMAIN_ALERT_ILLEGAL_QID",
+ "DLB_DOMAIN_ALERT_DISABLED_QID",
+ "DLB_DOMAIN_ALERT_DEVICE_RESET",
+ "DLB_DOMAIN_ALERT_USER",
+};
+
+struct dlb_domain_alert {
+ __u64 alert_id;
+ __u64 aux_alert_data;
+};
+
+/*********************************/
+/* 'domain' device file commands */
+/*********************************/
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_LDB_POOL: Configure a load-balanced credit pool.
+ * Input parameters:
+ * - num_ldb_credits: Number of load-balanced credits (QED space) for this
+ * pool.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: pool ID.
+ */
+struct dlb_create_ldb_pool_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 num_ldb_credits;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_DIR_POOL: Configure a directed credit pool.
+ * Input parameters:
+ * - num_dir_credits: Number of directed credits (DQED space) for this pool.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Pool ID.
+ */
+struct dlb_create_dir_pool_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 num_dir_credits;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_LDB_QUEUE: Configure a load-balanced queue.
+ * Input parameters:
+ * - num_atomic_inflights: This specifies the amount of temporary atomic QE
+ * storage for this queue. If zero, the queue will not support atomic
+ * scheduling.
+ * - num_sequence_numbers: This specifies the number of sequence numbers used
+ * by this queue. If zero, the queue will not support ordered scheduling.
+ * If non-zero, the queue will not support unordered scheduling.
+ * - num_qid_inflights: The maximum number of QEs that can be inflight
+ * (scheduled to a CQ but not completed) at any time. If
+ * num_sequence_numbers is non-zero, num_qid_inflights must be set equal
+ * to num_sequence_numbers.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Queue ID.
+ */
+struct dlb_create_ldb_queue_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 num_sequence_numbers;
+ __u32 num_qid_inflights;
+ __u32 num_atomic_inflights;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_DIR_QUEUE: Configure a directed queue.
+ * Input parameters:
+ * - port_id: Port ID. If the corresponding directed port is already created,
+ * specify its ID here. Else this argument must be 0xFFFFFFFF to indicate
+ * that the queue is being created before the port.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Queue ID.
+ */
+struct dlb_create_dir_queue_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __s32 port_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_LDB_PORT: Configure a load-balanced port.
+ * Input parameters:
+ * - ldb_credit_pool_id: Load-balanced credit pool this port will belong to.
+ * - dir_credit_pool_id: Directed credit pool this port will belong to.
+ * - ldb_credit_high_watermark: Number of load-balanced credits from the pool
+ * that this port will own.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_high_watermark: Number of directed credits from the pool that
+ * this port will own.
+ *
+ * If this port's scheduling domain doesn't have any directed queues,
+ * this argument is ignored and the port is given no directed credits.
+ * - ldb_credit_low_watermark: Load-balanced credit low watermark. When the
+ * port's credits reach this watermark, they become eligible to be
+ * refilled by the DLB as credits until the high watermark
+ * (num_ldb_credits) is reached.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_low_watermark: Directed credit low watermark. When the port's
+ * credits reach this watermark, they become eligible to be refilled by
+ * the DLB as credits until the high watermark (num_dir_credits) is
+ * reached.
+ *
+ * If this port's scheduling domain doesn't have any directed queues,
+ * this argument is ignored and the port is given no directed credits.
+ * - ldb_credit_quantum: Number of load-balanced credits for the DLB to refill
+ * per refill operation.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_quantum: Number of directed credits for the DLB to refill per
+ * refill operation.
+ *
+ * If this port's scheduling domain doesn't have any directed queues,
+ * this argument is ignored and the port is given no directed credits.
+ * - padding0: Reserved for future use.
+ * - cq_depth: Depth of the port's CQ. Must be a power-of-two between 8 and
+ * 1024, inclusive.
+ * - cq_depth_threshold: CQ depth interrupt threshold. A value of N means that
+ * the CQ interrupt won't fire until there are N or more outstanding CQ
+ * tokens.
+ * - cq_history_list_size: Number of history list entries. This must be greater
+ * than or equal to cq_depth.
+ * - padding1: Reserved for future use.
+ * - padding2: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: port ID.
+ */
+struct dlb_create_ldb_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 ldb_credit_pool_id;
+ __u32 dir_credit_pool_id;
+ __u16 ldb_credit_high_watermark;
+ __u16 ldb_credit_low_watermark;
+ __u16 ldb_credit_quantum;
+ __u16 dir_credit_high_watermark;
+ __u16 dir_credit_low_watermark;
+ __u16 dir_credit_quantum;
+ __u16 padding0;
+ __u16 cq_depth;
+ __u16 cq_depth_threshold;
+ __u16 cq_history_list_size;
+ __u32 padding1;
+};
+
+/*
+ * DLB_DOMAIN_CMD_CREATE_DIR_PORT: Configure a directed port.
+ * Input parameters:
+ * - ldb_credit_pool_id: Load-balanced credit pool this port will belong to.
+ * - dir_credit_pool_id: Directed credit pool this port will belong to.
+ * - ldb_credit_high_watermark: Number of load-balanced credits from the pool
+ * that this port will own.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_high_watermark: Number of directed credits from the pool that
+ * this port will own.
+ * - ldb_credit_low_watermark: Load-balanced credit low watermark. When the
+ * port's credits reach this watermark, they become eligible to be
+ * refilled by the DLB as credits until the high watermark
+ * (num_ldb_credits) is reached.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_low_watermark: Directed credit low watermark. When the port's
+ * credits reach this watermark, they become eligible to be refilled by
+ * the DLB as credits until the high watermark (num_dir_credits) is
+ * reached.
+ * - ldb_credit_quantum: Number of load-balanced credits for the DLB to refill
+ * per refill operation.
+ *
+ * If this port's scheduling domain doesn't have any load-balanced queues,
+ * this argument is ignored and the port is given no load-balanced
+ * credits.
+ * - dir_credit_quantum: Number of directed credits for the DLB to refill per
+ * refill operation.
+ * - cq_depth: Depth of the port's CQ. Must be a power-of-two between 8 and
+ * 1024, inclusive.
+ * - cq_depth_threshold: CQ depth interrupt threshold. A value of N means that
+ * the CQ interrupt won't fire until there are N or more outstanding CQ
+ * tokens.
+ * - qid: Queue ID. If the corresponding directed queue is already created,
+ * specify its ID here. Else this argument must be 0xFFFFFFFF to indicate
+ * that the port is being created before the queue.
+ * - padding1: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: Port ID.
+ */
+struct dlb_create_dir_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 ldb_credit_pool_id;
+ __u32 dir_credit_pool_id;
+ __u16 ldb_credit_high_watermark;
+ __u16 ldb_credit_low_watermark;
+ __u16 ldb_credit_quantum;
+ __u16 dir_credit_high_watermark;
+ __u16 dir_credit_low_watermark;
+ __u16 dir_credit_quantum;
+ __u16 cq_depth;
+ __u16 cq_depth_threshold;
+ __s32 queue_id;
+ __u32 padding1;
+};
+
+/*
+ * DLB_DOMAIN_CMD_START_DOMAIN: Mark the end of the domain configuration. This
+ * must be called before passing QEs into the device, and no configuration
+ * ioctls can be issued once the domain has started. Sending QEs into the
+ * device before calling this ioctl will result in undefined behavior.
+ * Input parameters:
+ * - (None)
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_start_domain_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+};
+
+/*
+ * DLB_DOMAIN_CMD_MAP_QID: Map a load-balanced queue to a load-balanced port.
+ * Input parameters:
+ * - port_id: Load-balanced port ID.
+ * - qid: Load-balanced queue ID.
+ * - priority: Queue->port service priority.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_map_qid_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 qid;
+ __u32 priority;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_UNMAP_QID: Unmap a load-balanced queue to a load-balanced
+ * port.
+ * Input parameters:
+ * - port_id: Load-balanced port ID.
+ * - qid: Load-balanced queue ID.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_unmap_qid_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 qid;
+};
+
+/*
+ * DLB_DOMAIN_CMD_ENABLE_LDB_PORT: Enable scheduling to a load-balanced port.
+ * Input parameters:
+ * - port_id: Load-balanced port ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_enable_ldb_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_ENABLE_DIR_PORT: Enable scheduling to a directed port.
+ * Input parameters:
+ * - port_id: Directed port ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_enable_dir_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+};
+
+/*
+ * DLB_DOMAIN_CMD_DISABLE_LDB_PORT: Disable scheduling to a load-balanced port.
+ * Input parameters:
+ * - port_id: Load-balanced port ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_disable_ldb_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_DISABLE_DIR_PORT: Disable scheduling to a directed port.
+ * Input parameters:
+ * - port_id: Directed port ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_disable_dir_port_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_BLOCK_ON_CQ_INTERRUPT: Block on a CQ interrupt until a QE
+ * arrives for the specified port. If a QE is already present, the ioctl
+ * will immediately return.
+ *
+ * Note: Only one thread can block on a CQ's interrupt at a time. Doing
+ * otherwise can result in hung threads.
+ *
+ * Input parameters:
+ * - port_id: Port ID.
+ * - is_ldb: True if the port is load-balanced, false otherwise.
+ * - arm: Tell the driver to arm the interrupt.
+ * - cq_gen: Current CQ generation bit.
+ * - padding0: Reserved for future use.
+ * - cq_va: VA of the CQ entry where the next QE will be placed.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_block_on_cq_interrupt_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u8 is_ldb;
+ __u8 arm;
+ __u8 cq_gen;
+ __u8 padding0;
+ __u64 cq_va;
+};
+
+/*
+ * DLB_DOMAIN_CMD_ENQUEUE_DOMAIN_ALERT: Enqueue a domain alert that will be
+ * read by one reader thread.
+ *
+ * Input parameters:
+ * - aux_alert_data: user-defined auxiliary data.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ */
+struct dlb_enqueue_domain_alert_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u64 aux_alert_data;
+};
+
+/*
+ * DLB_DOMAIN_CMD_GET_LDB_QUEUE_DEPTH: Get a load-balanced queue's depth.
+ * Input parameters:
+ * - queue_id: The load-balanced queue ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: queue depth.
+ */
+struct dlb_get_ldb_queue_depth_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 queue_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_GET_DIR_QUEUE_DEPTH: Get a directed queue's depth.
+ * Input parameters:
+ * - queue_id: The directed queue ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: queue depth.
+ */
+struct dlb_get_dir_queue_depth_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 queue_id;
+ __u32 padding0;
+};
+
+/*
+ * DLB_DOMAIN_CMD_PENDING_PORT_UNMAPS: Get number of queue unmap operations in
+ * progress for a load-balanced port.
+ *
+ * Note: This is a snapshot; the number of unmap operations in progress
+ * is subject to change at any time.
+ *
+ * Input parameters:
+ * - port_id: Load-balanced port ID.
+ * - padding0: Reserved for future use.
+ *
+ * Output parameters:
+ * - response: pointer to a struct dlb_cmd_response.
+ * response.status: Detailed error code. In certain cases, such as if the
+ * response pointer is invalid, the driver won't set status.
+ * response.id: number of unmaps in progress.
+ */
+struct dlb_pending_port_unmaps_args {
+ /* Output parameters */
+ __u64 response;
+ /* Input parameters */
+ __u32 port_id;
+ __u32 padding0;
+};
+
+enum dlb_domain_user_interface_commands {
+ DLB_DOMAIN_CMD_CREATE_LDB_POOL,
+ DLB_DOMAIN_CMD_CREATE_DIR_POOL,
+ DLB_DOMAIN_CMD_CREATE_LDB_QUEUE,
+ DLB_DOMAIN_CMD_CREATE_DIR_QUEUE,
+ DLB_DOMAIN_CMD_CREATE_LDB_PORT,
+ DLB_DOMAIN_CMD_CREATE_DIR_PORT,
+ DLB_DOMAIN_CMD_START_DOMAIN,
+ DLB_DOMAIN_CMD_MAP_QID,
+ DLB_DOMAIN_CMD_UNMAP_QID,
+ DLB_DOMAIN_CMD_ENABLE_LDB_PORT,
+ DLB_DOMAIN_CMD_ENABLE_DIR_PORT,
+ DLB_DOMAIN_CMD_DISABLE_LDB_PORT,
+ DLB_DOMAIN_CMD_DISABLE_DIR_PORT,
+ DLB_DOMAIN_CMD_BLOCK_ON_CQ_INTERRUPT,
+ DLB_DOMAIN_CMD_ENQUEUE_DOMAIN_ALERT,
+ DLB_DOMAIN_CMD_GET_LDB_QUEUE_DEPTH,
+ DLB_DOMAIN_CMD_GET_DIR_QUEUE_DEPTH,
+ DLB_DOMAIN_CMD_PENDING_PORT_UNMAPS,
+
+ /* NUM_DLB_DOMAIN_CMD must be last */
+ NUM_DLB_DOMAIN_CMD,
+};
+
+/*
+ * Base addresses for memory mapping the consumer queue (CQ) and popcount (PC)
+ * memory space, and producer port (PP) MMIO space. The CQ, PC, and PP
+ * addresses are per-port. Every address is page-separated (e.g. LDB PP 0 is at
+ * 0x2100000 and LDB PP 1 is at 0x2101000).
+ */
+#define DLB_LDB_CQ_BASE 0x3000000
+#define DLB_LDB_CQ_MAX_SIZE 65536
+#define DLB_LDB_CQ_OFFS(id) (DLB_LDB_CQ_BASE + (id) * DLB_LDB_CQ_MAX_SIZE)
+
+#define DLB_DIR_CQ_BASE 0x3800000
+#define DLB_DIR_CQ_MAX_SIZE 65536
+#define DLB_DIR_CQ_OFFS(id) (DLB_DIR_CQ_BASE + (id) * DLB_DIR_CQ_MAX_SIZE)
+
+#define DLB_LDB_PC_BASE 0x2300000
+#define DLB_LDB_PC_MAX_SIZE 4096
+#define DLB_LDB_PC_OFFS(id) (DLB_LDB_PC_BASE + (id) * DLB_LDB_PC_MAX_SIZE)
+
+#define DLB_DIR_PC_BASE 0x2200000
+#define DLB_DIR_PC_MAX_SIZE 4096
+#define DLB_DIR_PC_OFFS(id) (DLB_DIR_PC_BASE + (id) * DLB_DIR_PC_MAX_SIZE)
+
+#define DLB_LDB_PP_BASE 0x2100000
+#define DLB_LDB_PP_MAX_SIZE 4096
+#define DLB_LDB_PP_OFFS(id) (DLB_LDB_PP_BASE + (id) * DLB_LDB_PP_MAX_SIZE)
+
+#define DLB_DIR_PP_BASE 0x2000000
+#define DLB_DIR_PP_MAX_SIZE 4096
+#define DLB_DIR_PP_OFFS(id) (DLB_DIR_PP_BASE + (id) * DLB_DIR_PP_MAX_SIZE)
+
+#endif /* __DLB_USER_H */
--
1.7.10
^ permalink raw reply [relevance 1%]
* Re: [dpdk-dev] [PATCH] doc: announce changes to eventdev public data structures
@ 2020-07-30 18:48 3% ` Jerin Jacob
0 siblings, 0 replies; 200+ results
From: Jerin Jacob @ 2020-07-30 18:48 UTC (permalink / raw)
To: McDaniel, Timothy
Cc: dev, jerinj, Eads, Gage, Van Haaren, Harry, mdr, nhorman, Rao,
Nikhil, Carrillo, Erik G, Gujjar, Abhinandan S, pbhagavatula,
hemant.agrawal, mattias.ronnblom, Mccarthy, Peter
On Thu, Jul 30, 2020 at 10:03 PM McDaniel, Timothy
<timothy.mcdaniel@intel.com> wrote:
>
>
> >-----Original Message-----
> >From: McDaniel, Timothy <timothy.mcdaniel@intel.com>
> >Sent: Thursday, July 2, 2020 5:14 PM
> >To: dev@dpdk.org
> >Cc: jerinj@marvell.com; Eads, Gage <gage.eads@intel.com>; Van Haaren, Harry
> ><harry.van.haaren@intel.com>; mdr@ashroe.eu; nhorman@tuxdriver.com; Rao,
> >Nikhil <nikhil.rao@intel.com>; Carrillo, Erik G <Erik.G.Carrillo@intel.com>; Gujjar,
> >Abhinandan S <abhinandan.gujjar@intel.com>; pbhagavatula@marvell.com;
> >hemant.agrawal@nxp.com; mattias.ronnblom@ericsson.com; Mccarthy, Peter
> ><Peter.Mccarthy@intel.com>; McDaniel, Timothy
> ><timothy.mcdaniel@intel.com>
> >Subject: [PATCH] doc: announce changes to eventdev public data structures
> >
> >From: "McDaniel, Timothy" <timothy.mcdaniel@intel.com>
> >
> >Signed-off-by: McDaniel, Timothy <timothy.mcdaniel@intel.com>
> >---
> > doc/guides/rel_notes/deprecation.rst | 28 ++++++++++++++++++++++++++++
> > 1 file changed, 28 insertions(+)
> >
> >diff --git a/doc/guides/rel_notes/deprecation.rst
> >b/doc/guides/rel_notes/deprecation.rst
> >index d1034f6..6af9b40 100644
> >--- a/doc/guides/rel_notes/deprecation.rst
> >+++ b/doc/guides/rel_notes/deprecation.rst
> >@@ -130,3 +130,31 @@ Deprecation Notices
> > Python 2 support will be completely removed in 20.11.
> > In 20.08, explicit deprecation warnings will be displayed when running
> > scripts with Python 2.
> >+
> >+* eventdev: Three public data structures will be updated in 20.11;
> >+ ``rte_event_dev_info``, ``rte_event_dev_config``, and
> >+ ``rte_event_port_conf``.
> >+ Two new members will be added to the ``rte_event_dev_info`` struct.
> >+ The first, max_event_port_links, will be a uint8_t, and represents the
> >+ maximum number of queues that can be linked to a single event port by
> >+ this device. The second, max_single_link_event_port_queue_pairs, will be a
> >+ uint8_t, and represents the maximum number of event ports and queues that
> >+ are optimized for (and only capable of) single-link configurations
> >+ supported by this device. These ports and queues are not accounted for in
> >+ max_event_ports or max_event_queues.
> >+ One new member will be added to the ``rte_event_dev_config`` struct. The
> >+ nb_single_link_event_port_queues member will be a uint8_t, and will
> >+ represent the number of event ports and queues that will be singly-linked
> >+ to each other. These are a subset of the overall event ports and queues.
> >+ This value cannot exceed nb_event_ports or nb_event_queues. If the
> >+ device has ports and queues that are optimized for single-link usage, this
> >+ field is a hint for how many to allocate; otherwise, regular event ports and
> >+ queues can be used.
> >+ Finally, the ``rte_event_port_conf`` struct will be
> >+ modified as follows. The uint8_t implicit_release_disabled field
> >+ will be replaced by a uint32_t event_port_cfg field. The new field will
> >+ initially have two bits assigned. RTE_EVENT_PORT_CFG_DISABLE_IMPL_REL
> >+ will have the same meaning as implicit_release_disabled. The second bit,
> >+ RTE_EVENT_PORT_CFG_SINGLE_LINK will be set if the event port links only
> >+ to a single event queue.
> >+
> >--
> >1.7.10
>
> Hello Jerin and DPDK community. Please review and approve the eventdev interface changes announced in this notice.
Changes look good to me in general. Could you reword the description
such way or similar like below to accommodate
1) DLB PMD requirements
2) Future extensions[1]
I think, We don't need exact mention the data structure member additions,
(This is to get the flexibility on additions/deletion on member fields
after the patch rework)
something like:
eventdev: ABI change to support DLB PMD and future extensions
The following structures and will be modified to support to DLB PMD and future
extension in the eventdev library.
And then please enumerate the structures[2] of your patch which needs change,
[2]``rte_event_dev_info``, ``rte_event_dev_config``, and
``rte_event_port_conf``
and structures in [1]. Please mention the patches [1] and your spec change patch
as a reference in the description.
[1]
http://patches.dpdk.org/patch/72786/
http://patches.dpdk.org/patch/72787/
>
> Thanks,
> Tim
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v2 20.08 4/6] doc: announce deprecation blacklist/whitelist
2020-07-30 8:45 3% ` Bruce Richardson
@ 2020-07-30 15:10 0% ` Stephen Hemminger
0 siblings, 0 replies; 200+ results
From: Stephen Hemminger @ 2020-07-30 15:10 UTC (permalink / raw)
To: Bruce Richardson; +Cc: dev
On Thu, 30 Jul 2020 09:45:19 +0100
Bruce Richardson <bruce.richardson@intel.com> wrote:
> On Wed, Jul 29, 2020 at 05:58:02PM -0700, Stephen Hemminger wrote:
> > Announce upcoming changes for 20.11.
> >
> > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > ---
> > doc/guides/rel_notes/deprecation.rst | 21 +++++++++++++++++++++
> > 1 file changed, 21 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > index 7c60779f3e68..abfec0aeaa4b 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -165,3 +165,24 @@ Deprecation Notices
> >
> > The ``master-lcore`` argument to testpmd will be replaced
> > with ``initial-lcore``.
> > +
> > +* eal: The terms blacklist and whitelist to describe devices used
> > + by DPDK will be replaced in the 20.11 relase.
> > + This will apply to command line arguments as well as macros.
> > +
> > + The macro ``RTE_DEV_BLACKLISTED`` will be replaced with ``RTE_DEV_EXCLUDED``
> > + and ``RTE_DEV_WHITELISTED`` will be replaced with ``RTE_DEV_INCLUDED``
> > + ``RTE_BUS_SCAN_BLACKLIST`` and ``RTE_BUS_SCAN_WHITELIST`` will be
> > + replaced with ``RTE_BUS_SCAN_EXCLUDED`` and ``RTE_BUS_SCAN_INCLUDED``
> > + respectively. Likewise ``RTE_DEVTYPE_BLACKLISTED_PCI`` and
> > + ``RTE_DEVTYPE_WHITELISTED_PCI`` will be replaced with
> > + ``RTE_DEVTYPE_EXCLUDED`` and ``RTE_DEVTYPE_INCLUDED``.
> > +
> > + The old macros will be marked as deprecated in 20.11 and removed
> > + in the 21.11 release.
> > +
>
> Since these are macros and therefore not part of the ABI I think we can
> remove them sooner than 21.11. Therefore similar to the previous patch can
> we just use "future" relase rather than 21.11
If these are internal, we don't need to wrap them in 21.11.
> > + The command line arguments to ``rte_eal_init`` will change from
> > + ``-b, --pci-blacklist`` to ``-x, --exclude`` and
> > + ``-w, --pci-whitelist`` to ``-i, --include``.
> > + The old command line arguments will continue to be accepted in 20.11
> > + but will cause a runtime error message.
> > --
>
> Error message, or warning message?
Some message to standard error and keep going.
>
> Overall, though
>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [relevance 0%]
* [dpdk-dev] DPDK Release Status Meeting 30/07/2020
@ 2020-07-30 10:37 3% Ferruh Yigit
0 siblings, 0 replies; 200+ results
From: Ferruh Yigit @ 2020-07-30 10:37 UTC (permalink / raw)
To: dev; +Cc: Thomas Monjalon
Minutes 30 July 2020
--------------------
Agenda:
* Release Dates
* -rc2 status
* Subtrees
* LTS
* Opens
Participants:
* Arm
* Broadcom
* Debian/Microsoft
* Intel
* Marvell
* Nvidia
* NXP
* Red Hat
Release Dates
-------------
* v20.08 dates:
* -rc3 pushed to *Thursday, 30 July 2020*
* -rc4: Wednesday, 5 August 2020
* Release Friday, 7 August 2020
* v20.11 proposal dates, please comment:
* Proposal/V1: Wednesday, 2 September 2020
* -rc1: Wednesday, 30 September 2020
* -rc2: Friday, 16 October 2020
* Release: Friday, 6 November 2020
* Please remember to send roadmap for 20.11.
-rc2 status
-----------
* Intel finished testing, mostly good except two critical defects
* A driver TSO issue, fix merged
* vhost performance drop
* Maxime's patch verified, will be merged for -rc3
* Interrupt issue will be worked in next release
Subtrees
--------
* main
* Worrying that there is no more fixes for libraries
* Will close the -rc3 today
* More review required for examples, please help
* https://patches.dpdk.org/project/dpdk/list/?q=example
* -rc4 will be for documentation patches
* Need to finalize the deprecation notices
* Please check the ABI improvements for 20.11, and send
required deprecation notices.
* There are already lots of deprecation notice for 20.11
It is worrying that 20.11 will be too big
* Data hiding and struct splitting already planned for ethdev
Same can be applied for other device abstraction layers,
Please check and send deprecation notices.
* John will be back next week, may support for final doc reviews
* There is a public holiday on Monday in Ireland
* Please all maintainers cleanup the patchwork before release
* next-net
* Pulled from vendor sub-trees and some fixes merged
* There is a last minute bnxt patch, will check for -rc3
* No more patches expected for release
* next-crypto
* Pull request merged
* There are deprecation notices in backlog
* next-eventdev
* Pull request merged
* There can be a few critical patches for -rc3
* May send another pull request, will close today
* next-virtio
* Performance fix and some other fixes merged
* Pulled by next-net, no more patch expected for release
* next-net-mlx, next-net-intel
* Pulled for -rc3
* next-net-mrvl
* Qede patches postponed to next release
* No more patch expected for release
* next-net-brcm
* There is a patchset merged in sub-tree
* Ajit will check if they are fixes or can be postponed
LTS
---
* 19.11.4 work is going on
* Some patches are backported, email sent, please review
* 18.11.10 work is going on
* Some patches are backported
Opens
-----
* Bugzilla
* Nothing critical for the release
* Three new defects to Intel, some are to old releases
* There are open defects needs attention
* Intel pulled some defects to internal to address them
* No visible change in the Bugzilla
DPDK Release Status Meetings
============================
The DPDK Release Status Meeting is intended for DPDK Committers to discuss the
status of the master tree and sub-trees, and for project managers to track
progress or milestone dates.
The meeting occurs on every Thursdays at 8:30 UTC. on https://meet.jit.si/DPDK
If you wish to attend just send an email to
"John McNamara <john.mcnamara@intel.com>" for the invite.
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v2 20.08 4/6] doc: announce deprecation blacklist/whitelist
@ 2020-07-30 8:45 3% ` Bruce Richardson
2020-07-30 15:10 0% ` Stephen Hemminger
0 siblings, 1 reply; 200+ results
From: Bruce Richardson @ 2020-07-30 8:45 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: dev
On Wed, Jul 29, 2020 at 05:58:02PM -0700, Stephen Hemminger wrote:
> Announce upcoming changes for 20.11.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
> doc/guides/rel_notes/deprecation.rst | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 7c60779f3e68..abfec0aeaa4b 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -165,3 +165,24 @@ Deprecation Notices
>
> The ``master-lcore`` argument to testpmd will be replaced
> with ``initial-lcore``.
> +
> +* eal: The terms blacklist and whitelist to describe devices used
> + by DPDK will be replaced in the 20.11 relase.
> + This will apply to command line arguments as well as macros.
> +
> + The macro ``RTE_DEV_BLACKLISTED`` will be replaced with ``RTE_DEV_EXCLUDED``
> + and ``RTE_DEV_WHITELISTED`` will be replaced with ``RTE_DEV_INCLUDED``
> + ``RTE_BUS_SCAN_BLACKLIST`` and ``RTE_BUS_SCAN_WHITELIST`` will be
> + replaced with ``RTE_BUS_SCAN_EXCLUDED`` and ``RTE_BUS_SCAN_INCLUDED``
> + respectively. Likewise ``RTE_DEVTYPE_BLACKLISTED_PCI`` and
> + ``RTE_DEVTYPE_WHITELISTED_PCI`` will be replaced with
> + ``RTE_DEVTYPE_EXCLUDED`` and ``RTE_DEVTYPE_INCLUDED``.
> +
> + The old macros will be marked as deprecated in 20.11 and removed
> + in the 21.11 release.
> +
Since these are macros and therefore not part of the ABI I think we can
remove them sooner than 21.11. Therefore similar to the previous patch can
we just use "future" relase rather than 21.11
> + The command line arguments to ``rte_eal_init`` will change from
> + ``-b, --pci-blacklist`` to ``-x, --exclude`` and
> + ``-w, --pci-whitelist`` to ``-i, --include``.
> + The old command line arguments will continue to be accepted in 20.11
> + but will cause a runtime error message.
> --
Error message, or warning message?
Overall, though
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v2 20.08 1/6] doc: announce deprecation of master lcore
@ 2020-07-30 8:42 3% ` Bruce Richardson
1 sibling, 0 replies; 200+ results
From: Bruce Richardson @ 2020-07-30 8:42 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: dev
On Wed, Jul 29, 2020 at 05:57:59PM -0700, Stephen Hemminger wrote:
> Announce upcoming changes related to master/slave in reference
> to lcore.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
> doc/guides/rel_notes/deprecation.rst | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 99c98062ffc2..7c60779f3e68 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -148,3 +148,20 @@ Deprecation Notices
> Python 2 support will be completely removed in 20.11.
> In 20.08, explicit deprecation warnings will be displayed when running
> scripts with Python 2.
> +
> +* eal: To be more inclusive in choice of naming, the DPDK project
> + will replace uses of master/slave in the API's and command line arguments.
> +
> + References to master/slave in relation to lcore will be renamed
> + to initial/worker. The function ``rte_get_master_lcore()``
> + will be renamed to ``rte_get_initial_lcore()``.
> + For the 20.11, release both names will be present and the
> + old function will be marked with the deprecated tag.
> + The old function will be removed in 21.11 version.
Since 20.11 is going to be ABI incompatible with previous versions anyway,
can we not have the function as a macro alias for the new, allowing us to
remove the old sooner without breaking any apps? Even if this is not the
case, I think it might be better to change "21.11 version" to "a future
release" to allow us some flexibility on when to remove them in case we can
remove them sooner.
> +
> + The iterator for worker lcores will also change:
> + ``RTE_LCORE_FOREACH_SLAVE`` will be replaced with
> + ``RTE_LCORE_FOREACH_WORKER``.
> +
> + The ``master-lcore`` argument to testpmd will be replaced
> + with ``initial-lcore``.
> --
With the above comment.
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH] [RFC] doc: announce removal of crypto list end enumerators
@ 2020-07-29 15:18 3% ` Bruce Richardson
0 siblings, 0 replies; 200+ results
From: Bruce Richardson @ 2020-07-29 15:18 UTC (permalink / raw)
To: Arek Kusztal
Cc: dev, akhil.goyal, fiona.trahe, anoobj, shallyv, declan.doherty,
roy.fan.zhang, konstantin.ananyev
On Wed, Jul 29, 2020 at 04:46:51PM +0200, Arek Kusztal wrote:
> Enumerators RTE_CRYPTO_CIPHER_LIST_END, RTE_CRYPTO_AUTH_LIST_END,
> RTE_CRYPTO_AEAD_LIST_END will be removed to prevent some problems
> that may arise when adding new algorithms.
>
> Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Since these seem to cause us ABI problems:
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v3] lib/librte_timer:fix corruption with reset
2020-07-10 15:19 3% ` Stephen Hemminger
@ 2020-07-28 19:04 3% ` Carrillo, Erik G
1 sibling, 0 replies; 200+ results
From: Carrillo, Erik G @ 2020-07-28 19:04 UTC (permalink / raw)
To: Sarosh Arif, dev, rsanford; +Cc: h.mikita89, Stephen Hemminger
Hi Sarosh,
Some comments in-line:
> -----Original Message-----
> From: Sarosh Arif <sarosh.arif@emumba.com>
> Sent: Friday, July 10, 2020 2:00 AM
> To: rsanford@akamai.com; Carrillo, Erik G <erik.g.carrillo@intel.com>;
> dev@dpdk.org
> Cc: stable@dpdk.org; Sarosh Arif <sarosh.arif@emumba.com>;
> h.mikita89@gmail.com
> Subject: [PATCH v3] lib/librte_timer:fix corruption with reset
The subject is misleading - perhaps wording closer to the title of the Bugzilla bug would be more helpful.
>
> If the user tries to reset/stop some other timer in it's callback function, which
> is also about to expire, using rte_timer_reset_sync/rte_timer_stop_sync the
> application goes into an infinite loop. This happens because
> rte_timer_reset_sync/rte_timer_stop_sync loop until the timer resets/stops
> and there is check inside timer_set_config_state which prevents a running
> timer from being reset/stopped by not it's own timer_cb. Therefore
> timer_set_config_state returns -1 due to which rte_timer_reset returns -1
> and rte_timer_reset_sync goes into an infinite loop.
>
> The soloution to this problem is to return -1 from
> rte_timer_reset_sync/rte_timer_stop_sync in case the user tries to
> reset/stop some other timer in it's callback function.
>
> Bugzilla ID: 491
> Fixes: 20d159f20543 ("timer: fix corruption with reset")
> Cc: h.mikita89@gmail.com
> Signed-off-by: Sarosh Arif <sarosh.arif@emumba.com>
> ---
> v2: remove line continuations
> v3: separate code and declarations
> ---
> lib/librte_timer/rte_timer.c | 26 ++++++++++++++++++++++++--
> lib/librte_timer/rte_timer.h | 4 ++--
> 2 files changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/lib/librte_timer/rte_timer.c b/lib/librte_timer/rte_timer.c index
> 6d19ce469..0cd3e2c86 100644
> --- a/lib/librte_timer/rte_timer.c
> +++ b/lib/librte_timer/rte_timer.c
> @@ -576,14 +576,24 @@ rte_timer_alt_reset(uint32_t timer_data_id, struct
> rte_timer *tim, }
>
> /* loop until rte_timer_reset() succeed */ -void
> +int
> rte_timer_reset_sync(struct rte_timer *tim, uint64_t ticks,
> enum rte_timer_type type, unsigned tim_lcore,
> rte_timer_cb_t fct, void *arg)
> {
> + struct rte_timer_data *timer_data;
> + TIMER_DATA_VALID_GET_OR_ERR_RET(default_data_id,
> timer_data, -EINVAL);
> +
> + if (tim->status.state == RTE_TIMER_RUNNING &&
> + (tim->status.owner != (uint16_t)tim_lcore ||
> + tim != timer_data->priv_timer[tim_lcore].running_tim))
> + return -1;
> +
As I understand it, Bugzilla 491 describes two scenarios where a hang can occur:
1. A timer's callback tries to synchronously reset/stop another timer in the same run list
2. A timer's callback tries to synchronously reset/stop another timer in a different run list whose lcore happens to be running a timer callback that is synchronously resetting/stopping a timer in the first run list
The if condition from the patch above can be broken up as:
(tim->status.state == RTE_TIMER_RUNNING && tim->status.owner == (uint16_t)lcore_id && tim != timer_data->priv_timer[lcore_id].running_tim)
And
(tim->status.state == RTE_TIMER_RUNNING && tim->status.owner != (uint16_t)lcore_id)
This second condition could be transient and doesn't necessarily identify scenario (2) above. In this case, the *_sync() calls could fail unnecessarily.
Offhand, I'm not seeing a way to more precisely detect scenario 2 above. I'm wondering if some kind of a timeout parameter could be added to avoid hanging instead. Thoughts?
As Stephen mentioned in another response, it looks like this will require an API change. I believe this can be announced in the next release via doc/guides/rel_notes/deprecation.rst. Then, the new API can be added in the next ABI-breaking release, possibly with versioned symbols (http://doc.dpdk.org/guides/contributing/abi_versioning.html#versioning-macros).
Thanks,
Erik
> while (rte_timer_reset(tim, ticks, type, tim_lcore,
> fct, arg) != 0)
> rte_pause();
> +
> + return 0;
> }
>
> static int
> @@ -642,11 +652,23 @@ rte_timer_alt_stop(uint32_t timer_data_id, struct
> rte_timer *tim) }
>
> /* loop until rte_timer_stop() succeed */ -void
> +int
> rte_timer_stop_sync(struct rte_timer *tim) {
> + struct rte_timer_data *timer_data;
> + unsigned int lcore_id = rte_lcore_id();
> +
> + TIMER_DATA_VALID_GET_OR_ERR_RET(default_data_id,
> timer_data, -EINVAL);
> +
> + if (tim->status.state == RTE_TIMER_RUNNING &&
> + (tim->status.owner != (uint16_t)lcore_id ||
> + tim != timer_data->priv_timer[lcore_id].running_tim))
> + return -1;
> +
> while (rte_timer_stop(tim) != 0)
> rte_pause();
> +
> + return 0;
> }
>
> /* Test the PENDING status of the timer handle tim */ diff --git
> a/lib/librte_timer/rte_timer.h b/lib/librte_timer/rte_timer.h index
> c6b3d450d..392ca423d 100644
> --- a/lib/librte_timer/rte_timer.h
> +++ b/lib/librte_timer/rte_timer.h
> @@ -275,7 +275,7 @@ int rte_timer_reset(struct rte_timer *tim, uint64_t
> ticks,
> * @param arg
> * The user argument of the callback function.
> */
> -void
> +int
> rte_timer_reset_sync(struct rte_timer *tim, uint64_t ticks,
> enum rte_timer_type type, unsigned tim_lcore,
> rte_timer_cb_t fct, void *arg);
> @@ -314,7 +314,7 @@ int rte_timer_stop(struct rte_timer *tim);
> * @param tim
> * The timer handle.
> */
> -void rte_timer_stop_sync(struct rte_timer *tim);
> +int rte_timer_stop_sync(struct rte_timer *tim);
>
> /**
> * Test if a timer is pending.
> --
> 2.17.1
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v10 01/10] eal: introduce macro for bit definition
2020-07-28 9:29 0% ` Gaëtan Rivet
2020-07-28 11:11 0% ` Morten Brørup
@ 2020-07-28 15:39 0% ` Honnappa Nagarahalli
1 sibling, 0 replies; 200+ results
From: Honnappa Nagarahalli @ 2020-07-28 15:39 UTC (permalink / raw)
To: Gaëtan Rivet, Morten Brørup
Cc: Parav Pandit, dev, ferruh.yigit, thomas, Ray Kinsella,
Neil Horman, rasland, orika, matan, Joyce Kong, nd,
Honnappa Nagarahalli, nd
<snip>
>
> On 28/07/20 10:24 +0200, Morten Brørup wrote:
> > + Ray and Neil as ABI Policy maintainers.
> >
> > > From: Honnappa Nagarahalli [mailto:Honnappa.Nagarahalli@arm.com]
> > > Sent: Tuesday, July 28, 2020 4:19 AM
> > >
> > > <snip>
> > > > >
> > > > > > Subject: [dpdk-dev] [PATCH v10 01/10] eal: introduce macro for
> > > bit
> > > > > definition
> > > > > >
> > > > > > There are several drivers which duplicate bit generation macro.
> > > > > > Introduce a generic bit macros so that such drivers avoid
> > > redefining
> > > > > same in
> > > > > > multiple drivers.
> > > > > >
> > > > > > Signed-off-by: Parav Pandit <parav@mellanox.com>
> > > > > > Acked-by: Matan Azrad <matan@mellanox.com>
> > > > > > Acked-by: Morten Brørup <mb@smartsharesystems.com>
> > > > > > ---
> > > > > > Changelog:
> > > > > > v4->v5:
> > > > > > - Addressed comments from Morten Brørup
> > > > > > - Renamed newly added macro to RTE_BIT64
> > > > > > - Added doxygen comment section for the macro
> > > > > > v1->v2:
> > > > > > - Addressed comments from Thomas and Gaten.
> > > > > > - Avoided new file, added macro to rte_bitops.h
> > > > > > ---
> > > > > > lib/librte_eal/include/rte_bitops.h | 8 ++++++++
> > > > > > 1 file changed, 8 insertions(+)
> > > > > >
> > > > > > diff --git a/lib/librte_eal/include/rte_bitops.h
> > > > > > b/lib/librte_eal/include/rte_bitops.h
> > > > > > index 740927f3b..ca46a110f 100644
> > > > > > --- a/lib/librte_eal/include/rte_bitops.h
> > > > > > +++ b/lib/librte_eal/include/rte_bitops.h
> > > > > > @@ -17,6 +17,14 @@
> > > > > > #include <rte_debug.h>
> > > > > > #include <rte_compat.h>
> > > > > >
> > > > > > +/**
> > > > > > + * Get the uint64_t value for a specified bit set.
> > > > > > + *
> > > > > > + * @param nr
> > > > > > + * The bit number in range of 0 to 63.
> > > > > > + */
> > > > > > +#define RTE_BIT64(nr) (UINT64_C(1) << (nr))
> > > > > In general, the macros have been avoided in this file. Suggest
> > > > > changing this to an inline function.
> > > >
> > > > That has been discussed already, and rejected for good reasons:
> > > >
> http://inbox.dpdk.org/dev/AM0PR05MB4866823B0170B90F679A2765D1640@
> > > > AM0PR05MB4866.eurprd05.prod.outlook.com/
> > > Thank you for the link.
> > > In this patch series, I see the macro being used in enum
> > > initialization
> > > (7/10 in v11) as well as in functions (8/10 in v11). Does it make
> > > sense to introduce use inline functions and use the inline functions
> > > for 8/10?
> > > If we do this, we should document in rte_bitops.h that inline
> > > functions should be used wherever possible.
> >
> > I would agree, but only in theory. I disagree in reality, and argue that there
> should only be macros for this. Here is why:
> >
> > rte_byteorder.h has both RTE_BEnn() macros and rte_cpu_to_be_nn()
> functions, for doing the same thing at compile time or at run time. There are
> no compile time warnings if the wrong one is being used, so I am certain that
> we can find code that uses the macro where the function should be used, or
> vice versa.
Agree, there is not a suitable way to enforce the use of one over the other (other than code review).
When the APIs in rte_bitops.h were introduced, there was a discussion around using the macros. I was for using macros as it would have kept the code as well as number of APIs smaller. However, there was a decision made not to use macros and instead provide inline functions. It was nothing to do with performance. So, I am just saying that we need to follow the same principles at least for this file.
> >
>
> Hi,
>
> It is not clear to me, reading this thread, what is the motivation to enforce
> use of inline functions? Is it perf, compiler type checking, or usage checks?
>
> Macros are checked at compile time when possible, though it can be
> improved upon. But I agree with Morten, proposing two forms ensures devs
> will sometimes use the wrong one, and we would need a practical way to
> check usages.
>
> > Which opens another, higher level, question: Would it be possible to add a
> compile time check macro in rte_common.h for these and similar?
> >
>
> Can you clarify your idea? Is is something similar to:
>
> #define _BIT64(n) (UINT64_C(1) << (n))
> static inline uint64_t
> bit64(uint64_t n)
> {
> assert(n < 64);
> return (UINT64_C(1) << n);
> }
> /* Integer Constant Expression? */
> #define ICE_P(x) (sizeof(int) == sizeof(*(1 ? ((void*)((x) * 0l)) : (int*)1)))
> #define BIT64(n) (ICE_P(n) ? _BIT64(n) : bit64(n))
>
> I don't think so, but this is as close as automatic compile-time check and
> automatic use of proper macro vs. function I know of, did you have something
> else in mind?
>
> In this kind of code:
>
> #include <stdio.h>
> #include <stdint.h>
> #include <inttypes.h>
> #include <assert.h>
>
> enum vals {
> ZERO = 0,
> ONE = BIT64(1),
> TWO = BIT64(2),
> THREE = BIT64(3),
> };
>
> int main(void)
> {
> uint64_t x = ONE;
>
> x = BIT64(0);
> x = BIT64(1);
> x = BIT64(60);
> x = BIT64(64);
> x = BIT64(x);
>
> printf("x: 0x%" PRIx64 "\n", x);
>
> return 0;
> }
>
> The enum is defined using the macro, x = BIT64(64); triggers the following
> warning with GCC:
>
> constant_bitop.c:6:32: warning: left shift count >= width of type [-Wshift-
> count-overflow]
> 6 | #define _BIT64(n) (UINT64_C(1) << (n))
>
> and x = BIT64(x); triggers the assert() at runtime.
>
> > Furthermore: For the RTE_BITnn() operations in this patch set, I expect the
> compiler to generate perfectly efficient code using the macro for run time use.
> I.e. there would be no performance advantage by also implementing the
> macros as functions for run time use.
> >
>
> Regards,
> --
> Gaëtan
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v10 01/10] eal: introduce macro for bit definition
2020-07-28 9:29 0% ` Gaëtan Rivet
@ 2020-07-28 11:11 0% ` Morten Brørup
2020-07-28 15:39 0% ` Honnappa Nagarahalli
1 sibling, 0 replies; 200+ results
From: Morten Brørup @ 2020-07-28 11:11 UTC (permalink / raw)
To: Gaëtan Rivet
Cc: Honnappa Nagarahalli, Parav Pandit, dev, ferruh.yigit, thomas,
Ray Kinsella, Neil Horman, rasland, orika, matan, Joyce Kong, nd
> From: Gaëtan Rivet [mailto:grive@u256.net]
> Sent: Tuesday, July 28, 2020 11:29 AM
>
> On 28/07/20 10:24 +0200, Morten Brørup wrote:
> > + Ray and Neil as ABI Policy maintainers.
> >
> > > From: Honnappa Nagarahalli [mailto:Honnappa.Nagarahalli@arm.com]
> > > Sent: Tuesday, July 28, 2020 4:19 AM
> > >
> > > <snip>
> > > > >
> > > > > > Subject: [dpdk-dev] [PATCH v10 01/10] eal: introduce macro
> for
> > > bit
> > > > > definition
> > > > > >
> > > > > > There are several drivers which duplicate bit generation
> macro.
> > > > > > Introduce a generic bit macros so that such drivers avoid
> > > redefining
> > > > > same in
> > > > > > multiple drivers.
> > > > > >
> > > > > > Signed-off-by: Parav Pandit <parav@mellanox.com>
> > > > > > Acked-by: Matan Azrad <matan@mellanox.com>
> > > > > > Acked-by: Morten Brørup <mb@smartsharesystems.com>
> > > > > > ---
> > > > > > Changelog:
> > > > > > v4->v5:
> > > > > > - Addressed comments from Morten Brørup
> > > > > > - Renamed newly added macro to RTE_BIT64
> > > > > > - Added doxygen comment section for the macro
> > > > > > v1->v2:
> > > > > > - Addressed comments from Thomas and Gaten.
> > > > > > - Avoided new file, added macro to rte_bitops.h
> > > > > > ---
> > > > > > lib/librte_eal/include/rte_bitops.h | 8 ++++++++
> > > > > > 1 file changed, 8 insertions(+)
> > > > > >
> > > > > > diff --git a/lib/librte_eal/include/rte_bitops.h
> > > > > > b/lib/librte_eal/include/rte_bitops.h
> > > > > > index 740927f3b..ca46a110f 100644
> > > > > > --- a/lib/librte_eal/include/rte_bitops.h
> > > > > > +++ b/lib/librte_eal/include/rte_bitops.h
> > > > > > @@ -17,6 +17,14 @@
> > > > > > #include <rte_debug.h>
> > > > > > #include <rte_compat.h>
> > > > > >
> > > > > > +/**
> > > > > > + * Get the uint64_t value for a specified bit set.
> > > > > > + *
> > > > > > + * @param nr
> > > > > > + * The bit number in range of 0 to 63.
> > > > > > + */
> > > > > > +#define RTE_BIT64(nr) (UINT64_C(1) << (nr))
> > > > > In general, the macros have been avoided in this file. Suggest
> > > > > changing this to an inline function.
> > > >
> > > > That has been discussed already, and rejected for good reasons:
> > > > http://inbox.dpdk.org/dev/AM0PR05MB4866823B0170B90F679A2765D1640@
> > > > AM0PR05MB4866.eurprd05.prod.outlook.com/
> > > Thank you for the link.
> > > In this patch series, I see the macro being used in enum
> initialization
> > > (7/10 in v11) as well as in functions (8/10 in v11). Does it make
> sense
> > > to introduce use inline functions and use the inline functions for
> > > 8/10?
> > > If we do this, we should document in rte_bitops.h that inline
> functions
> > > should be used wherever possible.
> >
> > I would agree, but only in theory. I disagree in reality, and argue
> that there should only be macros for this. Here is why:
> >
> > rte_byteorder.h has both RTE_BEnn() macros and rte_cpu_to_be_nn()
> functions, for doing the same thing at compile time or at run time.
> There are no compile time warnings if the wrong one is being used, so I
> am certain that we can find code that uses the macro where the function
> should be used, or vice versa.
> >
>
> Hi,
>
> It is not clear to me, reading this thread, what is the motivation to
> enforce use of inline functions? Is it perf, compiler type checking, or
> usage checks?
>
> Macros are checked at compile time when possible, though it can be
> improved upon. But I agree with Morten, proposing two forms ensures
> devs
> will sometimes use the wrong one, and we would need a practical way to
> check usages.
>
> > Which opens another, higher level, question: Would it be possible to
> add a compile time check macro in rte_common.h for these and similar?
> >
>
> Can you clarify your idea? Is is something similar to:
>
> #define _BIT64(n) (UINT64_C(1) << (n))
> static inline uint64_t
> bit64(uint64_t n)
> {
> assert(n < 64);
> return (UINT64_C(1) << n);
> }
> /* Integer Constant Expression? */
> #define ICE_P(x) (sizeof(int) == sizeof(*(1 ? ((void*)((x) * 0l)) :
> (int*)1)))
> #define BIT64(n) (ICE_P(n) ? _BIT64(n) : bit64(n))
>
> I don't think so, but this is as close as automatic compile-time check
> and automatic use of proper macro vs. function I know of, did you have
> something else in mind?
I was only thinking of adding a compile time warning if the function was being used where the macro should be used, and vice versa.
Your proposed solution for automatic use of the function or macro is even better. Thank you! And it could be used in rte_byteorder.h too.
But as I mentioned, it is a higher level discussion, so for this patch, let's settle with the macro as already provided by Parav. And the higher level discussion about how to do this generally in DPDK libraries, where both macros and functions for the same calculation are provided, can be resumed later.
>
> In this kind of code:
>
> #include <stdio.h>
> #include <stdint.h>
> #include <inttypes.h>
> #include <assert.h>
>
> enum vals {
> ZERO = 0,
> ONE = BIT64(1),
> TWO = BIT64(2),
> THREE = BIT64(3),
> };
>
> int main(void)
> {
> uint64_t x = ONE;
>
> x = BIT64(0);
> x = BIT64(1);
> x = BIT64(60);
> x = BIT64(64);
> x = BIT64(x);
>
> printf("x: 0x%" PRIx64 "\n", x);
>
> return 0;
> }
>
> The enum is defined using the macro, x = BIT64(64); triggers the
> following warning with GCC:
>
> constant_bitop.c:6:32: warning: left shift count >= width of type [-
> Wshift-count-overflow]
> 6 | #define _BIT64(n) (UINT64_C(1) << (n))
>
> and x = BIT64(x); triggers the assert() at runtime.
>
> > Furthermore: For the RTE_BITnn() operations in this patch set, I
> expect the compiler to generate perfectly efficient code using the
> macro for run time use. I.e. there would be no performance advantage by
> also implementing the macros as functions for run time use.
> >
>
> Regards,
> --
> Gaëtan
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v10 01/10] eal: introduce macro for bit definition
2020-07-28 8:24 3% ` Morten Brørup
@ 2020-07-28 9:29 0% ` Gaëtan Rivet
2020-07-28 11:11 0% ` Morten Brørup
2020-07-28 15:39 0% ` Honnappa Nagarahalli
0 siblings, 2 replies; 200+ results
From: Gaëtan Rivet @ 2020-07-28 9:29 UTC (permalink / raw)
To: Morten Brørup
Cc: Honnappa Nagarahalli, Parav Pandit, dev, ferruh.yigit, thomas,
Ray Kinsella, Neil Horman, rasland, orika, matan, Joyce Kong, nd
On 28/07/20 10:24 +0200, Morten Brørup wrote:
> + Ray and Neil as ABI Policy maintainers.
>
> > From: Honnappa Nagarahalli [mailto:Honnappa.Nagarahalli@arm.com]
> > Sent: Tuesday, July 28, 2020 4:19 AM
> >
> > <snip>
> > > >
> > > > > Subject: [dpdk-dev] [PATCH v10 01/10] eal: introduce macro for
> > bit
> > > > definition
> > > > >
> > > > > There are several drivers which duplicate bit generation macro.
> > > > > Introduce a generic bit macros so that such drivers avoid
> > redefining
> > > > same in
> > > > > multiple drivers.
> > > > >
> > > > > Signed-off-by: Parav Pandit <parav@mellanox.com>
> > > > > Acked-by: Matan Azrad <matan@mellanox.com>
> > > > > Acked-by: Morten Brørup <mb@smartsharesystems.com>
> > > > > ---
> > > > > Changelog:
> > > > > v4->v5:
> > > > > - Addressed comments from Morten Brørup
> > > > > - Renamed newly added macro to RTE_BIT64
> > > > > - Added doxygen comment section for the macro
> > > > > v1->v2:
> > > > > - Addressed comments from Thomas and Gaten.
> > > > > - Avoided new file, added macro to rte_bitops.h
> > > > > ---
> > > > > lib/librte_eal/include/rte_bitops.h | 8 ++++++++
> > > > > 1 file changed, 8 insertions(+)
> > > > >
> > > > > diff --git a/lib/librte_eal/include/rte_bitops.h
> > > > > b/lib/librte_eal/include/rte_bitops.h
> > > > > index 740927f3b..ca46a110f 100644
> > > > > --- a/lib/librte_eal/include/rte_bitops.h
> > > > > +++ b/lib/librte_eal/include/rte_bitops.h
> > > > > @@ -17,6 +17,14 @@
> > > > > #include <rte_debug.h>
> > > > > #include <rte_compat.h>
> > > > >
> > > > > +/**
> > > > > + * Get the uint64_t value for a specified bit set.
> > > > > + *
> > > > > + * @param nr
> > > > > + * The bit number in range of 0 to 63.
> > > > > + */
> > > > > +#define RTE_BIT64(nr) (UINT64_C(1) << (nr))
> > > > In general, the macros have been avoided in this file. Suggest
> > > > changing this to an inline function.
> > >
> > > That has been discussed already, and rejected for good reasons:
> > > http://inbox.dpdk.org/dev/AM0PR05MB4866823B0170B90F679A2765D1640@
> > > AM0PR05MB4866.eurprd05.prod.outlook.com/
> > Thank you for the link.
> > In this patch series, I see the macro being used in enum initialization
> > (7/10 in v11) as well as in functions (8/10 in v11). Does it make sense
> > to introduce use inline functions and use the inline functions for
> > 8/10?
> > If we do this, we should document in rte_bitops.h that inline functions
> > should be used wherever possible.
>
> I would agree, but only in theory. I disagree in reality, and argue that there should only be macros for this. Here is why:
>
> rte_byteorder.h has both RTE_BEnn() macros and rte_cpu_to_be_nn() functions, for doing the same thing at compile time or at run time. There are no compile time warnings if the wrong one is being used, so I am certain that we can find code that uses the macro where the function should be used, or vice versa.
>
Hi,
It is not clear to me, reading this thread, what is the motivation to
enforce use of inline functions? Is it perf, compiler type checking, or
usage checks?
Macros are checked at compile time when possible, though it can be
improved upon. But I agree with Morten, proposing two forms ensures devs
will sometimes use the wrong one, and we would need a practical way to
check usages.
> Which opens another, higher level, question: Would it be possible to add a compile time check macro in rte_common.h for these and similar?
>
Can you clarify your idea? Is is something similar to:
#define _BIT64(n) (UINT64_C(1) << (n))
static inline uint64_t
bit64(uint64_t n)
{
assert(n < 64);
return (UINT64_C(1) << n);
}
/* Integer Constant Expression? */
#define ICE_P(x) (sizeof(int) == sizeof(*(1 ? ((void*)((x) * 0l)) : (int*)1)))
#define BIT64(n) (ICE_P(n) ? _BIT64(n) : bit64(n))
I don't think so, but this is as close as automatic compile-time check
and automatic use of proper macro vs. function I know of, did you have
something else in mind?
In this kind of code:
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
#include <assert.h>
enum vals {
ZERO = 0,
ONE = BIT64(1),
TWO = BIT64(2),
THREE = BIT64(3),
};
int main(void)
{
uint64_t x = ONE;
x = BIT64(0);
x = BIT64(1);
x = BIT64(60);
x = BIT64(64);
x = BIT64(x);
printf("x: 0x%" PRIx64 "\n", x);
return 0;
}
The enum is defined using the macro, x = BIT64(64); triggers the
following warning with GCC:
constant_bitop.c:6:32: warning: left shift count >= width of type [-Wshift-count-overflow]
6 | #define _BIT64(n) (UINT64_C(1) << (n))
and x = BIT64(x); triggers the assert() at runtime.
> Furthermore: For the RTE_BITnn() operations in this patch set, I expect the compiler to generate perfectly efficient code using the macro for run time use. I.e. there would be no performance advantage by also implementing the macros as functions for run time use.
>
Regards,
--
Gaëtan
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v10 01/10] eal: introduce macro for bit definition
@ 2020-07-28 8:24 3% ` Morten Brørup
2020-07-28 9:29 0% ` Gaëtan Rivet
0 siblings, 1 reply; 200+ results
From: Morten Brørup @ 2020-07-28 8:24 UTC (permalink / raw)
To: Honnappa Nagarahalli, Parav Pandit, dev, grive, ferruh.yigit,
thomas, Ray Kinsella, Neil Horman
Cc: rasland, orika, matan, Joyce Kong, nd, nd
+ Ray and Neil as ABI Policy maintainers.
> From: Honnappa Nagarahalli [mailto:Honnappa.Nagarahalli@arm.com]
> Sent: Tuesday, July 28, 2020 4:19 AM
>
> <snip>
> > >
> > > > Subject: [dpdk-dev] [PATCH v10 01/10] eal: introduce macro for
> bit
> > > definition
> > > >
> > > > There are several drivers which duplicate bit generation macro.
> > > > Introduce a generic bit macros so that such drivers avoid
> redefining
> > > same in
> > > > multiple drivers.
> > > >
> > > > Signed-off-by: Parav Pandit <parav@mellanox.com>
> > > > Acked-by: Matan Azrad <matan@mellanox.com>
> > > > Acked-by: Morten Brørup <mb@smartsharesystems.com>
> > > > ---
> > > > Changelog:
> > > > v4->v5:
> > > > - Addressed comments from Morten Brørup
> > > > - Renamed newly added macro to RTE_BIT64
> > > > - Added doxygen comment section for the macro
> > > > v1->v2:
> > > > - Addressed comments from Thomas and Gaten.
> > > > - Avoided new file, added macro to rte_bitops.h
> > > > ---
> > > > lib/librte_eal/include/rte_bitops.h | 8 ++++++++
> > > > 1 file changed, 8 insertions(+)
> > > >
> > > > diff --git a/lib/librte_eal/include/rte_bitops.h
> > > > b/lib/librte_eal/include/rte_bitops.h
> > > > index 740927f3b..ca46a110f 100644
> > > > --- a/lib/librte_eal/include/rte_bitops.h
> > > > +++ b/lib/librte_eal/include/rte_bitops.h
> > > > @@ -17,6 +17,14 @@
> > > > #include <rte_debug.h>
> > > > #include <rte_compat.h>
> > > >
> > > > +/**
> > > > + * Get the uint64_t value for a specified bit set.
> > > > + *
> > > > + * @param nr
> > > > + * The bit number in range of 0 to 63.
> > > > + */
> > > > +#define RTE_BIT64(nr) (UINT64_C(1) << (nr))
> > > In general, the macros have been avoided in this file. Suggest
> > > changing this to an inline function.
> >
> > That has been discussed already, and rejected for good reasons:
> > http://inbox.dpdk.org/dev/AM0PR05MB4866823B0170B90F679A2765D1640@
> > AM0PR05MB4866.eurprd05.prod.outlook.com/
> Thank you for the link.
> In this patch series, I see the macro being used in enum initialization
> (7/10 in v11) as well as in functions (8/10 in v11). Does it make sense
> to introduce use inline functions and use the inline functions for
> 8/10?
> If we do this, we should document in rte_bitops.h that inline functions
> should be used wherever possible.
I would agree, but only in theory. I disagree in reality, and argue that there should only be macros for this. Here is why:
rte_byteorder.h has both RTE_BEnn() macros and rte_cpu_to_be_nn() functions, for doing the same thing at compile time or at run time. There are no compile time warnings if the wrong one is being used, so I am certain that we can find code that uses the macro where the function should be used, or vice versa.
Which opens another, higher level, question: Would it be possible to add a compile time check macro in rte_common.h for these and similar?
Furthermore: For the RTE_BITnn() operations in this patch set, I expect the compiler to generate perfectly efficient code using the macro for run time use. I.e. there would be no performance advantage by also implementing the macros as functions for run time use.
> >
> > > Also, this file has uses of this macro, it would be good to replace
> > > them with the new inline function.
> >
> > Makes sense.
> > And for consistency, it would require adding an RTE_BIT32() macro
> too.
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH] net/dpaa: announce extended definition of port_id in API 'rte_pmd_dpaa_set_tx_loopback'
@ 2020-07-23 14:34 4% ` Ferruh Yigit
0 siblings, 0 replies; 200+ results
From: Ferruh Yigit @ 2020-07-23 14:34 UTC (permalink / raw)
To: Yang, Zhiyong, Sachin Saxena (OSS), dev
On 7/23/2020 10:23 AM, Yang, Zhiyong wrote:
>
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Sachin Saxena (OSS)
> Sent: Tuesday, July 14, 2020 7:33 PM
> To: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>
> Subject: [dpdk-dev] [PATCH] net/dpaa: announce extended definition of port_id in API 'rte_pmd_dpaa_set_tx_loopback'
>
> From: Sachin Saxena <sachin.saxena@oss.nxp.com>
>
> Signed-off-by: Sachin Saxena <sachin.saxena@oss.nxp.com>
>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>
>
Applied to dpdk-next-net/master, thanks.
Updated commit log as below:
doc: announce dpaa specific API parameter change
'port_id' storage size should be 'uint16_t', the API
'rte_pmd_dpaa_set_tx_loopback()' has it as 'uint8_t' but fixing it is an
ABI breakage, that is why planning the fix in v20.11 release where ABI
breakage is allowed.
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs
2020-07-23 1:55 5% ` Xu, Rosen
@ 2020-07-23 7:38 5% ` Hemant Agrawal
0 siblings, 0 replies; 200+ results
From: Hemant Agrawal @ 2020-07-23 7:38 UTC (permalink / raw)
To: Xu, Rosen, Richardson, Bruce, dev; +Cc: Richardson, Bruce, Nipun Gupta
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
-----Original Message-----
From: Xu, Rosen <rosen.xu@intel.com>
Sent: Thursday, July 23, 2020 7:26 AM
To: Richardson, Bruce <bruce.richardson@intel.com>; dev@dpdk.org
Cc: Richardson, Bruce <bruce.richardson@intel.com>; Nipun Gupta <nipun.gupta@nxp.com>; Hemant Agrawal <hemant.agrawal@nxp.com>
Subject: RE: [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs
Importance: High
Hi,
-----Original Message-----
From: dev <dev-bounces@dpdk.org> On Behalf Of Bruce Richardson
Sent: Monday, July 13, 2020 8:31 PM
To: dev@dpdk.org
Cc: Richardson, Bruce <bruce.richardson@intel.com>; Nipun Gupta <nipun.gupta@nxp.com>; Hemant Agrawal <hemant.agrawal@nxp.com>
Subject: [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs
Add to the documentation for 20.08 a notice about the changes of rawdev APIs proposed by patchset [1].
[1] https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Finbox.dpdk.org%2Fdev%2F20200709152047.167730-1-bruce.richardson%40intel.com%2F&data=02%7C01%7Chemant.agrawal%40nxp.com%7Cad3a0b27e46648a250d108d82eab80a3%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637310661421942508&sdata=DdzY9DbZwYzLjQasNhDKxxSSpFgbCc%2Foh9NZR1ksuB8%3D&reserved=0
Cc: Nipun Gupta <nipun.gupta@nxp.com>
Cc: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index ead7cbe43..21b00103e 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -117,6 +117,13 @@ Deprecation Notices
break the ABI checks, that is why change is planned for 20.11.
The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
+* rawdev: The rawdev APIs which take a device-specific structure as
+ parameter directly, or indirectly via a "private" pointer inside
+another
+ structure, will be modified to take an additional parameter of the
+ structure size. The affected APIs will include
+``rte_rawdev_info_get``,
+ ``rte_rawdev_configure``, ``rte_rawdev_queue_conf_get`` and
+ ``rte_rawdev_queue_setup``.
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
2.25.1
Acked-by: Rosen Xu <rosen.xu@intel.com>
^ permalink raw reply [relevance 5%]
* Re: [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs
2020-07-13 12:31 5% ` [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs Bruce Richardson
2020-07-13 12:48 5% ` Hemant Agrawal
2020-07-20 11:35 0% ` Ananyev, Konstantin
@ 2020-07-23 1:55 5% ` Xu, Rosen
2020-07-23 7:38 5% ` Hemant Agrawal
2 siblings, 1 reply; 200+ results
From: Xu, Rosen @ 2020-07-23 1:55 UTC (permalink / raw)
To: Richardson, Bruce, dev; +Cc: Richardson, Bruce, Nipun Gupta, Hemant Agrawal
Hi,
-----Original Message-----
From: dev <dev-bounces@dpdk.org> On Behalf Of Bruce Richardson
Sent: Monday, July 13, 2020 8:31 PM
To: dev@dpdk.org
Cc: Richardson, Bruce <bruce.richardson@intel.com>; Nipun Gupta <nipun.gupta@nxp.com>; Hemant Agrawal <hemant.agrawal@nxp.com>
Subject: [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs
Add to the documentation for 20.08 a notice about the changes of rawdev APIs proposed by patchset [1].
[1] http://inbox.dpdk.org/dev/20200709152047.167730-1-bruce.richardson@intel.com/
Cc: Nipun Gupta <nipun.gupta@nxp.com>
Cc: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index ead7cbe43..21b00103e 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -117,6 +117,13 @@ Deprecation Notices
break the ABI checks, that is why change is planned for 20.11.
The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
+* rawdev: The rawdev APIs which take a device-specific structure as
+ parameter directly, or indirectly via a "private" pointer inside
+another
+ structure, will be modified to take an additional parameter of the
+ structure size. The affected APIs will include
+``rte_rawdev_info_get``,
+ ``rte_rawdev_configure``, ``rte_rawdev_queue_conf_get`` and
+ ``rte_rawdev_queue_setup``.
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
2.25.1
Acked-by: Rosen Xu <rosen.xu@intel.com>
^ permalink raw reply [relevance 5%]
* [dpdk-dev] [dpdk-announce] release candidate 20.08-rc2
@ 2020-07-22 1:01 3% Thomas Monjalon
0 siblings, 0 replies; 200+ results
From: Thomas Monjalon @ 2020-07-22 1:01 UTC (permalink / raw)
To: announce
A new DPDK release candidate is ready for testing:
https://git.dpdk.org/dpdk/tag/?id=v20.08-rc2
There are 201 new patches in this snapshot.
Release notes:
http://doc.dpdk.org/guides/rel_notes/release_20_08.html
Highlights of 20.08-rc2:
- new mempool ring modes (RTS/HTS)
- new mlx5 regex driver
- warning when adding call to legacy atomic API
- warning when using Python 2
Some driver features have been dropped in last minute,
but are candidates for 20.08-rc3.
Except those exceptions, -rc3 should include only some bug fixes,
simple cleanups, doc and tooling.
We have one week to complete this milestone.
Then one more week (allowing -rc4) should be needed before the release.
Please test and report issues on bugs.dpdk.org.
As a community, we must close as many bugs as possible for -rc3.
Only two weeks are remaining to discuss API/ABI changes
allowed in the next major LTS branch (20.11).
Thank you everyone
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v2] lpm: fix unchecked return value
2020-07-21 17:10 3% ` Bruce Richardson
@ 2020-07-21 17:33 0% ` David Marchand
0 siblings, 0 replies; 200+ results
From: David Marchand @ 2020-07-21 17:33 UTC (permalink / raw)
To: Bruce Richardson, Medvedkin, Vladimir
Cc: Ruifeng Wang, dev, nd, Honnappa Nagarahalli, Phil Yang
On Tue, Jul 21, 2020 at 7:16 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Tue, Jul 21, 2020 at 05:23:02PM +0100, Medvedkin, Vladimir wrote:
> > Hi Ruifeng,
> >
> > On 18/07/2020 10:22, Ruifeng Wang wrote:
> > >
> > > > -----Original Message-----
> > > > From: Medvedkin, Vladimir <vladimir.medvedkin@intel.com>
> > > > Sent: Saturday, July 18, 2020 1:12 AM
> > > > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
> > > > <bruce.richardson@intel.com>
> > > > Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
> > > > <Honnappa.Nagarahalli@arm.com>; Phil Yang <Phil.Yang@arm.com>
> > > > Subject: Re: [PATCH v2] lpm: fix unchecked return value
> > > >
> > > > Hi Ruifeng,
> > > >
> > > Hi Vladimir,
> > >
> > > > On 16/07/2020 16:49, Ruifeng Wang wrote:
> > > > > Coverity complains about unchecked return value of
> > > > rte_rcu_qsbr_dq_enqueue.
> > > > > By default, defer queue size is big enough to hold all tbl8 groups.
> > > > > When enqueue fails, return error to the user to indicate system issue.
> > > > >
> > > > > Coverity issue: 360832
> > > > > Fixes: 8a9f8564e9f9 ("lpm: implement RCU rule reclamation")
> > > > >
> > > > > Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > > > > ---
> > > > > v2:
> > > > > Converted return value to conform to LPM API convention. (Vladimir)
> > > > >
> > > > > lib/librte_lpm/rte_lpm.c | 19 +++++++++++++------
> > > > > 1 file changed, 13 insertions(+), 6 deletions(-)
> > > > >
> > > > > diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index
> > > > > 2db9e16a2..757436f49 100644
> > > > > --- a/lib/librte_lpm/rte_lpm.c
> > > > > +++ b/lib/librte_lpm/rte_lpm.c
> > > > > @@ -532,11 +532,12 @@ tbl8_alloc(struct rte_lpm *lpm)
> > > > > return group_idx;
> > > > > }
> > > > >
> > > > > -static void
> > > > > +static int32_t
> > > > > tbl8_free(struct rte_lpm *lpm, uint32_t tbl8_group_start)
> > > > > {
> > > > > struct rte_lpm_tbl_entry zero_tbl8_entry = {0};
> > > > > struct __rte_lpm *internal_lpm;
> > > > > + int status;
> > > > >
> > > > > internal_lpm = container_of(lpm, struct __rte_lpm, lpm);
> > > > > if (internal_lpm->v == NULL) {
> > > > > @@ -552,9 +553,15 @@ tbl8_free(struct rte_lpm *lpm, uint32_t
> > > > tbl8_group_start)
> > > > > __ATOMIC_RELAXED);
> > > > > } else if (internal_lpm->rcu_mode == RTE_LPM_QSBR_MODE_DQ) {
> > > > > /* Push into QSBR defer queue. */
> > > > > - rte_rcu_qsbr_dq_enqueue(internal_lpm->dq,
> > > > > + status = rte_rcu_qsbr_dq_enqueue(internal_lpm->dq,
> > > > > (void *)&tbl8_group_start);
> > > > > + if (status == 1) {
> > > > > + RTE_LOG(ERR, LPM, "Failed to push QSBR FIFO\n");
> > > > > + return -rte_errno;
> > > > > + }
> > > > > }
> > > > > +
> > > > > + return 0;
> > > > > }
> > > > >
> > > > > static __rte_noinline int32_t
> > > > > @@ -1040,7 +1047,7 @@ delete_depth_big(struct rte_lpm *lpm, uint32_t
> > > > ip_masked,
> > > > > #define group_idx next_hop
> > > > > uint32_t tbl24_index, tbl8_group_index, tbl8_group_start,
> > > > tbl8_index,
> > > > > tbl8_range, i;
> > > > > - int32_t tbl8_recycle_index;
> > > > > + int32_t tbl8_recycle_index, status = 0;
> > > > >
> > > > > /*
> > > > > * Calculate the index into tbl24 and range. Note: All depths
> > > > > larger @@ -1097,7 +1104,7 @@ delete_depth_big(struct rte_lpm *lpm,
> > > > uint32_t ip_masked,
> > > > > */
> > > > > lpm->tbl24[tbl24_index].valid = 0;
> > > > > __atomic_thread_fence(__ATOMIC_RELEASE);
> > > > > - tbl8_free(lpm, tbl8_group_start);
> > > > > + status = tbl8_free(lpm, tbl8_group_start);
> > > > > } else if (tbl8_recycle_index > -1) {
> > > > > /* Update tbl24 entry. */
> > > > > struct rte_lpm_tbl_entry new_tbl24_entry = { @@ -1113,10
> > > > +1120,10
> > > > > @@ delete_depth_big(struct rte_lpm *lpm, uint32_t ip_masked,
> > > > > __atomic_store(&lpm->tbl24[tbl24_index],
> > > > &new_tbl24_entry,
> > > > > __ATOMIC_RELAXED);
> > > > > __atomic_thread_fence(__ATOMIC_RELEASE);
> > > > > - tbl8_free(lpm, tbl8_group_start);
> > > > > + status = tbl8_free(lpm, tbl8_group_start);
> > > > > }
> > > > > #undef group_idx
> > > > > - return 0;
> > > > > + return status;
> > > >
> > > > This will change rte_lpm_delete API. As a suggestion, you can leave it as it
> > > > was before ("return 0"), and send separate patch (with "return status)"
> > > > which will be targeted to 20.11.
> > > >
> > >
> > > Is the change of API because a variable is returned instead of constant?
> > > The patch passed ABI check on Travis: http://mails.dpdk.org/archives/test-report/2020-July/144864.html
> > > So I didn't know there is API/ABI issue.
> >
> >
> > Because new error status codes are returned. At the moment rte_lpm_delete()
> > returns only -EINVAL. After patches it will also returns -ENOSPC. The user's
> > code may not handle this returned error status.
> >
> > On the other hand, from documentation about returned value:
> > "0 on success, negative value otherwise",
> > and given the fact that this behavior is only after calling
> > rte_lpm_rcu_qsbr_add(), I think we can accept this patch.
> > Bruce, please correct me.
> >
> That sounds reasonable to me. No change in the committed ABI, since the
> specific values are not called out.
>
I will take this as a second ack and merge this fix for rc2.
Thanks.
--
David Marchand
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] lpm: fix unchecked return value
2020-07-21 16:23 0% ` Medvedkin, Vladimir
@ 2020-07-21 17:10 3% ` Bruce Richardson
2020-07-21 17:33 0% ` David Marchand
0 siblings, 1 reply; 200+ results
From: Bruce Richardson @ 2020-07-21 17:10 UTC (permalink / raw)
To: Medvedkin, Vladimir
Cc: Ruifeng Wang, dev, nd, Honnappa Nagarahalli, Phil Yang
On Tue, Jul 21, 2020 at 05:23:02PM +0100, Medvedkin, Vladimir wrote:
> Hi Ruifeng,
>
> On 18/07/2020 10:22, Ruifeng Wang wrote:
> >
> > > -----Original Message-----
> > > From: Medvedkin, Vladimir <vladimir.medvedkin@intel.com>
> > > Sent: Saturday, July 18, 2020 1:12 AM
> > > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
> > > <bruce.richardson@intel.com>
> > > Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
> > > <Honnappa.Nagarahalli@arm.com>; Phil Yang <Phil.Yang@arm.com>
> > > Subject: Re: [PATCH v2] lpm: fix unchecked return value
> > >
> > > Hi Ruifeng,
> > >
> > Hi Vladimir,
> >
> > > On 16/07/2020 16:49, Ruifeng Wang wrote:
> > > > Coverity complains about unchecked return value of
> > > rte_rcu_qsbr_dq_enqueue.
> > > > By default, defer queue size is big enough to hold all tbl8 groups.
> > > > When enqueue fails, return error to the user to indicate system issue.
> > > >
> > > > Coverity issue: 360832
> > > > Fixes: 8a9f8564e9f9 ("lpm: implement RCU rule reclamation")
> > > >
> > > > Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > > > ---
> > > > v2:
> > > > Converted return value to conform to LPM API convention. (Vladimir)
> > > >
> > > > lib/librte_lpm/rte_lpm.c | 19 +++++++++++++------
> > > > 1 file changed, 13 insertions(+), 6 deletions(-)
> > > >
> > > > diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index
> > > > 2db9e16a2..757436f49 100644
> > > > --- a/lib/librte_lpm/rte_lpm.c
> > > > +++ b/lib/librte_lpm/rte_lpm.c
> > > > @@ -532,11 +532,12 @@ tbl8_alloc(struct rte_lpm *lpm)
> > > > return group_idx;
> > > > }
> > > >
> > > > -static void
> > > > +static int32_t
> > > > tbl8_free(struct rte_lpm *lpm, uint32_t tbl8_group_start)
> > > > {
> > > > struct rte_lpm_tbl_entry zero_tbl8_entry = {0};
> > > > struct __rte_lpm *internal_lpm;
> > > > + int status;
> > > >
> > > > internal_lpm = container_of(lpm, struct __rte_lpm, lpm);
> > > > if (internal_lpm->v == NULL) {
> > > > @@ -552,9 +553,15 @@ tbl8_free(struct rte_lpm *lpm, uint32_t
> > > tbl8_group_start)
> > > > __ATOMIC_RELAXED);
> > > > } else if (internal_lpm->rcu_mode == RTE_LPM_QSBR_MODE_DQ) {
> > > > /* Push into QSBR defer queue. */
> > > > - rte_rcu_qsbr_dq_enqueue(internal_lpm->dq,
> > > > + status = rte_rcu_qsbr_dq_enqueue(internal_lpm->dq,
> > > > (void *)&tbl8_group_start);
> > > > + if (status == 1) {
> > > > + RTE_LOG(ERR, LPM, "Failed to push QSBR FIFO\n");
> > > > + return -rte_errno;
> > > > + }
> > > > }
> > > > +
> > > > + return 0;
> > > > }
> > > >
> > > > static __rte_noinline int32_t
> > > > @@ -1040,7 +1047,7 @@ delete_depth_big(struct rte_lpm *lpm, uint32_t
> > > ip_masked,
> > > > #define group_idx next_hop
> > > > uint32_t tbl24_index, tbl8_group_index, tbl8_group_start,
> > > tbl8_index,
> > > > tbl8_range, i;
> > > > - int32_t tbl8_recycle_index;
> > > > + int32_t tbl8_recycle_index, status = 0;
> > > >
> > > > /*
> > > > * Calculate the index into tbl24 and range. Note: All depths
> > > > larger @@ -1097,7 +1104,7 @@ delete_depth_big(struct rte_lpm *lpm,
> > > uint32_t ip_masked,
> > > > */
> > > > lpm->tbl24[tbl24_index].valid = 0;
> > > > __atomic_thread_fence(__ATOMIC_RELEASE);
> > > > - tbl8_free(lpm, tbl8_group_start);
> > > > + status = tbl8_free(lpm, tbl8_group_start);
> > > > } else if (tbl8_recycle_index > -1) {
> > > > /* Update tbl24 entry. */
> > > > struct rte_lpm_tbl_entry new_tbl24_entry = { @@ -1113,10
> > > +1120,10
> > > > @@ delete_depth_big(struct rte_lpm *lpm, uint32_t ip_masked,
> > > > __atomic_store(&lpm->tbl24[tbl24_index],
> > > &new_tbl24_entry,
> > > > __ATOMIC_RELAXED);
> > > > __atomic_thread_fence(__ATOMIC_RELEASE);
> > > > - tbl8_free(lpm, tbl8_group_start);
> > > > + status = tbl8_free(lpm, tbl8_group_start);
> > > > }
> > > > #undef group_idx
> > > > - return 0;
> > > > + return status;
> > >
> > > This will change rte_lpm_delete API. As a suggestion, you can leave it as it
> > > was before ("return 0"), and send separate patch (with "return status)"
> > > which will be targeted to 20.11.
> > >
> >
> > Is the change of API because a variable is returned instead of constant?
> > The patch passed ABI check on Travis: http://mails.dpdk.org/archives/test-report/2020-July/144864.html
> > So I didn't know there is API/ABI issue.
>
>
> Because new error status codes are returned. At the moment rte_lpm_delete()
> returns only -EINVAL. After patches it will also returns -ENOSPC. The user's
> code may not handle this returned error status.
>
> On the other hand, from documentation about returned value:
> "0 on success, negative value otherwise",
> and given the fact that this behavior is only after calling
> rte_lpm_rcu_qsbr_add(), I think we can accept this patch.
> Bruce, please correct me.
>
That sounds reasonable to me. No change in the committed ABI, since the
specific values are not called out.
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v2] lpm: fix unchecked return value
2020-07-18 9:22 4% ` Ruifeng Wang
@ 2020-07-21 16:23 0% ` Medvedkin, Vladimir
2020-07-21 17:10 3% ` Bruce Richardson
0 siblings, 1 reply; 200+ results
From: Medvedkin, Vladimir @ 2020-07-21 16:23 UTC (permalink / raw)
To: Ruifeng Wang, Bruce Richardson; +Cc: dev, nd, Honnappa Nagarahalli, Phil Yang
Hi Ruifeng,
On 18/07/2020 10:22, Ruifeng Wang wrote:
>
>> -----Original Message-----
>> From: Medvedkin, Vladimir <vladimir.medvedkin@intel.com>
>> Sent: Saturday, July 18, 2020 1:12 AM
>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
>> <bruce.richardson@intel.com>
>> Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
>> <Honnappa.Nagarahalli@arm.com>; Phil Yang <Phil.Yang@arm.com>
>> Subject: Re: [PATCH v2] lpm: fix unchecked return value
>>
>> Hi Ruifeng,
>>
> Hi Vladimir,
>
>> On 16/07/2020 16:49, Ruifeng Wang wrote:
>>> Coverity complains about unchecked return value of
>> rte_rcu_qsbr_dq_enqueue.
>>> By default, defer queue size is big enough to hold all tbl8 groups.
>>> When enqueue fails, return error to the user to indicate system issue.
>>>
>>> Coverity issue: 360832
>>> Fixes: 8a9f8564e9f9 ("lpm: implement RCU rule reclamation")
>>>
>>> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
>>> ---
>>> v2:
>>> Converted return value to conform to LPM API convention. (Vladimir)
>>>
>>> lib/librte_lpm/rte_lpm.c | 19 +++++++++++++------
>>> 1 file changed, 13 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index
>>> 2db9e16a2..757436f49 100644
>>> --- a/lib/librte_lpm/rte_lpm.c
>>> +++ b/lib/librte_lpm/rte_lpm.c
>>> @@ -532,11 +532,12 @@ tbl8_alloc(struct rte_lpm *lpm)
>>> return group_idx;
>>> }
>>>
>>> -static void
>>> +static int32_t
>>> tbl8_free(struct rte_lpm *lpm, uint32_t tbl8_group_start)
>>> {
>>> struct rte_lpm_tbl_entry zero_tbl8_entry = {0};
>>> struct __rte_lpm *internal_lpm;
>>> + int status;
>>>
>>> internal_lpm = container_of(lpm, struct __rte_lpm, lpm);
>>> if (internal_lpm->v == NULL) {
>>> @@ -552,9 +553,15 @@ tbl8_free(struct rte_lpm *lpm, uint32_t
>> tbl8_group_start)
>>> __ATOMIC_RELAXED);
>>> } else if (internal_lpm->rcu_mode == RTE_LPM_QSBR_MODE_DQ) {
>>> /* Push into QSBR defer queue. */
>>> - rte_rcu_qsbr_dq_enqueue(internal_lpm->dq,
>>> + status = rte_rcu_qsbr_dq_enqueue(internal_lpm->dq,
>>> (void *)&tbl8_group_start);
>>> + if (status == 1) {
>>> + RTE_LOG(ERR, LPM, "Failed to push QSBR FIFO\n");
>>> + return -rte_errno;
>>> + }
>>> }
>>> +
>>> + return 0;
>>> }
>>>
>>> static __rte_noinline int32_t
>>> @@ -1040,7 +1047,7 @@ delete_depth_big(struct rte_lpm *lpm, uint32_t
>> ip_masked,
>>> #define group_idx next_hop
>>> uint32_t tbl24_index, tbl8_group_index, tbl8_group_start,
>> tbl8_index,
>>> tbl8_range, i;
>>> - int32_t tbl8_recycle_index;
>>> + int32_t tbl8_recycle_index, status = 0;
>>>
>>> /*
>>> * Calculate the index into tbl24 and range. Note: All depths
>>> larger @@ -1097,7 +1104,7 @@ delete_depth_big(struct rte_lpm *lpm,
>> uint32_t ip_masked,
>>> */
>>> lpm->tbl24[tbl24_index].valid = 0;
>>> __atomic_thread_fence(__ATOMIC_RELEASE);
>>> - tbl8_free(lpm, tbl8_group_start);
>>> + status = tbl8_free(lpm, tbl8_group_start);
>>> } else if (tbl8_recycle_index > -1) {
>>> /* Update tbl24 entry. */
>>> struct rte_lpm_tbl_entry new_tbl24_entry = { @@ -1113,10
>> +1120,10
>>> @@ delete_depth_big(struct rte_lpm *lpm, uint32_t ip_masked,
>>> __atomic_store(&lpm->tbl24[tbl24_index],
>> &new_tbl24_entry,
>>> __ATOMIC_RELAXED);
>>> __atomic_thread_fence(__ATOMIC_RELEASE);
>>> - tbl8_free(lpm, tbl8_group_start);
>>> + status = tbl8_free(lpm, tbl8_group_start);
>>> }
>>> #undef group_idx
>>> - return 0;
>>> + return status;
>>
>> This will change rte_lpm_delete API. As a suggestion, you can leave it as it
>> was before ("return 0"), and send separate patch (with "return status)"
>> which will be targeted to 20.11.
>>
>
> Is the change of API because a variable is returned instead of constant?
> The patch passed ABI check on Travis: http://mails.dpdk.org/archives/test-report/2020-July/144864.html
> So I didn't know there is API/ABI issue.
Because new error status codes are returned. At the moment
rte_lpm_delete() returns only -EINVAL. After patches it will also
returns -ENOSPC. The user's code may not handle this returned error status.
On the other hand, from documentation about returned value:
"0 on success, negative value otherwise",
and given the fact that this behavior is only after calling
rte_lpm_rcu_qsbr_add(), I think we can accept this patch.
Bruce, please correct me.
>
> Thanks.
> /Ruifeng
>>> }
>>>
>>> /*
>>>
>>
>> --
>> Regards,
>> Vladimir
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
--
Regards,
Vladimir
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs
2020-07-13 12:31 5% ` [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs Bruce Richardson
2020-07-13 12:48 5% ` Hemant Agrawal
@ 2020-07-20 11:35 0% ` Ananyev, Konstantin
2020-07-23 1:55 5% ` Xu, Rosen
2 siblings, 0 replies; 200+ results
From: Ananyev, Konstantin @ 2020-07-20 11:35 UTC (permalink / raw)
To: Richardson, Bruce, dev; +Cc: Richardson, Bruce, Nipun Gupta, Hemant Agrawal
> Add to the documentation for 20.08 a notice about the changes of rawdev
> APIs proposed by patchset [1].
>
> [1] http://inbox.dpdk.org/dev/20200709152047.167730-1-bruce.richardson@intel.com/
>
> Cc: Nipun Gupta <nipun.gupta@nxp.com>
> Cc: Hemant Agrawal <hemant.agrawal@nxp.com>
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index ead7cbe43..21b00103e 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -117,6 +117,13 @@ Deprecation Notices
> break the ABI checks, that is why change is planned for 20.11.
> The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
>
> +* rawdev: The rawdev APIs which take a device-specific structure as
> + parameter directly, or indirectly via a "private" pointer inside another
> + structure, will be modified to take an additional parameter of the
> + structure size. The affected APIs will include ``rte_rawdev_info_get``,
> + ``rte_rawdev_configure``, ``rte_rawdev_queue_conf_get`` and
> + ``rte_rawdev_queue_setup``.
> +
> * traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
> ABI stable in the v19.11 release. The TM maintainer and other contributors have
> agreed to keep the TM APIs as experimental in expectation of additional spec
> --
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com
> 2.25.1
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] lpm: fix unchecked return value
@ 2020-07-18 9:22 4% ` Ruifeng Wang
2020-07-21 16:23 0% ` Medvedkin, Vladimir
0 siblings, 1 reply; 200+ results
From: Ruifeng Wang @ 2020-07-18 9:22 UTC (permalink / raw)
To: Medvedkin, Vladimir, Bruce Richardson
Cc: dev, nd, Honnappa Nagarahalli, Phil Yang, nd
> -----Original Message-----
> From: Medvedkin, Vladimir <vladimir.medvedkin@intel.com>
> Sent: Saturday, July 18, 2020 1:12 AM
> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
> <bruce.richardson@intel.com>
> Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Phil Yang <Phil.Yang@arm.com>
> Subject: Re: [PATCH v2] lpm: fix unchecked return value
>
> Hi Ruifeng,
>
Hi Vladimir,
> On 16/07/2020 16:49, Ruifeng Wang wrote:
> > Coverity complains about unchecked return value of
> rte_rcu_qsbr_dq_enqueue.
> > By default, defer queue size is big enough to hold all tbl8 groups.
> > When enqueue fails, return error to the user to indicate system issue.
> >
> > Coverity issue: 360832
> > Fixes: 8a9f8564e9f9 ("lpm: implement RCU rule reclamation")
> >
> > Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > ---
> > v2:
> > Converted return value to conform to LPM API convention. (Vladimir)
> >
> > lib/librte_lpm/rte_lpm.c | 19 +++++++++++++------
> > 1 file changed, 13 insertions(+), 6 deletions(-)
> >
> > diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index
> > 2db9e16a2..757436f49 100644
> > --- a/lib/librte_lpm/rte_lpm.c
> > +++ b/lib/librte_lpm/rte_lpm.c
> > @@ -532,11 +532,12 @@ tbl8_alloc(struct rte_lpm *lpm)
> > return group_idx;
> > }
> >
> > -static void
> > +static int32_t
> > tbl8_free(struct rte_lpm *lpm, uint32_t tbl8_group_start)
> > {
> > struct rte_lpm_tbl_entry zero_tbl8_entry = {0};
> > struct __rte_lpm *internal_lpm;
> > + int status;
> >
> > internal_lpm = container_of(lpm, struct __rte_lpm, lpm);
> > if (internal_lpm->v == NULL) {
> > @@ -552,9 +553,15 @@ tbl8_free(struct rte_lpm *lpm, uint32_t
> tbl8_group_start)
> > __ATOMIC_RELAXED);
> > } else if (internal_lpm->rcu_mode == RTE_LPM_QSBR_MODE_DQ) {
> > /* Push into QSBR defer queue. */
> > - rte_rcu_qsbr_dq_enqueue(internal_lpm->dq,
> > + status = rte_rcu_qsbr_dq_enqueue(internal_lpm->dq,
> > (void *)&tbl8_group_start);
> > + if (status == 1) {
> > + RTE_LOG(ERR, LPM, "Failed to push QSBR FIFO\n");
> > + return -rte_errno;
> > + }
> > }
> > +
> > + return 0;
> > }
> >
> > static __rte_noinline int32_t
> > @@ -1040,7 +1047,7 @@ delete_depth_big(struct rte_lpm *lpm, uint32_t
> ip_masked,
> > #define group_idx next_hop
> > uint32_t tbl24_index, tbl8_group_index, tbl8_group_start,
> tbl8_index,
> > tbl8_range, i;
> > - int32_t tbl8_recycle_index;
> > + int32_t tbl8_recycle_index, status = 0;
> >
> > /*
> > * Calculate the index into tbl24 and range. Note: All depths
> > larger @@ -1097,7 +1104,7 @@ delete_depth_big(struct rte_lpm *lpm,
> uint32_t ip_masked,
> > */
> > lpm->tbl24[tbl24_index].valid = 0;
> > __atomic_thread_fence(__ATOMIC_RELEASE);
> > - tbl8_free(lpm, tbl8_group_start);
> > + status = tbl8_free(lpm, tbl8_group_start);
> > } else if (tbl8_recycle_index > -1) {
> > /* Update tbl24 entry. */
> > struct rte_lpm_tbl_entry new_tbl24_entry = { @@ -1113,10
> +1120,10
> > @@ delete_depth_big(struct rte_lpm *lpm, uint32_t ip_masked,
> > __atomic_store(&lpm->tbl24[tbl24_index],
> &new_tbl24_entry,
> > __ATOMIC_RELAXED);
> > __atomic_thread_fence(__ATOMIC_RELEASE);
> > - tbl8_free(lpm, tbl8_group_start);
> > + status = tbl8_free(lpm, tbl8_group_start);
> > }
> > #undef group_idx
> > - return 0;
> > + return status;
>
> This will change rte_lpm_delete API. As a suggestion, you can leave it as it
> was before ("return 0"), and send separate patch (with "return status)"
> which will be targeted to 20.11.
>
Is the change of API because a variable is returned instead of constant?
The patch passed ABI check on Travis: http://mails.dpdk.org/archives/test-report/2020-July/144864.html
So I didn't know there is API/ABI issue.
Thanks.
/Ruifeng
> > }
> >
> > /*
> >
>
> --
> Regards,
> Vladimir
^ permalink raw reply [relevance 4%]
* [dpdk-dev] [PATCH v5 1/2] mbuf: use C11 atomic builtins for refcnt operations
2020-07-15 12:29 0% ` David Marchand
@ 2020-07-17 4:36 4% ` Phil Yang
1 sibling, 0 replies; 200+ results
From: Phil Yang @ 2020-07-17 4:36 UTC (permalink / raw)
To: david.marchand, dev
Cc: olivier.matz, stephen, drc, Honnappa.Nagarahalli, Ruifeng.Wang,
nd, Ray Kinsella, Neil Horman
Use C11 atomic builtins with explicit ordering instead of rte_atomic
ops which enforce unnecessary barriers on aarch64.
Suggested-by: Olivier Matz <olivier.matz@6wind.com>
Suggested-by: Dodji Seketeli <dodji@redhat.com>
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
---
v5:
1. Change built-ins to builtins.
2. Ignore updates of rte_mbuf_ext_shared_info refcnt_atomic in ABI
checker.
v4:
1. Add union for refcnt_atomic and refcnt in rte_mbuf_ext_shared_info
to avoid ABI breakage. (Olivier)
2. Add notice of refcnt_atomic deprecation. (Honnappa)
v3:
1.Fix ABI breakage.
2.Simplify data type cast.
v2:
Fix ABI issue: revert the rte_mbuf_ext_shared_info struct refcnt field
to refcnt_atomic.
devtools/libabigail.abignore | 4 ++++
lib/librte_mbuf/rte_mbuf.c | 1 -
lib/librte_mbuf/rte_mbuf.h | 19 ++++++++++---------
lib/librte_mbuf/rte_mbuf_core.h | 6 +++++-
4 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index daa4631..9fea822 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -52,6 +52,10 @@
[suppress_type]
type_kind = struct
name = rte_epoll_event
+; Ignore updates of rte_mbuf_ext_shared_info refcnt_atomic
+[suppress_type]
+ name = rte_mbuf_ext_shared_info
+ has_data_member_inserted_between = {offset_of(refcnt_atomic), offset_of(refcnt_atomic)}
;;;;;;;;;;;;;;;;;;;;;;
; Temporary exceptions till DPDK 20.11
diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
index ae91ae2..8a456e5 100644
--- a/lib/librte_mbuf/rte_mbuf.c
+++ b/lib/librte_mbuf/rte_mbuf.c
@@ -22,7 +22,6 @@
#include <rte_eal.h>
#include <rte_per_lcore.h>
#include <rte_lcore.h>
-#include <rte_atomic.h>
#include <rte_branch_prediction.h>
#include <rte_mempool.h>
#include <rte_mbuf.h>
diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index f8e492e..7259575 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -37,7 +37,6 @@
#include <rte_config.h>
#include <rte_mempool.h>
#include <rte_memory.h>
-#include <rte_atomic.h>
#include <rte_prefetch.h>
#include <rte_branch_prediction.h>
#include <rte_byteorder.h>
@@ -365,7 +364,7 @@ rte_pktmbuf_priv_flags(struct rte_mempool *mp)
static inline uint16_t
rte_mbuf_refcnt_read(const struct rte_mbuf *m)
{
- return (uint16_t)(rte_atomic16_read(&m->refcnt_atomic));
+ return __atomic_load_n(&m->refcnt, __ATOMIC_RELAXED);
}
/**
@@ -378,14 +377,15 @@ rte_mbuf_refcnt_read(const struct rte_mbuf *m)
static inline void
rte_mbuf_refcnt_set(struct rte_mbuf *m, uint16_t new_value)
{
- rte_atomic16_set(&m->refcnt_atomic, (int16_t)new_value);
+ __atomic_store_n(&m->refcnt, new_value, __ATOMIC_RELAXED);
}
/* internal */
static inline uint16_t
__rte_mbuf_refcnt_update(struct rte_mbuf *m, int16_t value)
{
- return (uint16_t)(rte_atomic16_add_return(&m->refcnt_atomic, value));
+ return __atomic_add_fetch(&m->refcnt, (uint16_t)value,
+ __ATOMIC_ACQ_REL);
}
/**
@@ -466,7 +466,7 @@ rte_mbuf_refcnt_set(struct rte_mbuf *m, uint16_t new_value)
static inline uint16_t
rte_mbuf_ext_refcnt_read(const struct rte_mbuf_ext_shared_info *shinfo)
{
- return (uint16_t)(rte_atomic16_read(&shinfo->refcnt_atomic));
+ return __atomic_load_n(&shinfo->refcnt, __ATOMIC_RELAXED);
}
/**
@@ -481,7 +481,7 @@ static inline void
rte_mbuf_ext_refcnt_set(struct rte_mbuf_ext_shared_info *shinfo,
uint16_t new_value)
{
- rte_atomic16_set(&shinfo->refcnt_atomic, (int16_t)new_value);
+ __atomic_store_n(&shinfo->refcnt, new_value, __ATOMIC_RELAXED);
}
/**
@@ -505,7 +505,8 @@ rte_mbuf_ext_refcnt_update(struct rte_mbuf_ext_shared_info *shinfo,
return (uint16_t)value;
}
- return (uint16_t)rte_atomic16_add_return(&shinfo->refcnt_atomic, value);
+ return __atomic_add_fetch(&shinfo->refcnt, (uint16_t)value,
+ __ATOMIC_ACQ_REL);
}
/** Mbuf prefetch */
@@ -1304,8 +1305,8 @@ static inline int __rte_pktmbuf_pinned_extbuf_decref(struct rte_mbuf *m)
* Direct usage of add primitive to avoid
* duplication of comparing with one.
*/
- if (likely(rte_atomic16_add_return
- (&shinfo->refcnt_atomic, -1)))
+ if (likely(__atomic_add_fetch(&shinfo->refcnt, (uint16_t)-1,
+ __ATOMIC_ACQ_REL)))
return 1;
/* Reinitialize counter before mbuf freeing. */
diff --git a/lib/librte_mbuf/rte_mbuf_core.h b/lib/librte_mbuf/rte_mbuf_core.h
index 16600f1..8cd7137 100644
--- a/lib/librte_mbuf/rte_mbuf_core.h
+++ b/lib/librte_mbuf/rte_mbuf_core.h
@@ -679,7 +679,11 @@ typedef void (*rte_mbuf_extbuf_free_callback_t)(void *addr, void *opaque);
struct rte_mbuf_ext_shared_info {
rte_mbuf_extbuf_free_callback_t free_cb; /**< Free callback function */
void *fcb_opaque; /**< Free callback argument */
- rte_atomic16_t refcnt_atomic; /**< Atomically accessed refcnt */
+ RTE_STD_C11
+ union {
+ rte_atomic16_t refcnt_atomic; /**< Atomically accessed refcnt */
+ uint16_t refcnt;
+ };
};
/**< Maximum number of nb_segs allowed. */
--
2.7.4
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH v4 1/2] mbuf: use C11 atomic built-ins for refcnt operations
2020-07-16 4:16 0% ` Phil Yang
@ 2020-07-16 11:30 4% ` David Marchand
0 siblings, 0 replies; 200+ results
From: David Marchand @ 2020-07-16 11:30 UTC (permalink / raw)
To: Phil Yang, Olivier Matz, Dodji Seketeli, Ray Kinsella
Cc: dev, Stephen Hemminger, David Christensen, Honnappa Nagarahalli,
Ruifeng Wang, nd, Aaron Conole
On Thu, Jul 16, 2020 at 6:16 AM Phil Yang <Phil.Yang@arm.com> wrote:
>
> David Marchand <david.marchand@redhat.com> writes:
>
> > Subject: Re: [PATCH v4 1/2] mbuf: use C11 atomic built-ins for refcnt
> > operations
> >
> > On Thu, Jul 9, 2020 at 5:59 PM Phil Yang <phil.yang@arm.com> wrote:
> > >
> > > Use C11 atomic built-ins with explicit ordering instead of rte_atomic
> > > ops which enforce unnecessary barriers on aarch64.
> > >
> > > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > > ---
> > > v4:
> > > 1. Add union for refcnt_atomic and refcnt in rte_mbuf_ext_shared_info
> > > to avoid ABI breakage. (Olivier)
> > > 2. Add notice of refcnt_atomic deprecation. (Honnappa)
> >
> > v4 does not pass the checks (in both my env, and Travis).
> > https://travis-ci.com/github/ovsrobot/dpdk/jobs/359393389#L2405
>
> I think we need an exception in 'libabigail.abignore' for this change.
> Is that OK with you?
Testing the series with libabigail 1.7.0:
Functions changes summary: 0 Removed, 1 Changed (6 filtered out), 0
Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
1 function with some indirect sub-type change:
[C]'function unsigned int rte_reorder_drain(rte_reorder_buffer*,
rte_mbuf**, unsigned int)' at rte_reorder.c:367:1 has some indirect
sub-type changes:
parameter 2 of type 'rte_mbuf**' has sub-type changes:
in pointed to type 'rte_mbuf*':
in pointed to type 'struct rte_mbuf' at rte_mbuf_core.h:469:1:
type size hasn't changed
1 data member changes (1 filtered):
type of 'rte_mbuf_ext_shared_info* rte_mbuf::shinfo' changed:
in pointed to type 'struct rte_mbuf_ext_shared_info' at
rte_mbuf_core.h:679:1:
type size hasn't changed
1 data member change:
data member rte_atomic16_t
rte_mbuf_ext_shared_info::refcnt_atomic at offset 128 (in bits) became
anonymous data member 'union {rte_atomic16_t refcnt_atomic; uint16_t
refcnt;}'
Error: ABI issue reported for 'abidiff --suppr
/home/dmarchan/dpdk/devtools/../devtools/libabigail.abignore
--no-added-syms --headers-dir1
/home/dmarchan/abi/v20.05/build-gcc-static/usr/local/include
--headers-dir2 /home/dmarchan/builds/build-gcc-static/install/usr/local/include
/home/dmarchan/abi/v20.05/build-gcc-static/dump/librte_reorder.dump
/home/dmarchan/builds/build-gcc-static/install/dump/librte_reorder.dump'
ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged
this as a potential issue).
We will have no other update on mbuf for 20.08, so the following rule
can do the job for 20.08 and we will remove it in 20.11.
diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index daa4631bf..b35f91257 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -52,6 +52,10 @@
[suppress_type]
type_kind = struct
name = rte_epoll_event
+; Ignore updates of rte_mbuf_ext_shared_info
+[suppress_type]
+ type_kind = struct
+ name = rte_mbuf_ext_shared_info
;;;;;;;;;;;;;;;;;;;;;;
; Temporary exceptions till DPDK 20.11
Olivier, Dodji, Ray?
--
David Marchand
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [RFC PATCH 0/2] Enable dyynamic configuration of subport bandwidth profile
2020-07-15 18:27 3% [dpdk-dev] [RFC PATCH 0/2] Enable dyynamic configuration of subport bandwidth profile Savinay Dharmappa
@ 2020-07-16 8:14 0% ` Singh, Jasvinder
0 siblings, 0 replies; 200+ results
From: Singh, Jasvinder @ 2020-07-16 8:14 UTC (permalink / raw)
To: Dharmappa, Savinay, dev, Dumitrescu, Cristian
> -----Original Message-----
> From: Dharmappa, Savinay <savinay.dharmappa@intel.com>
> Sent: Wednesday, July 15, 2020 7:28 PM
> To: Dharmappa, Savinay <savinay.dharmappa@intel.com>; Singh, Jasvinder
> <jasvinder.singh@intel.com>; dev@dpdk.org
> Subject: [RFC PATCH 0/2] Enable dyynamic configuration of subport
> bandwidth profile
>
> DPDK sched library allows runtime configuration of the pipe profiles to the
> pipes of the subport once scheduler hierarchy is constructed. However, to
> change the subport level bandwidth, existing hierarchy needs to be
> dismantled and whole process of building hierarchy under subport nodes
> needs to be repeated which might result in router downtime. Furthermore,
> due to lack of dynamic configuration of the subport bandwidth profile
> configuration (shaper and Traffic class rates), the user application is unable
> to dynamically re-distribute the excess-bandwidth of one subport among
> other subports in the scheduler hierarchy. Therefore, it is also not possible to
> adjust the subport bandwidth profile in sync with dynamic changes in pipe
> profiles of subscribers who want to consume higher bandwidth
> opportunistically.
>
> This RFC proposes dynamic configuration of the subport bandwidth profile to
> overcome the runtime situation when group of subscribers are not using the
> allotted bandwidth and dynamic bandwidth re-distribution is needed the
> without making any structural changes in the hierarchy.
>
> The implementation work includes refactoring the existing data structures
> defined for port and subport level, new APIs for adding subport level
> bandwidth profiles that can be used in runtime which causes API/ABI change.
> Therefore, deprecation notice will be sent out soon.
>
> Savinay Dharmappa (2):
> sched: add dynamic config of subport bandwidth profile
> example/qos_sched: subport bandwidth dynmaic conf
>
> examples/qos_sched/cfg_file.c | 158 ++++++-----
> examples/qos_sched/cfg_file.h | 4 +
> examples/qos_sched/init.c | 24 +-
> examples/qos_sched/main.h | 1 +
> examples/qos_sched/profile.cfg | 3 +
> lib/librte_sched/rte_sched.c | 486 ++++++++++++++++++++++++---------
> lib/librte_sched/rte_sched.h | 82 +++++-
> lib/librte_sched/rte_sched_version.map | 2 +
> 8 files changed, 544 insertions(+), 216 deletions(-)
>
> --
> 2.7.4
+ Cristian
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] devtools: give some hints for ABI errors
2020-07-15 12:48 4% ` Aaron Conole
@ 2020-07-16 7:29 4% ` David Marchand
0 siblings, 0 replies; 200+ results
From: David Marchand @ 2020-07-16 7:29 UTC (permalink / raw)
To: David Marchand
Cc: dev, Thomas Monjalon, Ray Kinsella, Neil Horman, Dodji Seketeli,
Aaron Conole
On Wed, Jul 15, 2020 at 2:49 PM Aaron Conole <aconole@redhat.com> wrote:
> David Marchand <david.marchand@redhat.com> writes:
>
> > abidiff can provide some more information about the ABI difference it
> > detected.
> > In all cases, a discussion on the mailing must happen but we can give
> > some hints to know if this is a problem with the script calling abidiff,
> > a potential ABI breakage or an unambiguous ABI breakage.
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > Acked-by: Ray Kinsella <mdr@ashroe.eu>
> > Acked-by: Neil Horman <nhorman@tuxdriver.com>
> Acked-by: Aaron Conole <aconole@redhat.com>
Applied.
--
David Marchand
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH v4 1/2] mbuf: use C11 atomic built-ins for refcnt operations
2020-07-15 12:29 0% ` David Marchand
2020-07-15 12:49 0% ` Aaron Conole
2020-07-15 16:29 0% ` Phil Yang
@ 2020-07-16 4:16 0% ` Phil Yang
2020-07-16 11:30 4% ` David Marchand
2 siblings, 1 reply; 200+ results
From: Phil Yang @ 2020-07-16 4:16 UTC (permalink / raw)
To: David Marchand, Olivier Matz
Cc: dev, Stephen Hemminger, David Christensen, Honnappa Nagarahalli,
Ruifeng Wang, nd, Dodji Seketeli, Aaron Conole, nd
David Marchand <david.marchand@redhat.com> writes:
> Subject: Re: [PATCH v4 1/2] mbuf: use C11 atomic built-ins for refcnt
> operations
>
> On Thu, Jul 9, 2020 at 5:59 PM Phil Yang <phil.yang@arm.com> wrote:
> >
> > Use C11 atomic built-ins with explicit ordering instead of rte_atomic
> > ops which enforce unnecessary barriers on aarch64.
> >
> > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > ---
> > v4:
> > 1. Add union for refcnt_atomic and refcnt in rte_mbuf_ext_shared_info
> > to avoid ABI breakage. (Olivier)
> > 2. Add notice of refcnt_atomic deprecation. (Honnappa)
>
> v4 does not pass the checks (in both my env, and Travis).
> https://travis-ci.com/github/ovsrobot/dpdk/jobs/359393389#L2405
I think we need an exception in 'libabigail.abignore' for this change.
Is that OK with you?
Thanks,
Phil
>
> It seems the robot had a hiccup as I can't see a report in the test-report ml.
>
>
> --
> David Marchand
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH v5 9/9] doc: replace references to blacklist/whitelist
@ 2020-07-15 23:02 1% ` Stephen Hemminger
0 siblings, 0 replies; 200+ results
From: Stephen Hemminger @ 2020-07-15 23:02 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger, Luca Boccassi
The terms blacklist and whitelist are no longer used.
Most of this was automatic replacement, but in a couple of
places the language was awkward before and have tried to improve
the readabilty.
The blacklist/whitelist changes to API will not be a breaking
change for applications in this release but worth adding a note
to encourage migration.
Update examples to new config options
Replace -w with -i and -b with -x to reflect new usage.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Luca Boccassi <bluca@debian.org>
---
doc/guides/cryptodevs/dpaa2_sec.rst | 4 ++--
doc/guides/cryptodevs/dpaa_sec.rst | 4 ++--
doc/guides/cryptodevs/qat.rst | 6 ++---
doc/guides/eventdevs/octeontx2.rst | 20 ++++++++---------
doc/guides/freebsd_gsg/build_sample_apps.rst | 2 +-
doc/guides/linux_gsg/build_sample_apps.rst | 2 +-
doc/guides/linux_gsg/eal_args.include.rst | 14 ++++++------
doc/guides/linux_gsg/linux_drivers.rst | 4 ++--
doc/guides/mempool/octeontx2.rst | 4 ++--
doc/guides/nics/bnxt.rst | 6 ++---
doc/guides/nics/cxgbe.rst | 12 +++++-----
doc/guides/nics/dpaa.rst | 4 ++--
doc/guides/nics/dpaa2.rst | 4 ++--
doc/guides/nics/enic.rst | 12 +++++-----
doc/guides/nics/fail_safe.rst | 22 +++++++++----------
doc/guides/nics/features.rst | 2 +-
doc/guides/nics/i40e.rst | 12 +++++-----
doc/guides/nics/ice.rst | 18 +++++++--------
doc/guides/nics/mlx4.rst | 16 +++++++-------
doc/guides/nics/mlx5.rst | 12 +++++-----
doc/guides/nics/octeontx2.rst | 22 +++++++++----------
doc/guides/nics/sfc_efx.rst | 2 +-
doc/guides/nics/tap.rst | 10 ++++-----
doc/guides/nics/thunderx.rst | 4 ++--
.../prog_guide/env_abstraction_layer.rst | 7 +++---
doc/guides/prog_guide/multi_proc_support.rst | 4 ++--
doc/guides/rel_notes/known_issues.rst | 4 ++--
doc/guides/rel_notes/release_20_08.rst | 6 +++++
doc/guides/rel_notes/release_2_1.rst | 2 +-
doc/guides/sample_app_ug/bbdev_app.rst | 6 ++---
doc/guides/sample_app_ug/ipsec_secgw.rst | 6 ++---
doc/guides/sample_app_ug/l3_forward.rst | 2 +-
.../sample_app_ug/l3_forward_access_ctrl.rst | 2 +-
.../sample_app_ug/l3_forward_power_man.rst | 2 +-
doc/guides/sample_app_ug/vdpa.rst | 2 +-
doc/guides/tools/cryptoperf.rst | 6 ++---
doc/guides/tools/flow-perf.rst | 2 +-
37 files changed, 137 insertions(+), 132 deletions(-)
diff --git a/doc/guides/cryptodevs/dpaa2_sec.rst b/doc/guides/cryptodevs/dpaa2_sec.rst
index 3053636b8295..363c52f0422f 100644
--- a/doc/guides/cryptodevs/dpaa2_sec.rst
+++ b/doc/guides/cryptodevs/dpaa2_sec.rst
@@ -134,10 +134,10 @@ Supported DPAA2 SoCs
* LS2088A/LS2048A
* LS1088A/LS1048A
-Whitelisting & Blacklisting
+Allowlisting & Blocklisting
---------------------------
-For blacklisting a DPAA2 SEC device, following commands can be used.
+The DPAA2 SEC device can be blocked with the following:
.. code-block:: console
diff --git a/doc/guides/cryptodevs/dpaa_sec.rst b/doc/guides/cryptodevs/dpaa_sec.rst
index db3c8e918945..295164523d22 100644
--- a/doc/guides/cryptodevs/dpaa_sec.rst
+++ b/doc/guides/cryptodevs/dpaa_sec.rst
@@ -82,10 +82,10 @@ Supported DPAA SoCs
* LS1046A/LS1026A
* LS1043A/LS1023A
-Whitelisting & Blacklisting
+Allowlisting & Blocklisting
---------------------------
-For blacklisting a DPAA device, following commands can be used.
+For blocking a DPAA device, following commands can be used.
.. code-block:: console
diff --git a/doc/guides/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst
index 7f4036c3210e..38e5b0a96206 100644
--- a/doc/guides/cryptodevs/qat.rst
+++ b/doc/guides/cryptodevs/qat.rst
@@ -126,7 +126,7 @@ Limitations
optimisations in the GEN3 device. And if a GCM session is initialised on a
GEN3 device, then attached to an op sent to a GEN1/GEN2 device, it will not be
enqueued to the device and will be marked as failed. The simplest way to
- mitigate this is to use the bdf whitelist to avoid mixing devices of different
+ mitigate this is to use the bdf allowlist to avoid mixing devices of different
generations in the same process if planning to use for GCM.
* The mixed algo feature on GEN2 is not supported by all kernel drivers. Check
the notes under the Available Kernel Drivers table below for specific details.
@@ -261,7 +261,7 @@ adjusted to the number of VFs which the QAT common code will need to handle.
QAT VF may expose two crypto devices, sym and asym, it may happen that the
number of devices will be bigger than MAX_DEVS and the process will show an error
during PMD initialisation. To avoid this problem CONFIG_RTE_CRYPTO_MAX_DEVS may be
- increased or -w, pci-whitelist domain:bus:devid:func option may be used.
+ increased or -w, pci-allowlist domain:bus:devid:func option may be used.
QAT compression PMD needs intermediate buffers to support Deflate compression
@@ -299,7 +299,7 @@ return 0 (thereby avoiding an MMIO) if the device is congested and number of pac
possible to enqueue is smaller.
To use this feature the user must set the parameter on process start as a device additional parameter::
- -w 03:01.1,qat_sym_enq_threshold=32,qat_comp_enq_threshold=16
+ -i 03:01.1,qat_sym_enq_threshold=32,qat_comp_enq_threshold=16
All parameters can be used with the same device regardless of order. Parameters are separated
by comma. When the same parameter is used more than once first occurrence of the parameter
diff --git a/doc/guides/eventdevs/octeontx2.rst b/doc/guides/eventdevs/octeontx2.rst
index 6502f6415fb4..470ea5450432 100644
--- a/doc/guides/eventdevs/octeontx2.rst
+++ b/doc/guides/eventdevs/octeontx2.rst
@@ -66,7 +66,7 @@ Runtime Config Options
upper limit for in-flight events.
For example::
- -w 0002:0e:00.0,xae_cnt=16384
+ -i 0002:0e:00.0,xae_cnt=16384
- ``Force legacy mode``
@@ -74,7 +74,7 @@ Runtime Config Options
single workslot mode in SSO and disable the default dual workslot mode.
For example::
- -w 0002:0e:00.0,single_ws=1
+ -i 0002:0e:00.0,single_ws=1
- ``Event Group QoS support``
@@ -89,7 +89,7 @@ Runtime Config Options
default.
For example::
- -w 0002:0e:00.0,qos=[1-50-50-50]
+ -i 0002:0e:00.0,qos=[1-50-50-50]
- ``Selftest``
@@ -98,7 +98,7 @@ Runtime Config Options
The tests are run once the vdev creation is successfully complete.
For example::
- -w 0002:0e:00.0,selftest=1
+ -i 0002:0e:00.0,selftest=1
- ``TIM disable NPA``
@@ -107,7 +107,7 @@ Runtime Config Options
parameter disables NPA and uses software mempool to manage chunks
For example::
- -w 0002:0e:00.0,tim_disable_npa=1
+ -i 0002:0e:00.0,tim_disable_npa=1
- ``TIM modify chunk slots``
@@ -118,7 +118,7 @@ Runtime Config Options
to SSO. The default value is 255 and the max value is 4095.
For example::
- -w 0002:0e:00.0,tim_chnk_slots=1023
+ -i 0002:0e:00.0,tim_chnk_slots=1023
- ``TIM enable arm/cancel statistics``
@@ -126,7 +126,7 @@ Runtime Config Options
event timer adapter.
For example::
- -w 0002:0e:00.0,tim_stats_ena=1
+ -i 0002:0e:00.0,tim_stats_ena=1
- ``TIM limit max rings reserved``
@@ -136,7 +136,7 @@ Runtime Config Options
rings.
For example::
- -w 0002:0e:00.0,tim_rings_lmt=5
+ -i 0002:0e:00.0,tim_rings_lmt=5
- ``TIM ring control internal parameters``
@@ -146,7 +146,7 @@ Runtime Config Options
default values.
For Example::
- -w 0002:0e:00.0,tim_ring_ctl=[2-1023-1-0]
+ -i 0002:0e:00.0,tim_ring_ctl=[2-1023-1-0]
- ``Lock NPA contexts in NDC``
@@ -156,7 +156,7 @@ Runtime Config Options
For example::
- -w 0002:0e:00.0,npa_lock_mask=0xf
+ -i 0002:0e:00.0,npa_lock_mask=0xf
Debugging Options
~~~~~~~~~~~~~~~~~
diff --git a/doc/guides/freebsd_gsg/build_sample_apps.rst b/doc/guides/freebsd_gsg/build_sample_apps.rst
index 2a68f5fc3820..4fba671e4f5b 100644
--- a/doc/guides/freebsd_gsg/build_sample_apps.rst
+++ b/doc/guides/freebsd_gsg/build_sample_apps.rst
@@ -67,7 +67,7 @@ DPDK application. Some of the EAL options for FreeBSD are as follows:
is a list of cores to use instead of a core mask.
* ``-b <domain:bus:devid.func>``:
- Blacklisting of ports; prevent EAL from using specified PCI device
+ Blocklisting of ports; prevent EAL from using specified PCI device
(multiple ``-b`` options are allowed).
* ``--use-device``:
diff --git a/doc/guides/linux_gsg/build_sample_apps.rst b/doc/guides/linux_gsg/build_sample_apps.rst
index 2f606535c374..ebc6e3e02d74 100644
--- a/doc/guides/linux_gsg/build_sample_apps.rst
+++ b/doc/guides/linux_gsg/build_sample_apps.rst
@@ -102,7 +102,7 @@ The EAL options are as follows:
Number of memory channels per processor socket.
* ``-b <domain:bus:devid.func>``:
- Blacklisting of ports; prevent EAL from using specified PCI device
+ Blocklisting of ports; prevent EAL from using specified PCI device
(multiple ``-b`` options are allowed).
* ``--use-device``:
diff --git a/doc/guides/linux_gsg/eal_args.include.rst b/doc/guides/linux_gsg/eal_args.include.rst
index 0fe44579689b..41f399ccd608 100644
--- a/doc/guides/linux_gsg/eal_args.include.rst
+++ b/doc/guides/linux_gsg/eal_args.include.rst
@@ -44,20 +44,20 @@ Lcore-related options
Device-related options
~~~~~~~~~~~~~~~~~~~~~~
-* ``-b, --pci-blacklist <[domain:]bus:devid.func>``
+* ``-b, --pci-skip-probe <[domain:]bus:devid.func>``
- Blacklist a PCI device to prevent EAL from using it. Multiple -b options are
- allowed.
+ Skip probing a PCI device to prevent EAL from using it.
+ Multiple -b options are allowed.
.. Note::
- PCI blacklist cannot be used with ``-w`` option.
+ PCI skip probe cannot be used with the only list ``-w`` option.
-* ``-w, --pci-whitelist <[domain:]bus:devid.func>``
+* ``-w, --pci-only-list <[domain:]bus:devid.func>``
- Add a PCI device in white list.
+ Add a PCI device in to the list of probed devices.
.. Note::
- PCI whitelist cannot be used with ``-b`` option.
+ PCI only list cannot be used with the skip probe ``-b`` option.
* ``--vdev <device arguments>``
diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst
index 4eda3d5bf4fe..0c6f9f8572ee 100644
--- a/doc/guides/linux_gsg/linux_drivers.rst
+++ b/doc/guides/linux_gsg/linux_drivers.rst
@@ -104,11 +104,11 @@ parameter ``--vfio-vf-token``.
3. echo 2 > /sys/bus/pci/devices/0000:86:00.0/sriov_numvfs
4. Start the PF:
- ./x86_64-native-linux-gcc/app/testpmd -l 22-25 -n 4 -w 86:00.0 \
+ ./x86_64-native-linux-gcc/app/testpmd -l 22-25 -n 4 -i 86:00.0 \
--vfio-vf-token=14d63f20-8445-11ea-8900-1f9ce7d5650d --file-prefix=pf -- -i
5. Start the VF:
- ./x86_64-native-linux-gcc/app/testpmd -l 26-29 -n 4 -w 86:02.0 \
+ ./x86_64-native-linux-gcc/app/testpmd -l 26-29 -n 4 -i 86:02.0 \
--vfio-vf-token=14d63f20-8445-11ea-8900-1f9ce7d5650d --file-prefix=vf0 -- -i
Also, to use VFIO, both kernel and BIOS must support and be configured to use IO virtualization (such as Intel® VT-d).
diff --git a/doc/guides/mempool/octeontx2.rst b/doc/guides/mempool/octeontx2.rst
index 49b45a04e8ec..507591d809c6 100644
--- a/doc/guides/mempool/octeontx2.rst
+++ b/doc/guides/mempool/octeontx2.rst
@@ -50,7 +50,7 @@ Runtime Config Options
for the application.
For example::
- -w 0002:02:00.0,max_pools=512
+ -i 0002:02:00.0,max_pools=512
With the above configuration, the driver will set up only 512 mempools for
the given application to save HW resources.
@@ -69,7 +69,7 @@ Runtime Config Options
For example::
- -w 0002:02:00.0,npa_lock_mask=0xf
+ -i 0002:02:00.0,npa_lock_mask=0xf
Debugging Options
~~~~~~~~~~~~~~~~~
diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst
index 6ff75d0a25e9..716d02beba3c 100644
--- a/doc/guides/nics/bnxt.rst
+++ b/doc/guides/nics/bnxt.rst
@@ -259,7 +259,7 @@ Unicast MAC Filter
^^^^^^^^^^^^^^^^^^
The application adds (or removes) MAC addresses to enable (or disable)
-whitelist filtering to accept packets.
+allowlist filtering to accept packets.
.. code-block:: console
@@ -270,7 +270,7 @@ Multicast MAC Filter
^^^^^^^^^^^^^^^^^^^^
Application adds (or removes) Multicast addresses to enable (or disable)
-whitelist filtering to accept packets.
+allowlist filtering to accept packets.
.. code-block:: console
@@ -278,7 +278,7 @@ whitelist filtering to accept packets.
testpmd> mcast_addr (add|remove) (port_id) (XX:XX:XX:XX:XX:XX)
Application adds (or removes) Multicast addresses to enable (or disable)
-whitelist filtering to accept packets.
+allowlist filtering to accept packets.
Note that the BNXT PMD supports up to 16 MC MAC filters. if the user adds more
than 16 MC MACs, the BNXT PMD puts the port into the Allmulticast mode.
diff --git a/doc/guides/nics/cxgbe.rst b/doc/guides/nics/cxgbe.rst
index 54a4c138998c..870904cfd9b0 100644
--- a/doc/guides/nics/cxgbe.rst
+++ b/doc/guides/nics/cxgbe.rst
@@ -40,8 +40,8 @@ expose a single PCI bus address, thus, librte_pmd_cxgbe registers
itself as a PCI driver that allocates one Ethernet device per detected
port.
-For this reason, one cannot whitelist/blacklist a single port without
-whitelisting/blacklisting the other ports on the same device.
+For this reason, one cannot allowlist/blocklist a single port without
+allowlisting/blocklisting the other ports on the same device.
.. _t5-nics:
@@ -112,7 +112,7 @@ be passed as part of EAL arguments. For example,
.. code-block:: console
- testpmd -w 02:00.4,keep_ovlan=1 -- -i
+ testpmd -i 02:00.4,keep_ovlan=1 -- -i
Common Runtime Options
^^^^^^^^^^^^^^^^^^^^^^
@@ -317,7 +317,7 @@ CXGBE PF Only Runtime Options
.. code-block:: console
- testpmd -w 02:00.4,filtermode=0x88 -- -i
+ testpmd -i 02:00.4,filtermode=0x88 -- -i
- ``filtermask`` (default **0**)
@@ -344,7 +344,7 @@ CXGBE PF Only Runtime Options
.. code-block:: console
- testpmd -w 02:00.4,filtermode=0x88,filtermask=0x80 -- -i
+ testpmd -i 02:00.4,filtermode=0x88,filtermask=0x80 -- -i
.. _driver-compilation:
@@ -776,7 +776,7 @@ devices managed by librte_pmd_cxgbe in FreeBSD operating system.
.. code-block:: console
- ./x86_64-native-freebsd-clang/app/testpmd -l 0-3 -n 4 -w 0000:02:00.4 -- -i
+ ./x86_64-native-freebsd-clang/app/testpmd -l 0-3 -n 4 -i 0000:02:00.4 -- -i
Example output:
diff --git a/doc/guides/nics/dpaa.rst b/doc/guides/nics/dpaa.rst
index 17839a920e60..efcbb7207734 100644
--- a/doc/guides/nics/dpaa.rst
+++ b/doc/guides/nics/dpaa.rst
@@ -162,10 +162,10 @@ Manager.
this pool.
-Whitelisting & Blacklisting
+Allowlisting & Blocklisting
---------------------------
-For blacklisting a DPAA device, following commands can be used.
+For blocking a DPAA device, following commands can be used.
.. code-block:: console
diff --git a/doc/guides/nics/dpaa2.rst b/doc/guides/nics/dpaa2.rst
index fdfa6fdd5aea..91b5c59f8c0f 100644
--- a/doc/guides/nics/dpaa2.rst
+++ b/doc/guides/nics/dpaa2.rst
@@ -527,10 +527,10 @@ which are lower than logging ``level``.
Using ``pmd.net.dpaa2`` as log matching criteria, all PMD logs can be enabled
which are lower than logging ``level``.
-Whitelisting & Blacklisting
+Allowlisting & Blocklisting
---------------------------
-For blacklisting a DPAA2 device, following commands can be used.
+For blocking a DPAA2 device, following commands can be used.
.. code-block:: console
diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
index a28a7f4e477a..a67f169a87a8 100644
--- a/doc/guides/nics/enic.rst
+++ b/doc/guides/nics/enic.rst
@@ -187,14 +187,14 @@ or ``vfio`` in non-IOMMU mode.
In the VM, the kernel enic driver may be automatically bound to the VF during
boot. Unbinding it currently hangs due to a known issue with the driver. To
-work around the issue, blacklist the enic module as follows.
+work around the issue, blocklist the enic module as follows.
Please see :ref:`Limitations <enic_limitations>` for limitations in
the use of SR-IOV.
.. code-block:: console
# cat /etc/modprobe.d/enic.conf
- blacklist enic
+ blocklist enic
# dracut --force
@@ -312,7 +312,7 @@ enables overlay offload, it prints the following message on the console.
By default, PMD enables overlay offload if hardware supports it. To disable
it, set ``devargs`` parameter ``disable-overlay=1``. For example::
- -w 12:00.0,disable-overlay=1
+ -i 12:00.0,disable-overlay=1
By default, the NIC uses 4789 as the VXLAN port. The user may change
it through ``rte_eth_dev_udp_tunnel_port_{add,delete}``. However, as
@@ -378,7 +378,7 @@ vectorized handler, take the following steps.
PMD consider the vectorized handler when selecting the receive handler.
For example::
- -w 12:00.0,enable-avx2-rx=1
+ -i 12:00.0,enable-avx2-rx=1
As the current implementation is intended for field trials, by default, the
vectorized handler is not considered (``enable-avx2-rx=0``).
@@ -427,7 +427,7 @@ DPDK as untagged packets. In this case mbuf->vlan_tci and the PKT_RX_VLAN and
PKT_RX_VLAN_STRIPPED mbuf flags would not be set. This mode is enabled with the
``devargs`` parameter ``ig-vlan-rewrite=untag``. For example::
- -w 12:00.0,ig-vlan-rewrite=untag
+ -i 12:00.0,ig-vlan-rewrite=untag
- **SR-IOV**
@@ -437,7 +437,7 @@ PKT_RX_VLAN_STRIPPED mbuf flags would not be set. This mode is enabled with the
- VF devices are not usable directly from the host. They can only be used
as assigned devices on VM instances.
- Currently, unbind of the ENIC kernel mode driver 'enic.ko' on the VM
- instance may hang. As a workaround, enic.ko should be blacklisted or removed
+ instance may hang. As a workaround, enic.ko should be blocklisted or removed
from the boot process.
- pci_generic cannot be used as the uio module in the VM. igb_uio or
vfio in non-IOMMU mode can be used.
diff --git a/doc/guides/nics/fail_safe.rst b/doc/guides/nics/fail_safe.rst
index b4a92f663b17..46d1224b048f 100644
--- a/doc/guides/nics/fail_safe.rst
+++ b/doc/guides/nics/fail_safe.rst
@@ -68,11 +68,11 @@ Fail-safe command line parameters
.. note::
- In case where the sub-device is also used as a whitelist device, using ``-w``
+ In case where the sub-device is also used as a allowlist device, using ``-w``
on the EAL command line, the fail-safe PMD will use the device with the
options provided to the EAL instead of its own parameters.
- When trying to use a PCI device automatically probed by the blacklist mode,
+ When trying to use a PCI device automatically probed by the blocklist mode,
the name for the fail-safe sub-device must be the full PCI id:
Domain:Bus:Device.Function, *i.e.* ``00:00:00.0`` instead of ``00:00.0``,
as the second form is historically accepted by the DPDK.
@@ -123,28 +123,28 @@ This section shows some example of using **testpmd** with a fail-safe PMD.
#. To build a PMD and configure DPDK, refer to the document
:ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`.
-#. Start testpmd. The sub-device ``84:00.0`` should be blacklisted from normal EAL
- operations to avoid probing it twice, as the PCI bus is in blacklist mode.
+#. Start testpmd. The sub-device ``84:00.0`` should be blocklisted from normal EAL
+ operations to avoid probing it twice, as the PCI bus is in blocklist mode.
.. code-block:: console
$RTE_TARGET/build/app/testpmd -c 0xff -n 4 \
--vdev 'net_failsafe0,mac=de:ad:be:ef:01:02,dev(84:00.0),dev(net_ring0)' \
- -b 84:00.0 -b 00:04.0 -- -i
+ -x 84:00.0 -x 00:04.0 -- -i
- If the sub-device ``84:00.0`` is not blacklisted, it will be probed by the
+ If the sub-device ``84:00.0`` is not blocklisted, it will be probed by the
EAL first. When the fail-safe then tries to initialize it the probe operation
fails.
- Note that PCI blacklist mode is the default PCI operating mode.
+ Note that PCI blocklist mode is the default PCI operating mode.
-#. Alternatively, it can be used alongside any other device in whitelist mode.
+#. Alternatively, it can be used alongside any other device in allowlist mode.
.. code-block:: console
$RTE_TARGET/build/app/testpmd -c 0xff -n 4 \
--vdev 'net_failsafe0,mac=de:ad:be:ef:01:02,dev(84:00.0),dev(net_ring0)' \
- -w 81:00.0 -- -i
+ -i 81:00.0 -- -i
#. Start testpmd using a flexible device definition
@@ -155,9 +155,9 @@ This section shows some example of using **testpmd** with a fail-safe PMD.
#. Start testpmd, automatically probing the device 84:00.0 and using it with
the fail-safe.
-
+
.. code-block:: console
-
+
$RTE_TARGET/build/app/testpmd -c 0xff -n 4 \
--vdev 'net_failsafe0,dev(0000:84:00.0),dev(net_ring0)' -- -i
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index edd21c4d8e9d..6aecead6e019 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -247,7 +247,7 @@ Supports enabling/disabling receiving multicast frames.
Unicast MAC filter
------------------
-Supports adding MAC addresses to enable whitelist filtering to accept packets.
+Supports adding MAC addresses to enable allowlist filtering to accept packets.
* **[implements] eth_dev_ops**: ``mac_addr_set``, ``mac_addr_add``, ``mac_addr_remove``.
* **[implements] rte_eth_dev_data**: ``mac_addrs``.
diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst
index cf1ae2d0b043..4f4072b3bf6f 100644
--- a/doc/guides/nics/i40e.rst
+++ b/doc/guides/nics/i40e.rst
@@ -203,7 +203,7 @@ Runtime Config Options
Adapter with both Linux kernel and DPDK PMD. To fix this issue, ``devargs``
parameter ``support-multi-driver`` is introduced, for example::
- -w 84:00.0,support-multi-driver=1
+ -i 84:00.0,support-multi-driver=1
With the above configuration, DPDK PMD will not change global registers, and
will switch PF interrupt from IntN to Int0 to avoid interrupt conflict between
@@ -230,7 +230,7 @@ Runtime Config Options
since it can get better perf in some real work loading cases. So ``devargs`` param
``use-latest-supported-vec`` is introduced, for example::
- -w 84:00.0,use-latest-supported-vec=1
+ -i 84:00.0,use-latest-supported-vec=1
- ``Enable validation for VF message`` (default ``not enabled``)
@@ -240,7 +240,7 @@ Runtime Config Options
Format -- "maximal-message@period-seconds:ignore-seconds"
For example::
- -w 84:00.0,vf_msg_cfg=80@120:180
+ -i 84:00.0,vf_msg_cfg=80@120:180
Vector RX Pre-conditions
~~~~~~~~~~~~~~~~~~~~~~~~
@@ -475,7 +475,7 @@ no physical uplink on the associated NIC port.
To enable this feature, the user should pass a ``devargs`` parameter to the
EAL, for example::
- -w 84:00.0,enable_floating_veb=1
+ -i 84:00.0,enable_floating_veb=1
In this configuration the PMD will use the floating VEB feature for all the
VFs created by this PF device.
@@ -483,7 +483,7 @@ VFs created by this PF device.
Alternatively, the user can specify which VFs need to connect to this floating
VEB using the ``floating_veb_list`` argument::
- -w 84:00.0,enable_floating_veb=1,floating_veb_list=1;3-4
+ -i 84:00.0,enable_floating_veb=1,floating_veb_list=1;3-4
In this example ``VF1``, ``VF3`` and ``VF4`` connect to the floating VEB,
while other VFs connect to the normal VEB.
@@ -809,7 +809,7 @@ See :numref:`figure_intel_perf_test_setup` for the performance test setup.
7. The command line of running l3fwd would be something like the following::
- ./l3fwd -l 18-21 -n 4 -w 82:00.0 -w 85:00.0 \
+ ./l3fwd -l 18-21 -n 4 -i 82:00.0 -i 85:00.0 \
-- -p 0x3 --config '(0,0,18),(0,1,19),(1,0,20),(1,1,21)'
This means that the application uses core 18 for port 0, queue pair 0 forwarding, core 19 for port 0, queue pair 1 forwarding,
diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst
index 9a9f4a6bb093..93eb2f0c2264 100644
--- a/doc/guides/nics/ice.rst
+++ b/doc/guides/nics/ice.rst
@@ -50,7 +50,7 @@ Runtime Config Options
But if user intend to use the device without OS package, user can take ``devargs``
parameter ``safe-mode-support``, for example::
- -w 80:00.0,safe-mode-support=1
+ -i 80:00.0,safe-mode-support=1
Then the driver will be initialized successfully and the device will enter Safe Mode.
NOTE: In Safe mode, only very limited features are available, features like RSS,
@@ -61,7 +61,7 @@ Runtime Config Options
In pipeline mode, a flow can be set at one specific stage by setting parameter
``priority``. Currently, we support two stages: priority = 0 or !0. Flows with
priority 0 located at the first pipeline stage which typically be used as a firewall
- to drop the packet on a blacklist(we called it permission stage). At this stage,
+ to drop the packet on a blocklist(we called it permission stage). At this stage,
flow rules are created for the device's exact match engine: switch. Flows with priority
!0 located at the second stage, typically packets are classified here and be steered to
specific queue or queue group (we called it distribution stage), At this stage, flow
@@ -73,7 +73,7 @@ Runtime Config Options
use pipeline mode by setting ``devargs`` parameter ``pipeline-mode-support``,
for example::
- -w 80:00.0,pipeline-mode-support=1
+ -i 80:00.0,pipeline-mode-support=1
- ``Flow Mark Support`` (default ``0``)
@@ -85,7 +85,7 @@ Runtime Config Options
2) a new offload like RTE_DEV_RX_OFFLOAD_FLOW_MARK be introduced as a standard way to hint.
Example::
- -w 80:00.0,flow-mark-support=1
+ -i 80:00.0,flow-mark-support=1
- ``Protocol extraction for per queue``
@@ -94,8 +94,8 @@ Runtime Config Options
The argument format is::
- -w 18:00.0,proto_xtr=<queues:protocol>[<queues:protocol>...]
- -w 18:00.0,proto_xtr=<protocol>
+ -i 18:00.0,proto_xtr=<queues:protocol>[<queues:protocol>...]
+ -i 18:00.0,proto_xtr=<protocol>
Queues are grouped by ``(`` and ``)`` within the group. The ``-`` character
is used as a range separator and ``,`` is used as a single number separator.
@@ -106,14 +106,14 @@ Runtime Config Options
.. code-block:: console
- testpmd -w 18:00.0,proto_xtr='[(1,2-3,8-9):tcp,10-13:vlan]'
+ testpmd -i 18:00.0,proto_xtr='[(1,2-3,8-9):tcp,10-13:vlan]'
This setting means queues 1, 2-3, 8-9 are TCP extraction, queues 10-13 are
VLAN extraction, other queues run with no protocol extraction.
.. code-block:: console
- testpmd -w 18:00.0,proto_xtr=vlan,proto_xtr='[(1,2-3,8-9):tcp,10-23:ipv6]'
+ testpmd -i 18:00.0,proto_xtr=vlan,proto_xtr='[(1,2-3,8-9):tcp,10-23:ipv6]'
This setting means queues 1, 2-3, 8-9 are TCP extraction, queues 10-23 are
IPv6 extraction, other queues use the default VLAN extraction.
@@ -253,7 +253,7 @@ responses for the same from PF.
#. Bind the VF0, and run testpmd with 'cap=dcf' devarg::
- testpmd -l 22-25 -n 4 -w 18:01.0,cap=dcf -- -i
+ testpmd -l 22-25 -n 4 -i 18:01.0,cap=dcf -- -i
#. Monitor the VF2 interface network traffic::
diff --git a/doc/guides/nics/mlx4.rst b/doc/guides/nics/mlx4.rst
index 1f1e2f6c7767..f445dd51a65f 100644
--- a/doc/guides/nics/mlx4.rst
+++ b/doc/guides/nics/mlx4.rst
@@ -29,8 +29,8 @@ Most Mellanox ConnectX-3 devices provide two ports but expose a single PCI
bus address, thus unlike most drivers, librte_pmd_mlx4 registers itself as a
PCI driver that allocates one Ethernet device per detected port.
-For this reason, one cannot white/blacklist a single port without also
-white/blacklisting the others on the same device.
+For this reason, one cannot white/blocklist a single port without also
+white/blocklisting the others on the same device.
Besides its dependency on libibverbs (that implies libmlx4 and associated
kernel support), librte_pmd_mlx4 relies heavily on system calls for control
@@ -422,7 +422,7 @@ devices managed by librte_pmd_mlx4.
eth4
eth5
-#. Optionally, retrieve their PCI bus addresses for whitelisting::
+#. Optionally, retrieve their PCI bus addresses for allowlisting::
{
for intf in eth2 eth3 eth4 eth5;
@@ -434,10 +434,10 @@ devices managed by librte_pmd_mlx4.
Example output::
- -w 0000:83:00.0
- -w 0000:83:00.0
- -w 0000:84:00.0
- -w 0000:84:00.0
+ -i 0000:83:00.0
+ -i 0000:83:00.0
+ -i 0000:84:00.0
+ -i 0000:84:00.0
.. note::
@@ -450,7 +450,7 @@ devices managed by librte_pmd_mlx4.
#. Start testpmd with basic parameters::
- testpmd -l 8-15 -n 4 -w 0000:83:00.0 -w 0000:84:00.0 -- --rxq=2 --txq=2 -i
+ testpmd -l 8-15 -n 4 -i 0000:83:00.0 -i 0000:84:00.0 -- --rxq=2 --txq=2 -i
Example output::
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 4b6d8fb4d55b..bafabba518b5 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -1454,7 +1454,7 @@ ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices managed by librte_pmd_mlx5.
eth32
eth33
-#. Optionally, retrieve their PCI bus addresses for whitelisting::
+#. Optionally, retrieve their PCI bus addresses for allowlisting::
{
for intf in eth2 eth3 eth4 eth5;
@@ -1466,10 +1466,10 @@ ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices managed by librte_pmd_mlx5.
Example output::
- -w 0000:05:00.1
- -w 0000:06:00.0
- -w 0000:06:00.1
- -w 0000:05:00.0
+ -i 0000:05:00.1
+ -i 0000:06:00.0
+ -i 0000:06:00.1
+ -i 0000:05:00.0
#. Request huge pages::
@@ -1477,7 +1477,7 @@ ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices managed by librte_pmd_mlx5.
#. Start testpmd with basic parameters::
- testpmd -l 8-15 -n 4 -w 05:00.0 -w 05:00.1 -w 06:00.0 -w 06:00.1 -- --rxq=2 --txq=2 -i
+ testpmd -l 8-15 -n 4 -i 05:00.0 -i 05:00.1 -i 06:00.0 -i 06:00.1 -- --rxq=2 --txq=2 -i
Example output::
diff --git a/doc/guides/nics/octeontx2.rst b/doc/guides/nics/octeontx2.rst
index bb591a8b7e65..3d382446d1d1 100644
--- a/doc/guides/nics/octeontx2.rst
+++ b/doc/guides/nics/octeontx2.rst
@@ -74,7 +74,7 @@ use arm64-octeontx2-linux-gcc as target.
.. code-block:: console
- ./build/app/testpmd -c 0x300 -w 0002:02:00.0 -- --portmask=0x1 --nb-cores=1 --port-topology=loop --rxq=1 --txq=1
+ ./build/app/testpmd -c 0x300 -i 0002:02:00.0 -- --portmask=0x1 --nb-cores=1 --port-topology=loop --rxq=1 --txq=1
EAL: Detected 24 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
@@ -127,7 +127,7 @@ Runtime Config Options
For example::
- -w 0002:02:00.0,reta_size=256
+ -i 0002:02:00.0,reta_size=256
With the above configuration, reta table of size 256 is populated.
@@ -138,7 +138,7 @@ Runtime Config Options
For example::
- -w 0002:02:00.0,flow_max_priority=10
+ -i 0002:02:00.0,flow_max_priority=10
With the above configuration, priority level was set to 10 (0-9). Max
priority level supported is 32.
@@ -150,7 +150,7 @@ Runtime Config Options
For example::
- -w 0002:02:00.0,flow_prealloc_size=4
+ -i 0002:02:00.0,flow_prealloc_size=4
With the above configuration, pre alloc size was set to 4. Max pre alloc
size supported is 32.
@@ -162,7 +162,7 @@ Runtime Config Options
For example::
- -w 0002:02:00.0,max_sqb_count=64
+ -i 0002:02:00.0,max_sqb_count=64
With the above configuration, each send queue's decscriptor buffer count is
limited to a maximum of 64 buffers.
@@ -174,7 +174,7 @@ Runtime Config Options
For example::
- -w 0002:02:00.0,switch_header="higig2"
+ -i 0002:02:00.0,switch_header="higig2"
With the above configuration, higig2 will be enabled on that port and the
traffic on this port should be higig2 traffic only. Supported switch header
@@ -196,7 +196,7 @@ Runtime Config Options
For example to select the legacy mode(RSS tag adder as XOR)::
- -w 0002:02:00.0,tag_as_xor=1
+ -i 0002:02:00.0,tag_as_xor=1
- ``Max SPI for inbound inline IPsec`` (default ``1``)
@@ -205,7 +205,7 @@ Runtime Config Options
For example::
- -w 0002:02:00.0,ipsec_in_max_spi=128
+ -i 0002:02:00.0,ipsec_in_max_spi=128
With the above configuration, application can enable inline IPsec processing
on 128 SAs (SPI 0-127).
@@ -216,7 +216,7 @@ Runtime Config Options
For example::
- -w 0002:02:00.0,lock_rx_ctx=1
+ -i 0002:02:00.0,lock_rx_ctx=1
- ``Lock Tx contexts in NDC cache``
@@ -224,7 +224,7 @@ Runtime Config Options
For example::
- -w 0002:02:00.0,lock_tx_ctx=1
+ -i 0002:02:00.0,lock_tx_ctx=1
.. note::
@@ -240,7 +240,7 @@ Runtime Config Options
For example::
- -w 0002:02:00.0,npa_lock_mask=0xf
+ -i 0002:02:00.0,npa_lock_mask=0xf
.. _otx2_tmapi:
diff --git a/doc/guides/nics/sfc_efx.rst b/doc/guides/nics/sfc_efx.rst
index be1c2fe1d67e..44115a666a94 100644
--- a/doc/guides/nics/sfc_efx.rst
+++ b/doc/guides/nics/sfc_efx.rst
@@ -290,7 +290,7 @@ Per-Device Parameters
~~~~~~~~~~~~~~~~~~~~~
The following per-device parameters can be passed via EAL PCI device
-whitelist option like "-w 02:00.0,arg1=value1,...".
+allowlist option like "-w 02:00.0,arg1=value1,...".
Case-insensitive 1/y/yes/on or 0/n/no/off may be used to specify
boolean parameters value.
diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 7e44f846206c..b5a0f51988aa 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -183,15 +183,15 @@ following::
sudo ./app/app/x86_64-native-linux-gcc/app/pktgen -l 1-5 -n 4 \
--proc-type auto --log-level debug --socket-mem 512,512 --file-prefix pg \
- --vdev=net_tap0 --vdev=net_tap1 -b 05:00.0 -b 05:00.1 \
- -b 04:00.0 -b 04:00.1 -b 04:00.2 -b 04:00.3 \
- -b 81:00.0 -b 81:00.1 -b 81:00.2 -b 81:00.3 \
- -b 82:00.0 -b 83:00.0 -- -T -P -m [2:3].0 -m [4:5].1 \
+ --vdev=net_tap0 --vdev=net_tap1 -x 05:00.0 -x 05:00.1 \
+ -x 04:00.0 -x 04:00.1 -x 04:00.2 -x 04:00.3 \
+ -x 81:00.0 -x 81:00.1 -x 81:00.2 -x 81:00.3 \
+ -x 82:00.0 -x 83:00.0 -- -T -P -m [2:3].0 -m [4:5].1 \
-f themes/black-yellow.theme
.. Note:
- Change the ``-b`` options to blacklist all of your physical ports. The
+ Change the ``-x`` options to exclude all of your physical ports. The
following command line is all one line.
Also, ``-f themes/black-yellow.theme`` is optional if the default colors
diff --git a/doc/guides/nics/thunderx.rst b/doc/guides/nics/thunderx.rst
index f42133e5464d..f1b27a3f269c 100644
--- a/doc/guides/nics/thunderx.rst
+++ b/doc/guides/nics/thunderx.rst
@@ -178,7 +178,7 @@ This section provides instructions to configure SR-IOV with Linux OS.
.. code-block:: console
- ./arm64-thunderx-linux-gcc/app/testpmd -l 0-3 -n 4 -w 0002:01:00.2 \
+ ./arm64-thunderx-linux-gcc/app/testpmd -l 0-3 -n 4 -i 0002:01:00.2 \
-- -i --no-flush-rx \
--port-topology=loop
@@ -398,7 +398,7 @@ This scheme is useful when application would like to insert vlan header without
Example:
.. code-block:: console
- -w 0002:01:00.2,skip_data_bytes=8
+ -i 0002:01:00.2,skip_data_bytes=8
Limitations
-----------
diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst b/doc/guides/prog_guide/env_abstraction_layer.rst
index f64ae953d106..5965c15baa43 100644
--- a/doc/guides/prog_guide/env_abstraction_layer.rst
+++ b/doc/guides/prog_guide/env_abstraction_layer.rst
@@ -407,12 +407,11 @@ device having emitted a Device Removal Event. In such case, calling
callback. Care must be taken not to close the device from the interrupt handler
context. It is necessary to reschedule such closing operation.
-Blacklisting
+Blocklisting
~~~~~~~~~~~~
-The EAL PCI device blacklist functionality can be used to mark certain NIC ports as blacklisted,
-so they are ignored by the DPDK.
-The ports to be blacklisted are identified using the PCIe* description (Domain:Bus:Device.Function).
+The EAL PCI device blocklist functionality can be used to mark certain NIC ports as unavailale, so they are ignored by the DPDK.
+The ports to be blocklisted are identified using the PCIe* description (Domain:Bus:Device.Function).
Misc Functions
~~~~~~~~~~~~~~
diff --git a/doc/guides/prog_guide/multi_proc_support.rst b/doc/guides/prog_guide/multi_proc_support.rst
index a84083b96c8a..14cb6db85661 100644
--- a/doc/guides/prog_guide/multi_proc_support.rst
+++ b/doc/guides/prog_guide/multi_proc_support.rst
@@ -30,7 +30,7 @@ after a primary process has already configured the hugepage shared memory for th
Secondary processes should run alongside primary process with same DPDK version.
Secondary processes which requires access to physical devices in Primary process, must
- be passed with the same whitelist and blacklist options.
+ be passed with the same allowlist and blocklist options.
To support these two process types, and other multi-process setups described later,
two additional command-line parameters are available to the EAL:
@@ -131,7 +131,7 @@ can use).
.. note::
Independent DPDK instances running side-by-side on a single machine cannot share any network ports.
- Any network ports being used by one process should be blacklisted in every other process.
+ Any network ports being used by one process should be blocklisted in every other process.
Running Multiple Independent Groups of DPDK Applications
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/guides/rel_notes/known_issues.rst b/doc/guides/rel_notes/known_issues.rst
index de0782136d3c..83a3b38c0ae0 100644
--- a/doc/guides/rel_notes/known_issues.rst
+++ b/doc/guides/rel_notes/known_issues.rst
@@ -523,8 +523,8 @@ Devices bound to igb_uio with VT-d enabled do not work on Linux kernel 3.15-3.17
DMAR:[fault reason 02] Present bit in context entry is clear
**Resolution/Workaround**:
- Use earlier or later kernel versions, or avoid driver binding on boot by blacklisting the driver modules.
- I.e., in the case of ``ixgbe``, we can pass the kernel command line option: ``modprobe.blacklist=ixgbe``.
+ Use earlier or later kernel versions, or avoid driver binding on boot by blocklisting the driver modules.
+ I.e., in the case of ``ixgbe``, we can pass the kernel command line option: ``modprobe.blocklist=ixgbe``.
This way we do not need to unbind the device to bind it to igb_uio.
**Affected Environment/Platform**:
diff --git a/doc/guides/rel_notes/release_20_08.rst b/doc/guides/rel_notes/release_20_08.rst
index f19b748728e4..b9509f657b30 100644
--- a/doc/guides/rel_notes/release_20_08.rst
+++ b/doc/guides/rel_notes/release_20_08.rst
@@ -261,6 +261,12 @@ API Changes
* vhost: The API of ``rte_vhost_host_notifier_ctrl`` was changed to be per
queue and not per device, a qid parameter was added to the arguments list.
+* eal: The definitions related to including and excluding devices
+ has been changed from blacklist/whitelist to include/exclude.
+ There are compatiablity macros and command line mapping to accept
+ the old values but applications and scripts are strongly encouraged
+ to migrate to the new names.
+
ABI Changes
-----------
diff --git a/doc/guides/rel_notes/release_2_1.rst b/doc/guides/rel_notes/release_2_1.rst
index beadc51ba438..6339172c64fa 100644
--- a/doc/guides/rel_notes/release_2_1.rst
+++ b/doc/guides/rel_notes/release_2_1.rst
@@ -472,7 +472,7 @@ Resolved Issues
* **devargs: Fix crash on failure.**
- This problem occurred when passing an invalid PCI id to the blacklist API in
+ This problem occurred when passing an invalid PCI id to the blocklist API in
devargs.
diff --git a/doc/guides/sample_app_ug/bbdev_app.rst b/doc/guides/sample_app_ug/bbdev_app.rst
index 405e706a46e4..b722d0263772 100644
--- a/doc/guides/sample_app_ug/bbdev_app.rst
+++ b/doc/guides/sample_app_ug/bbdev_app.rst
@@ -79,7 +79,7 @@ This means that HW baseband device/s must be bound to a DPDK driver or
a SW baseband device/s (virtual BBdev) must be created (using --vdev).
To run the application in linux environment with the turbo_sw baseband device
-using the whitelisted port running on 1 encoding lcore and 1 decoding lcore
+using the allowlisted port running on 1 encoding lcore and 1 decoding lcore
issue the command:
.. code-block:: console
@@ -90,7 +90,7 @@ issue the command:
where, NIC0PCIADDR is the PCI address of the Rx port
This command creates one virtual bbdev devices ``baseband_turbo_sw`` where the
-device gets linked to a corresponding ethernet port as whitelisted by
+device gets linked to a corresponding ethernet port as allowlisted by
the parameter -w.
3 cores are allocated to the application, and assigned as:
@@ -111,7 +111,7 @@ Using Packet Generator with baseband device sample application
To allow the bbdev sample app to do the loopback, an influx of traffic is required.
This can be done by using DPDK Pktgen to burst traffic on two ethernet ports, and
it will print the transmitted along with the looped-back traffic on Rx ports.
-Executing the command below will generate traffic on the two whitelisted ethernet
+Executing the command below will generate traffic on the two allowlisted ethernet
ports.
.. code-block:: console
diff --git a/doc/guides/sample_app_ug/ipsec_secgw.rst b/doc/guides/sample_app_ug/ipsec_secgw.rst
index 81c5d4360615..fac75819a762 100644
--- a/doc/guides/sample_app_ug/ipsec_secgw.rst
+++ b/doc/guides/sample_app_ug/ipsec_secgw.rst
@@ -329,15 +329,15 @@ This means that if the application is using a single core and both hardware
and software crypto devices are detected, hardware devices will be used.
A way to achieve the case where you want to force the use of virtual crypto
-devices is to whitelist the Ethernet devices needed and therefore implicitly
-blacklisting all hardware crypto devices.
+devices is to allowlist the Ethernet devices needed and therefore implicitly
+blocklisting all hardware crypto devices.
For example, something like the following command line:
.. code-block:: console
./build/ipsec-secgw -l 20,21 -n 4 --socket-mem 0,2048 \
- -w 81:00.0 -w 81:00.1 -w 81:00.2 -w 81:00.3 \
+ -i 81:00.0 -i 81:00.1 -i 81:00.2 -i 81:00.3 \
--vdev "crypto_aesni_mb" --vdev "crypto_null" \
-- \
-p 0xf -P -u 0x3 --config="(0,0,20),(1,0,20),(2,0,21),(3,0,21)" \
diff --git a/doc/guides/sample_app_ug/l3_forward.rst b/doc/guides/sample_app_ug/l3_forward.rst
index 07c8d44936d6..69a29ab1314e 100644
--- a/doc/guides/sample_app_ug/l3_forward.rst
+++ b/doc/guides/sample_app_ug/l3_forward.rst
@@ -148,7 +148,7 @@ or
In this command:
-* -w option whitelist the event device supported by platform. Way to pass this device may vary based on platform.
+* -w option allowlist the event device supported by platform. Way to pass this device may vary based on platform.
* The --mode option defines PMD to be used for packet I/O.
diff --git a/doc/guides/sample_app_ug/l3_forward_access_ctrl.rst b/doc/guides/sample_app_ug/l3_forward_access_ctrl.rst
index a44fbcd52c3a..473326275e49 100644
--- a/doc/guides/sample_app_ug/l3_forward_access_ctrl.rst
+++ b/doc/guides/sample_app_ug/l3_forward_access_ctrl.rst
@@ -18,7 +18,7 @@ The application loads two types of rules at initialization:
* Route information rules, which are used for L3 forwarding
-* Access Control List (ACL) rules that blacklist (or block) packets with a specific characteristic
+* Access Control List (ACL) rules that blocklist (or block) packets with a specific characteristic
When packets are received from a port,
the application extracts the necessary information from the TCP/IP header of the received packet and
diff --git a/doc/guides/sample_app_ug/l3_forward_power_man.rst b/doc/guides/sample_app_ug/l3_forward_power_man.rst
index 0cc6f2e62e75..4cc55004cca8 100644
--- a/doc/guides/sample_app_ug/l3_forward_power_man.rst
+++ b/doc/guides/sample_app_ug/l3_forward_power_man.rst
@@ -378,7 +378,7 @@ See :doc:`Power Management<../prog_guide/power_man>` chapter in the DPDK Program
.. code-block:: console
- ./l3fwd-power -l xxx -n 4 -w 0000:xx:00.0 -w 0000:xx:00.1 -- -p 0x3 -P --config="(0,0,xx),(1,0,xx)" --empty-poll="0,0,0" -l 14 -m 9 -h 1
+ ./l3fwd-power -l xxx -n 4 -i 0000:xx:00.0 -i 0000:xx:00.1 -- -p 0x3 -P --config="(0,0,xx),(1,0,xx)" --empty-poll="0,0,0" -l 14 -m 9 -h 1
Where,
diff --git a/doc/guides/sample_app_ug/vdpa.rst b/doc/guides/sample_app_ug/vdpa.rst
index d66a724827af..e388c738a1e3 100644
--- a/doc/guides/sample_app_ug/vdpa.rst
+++ b/doc/guides/sample_app_ug/vdpa.rst
@@ -52,7 +52,7 @@ Take IFCVF driver for example:
.. code-block:: console
./vdpa -c 0x2 -n 4 --socket-mem 1024,1024 \
- -w 0000:06:00.3,vdpa=1 -w 0000:06:00.4,vdpa=1 \
+ -i 0000:06:00.3,vdpa=1 -i 0000:06:00.4,vdpa=1 \
-- --interactive
.. note::
diff --git a/doc/guides/tools/cryptoperf.rst b/doc/guides/tools/cryptoperf.rst
index 28b729dbda8b..334a4f558abd 100644
--- a/doc/guides/tools/cryptoperf.rst
+++ b/doc/guides/tools/cryptoperf.rst
@@ -417,7 +417,7 @@ Call application for performance throughput test of single Aesni MB PMD
for cipher encryption aes-cbc and auth generation sha1-hmac,
one million operations, burst size 32, packet size 64::
- dpdk-test-crypto-perf -l 6-7 --vdev crypto_aesni_mb -w 0000:00:00.0 --
+ dpdk-test-crypto-perf -l 6-7 --vdev crypto_aesni_mb -i 0000:00:00.0 --
--ptest throughput --devtype crypto_aesni_mb --optype cipher-then-auth
--cipher-algo aes-cbc --cipher-op encrypt --cipher-key-sz 16 --auth-algo
sha1-hmac --auth-op generate --auth-key-sz 64 --digest-sz 12
@@ -427,7 +427,7 @@ Call application for performance latency test of two Aesni MB PMD executed
on two cores for cipher encryption aes-cbc, ten operations in silent mode::
dpdk-test-crypto-perf -l 4-7 --vdev crypto_aesni_mb1
- --vdev crypto_aesni_mb2 -w 0000:00:00.0 -- --devtype crypto_aesni_mb
+ --vdev crypto_aesni_mb2 -i 0000:00:00.0 -- --devtype crypto_aesni_mb
--cipher-algo aes-cbc --cipher-key-sz 16 --cipher-iv-sz 16
--cipher-op encrypt --optype cipher-only --silent
--ptest latency --total-ops 10
@@ -437,7 +437,7 @@ for cipher encryption aes-gcm and auth generation aes-gcm,ten operations
in silent mode, test vector provide in file "test_aes_gcm.data"
with packet verification::
- dpdk-test-crypto-perf -l 4-7 --vdev crypto_openssl -w 0000:00:00.0 --
+ dpdk-test-crypto-perf -l 4-7 --vdev crypto_openssl -i 0000:00:00.0 --
--devtype crypto_openssl --aead-algo aes-gcm --aead-key-sz 16
--aead-iv-sz 16 --aead-op encrypt --aead-aad-sz 16 --digest-sz 16
--optype aead --silent --ptest verify --total-ops 10
diff --git a/doc/guides/tools/flow-perf.rst b/doc/guides/tools/flow-perf.rst
index cdedaf9a97d4..c03681525e60 100644
--- a/doc/guides/tools/flow-perf.rst
+++ b/doc/guides/tools/flow-perf.rst
@@ -61,7 +61,7 @@ with a ``--`` separator:
.. code-block:: console
- sudo ./dpdk-test-flow_perf -n 4 -w 08:00.0 -- --ingress --ether --ipv4 --queue --flows-count=1000000
+ sudo ./dpdk-test-flow_perf -n 4 -i 08:00.0 -- --ingress --ether --ipv4 --queue --flows-count=1000000
The command line options are:
--
2.27.0
^ permalink raw reply [relevance 1%]
* [dpdk-dev] [RFC PATCH 0/2] Enable dyynamic configuration of subport bandwidth profile
@ 2020-07-15 18:27 3% Savinay Dharmappa
2020-07-16 8:14 0% ` Singh, Jasvinder
0 siblings, 1 reply; 200+ results
From: Savinay Dharmappa @ 2020-07-15 18:27 UTC (permalink / raw)
To: savinay.dharmappa, jasvinder.singh, dev
DPDK sched library allows runtime configuration of the pipe profiles to the
pipes of the subport once scheduler hierarchy is constructed. However, to
change the subport level bandwidth, existing hierarchy needs to be dismantled
and whole process of building hierarchy under subport nodes needs to be
repeated which might result in router downtime. Furthermore, due to lack of
dynamic configuration of the subport bandwidth profile configuration
(shaper and Traffic class rates), the user application is unable to dynamically
re-distribute the excess-bandwidth of one subport among other subports in the
scheduler hierarchy. Therefore, it is also not possible to adjust the subport
bandwidth profile in sync with dynamic changes in pipe profiles of subscribers
who want to consume higher bandwidth opportunistically.
This RFC proposes dynamic configuration of the subport bandwidth profile to
overcome the runtime situation when group of subscribers are not using the
allotted bandwidth and dynamic bandwidth re-distribution is needed the without
making any structural changes in the hierarchy.
The implementation work includes refactoring the existing data structures
defined for port and subport level, new APIs for adding subport level
bandwidth profiles that can be used in runtime which causes API/ABI change.
Therefore, deprecation notice will be sent out soon.
Savinay Dharmappa (2):
sched: add dynamic config of subport bandwidth profile
example/qos_sched: subport bandwidth dynmaic conf
examples/qos_sched/cfg_file.c | 158 ++++++-----
examples/qos_sched/cfg_file.h | 4 +
examples/qos_sched/init.c | 24 +-
examples/qos_sched/main.h | 1 +
examples/qos_sched/profile.cfg | 3 +
lib/librte_sched/rte_sched.c | 486 ++++++++++++++++++++++++---------
lib/librte_sched/rte_sched.h | 82 +++++-
lib/librte_sched/rte_sched_version.map | 2 +
8 files changed, 544 insertions(+), 216 deletions(-)
--
2.7.4
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v4 1/2] mbuf: use C11 atomic built-ins for refcnt operations
2020-07-15 12:29 0% ` David Marchand
2020-07-15 12:49 0% ` Aaron Conole
@ 2020-07-15 16:29 0% ` Phil Yang
2020-07-16 4:16 0% ` Phil Yang
2 siblings, 0 replies; 200+ results
From: Phil Yang @ 2020-07-15 16:29 UTC (permalink / raw)
To: David Marchand
Cc: Olivier Matz, dev, Stephen Hemminger, David Christensen,
Honnappa Nagarahalli, Ruifeng Wang, nd, Dodji Seketeli,
Aaron Conole, nd
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Wednesday, July 15, 2020 8:29 PM
> To: Phil Yang <Phil.Yang@arm.com>
> Cc: Olivier Matz <olivier.matz@6wind.com>; dev <dev@dpdk.org>; Stephen
> Hemminger <stephen@networkplumber.org>; David Christensen
> <drc@linux.vnet.ibm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Ruifeng Wang
> <Ruifeng.Wang@arm.com>; nd <nd@arm.com>; Dodji Seketeli
> <dodji@redhat.com>; Aaron Conole <aconole@redhat.com>
> Subject: Re: [PATCH v4 1/2] mbuf: use C11 atomic built-ins for refcnt
> operations
>
> On Thu, Jul 9, 2020 at 5:59 PM Phil Yang <phil.yang@arm.com> wrote:
> >
> > Use C11 atomic built-ins with explicit ordering instead of rte_atomic
> > ops which enforce unnecessary barriers on aarch64.
> >
> > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > ---
> > v4:
> > 1. Add union for refcnt_atomic and refcnt in rte_mbuf_ext_shared_info
> > to avoid ABI breakage. (Olivier)
> > 2. Add notice of refcnt_atomic deprecation. (Honnappa)
>
> v4 does not pass the checks (in both my env, and Travis).
> https://travis-ci.com/github/ovsrobot/dpdk/jobs/359393389#L2405
I had tested with test-meson-builds in my env and it didn't give any error message. The reference version is v20.05.
$ DPDK_ABI_REF_DIR=$PWD/reference DPDK_ABI_REF_VERSION=v20.05 ./devtools/test-meson-builds.sh
It seems to be a problem with my test environment.
I will fix this problem as soon as possible.
>
> It seems the robot had a hiccup as I can't see a report in the test-report ml.
>
>
> --
> David Marchand
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v4 1/2] mbuf: use C11 atomic built-ins for refcnt operations
2020-07-15 12:29 0% ` David Marchand
@ 2020-07-15 12:49 0% ` Aaron Conole
2020-07-15 16:29 0% ` Phil Yang
2020-07-16 4:16 0% ` Phil Yang
2 siblings, 0 replies; 200+ results
From: Aaron Conole @ 2020-07-15 12:49 UTC (permalink / raw)
To: David Marchand
Cc: Phil Yang, Olivier Matz, dev, Stephen Hemminger,
David Christensen, Honnappa Nagarahalli,
Ruifeng Wang (Arm Technology China),
nd, Dodji Seketeli
David Marchand <david.marchand@redhat.com> writes:
> On Thu, Jul 9, 2020 at 5:59 PM Phil Yang <phil.yang@arm.com> wrote:
>>
>> Use C11 atomic built-ins with explicit ordering instead of rte_atomic
>> ops which enforce unnecessary barriers on aarch64.
>>
>> Signed-off-by: Phil Yang <phil.yang@arm.com>
>> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
>> ---
>> v4:
>> 1. Add union for refcnt_atomic and refcnt in rte_mbuf_ext_shared_info
>> to avoid ABI breakage. (Olivier)
>> 2. Add notice of refcnt_atomic deprecation. (Honnappa)
>
> v4 does not pass the checks (in both my env, and Travis).
> https://travis-ci.com/github/ovsrobot/dpdk/jobs/359393389#L2405
>
> It seems the robot had a hiccup as I can't see a report in the test-report ml.
Hrrm... that has been happening quite a bit. I'll investigate.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] devtools: give some hints for ABI errors
2020-07-15 12:15 25% ` [dpdk-dev] [PATCH v2] " David Marchand
@ 2020-07-15 12:48 4% ` Aaron Conole
2020-07-16 7:29 4% ` David Marchand
0 siblings, 1 reply; 200+ results
From: Aaron Conole @ 2020-07-15 12:48 UTC (permalink / raw)
To: David Marchand; +Cc: dev, thomas, mdr, nhorman, dodji
David Marchand <david.marchand@redhat.com> writes:
> abidiff can provide some more information about the ABI difference it
> detected.
> In all cases, a discussion on the mailing must happen but we can give
> some hints to know if this is a problem with the script calling abidiff,
> a potential ABI breakage or an unambiguous ABI breakage.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> Acked-by: Ray Kinsella <mdr@ashroe.eu>
> Acked-by: Neil Horman <nhorman@tuxdriver.com>
> ---
> Changes since v1:
> - used arithmetic test,
> - updated error message for generic errors,
>
Acked-by: Aaron Conole <aconole@redhat.com>
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH v4 1/2] mbuf: use C11 atomic built-ins for refcnt operations
@ 2020-07-15 12:29 0% ` David Marchand
2020-07-15 12:49 0% ` Aaron Conole
` (2 more replies)
2020-07-17 4:36 4% ` [dpdk-dev] [PATCH v5 1/2] mbuf: use C11 atomic builtins " Phil Yang
1 sibling, 3 replies; 200+ results
From: David Marchand @ 2020-07-15 12:29 UTC (permalink / raw)
To: Phil Yang
Cc: Olivier Matz, dev, Stephen Hemminger, David Christensen,
Honnappa Nagarahalli, Ruifeng Wang (Arm Technology China),
nd, Dodji Seketeli, Aaron Conole
On Thu, Jul 9, 2020 at 5:59 PM Phil Yang <phil.yang@arm.com> wrote:
>
> Use C11 atomic built-ins with explicit ordering instead of rte_atomic
> ops which enforce unnecessary barriers on aarch64.
>
> Signed-off-by: Phil Yang <phil.yang@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> ---
> v4:
> 1. Add union for refcnt_atomic and refcnt in rte_mbuf_ext_shared_info
> to avoid ABI breakage. (Olivier)
> 2. Add notice of refcnt_atomic deprecation. (Honnappa)
v4 does not pass the checks (in both my env, and Travis).
https://travis-ci.com/github/ovsrobot/dpdk/jobs/359393389#L2405
It seems the robot had a hiccup as I can't see a report in the test-report ml.
--
David Marchand
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH v2] devtools: give some hints for ABI errors
2020-07-10 7:37 4% ` Kinsella, Ray
2020-07-10 10:58 4% ` Neil Horman
@ 2020-07-15 12:15 25% ` David Marchand
2020-07-15 12:48 4% ` Aaron Conole
2 siblings, 1 reply; 200+ results
From: David Marchand @ 2020-07-15 12:15 UTC (permalink / raw)
To: dev; +Cc: thomas, mdr, nhorman, dodji, aconole
abidiff can provide some more information about the ABI difference it
detected.
In all cases, a discussion on the mailing must happen but we can give
some hints to know if this is a problem with the script calling abidiff,
a potential ABI breakage or an unambiguous ABI breakage.
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
---
Changes since v1:
- used arithmetic test,
- updated error message for generic errors,
---
devtools/check-abi.sh | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/devtools/check-abi.sh b/devtools/check-abi.sh
index e17fedbd9f..172e934382 100755
--- a/devtools/check-abi.sh
+++ b/devtools/check-abi.sh
@@ -50,10 +50,22 @@ for dump in $(find $refdir -name "*.dump"); do
error=1
continue
fi
- if ! abidiff $ABIDIFF_OPTIONS $dump $dump2; then
+ abidiff $ABIDIFF_OPTIONS $dump $dump2 || {
+ abiret=$?
echo "Error: ABI issue reported for 'abidiff $ABIDIFF_OPTIONS $dump $dump2'"
error=1
- fi
+ echo
+ if [ $(($abiret & 3)) -ne 0 ]; then
+ echo "ABIDIFF_ERROR|ABIDIFF_USAGE_ERROR, this could be a script or environment issue."
+ fi
+ if [ $(($abiret & 4)) -ne 0 ]; then
+ echo "ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged this as a potential issue)."
+ fi
+ if [ $(($abiret & 8)) -ne 0 ]; then
+ echo "ABIDIFF_ABI_INCOMPATIBLE_CHANGE, this change breaks the ABI."
+ fi
+ echo
+ }
done
[ -z "$error" ] || [ -n "$warnonly" ]
--
2.23.0
^ permalink raw reply [relevance 25%]
* [dpdk-dev] [PATCH v4 09/11] doc: add note about blacklist/whitelist changes
@ 2020-07-14 5:39 4% ` Stephen Hemminger
0 siblings, 0 replies; 200+ results
From: Stephen Hemminger @ 2020-07-14 5:39 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger, Luca Boccassi
The blacklist/whitelist changes to API will not be a breaking
change for applications in this release but worth adding a note
to encourage migration.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Luca Boccassi <bluca@debian.org>
---
doc/guides/rel_notes/release_20_08.rst | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/doc/guides/rel_notes/release_20_08.rst b/doc/guides/rel_notes/release_20_08.rst
index f19b748728e4..b9509f657b30 100644
--- a/doc/guides/rel_notes/release_20_08.rst
+++ b/doc/guides/rel_notes/release_20_08.rst
@@ -261,6 +261,12 @@ API Changes
* vhost: The API of ``rte_vhost_host_notifier_ctrl`` was changed to be per
queue and not per device, a qid parameter was added to the arguments list.
+* eal: The definitions related to including and excluding devices
+ has been changed from blacklist/whitelist to include/exclude.
+ There are compatiablity macros and command line mapping to accept
+ the old values but applications and scripts are strongly encouraged
+ to migrate to the new names.
+
ABI Changes
-----------
--
2.26.2
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH v3 00/10] rename blacklist/whitelist to block/allow
2020-07-10 15:06 3% ` David Marchand
@ 2020-07-14 4:43 0% ` Stephen Hemminger
0 siblings, 0 replies; 200+ results
From: Stephen Hemminger @ 2020-07-14 4:43 UTC (permalink / raw)
To: David Marchand; +Cc: dev, techboard, Luca Boccassi, Mcnamara, John
On Fri, 10 Jul 2020 17:06:11 +0200
David Marchand <david.marchand@redhat.com> wrote:
> On Sat, Jun 13, 2020 at 2:01 AM Stephen Hemminger
> <stephen@networkplumber.org> wrote:
> >
> > The terms blacklist and whitelist are often seen as reminders
> > of the divisions in society. Instead, use more exact terms for
> > handling of which devices are used in DPDK.
> >
> > This is a proposed change for DPDK 20.08 to replace the names
> > blacklist and whitelist in API and command lines.
> >
> > The first three patches fix some other unnecessary use of
> > blacklist/whitelist and have no user visible impact.
> >
> > The rest change the PCI blacklist to be blocklist and
> > whitelist to be allowlist.
>
> Thanks for working on this.
>
> I agree, the first patches can go in right now.
>
> But I have some concerns about the rest.
>
> New options in EAL are not consistent with "allow"/"block" list:
> + "b:" /* pci-skip-probe */
> + "w:" /* pci-only-probe */
> +#define OPT_PCI_SKIP_PROBE "pci-skip-probe"
> + OPT_PCI_SKIP_PROBE_NUM = 'b',
> +#define OPT_PCI_ONLY_PROBE "pci-only-probe"
> + OPT_PCI_ONLY_PROBE_NUM = 'w',
>
> The CI flagged the series as failing, because the unit test for EAL
> flags is unaligned:
> +#define pci_allowlist "--pci-allowlist"
> https://travis-ci.com/github/ovsrobot/dpdk/jobs/348668299#L5657
>
>
> The ABI check complains about the enum update:
> https://travis-ci.com/github/ovsrobot/dpdk/jobs/348668301#L2400
> Either we deal with this, or we need a libabigail exception rule.
>
>
> About deprecating existing API/EAL flags in this release, this should
> go through the standard deprecation process.
> I would go with introducing new options + full compatibility + a
> deprecation notice in the 20.08 release.
> The actual deprecation/API flagging will go in 20.11.
> Removal will come later.
>
>
The next version will use different flags, and the old flags will cause
runtime deprecation warning.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] mempool/ring: add support for new ring sync modes
2020-07-13 15:00 3% ` Olivier Matz
@ 2020-07-13 16:29 0% ` Ananyev, Konstantin
0 siblings, 0 replies; 200+ results
From: Ananyev, Konstantin @ 2020-07-13 16:29 UTC (permalink / raw)
To: Olivier Matz; +Cc: dev, arybchenko, jielong.zjl, Eads, Gage
> On Mon, Jul 13, 2020 at 02:46:35PM +0000, Ananyev, Konstantin wrote:
> > Hi Olivier,
> >
> > > Hi Konstantin,
> > >
> > > On Fri, Jul 10, 2020 at 03:20:12PM +0000, Ananyev, Konstantin wrote:
> > > >
> > > >
> > > > >
> > > > > Hi Olivier,
> > > > >
> > > > > > Hi Konstantin,
> > > > > >
> > > > > > On Thu, Jul 09, 2020 at 05:55:30PM +0000, Ananyev, Konstantin wrote:
> > > > > > > Hi Olivier,
> > > > > > >
> > > > > > > > Hi Konstantin,
> > > > > > > >
> > > > > > > > On Mon, Jun 29, 2020 at 05:10:24PM +0100, Konstantin Ananyev wrote:
> > > > > > > > > v2:
> > > > > > > > > - update Release Notes (as per comments)
> > > > > > > > >
> > > > > > > > > Two new sync modes were introduced into rte_ring:
> > > > > > > > > relaxed tail sync (RTS) and head/tail sync (HTS).
> > > > > > > > > This change provides user with ability to select these
> > > > > > > > > modes for ring based mempool via mempool ops API.
> > > > > > > > >
> > > > > > > > > Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> > > > > > > > > Acked-by: Gage Eads <gage.eads@intel.com>
> > > > > > > > > ---
> > > > > > > > > doc/guides/rel_notes/release_20_08.rst | 6 ++
> > > > > > > > > drivers/mempool/ring/rte_mempool_ring.c | 97 ++++++++++++++++++++++---
> > > > > > > > > 2 files changed, 94 insertions(+), 9 deletions(-)
> > > > > > > > >
> > > > > > > > > diff --git a/doc/guides/rel_notes/release_20_08.rst b/doc/guides/rel_notes/release_20_08.rst
> > > > > > > > > index eaaf11c37..7bdcf3aac 100644
> > > > > > > > > --- a/doc/guides/rel_notes/release_20_08.rst
> > > > > > > > > +++ b/doc/guides/rel_notes/release_20_08.rst
> > > > > > > > > @@ -84,6 +84,12 @@ New Features
> > > > > > > > > * Dump ``rte_flow`` memory consumption.
> > > > > > > > > * Measure packet per second forwarding.
> > > > > > > > >
> > > > > > > > > +* **Added support for new sync modes into mempool ring driver.**
> > > > > > > > > +
> > > > > > > > > + Added ability to select new ring synchronisation modes:
> > > > > > > > > + ``relaxed tail sync (ring_mt_rts)`` and ``head/tail sync (ring_mt_hts)``
> > > > > > > > > + via mempool ops API.
> > > > > > > > > +
> > > > > > > > >
> > > > > > > > > Removed Items
> > > > > > > > > -------------
> > > > > > > > > diff --git a/drivers/mempool/ring/rte_mempool_ring.c b/drivers/mempool/ring/rte_mempool_ring.c
> > > > > > > > > index bc123fc52..15ec7dee7 100644
> > > > > > > > > --- a/drivers/mempool/ring/rte_mempool_ring.c
> > > > > > > > > +++ b/drivers/mempool/ring/rte_mempool_ring.c
> > > > > > > > > @@ -25,6 +25,22 @@ common_ring_sp_enqueue(struct rte_mempool *mp, void * const *obj_table,
> > > > > > > > > obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > > }
> > > > > > > > >
> > > > > > > > > +static int
> > > > > > > > > +rts_ring_mp_enqueue(struct rte_mempool *mp, void * const *obj_table,
> > > > > > > > > + unsigned int n)
> > > > > > > > > +{
> > > > > > > > > + return rte_ring_mp_rts_enqueue_bulk(mp->pool_data,
> > > > > > > > > + obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > > +}
> > > > > > > > > +
> > > > > > > > > +static int
> > > > > > > > > +hts_ring_mp_enqueue(struct rte_mempool *mp, void * const *obj_table,
> > > > > > > > > + unsigned int n)
> > > > > > > > > +{
> > > > > > > > > + return rte_ring_mp_hts_enqueue_bulk(mp->pool_data,
> > > > > > > > > + obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > > +}
> > > > > > > > > +
> > > > > > > > > static int
> > > > > > > > > common_ring_mc_dequeue(struct rte_mempool *mp, void **obj_table, unsigned n)
> > > > > > > > > {
> > > > > > > > > @@ -39,17 +55,30 @@ common_ring_sc_dequeue(struct rte_mempool *mp, void **obj_table, unsigned n)
> > > > > > > > > obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > > }
> > > > > > > > >
> > > > > > > > > +static int
> > > > > > > > > +rts_ring_mc_dequeue(struct rte_mempool *mp, void **obj_table, unsigned int n)
> > > > > > > > > +{
> > > > > > > > > + return rte_ring_mc_rts_dequeue_bulk(mp->pool_data,
> > > > > > > > > + obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > > +}
> > > > > > > > > +
> > > > > > > > > +static int
> > > > > > > > > +hts_ring_mc_dequeue(struct rte_mempool *mp, void **obj_table, unsigned int n)
> > > > > > > > > +{
> > > > > > > > > + return rte_ring_mc_hts_dequeue_bulk(mp->pool_data,
> > > > > > > > > + obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > > +}
> > > > > > > > > +
> > > > > > > > > static unsigned
> > > > > > > > > common_ring_get_count(const struct rte_mempool *mp)
> > > > > > > > > {
> > > > > > > > > return rte_ring_count(mp->pool_data);
> > > > > > > > > }
> > > > > > > > >
> > > > > > > > > -
> > > > > > > > > static int
> > > > > > > > > -common_ring_alloc(struct rte_mempool *mp)
> > > > > > > > > +ring_alloc(struct rte_mempool *mp, uint32_t rg_flags)
> > > > > > > > > {
> > > > > > > > > - int rg_flags = 0, ret;
> > > > > > > > > + int ret;
> > > > > > > > > char rg_name[RTE_RING_NAMESIZE];
> > > > > > > > > struct rte_ring *r;
> > > > > > > > >
> > > > > > > > > @@ -60,12 +89,6 @@ common_ring_alloc(struct rte_mempool *mp)
> > > > > > > > > return -rte_errno;
> > > > > > > > > }
> > > > > > > > >
> > > > > > > > > - /* ring flags */
> > > > > > > > > - if (mp->flags & MEMPOOL_F_SP_PUT)
> > > > > > > > > - rg_flags |= RING_F_SP_ENQ;
> > > > > > > > > - if (mp->flags & MEMPOOL_F_SC_GET)
> > > > > > > > > - rg_flags |= RING_F_SC_DEQ;
> > > > > > > > > -
> > > > > > > > > /*
> > > > > > > > > * Allocate the ring that will be used to store objects.
> > > > > > > > > * Ring functions will return appropriate errors if we are
> > > > > > > > > @@ -82,6 +105,40 @@ common_ring_alloc(struct rte_mempool *mp)
> > > > > > > > > return 0;
> > > > > > > > > }
> > > > > > > > >
> > > > > > > > > +static int
> > > > > > > > > +common_ring_alloc(struct rte_mempool *mp)
> > > > > > > > > +{
> > > > > > > > > + uint32_t rg_flags;
> > > > > > > > > +
> > > > > > > > > + rg_flags = 0;
> > > > > > > >
> > > > > > > > Maybe it could go on the same line
> > > > > > > >
> > > > > > > > > +
> > > > > > > > > + /* ring flags */
> > > > > > > >
> > > > > > > > Not sure we need to keep this comment
> > > > > > > >
> > > > > > > > > + if (mp->flags & MEMPOOL_F_SP_PUT)
> > > > > > > > > + rg_flags |= RING_F_SP_ENQ;
> > > > > > > > > + if (mp->flags & MEMPOOL_F_SC_GET)
> > > > > > > > > + rg_flags |= RING_F_SC_DEQ;
> > > > > > > > > +
> > > > > > > > > + return ring_alloc(mp, rg_flags);
> > > > > > > > > +}
> > > > > > > > > +
> > > > > > > > > +static int
> > > > > > > > > +rts_ring_alloc(struct rte_mempool *mp)
> > > > > > > > > +{
> > > > > > > > > + if ((mp->flags & (MEMPOOL_F_SP_PUT | MEMPOOL_F_SC_GET)) != 0)
> > > > > > > > > + return -EINVAL;
> > > > > > > >
> > > > > > > > Why do we need this? It is a problem to allow sc/sp in this mode (even
> > > > > > > > if it's not optimal)?
> > > > > > >
> > > > > > > These new sync modes (RTS, HTS) are for MT.
> > > > > > > For SP/SC - there is simply no point to use MT sync modes.
> > > > > > > I suppose there are few choices:
> > > > > > > 1. Make F_SP_PUT/F_SC_GET flags silently override expected ops behaviour
> > > > > > > and create actual ring with ST sync mode for prod/cons.
> > > > > > > 2. Report an error.
> > > > > > > 3. Silently ignore these flags.
> > > > > > >
> > > > > > > As I can see for "ring_mp_mc" ops, we doing #1,
> > > > > > > while for "stack" we are doing #3.
> > > > > > > For RTS/HTS I chosoe #2, as it seems cleaner to me.
> > > > > > > Any thoughts from your side what preferable behaviour should be?
> > > > > >
> > > > > > The F_SP_PUT/F_SC_GET are only used in rte_mempool_create() to select
> > > > > > the default ops among (ring_sp_sc, ring_mp_sc, ring_sp_mc,
> > > > > > ring_mp_mc).
> > > > >
> > > > > As I understand, nothing prevents user from doing:
> > > > >
> > > > > mp = rte_mempool_create_empty(name, n, elt_size, cache_size,
> > > > > sizeof(struct rte_pktmbuf_pool_private), socket_id, 0);
> > > >
> > > > Apologies, hit send accidently.
> > > > I meant user can do:
> > > >
> > > > mp = rte_mempool_create_empty(..., F_SP_PUT | F_SC_GET);
> > > > rte_mempool_set_ops_byname(mp, "ring_mp_mc", NULL);
> > > >
> > > > An in that case, he'll get SP/SC ring underneath.
> > >
> > > It looks it's not the case. Since commit 449c49b93a6b ("mempool: support
> > > handler operations"), the flags SP_PUT/SC_GET are converted into a call
> > > to rte_mempool_set_ops_byname() in rte_mempool_create() only.
> > >
> > > In rte_mempool_create_empty(), these flags are ignored. It is expected
> > > that the user calls rte_mempool_set_ops_byname() by itself.
> >
> > As I understand the code - not exactly.
> > rte_mempool_create_empty() doesn't make any specific actions based on 'flags' value,
> > but it does store it's value inside mp->flags.
> > Later, when mempool_ops_alloc_once() is called these flags will be used by
> > common_ring_alloc() and might override selected by ops ring behaviour.
> >
> > >
> > > I don't think it is a good behavior:
> > >
> > > 1/ The documentation of rte_mempool_create_empty() does not say that the
> > > flags are ignored, and a user can expect that F_SP_PUT | F_SC_GET
> > > sets the default ops like rte_mempool_create().
> > >
> > > 2/ If rte_mempool_set_ops_byname() is not called after
> > > rte_mempool_create_empty() (and it looks it happens in dpdk's code),
> > > the default ops are the ones registered at index 0. This depends on
> > > the link order.
> > >
> > > So I propose to move the following code in
> > > rte_mempool_create_empty().
> > >
> > > if ((flags & MEMPOOL_F_SP_PUT) && (flags & MEMPOOL_F_SC_GET))
> > > ret = rte_mempool_set_ops_byname(mp, "ring_sp_sc", NULL);
> > > else if (flags & MEMPOOL_F_SP_PUT)
> > > ret = rte_mempool_set_ops_byname(mp, "ring_sp_mc", NULL);
> > > else if (flags & MEMPOOL_F_SC_GET)
> > > ret = rte_mempool_set_ops_byname(mp, "ring_mp_sc", NULL);
> > > else
> > > ret = rte_mempool_set_ops_byname(mp, "ring_mp_mc", NULL);
> > >
> > > What do you think?
> >
> > I think it will be a good thing - as in that case we'll always have
> > "ring_mp_mc" selected as default one.
> > As another thought, it porbably would be good to deprecate and later remove
> > MEMPOOL_F_SP_PUT and MEMPOOL_F_SC_GET completely.
> > These days user can select this behaviour via mempool ops and such dualism
> > just makes things more error-prone and harder to maintain.
> > Especially as we don't have clear policy what should be the higher priority
> > for sync mode selection: mempool ops or flags.
> >
>
> I'll tend to agree, however it would mean deprecate rte_mempool_create()
> too, because we wouldn't be able to set ops with it. Or we would have to
> add a 12th (!) argument to the function, to set the ops name.
>
> I don't like having that many arguments to this function, but it seems
> it is widely used, probably because it is just one function call (vs
> create_empty + set_ops + populate). So adding a "ops_name" argument is
> maybe the right thing to do, given we can keep abi compat.
My thought was - just keep rte_mempool_create()
parameter list as it is, and always set ops to "ring_mp_mc" for it.
Users who'd like some other ops would force to use
create_empty+set_ops+populate.
That's pretty much the same what we have right now,
the only diff will be ring with SP/SC mode.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v2] mempool/ring: add support for new ring sync modes
@ 2020-07-13 15:00 3% ` Olivier Matz
2020-07-13 16:29 0% ` Ananyev, Konstantin
0 siblings, 1 reply; 200+ results
From: Olivier Matz @ 2020-07-13 15:00 UTC (permalink / raw)
To: Ananyev, Konstantin; +Cc: dev, arybchenko, jielong.zjl, Eads, Gage
On Mon, Jul 13, 2020 at 02:46:35PM +0000, Ananyev, Konstantin wrote:
> Hi Olivier,
>
> > Hi Konstantin,
> >
> > On Fri, Jul 10, 2020 at 03:20:12PM +0000, Ananyev, Konstantin wrote:
> > >
> > >
> > > >
> > > > Hi Olivier,
> > > >
> > > > > Hi Konstantin,
> > > > >
> > > > > On Thu, Jul 09, 2020 at 05:55:30PM +0000, Ananyev, Konstantin wrote:
> > > > > > Hi Olivier,
> > > > > >
> > > > > > > Hi Konstantin,
> > > > > > >
> > > > > > > On Mon, Jun 29, 2020 at 05:10:24PM +0100, Konstantin Ananyev wrote:
> > > > > > > > v2:
> > > > > > > > - update Release Notes (as per comments)
> > > > > > > >
> > > > > > > > Two new sync modes were introduced into rte_ring:
> > > > > > > > relaxed tail sync (RTS) and head/tail sync (HTS).
> > > > > > > > This change provides user with ability to select these
> > > > > > > > modes for ring based mempool via mempool ops API.
> > > > > > > >
> > > > > > > > Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> > > > > > > > Acked-by: Gage Eads <gage.eads@intel.com>
> > > > > > > > ---
> > > > > > > > doc/guides/rel_notes/release_20_08.rst | 6 ++
> > > > > > > > drivers/mempool/ring/rte_mempool_ring.c | 97 ++++++++++++++++++++++---
> > > > > > > > 2 files changed, 94 insertions(+), 9 deletions(-)
> > > > > > > >
> > > > > > > > diff --git a/doc/guides/rel_notes/release_20_08.rst b/doc/guides/rel_notes/release_20_08.rst
> > > > > > > > index eaaf11c37..7bdcf3aac 100644
> > > > > > > > --- a/doc/guides/rel_notes/release_20_08.rst
> > > > > > > > +++ b/doc/guides/rel_notes/release_20_08.rst
> > > > > > > > @@ -84,6 +84,12 @@ New Features
> > > > > > > > * Dump ``rte_flow`` memory consumption.
> > > > > > > > * Measure packet per second forwarding.
> > > > > > > >
> > > > > > > > +* **Added support for new sync modes into mempool ring driver.**
> > > > > > > > +
> > > > > > > > + Added ability to select new ring synchronisation modes:
> > > > > > > > + ``relaxed tail sync (ring_mt_rts)`` and ``head/tail sync (ring_mt_hts)``
> > > > > > > > + via mempool ops API.
> > > > > > > > +
> > > > > > > >
> > > > > > > > Removed Items
> > > > > > > > -------------
> > > > > > > > diff --git a/drivers/mempool/ring/rte_mempool_ring.c b/drivers/mempool/ring/rte_mempool_ring.c
> > > > > > > > index bc123fc52..15ec7dee7 100644
> > > > > > > > --- a/drivers/mempool/ring/rte_mempool_ring.c
> > > > > > > > +++ b/drivers/mempool/ring/rte_mempool_ring.c
> > > > > > > > @@ -25,6 +25,22 @@ common_ring_sp_enqueue(struct rte_mempool *mp, void * const *obj_table,
> > > > > > > > obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > }
> > > > > > > >
> > > > > > > > +static int
> > > > > > > > +rts_ring_mp_enqueue(struct rte_mempool *mp, void * const *obj_table,
> > > > > > > > + unsigned int n)
> > > > > > > > +{
> > > > > > > > + return rte_ring_mp_rts_enqueue_bulk(mp->pool_data,
> > > > > > > > + obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > +static int
> > > > > > > > +hts_ring_mp_enqueue(struct rte_mempool *mp, void * const *obj_table,
> > > > > > > > + unsigned int n)
> > > > > > > > +{
> > > > > > > > + return rte_ring_mp_hts_enqueue_bulk(mp->pool_data,
> > > > > > > > + obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > static int
> > > > > > > > common_ring_mc_dequeue(struct rte_mempool *mp, void **obj_table, unsigned n)
> > > > > > > > {
> > > > > > > > @@ -39,17 +55,30 @@ common_ring_sc_dequeue(struct rte_mempool *mp, void **obj_table, unsigned n)
> > > > > > > > obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > }
> > > > > > > >
> > > > > > > > +static int
> > > > > > > > +rts_ring_mc_dequeue(struct rte_mempool *mp, void **obj_table, unsigned int n)
> > > > > > > > +{
> > > > > > > > + return rte_ring_mc_rts_dequeue_bulk(mp->pool_data,
> > > > > > > > + obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > +static int
> > > > > > > > +hts_ring_mc_dequeue(struct rte_mempool *mp, void **obj_table, unsigned int n)
> > > > > > > > +{
> > > > > > > > + return rte_ring_mc_hts_dequeue_bulk(mp->pool_data,
> > > > > > > > + obj_table, n, NULL) == 0 ? -ENOBUFS : 0;
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > static unsigned
> > > > > > > > common_ring_get_count(const struct rte_mempool *mp)
> > > > > > > > {
> > > > > > > > return rte_ring_count(mp->pool_data);
> > > > > > > > }
> > > > > > > >
> > > > > > > > -
> > > > > > > > static int
> > > > > > > > -common_ring_alloc(struct rte_mempool *mp)
> > > > > > > > +ring_alloc(struct rte_mempool *mp, uint32_t rg_flags)
> > > > > > > > {
> > > > > > > > - int rg_flags = 0, ret;
> > > > > > > > + int ret;
> > > > > > > > char rg_name[RTE_RING_NAMESIZE];
> > > > > > > > struct rte_ring *r;
> > > > > > > >
> > > > > > > > @@ -60,12 +89,6 @@ common_ring_alloc(struct rte_mempool *mp)
> > > > > > > > return -rte_errno;
> > > > > > > > }
> > > > > > > >
> > > > > > > > - /* ring flags */
> > > > > > > > - if (mp->flags & MEMPOOL_F_SP_PUT)
> > > > > > > > - rg_flags |= RING_F_SP_ENQ;
> > > > > > > > - if (mp->flags & MEMPOOL_F_SC_GET)
> > > > > > > > - rg_flags |= RING_F_SC_DEQ;
> > > > > > > > -
> > > > > > > > /*
> > > > > > > > * Allocate the ring that will be used to store objects.
> > > > > > > > * Ring functions will return appropriate errors if we are
> > > > > > > > @@ -82,6 +105,40 @@ common_ring_alloc(struct rte_mempool *mp)
> > > > > > > > return 0;
> > > > > > > > }
> > > > > > > >
> > > > > > > > +static int
> > > > > > > > +common_ring_alloc(struct rte_mempool *mp)
> > > > > > > > +{
> > > > > > > > + uint32_t rg_flags;
> > > > > > > > +
> > > > > > > > + rg_flags = 0;
> > > > > > >
> > > > > > > Maybe it could go on the same line
> > > > > > >
> > > > > > > > +
> > > > > > > > + /* ring flags */
> > > > > > >
> > > > > > > Not sure we need to keep this comment
> > > > > > >
> > > > > > > > + if (mp->flags & MEMPOOL_F_SP_PUT)
> > > > > > > > + rg_flags |= RING_F_SP_ENQ;
> > > > > > > > + if (mp->flags & MEMPOOL_F_SC_GET)
> > > > > > > > + rg_flags |= RING_F_SC_DEQ;
> > > > > > > > +
> > > > > > > > + return ring_alloc(mp, rg_flags);
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > +static int
> > > > > > > > +rts_ring_alloc(struct rte_mempool *mp)
> > > > > > > > +{
> > > > > > > > + if ((mp->flags & (MEMPOOL_F_SP_PUT | MEMPOOL_F_SC_GET)) != 0)
> > > > > > > > + return -EINVAL;
> > > > > > >
> > > > > > > Why do we need this? It is a problem to allow sc/sp in this mode (even
> > > > > > > if it's not optimal)?
> > > > > >
> > > > > > These new sync modes (RTS, HTS) are for MT.
> > > > > > For SP/SC - there is simply no point to use MT sync modes.
> > > > > > I suppose there are few choices:
> > > > > > 1. Make F_SP_PUT/F_SC_GET flags silently override expected ops behaviour
> > > > > > and create actual ring with ST sync mode for prod/cons.
> > > > > > 2. Report an error.
> > > > > > 3. Silently ignore these flags.
> > > > > >
> > > > > > As I can see for "ring_mp_mc" ops, we doing #1,
> > > > > > while for "stack" we are doing #3.
> > > > > > For RTS/HTS I chosoe #2, as it seems cleaner to me.
> > > > > > Any thoughts from your side what preferable behaviour should be?
> > > > >
> > > > > The F_SP_PUT/F_SC_GET are only used in rte_mempool_create() to select
> > > > > the default ops among (ring_sp_sc, ring_mp_sc, ring_sp_mc,
> > > > > ring_mp_mc).
> > > >
> > > > As I understand, nothing prevents user from doing:
> > > >
> > > > mp = rte_mempool_create_empty(name, n, elt_size, cache_size,
> > > > sizeof(struct rte_pktmbuf_pool_private), socket_id, 0);
> > >
> > > Apologies, hit send accidently.
> > > I meant user can do:
> > >
> > > mp = rte_mempool_create_empty(..., F_SP_PUT | F_SC_GET);
> > > rte_mempool_set_ops_byname(mp, "ring_mp_mc", NULL);
> > >
> > > An in that case, he'll get SP/SC ring underneath.
> >
> > It looks it's not the case. Since commit 449c49b93a6b ("mempool: support
> > handler operations"), the flags SP_PUT/SC_GET are converted into a call
> > to rte_mempool_set_ops_byname() in rte_mempool_create() only.
> >
> > In rte_mempool_create_empty(), these flags are ignored. It is expected
> > that the user calls rte_mempool_set_ops_byname() by itself.
>
> As I understand the code - not exactly.
> rte_mempool_create_empty() doesn't make any specific actions based on 'flags' value,
> but it does store it's value inside mp->flags.
> Later, when mempool_ops_alloc_once() is called these flags will be used by
> common_ring_alloc() and might override selected by ops ring behaviour.
>
> >
> > I don't think it is a good behavior:
> >
> > 1/ The documentation of rte_mempool_create_empty() does not say that the
> > flags are ignored, and a user can expect that F_SP_PUT | F_SC_GET
> > sets the default ops like rte_mempool_create().
> >
> > 2/ If rte_mempool_set_ops_byname() is not called after
> > rte_mempool_create_empty() (and it looks it happens in dpdk's code),
> > the default ops are the ones registered at index 0. This depends on
> > the link order.
> >
> > So I propose to move the following code in
> > rte_mempool_create_empty().
> >
> > if ((flags & MEMPOOL_F_SP_PUT) && (flags & MEMPOOL_F_SC_GET))
> > ret = rte_mempool_set_ops_byname(mp, "ring_sp_sc", NULL);
> > else if (flags & MEMPOOL_F_SP_PUT)
> > ret = rte_mempool_set_ops_byname(mp, "ring_sp_mc", NULL);
> > else if (flags & MEMPOOL_F_SC_GET)
> > ret = rte_mempool_set_ops_byname(mp, "ring_mp_sc", NULL);
> > else
> > ret = rte_mempool_set_ops_byname(mp, "ring_mp_mc", NULL);
> >
> > What do you think?
>
> I think it will be a good thing - as in that case we'll always have
> "ring_mp_mc" selected as default one.
> As another thought, it porbably would be good to deprecate and later remove
> MEMPOOL_F_SP_PUT and MEMPOOL_F_SC_GET completely.
> These days user can select this behaviour via mempool ops and such dualism
> just makes things more error-prone and harder to maintain.
> Especially as we don't have clear policy what should be the higher priority
> for sync mode selection: mempool ops or flags.
>
I'll tend to agree, however it would mean deprecate rte_mempool_create()
too, because we wouldn't be able to set ops with it. Or we would have to
add a 12th (!) argument to the function, to set the ops name.
I don't like having that many arguments to this function, but it seems
it is widely used, probably because it is just one function call (vs
create_empty + set_ops + populate). So adding a "ops_name" argument is
maybe the right thing to do, given we can keep abi compat.
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs
2020-07-13 12:31 5% ` [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs Bruce Richardson
@ 2020-07-13 12:48 5% ` Hemant Agrawal
2020-07-20 11:35 0% ` Ananyev, Konstantin
2020-07-23 1:55 5% ` Xu, Rosen
2 siblings, 0 replies; 200+ results
From: Hemant Agrawal @ 2020-07-13 12:48 UTC (permalink / raw)
To: Bruce Richardson, dev; +Cc: Nipun Gupta
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
-----Original Message-----
From: Bruce Richardson <bruce.richardson@intel.com>
Sent: Monday, July 13, 2020 6:01 PM
To: dev@dpdk.org
Cc: Bruce Richardson <bruce.richardson@intel.com>; Nipun Gupta <nipun.gupta@nxp.com>; Hemant Agrawal <hemant.agrawal@nxp.com>
Subject: [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs
Importance: High
Add to the documentation for 20.08 a notice about the changes of rawdev APIs proposed by patchset [1].
[1] https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Finbox.dpdk.org%2Fdev%2F20200709152047.167730-1-bruce.richardson%40intel.com%2F&data=02%7C01%7Chemant.agrawal%40nxp.com%7C0f08b692d7e1471fa69908d82728a944%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637302402871919863&sdata=MfNlKHVOUk%2FRViCJBqSnyJRB%2BnnKpPeViN6OiCb9MJA%3D&reserved=0
Cc: Nipun Gupta <nipun.gupta@nxp.com>
Cc: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index ead7cbe43..21b00103e 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -117,6 +117,13 @@ Deprecation Notices
break the ABI checks, that is why change is planned for 20.11.
The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
+* rawdev: The rawdev APIs which take a device-specific structure as
+ parameter directly, or indirectly via a "private" pointer inside
+another
+ structure, will be modified to take an additional parameter of the
+ structure size. The affected APIs will include
+``rte_rawdev_info_get``,
+ ``rte_rawdev_configure``, ``rte_rawdev_queue_conf_get`` and
+ ``rte_rawdev_queue_setup``.
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
2.25.1
^ permalink raw reply [relevance 5%]
* [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs
@ 2020-07-13 12:31 5% ` Bruce Richardson
2020-07-13 12:48 5% ` Hemant Agrawal
` (2 more replies)
0 siblings, 3 replies; 200+ results
From: Bruce Richardson @ 2020-07-13 12:31 UTC (permalink / raw)
To: dev; +Cc: Bruce Richardson, Nipun Gupta, Hemant Agrawal
Add to the documentation for 20.08 a notice about the changes of rawdev
APIs proposed by patchset [1].
[1] http://inbox.dpdk.org/dev/20200709152047.167730-1-bruce.richardson@intel.com/
Cc: Nipun Gupta <nipun.gupta@nxp.com>
Cc: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index ead7cbe43..21b00103e 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -117,6 +117,13 @@ Deprecation Notices
break the ABI checks, that is why change is planned for 20.11.
The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
+* rawdev: The rawdev APIs which take a device-specific structure as
+ parameter directly, or indirectly via a "private" pointer inside another
+ structure, will be modified to take an additional parameter of the
+ structure size. The affected APIs will include ``rte_rawdev_info_get``,
+ ``rte_rawdev_configure``, ``rte_rawdev_queue_conf_get`` and
+ ``rte_rawdev_queue_setup``.
+
* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
ABI stable in the v19.11 release. The TM maintainer and other contributors have
agreed to keep the TM APIs as experimental in expectation of additional spec
--
2.25.1
^ permalink raw reply [relevance 5%]
* [dpdk-dev] The mbuf API needs some cleaning up
@ 2020-07-13 9:57 3% Morten Brørup
2020-07-31 15:24 0% ` Olivier Matz
0 siblings, 1 reply; 200+ results
From: Morten Brørup @ 2020-07-13 9:57 UTC (permalink / raw)
To: Olivier Matz; +Cc: dev
The MBUF library exposes some macros and constants without the RTE_ prefix. I propose cleaning up these, so better names get into the coming LTS release.
The worst is:
#define MBUF_INVALID_PORT UINT16_MAX
I say it's the worst because when we were looking for the official "invalid" port value for our application, we didn't find this one. (Probably because its documentation is wrong.)
MBUF_INVALID_PORT is defined in rte_mbuf_core.h without any description, and in rte_mbuf.h, where it is injected between the rte_pktmbuf_reset() function and its description, so the API documentation shows the function's description for the constant, and no description for the function.
I propose keeping it at a sensible location in rte_mbuf_core.h only, adding a description, and renaming it to:
#define RTE_PORT_INVALID UINT16_MAX
For backwards compatibility, we could add:
/* this old name is deprecated */
#define MBUF_INVALID_PORT RTE_PORT_INVALID
I also wonder why there are no compiler warnings about the double definition?
There are also the data buffer location constants:
#define EXT_ATTACHED_MBUF (1ULL << 61)
and
#define IND_ATTACHED_MBUF (1ULL << 62)
There are already macros (with good names) for reading these, so simply adding the RTE_ prefix to these two constants suffices.
And all the packet offload flags, such as:
#define PKT_RX_VLAN (1ULL << 0)
They are supposed to be used by applications, so I guess we should keep them unchanged for ABI stability reasons.
And the local macro:
#define MBUF_RAW_ALLOC_CHECK(m) do { \
This might as well be an internal inline function:
/* internal */
static inline void
__rte_mbuf_raw_alloc_check(const struct rte_mbuf *m)
Or we could keep it a macro and move it next to
__rte_mbuf_sanity_check(), keeping it clear that it is only relevant when RTE_LIBRTE_MBUF_DEBUG is set. But rename it to lower case, similar to the __rte_mbuf_sanity_check() macro.
Med venlig hilsen / kind regards
- Morten Brørup
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v5 1/2] rte_flow: add eCPRI key fields to flow API
2020-07-12 14:28 0% ` Bing Zhao
@ 2020-07-12 14:43 0% ` Olivier Matz
0 siblings, 0 replies; 200+ results
From: Olivier Matz @ 2020-07-12 14:43 UTC (permalink / raw)
To: Bing Zhao
Cc: Ori Kam, john.mcnamara, marko.kovacevic, Thomas Monjalon,
ferruh.yigit, arybchenko, akhil.goyal, dev, wenzhuo.lu,
beilei.xing, bernard.iremonger
On Sun, Jul 12, 2020 at 02:28:03PM +0000, Bing Zhao wrote:
> Hi Olivier,
> Thanks
>
> BR. Bing
>
> > -----Original Message-----
> > From: Olivier Matz <olivier.matz@6wind.com>
> > Sent: Sunday, July 12, 2020 9:18 PM
> > To: Bing Zhao <bingz@mellanox.com>
> > Cc: Ori Kam <orika@mellanox.com>; john.mcnamara@intel.com;
> > marko.kovacevic@intel.com; Thomas Monjalon
> > <thomas@monjalon.net>; ferruh.yigit@intel.com;
> > arybchenko@solarflare.com; akhil.goyal@nxp.com; dev@dpdk.org;
> > wenzhuo.lu@intel.com; beilei.xing@intel.com;
> > bernard.iremonger@intel.com
> > Subject: Re: [PATCH v5 1/2] rte_flow: add eCPRI key fields to flow API
> >
> > Hi Bing,
> >
> > On Sat, Jul 11, 2020 at 04:25:49AM +0000, Bing Zhao wrote:
> > > Hi Olivier,
> > > Many thanks for your comments.
> >
> > [...]
> >
> > > > > +/**
> > > > > + * eCPRI Common Header
> > > > > + */
> > > > > +RTE_STD_C11
> > > > > +struct rte_ecpri_common_hdr {
> > > > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> > > > > + uint32_t size:16; /**< Payload Size */
> > > > > + uint32_t type:8; /**< Message Type */
> > > > > + uint32_t c:1; /**< Concatenation Indicator
> > > > */
> > > > > + uint32_t res:3; /**< Reserved */
> > > > > + uint32_t revision:4; /**< Protocol Revision */
> > > > > +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
> > > > > + uint32_t revision:4; /**< Protocol Revision */
> > > > > + uint32_t res:3; /**< Reserved */
> > > > > + uint32_t c:1; /**< Concatenation Indicator
> > > > */
> > > > > + uint32_t type:8; /**< Message Type */
> > > > > + uint32_t size:16; /**< Payload Size */
> > > > > +#endif
> > > > > +} __rte_packed;
> > > >
> > > > Does it really need to be packed? Why next types do not need it?
> > > > It looks only those which have bitfields are.
> > > >
> > >
> > > Nice catch, thanks. For the common header, there is no need to use
> > the
> > > packed attribute, because it is a u32 and the bitfields will be
> > > aligned.
> > > I checked all the definitions again. Only " Type #4: Remote Memory
> > Access"
> > > needs to use the packed attribute.
> > > For other sub-types, "sub-header" part of the message payload will
> > get
> > > aligned by nature. For example, u16 after u16, u8 after u16, these
> > > should be OK.
> > > But in type #4, the address is 48bits wide, with 16bits MSB and 32bits
> > > LSB (no detailed description in the specification, correct me if
> > > anything wrong.) Usually, the 48bits address will be devided as this
> > > in a system. And there is no 48-bits type at all. So we need to define
> > two parts for it: 32b LSB follows 16b MSB.
> > > u32 after u16 should be with packed attribute. Thanks
> >
> > What about using a bitfield into a uint64_t ? I mean:
> >
> > struct rte_ecpri_msg_rm_access {
> > if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> > ...
> > uint64_t length:16; /**< number of bytes
> > */
> > uint64_t addr:48; /**< address */
> > #else
> > ...
> > uint64_t addr:48; /**< address */
> > uint64_t length:16; /**< number of bytes
> > */
> > #endif
> > };
> >
>
> Thanks for your suggestion.
> https://stackoverflow.com/questions/10906238/warning-when-using-bitfield-with-unsigned-char
> AFAIK (from this page), bitfields support only support bool and int. uint64_t is some type of "long"
> and most of the compilers should support it. But I am not sure if it is a standard implementation.
The uint8_t[6], as in your v6, is a good idea.
> > >
> > > >
> > > > I wonder if the 'dw0' could be in this definition instead of in
> > > > struct rte_ecpri_msg_hdr?
> > > >
> > > > Something like this:
> > > >
> > > > struct rte_ecpri_common_hdr {
> > > > union {
> > > > uint32_t u32;
> > > > struct {
> > > > ...
> > > > };
> > > > };
> > > > };
> > > >
> > > > I see 2 advantages:
> > > >
> > > > - someone that only uses the common_hdr struct can use the .u32
> > > > in its software
> > > > - when using it in messages, it looks clearer to me:
> > > > msg.common_hdr.u32 = value;
> > > > instead of:
> > > > msg.dw0 = value;
> > > >
> > > > What do you think?
> > >
> > > Thanks for the suggestion, this is much better, I will change it.
> > > Indeed, in my original version, no DW(u32) is defined for the header.
> > > After that, I noticed that it would not be easy for the static casting
> > > to a u32 from bitfield(the compiler will complain), and it would not
> > > be clear to swap the endian if the user wants to use this header. I
> > > added this DW(u32) to simplify the usage of this header. But yes, if I
> > > do not add it here, it would be not easy or clear for users who just
> > use this header structure.
> > > I will change it. Is it OK if I use the name "dw0"?
> >
> > In my opinion, u32 is more usual than dw0.
> >
>
> I sent patch set v6 with this change, thanks.
>
> > >
> > > >
> > > > > +
> > > > > +/**
> > > > > + * eCPRI Message Header of Type #0: IQ Data */ struct
> > > > > +rte_ecpri_msg_iq_data {
> > > > > + rte_be16_t pc_id; /**< Physical channel ID */
> > > > > + rte_be16_t seq_id; /**< Sequence ID */
> > > > > +};
> > > > > +
> > > > > +/**
> > > > > + * eCPRI Message Header of Type #1: Bit Sequence */ struct
> > > > > +rte_ecpri_msg_bit_seq {
> > > > > + rte_be16_t pc_id; /**< Physical channel ID */
> > > > > + rte_be16_t seq_id; /**< Sequence ID */
> > > > > +};
> > > > > +
> > > > > +/**
> > > > > + * eCPRI Message Header of Type #2: Real-Time Control Data */
> > > > struct
> > > > > +rte_ecpri_msg_rtc_ctrl {
> > > > > + rte_be16_t rtc_id; /**< Real-Time Control Data ID
> > > > */
> > > > > + rte_be16_t seq_id; /**< Sequence ID */
> > > > > +};
> > > > > +
> > > > > +/**
> > > > > + * eCPRI Message Header of Type #3: Generic Data Transfer */
> > > > struct
> > > > > +rte_ecpri_msg_gen_data {
> > > > > + rte_be32_t pc_id; /**< Physical channel ID */
> > > > > + rte_be32_t seq_id; /**< Sequence ID */
> > > > > +};
> > > > > +
> > > > > +/**
> > > > > + * eCPRI Message Header of Type #4: Remote Memory Access
> > */
> > > > > +RTE_STD_C11
> > > > > +struct rte_ecpri_msg_rm_access {
> > > > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> > > > > + uint32_t ele_id:16; /**< Element ID */
> > > > > + uint32_t rr:4; /**< Req/Resp */
> > > > > + uint32_t rw:4; /**< Read/Write */
> > > > > + uint32_t rma_id:8; /**< Remote Memory Access
> > > > ID */
> > > > > +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
> > > > > + uint32_t rma_id:8; /**< Remote Memory Access
> > > > ID */
> > > > > + uint32_t rw:4; /**< Read/Write */
> > > > > + uint32_t rr:4; /**< Req/Resp */
> > > > > + uint32_t ele_id:16; /**< Element ID */
> > > > > +#endif
> > > > > + rte_be16_t addr_m; /**< 48-bits address (16 MSB)
> > > > */
> > > > > + rte_be32_t addr_l; /**< 48-bits address (32 LSB) */
> > > > > + rte_be16_t length; /**< number of bytes */
> > > > > +} __rte_packed;
> > > > > +
> > > > > +/**
> > > > > + * eCPRI Message Header of Type #5: One-Way Delay
> > Measurement
> > > > */
> > > > > +struct rte_ecpri_msg_delay_measure {
> > > > > + uint8_t msr_id; /**< Measurement ID */
> > > > > + uint8_t act_type; /**< Action Type */
> > > > > +};
> > > > > +
> > > > > +/**
> > > > > + * eCPRI Message Header of Type #6: Remote Reset */ struct
> > > > > +rte_ecpri_msg_remote_reset {
> > > > > + rte_be16_t rst_id; /**< Reset ID */
> > > > > + uint8_t rst_op; /**< Reset Code Op */
> > > > > +};
> > > > > +
> > > > > +/**
> > > > > + * eCPRI Message Header of Type #7: Event Indication */ struct
> > > > > +rte_ecpri_msg_event_ind {
> > > > > + uint8_t evt_id; /**< Event ID */
> > > > > + uint8_t evt_type; /**< Event Type */
> > > > > + uint8_t seq; /**< Sequence Number */
> > > > > + uint8_t number; /**< Number of
> > > > Faults/Notif */
> > > > > +};
> > > > > +
> > > > > +/**
> > > > > + * eCPRI Message Header Format: Common Header + Message
> > > > Types */
> > > > > +RTE_STD_C11
> > > > > +struct rte_ecpri_msg_hdr {
> > > > > + union {
> > > > > + struct rte_ecpri_common_hdr common;
> > > > > + uint32_t dw0;
> > > > > + };
> > > > > + union {
> > > > > + struct rte_ecpri_msg_iq_data type0;
> > > > > + struct rte_ecpri_msg_bit_seq type1;
> > > > > + struct rte_ecpri_msg_rtc_ctrl type2;
> > > > > + struct rte_ecpri_msg_bit_seq type3;
> > > > > + struct rte_ecpri_msg_rm_access type4;
> > > > > + struct rte_ecpri_msg_delay_measure type5;
> > > > > + struct rte_ecpri_msg_remote_reset type6;
> > > > > + struct rte_ecpri_msg_event_ind type7;
> > > > > + uint32_t dummy[3];
> > > > > + };
> > > > > +};
> > > >
> > > > What is the point in having this struct?
> > > >
> > > > From a software point of view, I think it is a bit risky, because
> > > > its size is the size of the largest message. This is probably what
> > > > you want in your case, but when a software will rx or tx such
> > > > packet, I think they shouldn't use this one. My understanding is
> > > > that you only need this structure for the mask in rte_flow.
> > > >
> > > > Also, I'm not sure to understand the purpose of dummy[3], even
> > after
> > > > reading your answer to Akhil's question.
> > > >
> > >
> > > Basically YES and no. To my understanding, the eCPRI message
> > format is
> > > something like the ICMP packet format. The message (packet) itself
> > > will be parsed into different formats based on the type of the
> > common
> > > header. In the message payload part, there is no distinct definition
> > > of the "sub-header". We can divide them into the sub-header and
> > data parts based on the specification.
> > > E.g. physical channel ID / real-time control ID / Event ID + type are
> > > the parts that datapath forwarding will only care about. The
> > following
> > > timestamp or user data parts are the parts that the higher layer in
> > the application will use.
> > > 1. If an application wants to create some offload flow, or even
> > handle
> > > it in the SW, the common header + first several bytes in the payload
> > > should be enough. BUT YES, it is not good or safe to use it in the
> > higher layer of the application.
> > > 2. A higher layer of the application should have its own definition of
> > > the whole payload of a specific sub-type, including the parsing of the
> > user data part after the "sub-header".
> > > It is better for them just skip the first 4 bytes of the eCPRI message or
> > a known offset.
> > > We do not need to cover the upper layers.
> >
> > Let me explain what is my vision of how an application would use the
> > structures (these are completly dummy examples, as I don't know
> > ecpri protocol at all).
> >
> > Rx:
> >
> > int ecpri_input(struct rte_mbuf *m)
> > {
> > struct rte_ecpri_common_hdr hdr_copy, *hdr;
> > struct rte_ecpri_msg_event_ind event_copy, *event;
> > struct app_specific app_copy, *app;
> >
> > hdr = rte_pktmbuf_read(m, 0, sizeof(*hdr),
> > &hdr_copy);
> > if (unlikely(hdr == NULL))
> > return -1;
> > switch (hdr->type) {
> > ...
> > case RTE_ECPRI_EVT_IND_NTFY_IND:
> > event = rte_pktmbuf_read(m, sizeof(*hdr),
> > sizeof(*event),
> > &event_copy);
> > if (unlikely(event == NULL))
> > return -1;
> > ...
> > app = rte_pktmbuf_read(m, sizeof(*app),
> > sizeof(*hdr) + sizeof(*event),
> > &app_copy);
> > ...
> >
> > Tx:
> >
> > int ecpri_output(void)
> > {
> > struct rte_ecpri_common_hdr *hdr;
> > struct rte_ecpri_msg_event_ind *event;
> > struct app_specific *app;
> >
> > m = rte_pktmbuf_alloc(mp);
> > if (unlikely(m == NULL))
> > return -1;
> >
> > app = rte_pktmbuf_append(m, sizeof(*data));
> > if (app == NULL)
> > ...
> > app->... = ...;
> > ...
> > event = rte_pktmbuf_prepend(m, sizeof(*event));
> > if (event == NULL)
> > ...
> > event->... = ...;
> > ...
> > hdr = rte_pktmbuf_prepend(m, sizeof(*hdr));
> > if (hdr == NULL)
> > ...
> > hdr->... = ...;
> >
> > return packet_send(m);
> > }
> >
> > In these 2 examples, we never need the unioned structure (struct
> > rte_ecpri_msg_hdr).
> >
> > Using it does not look possible to me, because its size is corresponds to
> > the largest message, not to the one we are parsing/building.
> >
>
> Yes, in the cases, we do not need the unioned structures at all.
> Since the common header is always 4 bytes, an application could use the
> sub-types structures started from an offset of 4 of eCPRI layer, as in your example.
> This is in the datapath. My original purpose is for some "control path", typically
> the flow (not sure if any other new lib implementation) API, then the union
> could be used there w/o treating the common header and message payload
> header in a separate way and then combine them together. In this case, only
> the first several bytes will be accessed and checked, there will be no change
> of message itself, and then just passing it to datapath for further handling as
> in your example.
>
> > > I think some comments could be added here, is it OK?
> > > 3. Regarding this structure, I add it because I do not want to
> > > introduce a lot of new items in the rte_flow: new items with
> > > structures, new enum types. I prefer one single structure will cover
> > most of the cases (subtypes). What do you think?
> > > 4. About the *dummy* u32, I calculated all the "subheaders" and
> > choose
> > > the maximal value of the length. Two purposes (same as the u32 in
> > the common header):
> > > a. easy to swap the endianness, but not quite useful. Because some
> > parts are u16 and u8,
> > > and should not be swapped in a u32. (some physical channel ID
> > and address LSB have 32bits width)
> > > But if some HW parsed the header u32 by u32, then it would be
> > helpful.
> > > b. easy for checking in flow API, if the user wants to insert a flow.
> > Some checking should
> > > be done to confirm if it is wildcard flow (all eCPRI messages or
> > eCPRI message in some specific type),
> > > or some precise flow (to match the pc id or rtc id, for example).
> > With these fields, 3 DW
> > > of the masks only need to be check before continuing. Or else, the
> > code needs to check the type
> > > and a lot of switch-case conditions and go through all different
> > members of each header.
> >
> > Thanks for the clarification.
> >
> > I'll tend to say that if the rte_ecpri_msg_hdr structure is only useful for
> > rte_flow, it should be defined inside rte_flow.
> >
>
> Right now, yes it will be used in rte_flow. But I checked the current implementations
> of each item, almost all the headers are defined in their own protocol files. So in v6,
> I change the name of it, in order not to confuse the users of this API, would it be OK?
> Thanks
OK
>
> > However, I have some fears about the dummy[3]. You said it could be
> > enlarged later: I think it is dangerous to change the size of a structure
> > that may be used to parse data (and this would be an ABI change).
> > Also, it seems dummy[3] cannot be used easily to swap endianness, so
> > is it really useful?
> >
>
> It might be enlarger but not for now, until a new revision of this specification. For
> all the subtypes it has right now, the specification will remain them as same as today.
> Only new types will be added then. So after several years, we may consider to change it
> in the LTS. Is it OK?
OK, I think in this case it may even be another structure
> In most cases, the endianness swap could be easy, we will swap it in each DW / u32. Tome
> the exception is that some field crosses the u32 boundary, like the address in type#4, we may
> treat it separately. And the most useful case is for the mask checking, it could simplify the
> checking to at most 3 (u32==0?) without going through each member of different types.
>
> And v6 already sent, I change the code based on your suggestion. Would you please
> help to give some comments also?
>
> Appreciate for your help and suggestion.
>
> >
> > Thanks,
> > Olivier
> >
> >
> > > > > +
> > > > > +#ifdef __cplusplus
> > > > > +}
> > > > > +#endif
> > > > > +
> > > > > +#endif /* _RTE_ECPRI_H_ */
> > > > > diff --git a/lib/librte_net/rte_ether.h
> > > > > b/lib/librte_net/rte_ether.h index 0ae4e75..184a3f9 100644
> > > > > --- a/lib/librte_net/rte_ether.h
> > > > > +++ b/lib/librte_net/rte_ether.h
> > > > > @@ -304,6 +304,7 @@ struct rte_vlan_hdr { #define
> > > > RTE_ETHER_TYPE_LLDP
> > > > > 0x88CC /**< LLDP Protocol. */ #define RTE_ETHER_TYPE_MPLS
> > > > 0x8847 /**<
> > > > > MPLS ethertype. */ #define RTE_ETHER_TYPE_MPLSM 0x8848
> > /**<
> > > > MPLS
> > > > > multicast ethertype. */
> > > > > +#define RTE_ETHER_TYPE_ECPRI 0xAEFE /**< eCPRI ethertype
> > (.1Q
> > > > > +supported). */
> > > > >
> > > > > /**
> > > > > * Extract VLAN tag information into mbuf
> > > > > --
> > > > > 1.8.3.1
> > > > >
> > >
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v5 1/2] rte_flow: add eCPRI key fields to flow API
2020-07-12 13:17 3% ` Olivier Matz
@ 2020-07-12 14:28 0% ` Bing Zhao
2020-07-12 14:43 0% ` Olivier Matz
0 siblings, 1 reply; 200+ results
From: Bing Zhao @ 2020-07-12 14:28 UTC (permalink / raw)
To: Olivier Matz
Cc: Ori Kam, john.mcnamara, marko.kovacevic, Thomas Monjalon,
ferruh.yigit, arybchenko, akhil.goyal, dev, wenzhuo.lu,
beilei.xing, bernard.iremonger
Hi Olivier,
Thanks
BR. Bing
> -----Original Message-----
> From: Olivier Matz <olivier.matz@6wind.com>
> Sent: Sunday, July 12, 2020 9:18 PM
> To: Bing Zhao <bingz@mellanox.com>
> Cc: Ori Kam <orika@mellanox.com>; john.mcnamara@intel.com;
> marko.kovacevic@intel.com; Thomas Monjalon
> <thomas@monjalon.net>; ferruh.yigit@intel.com;
> arybchenko@solarflare.com; akhil.goyal@nxp.com; dev@dpdk.org;
> wenzhuo.lu@intel.com; beilei.xing@intel.com;
> bernard.iremonger@intel.com
> Subject: Re: [PATCH v5 1/2] rte_flow: add eCPRI key fields to flow API
>
> Hi Bing,
>
> On Sat, Jul 11, 2020 at 04:25:49AM +0000, Bing Zhao wrote:
> > Hi Olivier,
> > Many thanks for your comments.
>
> [...]
>
> > > > +/**
> > > > + * eCPRI Common Header
> > > > + */
> > > > +RTE_STD_C11
> > > > +struct rte_ecpri_common_hdr {
> > > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> > > > + uint32_t size:16; /**< Payload Size */
> > > > + uint32_t type:8; /**< Message Type */
> > > > + uint32_t c:1; /**< Concatenation Indicator
> > > */
> > > > + uint32_t res:3; /**< Reserved */
> > > > + uint32_t revision:4; /**< Protocol Revision */
> > > > +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
> > > > + uint32_t revision:4; /**< Protocol Revision */
> > > > + uint32_t res:3; /**< Reserved */
> > > > + uint32_t c:1; /**< Concatenation Indicator
> > > */
> > > > + uint32_t type:8; /**< Message Type */
> > > > + uint32_t size:16; /**< Payload Size */
> > > > +#endif
> > > > +} __rte_packed;
> > >
> > > Does it really need to be packed? Why next types do not need it?
> > > It looks only those which have bitfields are.
> > >
> >
> > Nice catch, thanks. For the common header, there is no need to use
> the
> > packed attribute, because it is a u32 and the bitfields will be
> > aligned.
> > I checked all the definitions again. Only " Type #4: Remote Memory
> Access"
> > needs to use the packed attribute.
> > For other sub-types, "sub-header" part of the message payload will
> get
> > aligned by nature. For example, u16 after u16, u8 after u16, these
> > should be OK.
> > But in type #4, the address is 48bits wide, with 16bits MSB and 32bits
> > LSB (no detailed description in the specification, correct me if
> > anything wrong.) Usually, the 48bits address will be devided as this
> > in a system. And there is no 48-bits type at all. So we need to define
> two parts for it: 32b LSB follows 16b MSB.
> > u32 after u16 should be with packed attribute. Thanks
>
> What about using a bitfield into a uint64_t ? I mean:
>
> struct rte_ecpri_msg_rm_access {
> if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> ...
> uint64_t length:16; /**< number of bytes
> */
> uint64_t addr:48; /**< address */
> #else
> ...
> uint64_t addr:48; /**< address */
> uint64_t length:16; /**< number of bytes
> */
> #endif
> };
>
Thanks for your suggestion.
https://stackoverflow.com/questions/10906238/warning-when-using-bitfield-with-unsigned-char
AFAIK (from this page), bitfields support only support bool and int. uint64_t is some type of "long"
and most of the compilers should support it. But I am not sure if it is a standard implementation.
>
> >
> > >
> > > I wonder if the 'dw0' could be in this definition instead of in
> > > struct rte_ecpri_msg_hdr?
> > >
> > > Something like this:
> > >
> > > struct rte_ecpri_common_hdr {
> > > union {
> > > uint32_t u32;
> > > struct {
> > > ...
> > > };
> > > };
> > > };
> > >
> > > I see 2 advantages:
> > >
> > > - someone that only uses the common_hdr struct can use the .u32
> > > in its software
> > > - when using it in messages, it looks clearer to me:
> > > msg.common_hdr.u32 = value;
> > > instead of:
> > > msg.dw0 = value;
> > >
> > > What do you think?
> >
> > Thanks for the suggestion, this is much better, I will change it.
> > Indeed, in my original version, no DW(u32) is defined for the header.
> > After that, I noticed that it would not be easy for the static casting
> > to a u32 from bitfield(the compiler will complain), and it would not
> > be clear to swap the endian if the user wants to use this header. I
> > added this DW(u32) to simplify the usage of this header. But yes, if I
> > do not add it here, it would be not easy or clear for users who just
> use this header structure.
> > I will change it. Is it OK if I use the name "dw0"?
>
> In my opinion, u32 is more usual than dw0.
>
I sent patch set v6 with this change, thanks.
> >
> > >
> > > > +
> > > > +/**
> > > > + * eCPRI Message Header of Type #0: IQ Data */ struct
> > > > +rte_ecpri_msg_iq_data {
> > > > + rte_be16_t pc_id; /**< Physical channel ID */
> > > > + rte_be16_t seq_id; /**< Sequence ID */
> > > > +};
> > > > +
> > > > +/**
> > > > + * eCPRI Message Header of Type #1: Bit Sequence */ struct
> > > > +rte_ecpri_msg_bit_seq {
> > > > + rte_be16_t pc_id; /**< Physical channel ID */
> > > > + rte_be16_t seq_id; /**< Sequence ID */
> > > > +};
> > > > +
> > > > +/**
> > > > + * eCPRI Message Header of Type #2: Real-Time Control Data */
> > > struct
> > > > +rte_ecpri_msg_rtc_ctrl {
> > > > + rte_be16_t rtc_id; /**< Real-Time Control Data ID
> > > */
> > > > + rte_be16_t seq_id; /**< Sequence ID */
> > > > +};
> > > > +
> > > > +/**
> > > > + * eCPRI Message Header of Type #3: Generic Data Transfer */
> > > struct
> > > > +rte_ecpri_msg_gen_data {
> > > > + rte_be32_t pc_id; /**< Physical channel ID */
> > > > + rte_be32_t seq_id; /**< Sequence ID */
> > > > +};
> > > > +
> > > > +/**
> > > > + * eCPRI Message Header of Type #4: Remote Memory Access
> */
> > > > +RTE_STD_C11
> > > > +struct rte_ecpri_msg_rm_access {
> > > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> > > > + uint32_t ele_id:16; /**< Element ID */
> > > > + uint32_t rr:4; /**< Req/Resp */
> > > > + uint32_t rw:4; /**< Read/Write */
> > > > + uint32_t rma_id:8; /**< Remote Memory Access
> > > ID */
> > > > +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
> > > > + uint32_t rma_id:8; /**< Remote Memory Access
> > > ID */
> > > > + uint32_t rw:4; /**< Read/Write */
> > > > + uint32_t rr:4; /**< Req/Resp */
> > > > + uint32_t ele_id:16; /**< Element ID */
> > > > +#endif
> > > > + rte_be16_t addr_m; /**< 48-bits address (16 MSB)
> > > */
> > > > + rte_be32_t addr_l; /**< 48-bits address (32 LSB) */
> > > > + rte_be16_t length; /**< number of bytes */
> > > > +} __rte_packed;
> > > > +
> > > > +/**
> > > > + * eCPRI Message Header of Type #5: One-Way Delay
> Measurement
> > > */
> > > > +struct rte_ecpri_msg_delay_measure {
> > > > + uint8_t msr_id; /**< Measurement ID */
> > > > + uint8_t act_type; /**< Action Type */
> > > > +};
> > > > +
> > > > +/**
> > > > + * eCPRI Message Header of Type #6: Remote Reset */ struct
> > > > +rte_ecpri_msg_remote_reset {
> > > > + rte_be16_t rst_id; /**< Reset ID */
> > > > + uint8_t rst_op; /**< Reset Code Op */
> > > > +};
> > > > +
> > > > +/**
> > > > + * eCPRI Message Header of Type #7: Event Indication */ struct
> > > > +rte_ecpri_msg_event_ind {
> > > > + uint8_t evt_id; /**< Event ID */
> > > > + uint8_t evt_type; /**< Event Type */
> > > > + uint8_t seq; /**< Sequence Number */
> > > > + uint8_t number; /**< Number of
> > > Faults/Notif */
> > > > +};
> > > > +
> > > > +/**
> > > > + * eCPRI Message Header Format: Common Header + Message
> > > Types */
> > > > +RTE_STD_C11
> > > > +struct rte_ecpri_msg_hdr {
> > > > + union {
> > > > + struct rte_ecpri_common_hdr common;
> > > > + uint32_t dw0;
> > > > + };
> > > > + union {
> > > > + struct rte_ecpri_msg_iq_data type0;
> > > > + struct rte_ecpri_msg_bit_seq type1;
> > > > + struct rte_ecpri_msg_rtc_ctrl type2;
> > > > + struct rte_ecpri_msg_bit_seq type3;
> > > > + struct rte_ecpri_msg_rm_access type4;
> > > > + struct rte_ecpri_msg_delay_measure type5;
> > > > + struct rte_ecpri_msg_remote_reset type6;
> > > > + struct rte_ecpri_msg_event_ind type7;
> > > > + uint32_t dummy[3];
> > > > + };
> > > > +};
> > >
> > > What is the point in having this struct?
> > >
> > > From a software point of view, I think it is a bit risky, because
> > > its size is the size of the largest message. This is probably what
> > > you want in your case, but when a software will rx or tx such
> > > packet, I think they shouldn't use this one. My understanding is
> > > that you only need this structure for the mask in rte_flow.
> > >
> > > Also, I'm not sure to understand the purpose of dummy[3], even
> after
> > > reading your answer to Akhil's question.
> > >
> >
> > Basically YES and no. To my understanding, the eCPRI message
> format is
> > something like the ICMP packet format. The message (packet) itself
> > will be parsed into different formats based on the type of the
> common
> > header. In the message payload part, there is no distinct definition
> > of the "sub-header". We can divide them into the sub-header and
> data parts based on the specification.
> > E.g. physical channel ID / real-time control ID / Event ID + type are
> > the parts that datapath forwarding will only care about. The
> following
> > timestamp or user data parts are the parts that the higher layer in
> the application will use.
> > 1. If an application wants to create some offload flow, or even
> handle
> > it in the SW, the common header + first several bytes in the payload
> > should be enough. BUT YES, it is not good or safe to use it in the
> higher layer of the application.
> > 2. A higher layer of the application should have its own definition of
> > the whole payload of a specific sub-type, including the parsing of the
> user data part after the "sub-header".
> > It is better for them just skip the first 4 bytes of the eCPRI message or
> a known offset.
> > We do not need to cover the upper layers.
>
> Let me explain what is my vision of how an application would use the
> structures (these are completly dummy examples, as I don't know
> ecpri protocol at all).
>
> Rx:
>
> int ecpri_input(struct rte_mbuf *m)
> {
> struct rte_ecpri_common_hdr hdr_copy, *hdr;
> struct rte_ecpri_msg_event_ind event_copy, *event;
> struct app_specific app_copy, *app;
>
> hdr = rte_pktmbuf_read(m, 0, sizeof(*hdr),
> &hdr_copy);
> if (unlikely(hdr == NULL))
> return -1;
> switch (hdr->type) {
> ...
> case RTE_ECPRI_EVT_IND_NTFY_IND:
> event = rte_pktmbuf_read(m, sizeof(*hdr),
> sizeof(*event),
> &event_copy);
> if (unlikely(event == NULL))
> return -1;
> ...
> app = rte_pktmbuf_read(m, sizeof(*app),
> sizeof(*hdr) + sizeof(*event),
> &app_copy);
> ...
>
> Tx:
>
> int ecpri_output(void)
> {
> struct rte_ecpri_common_hdr *hdr;
> struct rte_ecpri_msg_event_ind *event;
> struct app_specific *app;
>
> m = rte_pktmbuf_alloc(mp);
> if (unlikely(m == NULL))
> return -1;
>
> app = rte_pktmbuf_append(m, sizeof(*data));
> if (app == NULL)
> ...
> app->... = ...;
> ...
> event = rte_pktmbuf_prepend(m, sizeof(*event));
> if (event == NULL)
> ...
> event->... = ...;
> ...
> hdr = rte_pktmbuf_prepend(m, sizeof(*hdr));
> if (hdr == NULL)
> ...
> hdr->... = ...;
>
> return packet_send(m);
> }
>
> In these 2 examples, we never need the unioned structure (struct
> rte_ecpri_msg_hdr).
>
> Using it does not look possible to me, because its size is corresponds to
> the largest message, not to the one we are parsing/building.
>
Yes, in the cases, we do not need the unioned structures at all.
Since the common header is always 4 bytes, an application could use the
sub-types structures started from an offset of 4 of eCPRI layer, as in your example.
This is in the datapath. My original purpose is for some "control path", typically
the flow (not sure if any other new lib implementation) API, then the union
could be used there w/o treating the common header and message payload
header in a separate way and then combine them together. In this case, only
the first several bytes will be accessed and checked, there will be no change
of message itself, and then just passing it to datapath for further handling as
in your example.
> > I think some comments could be added here, is it OK?
> > 3. Regarding this structure, I add it because I do not want to
> > introduce a lot of new items in the rte_flow: new items with
> > structures, new enum types. I prefer one single structure will cover
> most of the cases (subtypes). What do you think?
> > 4. About the *dummy* u32, I calculated all the "subheaders" and
> choose
> > the maximal value of the length. Two purposes (same as the u32 in
> the common header):
> > a. easy to swap the endianness, but not quite useful. Because some
> parts are u16 and u8,
> > and should not be swapped in a u32. (some physical channel ID
> and address LSB have 32bits width)
> > But if some HW parsed the header u32 by u32, then it would be
> helpful.
> > b. easy for checking in flow API, if the user wants to insert a flow.
> Some checking should
> > be done to confirm if it is wildcard flow (all eCPRI messages or
> eCPRI message in some specific type),
> > or some precise flow (to match the pc id or rtc id, for example).
> With these fields, 3 DW
> > of the masks only need to be check before continuing. Or else, the
> code needs to check the type
> > and a lot of switch-case conditions and go through all different
> members of each header.
>
> Thanks for the clarification.
>
> I'll tend to say that if the rte_ecpri_msg_hdr structure is only useful for
> rte_flow, it should be defined inside rte_flow.
>
Right now, yes it will be used in rte_flow. But I checked the current implementations
of each item, almost all the headers are defined in their own protocol files. So in v6,
I change the name of it, in order not to confuse the users of this API, would it be OK?
Thanks
> However, I have some fears about the dummy[3]. You said it could be
> enlarged later: I think it is dangerous to change the size of a structure
> that may be used to parse data (and this would be an ABI change).
> Also, it seems dummy[3] cannot be used easily to swap endianness, so
> is it really useful?
>
It might be enlarger but not for now, until a new revision of this specification. For
all the subtypes it has right now, the specification will remain them as same as today.
Only new types will be added then. So after several years, we may consider to change it
in the LTS. Is it OK?
In most cases, the endianness swap could be easy, we will swap it in each DW / u32. Tome
the exception is that some field crosses the u32 boundary, like the address in type#4, we may
treat it separately. And the most useful case is for the mask checking, it could simplify the
checking to at most 3 (u32==0?) without going through each member of different types.
And v6 already sent, I change the code based on your suggestion. Would you please
help to give some comments also?
Appreciate for your help and suggestion.
>
> Thanks,
> Olivier
>
>
> > > > +
> > > > +#ifdef __cplusplus
> > > > +}
> > > > +#endif
> > > > +
> > > > +#endif /* _RTE_ECPRI_H_ */
> > > > diff --git a/lib/librte_net/rte_ether.h
> > > > b/lib/librte_net/rte_ether.h index 0ae4e75..184a3f9 100644
> > > > --- a/lib/librte_net/rte_ether.h
> > > > +++ b/lib/librte_net/rte_ether.h
> > > > @@ -304,6 +304,7 @@ struct rte_vlan_hdr { #define
> > > RTE_ETHER_TYPE_LLDP
> > > > 0x88CC /**< LLDP Protocol. */ #define RTE_ETHER_TYPE_MPLS
> > > 0x8847 /**<
> > > > MPLS ethertype. */ #define RTE_ETHER_TYPE_MPLSM 0x8848
> /**<
> > > MPLS
> > > > multicast ethertype. */
> > > > +#define RTE_ETHER_TYPE_ECPRI 0xAEFE /**< eCPRI ethertype
> (.1Q
> > > > +supported). */
> > > >
> > > > /**
> > > > * Extract VLAN tag information into mbuf
> > > > --
> > > > 1.8.3.1
> > > >
> >
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH 20.11 3/5] rawdev: add private data length parameter to config fn
@ 2020-07-12 14:13 0% ` Xu, Rosen
0 siblings, 0 replies; 200+ results
From: Xu, Rosen @ 2020-07-12 14:13 UTC (permalink / raw)
To: Richardson, Bruce, Nipun Gupta, Hemant Agrawal
Cc: dev, Zhang, Tianfei, Li, Xiaoyun, Wu, Jingjing, Satha Rao,
Mahipal Challa, Jerin Jacob
Hi,
Reviewed-by: Rosen Xu <rosen.xu@intel.com>
> -----Original Message-----
> From: Richardson, Bruce <bruce.richardson@intel.com>
> Sent: Thursday, July 09, 2020 23:21
> To: Nipun Gupta <nipun.gupta@nxp.com>; Hemant Agrawal
> <hemant.agrawal@nxp.com>
> Cc: dev@dpdk.org; Xu, Rosen <rosen.xu@intel.com>; Zhang, Tianfei
> <tianfei.zhang@intel.com>; Li, Xiaoyun <xiaoyun.li@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>; Satha Rao <skoteshwar@marvell.com>; Mahipal
> Challa <mchalla@marvell.com>; Jerin Jacob <jerinj@marvell.com>;
> Richardson, Bruce <bruce.richardson@intel.com>
> Subject: [PATCH 20.11 3/5] rawdev: add private data length parameter to
> config fn
>
> Currently with the rawdev API there is no way to check that the structure
> passed in via the dev_private pointer in the structure passed to configure API
> is of the correct type - it's just checked that it is non-NULL. Adding in the
> length of the expected structure provides a measure of typechecking, and
> can also be used for ABI compatibility in future, since ABI changes involving
> structs almost always involve a change in size.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> drivers/raw/ifpga/ifpga_rawdev.c | 3 ++-
> drivers/raw/ioat/ioat_rawdev.c | 5 +++--
> drivers/raw/ioat/ioat_rawdev_test.c | 2 +-
> drivers/raw/ntb/ntb.c | 6 +++++-
> drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c | 7 ++++---
> drivers/raw/octeontx2_dma/otx2_dpi_test.c | 3 ++-
> drivers/raw/octeontx2_ep/otx2_ep_rawdev.c | 7 ++++---
> drivers/raw/octeontx2_ep/otx2_ep_test.c | 2 +-
> drivers/raw/skeleton/skeleton_rawdev.c | 5 +++--
> drivers/raw/skeleton/skeleton_rawdev_test.c | 5 +++--
> examples/ioat/ioatfwd.c | 2 +-
> examples/ntb/ntb_fwd.c | 2 +-
> lib/librte_rawdev/rte_rawdev.c | 6 ++++--
> lib/librte_rawdev/rte_rawdev.h | 8 +++++++-
> lib/librte_rawdev/rte_rawdev_pmd.h | 3 ++-
> 15 files changed, 43 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/raw/ifpga/ifpga_rawdev.c
> b/drivers/raw/ifpga/ifpga_rawdev.c
> index 32a2b96c9..a50173264 100644
> --- a/drivers/raw/ifpga/ifpga_rawdev.c
> +++ b/drivers/raw/ifpga/ifpga_rawdev.c
> @@ -684,7 +684,8 @@ ifpga_rawdev_info_get(struct rte_rawdev *dev,
>
> static int
> ifpga_rawdev_configure(const struct rte_rawdev *dev,
> - rte_rawdev_obj_t config)
> + rte_rawdev_obj_t config,
> + size_t config_size __rte_unused)
> {
> IFPGA_RAWDEV_PMD_FUNC_TRACE();
>
> diff --git a/drivers/raw/ioat/ioat_rawdev.c b/drivers/raw/ioat/ioat_rawdev.c
> index 6a336795d..b29ff983f 100644
> --- a/drivers/raw/ioat/ioat_rawdev.c
> +++ b/drivers/raw/ioat/ioat_rawdev.c
> @@ -41,7 +41,8 @@ RTE_LOG_REGISTER(ioat_pmd_logtype, rawdev.ioat,
> INFO); #define COMPLETION_SZ sizeof(__m128i)
>
> static int
> -ioat_dev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config)
> +ioat_dev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t
> config,
> + size_t config_size)
> {
> struct rte_ioat_rawdev_config *params = config;
> struct rte_ioat_rawdev *ioat = dev->dev_private; @@ -51,7 +52,7
> @@ ioat_dev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t
> config)
> if (dev->started)
> return -EBUSY;
>
> - if (params == NULL)
> + if (params == NULL || config_size != sizeof(*params))
> return -EINVAL;
>
> if (params->ring_size > 4096 || params->ring_size < 64 || diff --git
> a/drivers/raw/ioat/ioat_rawdev_test.c
> b/drivers/raw/ioat/ioat_rawdev_test.c
> index 90f5974cd..e5b50ae9f 100644
> --- a/drivers/raw/ioat/ioat_rawdev_test.c
> +++ b/drivers/raw/ioat/ioat_rawdev_test.c
> @@ -165,7 +165,7 @@ ioat_rawdev_test(uint16_t dev_id)
> }
>
> p.ring_size = IOAT_TEST_RINGSIZE;
> - if (rte_rawdev_configure(dev_id, &info) != 0) {
> + if (rte_rawdev_configure(dev_id, &info, sizeof(p)) != 0) {
> printf("Error with rte_rawdev_configure()\n");
> return -1;
> }
> diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c index
> eaeb67b74..c181094d5 100644
> --- a/drivers/raw/ntb/ntb.c
> +++ b/drivers/raw/ntb/ntb.c
> @@ -837,13 +837,17 @@ ntb_dev_info_get(struct rte_rawdev *dev,
> rte_rawdev_obj_t dev_info, }
>
> static int
> -ntb_dev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t config)
> +ntb_dev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t
> config,
> + size_t config_size)
> {
> struct ntb_dev_config *conf = config;
> struct ntb_hw *hw = dev->dev_private;
> uint32_t xstats_num;
> int ret;
>
> + if (conf == NULL || config_size != sizeof(*conf))
> + return -EINVAL;
> +
> hw->queue_pairs = conf->num_queues;
> hw->queue_size = conf->queue_size;
> hw->used_mw_num = conf->mz_num;
> diff --git a/drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c
> b/drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c
> index e398abb75..5b496446c 100644
> --- a/drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c
> +++ b/drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c
> @@ -294,7 +294,8 @@ otx2_dpi_rawdev_reset(struct rte_rawdev *dev) }
>
> static int
> -otx2_dpi_rawdev_configure(const struct rte_rawdev *dev,
> rte_rawdev_obj_t config)
> +otx2_dpi_rawdev_configure(const struct rte_rawdev *dev,
> rte_rawdev_obj_t config,
> + size_t config_size)
> {
> struct dpi_rawdev_conf_s *conf = config;
> struct dpi_vf_s *dpivf = NULL;
> @@ -302,8 +303,8 @@ otx2_dpi_rawdev_configure(const struct rte_rawdev
> *dev, rte_rawdev_obj_t config)
> uintptr_t pool;
> uint32_t gaura;
>
> - if (conf == NULL) {
> - otx2_dpi_dbg("NULL configuration");
> + if (conf == NULL || config_size != sizeof(*conf)) {
> + otx2_dpi_dbg("NULL or invalid configuration");
> return -EINVAL;
> }
> dpivf = (struct dpi_vf_s *)dev->dev_private; diff --git
> a/drivers/raw/octeontx2_dma/otx2_dpi_test.c
> b/drivers/raw/octeontx2_dma/otx2_dpi_test.c
> index 276658af0..cec6ca91b 100644
> --- a/drivers/raw/octeontx2_dma/otx2_dpi_test.c
> +++ b/drivers/raw/octeontx2_dma/otx2_dpi_test.c
> @@ -182,7 +182,8 @@ test_otx2_dma_rawdev(uint16_t val)
> /* Configure rawdev ports */
> conf.chunk_pool = dpi_create_mempool();
> rdev_info.dev_private = &conf;
> - ret = rte_rawdev_configure(i, (rte_rawdev_obj_t)&rdev_info);
> + ret = rte_rawdev_configure(i, (rte_rawdev_obj_t)&rdev_info,
> + sizeof(conf));
> if (ret) {
> otx2_dpi_dbg("Unable to configure DPIVF %d", i);
> return -ENODEV;
> diff --git a/drivers/raw/octeontx2_ep/otx2_ep_rawdev.c
> b/drivers/raw/octeontx2_ep/otx2_ep_rawdev.c
> index 0778603d5..2b78a7941 100644
> --- a/drivers/raw/octeontx2_ep/otx2_ep_rawdev.c
> +++ b/drivers/raw/octeontx2_ep/otx2_ep_rawdev.c
> @@ -224,13 +224,14 @@ sdp_rawdev_close(struct rte_rawdev *dev) }
>
> static int
> -sdp_rawdev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t
> config)
> +sdp_rawdev_configure(const struct rte_rawdev *dev, rte_rawdev_obj_t
> config,
> + size_t config_size)
> {
> struct sdp_rawdev_info *app_info = (struct sdp_rawdev_info
> *)config;
> struct sdp_device *sdpvf;
>
> - if (app_info == NULL) {
> - otx2_err("Application config info [NULL]");
> + if (app_info == NULL || config_size != sizeof(*app_info)) {
> + otx2_err("Application config info [NULL] or incorrect size");
> return -EINVAL;
> }
>
> diff --git a/drivers/raw/octeontx2_ep/otx2_ep_test.c
> b/drivers/raw/octeontx2_ep/otx2_ep_test.c
> index 091f1827c..b876275f7 100644
> --- a/drivers/raw/octeontx2_ep/otx2_ep_test.c
> +++ b/drivers/raw/octeontx2_ep/otx2_ep_test.c
> @@ -108,7 +108,7 @@ sdp_rawdev_selftest(uint16_t dev_id)
>
> dev_info.dev_private = &app_info;
>
> - ret = rte_rawdev_configure(dev_id, &dev_info);
> + ret = rte_rawdev_configure(dev_id, &dev_info, sizeof(app_info));
> if (ret) {
> otx2_err("Unable to configure SDP_VF %d", dev_id);
> rte_mempool_free(ioq_mpool);
> diff --git a/drivers/raw/skeleton/skeleton_rawdev.c
> b/drivers/raw/skeleton/skeleton_rawdev.c
> index dce300c35..531d0450c 100644
> --- a/drivers/raw/skeleton/skeleton_rawdev.c
> +++ b/drivers/raw/skeleton/skeleton_rawdev.c
> @@ -68,7 +68,8 @@ static int skeleton_rawdev_info_get(struct rte_rawdev
> *dev, }
>
> static int skeleton_rawdev_configure(const struct rte_rawdev *dev,
> - rte_rawdev_obj_t config)
> + rte_rawdev_obj_t config,
> + size_t config_size)
> {
> struct skeleton_rawdev *skeldev;
> struct skeleton_rawdev_conf *skeldev_conf; @@ -77,7 +78,7 @@
> static int skeleton_rawdev_configure(const struct rte_rawdev *dev,
>
> RTE_FUNC_PTR_OR_ERR_RET(dev, -EINVAL);
>
> - if (!config) {
> + if (config == NULL || config_size != sizeof(*skeldev_conf)) {
> SKELETON_PMD_ERR("Invalid configuration");
> return -EINVAL;
> }
> diff --git a/drivers/raw/skeleton/skeleton_rawdev_test.c
> b/drivers/raw/skeleton/skeleton_rawdev_test.c
> index 9b8390dfb..7dc7c7684 100644
> --- a/drivers/raw/skeleton/skeleton_rawdev_test.c
> +++ b/drivers/raw/skeleton/skeleton_rawdev_test.c
> @@ -126,7 +126,7 @@ test_rawdev_configure(void)
> struct skeleton_rawdev_conf rdev_conf_get = {0};
>
> /* Check invalid configuration */
> - ret = rte_rawdev_configure(test_dev_id, NULL);
> + ret = rte_rawdev_configure(test_dev_id, NULL, 0);
> RTE_TEST_ASSERT(ret == -EINVAL,
> "Null configure; Expected -EINVAL, got %d", ret);
>
> @@ -137,7 +137,8 @@ test_rawdev_configure(void)
>
> rdev_info.dev_private = &rdev_conf_set;
> ret = rte_rawdev_configure(test_dev_id,
> - (rte_rawdev_obj_t)&rdev_info);
> + (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_set));
> RTE_TEST_ASSERT_SUCCESS(ret, "Failed to configure rawdev (%d)",
> ret);
>
> rdev_info.dev_private = &rdev_conf_get; diff --git
> a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c index
> 5c631da1b..8e9513e44 100644
> --- a/examples/ioat/ioatfwd.c
> +++ b/examples/ioat/ioatfwd.c
> @@ -734,7 +734,7 @@ configure_rawdev_queue(uint32_t dev_id)
> struct rte_ioat_rawdev_config dev_config = { .ring_size = ring_size };
> struct rte_rawdev_info info = { .dev_private = &dev_config };
>
> - if (rte_rawdev_configure(dev_id, &info) != 0) {
> + if (rte_rawdev_configure(dev_id, &info, sizeof(dev_config)) != 0) {
> rte_exit(EXIT_FAILURE,
> "Error with rte_rawdev_configure()\n");
> }
> diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c index
> 11e224451..656f73659 100644
> --- a/examples/ntb/ntb_fwd.c
> +++ b/examples/ntb/ntb_fwd.c
> @@ -1401,7 +1401,7 @@ main(int argc, char **argv)
> ntb_conf.num_queues = num_queues;
> ntb_conf.queue_size = nb_desc;
> ntb_rawdev_conf.dev_private = (rte_rawdev_obj_t)(&ntb_conf);
> - ret = rte_rawdev_configure(dev_id, &ntb_rawdev_conf);
> + ret = rte_rawdev_configure(dev_id, &ntb_rawdev_conf,
> +sizeof(ntb_conf));
> if (ret)
> rte_exit(EXIT_FAILURE, "Can't config ntb dev: err=%d, "
> "port=%u\n", ret, dev_id);
> diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c
> index bde33763e..6c4d783cc 100644
> --- a/lib/librte_rawdev/rte_rawdev.c
> +++ b/lib/librte_rawdev/rte_rawdev.c
> @@ -104,7 +104,8 @@ rte_rawdev_info_get(uint16_t dev_id, struct
> rte_rawdev_info *dev_info, }
>
> int
> -rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf)
> +rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf,
> + size_t dev_private_size)
> {
> struct rte_rawdev *dev;
> int diag;
> @@ -123,7 +124,8 @@ rte_rawdev_configure(uint16_t dev_id, struct
> rte_rawdev_info *dev_conf)
> }
>
> /* Configure the device */
> - diag = (*dev->dev_ops->dev_configure)(dev, dev_conf-
> >dev_private);
> + diag = (*dev->dev_ops->dev_configure)(dev, dev_conf-
> >dev_private,
> + dev_private_size);
> if (diag != 0)
> RTE_RDEV_ERR("dev%d dev_configure = %d", dev_id, diag);
> else
> diff --git a/lib/librte_rawdev/rte_rawdev.h
> b/lib/librte_rawdev/rte_rawdev.h index cf6acfd26..73e3bd5ae 100644
> --- a/lib/librte_rawdev/rte_rawdev.h
> +++ b/lib/librte_rawdev/rte_rawdev.h
> @@ -116,13 +116,19 @@ rte_rawdev_info_get(uint16_t dev_id, struct
> rte_rawdev_info *dev_info,
> * driver/implementation can use to configure the device. It is also assumed
> * that once the configuration is done, a `queue_id` type field can be used
> * to refer to some arbitrary internal representation of a queue.
> + * @dev_private_size
> + * The length of the memory space pointed to by dev_private in dev_info.
> + * This should be set to the size of the expected private structure to be
> + * used by the driver, and may be checked by drivers to ensure the
> expected
> + * struct type is provided.
> *
> * @return
> * - 0: Success, device configured.
> * - <0: Error code returned by the driver configuration function.
> */
> int
> -rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf);
> +rte_rawdev_configure(uint16_t dev_id, struct rte_rawdev_info *dev_conf,
> + size_t dev_private_size);
>
>
> /**
> diff --git a/lib/librte_rawdev/rte_rawdev_pmd.h
> b/lib/librte_rawdev/rte_rawdev_pmd.h
> index 89e46412a..050f8b029 100644
> --- a/lib/librte_rawdev/rte_rawdev_pmd.h
> +++ b/lib/librte_rawdev/rte_rawdev_pmd.h
> @@ -160,7 +160,8 @@ typedef int (*rawdev_info_get_t)(struct rte_rawdev
> *dev,
> * Returns 0 on success
> */
> typedef int (*rawdev_configure_t)(const struct rte_rawdev *dev,
> - rte_rawdev_obj_t config);
> + rte_rawdev_obj_t config,
> + size_t config_size);
>
> /**
> * Start a configured device.
> --
> 2.25.1
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH 20.11 1/5] rawdev: add private data length parameter to info fn
@ 2020-07-12 14:13 0% ` Xu, Rosen
0 siblings, 0 replies; 200+ results
From: Xu, Rosen @ 2020-07-12 14:13 UTC (permalink / raw)
To: Richardson, Bruce, Nipun Gupta, Hemant Agrawal
Cc: dev, Zhang, Tianfei, Li, Xiaoyun, Wu, Jingjing, Satha Rao,
Mahipal Challa, Jerin Jacob
Hi,
Reviewed-by: Rosen Xu <rosen.xu@intel.com>
> -----Original Message-----
> From: Richardson, Bruce <bruce.richardson@intel.com>
> Sent: Thursday, July 09, 2020 23:21
> To: Nipun Gupta <nipun.gupta@nxp.com>; Hemant Agrawal
> <hemant.agrawal@nxp.com>
> Cc: dev@dpdk.org; Xu, Rosen <rosen.xu@intel.com>; Zhang, Tianfei
> <tianfei.zhang@intel.com>; Li, Xiaoyun <xiaoyun.li@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>; Satha Rao <skoteshwar@marvell.com>; Mahipal
> Challa <mchalla@marvell.com>; Jerin Jacob <jerinj@marvell.com>;
> Richardson, Bruce <bruce.richardson@intel.com>
> Subject: [PATCH 20.11 1/5] rawdev: add private data length parameter to info
> fn
>
> Currently with the rawdev API there is no way to check that the structure
> passed in via the dev_private pointer in the dev_info structure is of the
> correct type - it's just checked that it is non-NULL. Adding in the length of the
> expected structure provides a measure of typechecking, and can also be
> used for ABI compatibility in future, since ABI changes involving structs
> almost always involve a change in size.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> drivers/bus/ifpga/ifpga_bus.c | 2 +-
> drivers/raw/ifpga/ifpga_rawdev.c | 5 +++--
> drivers/raw/ioat/ioat_rawdev.c | 5 +++--
> drivers/raw/ioat/ioat_rawdev_test.c | 4 ++--
> drivers/raw/ntb/ntb.c | 8 +++++++-
> drivers/raw/skeleton/skeleton_rawdev.c | 5 +++--
> drivers/raw/skeleton/skeleton_rawdev_test.c | 19 ++++++++++++-------
> examples/ioat/ioatfwd.c | 2 +-
> examples/ntb/ntb_fwd.c | 2 +-
> lib/librte_rawdev/rte_rawdev.c | 6 ++++--
> lib/librte_rawdev/rte_rawdev.h | 9 ++++++++-
> lib/librte_rawdev/rte_rawdev_pmd.h | 5 ++++-
> 12 files changed, 49 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/bus/ifpga/ifpga_bus.c b/drivers/bus/ifpga/ifpga_bus.c
> index 6b16a20bb..bb8b3dcfb 100644
> --- a/drivers/bus/ifpga/ifpga_bus.c
> +++ b/drivers/bus/ifpga/ifpga_bus.c
> @@ -162,7 +162,7 @@ ifpga_scan_one(struct rte_rawdev *rawdev,
> afu_dev->id.port = afu_pr_conf.afu_id.port;
>
> if (rawdev->dev_ops && rawdev->dev_ops->dev_info_get)
> - rawdev->dev_ops->dev_info_get(rawdev, afu_dev);
> + rawdev->dev_ops->dev_info_get(rawdev, afu_dev,
> sizeof(*afu_dev));
>
> if (rawdev->dev_ops &&
> rawdev->dev_ops->dev_start &&
> diff --git a/drivers/raw/ifpga/ifpga_rawdev.c
> b/drivers/raw/ifpga/ifpga_rawdev.c
> index cc25c662b..47cfa3877 100644
> --- a/drivers/raw/ifpga/ifpga_rawdev.c
> +++ b/drivers/raw/ifpga/ifpga_rawdev.c
> @@ -605,7 +605,8 @@ ifpga_fill_afu_dev(struct opae_accelerator *acc,
>
> static void
> ifpga_rawdev_info_get(struct rte_rawdev *dev,
> - rte_rawdev_obj_t dev_info)
> + rte_rawdev_obj_t dev_info,
> + size_t dev_info_size)
> {
> struct opae_adapter *adapter;
> struct opae_accelerator *acc;
> @@ -617,7 +618,7 @@ ifpga_rawdev_info_get(struct rte_rawdev *dev,
>
> IFPGA_RAWDEV_PMD_FUNC_TRACE();
>
> - if (!dev_info) {
> + if (!dev_info || dev_info_size != sizeof(*afu_dev)) {
> IFPGA_RAWDEV_PMD_ERR("Invalid request");
> return;
> }
> diff --git a/drivers/raw/ioat/ioat_rawdev.c b/drivers/raw/ioat/ioat_rawdev.c
> index f876ffc3f..8dd856c55 100644
> --- a/drivers/raw/ioat/ioat_rawdev.c
> +++ b/drivers/raw/ioat/ioat_rawdev.c
> @@ -113,12 +113,13 @@ ioat_dev_stop(struct rte_rawdev *dev) }
>
> static void
> -ioat_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info)
> +ioat_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info,
> + size_t dev_info_size)
> {
> struct rte_ioat_rawdev_config *cfg = dev_info;
> struct rte_ioat_rawdev *ioat = dev->dev_private;
>
> - if (cfg != NULL)
> + if (cfg != NULL && dev_info_size == sizeof(*cfg))
> cfg->ring_size = ioat->ring_size;
> }
>
> diff --git a/drivers/raw/ioat/ioat_rawdev_test.c
> b/drivers/raw/ioat/ioat_rawdev_test.c
> index d99f1bd6b..90f5974cd 100644
> --- a/drivers/raw/ioat/ioat_rawdev_test.c
> +++ b/drivers/raw/ioat/ioat_rawdev_test.c
> @@ -157,7 +157,7 @@ ioat_rawdev_test(uint16_t dev_id)
> return TEST_SKIPPED;
> }
>
> - rte_rawdev_info_get(dev_id, &info);
> + rte_rawdev_info_get(dev_id, &info, sizeof(p));
> if (p.ring_size != expected_ring_size[dev_id]) {
> printf("Error, initial ring size is not as expected (Actual: %d,
> Expected: %d)\n",
> (int)p.ring_size, expected_ring_size[dev_id]);
> @@ -169,7 +169,7 @@ ioat_rawdev_test(uint16_t dev_id)
> printf("Error with rte_rawdev_configure()\n");
> return -1;
> }
> - rte_rawdev_info_get(dev_id, &info);
> + rte_rawdev_info_get(dev_id, &info, sizeof(p));
> if (p.ring_size != IOAT_TEST_RINGSIZE) {
> printf("Error, ring size is not %d (%d)\n",
> IOAT_TEST_RINGSIZE, (int)p.ring_size); diff --
> git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c index
> e40412bb7..4676c6f8f 100644
> --- a/drivers/raw/ntb/ntb.c
> +++ b/drivers/raw/ntb/ntb.c
> @@ -801,11 +801,17 @@ ntb_dequeue_bufs(struct rte_rawdev *dev, }
>
> static void
> -ntb_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info)
> +ntb_dev_info_get(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info,
> + size_t dev_info_size)
> {
> struct ntb_hw *hw = dev->dev_private;
> struct ntb_dev_info *info = dev_info;
>
> + if (dev_info_size != sizeof(*info)){
> + NTB_LOG(ERR, "Invalid size parameter to %s", __func__);
> + return;
> + }
> +
> info->mw_cnt = hw->mw_cnt;
> info->mw_size = hw->mw_size;
>
> diff --git a/drivers/raw/skeleton/skeleton_rawdev.c
> b/drivers/raw/skeleton/skeleton_rawdev.c
> index 72ece887a..dc05f3ecf 100644
> --- a/drivers/raw/skeleton/skeleton_rawdev.c
> +++ b/drivers/raw/skeleton/skeleton_rawdev.c
> @@ -42,14 +42,15 @@ static struct queue_buffers
> queue_buf[SKELETON_MAX_QUEUES] = {}; static void clear_queue_bufs(int
> queue_id);
>
> static void skeleton_rawdev_info_get(struct rte_rawdev *dev,
> - rte_rawdev_obj_t dev_info)
> + rte_rawdev_obj_t dev_info,
> + size_t dev_info_size)
> {
> struct skeleton_rawdev *skeldev;
> struct skeleton_rawdev_conf *skeldev_conf;
>
> SKELETON_PMD_FUNC_TRACE();
>
> - if (!dev_info) {
> + if (!dev_info || dev_info_size != sizeof(*skeldev_conf)) {
> SKELETON_PMD_ERR("Invalid request");
> return;
> }
> diff --git a/drivers/raw/skeleton/skeleton_rawdev_test.c
> b/drivers/raw/skeleton/skeleton_rawdev_test.c
> index 9ecfdee81..9b8390dfb 100644
> --- a/drivers/raw/skeleton/skeleton_rawdev_test.c
> +++ b/drivers/raw/skeleton/skeleton_rawdev_test.c
> @@ -106,12 +106,12 @@ test_rawdev_info_get(void)
> struct rte_rawdev_info rdev_info = {0};
> struct skeleton_rawdev_conf skel_conf = {0};
>
> - ret = rte_rawdev_info_get(test_dev_id, NULL);
> + ret = rte_rawdev_info_get(test_dev_id, NULL, 0);
> RTE_TEST_ASSERT(ret == -EINVAL, "Expected -EINVAL, %d", ret);
>
> rdev_info.dev_private = &skel_conf;
>
> - ret = rte_rawdev_info_get(test_dev_id, &rdev_info);
> + ret = rte_rawdev_info_get(test_dev_id, &rdev_info,
> sizeof(skel_conf));
> RTE_TEST_ASSERT_SUCCESS(ret, "Failed to get raw dev info");
>
> return TEST_SUCCESS;
> @@ -142,7 +142,8 @@ test_rawdev_configure(void)
>
> rdev_info.dev_private = &rdev_conf_get;
> ret = rte_rawdev_info_get(test_dev_id,
> - (rte_rawdev_obj_t)&rdev_info);
> + (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_get));
> RTE_TEST_ASSERT_SUCCESS(ret,
> "Failed to obtain rawdev configuration (%d)",
> ret);
> @@ -170,7 +171,8 @@ test_rawdev_queue_default_conf_get(void)
> /* Get the current configuration */
> rdev_info.dev_private = &rdev_conf_get;
> ret = rte_rawdev_info_get(test_dev_id,
> - (rte_rawdev_obj_t)&rdev_info);
> + (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_get));
> RTE_TEST_ASSERT_SUCCESS(ret, "Failed to obtain rawdev
> configuration (%d)",
> ret);
>
> @@ -218,7 +220,8 @@ test_rawdev_queue_setup(void)
> /* Get the current configuration */
> rdev_info.dev_private = &rdev_conf_get;
> ret = rte_rawdev_info_get(test_dev_id,
> - (rte_rawdev_obj_t)&rdev_info);
> + (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_get));
> RTE_TEST_ASSERT_SUCCESS(ret,
> "Failed to obtain rawdev configuration (%d)",
> ret);
> @@ -327,7 +330,8 @@ test_rawdev_start_stop(void)
> dummy_firmware = NULL;
>
> rte_rawdev_start(test_dev_id);
> - ret = rte_rawdev_info_get(test_dev_id,
> (rte_rawdev_obj_t)&rdev_info);
> + ret = rte_rawdev_info_get(test_dev_id,
> (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_get));
> RTE_TEST_ASSERT_SUCCESS(ret,
> "Failed to obtain rawdev configuration (%d)",
> ret);
> @@ -336,7 +340,8 @@ test_rawdev_start_stop(void)
> rdev_conf_get.device_state);
>
> rte_rawdev_stop(test_dev_id);
> - ret = rte_rawdev_info_get(test_dev_id,
> (rte_rawdev_obj_t)&rdev_info);
> + ret = rte_rawdev_info_get(test_dev_id,
> (rte_rawdev_obj_t)&rdev_info,
> + sizeof(rdev_conf_get));
> RTE_TEST_ASSERT_SUCCESS(ret,
> "Failed to obtain rawdev configuration (%d)",
> ret);
> diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c index
> b66ee73bc..5c631da1b 100644
> --- a/examples/ioat/ioatfwd.c
> +++ b/examples/ioat/ioatfwd.c
> @@ -757,7 +757,7 @@ assign_rawdevs(void)
> do {
> if (rdev_id == rte_rawdev_count())
> goto end;
> - rte_rawdev_info_get(rdev_id++,
> &rdev_info);
> + rte_rawdev_info_get(rdev_id++, &rdev_info,
> 0);
> } while (rdev_info.driver_name == NULL ||
> strcmp(rdev_info.driver_name,
>
> IOAT_PMD_RAWDEV_NAME_STR) != 0);
> diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c index
> eba8ebf9f..11e224451 100644
> --- a/examples/ntb/ntb_fwd.c
> +++ b/examples/ntb/ntb_fwd.c
> @@ -1389,7 +1389,7 @@ main(int argc, char **argv)
> rte_rawdev_set_attr(dev_id, NTB_QUEUE_NUM_NAME,
> num_queues);
> printf("Set queue number as %u.\n", num_queues);
> ntb_rawdev_info.dev_private = (rte_rawdev_obj_t)(&ntb_info);
> - rte_rawdev_info_get(dev_id, &ntb_rawdev_info);
> + rte_rawdev_info_get(dev_id, &ntb_rawdev_info, sizeof(ntb_info));
>
> nb_mbuf = nb_desc * num_queues * 2 * 2 + rte_lcore_count() *
> MEMPOOL_CACHE_SIZE;
> diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c
> index 8f84d0b22..a57689035 100644
> --- a/lib/librte_rawdev/rte_rawdev.c
> +++ b/lib/librte_rawdev/rte_rawdev.c
> @@ -78,7 +78,8 @@ rte_rawdev_socket_id(uint16_t dev_id) }
>
> int
> -rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info)
> +rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info,
> + size_t dev_private_size)
> {
> struct rte_rawdev *rawdev;
>
> @@ -89,7 +90,8 @@ rte_rawdev_info_get(uint16_t dev_id, struct
> rte_rawdev_info *dev_info)
>
> if (dev_info->dev_private != NULL) {
> RTE_FUNC_PTR_OR_ERR_RET(*rawdev->dev_ops-
> >dev_info_get, -ENOTSUP);
> - (*rawdev->dev_ops->dev_info_get)(rawdev, dev_info-
> >dev_private);
> + (*rawdev->dev_ops->dev_info_get)(rawdev, dev_info-
> >dev_private,
> + dev_private_size);
> }
>
> dev_info->driver_name = rawdev->driver_name; diff --git
> a/lib/librte_rawdev/rte_rawdev.h b/lib/librte_rawdev/rte_rawdev.h index
> 32f6b8bb0..cf6acfd26 100644
> --- a/lib/librte_rawdev/rte_rawdev.h
> +++ b/lib/librte_rawdev/rte_rawdev.h
> @@ -82,13 +82,20 @@ struct rte_rawdev_info;
> * will be returned. This can be used to safely query the type of a rawdev
> * instance without needing to know the size of the private data to return.
> *
> + * @param dev_private_size
> + * The length of the memory space pointed to by dev_private in dev_info.
> + * This should be set to the size of the expected private structure to be
> + * returned, and may be checked by drivers to ensure the expected struct
> + * type is provided.
> + *
> * @return
> * - 0: Success, driver updates the contextual information of the raw device
> * - <0: Error code returned by the driver info get function.
> *
> */
> int
> -rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info);
> +rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info,
> + size_t dev_private_size);
>
> /**
> * Configure a raw device.
> diff --git a/lib/librte_rawdev/rte_rawdev_pmd.h
> b/lib/librte_rawdev/rte_rawdev_pmd.h
> index 4395a2182..0e72a9205 100644
> --- a/lib/librte_rawdev/rte_rawdev_pmd.h
> +++ b/lib/librte_rawdev/rte_rawdev_pmd.h
> @@ -138,12 +138,15 @@ rte_rawdev_pmd_is_valid_dev(uint8_t dev_id)
> * Raw device pointer
> * @param dev_info
> * Raw device information structure
> + * @param dev_private_size
> + * The size of the structure pointed to by dev_info->dev_private
> *
> * @return
> * Returns 0 on success
> */
> typedef void (*rawdev_info_get_t)(struct rte_rawdev *dev,
> - rte_rawdev_obj_t dev_info);
> + rte_rawdev_obj_t dev_info,
> + size_t dev_private_size);
>
> /**
> * Configure a device.
> --
> 2.25.1
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v5 1/2] rte_flow: add eCPRI key fields to flow API
@ 2020-07-12 13:17 3% ` Olivier Matz
2020-07-12 14:28 0% ` Bing Zhao
0 siblings, 1 reply; 200+ results
From: Olivier Matz @ 2020-07-12 13:17 UTC (permalink / raw)
To: Bing Zhao
Cc: Ori Kam, john.mcnamara, marko.kovacevic, Thomas Monjalon,
ferruh.yigit, arybchenko, akhil.goyal, dev, wenzhuo.lu,
beilei.xing, bernard.iremonger
Hi Bing,
On Sat, Jul 11, 2020 at 04:25:49AM +0000, Bing Zhao wrote:
> Hi Olivier,
> Many thanks for your comments.
[...]
> > > +/**
> > > + * eCPRI Common Header
> > > + */
> > > +RTE_STD_C11
> > > +struct rte_ecpri_common_hdr {
> > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> > > + uint32_t size:16; /**< Payload Size */
> > > + uint32_t type:8; /**< Message Type */
> > > + uint32_t c:1; /**< Concatenation Indicator
> > */
> > > + uint32_t res:3; /**< Reserved */
> > > + uint32_t revision:4; /**< Protocol Revision */
> > > +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
> > > + uint32_t revision:4; /**< Protocol Revision */
> > > + uint32_t res:3; /**< Reserved */
> > > + uint32_t c:1; /**< Concatenation Indicator
> > */
> > > + uint32_t type:8; /**< Message Type */
> > > + uint32_t size:16; /**< Payload Size */
> > > +#endif
> > > +} __rte_packed;
> >
> > Does it really need to be packed? Why next types do not need it?
> > It looks only those which have bitfields are.
> >
>
> Nice catch, thanks. For the common header, there is no need to use
> the packed attribute, because it is a u32 and the bitfields will be
> aligned.
> I checked all the definitions again. Only " Type #4: Remote Memory Access"
> needs to use the packed attribute.
> For other sub-types, "sub-header" part of the message payload will get
> aligned by nature. For example, u16 after u16, u8 after u16, these should
> be OK.
> But in type #4, the address is 48bits wide, with 16bits MSB and 32bits LSB (no
> detailed description in the specification, correct me if anything wrong.) Usually,
> the 48bits address will be devided as this in a system. And there is no 48-bits
> type at all. So we need to define two parts for it: 32b LSB follows 16b MSB.
> u32 after u16 should be with packed attribute. Thanks
What about using a bitfield into a uint64_t ? I mean:
struct rte_ecpri_msg_rm_access {
if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
...
uint64_t length:16; /**< number of bytes */
uint64_t addr:48; /**< address */
#else
...
uint64_t addr:48; /**< address */
uint64_t length:16; /**< number of bytes */
#endif
};
>
> >
> > I wonder if the 'dw0' could be in this definition instead of in struct
> > rte_ecpri_msg_hdr?
> >
> > Something like this:
> >
> > struct rte_ecpri_common_hdr {
> > union {
> > uint32_t u32;
> > struct {
> > ...
> > };
> > };
> > };
> >
> > I see 2 advantages:
> >
> > - someone that only uses the common_hdr struct can use the .u32
> > in its software
> > - when using it in messages, it looks clearer to me:
> > msg.common_hdr.u32 = value;
> > instead of:
> > msg.dw0 = value;
> >
> > What do you think?
>
> Thanks for the suggestion, this is much better, I will change it.
> Indeed, in my original version, no DW(u32) is defined for the header.
> After that, I noticed that it would not be easy for the static casting to a u32
> from bitfield(the compiler will complain), and it would not be clear to
> swap the endian if the user wants to use this header. I added this DW(u32)
> to simplify the usage of this header. But yes, if I do not add it here, it would
> be not easy or clear for users who just use this header structure.
> I will change it. Is it OK if I use the name "dw0"?
In my opinion, u32 is more usual than dw0.
>
> >
> > > +
> > > +/**
> > > + * eCPRI Message Header of Type #0: IQ Data */ struct
> > > +rte_ecpri_msg_iq_data {
> > > + rte_be16_t pc_id; /**< Physical channel ID */
> > > + rte_be16_t seq_id; /**< Sequence ID */
> > > +};
> > > +
> > > +/**
> > > + * eCPRI Message Header of Type #1: Bit Sequence */ struct
> > > +rte_ecpri_msg_bit_seq {
> > > + rte_be16_t pc_id; /**< Physical channel ID */
> > > + rte_be16_t seq_id; /**< Sequence ID */
> > > +};
> > > +
> > > +/**
> > > + * eCPRI Message Header of Type #2: Real-Time Control Data */
> > struct
> > > +rte_ecpri_msg_rtc_ctrl {
> > > + rte_be16_t rtc_id; /**< Real-Time Control Data ID
> > */
> > > + rte_be16_t seq_id; /**< Sequence ID */
> > > +};
> > > +
> > > +/**
> > > + * eCPRI Message Header of Type #3: Generic Data Transfer */
> > struct
> > > +rte_ecpri_msg_gen_data {
> > > + rte_be32_t pc_id; /**< Physical channel ID */
> > > + rte_be32_t seq_id; /**< Sequence ID */
> > > +};
> > > +
> > > +/**
> > > + * eCPRI Message Header of Type #4: Remote Memory Access */
> > > +RTE_STD_C11
> > > +struct rte_ecpri_msg_rm_access {
> > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> > > + uint32_t ele_id:16; /**< Element ID */
> > > + uint32_t rr:4; /**< Req/Resp */
> > > + uint32_t rw:4; /**< Read/Write */
> > > + uint32_t rma_id:8; /**< Remote Memory Access
> > ID */
> > > +#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
> > > + uint32_t rma_id:8; /**< Remote Memory Access
> > ID */
> > > + uint32_t rw:4; /**< Read/Write */
> > > + uint32_t rr:4; /**< Req/Resp */
> > > + uint32_t ele_id:16; /**< Element ID */
> > > +#endif
> > > + rte_be16_t addr_m; /**< 48-bits address (16 MSB)
> > */
> > > + rte_be32_t addr_l; /**< 48-bits address (32 LSB) */
> > > + rte_be16_t length; /**< number of bytes */
> > > +} __rte_packed;
> > > +
> > > +/**
> > > + * eCPRI Message Header of Type #5: One-Way Delay Measurement
> > */
> > > +struct rte_ecpri_msg_delay_measure {
> > > + uint8_t msr_id; /**< Measurement ID */
> > > + uint8_t act_type; /**< Action Type */
> > > +};
> > > +
> > > +/**
> > > + * eCPRI Message Header of Type #6: Remote Reset */ struct
> > > +rte_ecpri_msg_remote_reset {
> > > + rte_be16_t rst_id; /**< Reset ID */
> > > + uint8_t rst_op; /**< Reset Code Op */
> > > +};
> > > +
> > > +/**
> > > + * eCPRI Message Header of Type #7: Event Indication */ struct
> > > +rte_ecpri_msg_event_ind {
> > > + uint8_t evt_id; /**< Event ID */
> > > + uint8_t evt_type; /**< Event Type */
> > > + uint8_t seq; /**< Sequence Number */
> > > + uint8_t number; /**< Number of
> > Faults/Notif */
> > > +};
> > > +
> > > +/**
> > > + * eCPRI Message Header Format: Common Header + Message
> > Types */
> > > +RTE_STD_C11
> > > +struct rte_ecpri_msg_hdr {
> > > + union {
> > > + struct rte_ecpri_common_hdr common;
> > > + uint32_t dw0;
> > > + };
> > > + union {
> > > + struct rte_ecpri_msg_iq_data type0;
> > > + struct rte_ecpri_msg_bit_seq type1;
> > > + struct rte_ecpri_msg_rtc_ctrl type2;
> > > + struct rte_ecpri_msg_bit_seq type3;
> > > + struct rte_ecpri_msg_rm_access type4;
> > > + struct rte_ecpri_msg_delay_measure type5;
> > > + struct rte_ecpri_msg_remote_reset type6;
> > > + struct rte_ecpri_msg_event_ind type7;
> > > + uint32_t dummy[3];
> > > + };
> > > +};
> >
> > What is the point in having this struct?
> >
> > From a software point of view, I think it is a bit risky, because its size is
> > the size of the largest message. This is probably what you want in your
> > case, but when a software will rx or tx such packet, I think they
> > shouldn't use this one. My understanding is that you only need this
> > structure for the mask in rte_flow.
> >
> > Also, I'm not sure to understand the purpose of dummy[3], even after
> > reading your answer to Akhil's question.
> >
>
> Basically YES and no. To my understanding, the eCPRI message format is something
> like the ICMP packet format. The message (packet) itself will be parsed into
> different formats based on the type of the common header. In the message
> payload part, there is no distinct definition of the "sub-header". We can divide
> them into the sub-header and data parts based on the specification.
> E.g. physical channel ID / real-time control ID / Event ID + type are the parts
> that datapath forwarding will only care about. The following timestamp or user data
> parts are the parts that the higher layer in the application will use.
> 1. If an application wants to create some offload flow, or even handle it in the SW, the
> common header + first several bytes in the payload should be enough. BUT YES, it is
> not good or safe to use it in the higher layer of the application.
> 2. A higher layer of the application should have its own definition of the whole payload
> of a specific sub-type, including the parsing of the user data part after the "sub-header".
> It is better for them just skip the first 4 bytes of the eCPRI message or a known offset.
> We do not need to cover the upper layers.
Let me explain what is my vision of how an application would use the
structures (these are completly dummy examples, as I don't know ecpri
protocol at all).
Rx:
int ecpri_input(struct rte_mbuf *m)
{
struct rte_ecpri_common_hdr hdr_copy, *hdr;
struct rte_ecpri_msg_event_ind event_copy, *event;
struct app_specific app_copy, *app;
hdr = rte_pktmbuf_read(m, 0, sizeof(*hdr), &hdr_copy);
if (unlikely(hdr == NULL))
return -1;
switch (hdr->type) {
...
case RTE_ECPRI_EVT_IND_NTFY_IND:
event = rte_pktmbuf_read(m, sizeof(*hdr), sizeof(*event),
&event_copy);
if (unlikely(event == NULL))
return -1;
...
app = rte_pktmbuf_read(m, sizeof(*app),
sizeof(*hdr) + sizeof(*event),
&app_copy);
...
Tx:
int ecpri_output(void)
{
struct rte_ecpri_common_hdr *hdr;
struct rte_ecpri_msg_event_ind *event;
struct app_specific *app;
m = rte_pktmbuf_alloc(mp);
if (unlikely(m == NULL))
return -1;
app = rte_pktmbuf_append(m, sizeof(*data));
if (app == NULL)
...
app->... = ...;
...
event = rte_pktmbuf_prepend(m, sizeof(*event));
if (event == NULL)
...
event->... = ...;
...
hdr = rte_pktmbuf_prepend(m, sizeof(*hdr));
if (hdr == NULL)
...
hdr->... = ...;
return packet_send(m);
}
In these 2 examples, we never need the unioned structure (struct
rte_ecpri_msg_hdr).
Using it does not look possible to me, because its size is corresponds
to the largest message, not to the one we are parsing/building.
> I think some comments could be added here, is it OK?
> 3. Regarding this structure, I add it because I do not want to introduce a lot of new items
> in the rte_flow: new items with structures, new enum types. I prefer one single structure
> will cover most of the cases (subtypes). What do you think?
> 4. About the *dummy* u32, I calculated all the "subheaders" and choose the maximal value
> of the length. Two purposes (same as the u32 in the common header):
> a. easy to swap the endianness, but not quite useful. Because some parts are u16 and u8,
> and should not be swapped in a u32. (some physical channel ID and address LSB have 32bits width)
> But if some HW parsed the header u32 by u32, then it would be helpful.
> b. easy for checking in flow API, if the user wants to insert a flow. Some checking should
> be done to confirm if it is wildcard flow (all eCPRI messages or eCPRI message in some specific type),
> or some precise flow (to match the pc id or rtc id, for example). With these fields, 3 DW
> of the masks only need to be check before continuing. Or else, the code needs to check the type
> and a lot of switch-case conditions and go through all different members of each header.
Thanks for the clarification.
I'll tend to say that if the rte_ecpri_msg_hdr structure is only
useful for rte_flow, it should be defined inside rte_flow.
However, I have some fears about the dummy[3]. You said it could be
enlarged later: I think it is dangerous to change the size of a
structure that may be used to parse data (and this would be an ABI
change). Also, it seems dummy[3] cannot be used easily to swap
endianness, so is it really useful?
Thanks,
Olivier
> > > +
> > > +#ifdef __cplusplus
> > > +}
> > > +#endif
> > > +
> > > +#endif /* _RTE_ECPRI_H_ */
> > > diff --git a/lib/librte_net/rte_ether.h b/lib/librte_net/rte_ether.h
> > > index 0ae4e75..184a3f9 100644
> > > --- a/lib/librte_net/rte_ether.h
> > > +++ b/lib/librte_net/rte_ether.h
> > > @@ -304,6 +304,7 @@ struct rte_vlan_hdr { #define
> > RTE_ETHER_TYPE_LLDP
> > > 0x88CC /**< LLDP Protocol. */ #define RTE_ETHER_TYPE_MPLS
> > 0x8847 /**<
> > > MPLS ethertype. */ #define RTE_ETHER_TYPE_MPLSM 0x8848 /**<
> > MPLS
> > > multicast ethertype. */
> > > +#define RTE_ETHER_TYPE_ECPRI 0xAEFE /**< eCPRI ethertype (.1Q
> > > +supported). */
> > >
> > > /**
> > > * Extract VLAN tag information into mbuf
> > > --
> > > 1.8.3.1
> > >
>
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v7 1/2] mbuf: introduce accurate packet Tx scheduling
2020-07-10 15:46 0% ` Slava Ovsiienko
@ 2020-07-10 22:07 0% ` Ferruh Yigit
0 siblings, 0 replies; 200+ results
From: Ferruh Yigit @ 2020-07-10 22:07 UTC (permalink / raw)
To: Slava Ovsiienko, dev
Cc: Matan Azrad, Raslan Darawsheh, olivier.matz, arybchenko, Thomas Monjalon
On 7/10/2020 4:46 PM, Slava Ovsiienko wrote:
>
>
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Viacheslav Ovsiienko
>> Sent: Friday, July 10, 2020 15:40
>> To: dev@dpdk.org
>> Cc: Matan Azrad <matan@mellanox.com>; Raslan Darawsheh
>> <rasland@mellanox.com>; olivier.matz@6wind.com;
>> arybchenko@solarflare.com; Thomas Monjalon <thomas@monjalon.net>;
>> ferruh.yigit@intel.com
>> Subject: [dpdk-dev] [PATCH v7 1/2] mbuf: introduce accurate packet Tx
>> scheduling
>>
>> There is the requirement on some networks for precise traffic timing
>> management. The ability to send (and, generally speaking, receive) the
>> packets at the very precisely specified moment of time provides the
>> opportunity to support the connections with Time Division Multiplexing using
>> the contemporary general purpose NIC without involving an auxiliary
>> hardware. For example, the supporting of O-RAN Fronthaul interface is one
>> of the promising features for potentially usage of the precise time
>> management for the egress packets.
>>
>> The main objective of this patchset is to specify the way how applications
>> can provide the moment of time at what the packet transmission must be
>> started and to describe in preliminary the supporting this feature from mlx5
>> PMD side [1].
>>
>> The new dynamic timestamp field is proposed, it provides some timing
>> information, the units and time references (initial phase) are not explicitly
>> defined but are maintained always the same for a given port.
>> Some devices allow to query rte_eth_read_clock() that will return the current
>> device timestamp. The dynamic timestamp flag tells whether the field
>> contains actual timestamp value. For the packets being sent this value can be
>> used by PMD to schedule packet sending.
>>
>> The device clock is opaque entity, the units and frequency are vendor specific
>> and might depend on hardware capabilities and configurations. If might (or
>> not) be synchronized with real time via PTP, might (or not) be synchronous
>> with CPU clock (for example if NIC and CPU share the same clock source
>> there might be no any drift between the NIC and CPU clocks), etc.
>>
>> After PKT_RX_TIMESTAMP flag and fixed timestamp field supposed
>> deprecation and obsoleting, these dynamic flag and field might be used to
>> manage the timestamps on receiving datapath as well. Having the dedicated
>> flags for Rx/Tx timestamps allows applications not to perform explicit flags
>> reset on forwarding and not to promote received timestamps to the
>> transmitting datapath by default.
>> The static PKT_RX_TIMESTAMP is considered as candidate to become the
>> dynamic flag and this move should be discussed.
>>
>> When PMD sees the "rte_dynfield_timestamp" set on the packet being sent it
>> tries to synchronize the time of packet appearing on the wire with the
>> specified packet timestamp. If the specified one is in the past it should be
>> ignored, if one is in the distant future it should be capped with some
>> reasonable value (in range of seconds). These specific cases ("too late" and
>> "distant future") can be optionally reported via device xstats to assist
>> applications to detect the time-related problems.
>>
>> There is no any packet reordering according timestamps is supposed, neither
>> within packet burst, nor between packets, it is an entirely application
>> responsibility to generate packets and its timestamps in desired order. The
>> timestamps can be put only in the first packet in the burst providing the
>> entire burst scheduling.
>>
>> PMD reports the ability to synchronize packet sending on timestamp with
>> new offload flag:
>>
>> This is palliative and might be replaced with new eth_dev API about
>> reporting/managing the supported dynamic flags and its related features.
>> This API would break ABI compatibility and can't be introduced at the
>> moment, so is postponed to 20.11.
>>
>> For testing purposes it is proposed to update testpmd "txonly"
>> forwarding mode routine. With this update testpmd application generates
>> the packets and sets the dynamic timestamps according to specified time
>> pattern if it sees the "rte_dynfield_timestamp" is registered.
>>
>> The new testpmd command is proposed to configure sending pattern:
>>
>> set tx_times <burst_gap>,<intra_gap>
>>
>> <intra_gap> - the delay between the packets within the burst
>> specified in the device clock units. The number
>> of packets in the burst is defined by txburst parameter
>>
>> <burst_gap> - the delay between the bursts in the device clock units
>>
>> As the result the bursts of packet will be transmitted with specific delays
>> between the packets within the burst and specific delay between the bursts.
>> The rte_eth_read_clock is supposed to be engaged to get the current device
>> clock value and provide the reference for the timestamps.
>>
>> [1]
>> https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpatche
>> s.dpdk.org%2Fpatch%2F73714%2F&data=02%7C01%7Cviacheslavo%40
>> mellanox.com%7C810609c61c3b466e8f5a08d824ce57f8%7Ca652971c7d2e4
>> d9ba6a4d149256f461b%7C0%7C0%7C637299815958194092&sdata=H
>> D7efBGOLuYxHd5KLJYJj7RSbiLRVBNm5jdq%2FJv%2FXfk%3D&reserved=
>> 0
>>
>> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
>
> promote Acked-bt from previous patch version to maintain patchwork
> status accordingly
>
> Acked-by: Olivier Matz <olivier.matz@6wind.com>
>
For series,
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Applied to dpdk-next-net/master, thanks.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] doc: mark internal symbols in ethdev
2020-07-10 14:20 0% ` Thomas Monjalon
@ 2020-07-10 16:17 0% ` Ferruh Yigit
0 siblings, 0 replies; 200+ results
From: Ferruh Yigit @ 2020-07-10 16:17 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Neil Horman, John McNamara, Marko Kovacevic, dev, David Marchand,
Andrew Rybchenko, Kinsella, Ray
On 7/10/2020 3:20 PM, Thomas Monjalon wrote:
> 26/06/2020 10:49, Kinsella, Ray:
>> On 23/06/2020 14:49, Ferruh Yigit wrote:
>>> The APIs are marked in the doxygen comment but better to mark the
>>> symbols too. This is planned for v20.11 release.
>>>
>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>> ---
>>> +* ethdev: Some internal APIs for driver usage are exported in the .map file.
>>> + Now DPDK has ``__rte_internal`` marker so we can mark internal APIs and move
>>> + them to the INTERNAL block in .map. Although these APIs are internal it will
>>> + break the ABI checks, that is why change is planned for 20.11.
>>> + The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
>>> +
>>
>> Acked-by: Ray Kinsella <mdr@ashroe.eu>
>>
>> A bunch of other folks have already annotated "internal" APIs, and added entries to
>> libabigail.abignore to suppress warnings. If you are 100% certain these are never used
>> by end applications, you could do likewise.
>>
>> That said, depreciation notice and completing in 20.11 is definitely the better approach.
>> See https://git.dpdk.org/dpdk/tree/devtools/libabigail.abignore#n53
>
> I agree we can wait 20.11.
>
> Acked-by: Thomas Monjalon <thomas@monjalon.net>
>
Applied to dpdk-next-net/master, thanks.
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v7 1/2] mbuf: introduce accurate packet Tx scheduling
2020-07-10 12:39 2% ` [dpdk-dev] [PATCH v7 " Viacheslav Ovsiienko
@ 2020-07-10 15:46 0% ` Slava Ovsiienko
2020-07-10 22:07 0% ` Ferruh Yigit
0 siblings, 1 reply; 200+ results
From: Slava Ovsiienko @ 2020-07-10 15:46 UTC (permalink / raw)
To: Slava Ovsiienko, dev
Cc: Matan Azrad, Raslan Darawsheh, olivier.matz, arybchenko,
Thomas Monjalon, ferruh.yigit
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Viacheslav Ovsiienko
> Sent: Friday, July 10, 2020 15:40
> To: dev@dpdk.org
> Cc: Matan Azrad <matan@mellanox.com>; Raslan Darawsheh
> <rasland@mellanox.com>; olivier.matz@6wind.com;
> arybchenko@solarflare.com; Thomas Monjalon <thomas@monjalon.net>;
> ferruh.yigit@intel.com
> Subject: [dpdk-dev] [PATCH v7 1/2] mbuf: introduce accurate packet Tx
> scheduling
>
> There is the requirement on some networks for precise traffic timing
> management. The ability to send (and, generally speaking, receive) the
> packets at the very precisely specified moment of time provides the
> opportunity to support the connections with Time Division Multiplexing using
> the contemporary general purpose NIC without involving an auxiliary
> hardware. For example, the supporting of O-RAN Fronthaul interface is one
> of the promising features for potentially usage of the precise time
> management for the egress packets.
>
> The main objective of this patchset is to specify the way how applications
> can provide the moment of time at what the packet transmission must be
> started and to describe in preliminary the supporting this feature from mlx5
> PMD side [1].
>
> The new dynamic timestamp field is proposed, it provides some timing
> information, the units and time references (initial phase) are not explicitly
> defined but are maintained always the same for a given port.
> Some devices allow to query rte_eth_read_clock() that will return the current
> device timestamp. The dynamic timestamp flag tells whether the field
> contains actual timestamp value. For the packets being sent this value can be
> used by PMD to schedule packet sending.
>
> The device clock is opaque entity, the units and frequency are vendor specific
> and might depend on hardware capabilities and configurations. If might (or
> not) be synchronized with real time via PTP, might (or not) be synchronous
> with CPU clock (for example if NIC and CPU share the same clock source
> there might be no any drift between the NIC and CPU clocks), etc.
>
> After PKT_RX_TIMESTAMP flag and fixed timestamp field supposed
> deprecation and obsoleting, these dynamic flag and field might be used to
> manage the timestamps on receiving datapath as well. Having the dedicated
> flags for Rx/Tx timestamps allows applications not to perform explicit flags
> reset on forwarding and not to promote received timestamps to the
> transmitting datapath by default.
> The static PKT_RX_TIMESTAMP is considered as candidate to become the
> dynamic flag and this move should be discussed.
>
> When PMD sees the "rte_dynfield_timestamp" set on the packet being sent it
> tries to synchronize the time of packet appearing on the wire with the
> specified packet timestamp. If the specified one is in the past it should be
> ignored, if one is in the distant future it should be capped with some
> reasonable value (in range of seconds). These specific cases ("too late" and
> "distant future") can be optionally reported via device xstats to assist
> applications to detect the time-related problems.
>
> There is no any packet reordering according timestamps is supposed, neither
> within packet burst, nor between packets, it is an entirely application
> responsibility to generate packets and its timestamps in desired order. The
> timestamps can be put only in the first packet in the burst providing the
> entire burst scheduling.
>
> PMD reports the ability to synchronize packet sending on timestamp with
> new offload flag:
>
> This is palliative and might be replaced with new eth_dev API about
> reporting/managing the supported dynamic flags and its related features.
> This API would break ABI compatibility and can't be introduced at the
> moment, so is postponed to 20.11.
>
> For testing purposes it is proposed to update testpmd "txonly"
> forwarding mode routine. With this update testpmd application generates
> the packets and sets the dynamic timestamps according to specified time
> pattern if it sees the "rte_dynfield_timestamp" is registered.
>
> The new testpmd command is proposed to configure sending pattern:
>
> set tx_times <burst_gap>,<intra_gap>
>
> <intra_gap> - the delay between the packets within the burst
> specified in the device clock units. The number
> of packets in the burst is defined by txburst parameter
>
> <burst_gap> - the delay between the bursts in the device clock units
>
> As the result the bursts of packet will be transmitted with specific delays
> between the packets within the burst and specific delay between the bursts.
> The rte_eth_read_clock is supposed to be engaged to get the current device
> clock value and provide the reference for the timestamps.
>
> [1]
> https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpatche
> s.dpdk.org%2Fpatch%2F73714%2F&data=02%7C01%7Cviacheslavo%40
> mellanox.com%7C810609c61c3b466e8f5a08d824ce57f8%7Ca652971c7d2e4
> d9ba6a4d149256f461b%7C0%7C0%7C637299815958194092&sdata=H
> D7efBGOLuYxHd5KLJYJj7RSbiLRVBNm5jdq%2FJv%2FXfk%3D&reserved=
> 0
>
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
promote Acked-bt from previous patch version to maintain patchwork
status accordingly
Acked-by: Olivier Matz <olivier.matz@6wind.com>
>
> ---
> v1->v4:
> - dedicated dynamic Tx timestamp flag instead of shared with Rx
> v4->v5:
> - elaborated commit message
> - more words about device clocks added,
> - note about dedicated Rx/Tx timestamp flags added
> v5->v6:
> - release notes are updated
> v6->v7:
> - commit message is updated
> - testpmd checks the supported offloads before registering
> dynamic timestamp flag/field
> ---
> doc/guides/rel_notes/release_20_08.rst | 7 +++++++
> lib/librte_ethdev/rte_ethdev.c | 1 +
> lib/librte_ethdev/rte_ethdev.h | 4 ++++
> lib/librte_mbuf/rte_mbuf_dyn.h | 31
> +++++++++++++++++++++++++++++++
> 4 files changed, 43 insertions(+)
>
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH v3] lib/librte_timer:fix corruption with reset
@ 2020-07-10 15:19 3% ` Stephen Hemminger
2020-07-28 19:04 3% ` Carrillo, Erik G
1 sibling, 0 replies; 200+ results
From: Stephen Hemminger @ 2020-07-10 15:19 UTC (permalink / raw)
To: Sarosh Arif; +Cc: rsanford, erik.g.carrillo, dev, stable, h.mikita89
On Fri, 10 Jul 2020 11:59:54 +0500
Sarosh Arif <sarosh.arif@emumba.com> wrote:
> If the user tries to reset/stop some other timer in it's callback
> function, which is also about to expire, using
> rte_timer_reset_sync/rte_timer_stop_sync the application goes into
> an infinite loop. This happens because
> rte_timer_reset_sync/rte_timer_stop_sync loop until the timer
> resets/stops and there is check inside timer_set_config_state which
> prevents a running timer from being reset/stopped by not it's own
> timer_cb. Therefore timer_set_config_state returns -1 due to which
> rte_timer_reset returns -1 and rte_timer_reset_sync goes into an
> infinite loop.
>
> The soloution to this problem is to return -1 from
> rte_timer_reset_sync/rte_timer_stop_sync in case the user tries to
> reset/stop some other timer in it's callback function.
>
> Bugzilla ID: 491
> Fixes: 20d159f20543 ("timer: fix corruption with reset")
> Cc: h.mikita89@gmail.com
> Signed-off-by: Sarosh Arif <sarosh.arif@emumba.com>
> ---
> v2: remove line continuations
> v3: separate code and declarations
If you want to change the return value, you need to go through the steps
in the API/ABI policy. Maybe even symbol versioning.
Sorry, I know it is painful but we committed to the rules.
And changing the return value can never go to stable.
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v3 00/10] rename blacklist/whitelist to block/allow
@ 2020-07-10 15:06 3% ` David Marchand
2020-07-14 4:43 0% ` Stephen Hemminger
1 sibling, 1 reply; 200+ results
From: David Marchand @ 2020-07-10 15:06 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: dev, techboard, Luca Boccassi, Mcnamara, John
On Sat, Jun 13, 2020 at 2:01 AM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> The terms blacklist and whitelist are often seen as reminders
> of the divisions in society. Instead, use more exact terms for
> handling of which devices are used in DPDK.
>
> This is a proposed change for DPDK 20.08 to replace the names
> blacklist and whitelist in API and command lines.
>
> The first three patches fix some other unnecessary use of
> blacklist/whitelist and have no user visible impact.
>
> The rest change the PCI blacklist to be blocklist and
> whitelist to be allowlist.
Thanks for working on this.
I agree, the first patches can go in right now.
But I have some concerns about the rest.
New options in EAL are not consistent with "allow"/"block" list:
+ "b:" /* pci-skip-probe */
+ "w:" /* pci-only-probe */
+#define OPT_PCI_SKIP_PROBE "pci-skip-probe"
+ OPT_PCI_SKIP_PROBE_NUM = 'b',
+#define OPT_PCI_ONLY_PROBE "pci-only-probe"
+ OPT_PCI_ONLY_PROBE_NUM = 'w',
The CI flagged the series as failing, because the unit test for EAL
flags is unaligned:
+#define pci_allowlist "--pci-allowlist"
https://travis-ci.com/github/ovsrobot/dpdk/jobs/348668299#L5657
The ABI check complains about the enum update:
https://travis-ci.com/github/ovsrobot/dpdk/jobs/348668301#L2400
Either we deal with this, or we need a libabigail exception rule.
About deprecating existing API/EAL flags in this release, this should
go through the standard deprecation process.
I would go with introducing new options + full compatibility + a
deprecation notice in the 20.08 release.
The actual deprecation/API flagging will go in 20.11.
Removal will come later.
--
David Marchand
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH] doc: mark internal symbols in ethdev
@ 2020-07-10 14:20 0% ` Thomas Monjalon
2020-07-10 16:17 0% ` Ferruh Yigit
0 siblings, 1 reply; 200+ results
From: Thomas Monjalon @ 2020-07-10 14:20 UTC (permalink / raw)
To: Ferruh Yigit
Cc: Neil Horman, John McNamara, Marko Kovacevic, dev, David Marchand,
Andrew Rybchenko, Kinsella, Ray
26/06/2020 10:49, Kinsella, Ray:
> On 23/06/2020 14:49, Ferruh Yigit wrote:
> > The APIs are marked in the doxygen comment but better to mark the
> > symbols too. This is planned for v20.11 release.
> >
> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > ---
> > +* ethdev: Some internal APIs for driver usage are exported in the .map file.
> > + Now DPDK has ``__rte_internal`` marker so we can mark internal APIs and move
> > + them to the INTERNAL block in .map. Although these APIs are internal it will
> > + break the ABI checks, that is why change is planned for 20.11.
> > + The list of internal APIs are mainly ones listed in ``rte_ethdev_driver.h``.
> > +
>
> Acked-by: Ray Kinsella <mdr@ashroe.eu>
>
> A bunch of other folks have already annotated "internal" APIs, and added entries to
> libabigail.abignore to suppress warnings. If you are 100% certain these are never used
> by end applications, you could do likewise.
>
> That said, depreciation notice and completing in 20.11 is definitely the better approach.
> See https://git.dpdk.org/dpdk/tree/devtools/libabigail.abignore#n53
I agree we can wait 20.11.
Acked-by: Thomas Monjalon <thomas@monjalon.net>
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH v7 1/2] mbuf: introduce accurate packet Tx scheduling
@ 2020-07-10 12:39 2% ` Viacheslav Ovsiienko
2020-07-10 15:46 0% ` Slava Ovsiienko
1 sibling, 1 reply; 200+ results
From: Viacheslav Ovsiienko @ 2020-07-10 12:39 UTC (permalink / raw)
To: dev; +Cc: matan, rasland, olivier.matz, arybchenko, thomas, ferruh.yigit
There is the requirement on some networks for precise traffic timing
management. The ability to send (and, generally speaking, receive)
the packets at the very precisely specified moment of time provides
the opportunity to support the connections with Time Division
Multiplexing using the contemporary general purpose NIC without involving
an auxiliary hardware. For example, the supporting of O-RAN Fronthaul
interface is one of the promising features for potentially usage of the
precise time management for the egress packets.
The main objective of this patchset is to specify the way how applications
can provide the moment of time at what the packet transmission must be
started and to describe in preliminary the supporting this feature
from mlx5 PMD side [1].
The new dynamic timestamp field is proposed, it provides some timing
information, the units and time references (initial phase) are not
explicitly defined but are maintained always the same for a given port.
Some devices allow to query rte_eth_read_clock() that will return
the current device timestamp. The dynamic timestamp flag tells whether
the field contains actual timestamp value. For the packets being sent
this value can be used by PMD to schedule packet sending.
The device clock is opaque entity, the units and frequency are
vendor specific and might depend on hardware capabilities and
configurations. If might (or not) be synchronized with real time
via PTP, might (or not) be synchronous with CPU clock (for example
if NIC and CPU share the same clock source there might be no
any drift between the NIC and CPU clocks), etc.
After PKT_RX_TIMESTAMP flag and fixed timestamp field supposed
deprecation and obsoleting, these dynamic flag and field might be
used to manage the timestamps on receiving datapath as well. Having
the dedicated flags for Rx/Tx timestamps allows applications not
to perform explicit flags reset on forwarding and not to promote
received timestamps to the transmitting datapath by default.
The static PKT_RX_TIMESTAMP is considered as candidate to become
the dynamic flag and this move should be discussed.
When PMD sees the "rte_dynfield_timestamp" set on the packet being sent
it tries to synchronize the time of packet appearing on the wire with
the specified packet timestamp. If the specified one is in the past it
should be ignored, if one is in the distant future it should be capped
with some reasonable value (in range of seconds). These specific cases
("too late" and "distant future") can be optionally reported via
device xstats to assist applications to detect the time-related
problems.
There is no any packet reordering according timestamps is supposed,
neither within packet burst, nor between packets, it is an entirely
application responsibility to generate packets and its timestamps
in desired order. The timestamps can be put only in the first packet
in the burst providing the entire burst scheduling.
PMD reports the ability to synchronize packet sending on timestamp
with new offload flag:
This is palliative and might be replaced with new eth_dev API
about reporting/managing the supported dynamic flags and its related
features. This API would break ABI compatibility and can't be introduced
at the moment, so is postponed to 20.11.
For testing purposes it is proposed to update testpmd "txonly"
forwarding mode routine. With this update testpmd application generates
the packets and sets the dynamic timestamps according to specified time
pattern if it sees the "rte_dynfield_timestamp" is registered.
The new testpmd command is proposed to configure sending pattern:
set tx_times <burst_gap>,<intra_gap>
<intra_gap> - the delay between the packets within the burst
specified in the device clock units. The number
of packets in the burst is defined by txburst parameter
<burst_gap> - the delay between the bursts in the device clock units
As the result the bursts of packet will be transmitted with specific
delays between the packets within the burst and specific delay between
the bursts. The rte_eth_read_clock is supposed to be engaged to get the
current device clock value and provide the reference for the timestamps.
[1] http://patches.dpdk.org/patch/73714/
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
---
v1->v4:
- dedicated dynamic Tx timestamp flag instead of shared with Rx
v4->v5:
- elaborated commit message
- more words about device clocks added,
- note about dedicated Rx/Tx timestamp flags added
v5->v6:
- release notes are updated
v6->v7:
- commit message is updated
- testpmd checks the supported offloads before registering
dynamic timestamp flag/field
---
doc/guides/rel_notes/release_20_08.rst | 7 +++++++
lib/librte_ethdev/rte_ethdev.c | 1 +
lib/librte_ethdev/rte_ethdev.h | 4 ++++
lib/librte_mbuf/rte_mbuf_dyn.h | 31 +++++++++++++++++++++++++++++++
4 files changed, 43 insertions(+)
diff --git a/doc/guides/rel_notes/release_20_08.rst b/doc/guides/rel_notes/release_20_08.rst
index 988474c..bdea389 100644
--- a/doc/guides/rel_notes/release_20_08.rst
+++ b/doc/guides/rel_notes/release_20_08.rst
@@ -81,6 +81,13 @@ New Features
Added the RegEx library which provides an API for offload of regular
expressions search operations to hardware or software accelerator devices.
+
+* **Introduced send packet scheduling on the timestamps.**
+
+ Added the new mbuf dynamic field and flag to provide timestamp on what packet
+ transmitting can be synchronized. The device Tx offload flag is added to
+ indicate the PMD supports send scheduling.
+
* **Updated PCAP driver.**
Updated PCAP driver with new features and improvements, including:
diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index 7022bd7..c48ca2a 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -160,6 +160,7 @@ struct rte_eth_xstats_name_off {
RTE_TX_OFFLOAD_BIT2STR(UDP_TNL_TSO),
RTE_TX_OFFLOAD_BIT2STR(IP_TNL_TSO),
RTE_TX_OFFLOAD_BIT2STR(OUTER_UDP_CKSUM),
+ RTE_TX_OFFLOAD_BIT2STR(SEND_ON_TIMESTAMP),
};
#undef RTE_TX_OFFLOAD_BIT2STR
diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 631b146..97313a0 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -1178,6 +1178,10 @@ struct rte_eth_conf {
/** Device supports outer UDP checksum */
#define DEV_TX_OFFLOAD_OUTER_UDP_CKSUM 0x00100000
+/** Device supports send on timestamp */
+#define DEV_TX_OFFLOAD_SEND_ON_TIMESTAMP 0x00200000
+
+
#define RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP 0x00000001
/**< Device supports Rx queue setup after device started*/
#define RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP 0x00000002
diff --git a/lib/librte_mbuf/rte_mbuf_dyn.h b/lib/librte_mbuf/rte_mbuf_dyn.h
index 96c3631..8407230 100644
--- a/lib/librte_mbuf/rte_mbuf_dyn.h
+++ b/lib/librte_mbuf/rte_mbuf_dyn.h
@@ -250,4 +250,35 @@ int rte_mbuf_dynflag_lookup(const char *name,
#define RTE_MBUF_DYNFIELD_METADATA_NAME "rte_flow_dynfield_metadata"
#define RTE_MBUF_DYNFLAG_METADATA_NAME "rte_flow_dynflag_metadata"
+/**
+ * The timestamp dynamic field provides some timing information, the
+ * units and time references (initial phase) are not explicitly defined
+ * but are maintained always the same for a given port. Some devices allow
+ * to query rte_eth_read_clock() that will return the current device
+ * timestamp. The dynamic Tx timestamp flag tells whether the field contains
+ * actual timestamp value for the packets being sent, this value can be
+ * used by PMD to schedule packet sending.
+ *
+ * After PKT_RX_TIMESTAMP flag and fixed timestamp field deprecation
+ * and obsoleting, the dedicated Rx timestamp flag is supposed to be
+ * introduced and the shared dynamic timestamp field will be used
+ * to handle the timestamps on receiving datapath as well.
+ */
+#define RTE_MBUF_DYNFIELD_TIMESTAMP_NAME "rte_dynfield_timestamp"
+
+/**
+ * When PMD sees the RTE_MBUF_DYNFLAG_TX_TIMESTAMP_NAME flag set on the
+ * packet being sent it tries to synchronize the time of packet appearing
+ * on the wire with the specified packet timestamp. If the specified one
+ * is in the past it should be ignored, if one is in the distant future
+ * it should be capped with some reasonable value (in range of seconds).
+ *
+ * There is no any packet reordering according to timestamps is supposed,
+ * neither for packet within the burst, nor for the whole bursts, it is
+ * an entirely application responsibility to generate packets and its
+ * timestamps in desired order. The timestamps might be put only in
+ * the first packet in the burst providing the entire burst scheduling.
+ */
+#define RTE_MBUF_DYNFLAG_TX_TIMESTAMP_NAME "rte_dynflag_tx_timestamp"
+
#endif
--
1.8.3.1
^ permalink raw reply [relevance 2%]
* Re: [dpdk-dev] [PATCH v6 1/2] mbuf: introduce accurate packet Tx scheduling
@ 2020-07-10 12:32 0% ` Slava Ovsiienko
0 siblings, 0 replies; 200+ results
From: Slava Ovsiienko @ 2020-07-10 12:32 UTC (permalink / raw)
To: Ferruh Yigit, dev
Cc: Matan Azrad, Raslan Darawsheh, olivier.matz, bernard.iremonger,
thomas, Andrew Rybchenko
Hi, Ferruh
Thanks a lot for the review.
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Friday, July 10, 2020 2:47
> To: Slava Ovsiienko <viacheslavo@mellanox.com>; dev@dpdk.org
> Cc: Matan Azrad <matan@mellanox.com>; Raslan Darawsheh
> <rasland@mellanox.com>; olivier.matz@6wind.com;
> bernard.iremonger@intel.com; thomas@monjalon.com; Andrew Rybchenko
> <arybchenko@solarflare.com>
> Subject: Re: [dpdk-dev] [PATCH v6 1/2] mbuf: introduce accurate packet Tx
> scheduling
>
> On 7/9/2020 1:36 PM, Viacheslav Ovsiienko wrote:
> > There is the requirement on some networks for precise traffic timing
> > management. The ability to send (and, generally speaking, receive) the
> > packets at the very precisely specified moment of time provides the
> > opportunity to support the connections with Time Division Multiplexing
> > using the contemporary general purpose NIC without involving an
> > auxiliary hardware. For example, the supporting of O-RAN Fronthaul
> > interface is one of the promising features for potentially usage of
> > the precise time management for the egress packets.
>
> Is this a HW support, or is the scheduling planned to be done in the driver?
Yes, mlx5 PMD feature v1 is sent: http://patches.dpdk.org/patch/73714/
>
> >
> > The main objective of this RFC is to specify the way how applications
>
> It is no more RFC.
Oops, miscopy. Thanks.
>
> > can provide the moment of time at what the packet transmission must be
> > started and to describe in preliminary the supporting this feature
> > from
> > mlx5 PMD side.
>
> I was about the ask this, will there be a PMD counterpart implementation of
> the feature? It would be better to have it as part of this set.
> What is the plan for the PMD implementation?
Please, see above.
>
> >
> > The new dynamic timestamp field is proposed, it provides some timing
> > information, the units and time references (initial phase) are not
> > explicitly defined but are maintained always the same for a given port.
> > Some devices allow to query rte_eth_read_clock() that will return the
> > current device timestamp. The dynamic timestamp flag tells whether the
> > field contains actual timestamp value. For the packets being sent this
> > value can be used by PMD to schedule packet sending.
> >
> > The device clock is opaque entity, the units and frequency are vendor
> > specific and might depend on hardware capabilities and configurations.
> > If might (or not) be synchronized with real time via PTP, might (or
> > not) be synchronous with CPU clock (for example if NIC and CPU share
> > the same clock source there might be no any drift between the NIC and
> > CPU clocks), etc.
> >
> > After PKT_RX_TIMESTAMP flag and fixed timestamp field deprecation and
> > obsoleting, these dynamic flag and field will be used to manage the
> > timestamps on receiving datapath as well. Having the dedicated flags
> > for Rx/Tx timestamps allows applications not to perform explicit flags
> > reset on forwarding and not to promote received timestamps to the
> > transmitting datapath by default. The static PKT_RX_TIMESTAMP is
> > considered as candidate to become the dynamic flag.
>
> Is there a deprecation notice for 'PKT_RX_TIMESTAMP'? Is this decided?
No, we are going to discuss that, the Rx timestamp is a good candidate to be
moved out from the first mbuf cacheline to the dynamic field.
There are good chances we will deprecate fixed Rx timestamp flag/field,
that's why we'd prefer not to rely on ones anymore.
>
> >
> > When PMD sees the "rte_dynfield_timestamp" set on the packet being
> > sent it tries to synchronize the time of packet appearing on the wire
> > with the specified packet timestamp. If the specified one is in the
> > past it should be ignored, if one is in the distant future it should
> > be capped with some reasonable value (in range of seconds). These
> > specific cases ("too late" and "distant future") can be optionally
> > reported via device xstats to assist applications to detect the
> > time-related problems.
> >
> > There is no any packet reordering according timestamps is supposed,
> > neither within packet burst, nor between packets, it is an entirely
> > application responsibility to generate packets and its timestamps in
> > desired order. The timestamps can be put only in the first packet in
> > the burst providing the entire burst scheduling.
> >
> > PMD reports the ability to synchronize packet sending on timestamp
> > with new offload flag:
> >
> > This is palliative and is going to be replaced with new eth_dev API
> > about reporting/managing the supported dynamic flags and its related
> > features. This API would break ABI compatibility and can't be
> > introduced at the moment, so is postponed to 20.11.
>
> Good to hear that there will be a generic API to get supported dynamic flags.
> I was concerned about adding 'DEV_TX_OFFLOAD_SEND_ON_TIMESTAMP'
> flag, since not sure if there will be any other PMD that will want to use it.
> The trouble is it is hard to remove a public macro after it is introduced, in this
> release I think only single PMD (mlx) will support this feature, and in next
> release the plan is to remove the macro. In this case what do you think to
> not introduce the flag at all?
Currently no other way to report/control the port caps/cfg, but these xx_OFFLOAD_xx flags.
If the new side-channel API to report/control very specific PMD caps is introduced
this should be consistent with OFFLOAD flags, ie., if cap is disabled via the new API
it will be reflected in OFFLOAD flags either. The new API is questionable, the OFFLOAD
flags is not scarce resource, the offload field can be extended and we are still far
from exhausting the existing one. So, I replaced the "will" with "might" in commit
message. Not sure we should remove this flag, we can keep this consistent.
>
> >
> > For testing purposes it is proposed to update testpmd "txonly"
> > forwarding mode routine. With this update testpmd application
> > generates the packets and sets the dynamic timestamps according to
> > specified time pattern if it sees the "rte_dynfield_timestamp" is registered.
> >
> > The new testpmd command is proposed to configure sending pattern:
> >
> > set tx_times <burst_gap>,<intra_gap>
> >
> > <intra_gap> - the delay between the packets within the burst
> > specified in the device clock units. The number
> > of packets in the burst is defined by txburst parameter
> >
> > <burst_gap> - the delay between the bursts in the device clock units
> >
> > As the result the bursts of packet will be transmitted with specific
> > delays between the packets within the burst and specific delay between
> > the bursts. The rte_eth_get_clock is supposed to be engaged to get the
>
> 'rte_eth_read_clock()'?
Sure, my bad.
>
> > current device clock value and provide the reference for the timestamps.
> >
> > Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> > Acked-by: Olivier Matz <olivier.matz@6wind.com>
> >
> > ---
> > v1->v4:
> > - dedicated dynamic Tx timestamp flag instead of shared with Rx
> > v4->v5:
> > - elaborated commit message
> > - more words about device clocks added,
> > - note about dedicated Rx/Tx timestamp flags added
> > v5->v6:
> > - release notes are updated
> > ---
> > doc/guides/rel_notes/release_20_08.rst | 6 ++++++
> > lib/librte_ethdev/rte_ethdev.c | 1 +
> > lib/librte_ethdev/rte_ethdev.h | 4 ++++
> > lib/librte_mbuf/rte_mbuf_dyn.h | 31
> +++++++++++++++++++++++++++++++
> > 4 files changed, 42 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/release_20_08.rst
> > b/doc/guides/rel_notes/release_20_08.rst
> > index 988474c..5527bab 100644
> > --- a/doc/guides/rel_notes/release_20_08.rst
> > +++ b/doc/guides/rel_notes/release_20_08.rst
> > @@ -200,6 +200,12 @@ New Features
> > See the :doc:`../sample_app_ug/l2_forward_real_virtual` for more
> > details of this parameter usage.
> >
> > +* **Introduced send packet scheduling on the timestamps.**
> > +
> > + Added the new mbuf dynamic field and flag to provide timestamp on
> > + what packet transmitting can be synchronized. The device Tx offload
> > + flag is added to indicate the PMD supports send scheduling.
> > +
>
> This is a core library change, can go up in the section, please check the
> section comment for the ordering details.
>
Done.
> >
> > Removed Items
> > -------------
> > diff --git a/lib/librte_ethdev/rte_ethdev.c
> > b/lib/librte_ethdev/rte_ethdev.c index 7022bd7..c48ca2a 100644
> > --- a/lib/librte_ethdev/rte_ethdev.c
> > +++ b/lib/librte_ethdev/rte_ethdev.c
> > @@ -160,6 +160,7 @@ struct rte_eth_xstats_name_off {
> > RTE_TX_OFFLOAD_BIT2STR(UDP_TNL_TSO),
> > RTE_TX_OFFLOAD_BIT2STR(IP_TNL_TSO),
> > RTE_TX_OFFLOAD_BIT2STR(OUTER_UDP_CKSUM),
> > + RTE_TX_OFFLOAD_BIT2STR(SEND_ON_TIMESTAMP),
> > };
> >
> > #undef RTE_TX_OFFLOAD_BIT2STR
> > diff --git a/lib/librte_ethdev/rte_ethdev.h
> > b/lib/librte_ethdev/rte_ethdev.h index 631b146..97313a0 100644
> > --- a/lib/librte_ethdev/rte_ethdev.h
> > +++ b/lib/librte_ethdev/rte_ethdev.h
> > @@ -1178,6 +1178,10 @@ struct rte_eth_conf {
> > /** Device supports outer UDP checksum */ #define
> > DEV_TX_OFFLOAD_OUTER_UDP_CKSUM 0x00100000
> >
> > +/** Device supports send on timestamp */ #define
> > +DEV_TX_OFFLOAD_SEND_ON_TIMESTAMP 0x00200000
>
> Please cc the ethdev maintainers.
>
> As mentioned above my concern is if this is generic enough or are we adding
> a flag to a specific PMD? And since commit log says this is temporary
> solution for just this release, I repeat my question if we can remove the flag
> completely?
Will remove "temporary", replace with might. And now I do not think this flag
will be actually removed. As this feature development proved - it is on right place
and is easy to use by PMD and application in standardized (for offloads)way.
With best regards, Slava
^ permalink raw reply [relevance 0%]
* Re: [dpdk-dev] [PATCH] devtools: give some hints for ABI errors
2020-07-10 7:37 4% ` Kinsella, Ray
@ 2020-07-10 10:58 4% ` Neil Horman
2020-07-15 12:15 25% ` [dpdk-dev] [PATCH v2] " David Marchand
2 siblings, 0 replies; 200+ results
From: Neil Horman @ 2020-07-10 10:58 UTC (permalink / raw)
To: David Marchand; +Cc: dev, thomas, dodji, Ray Kinsella
On Wed, Jul 08, 2020 at 12:22:12PM +0200, David Marchand wrote:
> abidiff can provide some more information about the ABI difference it
> detected.
> In all cases, a discussion on the mailing must happen but we can give
> some hints to know if this is a problem with the script calling abidiff,
> a potential ABI breakage or an unambiguous ABI breakage.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> devtools/check-abi.sh | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/devtools/check-abi.sh b/devtools/check-abi.sh
> index e17fedbd9f..521e2cce7c 100755
> --- a/devtools/check-abi.sh
> +++ b/devtools/check-abi.sh
> @@ -50,10 +50,22 @@ for dump in $(find $refdir -name "*.dump"); do
> error=1
> continue
> fi
> - if ! abidiff $ABIDIFF_OPTIONS $dump $dump2; then
> + abidiff $ABIDIFF_OPTIONS $dump $dump2 || {
> + abiret=$?
> echo "Error: ABI issue reported for 'abidiff $ABIDIFF_OPTIONS $dump $dump2'"
> error=1
> - fi
> + echo
> + if [ $(($abiret & 3)) != 0 ]; then
> + echo "ABIDIFF_ERROR|ABIDIFF_USAGE_ERROR, please report this to dev@dpdk.org."
> + fi
> + if [ $(($abiret & 4)) != 0 ]; then
> + echo "ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged this as a potential issue)."
> + fi
> + if [ $(($abiret & 8)) != 0 ]; then
> + echo "ABIDIFF_ABI_INCOMPATIBLE_CHANGE, this change breaks the ABI."
> + fi
> + echo
> + }
> done
>
> [ -z "$error" ] || [ -n "$warnonly" ]
> --
> 2.23.0
>
>
this looks pretty reasonable to me, sure.
Acked-by: Neil Horman <nhorman@tuxdriver.com>
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH] devtools: give some hints for ABI errors
@ 2020-07-10 7:37 4% ` Kinsella, Ray
2020-07-10 10:58 4% ` Neil Horman
2020-07-15 12:15 25% ` [dpdk-dev] [PATCH v2] " David Marchand
2 siblings, 0 replies; 200+ results
From: Kinsella, Ray @ 2020-07-10 7:37 UTC (permalink / raw)
To: David Marchand, dev; +Cc: thomas, dodji, Neil Horman, Aaron Conole
On 08/07/2020 11:22, David Marchand wrote:
> abidiff can provide some more information about the ABI difference it
> detected.
> In all cases, a discussion on the mailing must happen but we can give
> some hints to know if this is a problem with the script calling abidiff,
> a potential ABI breakage or an unambiguous ABI breakage.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> devtools/check-abi.sh | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/devtools/check-abi.sh b/devtools/check-abi.sh
> index e17fedbd9f..521e2cce7c 100755
> --- a/devtools/check-abi.sh
> +++ b/devtools/check-abi.sh
> @@ -50,10 +50,22 @@ for dump in $(find $refdir -name "*.dump"); do
> error=1
> continue
> fi
> - if ! abidiff $ABIDIFF_OPTIONS $dump $dump2; then
> + abidiff $ABIDIFF_OPTIONS $dump $dump2 || {
> + abiret=$?
> echo "Error: ABI issue reported for 'abidiff $ABIDIFF_OPTIONS $dump $dump2'"
> error=1
> - fi
> + echo
> + if [ $(($abiret & 3)) != 0 ]; then
> + echo "ABIDIFF_ERROR|ABIDIFF_USAGE_ERROR, please report this to dev@dpdk.org."
> + fi
> + if [ $(($abiret & 4)) != 0 ]; then
> + echo "ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged this as a potential issue)."
> + fi
> + if [ $(($abiret & 8)) != 0 ]; then
> + echo "ABIDIFF_ABI_INCOMPATIBLE_CHANGE, this change breaks the ABI."
> + fi
> + echo
> + }
> done
>
> [ -z "$error" ] || [ -n "$warnonly" ]
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
^ permalink raw reply [relevance 4%]
* Re: [dpdk-dev] [PATCH v3] eal: use c11 atomic built-ins for interrupt status
@ 2020-07-10 7:18 3% ` Dodji Seketeli
0 siblings, 0 replies; 200+ results
From: Dodji Seketeli @ 2020-07-10 7:18 UTC (permalink / raw)
To: David Marchand
Cc: Phil Yang, Ray Kinsella, Harman Kalra, dev, stefan.puiu,
Aaron Conole, David Christensen, Honnappa Nagarahalli,
Ruifeng Wang (Arm Technology China),
nd, Neil Horman
David Marchand <david.marchand@redhat.com> writes:
[...]
>> --- a/devtools/libabigail.abignore
>> +++ b/devtools/libabigail.abignore
>> @@ -48,6 +48,10 @@
>> changed_enumerators = RTE_CRYPTO_AEAD_LIST_END
>> [suppress_variable]
>> name = rte_crypto_aead_algorithm_strings
>> +; Ignore updates of epoll event
>> +[suppress_type]
>> + type_kind = struct
>> + name = rte_epoll_event
>
> In general, ignoring all changes on a structure is risky.
> But the risk is acceptable as long as we remember this for the rest of
> the 20.08 release (and we will start from scratch for 20.11).
Right, I thought about this too when I saw that change. If that struct
is inherently *not* part of the logically exposed ABI, the risk is
really minimal as well. In that case, maybe a comment saying so in the
.abignore file could be useful for future reference.
[...]
Cheers,
--
Dodji
^ permalink raw reply [relevance 3%]
* Re: [dpdk-dev] [PATCH v10 1/3] lib/lpm: integrate RCU QSBR
2020-07-10 2:22 2% ` [dpdk-dev] [PATCH v10 1/3] lib/lpm: integrate RCU QSBR Ruifeng Wang
@ 2020-07-10 2:29 0% ` Ruifeng Wang
0 siblings, 0 replies; 200+ results
From: Ruifeng Wang @ 2020-07-10 2:29 UTC (permalink / raw)
To: Ruifeng Wang, Bruce Richardson, Vladimir Medvedkin,
John McNamara, Marko Kovacevic, Ray Kinsella, Neil Horman
Cc: dev, konstantin.ananyev, Honnappa Nagarahalli, nd, nd
The ci/checkpatch warning is a false positive.
> -----Original Message-----
> From: Ruifeng Wang <ruifeng.wang@arm.com>
> Sent: Friday, July 10, 2020 10:22 AM
> To: Bruce Richardson <bruce.richardson@intel.com>; Vladimir Medvedkin
> <vladimir.medvedkin@intel.com>; John McNamara
> <john.mcnamara@intel.com>; Marko Kovacevic
> <marko.kovacevic@intel.com>; Ray Kinsella <mdr@ashroe.eu>; Neil Horman
> <nhorman@tuxdriver.com>
> Cc: dev@dpdk.org; konstantin.ananyev@intel.com; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; nd <nd@arm.com>; Ruifeng Wang
> <Ruifeng.Wang@arm.com>
> Subject: [PATCH v10 1/3] lib/lpm: integrate RCU QSBR
>
> Currently, the tbl8 group is freed even though the readers might be using the
> tbl8 group entries. The freed tbl8 group can be reallocated quickly. This
> results in incorrect lookup results.
>
> RCU QSBR process is integrated for safe tbl8 group reclaim.
> Refer to RCU documentation to understand various aspects of integrating
> RCU library into other libraries.
>
> To avoid ABI breakage, a struct __rte_lpm is created for lpm library internal
> use. This struct wraps rte_lpm that has been exposed and also includes
> members that don't need to be exposed such as RCU related config.
>
> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
> Acked-by: Ray Kinsella <mdr@ashroe.eu>
> Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
> ---
> doc/guides/prog_guide/lpm_lib.rst | 32 ++++++
> lib/librte_lpm/Makefile | 2 +-
> lib/librte_lpm/meson.build | 1 +
> lib/librte_lpm/rte_lpm.c | 165 +++++++++++++++++++++++++----
> lib/librte_lpm/rte_lpm.h | 53 +++++++++
> lib/librte_lpm/rte_lpm_version.map | 6 ++
> 6 files changed, 237 insertions(+), 22 deletions(-)
>
^ permalink raw reply [relevance 0%]
* [dpdk-dev] [PATCH v10 1/3] lib/lpm: integrate RCU QSBR
@ 2020-07-10 2:22 2% ` Ruifeng Wang
2020-07-10 2:29 0% ` Ruifeng Wang
0 siblings, 1 reply; 200+ results
From: Ruifeng Wang @ 2020-07-10 2:22 UTC (permalink / raw)
To: Bruce Richardson, Vladimir Medvedkin, John McNamara,
Marko Kovacevic, Ray Kinsella, Neil Horman
Cc: dev, konstantin.ananyev, honnappa.nagarahalli, nd, Ruifeng Wang
Currently, the tbl8 group is freed even though the readers might be
using the tbl8 group entries. The freed tbl8 group can be reallocated
quickly. This results in incorrect lookup results.
RCU QSBR process is integrated for safe tbl8 group reclaim.
Refer to RCU documentation to understand various aspects of
integrating RCU library into other libraries.
To avoid ABI breakage, a struct __rte_lpm is created for lpm library
internal use. This struct wraps rte_lpm that has been exposed and
also includes members that don't need to be exposed such as RCU related
config.
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
doc/guides/prog_guide/lpm_lib.rst | 32 ++++++
lib/librte_lpm/Makefile | 2 +-
lib/librte_lpm/meson.build | 1 +
lib/librte_lpm/rte_lpm.c | 165 +++++++++++++++++++++++++----
lib/librte_lpm/rte_lpm.h | 53 +++++++++
lib/librte_lpm/rte_lpm_version.map | 6 ++
6 files changed, 237 insertions(+), 22 deletions(-)
diff --git a/doc/guides/prog_guide/lpm_lib.rst b/doc/guides/prog_guide/lpm_lib.rst
index 1609a57d0..03945904b 100644
--- a/doc/guides/prog_guide/lpm_lib.rst
+++ b/doc/guides/prog_guide/lpm_lib.rst
@@ -145,6 +145,38 @@ depending on whether we need to move to the next table or not.
Prefix expansion is one of the keys of this algorithm,
since it improves the speed dramatically by adding redundancy.
+Deletion
+~~~~~~~~
+
+When deleting a rule, a replacement rule is searched for. Replacement rule is an existing rule that has
+the longest prefix match with the rule to be deleted, but has shorter prefix.
+
+If a replacement rule is found, target tbl24 and tbl8 entries are updated to have the same depth and next hop
+value with the replacement rule.
+
+If no replacement rule can be found, target tbl24 and tbl8 entries will be cleared.
+
+Prefix expansion is performed if the rule's depth is not exactly 24 bits or 32 bits.
+
+After deleting a rule, a group of tbl8s that belongs to the same tbl24 entry are freed in following cases:
+
+* All tbl8s in the group are empty .
+
+* All tbl8s in the group have the same values and with depth no greater than 24.
+
+Free of tbl8s have different behaviors:
+
+* If RCU is not used, tbl8s are cleared and reclaimed immediately.
+
+* If RCU is used, tbl8s are reclaimed when readers are in quiescent state.
+
+When the LPM is not using RCU, tbl8 group can be freed immediately even though the readers might be using
+the tbl8 group entries. This might result in incorrect lookup results.
+
+RCU QSBR process is integrated for safe tbl8 group reclamation. Application has certain responsibilities
+while using this feature. Please refer to resource reclamation framework of :ref:`RCU library <RCU_Library>`
+for more details.
+
Lookup
~~~~~~
diff --git a/lib/librte_lpm/Makefile b/lib/librte_lpm/Makefile
index d682785b6..6f06c5c03 100644
--- a/lib/librte_lpm/Makefile
+++ b/lib/librte_lpm/Makefile
@@ -8,7 +8,7 @@ LIB = librte_lpm.a
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-LDLIBS += -lrte_eal -lrte_hash
+LDLIBS += -lrte_eal -lrte_hash -lrte_rcu
EXPORT_MAP := rte_lpm_version.map
diff --git a/lib/librte_lpm/meson.build b/lib/librte_lpm/meson.build
index 021ac6d8d..6cfc083c5 100644
--- a/lib/librte_lpm/meson.build
+++ b/lib/librte_lpm/meson.build
@@ -7,3 +7,4 @@ headers = files('rte_lpm.h', 'rte_lpm6.h')
# without worrying about which architecture we actually need
headers += files('rte_lpm_altivec.h', 'rte_lpm_neon.h', 'rte_lpm_sse.h')
deps += ['hash']
+deps += ['rcu']
diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c
index 38ab512a4..2d687c372 100644
--- a/lib/librte_lpm/rte_lpm.c
+++ b/lib/librte_lpm/rte_lpm.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2010-2014 Intel Corporation
+ * Copyright(c) 2020 Arm Limited
*/
#include <string.h>
@@ -39,6 +40,17 @@ enum valid_flag {
VALID
};
+/** @internal LPM structure. */
+struct __rte_lpm {
+ /* LPM metadata. */
+ struct rte_lpm lpm;
+
+ /* RCU config. */
+ struct rte_rcu_qsbr *v; /* RCU QSBR variable. */
+ enum rte_lpm_qsbr_mode rcu_mode;/* Blocking, defer queue. */
+ struct rte_rcu_qsbr_dq *dq; /* RCU QSBR defer queue. */
+};
+
/* Macro to enable/disable run-time checks. */
#if defined(RTE_LIBRTE_LPM_DEBUG)
#include <rte_debug.h>
@@ -122,6 +134,7 @@ rte_lpm_create(const char *name, int socket_id,
const struct rte_lpm_config *config)
{
char mem_name[RTE_LPM_NAMESIZE];
+ struct __rte_lpm *internal_lpm;
struct rte_lpm *lpm = NULL;
struct rte_tailq_entry *te;
uint32_t mem_size, rules_size, tbl8s_size;
@@ -140,12 +153,6 @@ rte_lpm_create(const char *name, int socket_id,
snprintf(mem_name, sizeof(mem_name), "LPM_%s", name);
- /* Determine the amount of memory to allocate. */
- mem_size = sizeof(*lpm);
- rules_size = sizeof(struct rte_lpm_rule) * config->max_rules;
- tbl8s_size = (sizeof(struct rte_lpm_tbl_entry) *
- RTE_LPM_TBL8_GROUP_NUM_ENTRIES * config->number_tbl8s);
-
rte_mcfg_tailq_write_lock();
/* guarantee there's no existing */
@@ -161,6 +168,12 @@ rte_lpm_create(const char *name, int socket_id,
goto exit;
}
+ /* Determine the amount of memory to allocate. */
+ mem_size = sizeof(*internal_lpm);
+ rules_size = sizeof(struct rte_lpm_rule) * config->max_rules;
+ tbl8s_size = (sizeof(struct rte_lpm_tbl_entry) *
+ RTE_LPM_TBL8_GROUP_NUM_ENTRIES * config->number_tbl8s);
+
/* allocate tailq entry */
te = rte_zmalloc("LPM_TAILQ_ENTRY", sizeof(*te), 0);
if (te == NULL) {
@@ -170,21 +183,23 @@ rte_lpm_create(const char *name, int socket_id,
}
/* Allocate memory to store the LPM data structures. */
- lpm = rte_zmalloc_socket(mem_name, mem_size,
+ internal_lpm = rte_zmalloc_socket(mem_name, mem_size,
RTE_CACHE_LINE_SIZE, socket_id);
- if (lpm == NULL) {
+ if (internal_lpm == NULL) {
RTE_LOG(ERR, LPM, "LPM memory allocation failed\n");
rte_free(te);
rte_errno = ENOMEM;
goto exit;
}
+ lpm = &internal_lpm->lpm;
lpm->rules_tbl = rte_zmalloc_socket(NULL,
(size_t)rules_size, RTE_CACHE_LINE_SIZE, socket_id);
if (lpm->rules_tbl == NULL) {
RTE_LOG(ERR, LPM, "LPM rules_tbl memory allocation failed\n");
- rte_free(lpm);
+ rte_free(internal_lpm);
+ internal_lpm = NULL;
lpm = NULL;
rte_free(te);
rte_errno = ENOMEM;
@@ -197,7 +212,8 @@ rte_lpm_create(const char *name, int socket_id,
if (lpm->tbl8 == NULL) {
RTE_LOG(ERR, LPM, "LPM tbl8 memory allocation failed\n");
rte_free(lpm->rules_tbl);
- rte_free(lpm);
+ rte_free(internal_lpm);
+ internal_lpm = NULL;
lpm = NULL;
rte_free(te);
rte_errno = ENOMEM;
@@ -225,6 +241,7 @@ rte_lpm_create(const char *name, int socket_id,
void
rte_lpm_free(struct rte_lpm *lpm)
{
+ struct __rte_lpm *internal_lpm;
struct rte_lpm_list *lpm_list;
struct rte_tailq_entry *te;
@@ -246,12 +263,84 @@ rte_lpm_free(struct rte_lpm *lpm)
rte_mcfg_tailq_write_unlock();
+ internal_lpm = container_of(lpm, struct __rte_lpm, lpm);
+ if (internal_lpm->dq)
+ rte_rcu_qsbr_dq_delete(internal_lpm->dq);
rte_free(lpm->tbl8);
rte_free(lpm->rules_tbl);
rte_free(lpm);
rte_free(te);
}
+static void
+__lpm_rcu_qsbr_free_resource(void *p, void *data, unsigned int n)
+{
+ struct rte_lpm_tbl_entry zero_tbl8_entry = {0};
+ uint32_t tbl8_group_index = *(uint32_t *)data;
+ struct rte_lpm_tbl_entry *tbl8 = ((struct rte_lpm *)p)->tbl8;
+
+ RTE_SET_USED(n);
+ /* Set tbl8 group invalid */
+ __atomic_store(&tbl8[tbl8_group_index], &zero_tbl8_entry,
+ __ATOMIC_RELAXED);
+}
+
+/* Associate QSBR variable with an LPM object.
+ */
+int
+rte_lpm_rcu_qsbr_add(struct rte_lpm *lpm, struct rte_lpm_rcu_config *cfg,
+ struct rte_rcu_qsbr_dq **dq)
+{
+ struct __rte_lpm *internal_lpm;
+ char rcu_dq_name[RTE_RCU_QSBR_DQ_NAMESIZE];
+ struct rte_rcu_qsbr_dq_parameters params = {0};
+
+ if (lpm == NULL || cfg == NULL) {
+ rte_errno = EINVAL;
+ return 1;
+ }
+
+ internal_lpm = container_of(lpm, struct __rte_lpm, lpm);
+ if (internal_lpm->v != NULL) {
+ rte_errno = EEXIST;
+ return 1;
+ }
+
+ if (cfg->mode == RTE_LPM_QSBR_MODE_SYNC) {
+ /* No other things to do. */
+ } else if (cfg->mode == RTE_LPM_QSBR_MODE_DQ) {
+ /* Init QSBR defer queue. */
+ snprintf(rcu_dq_name, sizeof(rcu_dq_name),
+ "LPM_RCU_%s", lpm->name);
+ params.name = rcu_dq_name;
+ params.size = cfg->dq_size;
+ if (params.size == 0)
+ params.size = lpm->number_tbl8s;
+ params.trigger_reclaim_limit = cfg->reclaim_thd;
+ params.max_reclaim_size = cfg->reclaim_max;
+ if (params.max_reclaim_size == 0)
+ params.max_reclaim_size = RTE_LPM_RCU_DQ_RECLAIM_MAX;
+ params.esize = sizeof(uint32_t); /* tbl8 group index */
+ params.free_fn = __lpm_rcu_qsbr_free_resource;
+ params.p = lpm;
+ params.v = cfg->v;
+ internal_lpm->dq = rte_rcu_qsbr_dq_create(¶ms);
+ if (internal_lpm->dq == NULL) {
+ RTE_LOG(ERR, LPM, "LPM defer queue creation failed\n");
+ return 1;
+ }
+ if (dq)
+ *dq = internal_lpm->dq;
+ } else {
+ rte_errno = EINVAL;
+ return 1;
+ }
+ internal_lpm->rcu_mode = cfg->mode;
+ internal_lpm->v = cfg->v;
+
+ return 0;
+}
+
/*
* Adds a rule to the rule table.
*
@@ -394,14 +483,15 @@ rule_find(struct rte_lpm *lpm, uint32_t ip_masked, uint8_t depth)
* Find, clean and allocate a tbl8.
*/
static int32_t
-tbl8_alloc(struct rte_lpm_tbl_entry *tbl8, uint32_t number_tbl8s)
+_tbl8_alloc(struct rte_lpm *lpm)
{
uint32_t group_idx; /* tbl8 group index. */
struct rte_lpm_tbl_entry *tbl8_entry;
/* Scan through tbl8 to find a free (i.e. INVALID) tbl8 group. */
- for (group_idx = 0; group_idx < number_tbl8s; group_idx++) {
- tbl8_entry = &tbl8[group_idx * RTE_LPM_TBL8_GROUP_NUM_ENTRIES];
+ for (group_idx = 0; group_idx < lpm->number_tbl8s; group_idx++) {
+ tbl8_entry = &lpm->tbl8[group_idx *
+ RTE_LPM_TBL8_GROUP_NUM_ENTRIES];
/* If a free tbl8 group is found clean it and set as VALID. */
if (!tbl8_entry->valid_group) {
struct rte_lpm_tbl_entry new_tbl8_entry = {
@@ -427,14 +517,47 @@ tbl8_alloc(struct rte_lpm_tbl_entry *tbl8, uint32_t number_tbl8s)
return -ENOSPC;
}
+static int32_t
+tbl8_alloc(struct rte_lpm *lpm)
+{
+ struct __rte_lpm *internal_lpm = container_of(lpm,
+ struct __rte_lpm, lpm);
+ int32_t group_idx; /* tbl8 group index. */
+
+ group_idx = _tbl8_alloc(lpm);
+ if (group_idx == -ENOSPC && internal_lpm->dq != NULL) {
+ /* If there are no tbl8 groups try to reclaim one. */
+ if (rte_rcu_qsbr_dq_reclaim(internal_lpm->dq, 1,
+ NULL, NULL, NULL) == 0)
+ group_idx = _tbl8_alloc(lpm);
+ }
+
+ return group_idx;
+}
+
static void
-tbl8_free(struct rte_lpm_tbl_entry *tbl8, uint32_t tbl8_group_start)
+tbl8_free(struct rte_lpm *lpm, uint32_t tbl8_group_start)
{
- /* Set tbl8 group invalid*/
+ struct __rte_lpm *internal_lpm = container_of(lpm,
+ struct __rte_lpm, lpm);
struct rte_lpm_tbl_entry zero_tbl8_entry = {0};
- __atomic_store(&tbl8[tbl8_group_start], &zero_tbl8_entry,
- __ATOMIC_RELAXED);
+ if (internal_lpm->v == NULL) {
+ /* Set tbl8 group invalid*/
+ __atomic_store(&lpm->tbl8[tbl8_group_start], &zero_tbl8_entry,
+ __ATOMIC_RELAXED);
+ } else if (internal_lpm->rcu_mode == RTE_LPM_QSBR_MODE_SYNC) {
+ /* Wait for quiescent state change. */
+ rte_rcu_qsbr_synchronize(internal_lpm->v,
+ RTE_QSBR_THRID_INVALID);
+ /* Set tbl8 group invalid*/
+ __atomic_store(&lpm->tbl8[tbl8_group_start], &zero_tbl8_entry,
+ __ATOMIC_RELAXED);
+ } else if (internal_lpm->rcu_mode == RTE_LPM_QSBR_MODE_DQ) {
+ /* Push into QSBR defer queue. */
+ rte_rcu_qsbr_dq_enqueue(internal_lpm->dq,
+ (void *)&tbl8_group_start);
+ }
}
static __rte_noinline int32_t
@@ -523,7 +646,7 @@ add_depth_big(struct rte_lpm *lpm, uint32_t ip_masked, uint8_t depth,
if (!lpm->tbl24[tbl24_index].valid) {
/* Search for a free tbl8 group. */
- tbl8_group_index = tbl8_alloc(lpm->tbl8, lpm->number_tbl8s);
+ tbl8_group_index = tbl8_alloc(lpm);
/* Check tbl8 allocation was successful. */
if (tbl8_group_index < 0) {
@@ -569,7 +692,7 @@ add_depth_big(struct rte_lpm *lpm, uint32_t ip_masked, uint8_t depth,
} /* If valid entry but not extended calculate the index into Table8. */
else if (lpm->tbl24[tbl24_index].valid_group == 0) {
/* Search for free tbl8 group. */
- tbl8_group_index = tbl8_alloc(lpm->tbl8, lpm->number_tbl8s);
+ tbl8_group_index = tbl8_alloc(lpm);
if (tbl8_group_index < 0) {
return tbl8_group_index;
@@ -977,7 +1100,7 @@ delete_depth_big(struct rte_lpm *lpm, uint32_t ip_masked,
*/
lpm->tbl24[tbl24_index].valid = 0;
__atomic_thread_fence(__ATOMIC_RELEASE);
- tbl8_free(lpm->tbl8, tbl8_group_start);
+ tbl8_free(lpm, tbl8_group_start);
} else if (tbl8_recycle_index > -1) {
/* Update tbl24 entry. */
struct rte_lpm_tbl_entry new_tbl24_entry = {
@@ -993,7 +1116,7 @@ delete_depth_big(struct rte_lpm *lpm, uint32_t ip_masked,
__atomic_store(&lpm->tbl24[tbl24_index], &new_tbl24_entry,
__ATOMIC_RELAXED);
__atomic_thread_fence(__ATOMIC_RELEASE);
- tbl8_free(lpm->tbl8, tbl8_group_start);
+ tbl8_free(lpm, tbl8_group_start);
}
#undef group_idx
return 0;
diff --git a/lib/librte_lpm/rte_lpm.h b/lib/librte_lpm/rte_lpm.h
index b9d49ac87..a9568fcdd 100644
--- a/lib/librte_lpm/rte_lpm.h
+++ b/lib/librte_lpm/rte_lpm.h
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2010-2014 Intel Corporation
+ * Copyright(c) 2020 Arm Limited
*/
#ifndef _RTE_LPM_H_
@@ -20,6 +21,7 @@
#include <rte_memory.h>
#include <rte_common.h>
#include <rte_vect.h>
+#include <rte_rcu_qsbr.h>
#ifdef __cplusplus
extern "C" {
@@ -62,6 +64,17 @@ extern "C" {
/** Bitmask used to indicate successful lookup */
#define RTE_LPM_LOOKUP_SUCCESS 0x01000000
+/** @internal Default RCU defer queue entries to reclaim in one go. */
+#define RTE_LPM_RCU_DQ_RECLAIM_MAX 16
+
+/** RCU reclamation modes */
+enum rte_lpm_qsbr_mode {
+ /** Create defer queue for reclaim. */
+ RTE_LPM_QSBR_MODE_DQ = 0,
+ /** Use blocking mode reclaim. No defer queue created. */
+ RTE_LPM_QSBR_MODE_SYNC
+};
+
#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
/** @internal Tbl24 entry structure. */
__extension__
@@ -132,6 +145,22 @@ struct rte_lpm {
struct rte_lpm_rule *rules_tbl; /**< LPM rules. */
};
+/** LPM RCU QSBR configuration structure. */
+struct rte_lpm_rcu_config {
+ struct rte_rcu_qsbr *v; /* RCU QSBR variable. */
+ /* Mode of RCU QSBR. RTE_LPM_QSBR_MODE_xxx
+ * '0' for default: create defer queue for reclaim.
+ */
+ enum rte_lpm_qsbr_mode mode;
+ uint32_t dq_size; /* RCU defer queue size.
+ * default: lpm->number_tbl8s.
+ */
+ uint32_t reclaim_thd; /* Threshold to trigger auto reclaim. */
+ uint32_t reclaim_max; /* Max entries to reclaim in one go.
+ * default: RTE_LPM_RCU_DQ_RECLAIM_MAX.
+ */
+};
+
/**
* Create an LPM object.
*
@@ -179,6 +208,30 @@ rte_lpm_find_existing(const char *name);
void
rte_lpm_free(struct rte_lpm *lpm);
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice
+ *
+ * Associate RCU QSBR variable with an LPM object.
+ *
+ * @param lpm
+ * the lpm object to add RCU QSBR
+ * @param cfg
+ * RCU QSBR configuration
+ * @param dq
+ * handler of created RCU QSBR defer queue
+ * @return
+ * On success - 0
+ * On error - 1 with error code set in rte_errno.
+ * Possible rte_errno codes are:
+ * - EINVAL - invalid pointer
+ * - EEXIST - already added QSBR
+ * - ENOMEM - memory allocation failure
+ */
+__rte_experimental
+int rte_lpm_rcu_qsbr_add(struct rte_lpm *lpm, struct rte_lpm_rcu_config *cfg,
+ struct rte_rcu_qsbr_dq **dq);
+
/**
* Add a rule to the LPM table.
*
diff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map
index 500f58b80..bfccd7eac 100644
--- a/lib/librte_lpm/rte_lpm_version.map
+++ b/lib/librte_lpm/rte_lpm_version.map
@@ -21,3 +21,9 @@ DPDK_20.0 {
local: *;
};
+
+EXPERIMENTAL {
+ global:
+
+ rte_lpm_rcu_qsbr_add;
+};
--
2.17.1
^ permalink raw reply [relevance 2%]
Results 5001-5200 of ~18000 next (older) | prev (newer) | reverse | sort options + mbox downloads above
-- links below jump to the message on this page --
2019-09-06 9:45 [dpdk-dev] [PATCH v2 0/6] RCU integration with LPM library Ruifeng Wang
2020-07-10 2:22 ` [dpdk-dev] [PATCH v10 0/3] " Ruifeng Wang
2020-07-10 2:22 2% ` [dpdk-dev] [PATCH v10 1/3] lib/lpm: integrate RCU QSBR Ruifeng Wang
2020-07-10 2:29 0% ` Ruifeng Wang
2020-02-20 13:18 [dpdk-dev] [PATCH] lib/cmdline_rdline: increase command line buf size Wisam Jaddo
2020-02-20 14:53 ` [dpdk-dev] [PATCH v3] cmdline: increase maximum line length Wisam Jaddo
2020-02-22 15:28 ` David Marchand
2020-07-31 12:55 0% ` Olivier Matz
2020-07-31 13:00 0% ` David Marchand
2020-07-31 15:46 0% ` Stephen Hemminger
2020-05-21 13:20 [dpdk-dev] [PATCH 20.08] mempool/ring: add support for new ring sync modes Konstantin Ananyev
2020-06-29 16:10 ` [dpdk-dev] [PATCH v2] " Konstantin Ananyev
2020-07-09 16:18 ` Olivier Matz
2020-07-09 17:55 ` Ananyev, Konstantin
2020-07-10 12:52 ` Olivier Matz
2020-07-10 15:15 ` Ananyev, Konstantin
2020-07-10 15:20 ` Ananyev, Konstantin
2020-07-13 13:30 ` Olivier Matz
2020-07-13 14:46 ` Ananyev, Konstantin
2020-07-13 15:00 3% ` Olivier Matz
2020-07-13 16:29 0% ` Ananyev, Konstantin
2020-05-22 13:23 [dpdk-dev] [PATCH 20.08 0/9] adding support for python 3 only Louise Kilheeney
2020-08-04 14:07 ` [dpdk-dev] [PATCH v4 " Louise Kilheeney
2020-08-04 14:07 4% ` [dpdk-dev] [PATCH v4 7/9] devtools: support python3 only Louise Kilheeney
2020-08-05 8:44 0% ` Kinsella, Ray
2020-05-27 17:02 [dpdk-dev] [RFC 0/6] Power-optimized RX for Ethernet devices Anatoly Burakov
2020-08-11 10:27 ` [dpdk-dev] [RFC v2 1/5] eal: add power management intrinsics Liang Ma
2020-08-13 18:04 3% ` Liang, Ma
2020-05-31 14:43 [dpdk-dev] [RFC] ethdev: add fragment attribute to IPv6 item Dekel Peled
2020-08-03 17:01 3% ` [dpdk-dev] [RFC v2] ethdev: add extensions attributes " Dekel Peled
2020-08-03 17:11 3% ` [dpdk-dev] [RFC v3] " Dekel Peled
2020-06-04 21:02 [dpdk-dev] [RFC] doc: change to diverse and inclusive language Stephen Hemminger
2020-07-30 0:57 ` [dpdk-dev] [PATCH v2 20.08 0/6] inclusive language fixes and deprecation notices Stephen Hemminger
2020-07-30 0:57 ` [dpdk-dev] [PATCH v2 20.08 1/6] doc: announce deprecation of master lcore Stephen Hemminger
2020-07-30 8:42 3% ` Bruce Richardson
2020-08-06 16:49 ` Thomas Monjalon
2020-08-06 17:00 3% ` Stephen Hemminger
2020-08-06 17:14 0% ` Thomas Monjalon
2020-07-30 0:58 ` [dpdk-dev] [PATCH v2 20.08 4/6] doc: announce deprecation blacklist/whitelist Stephen Hemminger
2020-07-30 8:45 3% ` Bruce Richardson
2020-07-30 15:10 0% ` Stephen Hemminger
2020-06-07 17:01 [dpdk-dev] [PATCH 0/9] Rename blacklist/whitelist to blocklist/allowlist Stephen Hemminger
2020-07-15 23:02 ` [dpdk-dev] [PATCH v5 0/9] rename blacklist/whitelist to exclude/include Stephen Hemminger
2020-07-15 23:02 1% ` [dpdk-dev] [PATCH v5 9/9] doc: replace references to blacklist/whitelist Stephen Hemminger
2020-06-10 6:38 [dpdk-dev] [RFC] mbuf: accurate packet Tx scheduling Viacheslav Ovsiienko
2020-07-09 12:36 ` [dpdk-dev] [PATCH v6 1/2] mbuf: introduce " Viacheslav Ovsiienko
2020-07-09 23:47 ` Ferruh Yigit
2020-07-10 12:32 0% ` Slava Ovsiienko
2020-07-10 12:39 2% ` [dpdk-dev] [PATCH v7 " Viacheslav Ovsiienko
2020-07-10 15:46 0% ` Slava Ovsiienko
2020-07-10 22:07 0% ` Ferruh Yigit
2020-06-10 17:17 [dpdk-dev] [RFC PATCH 1/6] eal: introduce macros for getting value for bit Parav Pandit
2020-07-24 14:38 ` [dpdk-dev] [PATCH v10 00/10] Improve mlx5 PMD driver framework for multiple classes Parav Pandit
2020-07-24 14:38 ` [dpdk-dev] [PATCH v10 01/10] eal: introduce macro for bit definition Parav Pandit
2020-07-24 18:31 ` Honnappa Nagarahalli
2020-07-27 8:21 ` Morten Brørup
2020-07-28 2:18 ` Honnappa Nagarahalli
2020-07-28 8:24 3% ` Morten Brørup
2020-07-28 9:29 0% ` Gaëtan Rivet
2020-07-28 11:11 0% ` Morten Brørup
2020-07-28 15:39 0% ` Honnappa Nagarahalli
2020-06-13 0:00 [dpdk-dev] [PATCH v3 00/10] rename blacklist/whitelist to block/allow Stephen Hemminger
2020-07-10 15:06 3% ` David Marchand
2020-07-14 4:43 0% ` Stephen Hemminger
2020-07-14 5:39 ` [dpdk-dev] [PATCH v4 00/11] rename blacklist/whitelist to exclude/include Stephen Hemminger
2020-07-14 5:39 4% ` [dpdk-dev] [PATCH v4 09/11] doc: add note about blacklist/whitelist changes Stephen Hemminger
2020-06-23 13:49 [dpdk-dev] [PATCH] doc: mark internal symbols in ethdev Ferruh Yigit
2020-06-26 8:49 ` Kinsella, Ray
2020-07-10 14:20 0% ` Thomas Monjalon
2020-07-10 16:17 0% ` Ferruh Yigit
2020-07-02 22:13 [dpdk-dev] [PATCH] doc: announce changes to eventdev public data structures McDaniel, Timothy
2020-07-30 16:33 ` McDaniel, Timothy
2020-07-30 18:48 3% ` Jerin Jacob
2020-07-31 18:51 5% ` McDaniel, Timothy
2020-07-31 19:03 0% ` Jerin Jacob
2020-07-31 19:31 5% ` McDaniel, Timothy
2020-08-03 6:09 4% ` Jerin Jacob
2020-08-03 17:55 13% ` [dpdk-dev] [PATCH] doc: eventdev ABI change to support DLB PMD McDaniel, Timothy
2020-08-04 7:38 4% ` Jerin Jacob
2020-08-04 15:44 4% ` Hemant Agrawal
2020-08-05 23:39 4% ` Thomas Monjalon
2020-08-07 16:21 4% ` McDaniel, Timothy
2020-08-04 13:46 4% ` Van Haaren, Harry
2020-07-03 17:15 [dpdk-dev] [PATCH] doc: add sample for ABI checks in contribution guide Ferruh Yigit
2020-08-06 23:43 4% ` Thomas Monjalon
2020-08-07 12:00 4% ` Kinsella, Ray
2020-08-07 12:58 4% ` Ferruh Yigit
2020-08-07 12:58 4% ` Kinsella, Ray
2020-08-07 12:59 4% ` Kinsella, Ray
2020-07-07 9:03 [dpdk-dev] [PATCH] lib/librte_timer:fix corruption with reset Sarosh Arif
2020-07-10 6:59 ` [dpdk-dev] [PATCH v3] " Sarosh Arif
2020-07-10 15:19 3% ` Stephen Hemminger
2020-07-28 19:04 3% ` Carrillo, Erik G
2020-07-07 15:36 [dpdk-dev] [PATCH v4 0/2] rte_flow: introduce eCPRI item for rte_flow Bing Zhao
2020-07-10 8:45 ` [dpdk-dev] [PATCH v5 " Bing Zhao
2020-07-10 8:45 ` [dpdk-dev] [PATCH v5 1/2] rte_flow: add eCPRI key fields to flow API Bing Zhao
2020-07-10 14:31 ` Olivier Matz
2020-07-11 4:25 ` Bing Zhao
2020-07-12 13:17 3% ` Olivier Matz
2020-07-12 14:28 0% ` Bing Zhao
2020-07-12 14:43 0% ` Olivier Matz
2020-07-08 10:22 [dpdk-dev] [PATCH] devtools: give some hints for ABI errors David Marchand
2020-07-10 7:37 4% ` Kinsella, Ray
2020-07-10 10:58 4% ` Neil Horman
2020-07-15 12:15 25% ` [dpdk-dev] [PATCH v2] " David Marchand
2020-07-15 12:48 4% ` Aaron Conole
2020-07-16 7:29 4% ` David Marchand
2020-07-09 6:46 [dpdk-dev] [PATCH v2] eal: use c11 atomic built-ins for interrupt status Phil Yang
2020-07-09 8:34 ` [dpdk-dev] [PATCH v3] " Phil Yang
2020-07-09 10:30 ` David Marchand
2020-07-10 7:18 3% ` Dodji Seketeli
2020-07-09 10:10 [dpdk-dev] [PATCH v3] mbuf: use C11 atomic built-ins for refcnt operations Phil Yang
2020-07-09 15:58 ` [dpdk-dev] [PATCH v4 1/2] " Phil Yang
2020-07-15 12:29 0% ` David Marchand
2020-07-15 12:49 0% ` Aaron Conole
2020-07-15 16:29 0% ` Phil Yang
2020-07-16 4:16 0% ` Phil Yang
2020-07-16 11:30 4% ` David Marchand
2020-07-17 4:36 4% ` [dpdk-dev] [PATCH v5 1/2] mbuf: use C11 atomic builtins " Phil Yang
2020-07-09 15:20 [dpdk-dev] [PATCH 20.11 0/5] Enhance rawdev APIs Bruce Richardson
2020-07-09 15:20 ` [dpdk-dev] [PATCH 20.11 1/5] rawdev: add private data length parameter to info fn Bruce Richardson
2020-07-12 14:13 0% ` Xu, Rosen
2020-07-09 15:20 ` [dpdk-dev] [PATCH 20.11 3/5] rawdev: add private data length parameter to config fn Bruce Richardson
2020-07-12 14:13 0% ` Xu, Rosen
2020-08-13 11:27 4% ` [dpdk-dev] [PATCH v2 0/7] Enhance rawdev APIs Bruce Richardson
2020-08-13 11:27 3% ` [dpdk-dev] [PATCH v2 1/7] rawdev: add private data length parameter to info fn Bruce Richardson
2020-08-17 5:26 0% ` Xu, Rosen
2020-08-13 11:28 3% ` [dpdk-dev] [PATCH v2 3/7] rawdev: add private data length parameter to config fn Bruce Richardson
2020-08-13 11:28 3% ` [dpdk-dev] [PATCH v2 4/7] rawdev: add private data length parameter to queue fns Bruce Richardson
2020-08-13 11:28 4% ` [dpdk-dev] [PATCH v2 7/7] doc: remove rawdev deprecation notice Bruce Richardson
2020-07-13 9:57 3% [dpdk-dev] The mbuf API needs some cleaning up Morten Brørup
2020-07-31 15:24 0% ` Olivier Matz
2020-08-03 8:42 0% ` Morten Brørup
2020-07-13 12:31 [dpdk-dev] [PATCH 0/2] Deprecation notice updates Bruce Richardson
2020-07-13 12:31 5% ` [dpdk-dev] [PATCH 2/2] doc: add deprecation notice for change of rawdev APIs Bruce Richardson
2020-07-13 12:48 5% ` Hemant Agrawal
2020-07-20 11:35 0% ` Ananyev, Konstantin
2020-07-23 1:55 5% ` Xu, Rosen
2020-07-23 7:38 5% ` Hemant Agrawal
2020-07-14 11:32 [dpdk-dev] [PATCH] net/dpaa: announce extended definition of port_id in API 'rte_pmd_dpaa_set_tx_loopback' Sachin Saxena (OSS)
2020-07-23 9:23 ` Yang, Zhiyong
2020-07-23 14:34 4% ` Ferruh Yigit
2020-07-15 18:27 3% [dpdk-dev] [RFC PATCH 0/2] Enable dyynamic configuration of subport bandwidth profile Savinay Dharmappa
2020-07-16 8:14 0% ` Singh, Jasvinder
2020-07-16 5:19 [dpdk-dev] [PATCH] lpm: fix unchecked return value Ruifeng Wang
2020-07-16 15:49 ` [dpdk-dev] [PATCH v2] " Ruifeng Wang
2020-07-17 17:12 ` Medvedkin, Vladimir
2020-07-18 9:22 4% ` Ruifeng Wang
2020-07-21 16:23 0% ` Medvedkin, Vladimir
2020-07-21 17:10 3% ` Bruce Richardson
2020-07-21 17:33 0% ` David Marchand
2020-07-22 1:01 3% [dpdk-dev] [dpdk-announce] release candidate 20.08-rc2 Thomas Monjalon
2020-07-27 9:41 [dpdk-dev] [PATCH] doc: scheduler API deprecation notice Adam Dybkowski
2020-08-10 10:19 ` Thomas Monjalon
2020-08-10 11:49 ` Trahe, Fiona
2020-08-10 12:50 ` Thomas Monjalon
2020-08-12 9:52 3% ` Bruce Richardson
2020-08-12 10:22 0% ` Thomas Monjalon
2020-08-12 10:49 0% ` [dpdk-dev] [dpdk-techboard] " Maxime Coquelin
2020-08-12 10:57 0% ` Hemant Agrawal
2020-08-12 12:23 0% ` Thomas Monjalon
2020-08-12 15:25 0% ` Stephen Hemminger
2020-07-29 14:46 [dpdk-dev] [PATCH] [RFC] doc: announce removal of crypto list end enumerators Arek Kusztal
2020-07-29 15:18 3% ` Bruce Richardson
2020-07-30 10:37 3% [dpdk-dev] DPDK Release Status Meeting 30/07/2020 Ferruh Yigit
[not found] <1593232671-5690-0-git-send-email-timothy.mcdaniel@intel.com>
2020-07-30 19:49 ` [dpdk-dev] [PATCH 00/27] Add Intel DLM PMD to 20.11 McDaniel, Timothy
2020-07-30 19:49 1% ` [dpdk-dev] [PATCH 03/27] event/dlb: add shared code version 10.7.9 McDaniel, Timothy
2020-07-30 19:49 1% ` [dpdk-dev] [PATCH 08/27] event/dlb: add definitions shared with LKM or shared code McDaniel, Timothy
2020-08-02 10:51 [dpdk-dev] [PATCH] doc: announce changes to eventdev public structures pbhagavatula
2020-08-03 7:29 ` [dpdk-dev] [PATCH v2] doc: add reserve fields " pbhagavatula
2020-08-04 10:41 4% ` Bruce Richardson
2020-08-04 11:37 0% ` Jerin Jacob
2020-08-04 14:24 4% ` Bruce Richardson
2020-08-04 16:03 0% ` Jerin Jacob
2020-08-04 16:24 0% ` Bruce Richardson
2020-08-04 17:18 0% ` Jerin Jacob
2020-08-05 9:18 4% ` Kinsella, Ray
2020-08-05 10:07 0% ` Bruce Richardson
2020-08-04 16:20 0% ` Stephen Hemminger
2020-08-05 8:46 0% ` Kinsella, Ray
2020-08-05 9:10 0% ` Jerin Jacob
2020-08-06 0:59 0% ` Stephen Hemminger
2020-08-06 16:57 0% ` Jerin Jacob
2020-08-03 19:51 9% [dpdk-dev] [PATCH] doc: announce change in IPv6 item struct Dekel Peled
2020-08-04 13:17 0% ` Dekel Peled
2020-08-06 17:09 0% ` Ori Kam
2020-08-06 12:30 0% ` Thomas Monjalon
2020-08-06 15:48 0% ` Ajit Khaparde
2020-08-06 22:22 0% ` Thomas Monjalon
2020-08-06 15:10 0% ` Andrew Rybchenko
2020-08-04 14:07 4% [dpdk-dev] [PATCH] doc: announce internal hotplug structure removal David Marchand
2020-08-04 14:29 0% ` Bruce Richardson
2020-08-06 13:59 0% ` Kinsella, Ray
2020-08-04 16:01 8% [dpdk-dev] [PATCH] doc: announce change in ETH item struct Dekel Peled
2020-08-05 3:39 0% ` Ajit Khaparde
2020-08-05 10:49 0% ` Andrew Rybchenko
2020-08-05 13:31 0% ` Dekel Peled
2020-08-05 13:44 3% ` Andrew Rybchenko
2020-08-05 14:25 0% ` Dekel Peled
2020-08-06 10:45 8% ` [dpdk-dev] [PATCH v2] doc: announce change in ETH and VLAN item structs Dekel Peled
2020-08-06 12:25 0% ` Thomas Monjalon
2020-08-06 15:14 0% ` Andrew Rybchenko
2020-08-06 15:50 0% ` Ajit Khaparde
2020-08-06 21:57 0% ` Thomas Monjalon
2020-08-06 17:07 0% ` Ori Kam
2020-08-05 9:24 8% [dpdk-dev] [PATCH] doc: add new field to rxq info struct Chengchang Tang
2020-08-05 11:25 0% ` Andrew Rybchenko
2020-08-06 4:00 8% ` [dpdk-dev] [PATCH v2] " Chengchang Tang
2020-08-06 4:00 5% ` Chengchang Tang
2020-08-06 15:25 0% ` Ferruh Yigit
2020-08-07 3:51 0% ` Chengchang Tang
2020-08-07 7:41 0% ` Thomas Monjalon
2020-08-06 12:50 0% ` Slava Ovsiienko
2020-08-07 4:00 0% ` Chengchang Tang
2020-08-07 10:30 3% ` [dpdk-dev] [PATCH v3] " Chengchang Tang
2020-08-07 10:35 0% ` Ferruh Yigit
2020-08-06 12:23 5% [dpdk-dev] [PATCH] doc: announce remove of unused enum in ACL library Konstantin Ananyev
2020-08-06 12:57 0% ` Ferruh Yigit
2020-08-06 16:37 0% ` Thomas Monjalon
2020-08-06 17:05 0% ` Bruce Richardson
2020-08-06 17:06 0% ` Jerin Jacob
2020-08-06 17:24 0% ` Thomas Monjalon
2020-08-07 12:29 [dpdk-dev] [PATCH 20.11 00/19] remove make support in DPDK Ciara Power
2020-08-07 12:29 1% ` [dpdk-dev] [PATCH 20.11 02/19] build: remove makefiles and mk directory Ciara Power
2020-08-07 12:29 1% ` [dpdk-dev] [PATCH 20.11 03/19] config: remove all config files used by make Ciara Power
2020-08-07 12:29 5% ` [dpdk-dev] [PATCH 20.11 07/19] doc: remove references to make in contributing guides Ciara Power
2020-08-20 12:41 ` [dpdk-dev] [PATCH v2 00/37] remove make support in DPDK Ciara Power
2020-08-20 12:41 1% ` [dpdk-dev] [PATCH v2 10/37] build: remove makefiles and mk directory Ciara Power
2020-08-20 12:41 1% ` [dpdk-dev] [PATCH v2 11/37] config: remove all config files used by make Ciara Power
2020-08-20 12:41 4% ` [dpdk-dev] [PATCH v2 14/37] devtools: remove use of make in scripts Ciara Power
2020-08-20 12:41 5% ` [dpdk-dev] [PATCH v2 22/37] doc: remove references to make in contributing guides Ciara Power
2020-08-07 16:28 3% [dpdk-dev] [PATCH 20.11 0/7] acl: introduce AVX512 classify method Konstantin Ananyev
2020-08-07 16:28 4% ` [dpdk-dev] [PATCH 20.11 3/7] acl: remove of unused enum value Konstantin Ananyev
2020-08-09 0:21 3% [dpdk-dev] [dpdk-announce] DPDK 20.08 released Thomas Monjalon
2020-08-10 9:24 17% [dpdk-dev] [PATCH] doc: clarify abi reference version to use in patches Ray Kinsella
2020-08-10 15:15 9% [dpdk-dev] [PATCH] version: 20.11-rc0 Thomas Monjalon
2020-08-11 9:31 18% ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
2020-08-11 9:58 8% ` [dpdk-dev] [PATCH v3 1/2] " Thomas Monjalon
2020-08-11 9:58 12% ` [dpdk-dev] [PATCH v3 2/2] devtools: fix ABI update in map files Thomas Monjalon
2020-08-11 11:27 14% ` [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0 Thomas Monjalon
2020-08-11 11:27 12% ` [dpdk-dev] [PATCH v4 2/2] devtools: fix ABI update in map files Thomas Monjalon
2020-08-11 13:47 0% ` [dpdk-dev] [PATCH v4 1/2] version: 20.11-rc0 Kinsella, Ray
2020-08-11 14:05 0% ` Thomas Monjalon
2020-08-11 14:03 13% ` [dpdk-dev] [PATCH v5 " Thomas Monjalon
2020-08-11 14:03 12% ` [dpdk-dev] [PATCH v5 2/2] devtools: fix ABI update in map files Thomas Monjalon
2020-08-12 6:57 4% ` Kinsella, Ray
2020-08-11 16:18 0% ` [dpdk-dev] [PATCH v5 1/2] version: 20.11-rc0 Kinsella, Ray
2020-08-12 9:02 5% ` Kinsella, Ray
2020-08-12 8:58 0% ` Kinsella, Ray
2020-08-12 9:33 0% ` Thomas Monjalon
2020-08-11 14:58 [dpdk-dev] [PATCH 0 0/8] Add Crypto PMD for Broadcom`s FlexSparc devices Vikas Gupta
2020-08-12 6:31 3% ` [dpdk-dev] [PATCH v1 " Vikas Gupta
2020-08-13 17:23 3% ` [dpdk-dev] [PATCH v2 " Vikas Gupta
2020-08-11 15:16 32% [dpdk-dev] [PATCH] doc: add section describing new abi versions Ray Kinsella
2020-08-11 16:36 9% ` Ray Kinsella
2020-08-11 16:39 9% ` [dpdk-dev] [PATCH v3] " Ray Kinsella
2020-08-12 10:40 8% ` Thomas Monjalon
2020-08-12 11:19 4% ` Kinsella, Ray
2020-08-12 12:14 4% ` Thomas Monjalon
2020-08-12 11:26 9% ` [dpdk-dev] [PATCH v4] " Ray Kinsella
2020-08-12 13:22 4% ` Thomas Monjalon
2020-08-12 13:56 4% ` Kinsella, Ray
2020-08-14 9:59 14% [dpdk-dev] [PATCH] cryptodev: revert ABI compatibility for ChaCha20-Poly1305 Adam Dybkowski
2020-08-14 15:16 9% [dpdk-dev] Please note: v21 ABI notification Kinsella, Ray
2020-08-14 15:23 7% ` Kinsella, Ray
2020-08-14 16:23 3% [dpdk-dev] [PATCH v1] common/iavf: mark the global functions internal Haiyue Wang
2020-08-14 16:30 3% ` [dpdk-dev] [PATCH v2] common/iavf: mark internal symbols Haiyue Wang
2020-08-17 3:08 0% ` Xing, Beilei
2020-08-18 15:48 0% ` Ferruh Yigit
2020-08-16 10:15 [dpdk-dev] [RFC] ethdev: introduce GENEVE header extension item Shiri Kuzin
2020-08-16 17:25 3% ` Stephen Hemminger
2020-08-17 6:36 0% ` Shiri Kuzin
2020-08-17 10:18 12% [dpdk-dev] [PATCH] meter: remove experimental alias Ferruh Yigit
2020-08-17 10:22 12% ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
2020-08-17 10:54 0% ` Dumitrescu, Cristian
2020-08-18 8:21 0% ` [dpdk-dev] [PATCH] " Kinsella, Ray
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).