[v4] baseband/turbo_sw: remove Flexran SDK meson option

Message ID 1656536630-135907-2-git-send-email-nicolas.chautru@intel.com (mailing list archive)
State Accepted, archived
Delegated to: akhil goyal
Headers
Series [v4] baseband/turbo_sw: remove Flexran SDK meson option |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-abi-testing success Testing PASS

Commit Message

Chautru, Nicolas June 29, 2022, 9:03 p.m. UTC
  The related dependency to build the PMD based on the
SDK libraries is now enabled through pkgconfig.

Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
 doc/guides/bbdevs/turbo_sw.rst        |  9 ++++++---
 drivers/baseband/turbo_sw/meson.build | 36 +++++++++++++----------------------
 meson_options.txt                     |  2 --
 3 files changed, 19 insertions(+), 28 deletions(-)
  

Comments

Akhil Goyal Sept. 22, 2022, 4:40 p.m. UTC | #1
Hi Thomas,

Do you have more comments on this patch?

> The related dependency to build the PMD based on the
> SDK libraries is now enabled through pkgconfig.
> 
> Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
> ---
  
Thomas Monjalon Oct. 10, 2022, 10:16 a.m. UTC | #2
22/09/2022 18:40, Akhil Goyal:
> Hi Thomas,
> 
> Do you have more comments on this patch?
> 
> > The related dependency to build the PMD based on the
> > SDK libraries is now enabled through pkgconfig.
> > 
> > Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>

This patch looks OK.
Thank you for switching to pkgconfig.
  
Akhil Goyal Oct. 10, 2022, 7:27 p.m. UTC | #3
> 22/09/2022 18:40, Akhil Goyal:
> > Hi Thomas,
> >
> > Do you have more comments on this patch?
> >
> > > The related dependency to build the PMD based on the
> > > SDK libraries is now enabled through pkgconfig.
> > >
> > > Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
> 
> This patch looks OK.
> Thank you for switching to pkgconfig.
> 
Applied to dpdk-next-crypto

Thanks.
  

Patch

diff --git a/doc/guides/bbdevs/turbo_sw.rst b/doc/guides/bbdevs/turbo_sw.rst
index 1e23e37..f49f083 100644
--- a/doc/guides/bbdevs/turbo_sw.rst
+++ b/doc/guides/bbdevs/turbo_sw.rst
@@ -81,7 +81,8 @@  The following table maps DPDK versions with past FlexRAN SDK releases:
    =====================  ============================
    DPDK version           FlexRAN FEC SDK release
    =====================  ============================
-   19.08                  19.04
+   19.08 to 22.07         19.04
+   22.11+                 22.11
    =====================  ============================
 
 FlexRAN SDK Installation
@@ -136,7 +137,8 @@  In order to enable this virtual bbdev PMD, the user may:
   FlexRAN SDK libraries were installed. And ``DIR_WIRELESS_SDK`` to the path
   where the libraries were extracted.
 
-* Tune the meson build option pointing the location of the FlexRAN SDK libraries ``flexran_sdk``
+* Point pkgconfig towards these libraries so that they can be automatically found by meson.
+  If not DPDK will still compile but the related functionality would be stubbed out.
 
 Example:
 
@@ -144,8 +146,9 @@  Example:
 
     export FLEXRAN_SDK=<path-to-workspace>/FlexRAN-FEC-SDK-19-04/sdk/build-avx2-icc/install
     export DIR_WIRELESS_SDK=<path-to-workspace>/FlexRAN-FEC-SDK-19-04/sdk/build-avx2-icc/
+    export PKG_CONFIG_PATH=$DIR_WIRELESS_SDK/pkgcfg:$PKG_CONFIG_PATH
     cd build
-    meson configure -Dflexran_sdk=<path-to-workspace>/FlexRAN-FEC-SDK-19-04/sdk/build-avx512-icc/install
+    meson configure
 
 * For AVX512 machines with SDK libraries installed then both 4G and 5G can be enabled for full real time FEC capability.
   For AVX2 machines it is possible to only enable the 4G libraries and the PMD capabilities will be limited to 4G FEC.
diff --git a/drivers/baseband/turbo_sw/meson.build b/drivers/baseband/turbo_sw/meson.build
index 477b8b3..417ec63 100644
--- a/drivers/baseband/turbo_sw/meson.build
+++ b/drivers/baseband/turbo_sw/meson.build
@@ -1,38 +1,28 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation
 
-path = get_option('flexran_sdk')
+# check for FlexRAN SDK libraries
+dep_turbo = dependency('flexran_sdk_turbo', required: false)
+dep_dec5g = dependency('flexran_sdk_ldpc_decoder_5gnr', required: false)
 
-# check for FlexRAN SDK libraries for AVX2
-lib4g = cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: false)
-if lib4g.found()
-    ext_deps += cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: true)
-    ext_deps += cc.find_library('libcrc', dirs: [path + '/lib_crc'], required: true)
-    ext_deps += cc.find_library('librate_matching', dirs: [path + '/lib_rate_matching'], required: true)
-    ext_deps += cc.find_library('libcommon', dirs: [path + '/lib_common'], required: true)
+if dep_turbo.found()
     ext_deps += cc.find_library('libstdc++', required: true)
     ext_deps += cc.find_library('libirc', required: true)
     ext_deps += cc.find_library('libimf', required: true)
     ext_deps += cc.find_library('libipps', required: true)
     ext_deps += cc.find_library('libsvml', required: true)
-    includes += include_directories(path + '/lib_turbo')
-    includes += include_directories(path + '/lib_crc')
-    includes += include_directories(path + '/lib_rate_matching')
-    includes += include_directories(path + '/lib_common')
+    ext_deps += dep_turbo
+    ext_deps += dependency('flexran_sdk_crc', required: true)
+    ext_deps += dependency('flexran_sdk_rate_matching', required: true)
+    ext_deps += dependency('flexran_sdk_common', required: true)
     cflags += ['-DRTE_BBDEV_SDK_AVX2']
 endif
 
-# check for FlexRAN SDK libraries for AVX512
-lib5g = cc.find_library('libldpc_decoder_5gnr', dirs: [path + '/lib_ldpc_decoder_5gnr'], required: false)
-if lib5g.found()
-    ext_deps += cc.find_library('libldpc_encoder_5gnr', dirs: [path + '/lib_ldpc_encoder_5gnr'], required: true)
-    ext_deps += cc.find_library('libldpc_decoder_5gnr', dirs: [path + '/lib_ldpc_decoder_5gnr'], required: true)
-    ext_deps += cc.find_library('libLDPC_ratematch_5gnr', dirs: [path + '/lib_LDPC_ratematch_5gnr'], required: true)
-    ext_deps += cc.find_library('librate_dematching_5gnr', dirs: [path + '/lib_rate_dematching_5gnr'], required: true)
-    includes += include_directories(path + '/lib_ldpc_encoder_5gnr')
-    includes += include_directories(path + '/lib_ldpc_decoder_5gnr')
-    includes += include_directories(path + '/lib_LDPC_ratematch_5gnr')
-    includes += include_directories(path + '/lib_rate_dematching_5gnr')
+if dep_dec5g.found()
+    ext_deps += dep_dec5g
+    ext_deps += dependency('flexran_sdk_ldpc_encoder_5gnr', required: true)
+    ext_deps += dependency('flexran_sdk_LDPC_ratematch_5gnr', required: true)
+    ext_deps += dependency('flexran_sdk_rate_dematching_5gnr', required: true)
     cflags += ['-DRTE_BBDEV_SDK_AVX512']
 endif
 
diff --git a/meson_options.txt b/meson_options.txt
index 7c220ad..abaa304 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -22,8 +22,6 @@  option('enable_kmods', type: 'boolean', value: false, description:
        'build kernel modules')
 option('examples', type: 'string', value: '', description:
        'Comma-separated list of examples to build by default')
-option('flexran_sdk', type: 'string', value: '', description:
-       'Path to FlexRAN SDK optional Libraries for BBDEV device')
 option('ibverbs_link', type: 'combo', choices : ['static', 'shared', 'dlopen'], value: 'shared', description:
        'Linkage method (static/shared/dlopen) for Mellanox PMDs with ibverbs dependencies.')
 option('include_subdir_arch', type: 'string', value: '', description: