Skip to content

srsRAN CU/DU fails to establish fronthaul connection with LiteOn FlexFi-RU on Kubernetes #1400

@motangpuar

Description

@motangpuar

Problem

The srsRAN CU/DU cannot establish fronthaul (FH) connection with LiteOn O-RU despite following the official srsRAN guide. The gNodeB receives no RX traffic from the O-RU, though the SR-IOV interface attaches successfully to the container.

Cluster Configuration:

  • CPU: Intel(R) Xeon(R) Gold 6326 CPU @ 2.90GHz
  • RAM: 128 GB
  • OS: RHEL 9.5
  • Kernel: 5.14.0-570.49.1.el9_6.x86_64+rt
  • Kubernetes: Vanilla v1.31.13
  • Container Engine: CRI-O v1.31.13
  • NIC for FH: Intel Corporation Ethernet Network Adapter E810-XXV-2
  • CNI: Cilium (primary), Multus + SR-IOV network device plugin (FH)

Components:

  • CU/DU: srsRAN : softwareradiosystems/srsran-project:release_avx512-11c9bbabb6__2025-09-15
  • O-RU: LiteOn : 02.00.09

Expected Behavior

  • srsRAN container establishes FH connection via SR-IOV interface and receives traffic from O-RU.

Actual Behavior

  • SR-IOV interface attaches to container successfully
  • FH connection fails to establish
  • Small RX traffic from O-RU detected at gNodeB, despite TX traffic present (~800Mbps)

Reproduction Steps

  1. Apply SR-IOV Node Policy
  2. Attach SR-IOV network to srsRAN container
  3. Start srsRAN CU/DU

Configuration Files

srsRAN Configuration (generated by entrypoint.sh inside container)

  • Full : config.txt
  • O-RU Section
    ru_ofh:
      t1a_max_cp_dl: 350
      t1a_min_cp_dl: 200
      t1a_max_cp_ul: 350
      t1a_min_cp_ul: 200
      t1a_max_up: 300
      t1a_min_up: 0 #0
      ta4_max: 500
      ta4_min: 0
      is_prach_cp_enabled: true
      ignore_ecpri_payload_size: false
      ignore_ecpri_seq_id: true
      compr_method_ul: bfp
      compr_bitwidth_ul: 9
      compr_method_dl: bfp
      compr_bitwidth_dl: 9
      compr_method_prach: bfp
      compr_bitwidth_prach: 9
      enable_ul_static_compr_hdr: true
      enable_dl_static_compr_hdr: true
      iq_scaling: 5.0
      cells:
        - network_interface: 0000:ca:01.4
          ru_mac_addr: 00:aa:ff:bb:ff:cc
          du_mac_addr: 02:9b:7b:1d:50:5e
          vlan_tag_cp: 6                   # VLAN tag value for CP. Note: no need to configure VLAN on NIC
          vlan_tag_up: 6                   # VLAN tag value for UP. Note: no need to configure VLAN on NIC
          prach_port_id: [4, 5, 6, 7]               # eAxCID for PRACH
          dl_port_id: [0, 1, 2, 3]               # eAxCID for DL, length of dl_port_id corresponds to nof_antennas_dl
          ul_port_id: [0, 1, 2, 3]                  # eAxCID for UL, length of ul_port_id corresponds to nof_antennas_ul
      
    

O-RU Configuration

Band Width = 100000000
Center Frequency = 3749700000
Compression Bit = 9
Control and User Plane vlan = 6
M Plane vlan = 0
default gateway = 
dpd mode : Enable
DU MAC Address = 029b7b1d505e
phase compensation mode : Enable
RX attenuation = 14
TX attenuation = 24
subcarrier spacing = 1
rj45_vlan_ip = 10.101.131.61
SFP_vlan_ip = 10.101.131.62
SFP_non_vlan_static_ip = 192.168.1.100
prach eAxC-id port 0, 1, 2, 3 = 0x0004, 0x0005, 0x0006, 0x0007
slotid = 0x00000000
jumboframe = 0x00000001
sync source : PTP

SRIOV Policy

apiVersion: sriovnetwork.openshift.io/v1
kind: SriovNetworkNodePolicy
metadata:
  name: sriov-srsran-cplane
  namespace: sriov-network-operator
spec:
  resourceName: sriov_srsran_uplane
  nodeSelector:
    feature.node.kubernetes.io/network-sriov.capable: "true"
  priority: 13
  deviceType: vfio-pci
  isRdma: false
  numVfs: 6
  mtu: 9216
  linkType: eth
  nicSelector:
    pfNames:
      - 'ens7f0#4-5'
    rootDevices:
      - '0000:ca:00.0'

Additional Info

LiteOn Sync Status

Image

srsRAN Container Stdout

Using resource environment variable: PCIDEVICE_OPENSHIFT_IO_SRIOV_SRSRAN
Updated hal.eal_args CPU list to: 6,8,10,12,14,16,18,20,22,24,29,31
For BDF 0000:ca:01.4, MAC: 02:9b:7b:1d:50:5e
Configuration file updated and placed in /tmp/gnb-config.yml
EAL: Detected CPU lcores: 32
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: VFIO support initialized
EAL: Using IOMMU type 1 (Type 1)
IAVF_DRIVER: iavf_configure_queues(): request RXDID[22] in Queue[0]

srsRAN Container Log

  • Full: gnb.log
  • N-10 Line:
    2025-10-21T06:38:37.633037 [DU-F1   ] [I] Tx PDU du=0 tid=0: F1SetupRequest
    2025-10-21T06:38:37.633117 [CU-CP-F1] [I] Rx PDU du=0 tid=0: F1SetupRequest
    2025-10-21T06:38:37.633201 [CU-CP-F1] [I] Tx PDU du=0 tid=0: F1SetupResponse
    2025-10-21T06:38:37.633209 [DU-F1   ] [I] Rx PDU du=0 tid=0: F1SetupResponse
    2025-10-21T06:38:37.633214 [DU-F1   ] [I] F1 Setup: Procedure completed successfully.
    2025-10-21T06:38:37.633223 [SCHED   ] [I] [     0.0] cell=0: Cell scheduling was activated.
    2025-10-21T06:38:37.633229 [MAC     ] [I] [     0.0] cell=0: Cell was activated
    2025-10-21T06:38:37.633243 [DU-MNG  ] [I] DU manager started successfully.
    2025-10-21T06:38:37.633244 [DU      ] [I] DU-High started successfully
    2025-10-21T06:38:37.633247 [DU      ] [I] DU started successfully
    2025-10-21T06:38:37.633249 [OFH     ] [I] Starting the operation of the Open Front
    
    

SR-IOV interfaces

Image

Monitored Traffic on SR-IOV Interface

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions