The SW Turbo PMD (baseband_turbo_sw) provides a software only poll mode bbdev driver that can optionally utilize Intel optimized libraries for LTE and 5GNR Layer 1 workloads acceleration.
Note that the driver can also be built without any dependency with reduced functionality for maintenance purpose.
To enable linking to the SDK libraries see detailed installation section below. Two flags can be enabled depending on whether the target machine can support AVX2 and AVX512 instructions sets and the related SDK libraries for vectorized signal processing functions are installed : - CONFIG_RTE_BBDEV_SDK_AVX2 - CONFIG_RTE_BBDEV_SDK_AVX512 By default these 2 flags are disabled by default. For AVX2 machine and SDK library installed then the first flag can be enabled. For AVX512 machine and SDK library installed then both flags can be enabled for full real time capability.
This PMD supports the functions: FEC, Rate Matching and CRC functions detailed in the Features section.
SW Turbo PMD can support for the following capabilities when the SDK libraries are used:
For the LTE encode operation:
For the LTE decode operation:
For the 5G NR LDPC encode operation:
For the 5G NR LDPC decode operation:
As an option it is possible to link this driver with FleXRAN SDK libraries which can enable real time signal processing using AVX instructions.
These libraries are available through this link.
After download is complete, the user needs to unpack and compile on their system before building DPDK.
The following table maps DPDK versions with past FlexRAN SDK releases:
DPDK version | FlexRAN FEC SDK release |
---|---|
19.08 | 19.04 |
Note that the installation of these libraries is optional.
The following instructions should be followed in this exact order:
Set the environment variables:
source <path-to-icc-compiler-install-folder>/linux/bin/compilervars.sh intel64 -platform linux
Run the SDK extractor script and accept the license:
cd <path-to-workspace> ./FlexRAN-FEC-SDK-19-04.sh
Generate makefiles based on system configuration:
cd <path-to-workspace>/FlexRAN-FEC-SDK-19-04/sdk/ ./create-makefiles-linux.sh
A build folder is generated in this form build-<ISA>-<CC>, enter that folder and install:
cd build-avx512-icc/ make && make install
In order to enable this virtual bbdev PMD, the user may:
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/
To use the PMD in an application, user must:
The following parameters (all optional) can be provided in the previous two calls:
./test-bbdev.py -e="--vdev=baseband_turbo_sw,socket_id=0,max_nb_queues=8" \
-c validation -v ./turbo_*_default.data