5G Mobile Core
The 5G Mobile Core, which 3GPP calls the NG-Core, adopts a microservice-like architecture, where we say “microservice-like” because while the 3GPP specification spells out this level of disaggregation, it is really just prescribing a set of functional blocks and not an implementation. A set of functional blocks is very different from the collection of engineering decisions that go into designing a microservice-based system. That said, viewing the collection of components shown in Figure 15 as a set of microservices is a good working model.
The following organizes the set of functional blocks into three groups. The first group runs in the Control Plane (CP) and has a counterpart in the EPC.
- AMF (Core Access and Mobility Management Function): Responsible for connection and reachability management, mobility management, access authentication and authorization, and location services. Manages the mobility-related aspects of the EPC’s MME.
- SMF (Session Management Function): Manages each UE session, including IP address allocation, selection of associated UP function, control aspects of QoS, and control aspects of UP routing. Roughly corresponds to part of the EPC’s MME and the control-related aspects of the EPC’s PGW.
- PCF (Policy Control Function): Manages the policy rules that other CP functions then enforce. Roughly corresponds to the EPC’s PCRF.
- UDM (Unified Data Management): Manages user identity, including the generation of authentication credentials. Includes part of the functionality in the EPC’s HSS.
- AUSF (Authentication Server Function): Essentially an authentication server. Includes part of the functionality in the EPC’s HSS.
The second group also runs in the Control Plane (CP) but does not have a direct counterpart in the EPC:
- SDSF (Structured Data Storage Network Function): A “helper” service used to store structured data. Could be implemented by an “SQL Database” in a microservices-based system.
- UDSF (Unstructured Data Storage Network Function): A “helper” service used to store unstructured data. Could be implemented by a “Key/Value Store” in a microservices-based system.
- NEF (Network Exposure Function): A means to expose select capabilities to third-party services, including translation between internal and external representations for data. Could be implemented by an “API Server” in a microservices-based system.
- NRF (NF Repository Function): A means to discover available services. Could be implemented by a “Discovery Service” in a microservices-based system.
NSSF (Network Slicing Selector Function): A means to select a Network Slice to serve a given UE. Network slices are essentially a way to partition network resources in order to differentiate service given to different users. It is a key feature of 5G that we discuss in depth in a later chapter.
The third group includes the one component that runs in the User Plane (UP):
UPF (User Plane Function): Forwards traffic between RAN and the Internet, corresponding to the S/PGW combination in EPC. In addition to packet forwarding, it is responsible for policy enforcement, lawful intercept, traffic usage reporting, and QoS policing.
Of these, the first and third groups are best viewed as a straightforward refactoring of 4G’s EPC, while the second group—despite the gratuitous introduction of new terminology—is 3GPP’s way of pointing to a cloud native solution as the desired end-state for the Mobile Core. Of particular note, introducing distinct storage services means that all the other services can be stateless, and hence, more readily scalable. Also note that Figure 15 adopts an idea that’s common in microservice-based systems, namely, to show a message bus interconnecting all the components rather than including a full set of pairwise connections. This also suggests a well-understood implementation strategy.
_images/Slide33.png Figure 15. 5G Mobile Core (NG-Core).
Stepping back from these details, and with the caveat that we are presuming an implementation, the main takeaway is that we can conceptualize the Mobile Core as a graph of services. You will sometimes hear this called a Service Graph or Service Chain, the latter being more prevalent in NFV-oriented documents. Another term, Service Mesh, has taken on a rather specific meaning in cloud native terminology—we’ll avoid overloading that term here. 3GPP is silent on the specific terminology since it is considered an implementation choice rather than part of the specification. We describe our implementation choices in later chapters.