Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 R-SAC use cases (traffic steering, network slicing) as well new use cases. Update and enhance existing xApps to take advantage of the new features in xApp SDK (implemented by the xApp frameworks in C++, go, and python).

E release plan (12-01-21):

  • New xApps: RC (RAN Control) by Mavenir - implements subset of E2 SM RC
  • Improved xApps:
    • LP (Load Prediction) by ChinaMobile: Include trained ML model, will populate predictions in inFlux DB
    • AD (Anomaly Detection) by HCL: Will identify a new anomaly type (area anomaly), use geo-location as a feature.
    • QP (QoE Predictor) by HCL: Include prediction for current serving cell, incorporate predicted load as a feature, provide sequence of predictions.
    • TS (Traffic Steering) by UTFPR (University, Parana, Brazil): Call RC xApp to trigger UE handover, improvements in traffic steering logic.
    • Bouncer by HCL: Increase performance and functional testing capabilities; continue identifying RIC platform bottlenecks.
    • HW (HelloWorld) demo xApps in C++, go and python by AT&T and Samsung: Add usage of more platform features, update usage of platform features that are evolving.
  • Integration of AD, QP, TS, LP, RC, and KPIMON with Viavi simulator.
  • Extensive performance benchmarking of the RIC platform using Bouncer and E2 Simulator (HCL)
  • Design for xApps to support network slicing use case.

PTL: SUNIL SINGH  (former PTL still helping out: Matti Hiltunen)

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

Status E release highlights/accomplishments (12-0114-21): 

  • RC: Committers identified, design agreed, repo created
  • LP: Trained ML-model added to the xApp
  • AD: Work on new anomaly type - testing in progress
  • HW: New functionality added to HW-go and HW-python.
  • Bouncer: Bottleneck with E2 Subscriptions identified in RIC platform. - RIC benchmarking testing - In progress
  • Discussions on network slicing use case with HCL, Viavi, UTFPR. - Will come up with the proposal


  • The release introduces a new xApp RC (RAN Control) from Mavenir. RC implements a subset of the new E2 SM RC to support traffic steering end to end use case.
  • The AD (Anomaly Detection) and QP (QoE Prediction) xApps from HCL introduce a new anomaly type and other extensions to support the traffic steering use case.
  • The Bouncer xApp from HCL ....
  • The LP (Load Prediction) xApp from CMCC now includes a trained ML model (and the issue of how to handle large trained ML models was resolved.)
  • The TS (Traffic Steering) xApp maintained by the Federal Technological University of Parana, Brazil includes the ability to call the new RC xApp via gRPC-based interface.
  • The demo HW (HelloWord) xApps in python and go from Samsung include additional functionality.
  • The AD, QP, and TS xApps have been integration tested using Viavi E2 tester.

E release source code, container images and deployment instructions

Each repository has a branch named "e-release" that can be accessed using git. For example, the source code for the AD xApp can be retrieved using  "git clone --branch e-release "https://gerrit.o-ran-sc.org/r/ric-app/ad". The other xApps in the E release can be found at ric-app/qp, ric-app/ts, ric-app/lp, ric-app/hw, ric-app/hw-go, ric-app/hw-python, ric-app/mc, ric-app/bouncer, ric-app/rc, and scp/ric-app/kpimon. Note that the other ric-app repos are obsolete.

Note that this branch is in maintenance and all new development is done in branch "master".

In order to deploy the E release xApps,  you can re-use the pre-created container images as defined here and the instructions on testing the xApps can be found here

E release source code, container images and deployment instructions

Will be provided when E Release is ready.



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

Mission: E2 updates with first E2APv1.1 support and improvements in E2 subscription handling.

Original primary goals: Update to E2APv1.1 (E2 Node configuration transfer in E2 Setup and E2 Configuration Update (RIC-638, even if likely changing again in E2APv2.0) and E2SM OID support in internal E2SM function query interfaces (RIC-640)) // RIC-809 Subscription manager to delete subscriptions in case of E2 disconnect (incl. Xapp changes) // RIC-796 sub mgr and xapp-frame error cases // RIC-793 Prevent A1 Job ID conflicts from multiple RICs using the same A1 producer (SMO) // Partial only: RIC-647 (first step of reimplementation A1 mediator in golang to avoid A1 being the only python container in RIC platform // RIC-709 E2 stats exposing individual counters instead of groups // RIC-714 support for DMS REST interface in addition to DMS CLI // RIC-113 DB: SDL CLI for debugging and testing // RIC-110 FindKeys/GetAllKeys SDL API to support glob-style patterns // RIC-676 Update to Ubuntu 20.04 as base image for all containers // improvements in xApp testing // 29 Epics planned: link and 30 items as stretch goals: link

Achieved E release highlights = high-level release notes (2021-12-03) below (note that the release image list is here: link)

  • we updated from E2APv1.0 to E2APv1.1. The platform now stores OIDs (introduced in E2APv1.1) for the E2SM of E2 function definitions in RNIB. Since E2APv1.1 is backwards compatible with 1.0, you can still connect E2 nodes that support E2APv1.0. Note that for the next release we plan to switch to E2APv2.0 only.
  • The E2 subscription manager now automatically deletes its stored subscriptions if it gets notified (by the E2 manager) of E2 nodes having disconnected. xApps are expected to do the same and need to re-issue their subscriptions once the E2 node is reconnected. This behavior is different to earlier behavior where the subscription manager kept the subscriptions in such situations. Note that the standard requires the E2 node to delete its subscriptions if there's the E2 interface is disconnected.
  • The E2 subscription manager now handles various error scenarios that previously were not handled.
  • We will continue the re-implementation of the A1 mediator in golang in release F. The first parts are already implemented, but in the E release we stay with the "old" python-implementation of the A1 mediator.
  • On SDL side we now have a SDL CLI that can be used in testing (instead of direct usage of the Redis CLI). The SDL API for findkeys/getkeys now supports glob-style patterns.
  • The golang SDL API/library now handles namespaces as part of its function signatures instead of this being a global parameter. This eases usage of multiple namespaces from the same application.

For the E release of the near-RT RIC we did only limited integration testing: only the use cases: deploy RIC, deploy xApp and make E2 connection were tested.

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

Status 2021-12-08: we are working on implementing the last planned development items below. From the 29 epics planned (link) we implemented so far 13 (link). 13 items have been moved out of the E release, e.g, because of implementation delays (link). We expect 3 items to still complete (link).

E release source code, container images and deployment instructions

Each repository has a branch named "e-release" that can be accessed using git: "git clone --branch e-release "https://gerrit.o-ran-sc.org/r/ric-plt/e2". Make sure to replace the URL with correct repositories. Note that this branch is in maintenance and all new development is done in branch "master". The complete list of repositories belonging to  the RIC platform is defined here: Scope of the near-RT RIC platform and its components (summary).

In order to deploy the E release of the near-RT RIC platform you can re-use the pre-created container images as defined here. The same instructions as always apply, i.e., follow the general latest instructions: https://docs.o-ran-sc.org/projects/o-ran-sc-ric-plt-ric-dep/en/latest/ → Installing Near Realtime RIC in RIC Cluster, but make sure to use "git clone --branch e-release ..." instead of "git clone ..." when cloning it/dep and ric-plt/ric-dep.

...