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 | |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 5 | SD-Core 1.0 Release |
| 6 | =================== |
| 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 | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 65 | |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 66 | **Policy framework to support QoS at multiple levels** SD-Core makes use of policy network |
| 67 | 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] | 68 | 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] | 69 | 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] | 70 | |
| 71 | Testing |
| 72 | ------- |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 73 | For various testing related details refer (see :ref:`sdcore-testing`) |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 74 | |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 75 | Documentation |
| 76 | ------------- |
| 77 | |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 78 | SD-Core documentation is available at `docs.sd-core.opennetworking.org |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 79 | <https://docs.sd-core.opennetworking.org>`_ |
| 80 | |
| 81 | |
| 82 | Known Issues and Limitations |
| 83 | ---------------------------- |
| 84 | |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 85 | - Same IMSI can not part of multiple device groups |
ajay | 0751498 | 2021-12-07 22:24:32 -0800 | [diff] [blame] | 86 | - Only 5 application filtering rules can be added per Slice |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 87 | - Application filtering should be configured with only /32 endpoint address. Subnet is not supported |
| 88 | - Application filtering does not work if port ranges are used in filter configuration |
| 89 | - Each device group should have unique DNN configuration |
| 90 | |
| 91 | .. note:: |
ajay | f5b4f60 | 2021-12-14 22:55:47 -0800 | [diff] [blame] | 92 | For any 3gpp release compliance refer - (:ref:`4g-compliance`) and (:ref:`5g-compliance`) |
ajay | d19711c | 2021-12-07 12:07:04 -0800 | [diff] [blame] | 93 | |
Zack Williams | ccaa38a | 2021-11-16 15:36:05 -0700 | [diff] [blame] | 94 | Component Versions in the 1.0 Release |
| 95 | ------------------------------------- |
| 96 | |
| 97 | Helm Chart Versions and their component charts and containers: |
| 98 | |
ajay | f5b4f60 | 2021-12-14 22:55:47 -0800 | [diff] [blame] | 99 | * sdcore-helm-chart: ``0.9.16`` |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 100 | * omec-control-plane: ``0.9.15`` |
ajay | 0751498 | 2021-12-07 22:24:32 -0800 | [diff] [blame] | 101 | * hssdb: ``registry.aetherproject.org/proxy/omecproject/c3po-hssdb:master-771c0c3`` |
| 102 | * hss : ``registry.aetherproject.org/proxy/omecproject/c3po-hss:master-771c0c3`` |
| 103 | * pcrf : ``registry.aetherproject.org/proxy/omecproject/c3po-pcrf:pcrf-a6bdc3d`` |
| 104 | * pcrfdb : ``registry.aetherproject.org/proxy/omecproject/c3po-pcrf:pcrf-a6bdc3d`` |
ajay | ce0380c | 2021-12-14 21:51:00 -0800 | [diff] [blame] | 105 | * config4g : ``registry.aetherproject.org/omecproject/5gc-webui:onf-release3.0.5-e29f159`` |
| 106 | * spgwc : ``registry.aetherproject.org/omecproject/spgw:master-144bd86`` |
| 107 | * mme : ``registry.aetherproject.org/proxy/omecproject/nucleus:master-ccdbf69`` |
ajay | 0751498 | 2021-12-07 22:24:32 -0800 | [diff] [blame] | 108 | * omec-sub-provision: ``0.3.2`` |
| 109 | * simapp: ``registry.aetherproject.org/omecproject/simapp:main-329c82d`` |
| 110 | * 5g-control-plane: ``0.5.5`` |
| 111 | * amf: ``registry.aetherproject.org/omecproject/5gc-amf:onf-release3.0.5-9683d5c`` |
| 112 | * smf: ``registry.aetherproject.org/omecproject/5gc-smf:onf-release3.0.5-46dfe2d`` |
| 113 | * nrf: ``registry.aetherproject.org/omecproject/5gc-nrf:onf-release3.0.5-13304e8`` |
| 114 | * nssf: ``registry.aetherproject.org/omecproject/5gc-nssf:onf-release3.0.5-aa3a60b`` |
| 115 | * pcf: ``registry.aetherproject.org/omecproject/5gc-pcf:onf-release3.0.5-9f7734b`` |
| 116 | * udm: ``registry.aetherproject.org/omecproject/5gc-udm:onf-release3.0.5-c28433a`` |
| 117 | * udr: ``registry.aetherproject.org/omecproject/5gc-udr:onf-release3.0.5-deef506`` |
| 118 | * ausf: ``registry.aetherproject.org/omecproject/5gc-ausf:onf-release3.0.5-be7d4ac`` |
ajay | f5b4f60 | 2021-12-14 22:55:47 -0800 | [diff] [blame] | 119 | * User Plane ``0.5.3`` |
| 120 | * bess: ``"registry.aetherproject.org/proxy/omecproject/upf-epc-bess:master-152a5eb"`` |
| 121 | * pfcpiface: ``"registry.aetherproject.org/proxy/omecproject/upf-epc-pfcpiface:master-152a5eb"`` |