1. Introduction
1.1) Description
1.2) System topology
TestMac XRAN Mode Testing
...
End-to-End Testing
...
2. Minimum Requirements
This section lists the reference platform hardware configurations. The user should ensure an equal configuration is ready before continuing.
CPU
1 x Intel Xeon Gold 6338N CPU @ 2.20 GHz or higher
RAM
8 x 16GB DDR4 3200 MHz
Ensure the memory channel are equally populated with DIMM.
Storage
HDD larger than 200GB is good enough. No specific perf requirements on storage.
Baseband Device
Mount Bryce Card (acc100) to CPU-0
NIC
Ethernet Controller E810-C for SFP 1593 (PCIe Add-in-card direct to CPU-0)
Operating System
Ubuntu 24.04 LTS
Realtime kernel 6.8.1-1002
3. Installation
3.1) Prerequisites for FlexRAN S/W build
build-essential
numactl-devel
libhugetlbfs-dev
cmake
python
meson and ninja tools
to compile DPDK
pyelftools
to do meson build for DPDK 22.11.1.
pkgconf
to auto detect which DPDK libraries will be compiled
ptp4l
Intel oneAPI Basekit 2023.0.0
3.2) Prepare FlexRAN S/W packages
FlexRAN Release Package v23.07
DPDK version 22.11.1 + Intel DPDK patch
Patch and compile DPDK with patch on top of DPDK 22.11.1:
Copy dpdk patch file included in release package to place where DPDK is currently installed.
Issue the following command to apply patch.
Code Block | ||
---|---|---|
| ||
patch -p1 < dpdk_patch.patch |
Info |
---|
Note that the kernel module igb_uio has been moved to dpdk-kmods git repository since DPDK 20.11. Please refer DPDK web site for details. (https://www.dpdk.org ) |
PF BBDEV Config Application for Intel ACC100 or vRAN boost accelerator
Please refer https://github.com/intel/pf-bb-config
3.3) Setup Environment
Kernel options
For core isolation
configure CPU core isolation through “isolcpus”
For huge page
configure 1GB huge page at least 40 (hugepagesz=1G hugepages=40)
For VFIO
iommu=pt, intel_iommu=on
Network Interface Card
Create VFs and configure VLAN IDs.
Bind created VFs with vfio_pci module
Baseband Device
VF creation and configure bbdev device
Bind the PF with the igb_uio module (or alternatively with pci-pf-stub):
Create 1 VF from the PF using the exposed sysfs interface:
echo 1 | sudo tee /sys/bus/pci/devices/0000:<PF_PCI_Device_Addr>/max_vfs
Bind the VF using the vfio-pci module
Configure the devices using the pf_bb_config application for VF usage
./pf_bb_config ACC100 -c acc100/acc100_config_1vf_5g.cfg
PTP setup
utilize “ptp4l”
Setup environments
Setup all paths required for building and executing FlexRAN S/W
source ./set_env_var.sh -d
Set ISA (Instruction Set Architecture) type:
Default ISA type is AVX512 (Skylake and Cascade Lake)
For Icelake, would need to set “-i snc"
source ./set_env_var.sh -d -i snc
3.4) Build FlexRAN S/W
To use OneAPI compiler, the following command needs to be issued
# source /path/to/oneapi_install/oneapi/setvars.sh --force
# export PATH=/path/to/oneapi_install /oneapi/compiler/2023.0.0/linux/bin-llvm:$PATH
Check “icx” compiler can be executed:
# icx --version
Intel(R) oneAPI DPC++/C++ Compiler 2023.0.0 (2023.0.0.20221201)
Compile SDK Common Libraries first:
# cd /path/to/flexran_install
# ./flexran_build.sh -e -r 5gnr -m sdk_common
Info |
---|
This will compile just the Common SDK modules |
Building DPDK
# cd /path/to/dpdk_install
# meson build
# cd build && ninja
Info |
---|
Please refer DPDK web site for details. (https://www.dpdk.org ) |
Info |
---|
Note: To use the SW based implementation of the bbdev virtual pmd, the FlexRAN™ SDK libraries must be built first before starting the DPDK build process. Then the path for the SDK needs to be provided by adjusting the pkgconfig path prior to building DPDK:
For information when the SDK libraries are being found by meson, the string below will be reported during meson build. Run-time dependency flexran_sdk_ldpc_decoder_5gnr found: YES If it is not found, this means that the SDK has not been built or some environment variable has not been setup correctly. |
Building the L1 Application and Test MAC:
# cd /path/to/flexran_install
# ./flexran_build.sh -r 5gnr
Info |
---|
This will compile L1 application including all available modules for 5gnr. |
4. Post-Installation Verification
4.1) Check the build of executables
After the steps in 3.4, upon a successful build A new L1 application file (l1app) will be created in:
/path/to/flexran_install/bin/nr5g/gnb/l1
4.2) Check Baseband
If ACC100/vRAN is configured with pf_bb_config correctly through 3.3, bbdev can be tested.
Test that the VF is functional on the device using bbdev-test:
# cd /path/to/dpdk_install/app/test-bbdev
# ../../build/app/dpdk-test-bbdev -c f0 -a<VF_PCI_ADDR> -- -c validation -v ./ldpc_dec_default.data
The documentation is captured in: https://doc.dpdk.org/guides/tools/testbbdev.html
4.3) Run tests with l1app and testmac
Open two consoles (must be “root”)
Setup Environment to run l1app and testmac for both consoles.
Example for Icelake
# cd /path/to/flexran_install/
# source ./set_env_var.sh -d -i snc
Running l1 from one console
# cd bin/nr5g/gnb/l1
# ./l1.sh -xran
Running testmac from the other console
# cd bin/nr5g/testmac
# ./l2.sh --testfile=<test config file>
5. Troubleshooting
Issue 1: DPDK Install directory cannot be in /root folder.
Applying patch file to dpdk while installed under the /root folder does not work
Solution: Put somewhere else like /opt/dpdk-22.11 or /home/dpdk-22.11.
6. Additional Resources
Documentation:
Support: