xFAPI: Deployment Guideline

1. Introduction

Detail the approach of steps for xFAPI, OSC-DU & FlexRAN deployment

1.1) Description:
xFAPI is an intermediate component that bridges the L1 and L2 layers within the O-RAN architecture. It functions as a translator for both FAPI and nFAPI interfaces, ensuring seamless communication between these interfaces.

It comprises of two major components:
API Translator translates the vendor-specific APIs used by L1 and L2 vendors whereas IPC Integrator provides interoperability between L1 and L2 components by overcoming IPC compatibility challenges.

In addition to its core functions, xFAPI provides advanced features such as detailed PDU statistics generation at both interfaces, robust debugging tools like a memory logger, state manager, multi-level logging, and a comprehensive dashboard for monitoring and analysis.

xSM: The "x" in xSM signifies "any," while "SM" stands for "Shared Memory." xSM is an advanced shared memory library designed to standardize IPC through shared memory. It simplifies communication between L1 and L2 components, which often rely on different shared memory libraries.

 

1.2) System topology

 

image-20241118-074707.png
Topology : [OSC DU-High – xFAPI – FlexRAN]

 

xFAPI.png
xFAPI Reference Architecture

2. Minimum Requirements

Detail the hardware and software requirements necessary for the installation

  • Cores: 3rd gen N series Intel Cpu

  • Accelerator : ACC100

  • RAM : 128 GB memory

  • Storage: 500 GB

  • Operating System: Ubuntu 22.04 with Real-time kernel

Recommended:

  • Cores: 4th Gen N series Intel Cpu with Vran boost

  • RAM: 256Gi Memory

3. Installation

Step-by-step instructions for deployment

3.1) Environment Setup

  • Step up the env. variables for FlexRAN :

cd phy/ source setupenv.sh
  • Load Env. variables for xFAPI :

cd <xfapi directory> source loadenvvar.sh
  • Configure IPs for OSC-DU High and cu_stub :

ifconfig lo:ODU "192.168.130.81" ifconfig lo:CU_STUB "192.168.130.82"

 

3.2) Prerequisites

Before proceeding, ensure the following dependencies are installed on your system:

  • GCC

Make sure you have GCC version 9.5 installed :

  • LKSCTP

Install the LKSCTP library:

  • PCAP:

  • ICX :

icx (ICX) 2023.0.0 (2023.0.0.20221201)

  • Intel oneAPI :

Intel oneAPI version: l_BaseKit_p_2023.0.0.25537_offline.sh, (2023.0.0)

  • DPDK :

DPDK Configuration: Intel DPDK version 22.11.1

  • Cmake :

Recommended version of Cmake: cmake version 3.9.2

 

 3.3) FlexRAN

  • Clone the project repo:

  • Add the env setting script to .bashrc :

3.4) xSM Library

  • Locate the Zip Folder:

  • Unzip the project :

 

3.5) OSC Du-High

First, create a directory where you will clone the O-DU High code. This folder will be referred to as <O-DU High Directory>.

  • Clone the project repo:

  • Modify the Makefile :

Go to the /build/odu directory and make the following changes in the Makefile:

  • Copy the wls_lib folder from the O-DU PHY repository:

  • After cloning, copy the wls_lib folder into the O-DU L2 source directory (/o-du-l2/src/):

 

Compilation

  • Build O-DU High in the o-du-l2/build/odu Directory:

  • Build cu_stub :

  • Copy the libxsm.so from /src/xSM_lib :

  • Navigate to the Binary Directory:

 

3.6) xFAPI

  • Locate the Zip Folder:

  • Unzip the project :


3.7) By this point, we should have the required binaries at these places

  • Flexran binary [l1app] at:

  • xFAPI binary [xfapi_app] at :

  • ODU binary [odu] at :

  • cu_stub binary [cu_stub] at :

 

3.8) Executing Stack

The sequence of execution of binaries is:

  1. FlexRAN

  2. xFAPI

  3. cu_stub

  4. OSC DU-High

  • Executing FlexRAN :

  • Executing xFAPI :

  • Executing cu_stub :

  • Executing DU-High :

4. Post-Installation Verification

Outline how to verify that the installation was successful.

4.1) step 1

Expected Result:

5. Troubleshooting

Provide common issues and their solutions.

Issue 1: Error in loading shared libraries while executing the FlexRAN


Solution:

 

  • Issue 2: Parsing error in FlexRAN


Solution:

 

  • Issue 3: Error in loading xsm lib in xFAPI


Solution:

 

  • Issue 4: Failed to bind the socket while executing the cu_stub


Solution:

 

NOTE: Log files can be generated in xFAPI for detailed analysis. Both horizontal and vertical logging levels can be configured in the xfapi_cfg.cfg file.

6. Additional Resources

List of additional documentation, links, or resources that may be helpful.

  • Documentation: (Link to official documentation or user manuals.)

  • Support: (Contact information for support or a link to a support forum.)