The SW Turbo PMD (baseband_turbo_sw) provides a poll mode bbdev driver that utilizes Intel optimized libraries for LTE Layer 1 workloads acceleration. This PMD supports the functions: Turbo FEC, Rate Matching and CRC functions.
SW Turbo PMD has support for the following capabilities:
For the encode operation:
For the decode operation:
To build DPDK with the baseband_turbo_sw PMD the user is required to download the export controlled FlexRAN SDK Libraries. An account at Intel Resource Design Center needs to be registered.
Once registered, the user needs to log in, and look for Intel FlexRAN Software Release Package -1-6-0 to download or directly 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 SDK release |
---|---|
18.02 | 1.3.0 |
18.05 | 1.4.0 |
18.08 | 1.6.0 |
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
Extract the flexran-1-6-0-tar.gz.zip package:
unzip flexran-1-6-0-tar.gz.zip tar xvzf flexran-1-6-0-tar.gz -C FlexRAN-1.6.0/
Run the SDK extractor script and accept the license:
cd <path-to-workspace>/FlexRAN-1.6.0/ ./SDK-R1.6.0.sh
Generate makefiles based on system configuration:
cd <path-to-workspace>/FlexRAN-1.6.0/SDK-R1.6.0/sdk/ ./create-makefiles-linux.sh
A build folder is generated in this form build-<ISA>-<CC>, enter that folder and install:
cd build-avx2-icc/ make && make install
In order to enable this virtual bbdev PMD, the user must:
Example:
export FLEXRAN_SDK=<path-to-workspace>/FlexRAN-1.6.0/SDK-R1.6.0/sdk/build-avx2-icc/install
export DIR_WIRELESS_SDK=<path-to-workspace>/FlexRAN-1.6.0/SDK-R1.6.0/sdk/
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