build: standardize component names and defines
authorBruce Richardson <bruce.richardson@intel.com>
Thu, 15 Oct 2020 15:05:53 +0000 (16:05 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 19 Oct 2020 20:15:34 +0000 (22:15 +0200)
As discussed on the dpdk-dev mailing list[1], we can make some easy
improvements in standardizing the naming of the various components in DPDK,
and their associated feature-enabled macros.

Following this patch, each library will have the name in format,
'librte_<name>.so', and the macro indicating that library is enabled in the
build will have the form 'RTE_LIB_<NAME>'.

Similarly, for libraries, the equivalent name formats and macros are:
'librte_<class>_<name>.so' and 'RTE_<CLASS>_<NAME>', where class is the
device type taken from the relevant driver subdirectory name, i.e. 'net',
'crypto' etc.

To avoid too many changes at once for end applications, the old macro names
will still be provided in the build in this release, but will be removed
subsequently.

[1] http://inbox.dpdk.org/dev/ef7c1a87-79ab-e405-4202-39b7ad6b0c71@solarflare.com/t/#u

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Rosen Xu <rosen.xu@intel.com>
40 files changed:
app/test-bbdev/meson.build
app/test-crypto-perf/meson.build
app/test-pmd/meson.build
app/test/meson.build
doc/guides/rel_notes/deprecation.rst
drivers/baseband/meson.build
drivers/bus/meson.build
drivers/common/meson.build
drivers/common/mlx5/meson.build
drivers/common/qat/meson.build
drivers/compress/meson.build
drivers/compress/octeontx/meson.build
drivers/crypto/meson.build
drivers/crypto/null/meson.build
drivers/crypto/octeontx/meson.build
drivers/crypto/octeontx2/meson.build
drivers/crypto/scheduler/meson.build
drivers/crypto/virtio/meson.build
drivers/event/dpaa/meson.build
drivers/event/dpaa2/meson.build
drivers/event/meson.build
drivers/event/octeontx/meson.build
drivers/event/octeontx2/meson.build
drivers/mempool/meson.build
drivers/meson.build
drivers/net/meson.build
drivers/net/mlx4/meson.build
drivers/raw/ifpga/meson.build
drivers/raw/meson.build
drivers/regex/meson.build
drivers/vdpa/meson.build
examples/bond/meson.build
examples/ethtool/meson.build
examples/ioat/meson.build
examples/l2fwd-crypto/meson.build
examples/ntb/meson.build
examples/vm_power_manager/meson.build
lib/librte_ethdev/meson.build
lib/librte_graph/meson.build
lib/meson.build

index fbd8ae3..8aca492 100644 (file)
@@ -7,11 +7,11 @@ sources = files('main.c',
                'test_bbdev_vector.c')
 deps += ['bbdev', 'bus_vdev']
 if dpdk_conf.has('RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC')
-       deps += ['pmd_bbdev_fpga_lte_fec']
+       deps += ['baseband_fpga_lte_fec']
 endif
 if dpdk_conf.has('RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC')
-       deps += ['pmd_bbdev_fpga_5gnr_fec']
+       deps += ['baseband_fpga_5gnr_fec']
 endif
 if dpdk_conf.has('RTE_LIBRTE_PMD_BBDEV_ACC100')
-       deps += ['pmd_bbdev_acc100']
-endif
\ No newline at end of file
+       deps += ['baseband_acc100']
+endif
index 4bd7151..e6ddda6 100644 (file)
@@ -13,5 +13,5 @@ sources = files('cperf_ops.c',
                'main.c')
 deps += ['cryptodev', 'net', 'security']
 if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER')
-       deps += 'pmd_crypto_scheduler'
+       deps += 'crypto_scheduler'
 endif
index 0d9e450..2e8b9f8 100644 (file)
@@ -38,22 +38,22 @@ if dpdk_conf.has('RTE_LIBRTE_LATENCYSTATS')
        deps += 'latencystats'
 endif
 if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER')
-       deps += 'pmd_crypto_scheduler'
+       deps += 'crypto_scheduler'
 endif
 if dpdk_conf.has('RTE_LIBRTE_BOND_PMD')
-       deps += 'pmd_bond'
+       deps += 'net_bond'
 endif
 if dpdk_conf.has('RTE_LIBRTE_BNXT_PMD')
-       deps += 'pmd_bnxt'
+       deps += 'net_bnxt'
 endif
 if dpdk_conf.has('RTE_LIBRTE_I40E_PMD')
-       deps += 'pmd_i40e'
+       deps += 'net_i40e'
 endif
 if dpdk_conf.has('RTE_LIBRTE_IXGBE_PMD')
-       deps += 'pmd_ixgbe'
+       deps += 'net_ixgbe'
 endif
 if dpdk_conf.has('RTE_LIBRTE_DPAA_PMD')
-       deps += ['bus_dpaa', 'mempool_dpaa', 'pmd_dpaa']
+       deps += ['bus_dpaa', 'mempool_dpaa', 'net_dpaa']
 endif
 if dpdk_conf.has('RTE_LIBRTE_BPF')
        sources += files('bpf_cmd.c')
index fc90a19..c5ce1d2 100644 (file)
@@ -345,7 +345,7 @@ if dpdk_conf.has('RTE_LIBRTE_STACK_MEMPOOL')
        test_deps += 'mempool_stack'
 endif
 if dpdk_conf.has('RTE_LIBRTE_SKELETON_EVENTDEV_PMD')
-       test_deps += 'pmd_skeleton_event'
+       test_deps += 'event_skeleton'
 endif
 if dpdk_conf.has('RTE_LIBRTE_TELEMETRY')
        test_sources += ['test_telemetry_json.c', 'test_telemetry_data.c']
@@ -355,7 +355,7 @@ endif
 # The following linkages of drivers are required because
 # they are used via a driver-specific API.
 if dpdk_conf.has('RTE_LIBRTE_BOND_PMD')
-       test_deps += 'pmd_bond'
+       test_deps += 'net_bond'
        test_sources += ['test_link_bonding.c', 'test_link_bonding_rssconf.c']
        driver_test_names += ['link_bonding_autotest', 'link_bonding_rssconf_autotest']
        if dpdk_conf.has('RTE_LIBRTE_RING_PMD')
@@ -364,7 +364,7 @@ if dpdk_conf.has('RTE_LIBRTE_BOND_PMD')
        endif
 endif
 if dpdk_conf.has('RTE_LIBRTE_RING_PMD')
-       test_deps += 'pmd_ring'
+       test_deps += 'net_ring'
        test_sources += 'test_pmd_ring_perf.c'
        test_sources += 'test_pmd_ring.c'
        test_sources += 'test_event_eth_tx_adapter.c'
@@ -415,7 +415,7 @@ endif
 
 if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER')
        driver_test_names += 'cryptodev_scheduler_autotest'
-       test_deps += 'pmd_crypto_scheduler'
+       test_deps += 'crypto_scheduler'
 endif
 
 foreach d:test_deps
index 8ceb385..76a8396 100644 (file)
@@ -11,6 +11,14 @@ here.
 Deprecation Notices
 -------------------
 
+* build: The macros defined to indicate which DPDK libraries and drivers
+  are included in the meson build are changing to a standardized format of
+  ``RTE_LIB_<NAME>`` and ``RTE_<CLASS>_<NAME>``, where ``NAME`` is the
+  upper-case component name, e.g. EAL, ETHDEV, IXGBE, and ``CLASS`` is the
+  upper-case name of the device class to which a driver belongs e.g.
+  ``NET``, ``CRYPTO``, ``VDPA``. The old macros are deprecated and will be
+  removed in a future release.
+
 * meson: The minimum supported version of meson for configuring and building
   DPDK will be increased to v0.47.1 (from 0.41) from DPDK 19.05 onwards. For
   those users with a version earlier than 0.47.1, an updated copy of meson
index 72301ce..2c7efe3 100644 (file)
@@ -8,4 +8,3 @@ endif
 drivers = ['null', 'turbo_sw', 'fpga_lte_fec', 'fpga_5gnr_fec', 'acc100']
 
 config_flag_fmt = 'RTE_LIBRTE_PMD_BBDEV_@0@'
-driver_name_fmt = 'rte_pmd_bbdev_@0@'
index 80de2d9..bd73efd 100644 (file)
@@ -4,4 +4,3 @@
 drivers = ['dpaa', 'fslmc', 'ifpga', 'pci', 'vdev', 'vmbus']
 std_deps = ['eal']
 config_flag_fmt = 'RTE_LIBRTE_@0@_BUS'
-driver_name_fmt = 'rte_bus_@0@'
index abb4f15..d78882f 100644 (file)
@@ -8,4 +8,3 @@ endif
 std_deps = ['eal']
 drivers = ['cpt', 'dpaax', 'iavf', 'mvep', 'octeontx', 'octeontx2', 'sfc_efx']
 config_flag_fmt = 'RTE_LIBRTE_@0@_COMMON'
-driver_name_fmt = 'rte_common_@0@'
index 8e56087..3dacc6f 100644 (file)
@@ -8,7 +8,6 @@ if not is_linux
 endif
 
 config_flag_fmt = 'RTE_LIBRTE_@0@_COMMON'
-driver_name_fmt = 'rte_common_@0@'
 deps += ['hash', 'pci', 'bus_pci', 'net', 'eal', 'kvargs']
 sources += files(
        'mlx5_devx_cmds.c',
index a94182c..29e1299 100644 (file)
@@ -2,7 +2,6 @@
 # Copyright(c) 2017-2018 Intel Corporation
 
 config_flag_fmt = 'RTE_LIBRTE_@0@_COMMON'
-driver_name_fmt = 'rte_common_@0@'
 
 qat_crypto = true
 qat_crypto_path = 'crypto/qat'
index 3a4723c..33f5e33 100644 (file)
@@ -9,4 +9,3 @@ drivers = ['isal', 'octeontx', 'zlib']
 
 std_deps = ['compressdev'] # compressdev pulls in all other needed deps
 config_flag_fmt = 'RTE_LIBRTE_PMD_@0@'
-driver_name_fmt = 'rte_pmd_@0@'
index 0dc98b7..2d71b4d 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Cavium, Inc
 
-name = 'octeontx_compress'
+fmt_name = 'octeontx_compress'
 sources = files('otx_zip.c', 'otx_zip_pmd.c')
 includes += include_directories('include')
 deps += ['mempool_octeontx', 'bus_pci']
index fcb3766..34f2d99 100644 (file)
@@ -27,4 +27,3 @@ drivers = ['aesni_gcm',
 
 std_deps = ['cryptodev'] # cryptodev pulls in all other needed deps
 config_flag_fmt = 'RTE_LIBRTE_PMD_@0@'
-driver_name_fmt = 'rte_pmd_@0@'
index 502336d..4214149 100644 (file)
@@ -2,5 +2,5 @@
 # Copyright(c) 2017 Intel Corporation
 
 deps += 'bus_vdev'
-name = 'null_crypto'
+fmt_name = 'null_crypto'
 sources = files('null_crypto_pmd.c', 'null_crypto_pmd_ops.c')
index cf031b0..d693972 100644 (file)
@@ -7,7 +7,7 @@ endif
 
 deps += ['bus_pci']
 deps += ['common_cpt']
-name = 'octeontx_crypto'
+fmt_name = 'octeontx_crypto'
 
 sources = files('otx_cryptodev.c',
                'otx_cryptodev_capabilities.c',
index 41114a5..4e4522c 100644 (file)
@@ -12,7 +12,7 @@ deps += ['common_octeontx2']
 deps += ['ethdev']
 deps += ['eventdev']
 deps += ['security']
-name = 'octeontx2_crypto'
+fmt_name = 'octeontx2_crypto'
 
 sources = files('otx2_cryptodev.c',
                'otx2_cryptodev_capabilities.c',
index c5ba2d6..2209c50 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
 deps += ['bus_vdev', 'reorder']
-name = 'crypto_scheduler'
+fmt_name = 'crypto_scheduler'
 sources = files(
        'rte_cryptodev_scheduler.c',
        'scheduler_failover.c',
index b15b3f9..6cea782 100644 (file)
@@ -3,6 +3,6 @@
 
 includes += include_directories('../../../lib/librte_vhost')
 deps += 'bus_pci'
-name = 'virtio_crypto'
+fmt_name = 'virtio_crypto'
 sources = files('virtio_cryptodev.c', 'virtio_pci.c',
                'virtio_rxtx.c', 'virtqueue.c')
index 2f761f8..9abb75e 100644 (file)
@@ -5,7 +5,7 @@ if not is_linux
        build = false
        reason = 'only supported on linux'
 endif
-deps += ['pmd_dpaa', 'pmd_dpaa_sec']
+deps += ['net_dpaa', 'crypto_dpaa_sec']
 sources = files('dpaa_eventdev.c')
 
 includes += include_directories('../../crypto/dpaa_sec/')
index 71c8be3..4ead7bb 100644 (file)
@@ -5,7 +5,7 @@ if not is_linux
        build = false
        reason = 'only supported on linux'
 endif
-deps += ['bus_vdev', 'pmd_dpaa2', 'pmd_dpaa2_sec']
+deps += ['bus_vdev', 'net_dpaa2', 'crypto_dpaa2_sec']
 sources = files('dpaa2_hw_dpcon.c',
                'dpaa2_eventdev.c',
                'dpaa2_eventdev_selftest.c')
index f2a3431..a7dac99 100644 (file)
@@ -12,4 +12,3 @@ if not (toolchain == 'gcc' and cc.version().version_compare('<4.8.6') and
 endif
 std_deps = ['eventdev', 'kvargs']
 config_flag_fmt = 'RTE_LIBRTE_PMD_@0@_EVENTDEV'
-driver_name_fmt = 'rte_pmd_@0@_event'
index 2b74bb6..41e3676 100644 (file)
@@ -10,4 +10,4 @@ sources = files('ssovf_worker.c',
                'timvf_probe.c'
 )
 
-deps += ['common_octeontx', 'mempool_octeontx', 'bus_vdev', 'pmd_octeontx']
+deps += ['common_octeontx', 'mempool_octeontx', 'bus_vdev', 'net_octeontx']
index 6dde86f..724da2e 100644 (file)
@@ -25,7 +25,7 @@ foreach flag: extra_flags
        endif
 endforeach
 
-deps += ['bus_pci', 'common_octeontx2', 'mempool_octeontx2', 'pmd_octeontx2', 'pmd_octeontx2_crypto']
+deps += ['bus_pci', 'common_octeontx2', 'crypto_octeontx2', 'mempool_octeontx2', 'net_octeontx2']
 
 includes += include_directories('../../crypto/octeontx2')
 includes += include_directories('../../common/cpt')
index 7520e48..a6ddd35 100644 (file)
@@ -4,4 +4,3 @@
 drivers = ['bucket', 'dpaa', 'dpaa2', 'octeontx', 'octeontx2', 'ring', 'stack']
 std_deps = ['mempool']
 config_flag_fmt = 'RTE_LIBRTE_@0@_MEMPOOL'
-driver_name_fmt = 'rte_mempool_@0@'
index 3d4bbff..a5a6fed 100644 (file)
@@ -33,9 +33,6 @@ foreach subpath:subdirs
        drivers = []
        std_deps = []
        config_flag_fmt = '' # format string used to set the value in dpdk_conf
-       driver_name_fmt = '' # format string for driver name, used to name
-                            # the library, the dependency and to find the
-                            # version file for linking
 
        # subpath can be either "class" or "class/driver"
        if subpath.contains('/')
@@ -113,11 +110,14 @@ foreach subpath:subdirs
                        endif
                else
                        enabled_drivers += name
+                       lib_name = '_'.join(['rte', class, name])
+                       dpdk_conf.set(lib_name.to_upper(), 1)
 
                        if fmt_name == ''
                                fmt_name = name
                        endif
-                       dpdk_conf.set(config_flag_fmt.format(fmt_name.to_upper()),1)
+
+                       dpdk_conf.set(config_flag_fmt.format(fmt_name.to_upper()),1) #old-style macro
                        # for driver compatibility, since we changed the
                        # default to match that of make. Remove in future release
                        # after following deprecation process
@@ -133,7 +133,6 @@ foreach subpath:subdirs
                                dpdk_conf.set(alt_flag_fmt.format(
                                                fmt_name.to_upper()), 1)
                        endif
-                       lib_name = driver_name_fmt.format(fmt_name)
 
                        dpdk_extra_ldflags += pkgconfig_extra_libs
 
index d56b240..4e4c2c9 100644 (file)
@@ -59,4 +59,3 @@ std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc
 std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std
 std_deps += ['bus_vdev']        # same with vdev bus
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
-driver_name_fmt = 'rte_pmd_@0@'
index 5a25e11..4040065 100644 (file)
@@ -116,7 +116,7 @@ configure_file(output : 'mlx4_autoconf.h', configuration : config)
 # Build Glue Library
 if dlopen_ibverbs
        dlopen_name = 'mlx4_glue'
-       dlopen_lib_name = driver_name_fmt.format(dlopen_name)
+       dlopen_lib_name = 'rte_net_' + dlopen_name
        dlopen_so_version = LIB_GLUE_VERSION
        dlopen_sources = files('mlx4_glue.c')
        dlopen_install_dir = [ eal_pmd_path + '-glue' ]
index da454b1..027ff80 100644 (file)
@@ -11,7 +11,7 @@ subdir('base')
 objs = [base_objs]
 
 deps += ['ethdev', 'rawdev', 'pci', 'bus_pci', 'kvargs',
-       'bus_vdev', 'bus_ifpga', 'net', 'pmd_i40e', 'pmd_ipn3ke']
+       'bus_vdev', 'bus_ifpga', 'net', 'net_i40e', 'net_ipn3ke']
 
 sources = files('ifpga_rawdev.c')
 
index 2c1e65e..d8d6cf5 100644 (file)
@@ -12,4 +12,3 @@ drivers = ['dpaa2_cmdif', 'dpaa2_qdma',
        'skeleton']
 std_deps = ['rawdev']
 config_flag_fmt = 'RTE_LIBRTE_PMD_@0@_RAWDEV'
-driver_name_fmt = 'rte_rawdev_@0@'
index 79bb5d5..880a1b4 100644 (file)
@@ -4,4 +4,3 @@
 drivers = ['mlx5', 'octeontx2']
 std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
-driver_name_fmt = 'rte_pmd_@0@'
index 798eb38..b346e43 100644 (file)
@@ -10,4 +10,3 @@ drivers = ['ifc',
 std_deps = ['bus_pci', 'kvargs']
 std_deps += ['vhost']
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
-driver_name_fmt = 'rte_pmd_@0@'
index 82e355a..69382ff 100644 (file)
@@ -6,7 +6,7 @@
 # To build this example as a standalone application with an already-installed
 # DPDK instance, use 'make'
 
-deps += 'pmd_bond'
+deps += 'net_bond'
 allow_experimental_apis = true
 sources = files(
        'main.c'
index bc7a355..fdfdd19 100644 (file)
@@ -14,7 +14,7 @@ includes = include_directories('lib', 'ethtool-app')
 
 deps += 'bus_pci'
 if dpdk_conf.has('RTE_LIBRTE_IXGBE_PMD')
-       deps += 'pmd_ixgbe'
+       deps += 'net_ixgbe'
 endif
 
 allow_experimental_apis = true
index f72cf70..f1a045a 100644 (file)
@@ -9,7 +9,7 @@
 allow_experimental_apis = true
 build = dpdk_conf.has('RTE_LIBRTE_PMD_IOAT_RAWDEV')
 
-deps += ['rawdev_ioat']
+deps += ['raw_ioat']
 
 sources = files(
        'ioatfwd.c'
index 39e1604..9002d62 100644 (file)
@@ -8,7 +8,7 @@
 
 deps += 'cryptodev'
 if dpdk_conf.has('RTE_LIBRTE_PMD_CRYPTO_SCHEDULER')
-       deps += 'pmd_crypto_scheduler'
+       deps += 'crypto_scheduler'
 endif
 allow_experimental_apis = true
 sources = files(
index 45a5935..bac6e5c 100644 (file)
@@ -16,5 +16,5 @@ sources = files(
        'ntb_fwd.c'
 )
 if dpdk_conf.has('RTE_LIBRTE_PMD_NTB_RAWDEV')
-       deps += 'rawdev_ntb'
+       deps += 'raw_ntb'
 endif
index 54e2b58..2dd1320 100644 (file)
@@ -14,15 +14,15 @@ endif
 deps += ['power']
 
 if dpdk_conf.has('RTE_LIBRTE_BNXT_PMD')
-       deps += ['pmd_bnxt']
+       deps += ['net_bnxt']
 endif
 
 if dpdk_conf.has('RTE_LIBRTE_I40E_PMD')
-       deps += ['pmd_i40e']
+       deps += ['net_i40e']
 endif
 
 if dpdk_conf.has('RTE_LIBRTE_IXGBE_PMD')
-       deps += ['pmd_ixgbe']
+       deps += ['net_ixgbe']
 endif
 
 allow_experimental_apis = true
index 8fc24e8..e4b6102 100644 (file)
@@ -1,7 +1,6 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-name = 'ethdev'
 sources = files('ethdev_private.c',
        'ethdev_profile.c',
        'ethdev_trace_points.c',
index d5de1e2..d3ec78c 100644 (file)
@@ -1,8 +1,6 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(C) 2020 Marvell International Ltd.
 
-name = 'graph'
-
 sources = files('node.c', 'graph.c', 'graph_ops.c', 'graph_debug.c', 'graph_stats.c', 'graph_populate.c')
 headers = files('rte_graph.h', 'rte_graph_worker.h')
 
index a42e34f..094454e 100644 (file)
@@ -99,7 +99,8 @@ foreach l:libraries
                set_variable(name.underscorify() + '_disable_reason', reason)
        else
                enabled_libs += name
-               dpdk_conf.set('RTE_LIBRTE_' + name.to_upper(), 1)
+               dpdk_conf.set('RTE_LIBRTE_' + name.to_upper(), 1) #old macro
+               dpdk_conf.set('RTE_LIB_' + name.to_upper(), 1) # new macro
                install_headers(headers)
 
                libname = 'rte_' + name