SD-Core 1.4 Release

1.4.0 Release Details

SD-Core supports 4G & 5G network functions and includes APIs for configuration, telemetry, policy management. Access networks can connect to Access & Mobility Management Function (AMF) or Mobility Management Entity (MME) depending on the type of access used. Below is the summary of the features delivered in SD-Core 1.4 Release.

Highlights

Release 1.4.0 focuses on improving the quality of the source code, migrate to GitHub Actions the CI/CD pipeline, add new checks to the CI/CD pipeline, bug fixes to increase stability, several improvements in the UPF, test functionality using Aether. All new functionality in this release contributes to better support of 5G Network functionality.

Go version: Code-base was updated to use Go 1.21.

Linters: Enable multiple linters and enforce them to check Go code. Additionally, enable linter for Dockerfile (hadolint) and linters for other components.

CI/CD pipeline: GitHub Actions were enabled in all of the sd-core 5G components. Moreover, Dependabot was added to help manage dependency and security updates.

Docker images: Full refactoring of Dockerfile to obtain the smallest possible size for the resulting Docker image.

Consolidated repositories: Multiple small/tiny repositories were consolidated into the util repository such that the whole 5G sd-core is composed of as few as possible repositories.

Helm Charts and Documentation: The repositories for the Helm Charts (sdcore-helm-charts) and Documentation (sdcore-docs) were moved from Gerrit to GitHub. Moreover,the Helm Charts for the UPF were moved from the sdfabric-helm-charts umbrella into the sdcore-helm-charts umbrella.

Network Functions: Remove NRF caching in multiple network functions. A more up-to-spec caching will be re-enabled in the future.

Webui: Improvements in this module include:

  • Add GET operations for DeviceGroups and Network Slices.

  • Storing configuration in mongodb (separate database collection for configuration).

  • Recovering configuration in case webui crashes.

  • Port for the webui is now configurable for all NFs (it was hard-coded before).

Sctp-Lb: Full refactoring of SCTPLB code, including the SCTP load balancing algorithm and its Docker image (size decreased from ~1.2GB to 21.2MB)

Config 5G: When deploying SD-Core, all services using this client code go into a tight loop using 100% of a CPU thread until webui is available and configured with a network slice. This issue was resolved by adding some small sleeps that will free up some CPU time. The worst case scenario with this sleep is that the service will take 5 seconds more to get configured after initial deployment.

gNBSim: Several improvements were added to this component, including:

  • Add support for retransmit message.

  • Add support for statistics at procedure level and transaction level.

  • Add E2E latency measurements.

  • Add support for Temporary Mobile Subscriber Identity (TMSI).

  • gNBSim can be deployed as a single Docker container, while the SD-Core runs in a Kubernetes cluster.

UPF: The UPF was the component that has the most feature additions among all of the SD-Core components. Among the most relevant changes are:

  • Add GTPu path measurement/monitoring as specified in 3GPP TS 23.501 (Release 16).

  • Enable CNDP (Cloud Native Data Plane) as another mode of operation.

  • Make BESS to use a newer version of DPDK (i.e., DPDK-22.11).

  • Use JSONC format for the UPF’s configuration instead of JSON to be able to add comments to configuration file.

  • Mark GTP (IP) packets with the same DSCP value as the inner IP packet.

  • Fix issue with GTP Echo response.

  • Improve documentation to deploy UPF in modes (AF_PACKET, AF_XDP, CNDP, DPDK).

  • Refactor route-control script to reduce complexity and to improve readability, logging, error handling, and threading.

Note

For any 3gpp release compliance refer to (4G - 3GPP Release Compliance) and (5G - 3GPP Release Compliance)

Component Versions in the 1.4.0 Release

Helm Chart Versions and their component charts and containers:

  • sdcore-helm-chart: 1.0.0
    • omec-control-plane: 0.12.0
      • hssdb: omecproject/c3po-hssdb:master-df54425

      • hss: omecproject/c3po-hss:master-df54425

      • pcrf: omecproject/c3po-pcrf:pcrf-d58dd1c

      • pcrfdb: omecproject/c3po-pcrf:pcrf-d58dd1c

      • config4g: omecproject/5gc-webui:master-1121545

      • spgwc: omecproject/spgw:master-e419062

      • mme: omecproject/nucleus:master-a8002eb

    • omec-sub-provision: 1.0.0
      • simapp: omecproject/simapp:rel-1.4.0

    • 5g-control-plane: 1.0.0
      • amf: omecproject/5gc-amf:rel-1.4.0

      • nrf: omecproject/5gc-nrf:rel-1.4.0

      • smf: omecproject/5gc-smf:rel-1.4.0

      • ausf: omecproject/5gc-ausf:rel-1.4.0

      • nssf: omecproject/5gc-nssf:rel-1.4.0

      • pcf: omecproject/5gc-pcf:rel-1.4.0

      • udr: omecproject/5gc-udr:rel-1.4.0

      • udm: omecproject/5gc-udm:rel-1.4.0

      • webui: omecproject/5gc-webui:rel-1.4.0

      • sctplb: omecproject/sctplb:rel-1.4.0

      • metricfunc: omecproject/metricfunc:rel-1.4.0

      • upfadapter: omecproject/5gc-smf:rel-1.4.0

    • bess-upf 1.0.0
      • bess: omecproject/upf-epc-bess:rel-1.4.0

      • pfcpiface: omecproject/upf-epc-pfcpiface:rel-1.4.0

    • 5g-ran-sim 1.0.0
      • gnbsim: omecproject/5gc-gnbsim:rel-1.4.0