G Release

G Release

Welcome to the G release page for the O-RAN Software community.

The G release has been released

Non-Real-time RIC (NONRTRIC)

Non-Real-time RIC (NONRTRIC)

Primary Goals:

  • The primary goal of Non-RT RIC is to support intelligent RAN optimization by providing policy-based guidance, ML model management and enrichment information to the near-RT RIC function so that the RAN can optimize, e.g., RRM under certain conditions.

  • It can also perform intelligent radio resource management function in non-real-time interval (i.e., greater than 1 second).

  • Non-RT RIC can use data analytics and AI/ML training/inference to determine the RAN optimization actions for which it can leverage SMO services such as data collection and provisioning services of the O-RAN nodes.

  • Non-RT-RIC will define and coordinate rApps (Non-RT-RIC applications) to perform Non-RT-RIC tasks.

  • Non-RT-RIC will host the A1 interface (between NONRTRIC & near-RT RICs )

  • Non-RT-RIC will also host the new R1 interface (between rApps and SMO/NONRTRIC services)

G Release - Highlights:

Count of Epics (20 issues), User Stories, Tasks, and Issues:  (455 issues)

  • R1 Service Exposure & Management

    • Continued work of Service execution platform extensions (K8s, Istio, Keycloak, OPA, Gateway) to enable and enforce service isolation & exposure

    • Released first version of 3GPP CAPIF-aligned Service Registration & Discovery service

    • Demonstration: "Enforcing Service Exposure for rApps"

  • R1 Data Management & Exposure

    • Aligned with emerging proposals for R1-DME where possible

    • R1 DME Data Catalog support in NONRTRIC ICS 

    • R1 Data delivery & filtering (kafka & REST)

    • Demonstration: "PM Collection & Delivery to rApps"

  • rApp Manager

    • Built on ONAP “Automation Composition” model & platform to implement rApp use cases

    • Demonstrate controlled on-boarding & LCM rApps with & without µService

    • Overlap with Service Exposure work to examine role of an rApp Manager to support controlled exposure & LCM of µService and non-µService parts of an rApp

    • Partly demonstrated: "Deploying & Running NONRTRIC platform and rApps"

  • Continued A1-Policy & A1-Enrichment-Information evolution (& R1-A1)

    • A1 Spec evolution

    • Southbound: A1 Interface

    • Northbound: R1-A1(P) & R1-DME Interfaces

  • Sample use cases (rApps)

  • Testing, Maintenance & Housekeeping

    • Function Test & Integration Test environment,

    • Support integration, deployment & configuration of SMO/Non-RT-RIC related functions & usecases in OSC Integration env.

    • Project coordination, Documentation, Delivery, Reporting, Cross-project alignment, Community demos, O-RAN Standardization support, etc.

PTL: @John Keeney (Ericsson EST)

Wiki: https://lf-o-ran-sc.atlassian.net/wiki/display/RICNR/

Tasks / Backlog: https://jira.o-ran-sc.org/projects/NONRTRIC/issues

Gerrit / Code:

Sonar / Test Coverage Reports

Docs:

Testing:

Weekly Meetings:

Demos:

G release source code, container images and deployment instructions

Near-Real-time RIC X-APPs (RICAPP)

Near-Real-time RIC X-APPs (RICAPP)

Primary Goals: Expand the community working on open source xApps for O-RAN SC. 

Enhance the set of open source xApps in support of the RSAC use cases (traffic steering, network slicing) as well new use cases.

Update and enhance existing xApps 

G release plan (<date>):

  • New HW-Rust xApp to support RUST framework not ready for G-release --@Johannes Becker 

  • HW(python) - RIC Subscription using python xApp framework 

  • RC xApp - GRPC interface support on RC xApp

  • Bouncer xApp - RIC Benchmarking new features addition

  • KPIMON-GO xApp – Version 2.0

  • AD & QP xApp – InfluxDB database integration to fetch data.

PTL: @Sunil Kumar 

Jira: Count of Epics, User Stories, Tasks, and Issues:  165 issues

Completed Epics:

RICAPP-204 - Anomaly Detection xApp (G-Release)

RICAPP-207 QP xApp (G-Release)

RICAPP-201 -KPIMON xApp (G Release)

RICAPP-200RC xApp (G-Release)

RICAPP-202 - upgrading protofile and modified NodebHandler to build CELL-RAN map (cell_map)

G release highlights/accomplishments (16-Dec-2022):

AD xApp :-

  • Removal of pushing data into influxdb when xApp starts.

  1. Either UE's KPIs should be continuously stored into influxDB from KPIMON OR

  2. We will need to run script manually to populate influxDB from .csv separately 

  • changes in AD xApp to read live data from influxDB for inference

  • Addition of Python script to read static data and keep pushing into RICPLT lnfluxDB

  • Addition of exception module to handle errors and exceptions

  • Addition of configuration module to update

    • InfluxDB configuration (near RT RIC instance or external)

    • KPIs 

  • parameter tuning and functionality addition for improvements

QP xApp :-

  • Removal of pushing data into influxdb when xApp starts.

  1. Either UE's KPIs should be continuously stored into influxDB from KPIMON OR

  2. We will need to run script manually to populate influxDB from .csv separately 

  • changes in QP xApp to read live data from influxDB for inference

  • Addition of Python script to read static data from .csv and keep pushing into RICPLT lnfluxDB

  • Addition of exception module to handle errors and exceptions

  • Addition of configuration module to update

    • InfluxDB configuration (near RT RIC instance or external)

    • KPIs 

  • Model validation, parameter tuning and functionality addition for improvements

Gerrit Reviews

 

KPIMON-GO xApp :-

  • E2SM KPM version upgraded to 2.0

  • Added a feature to build a RAN cell map. 

RC xApp:

  • Upgrading the RC service model to 1.0.3.

Bugs fixes:→

  • The E2SM RC control request structure was not properly set. (Ran parameter id 3 is missing in final Rc control structure)

  • values in control request header and control request message are incorrectly set.

TS xApp:

  • upgraded proto file in order to match with the proto file of latest RC xApp.

  • modified - NodebHandler to build CELL-RAN map (cell_map) properly.

G release source code, container images and deployment instructions

The list of container images for the G release (link)

Code Coverage Reports : Latest reports can be found at the following Link: Projects - O-RAN Software Community (sonarcloud.io).

 

Near-Real-time RAN Intelligent Controller Platform (E2 Interface) (RICPLT)

Near-Real-time RAN Intelligent Controller Platform (E2 Interface) (RICPLT)

Original primary goals:

  • E2T improvements: Support in simulator in in internal E2mgr model source code for E2 Reset procedure (from E2 node to RIC (RIC-386)) - full E2 reset procedure from RAN only in RIC-946 in H release; Correct handling of E2 node reconnects and multiple E2 Setups (RIC-932), Support split architecture (CU/DU) in E2T/E2M (RIC-933), test cases of remaining interface types in config update (RIC-911), MDC dynamic log level change in E2T and E2M (RIC-814, RIC-813), check existence of SCTP stack during startup (RIC-931)

  • A1: finalize re-implementation of A1 in golang (from python) (RIC-849, RIC-914)

  • Support for E2 subscriptions via REST from the xapp framwork for c++ (RIC-641)

  • Remove support for RMR in E2 subscription interface and only continue with E2 REST subscription interface towards xApps (RIC-375)

    • We will do this only as first step in the next release because the last missing xapp-framework changes were done very late in the G release (xapp-frame-cpp) supports REST (RIC-641, RIC-705) . Go and python already support E2 REST subscriptions

  • Subscription delete callback to xApps and subscription cleanup after xApp removal (RIC-928, RIC-929)

  • Support for DMS via REST in addition to command line tool DMSCLI (RIC-714)

  • First version of the xApp framework for Rust (RIC-924)

  • missing test cases for xapp-frame-py (RIC-917),

  • xapp-frame (go) support readiness and liveness state with appmgr/rtmgr (RIC-930)

  • First version of a RIC CLI (RIC-445)

  • ric-dep cleanup (RIC-918)

  • E2 check, validate and define how various overload and disconnect case are handled (RIC-704)

  • Enhancments in A1 mediator testing and in E2 subscription testing via nanobot (RIC-878, RIC-860)

  • Update of influxDB from 1.8→2.2, incl. adaptations in stslgo module (RIC-919)

  • Take go version 1.18 into use in base image (RIC-937)

  • bug fixes: RIC-945 e2term crashes occasionally when gNB is disconnected,RIC-944 PlmnId to mnc conversion wrong, RIC-943 alarm-go rmr routing table init failure, RIC-936 reference to gcr -> ghcr, RIC-935 kube-flannel changed namespace, RIC-934 Upgrade sdlgo Golang version to fix CVE-2022-32189 vulnerability,RIC-920 fix translation of 21/22/23 bit gnb ids to hex in E2T, RIC-939 race condition and out of bounds check in RMR

Achieved G release highlights = high-level release notes (2022-12-14) below (note that the release image list is here: link)

  • We finalized work on a new functionally-equivalent A1 mediator implementation in Golang that now replaces the previous python based implementation. The optional usage of stslgo (shared timeseries layer) and InfluxDB got a major version upgrade (1.8→2.2). A new REST interface for the DMS (deployment management service) provides similar functionality as the existing DMS command line tool, but via a REST interface.

  • We implemented the first version of the xApp framework in Rust.

  • We implemented support for E2 subscriptions via REST in the xapp framework for C++. This allows us to deprecated the old RMR based interface early in the next release.

 

  • bug fixes: RIC-945 e2term crashes occasionally when gNB is disconnected,RIC-944 PlmnId to mnc conversion wrong, RIC-943 alarm-go rmr routing table init failure, RIC-936 reference to gcr -> ghcr, RIC-935 kube-flannel changed namespace, RIC-934 Upgrade sdlgo Golang version to fix CVE-2022-32189 vulnerability,RIC-920 fix translation of 21/22/23 bit gnb ids to hex in E2T, RIC-939 race condition and out of bounds check in RMR

  • security-related bug fixes: RIC-942

For the G release of the near-RT RIC we do only limited integration testing: only the use cases: deploy RIC, deploy xApp, make E2 connection, get list of A1 policies has been tested.

Filled in end-of-release checklist: Release criteria checklist

PTL: @Thoralf Czichy

Status 2022-12-14: From the 28 epics planned (link) we implemented 10 (link). 18 items have been moved out of the G release, e.g, because of implementation delays (link). Incomplete items: 0 (link). Additionally we fixed 7 bugs and small implementation tasks (link)

G release source code, container images and deployment instructions

The list of container images for the G release (link). A demo video for the F release still applies to the G release (but with updated references). It shows

  • how to deploy the near-RT RIC platform,

  • compile connect the E2 (e2 node) simulator from the OSC simulator project and

  • compile the hw-go xapp from the xapp project and use the dms_cli to deploy it.

Code coverage: Code coverage reports (current coverage and list of components that need to set up Jenkins job for auto-generation of the reports as part of CI)

Operation and Maintenance (OAM)

Operation and Maintenance (OAM)

Primary Goals:

According to the O-RAN-SC-OAM-Architecture document, all ManagedElements (near-real-time-RIC, O-CU-CP, O-CU-UP, O-DU and O-RU) implement the O1-interface.

G release Feature Scope

Please see also project wiki for further details: G-Release

Sprint Demos:

PTL: @Martin Skorupski

G release highlights/accomplishments (<date>):

 

G release source code, container images and deployment instructions (and status)

Jira: Count of Epics ( 15 issues ), User Stories, Tasks, and Issues:  166 issues

Source Code:

Integration:

O-RAN Central Unit (OCU)

O-RAN Central Unit (OCU)

Primary Goals:

  • In the absence of O-CU, Radisys commercial CU image to be used for E2E testing

G release Feature Scope

G Release Feature Scope: 

  • Radisys Commercial CU is being used as a test fixture for E2E testing

  • This is containerized CU image with following

    • Release version 2.5.3

    • NG interface with SOCKET mode and veth type

    • F1 interface with SOCKET mode and veth type

    • E2 interface support

    • Software Crypto

PTL: 

G release source code, container images and deployment instructions (and status)

O-DU High

O-DU High

Primary Goals:

O-DU New Feature Development

1. Implementation of Discontinuous Reception (DRX)

2. Aligning all modules and interfaces to the latest specification

3. Mobility mode Support (Inter-CU handover)

Feature verification

1. Closed-Loop Automation

2.16QAM and 64 QAM (Spillover from D release)

End to End Integration support

1.TDD/Mu1/100MHz

2.FDD/Mu0/20MHz * (Spillover from D/E release)

G release Feature Scope

  • DRX support

  • Mobility (Inter-CU handover) support 

  • code clean-up and coverage

  • latest specification support for all modules and interfaces (AAD WG8)

  • End to end integration support

PTL:  @Ankit Barve 

Status on Dec 15, 2022 

Implementation of Discontinuous Reception (DRX)

Status: Completed

https://jira.o-ran-sc.org/browse/ODUHIGH-462

Alignment to latest ORAN WG8 AAD specification

Status: Completed

https://jira.o-ran-sc.org/browse/ODUHIGH-464

Testing of odu-high along with intel l1 in different labs

Status: Completed till Broadcast message till odu-low (To be continued in next release)

https://jira.o-ran-sc.org/browse/ODUHIGH-475

Code clean up

Status: Completed

https://jira.o-ran-sc.org/browse/ODUHIGH-461

G release highlights/accomplishments (Dec 15, 2022 ):

  • Added support for Discontinuous Reception

  • Aligning to the latest AAD WG8 specification for existing messages (above 80% complaint)

  • End-to-end integration support 

    • WLS memory management update aligned with latest odu-low (FlexRAN 21.11 intel L1)

    • Upgrade to the latest FAPI Interface and vendor-specific messages

    • OTA setup for both TDD and FDD

    • Successfully tested broadcast message reception at L1

  • Code cleanup

    • At the beginning of the ODU-High project, Radisys pushed seed code with many files and functions which could have been used later for enhancing features

    • This activity targets deleting unused files and functions without any feature impact

    • In the future, if any functionality from deleted code is needed then the previous release code base could be used to retrieve it

G release source code, container images, and deployment instructions (and status)

source code: https://gerrit.o-ran-sc.org/r/gitweb?p=o-du%2Fl2.git;a=shortlog;h=refs%2Fheads%2Fg-release
Release notes: https://docs.o-ran-sc.org/projects/o-ran-sc-o-du-l2/en/latest/release-notes.html#g-release
Document: https://docs.o-ran-sc.org/projects/o-ran-sc-o-du-l2/en/latest/
Code coverage: To be planned as UT framework is not available to provide code coverage.

O-DU Low

O-DU Low

Primary Goals: