Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

1. Introduction

1.1) Description

1.2) System topology

  • TestMac XRAN Mode Testing

testmac_xran.png
  • End-to-End Testing

e2e.png

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.

patch -p1 < dpdk_patch.patch

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 )

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

This will compile just the Common SDK modules

  • Building DPDK

# cd /path/to/dpdk_install

# meson build

# cd build && ninja

Please refer DPDK web site for details. (https://www.dpdk.org )

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:

export PKG_CONFIG_PATH=$DIR_WIRELESS_SDK/pkgcfg:$PKG_CONFIG_PATH

 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

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

 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:

 

  • No labels