This is a list of open source software that can be used to run LTE and 5G Core Networks.
Evolved Packet Core (EPC)
This section lists open EPC implementations.
OAI-CN is written in the C and C++ programming languages. Dynamic QoS with establishment, modification and removal of multiple dedicated bearers, and policy-based QoS update are also features implemented by the OAI-CN MME. Traffic Flow Template (TFT) operations, such as fault detection, filter rules, and IP-filters are also provided. Finally, implicit (e.g., service request failures) and explicit (e.g., bearer resource and delete commands) congestion indicators are supported, along with multi-Access Point Name (APN), paging, and restoration procedures.
The EPC implementation included in the srsLTE software suite, namely, srsEPC, is written in C++. It is compatible with the Ubuntu and Fedora Linux operating systems. The HSS supports the configuration of UE-related parameters in the form of a simple textual csv file. UE authentication is supported by XOR and Milenage authentication algorithms. srsEPC enables per-user QoS Class Identifier (QCI) and dynamic or static IP configurations.
This is a high performance open source implementation of LTE Release 13 EPC developed by the ONF together with telecom operators and industry partners, such as Intel, Deutsche Telekom, Sprint, and AT&T. OMEC is built using a NFV architecture to sustain scalability in large-scale scenarios such as those of 5G and IoT applications. It offers connectivity, billing and charging features. OMEC can be used as a standalone EPC, or integrated in larger frameworks, such as Converged Multi-Access and Core (COMAC).
This section lists open 5G core implementations.
Open5GS offers an open source implementation of a Release 16 4G/5G NSA compliant EPC, and a 5G SA core. The 4G/5G NSA network components and 5G SA network functions are written in C and distributed under the AGPLv3 license. It is compatible with a variety of Linux distributions, such as Debian, Ubuntu, Fedora, and CentOS, as well as FreeBSD and macOS. Differently from other EPCs, Open5GS supports the delivery of voice calls and text messages through the LTE network instead of relying on traditional circuit switching networks. This is achieved by leveraging third party Voice over LTE (VoLTE) and SG-SMS (SMSoSGs) solutions, respectively; such as those from Kamailio and Osmocom. Open5GS includes PCRF/PCF modules, through which operators can specify network policies in real-time, including prioritizing a certain type of traffic. Advanced 5G SA core functionalities, such as slicing, are currently under development. Open5GS is being used with a variety of 4G and 5G software stacks and physical radio equipment. A list of tested compatible equipment is available at https://open5gs.org/open5gs/docs/hardware/01-genodebs
free5GC is written in the Go programming language, and it is compatible with machines running the Ubuntu Linux operating system. This implementation, which was initially based on NextEPC (now Open5GS), supports the management of user access, mobility, and sessions (AMF and SMF), and the discovery of the services offered by other network functions (Network Repository Function (NRF)). It also includes network functions to select which network slices to allocate to UEs (Network Slice Selection Function (NSSF)), to manage, store and retrieve user data (Unified Data Management (UDM) and Unified Data Repository (UDR)), to perform UEs authentication within the network (Authentication Server Function (AUSF)). Functions for the operation, administration and management of the core network (Operations, Administration and Maintenance (OAM)), and to perform network orchestration, among others, are also included.