2022 Mobile Core and IMS · intermediate
Open5GS Made the EPC Feel Like a Set of Services Instead of One Big Core
Breaking the EPC into MME, HSS, SGW, PGW and PCRF roles made LTE core traffic much easier to follow in captures and logs.
The EPC looked intimidating when I first saw it as one diagram full of boxes and interfaces. Open5GS made it easier to understand because each network function existed as a real process with its own logs, configuration and peer relationships. Instead of trying to memorize the whole architecture at once, I could ask one smaller question at a time: who authenticates the subscriber, who creates the session, and where does user traffic actually pass?
The MME became the obvious control-plane starting point. It handles attach signalling, mobility state, bearer management and the signalling relationship with the eNodeB. The HSS sits behind it with subscriber data and authentication material. On the gateway side, the SGW and PGW roles split control decisions from the user-plane forwarding path, and the PCRF contributes policy and charging decisions. Once those responsibilities were separated, the interfaces stopped looking like arbitrary alphabet soup.
What helped most was watching one attach attempt while tailing the Open5GS logs. A failure between the MME and HSS looked completely different from a later session-creation failure toward the gateway side. The UE could be visible at the radio and still fail authentication. Authentication could succeed and a later bearer step could still fail. Treating attach as a chain of dependencies made troubleshooting much less random.
The second useful distinction was control plane versus user plane. The signalling that creates and manages a session is not the same traffic path that later carries the subscriber's IP packets. Open5GS exposes that separation clearly. The control functions exchange signalling and install state; the user-plane functions carry GTP-U packets between the access side and the external data network.
I also learned to stop using "the core is up" as a meaningful health statement. A process can be running while a peer is unreachable, a subscriber profile is wrong, a route is missing, or GTP-U is not passing. The better test is to follow one subscriber through authentication, session creation, address assignment and an actual data packet.
That approach became the model for the rest of the year: take one interface, identify the two peers, understand the state they exchange, and then verify it in logs or packets. The EPC is still a large system, but it becomes manageable when every box is treated as a service with a narrow job instead of as part of one mysterious mobile network.