Implementation of the E3 Agent for dApps and E3AP

These changes introduce an E3 Agent for dApps in the OAI codebase. dApps are real-time microservices designed to operate within the O-RAN ecosystem, enabling sub-10 ms Artificial Intelligence (AI) routines in the Radio Access Network (RAN). The E3 Agent enables spectrum sensing, frequency-domain signal logging, and dynamic PRB (Physical Resource Block) policies through IPC/ZMQ communication with dApps or xApps.

The dApps are designed for co-location with the CU/DU, where it can interact directly with user-plane data to enable different network management scenarios such as optimizing network slicing, scheduling, and resource management.

A python library for the creation of the dApps is available here.

Additional information about dApps:


Major changes introduced through this MR

  • Introduced E3 Agent with modular design:
    • openair1/E3AP/ folder includes ASN.1 definitions, handlers, and connectors.
    • Modular connector abstraction for ZMQ and POSIX IPC, allowing flexible deployment options.
  • CMakeLists.txt: New E3_AGENT option (ON/OFF) to enable/disable E3 support.
  • build_oai script: Added --build-e3 option.
  • Configuration entries added under E3Configuration in example .conf files.
  • Added a new T-tracer event: GNB_PHY_UL_FREQ_SENSING_SYMBOL.
  • Integration of spectrum sensing logic in phy_procedures_nr_gNB.c and delivery over IPC.
  • Scheduler extended to accept PRB usage hints from the E3 Agent.
  • Dynamic PRB blockage where PRBs marked as unavailable (0x3FFF) are excluded from DL/UL scheduling.
  • Extended tracer logs to include E3AP logs:
    • LEGACY_E3AP_INFO, ERROR, WARNING, DEBUG, TRACE.
  • Add support for Unix Domain sockets (UDS) in the T tracer utils.c

Notes

  • IPC permissions (/tmp/dapps) are handled to allow group-level access (chmod 0777 + chown). This is a limitation due to the root (OAI) vs non-root (dApp) situation. The E3 transport layers not depending on IPC are not affected by this.
Edited by Andrea Lacava

Merge request reports

Loading