ajay | b3f4098 | 2021-12-08 14:26:11 -0800 | [diff] [blame] | 1 | .. |
| 2 | SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org> |
| 3 | SPDX-License-Identifier: Apache-2.0 |
| 4 | |
ajay | 156b026 | 2022-01-21 12:55:22 -0800 | [diff] [blame] | 5 | SD-Core 1.0.0 Release |
| 6 | ===================== |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 7 | |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 8 | SD-Core supports 4G & 5G network functions. SD-Core provides APIs for configuration, telemetry, policy |
| 9 | management. Access network can connected to AMF or MME depending on type of access used. Below is the |
| 10 | summary of the features delivered in SD-Core. |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 11 | |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 12 | Highlights |
| 13 | ---------- |
| 14 | |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 15 | **Support of REST APIs to configure SD-Core:** Configuring multiple network functions to enable/disable a |
| 16 | service in a network is complex. Single entry point for REST api based configuration is easy to use |
| 17 | and less error prone. Our main motivation behind this work item was to hide the complexity of the network |
| 18 | and make APIs more intuitive for the operator. These APIs work well for both 4G & 5G network functions. |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 19 | |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 20 | **Subscriber Management Interface**: 3gpp requires user security keys to be configured in the network function. |
| 21 | We have provided two interfaces to configure subscribers in SD-Core. One of the way to configure subscribers |
| 22 | is through REST api calls to SD-Core. The other way is to add/delete/modify subscription through helm charts. |
| 23 | APIs are extensible and can be easily integrated with 3rd party sim provision solution. Also while operator |
ajay | f5b4f60 | 2021-12-14 22:55:47 -0800 | [diff] [blame] | 24 | is updating the subscriptions, there is no need to restart any of the SD-Core components. This interface |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 25 | to SD-Core is access agnostic and same interface works for 4G as well as 5G access. |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 26 | |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 27 | **3gpp defined procedures validation and hardening for error scenarios:** SD-Core has been deployed in Aether |
ajay | f5b4f60 | 2021-12-14 22:55:47 -0800 | [diff] [blame] | 28 | 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 |
| 29 | couple of operator trials. Also multiple Aether sites using different access networks to connect to |
| 30 | centralized SD-Core control plane. |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 31 | This exercise has helped 4G/5G 3gpp procedures validations with multiple access networks, tools and user equipments. |
| 32 | Some of the widely used procedures are UE Registration/De-registration, UE PDU Establishment/modification/Deletion, |
| 33 | Xn handover, UE Context Release & Service request etc. This activity also includes handling of retransmission of |
| 34 | messages, retrying the messages when packet loss is observed over the network, handling no response from the peer |
| 35 | network functions,handling of network function failures or handling of reject responses from peer network functions. |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 36 | |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 37 | |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 38 | **Operations support to manage multiple PLMN within Core Network:** SD-Core supports configuration |
| 39 | of multiple slices with different PLMN. This helps in sharing the same core network among multiple |
| 40 | operator networks. Each SD-Core network function is capable of handling multiple PLMN in the network. |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 41 | |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 42 | **Multiple User plane support using APN (4G) and Slice Id (5G) using CUPS call flows:** SD-Core |
| 43 | supports connections from multiple user planes. Even multiple user planes from the same edge can |
| 44 | connect to same control plane. Control plane uses APN or Slice ID to identify user plane. |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 45 | |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 46 | **Metrics exposure to get visibility of radio network connections and UE connections:** SD-core |
| 47 | uses prometheus to export metrics. These metrics are useful to get the status of various |
| 48 | gNodeB/eNodeB connected to Core Network. Also SD-Core gives the metrics to share current user |
| 49 | connectivity status. |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 50 | |
ajay | 558fcc8 | 2021-12-15 09:18:14 -0800 | [diff] [blame] | 51 | **SD-Core Scale support:** SD-Core 5G solution is build on top of free5gc open source code. |
| 52 | Numerous enhancements done on the base code to get the production quality stability. One of |
| 53 | the important goal we achieved was getting 5000 subscribers with 10 subscribers attach per |
| 54 | second with single instance. We will be pushing for higher limits in upcoming changes. |
| 55 | To achieve this limit, AMF & SMF has seen numerous architecture level changes. SD-Core 4G is |
| 56 | built on top of OMEC project. 4G is tested for 16000 calls at the rate of 100 calls per second. |
| 57 | All these results are achieved with distributed user plane. Vertical scaling can be done easily |
| 58 | to achieve higher call setup rates. |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 59 | |
ajay | f5b4f60 | 2021-12-14 22:55:47 -0800 | [diff] [blame] | 60 | **Application Filtering Support:** Network slice really becomes |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 61 | useful when operator has the capability to apply access control. Operator can deploy multiple |
| 62 | applications at the edge or internet and can restrict the users from accessing it based on the |
| 63 | slice user belongs to. This adds extra layer of security in the edge app deployment. |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 64 | |
ajay | d9952a5 | 2021-12-15 14:09:06 -0800 | [diff] [blame] | 65 | **Policy framework to support QoS at multiple levels:** SD-Core makes use of policy network |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 66 | function (PCF/PCRF) to enforce qos decisions on the subscriber session. Policies are configured |
ajay | f5b4f60 | 2021-12-14 22:55:47 -0800 | [diff] [blame] | 67 | per network slice using configuration interface. PCF/PCRF binds those policies to the subscribers. |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 68 | APIs gives the flexibility to Operator to assign UE level QoS, per application QoS and also slice level QoS. |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 69 | |
ajay | d9952a5 | 2021-12-15 14:09:06 -0800 | [diff] [blame] | 70 | **5G gNB simulator:** gNB simulator simulates 5G UE & 5G gNodeB. gNBSim is capable of supporting |
Vini Gajjar | e43a47f | 2021-12-16 13:47:04 +0530 | [diff] [blame] | 71 | multiple UEs and multiple gNodeBs. The tool is also capable of doing data tests. This assists quick |
ajay | d9952a5 | 2021-12-15 14:09:06 -0800 | [diff] [blame] | 72 | development of the features. This tool can be used to run automated tests for the 5G core network. |
Vini Gajjar | e43a47f | 2021-12-16 13:47:04 +0530 | [diff] [blame] | 73 | Please refer :ref:`gNB-Simulator` documentation for more details. |
ajay | d9952a5 | 2021-12-15 14:09:06 -0800 | [diff] [blame] | 74 | |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 75 | Testing |
| 76 | ------- |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 77 | For various testing related details refer (see :ref:`sdcore-testing`) |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 78 | |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 79 | Documentation |
| 80 | ------------- |
| 81 | |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 82 | SD-Core documentation is available at `docs.sd-core.opennetworking.org |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 83 | <https://docs.sd-core.opennetworking.org>`_ |
| 84 | |
| 85 | |
| 86 | Known Issues and Limitations |
| 87 | ---------------------------- |
| 88 | |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 89 | - Same IMSI can not part of multiple device groups |
ajay | 0751498 | 2021-12-07 22:24:32 -0800 | [diff] [blame] | 90 | - Only 5 application filtering rules can be added per Slice |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 91 | - Application filtering should be configured with only /32 endpoint address. Subnet is not supported |
| 92 | - Application filtering does not work if port ranges are used in filter configuration |
| 93 | - Each device group should have unique DNN configuration |
| 94 | |
| 95 | .. note:: |
ajay | f5b4f60 | 2021-12-14 22:55:47 -0800 | [diff] [blame] | 96 | For any 3gpp release compliance refer - (:ref:`4g-compliance`) and (:ref:`5g-compliance`) |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 97 | |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 98 | Component Versions in the 1.0 Release |
| 99 | ------------------------------------- |
| 100 | |
| 101 | Helm Chart Versions and their component charts and containers: |
| 102 | |
ajay | 4433aeb | 2021-12-16 16:03:27 -0800 | [diff] [blame] | 103 | * sdcore-helm-chart: ``0.9.17`` |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 104 | * omec-control-plane: ``0.9.15`` |
ajay | 0751498 | 2021-12-07 22:24:32 -0800 | [diff] [blame] | 105 | * hssdb: ``registry.aetherproject.org/proxy/omecproject/c3po-hssdb:master-771c0c3`` |
| 106 | * hss : ``registry.aetherproject.org/proxy/omecproject/c3po-hss:master-771c0c3`` |
| 107 | * pcrf : ``registry.aetherproject.org/proxy/omecproject/c3po-pcrf:pcrf-a6bdc3d`` |
| 108 | * pcrfdb : ``registry.aetherproject.org/proxy/omecproject/c3po-pcrf:pcrf-a6bdc3d`` |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 109 | * config4g : ``registry.aetherproject.org/omecproject/5gc-webui:onf-release3.0.5-e29f159`` |
| 110 | * spgwc : ``registry.aetherproject.org/omecproject/spgw:master-144bd86`` |
| 111 | * mme : ``registry.aetherproject.org/proxy/omecproject/nucleus:master-ccdbf69`` |
ajay | 0751498 | 2021-12-07 22:24:32 -0800 | [diff] [blame] | 112 | * omec-sub-provision: ``0.3.2`` |
| 113 | * simapp: ``registry.aetherproject.org/omecproject/simapp:main-329c82d`` |
| 114 | * 5g-control-plane: ``0.5.5`` |
| 115 | * amf: ``registry.aetherproject.org/omecproject/5gc-amf:onf-release3.0.5-9683d5c`` |
| 116 | * smf: ``registry.aetherproject.org/omecproject/5gc-smf:onf-release3.0.5-46dfe2d`` |
| 117 | * nrf: ``registry.aetherproject.org/omecproject/5gc-nrf:onf-release3.0.5-13304e8`` |
| 118 | * nssf: ``registry.aetherproject.org/omecproject/5gc-nssf:onf-release3.0.5-aa3a60b`` |
| 119 | * pcf: ``registry.aetherproject.org/omecproject/5gc-pcf:onf-release3.0.5-9f7734b`` |
| 120 | * udm: ``registry.aetherproject.org/omecproject/5gc-udm:onf-release3.0.5-c28433a`` |
| 121 | * udr: ``registry.aetherproject.org/omecproject/5gc-udr:onf-release3.0.5-deef506`` |
| 122 | * ausf: ``registry.aetherproject.org/omecproject/5gc-ausf:onf-release3.0.5-be7d4ac`` |
ajay | 4433aeb | 2021-12-16 16:03:27 -0800 | [diff] [blame] | 123 | * User Plane ``0.5.4`` |
| 124 | * bess: ``"registry.aetherproject.org/proxy/omecproject/upf-epc-bess:master-103b198"`` |
| 125 | * pfcpiface: ``"registry.aetherproject.org/proxy/omecproject/upf-epc-pfcpiface:master-103b198"`` |
ajay | d9952a5 | 2021-12-15 14:09:06 -0800 | [diff] [blame] | 126 | * 5g-ran-sim ``0.3.2`` |
| 127 | * gnbsim: ``registry.aetherproject.org/omecproject/5gc-gnbsim:dev-new-gnbsim-025ae2b`` |
ajay | 156b026 | 2022-01-21 12:55:22 -0800 | [diff] [blame] | 128 | |
| 129 | SD-Core 1.0.1 Release |
Zack Williams | 7d058a9 | 2022-03-08 14:50:08 -0700 | [diff] [blame] | 130 | --------------------- |
ajay | 156b026 | 2022-01-21 12:55:22 -0800 | [diff] [blame] | 131 | |
| 132 | Minor release with bug fixes on top of release 1.0.0. Below is the list of defects fixed, |
| 133 | |
| 134 | * MME crash due to OOM kill. |
| 135 | * MME fails to send PCO to SPGW - MME had NAS decoding issue which was causing MME to not send |
| 136 | PCO IE towards SPGW. |
| 137 | * SPGW main thread blocks on DNS query - Improved SPGW code to raise DNS request in separate thread. Also |
| 138 | added support for DNS query timeout. |
| 139 | * SMF changes to fix FAR action flags |
| 140 | * SMF changes to support session report message to handle Downlink Data Notification from UPF. |
| 141 | |
| 142 | Helm Chart Versions and their component charts and containers: |
| 143 | |
| 144 | * sdcore-helm-chart: ``0.9.19`` |
| 145 | * omec-control-plane: ``0.9.17`` |
| 146 | * hssdb: ``registry.aetherproject.org/proxy/omecproject/c3po-hssdb:master-771c0c3`` |
| 147 | * hss : ``registry.aetherproject.org/proxy/omecproject/c3po-hss:master-771c0c3`` |
| 148 | * pcrf : ``registry.aetherproject.org/proxy/omecproject/c3po-pcrf:pcrf-a6bdc3d`` |
| 149 | * pcrfdb : ``registry.aetherproject.org/proxy/omecproject/c3po-pcrf:pcrf-a6bdc3d`` |
| 150 | * config4g : ``registry.aetherproject.org/omecproject/5gc-webui:onf-release3.0.5-e29f159`` |
| 151 | * spgwc : ``registry.aetherproject.org/omecproject/spgw:master-4fce2e6`` |
| 152 | * mme : ``registry.aetherproject.org/proxy/omecproject/nucleus:master-a503ae3`` |
| 153 | * omec-sub-provision: ``0.3.2`` |
| 154 | * simapp: ``registry.aetherproject.org/omecproject/simapp:main-329c82d`` |
| 155 | * 5g-control-plane: ``0.5.6`` |
| 156 | * amf: ``registry.aetherproject.org/omecproject/5gc-amf:onf-release3.0.5-9683d5c`` |
| 157 | * smf: ``registry.aetherproject.org/omecproject/5gc-smf:onf-release3.0.5-3c91931`` |
| 158 | * nrf: ``registry.aetherproject.org/omecproject/5gc-nrf:onf-release3.0.5-13304e8`` |
| 159 | * nssf: ``registry.aetherproject.org/omecproject/5gc-nssf:onf-release3.0.5-aa3a60b`` |
| 160 | * pcf: ``registry.aetherproject.org/omecproject/5gc-pcf:onf-release3.0.5-9f7734b`` |
| 161 | * udm: ``registry.aetherproject.org/omecproject/5gc-udm:onf-release3.0.5-c28433a`` |
| 162 | * udr: ``registry.aetherproject.org/omecproject/5gc-udr:onf-release3.0.5-deef506`` |
| 163 | * ausf: ``registry.aetherproject.org/omecproject/5gc-ausf:onf-release3.0.5-be7d4ac`` |
| 164 | * User Plane ``0.5.4`` |
| 165 | * bess: ``"registry.aetherproject.org/proxy/omecproject/upf-epc-bess:master-103b198"`` |
| 166 | * pfcpiface: ``"registry.aetherproject.org/proxy/omecproject/upf-epc-pfcpiface:master-103b198"`` |
| 167 | * 5g-ran-sim ``0.3.2`` |
| 168 | * gnbsim: ``registry.aetherproject.org/omecproject/5gc-gnbsim:dev-new-gnbsim-025ae2b`` |