FlexRAN is a vRAN reference implementation for virtualized cloud-enabled radio access networks. FlexRAN is not an open-source project. It is provided here as an example of a 5G application running on INF.
This document provides details on how to build FlexRAN software for INF, generate a containerized version of the prebuilt FlexRAN binaries, and deploy on INF solution.
Note: The steps in this guide are based on FlexRAN 22.03. The instructions are subject to change in future releases of FlexRAN. And only CentOS based INF image is verified. |
The intended audience for this document are software engineers and system architects who want to design and develop 5G systems using the O-RAN Specifications based on FlexRAN and INF platform.
Be sure to use the correct USB device name when copying the image.
|
In addition to the Hardware Requirements for INF (INF is a downstream project of StarlingX, and the requirements are the same as StarlingX), you will need the following hardware for FlexRAN applications.
Minimum Requirement | All-in-one Controller Node |
---|---|
Minimum processor class | Single-CPU Intel Xeon Cascade Lake (14 nm) or IceLake (10 nm) |
Minimum memory | 64 GB single socket |
Minimum network ports | OAM: 1x1GE, If only test timer mode, no other NIC required. |
BIOS settings |
|
Accelerator Card | Mt. Bryce ACC100 (Intel eASIC chip which can be mounted on third party card) |
The FlexRAN application on INF has been tested on Intel Reference Hardware platform: Coyote Pass (housing ICX-SP).
Note Some third-party platforms like SuperMicro / HPE / Dell / Quanta / and others can also be used depending on customer platform requirements, certain optimizations for low-latency and power savings mode by the platform vendors. |
source /etc/platform/openrc NODE=controller-0 OAM_IF=<OAM-PORT> # if you use flat oam network system host-if-modify ${NODE} $OAM_IF -c platform system interface-network-assign ${NODE} $OAM_IF oam # if you use vlan oam network VLANID=<VLAN-ID> system host-if-modify -n pltif -c platform $NODE $OAM_IF system host-if-add ${NODE} -V $VLANID -c platform oam0 vlan pltif system interface-network-assign ${NODE} oam0 oam system host-label-assign $NODE sriovdp=enabled system host-label-assign $NODE kube-topology-mgr-policy=restricted # Ceph backend for k8s pvc system storage-backend-add ceph --confirmed system host-disk-list ${NODE} | awk '/\/dev\/sdb/{print $2}' | xargs -i system host-stor-add ${NODE} {} # isolate cpus depends on number of the physical core system host-cpu-modify -f application-isolated -p0 28 $NODE # allocate/enable hugepages for DPDK usage system host-memory-modify $NODE -1G 10 0 system host-unlock $NODE |
source /etc/platform/openrc NODE=controller-0 system host-lock $NODE # get the device name of the Mount Bryce, we assume it is # pci_0000_8a_00_0 here. system host-device-list $NODE # Modify the Mount Bryce device to enable it, specify the base driver # and vf driver, and configure it for 1 VFs # NOTE: If this is the initial install and have not unlocked, you will # get following error message. # Cannot configure device 73b13ddf-99be-44c8-8fbe-db85eb8d99ba until host # controller-0 is unlocked for the first time. system host-device-modify $NODE pci_0000_8a_00_0 -e true --driver igb_uio --vf-driver vfio -N 1 system host-unlock $NODE |