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.