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 validationoru_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
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
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)

