O-RU fronthaul library

This introduces 7.2 ORAN fronthaul library components that will be used to implement an O-RU.

Written with assistance from Gemini AI.

Directory Structure

  • core/: Low-level networking and timing primitives.
    • fh_recv: DPDK-based packet reception with callback support.
    • fh_send: Immediate packet transmission utilities.
    • fh_timer: GPS/System-aligned timing for symbol-accurate operations.
  • oru/: O-RU specific application logic.
    • oru_packet_processor: Manages C-Plane/U-Plane synchronization, IQ data (un)packing, and TDD pattern validation
    • oru_io: High-level I/O manager that integrates core primitives with the packet processor.
    • oru_fh: future integration that will provide a unified interface for the entire fronthaul stack
  • xran_pkt/: Protocol definition and API.

Architecture Overview

The library is designed for low latency and high throughput, leveraging DPDK for direct hardware access. A key design principle is the serialization of timer events and packet reception on the same thread, which simplifies state management in the packet processor by avoiding complex locking mechanisms.

Software Component Diagram

mermaid-diagram-2026-05-06T14-10-50

Thread Deployment

1. Fronthaul Worker Thread (DPDK lcore)

This thread runs the fh_recv_run loop. It is responsible for:

  • Polling the NIC for incoming eCPRI packets.
  • Executing initial packet parsing and processing callbacks.
  • Ticking the symbol timer.

2. Application threads

The O-RU application threads can utilize the thread-safe nature of get_dl_iq and write_ul_iq to do parallel processing as needed.

Execution Flow Diagram

mermaid-diagram-2026-05-06T14-09-39

Testing

Many unit tests were added, most notably a testcase against a PCAP capture of the OAI O-DU C+UPlane configured with the liteon 4x4 config (273 prb/jumbo frame)

Edited by Bartosz Podrygajlo

Merge request reports

Loading