Deployed the 5G core with Docker Compose, checked service health, and verified the AMF/NRF path before touching the radio side.
OAI 5G Private Network Lab (SA)
Reproducible Core + gNodeB + UE setup with troubleshooting notes across USRP, Quectel, and RFSim paths.
Key highlights
- Built and documented a reproducible 5G SA lab workflow instead of treating the setup as a one-off experiment.
- Worked on the difficult part of the project: isolating why registration or PDU session steps break.
- Turned troubleshooting notes into reusable handover-style documentation for future continuation.
What I handled
Built and launched the gNodeB workflow, aligned band and PLMN parameters, and validated the NGAP side of the setup.
Tested UE-related paths with a Quectel RM500Q and kept RFSim as a fallback route so the lab stayed reproducible without SDR hardware.
Documented recurring failure points, recovery steps, and the exact sequence needed to continue the work on another machine.
Results & evidence
Architecture view
Timeline
Bring up the core
Deploy OAI CN5G with Docker Compose, validate NRF and AMF health, and confirm service registration.
Build and run the gNodeB
Compile nr-softmodem, align the band and PLMN configuration, and validate NGAP communication toward the AMF.
Attach the UE and troubleshoot sessions
Work on UE registration, PDU session behavior, and the configuration mismatches that often block the end-to-end path.
Overview
This project is a hands-on lab built around a 5G SA private network using OpenAirInterface. The goal is to make the setup reproducible, testable, and documented enough to continue debugging or hand it over without losing time.
What I built
- A repeatable Core + gNodeB deployment workflow using Docker Compose and structured launch steps
- A troubleshooting path for common failures around registration, NGAP, and PDU sessions
- A lab flow that can work with USRP B210 hardware or RFSim when radio hardware is unavailable
- Notes around radio and protocol-level observations, including what can later be surfaced through monitoring
Why it matters in my portfolio
This is one of the strongest technical projects in the portfolio because it combines:
- telecom architecture
- Linux and container-based workflows
- methodical troubleshooting
- careful configuration handling
- detailed technical documentation
It also shows that I am comfortable working on a subject where the setup can fail for many subtle reasons.
Key technical decisions
Keep the core containerized
Using Docker Compose for the core helps reset the environment quickly and reduces dependency drift between machines.
Centralize configuration discipline
Small mismatches in PLMN, slices, or UE-related parameters can break the chain. This project reinforced the need for a strict configuration baseline.
Debug through evidence, not assumptions
Container logs, gNB logs, modem behavior, and step-by-step validation were used to isolate the failing stage instead of guessing.
Current proof included on the page
- an architecture image showing the core, gNodeB, and UE validation path
- a validation board summarizing the checkpoints that were actually followed
- a dedicated block clarifying what I personally handled in the lab
- result cards that turn the project from a generic description into a real case study
Results and learning value
This project strengthened my ability to:
- work on a real telecom lab workflow
- connect core-network logic to radio access setup
- debug partial success cases where one step works but the next one fails
- document advanced technical work in a way others can continue
What can still be added later
The next upgrade for this page will be to attach sanitized log excerpts, command snippets, and selected screenshots from the lab environment.