5G O-RAN End-to-End Network Simulation

Built and debugged a full 5GC ↔ gNB ↔ UE pipeline with RIC (E2)

  • Role
    Individual contributor (setup + troubleshooting + report)
  • Timeline
    Dec 2024
  • Stack
    Linux, Docker Compose, srsRAN, Open5GS (5GC), O-RAN SC RIC, ZMQ, SSH
5G O-RAN Simulation hero

Overview

This project set up an end-to-end 5G network simulation using open-source components. I deployed a containerized 5G Core (Open5GS) and integrated it with srsRAN-based gNB/UE, while also bringing up an O-RAN SC RIC and enabling the E2 interface. The goal was not only to “make it run”, but to understand how Core Network, gNB, RIC, and UE interact in practice—and to document a reproducible workflow and debugging checklist.

Key contributions

  • Built a full 5G pipeline (5GC → gNB → UE) and verified successful attachment/connection, using dedicated configs (ZMQ-based gNB/UE configs) and isolated UE networking via Linux network namespaces.
  • Deployed an O-RAN SC RIC alongside the RAN stack and validated the service readiness path (RIC containers + E2-enabled gNB execution), connecting the control-plane integration points.
  • Performed root-cause oriented debugging on a gNB startup failure (INI/AMF session-related error): checked AMF addressing inside the 5GC container, validated E2AP PCAP file existence/permissions/path, and concluded the primary issue was version/instruction drift—then resolved it by updating to the latest known-good method.

Impact

Delivered a working, end-to-end 5G/O-RAN simulation environment and a concise troubleshooting playbook. The most valuable outcome was developing practical intuition about how configuration, container networking, and component versions affect system bring-up—especially when error messages are non-specific. This experience strengthened my ability to debug distributed systems by isolating variables (Core, gNB, RIC, files, permissions, and paths) and validating assumptions step-by-step.