C114门户论坛百科APPEN| 举报 切换到宽版

亚星游戏官网

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索
查看: 10892|回复: 1

[技术讨论] FLEXRAN20.08编译 [复制链接]

军衔等级:

亚星游戏官网-yaxin222  列兵

注册:2017-9-91
发表于 2023-4-20 17:00:38 |显示全部楼层
CompilationIntel C++ Compiler is used to compile Intel DPDK and L1 software. Getting and Installation of Intel C++ Compiler package is outside the scope of this document.
Recommended version of Compiler: icc (ICC) 19.0.3.206 20190206
Intel DPDK Configuration: Intel DPDK version 19.11
Recommended version of Cmake: cmake version 3.9.2


Prerequisites for L1 compilation
  • FlexRAN package has been tested extensivly on CentOS version 7.6 with RT kernel version below. It is recommended to use this version of OS to reproduce same results.
    • Name : kernel
    • Arch : x86_64
    • Version : 3.10.0
    • Release : 693.el7
    • Size : 59 M
    • Repo : installed
    • From repo : anaconda
    • Summary : The Linux kernel
    • URL : http://www.kernel.org/
    • License : GPLv2
    • Description : The kernel package contains the Linux kernel (vmlinuz), the core of any Linux operating system. The kernel handles the basic functions of the operating system: memory allocation, process allocation, device input and output, etc.
  • We have also tested newer RT kernel packages but not as extensive is this one.
  • For more details on Bare-metal and Container systems, please follow the flexran-ref-sol-cloud-native-setup-instl-guide (Document #575834) document for installation procedures.
  • Intel compiler (icc) has to be installed in the system.
  • Cmake has to be installed in the system
  • CPA library (fpga drivers) sources has to be available for compilation of L1.
  • L1 SDK library sources has to be available for compilation of L1.
  • Framework BBU Pooling library sources has to be available for compilation of L1.
  • BSP WLS library sources has to be available for compilation of L1.

In order to build the L1 application and L1 standalone Test Application, the following steps are required (in order):
  • Example Default Paths to all the packages from the release after launching extract.sh script:
    • FLEXRAN REFERENCE PHY: <install_dir>/
    • SDK: <install_dir>/sdk
    • BBUPOOL: <install_dir>/framework
    • 5G UNIT TESTS: <install_dir>/tests/nr5g
    • CPA: <install_dir>/libs/cpa
    • CPA_Sub6: <install_dir>/libs/cpa_sub6
    • BSP WLS: <install_dir>/wls_mod
  • Setup paths:
    • source ./set_env_var.sh -d
      • Will setup all paths needed for executing l1app application.
  • Compile SDK first:
    • ./flexran_build.sh -e -r 5gnr_sub6 -m sdk
    • This will compile just the SDK modules so that software libraries for LPDC encoder/decoder and rate matching/dematching will be present.
  • Patch and compile DPDK:
    • Un-tar dpdk-19.11.tar.xz into your install directory.
      • Install directory cannot be located in /root folder. Put some where else like /opt/dpdk-19.11 or /home/dpdk-19.11.
      • Applying patch file to dpdk while installed under the /root folder does not work
    • Copy dpdk patch file included in release package to place where DPDK is currently installed.
      • Patch file should be named something like flexran-dpdk-bbdev-v19-11.patch.
      • Make sure that the DPDK 19.11 being patched is a clean copy. Meaning, it has not been modified after untarring.
      • Patching modified DPDK 19.11 version will have issues.
    • Issue following command:
      • git apply flexran-dpdk-bbdev-v19-11.patch
    • If git is not installed on your platform, please issue the following command instead:
      • patch -p1 < flexran-dpdk-bbdev-v19-11.patch
    • Delete the current x86_64-native-linuxapp-icc directory if present
    • cd usertools
      • vim dpdk_setup.sh
      • Make sure the function, setup_icc(), is pointing to the correct location for ICC
      • For example:
        • DEFAULT_PATH=/opt/intel_2019/system_studio_2019/bin/iccvars.sh
    • If compiling with BBDEV enabled, then edit config/common_base
      • Set the field CONFIG_RTE_BBDEV_SDK_AVX2=y
      • Set the field CONFIG_RTE_BBDEV_SDK_AVX512=y (When machine supports it)
    • Launch ./dpdk_setup.sh
      • Choose the option [x86_64-native-linuxapp-icc] (Option 39 in dpdk-19.11. Maybe different in other versions)
  • Building the L1 Application, L1 Standalone Test Application, and Test MAC in Linux:
    • Launch ./flexran_build.sh -h
      • This will show all of the options available.
    • ./flexran_build.sh -e -r 5gnr_mmw
      • This will compile all available modules for 5gnr mm-wave 120khz sub carrier spacing and 100 Mhz bandwidth.
    • ./flexran_build.sh -e -r 5gnr_sub6
      • This will compile all available modules for 5gnr sub6
    • ./flexran_build.sh -e -r 5gnr_mmw -m wls -m mlog -m sdk
      • Example of how to compile just the wls, mlog and sdk modules.
      • ./flexran_build.sh -h, will show all options for -m to compile individual modules.
    • Note that this mode only supports LDPC Encoder/Decoder with Terasic FPGA
    • After following above steps, upon a successful build, a new L1 application file <install_dir>/bin/nr5g/gnb/l1 will be created.
    • L1 standalone Test Application will be created in <install_dir>/tests/nr5g/nr5g_testapp


Compilation with bbdevPrerequisites and compilers are the same as compiling without. BBDEV provides within DPDK a generic acceleration abstraction framework which supports both physical (hardware) and virtual (software) wireless acceleration functions for FEC processing: LDPC Encoder/Decoder, rate matching/dematching and CRC generation/check.
In the current release, a software implementation of the PMD driver is available based on the related SDK implementations.

In order to build the L1 application and L1 standalone Test Application with bbdev, the following steps are required (in order):
  • Follow steps 1 through 3 for compilation in Section 3.1
  • Building the L1 Application, L1 Standalone Test Application, and Test MAC in Linux:
    • Launch ./flexran_build.sh -h
      • This will show all of the options available.
    • ./flexran_build.sh -e -r 5gnr_sub6 -b
      • This will compile all available modules for 5gnr sub6
      • Notice the -b command to enable BBDEV compilation option for all modules
    • Note that compiling with BBDEV enabled allows LDPC Encoder/Decoder to be run in software, Vista Creek FPGA (N3000) or Mount Bryce (ACC100)
  • When specifically using Vista Creek FEC FPGA_5GNR (N3000) or MountBryce (ACC100) acceleration :
    • L1 Application needs to be built with BBDEV enabled.
    • Please refer to the file .<install_dir>/misc/bbdev_config_service/README.md for step by step instructions on how to build and run and the configuration application required for device initial configuration in FPGA_5GNR mode.
    • Note that the markups dpdkBasebandFecMode and dpdkBasebandDevice needs to be adjusted in the relevant phycfg.xml before starting L1.
    • dpdkBasebandFecMode = 0 for LDPC Encoder/Decoder in software. dpdkBasebandFecMode = 1 for LDPC Encoder/Decoder in Vista Creek FPGA.
    • To obtain PCIE address (dpdkBasebandDevice) of the FEC device
    • Use command: lspci | grep acc
    • Output of this command will look something like this:
      • 1c:00.0 Processing accelerators: Intel Corporation Device 0b30
      • 20:00.0 Processing accelerators: Intel Corporation Device 0d8f (rev 01)
      • af:00.0 Processing accelerators: Intel Corporation Device 0d5c
    • The PCIE device address of the Vista Creek (N3000) for 5GNR FEC will be the one listed under the Device (0d8f).
    • The PCIE device address of the MountBryce FEC (ACC100) will be the one listed under the Device (0d5c).
  • After following above steps, upon a successful build, a new L1 application file <install_dir>/bin/nr5g/gnb/l1 will be created.
  • L1 standalone Test Application will be created in <install_dir>/tests/nr5g/nr5g_testapp



举报本楼

本帖有 1 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系大家 |网站地图  

GMT+8, 2024-9-21 12:33 , Processed in 0.248678 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部
XML 地图 | Sitemap 地图