SD-Core 1.0.0 Release
SD-Core supports 4G & 5G network functions. SD-Core provides APIs for configuration, telemetry, policy management. Access network can connected to AMF or MME depending on type of access used. Below is the summary of the features delivered in SD-Core.
Support of REST APIs to configure SD-Core: Configuring multiple network functions to enable/disable a service in a network is complex. Single entry point for REST api based configuration is easy to use and less error prone. Our main motivation behind this work item was to hide the complexity of the network and make APIs more intuitive for the operator. These APIs work well for both 4G & 5G network functions.
Subscriber Management Interface: 3gpp requires user security keys to be configured in the network function. We have provided two interfaces to configure subscribers in SD-Core. One of the way to configure subscribers is through REST api calls to SD-Core. The other way is to add/delete/modify subscription through helm charts. APIs are extensible and can be easily integrated with 3rd party sim provision solution. Also while operator is updating the subscriptions, there is no need to restart any of the SD-Core components. This interface to SD-Core is access agnostic and same interface works for 4G as well as 5G access.
3gpp defined procedures validation and hardening for error scenarios: SD-Core has been deployed in Aether Network for more than 2 years now and in the year 2021 we added 5G support in the SD-Core. SD-Core is used in couple of operator trials. Also multiple Aether sites using different access networks to connect to centralized SD-Core control plane. This exercise has helped 4G/5G 3gpp procedures validations with multiple access networks, tools and user equipments. Some of the widely used procedures are UE Registration/De-registration, UE PDU Establishment/modification/Deletion, Xn handover, UE Context Release & Service request etc. This activity also includes handling of retransmission of messages, retrying the messages when packet loss is observed over the network, handling no response from the peer network functions,handling of network function failures or handling of reject responses from peer network functions.
Operations support to manage multiple PLMN within Core Network: SD-Core supports configuration of multiple slices with different PLMN. This helps in sharing the same core network among multiple operator networks. Each SD-Core network function is capable of handling multiple PLMN in the network.
Multiple User plane support using APN (4G) and Slice Id (5G) using CUPS call flows: SD-Core supports connections from multiple user planes. Even multiple user planes from the same edge can connect to same control plane. Control plane uses APN or Slice ID to identify user plane.
Metrics exposure to get visibility of radio network connections and UE connections: SD-core uses prometheus to export metrics. These metrics are useful to get the status of various gNodeB/eNodeB connected to Core Network. Also SD-Core gives the metrics to share current user connectivity status.
SD-Core Scale support: SD-Core 5G solution is build on top of free5gc open source code. Numerous enhancements done on the base code to get the production quality stability. One of the important goal we achieved was getting 5000 subscribers with 10 subscribers attach per second with single instance. We will be pushing for higher limits in upcoming changes. To achieve this limit, AMF & SMF has seen numerous architecture level changes. SD-Core 4G is built on top of OMEC project. 4G is tested for 16000 calls at the rate of 100 calls per second. All these results are achieved with distributed user plane. Vertical scaling can be done easily to achieve higher call setup rates.
Application Filtering Support: Network slice really becomes useful when operator has the capability to apply access control. Operator can deploy multiple applications at the edge or internet and can restrict the users from accessing it based on the slice user belongs to. This adds extra layer of security in the edge app deployment.
Policy framework to support QoS at multiple levels: SD-Core makes use of policy network function (PCF/PCRF) to enforce qos decisions on the subscriber session. Policies are configured per network slice using configuration interface. PCF/PCRF binds those policies to the subscribers. APIs gives the flexibility to Operator to assign UE level QoS, per application QoS and also slice level QoS.
5G gNB simulator: gNB simulator simulates 5G UE & 5G gNodeB. gNBSim is capable of supporting multiple UEs and multiple gNodeBs. The tool is also capable of doing data tests. This assists quick development of the features. This tool can be used to run automated tests for the 5G core network. Please refer gNB Simulator documentation for more details.
For various testing related details refer (see Test frameworks and coverage)
SD-Core documentation is available at docs.sd-core.opennetworking.org
Known Issues and Limitations
Same IMSI can not part of multiple device groups
Only 5 application filtering rules can be added per Slice
Application filtering should be configured with only /32 endpoint address. Subnet is not supported
Application filtering does not work if port ranges are used in filter configuration
Each device group should have unique DNN configuration
For any 3gpp release compliance refer - (4G - 3GPP Release Compliance) and (5G - 3GPP Release Compliance)
Component Versions in the 1.0 Release
Helm Chart Versions and their component charts and containers:
- User Plane
- User Plane
SD-Core 1.0.1 Release
Minor release with bug fixes on top of release 1.0.0. Below is the list of defects fixed on top of previous release.
MME crash due to OOM kill.
MME fails to send PCO to SPGW - MME had NAS decoding issue which was causing MME to not send PCO IE towards SPGW.
SPGW main thread blocks on DNS query - Improved SPGW code to raise DNS request in separate thread. Also added support for DNS query timeout.
SMF changes to fix FAR action flags
Helm Chart Versions and their component charts versions
- sdcore-helm-chart: 0.9.19
User Plane 0.5.4
SD-Core 1.0.2 Release
Minor release with bug fixes on top of release 1.0.1. Below is the list of defects fixed on top of previous release.
SPGW subscriber gauge metrics are removed once subscriber is detached from network.
- sdcore-helm-chart: 0.9.20
User Plane 0.5.4
SD-Core 1.0.3 Release
Minor release with bug fixes on top of release 1.0.2. Below is the list of defects fixed on top of previous release.
SPGW - Configurable DNS timeout. Default value 100ms. This helps admin to tune dns timeout to any reasonable value.
PCRF - If PCRF crashes then pcrf was not able to handle new calls. Database cleanup was missing to handle context replacement
MME - tau failure and service reject send failure fix. UL count was not incremented in some error cases.
- sdcore-helm-chart: 0.9.22
User Plane 0.5.4
SD-Core 1.0.4 Release
Minor release with bug fixes on top of release 1.0.3. Below is the list of defects fixed on top of previous release.
PCRF - PCRF crash was seen after 7 days of run. It was found that PCRF pod was logging messages in file as well as stdout. Now logging messages to file is made configurable and default its in disabled state.
HSSF - HSS memory consumption was growing over period of time. It was found that HSSF pod was logging messages in file as well as stdout. Now logging messages to file is made configurable and default its in disabled state.
- sdcore-helm-chart: 0.9.23
User Plane 0.5.4