Versions Compared

Key

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

Table of Contents


xApp


O-RAN SC Software Development Kit

Enable xApp to:

  • Send messages
  • Access R-NIB and database
  • Talk to eNBs and gNBs
  • Define life-cycle
  • Report logs and status

Help developers:

  • Generate skeleton codes
  • Setup development and testing environments
  • Package, distribute and onboard their xApp



O-RAN SC SDK Components

  • Libraries, Interfaces and APIs
  • Tools
  • Documentation and Guides
  • Code Samples
  • Processes and Flows




Documentation, Code Repos, and Project Info

  • RMR Guides

  • SDL Guide

  • xAppFramework Guide

  • Example Hello World xAPP Tutorial 
  • xApp Architecutre, Models and Assumptions

  • ASN.1 User Guide


  • ORAN Libraries, Interfaces and APIs



    RAN Inventory Management

    R-NIB:

    • Inventory of RAN elements connected to the O-RAN SC
    • Service models (SMs) supported by each RAN element

    Note: Load balanced connection management via replicated E2 Terms.

    Other NIBs store UE-level metrics and aggregate metrics.




    xApp O-RAN interfaces

    E2:

    • Available E2SMs populated in R-NIB (in R5)
    • xApp constructs E2AP/SM message contents and sends/receives via RMR
    • RMR will route subscription requests to SubManager (for policy checking) and all messages to the correct E2T instance. (now)
    • REST-based subscription API (in R5)

    A1:

    • Policy definition happens outside O-RAN SC
    • xApp specifies supported policy types in xApp descriptor
    • xApp receives policy instance creation/deletion via RMR
    • Frameworks: ”register handler for A1” (now)

    O1-CM:

    • Initial and updated configuration via K8s config map
    • We believe this can be abstracted by the framework (xApp just registers a handler)
    • Still open discussion in O-RAN WGs on how LCM should be done.

    O1-PM/FM:

    • xApp alarm api partially available in R4 (go only), stat api in R5.
    • (for now) AT&T xApps use VES, Nokia xApps use Prometheus.



    Platform Libraries and APIs

    Name

    Purpose

    LanguagesFrameworksAPIs
    RMR

    Policy driven messaging

    C++, Python, Go

    Yes

    RIC Message Router – RMR

    SDL

     shared data storage

    C++, Go

    Yes

    O-RAN SC SDL C++ library User Guide

    Log

    Logging

    C/C++, Python, Go

    Yes


    Alarm

    Alarm Propagation

    C++, Go

    No

    RIC Alarm System

    Jaeger

    Tracing

    C++, Go

    NoRIC tracing helper library

    xAppFramework

    Wrappers

    C++, Python, Go

    Yes

    RIC xAPP C++ Framework




    Tools

    Name

    Purpose

    InputsProducesComments

    xApp frameworks for C++, Python and Go

    Code development

    N/A

    xApp skeleton codes

    Can be extended to provides wrapping for most of the library APIs.

    ASN.1 Compiler

    Code development

    ANS.1 module

    C source code to serialize C structures

    C++ wrappers for E2AP and E2SM are under development

    xApp onboarder

    Packaging and distribution

    xApp descriptor

    xApp helm charts

    parameter override YAML

    Defines the xApp descriptor format

    Used by all xApp today

    xApp builder docker images

    Packaging and distribution

    Docker file

    xApp dev and distribution image

    Preinstalled with all the libraries

    E2 Simulator

    Testing

    E2 messages

    Simulated responses

    E2 messages playback

    E2 based simulation

    NRT-RIC one-click deployment

    Testing

    Recipe YAML

    Fully functioning RIC platform

    Each developer should have his/her own RIC dev environment

    xApp health check tool

    Life cycle management

    Health check logics

    xApp life cycle control loop

    Currently K8S based

    Can be extended to support A1 policy