Skip to main content

Control Slice O-RAN SM

Overview

A slice-level-PRB-quota control xApp, utilizing the O-RAN standarized service model RC SM, is developed to control slices within E2-Nodes. It offers support for three policy ratios: 1) minimum PRB, 2) maximum PRB, and 3) dedicated PRB by following the structure of RRMPolicyRatio in 3GPP TS 28.541.

It includes the following stages:

  • Init: initializes xApp based on configuration to set up the E42 connection with NearRT-RIC
  • xApp Logic: creates the control request data based on O-RAN specification
  • Control Service: sends control request to each E2-Node
  • Exit: terminates xApp

Sequence Diagram

Detail

source code: link


Init - Step 2 to 6


xApp Logic - Step 7

Develop your xApp logic to generate the control request data by following the structure in O-RAN.WG3.E2SM-RC-v01.03 (8.4.3.6 Slice-level PRB quota). For example, utilize the following functions to generate a control request data:

  • Header: gen_rc_ctrl_hdr()
    • Input:

      ParameterType in CComment
      hdr_frme2sm_rc_ctrl_hdr_eFormat of header for RIC Control Request
      ue_idue_id_e2sm_tUE ID used on E2 interface (6.2.2.6, O-RAN.WG3.E2SM-v02.01)
      ric_style_typeuint32_tControl service style type (7.6.1, O-RAN.WG3.E2SM-RC-v01.03)
      ctrl_act_iduint16_tControl action ID ((7.6.2.1, O-RAN.WG3.E2SM-RC-v01.03)
    • Output:

      ParameterType in CComment
      rc_ctrl.hdre2sm_rc_ctrl_hdr_tHeader of RIC Control Request
    • Example:

    // Define a RC control reuqest data
    rc_ctrl_req_data_t rc_ctrl = {0};

    // Define header's format
    e2sm_rc_ctrl_hdr_e hdr_frm = FORMAT_1_E2SM_RC_CTRL_HDR

    // Generate UE ID, utilized by the RAN function to identify the UE to be controlled
    ue_id_e2sm_t ue_id = gen_rc_ue_id(GNB_UE_ID_E2SM);

    // Define control service style type
    // Note: 2 is mapped to control radio resource allocation
    uint32_t ric_style_type = 2;

    // Define control action ID
    // Note: 6 is mapped to control the split ratio of a DRB across its RLC entities
    uint16_t ctrl_act_id = 6;

    rc_ctrl.hdr = gen_rc_ctrl_hdr(hdr_frm, ue_id, ric_style_type, ctrl_act_id);
  • Message: gen_rc_ctrl_msg()
    • Input:

      ParameterType in CComment
      msg_frme2sm_rc_ctrl_msg_eFormat of message for RIC Control Request
    • Output:

      ParameterType in CComment
      rc_ctrl.msge2sm_rc_ctrl_msg_tMessage of RIC Control Request
    • Example:

    rc_ctrl.msg = gen_rc_ctrl_msg(FORMAT_1_E2SM_RC_CTRL_MSG);

    Note: The function gen_rc_ctrl_msg() calls gen_rc_ctrl_msg_frmt_1_slice_level_PRB_quota() to fill the required parameters n accordance with Section 8.4.3.6 (Slice-level PRB quota) of the O-RAN.WG3.E2SM-RC-v01.03 specification, adhering to the e2sm_rc_ctrl_msg_frmt_1_t structure.

    Section 8.4.3.6:

    RRM Policy Ratio List, LIST (len 1)
    > RRM Policy Ratio Group, STRUCTURE (len 4)
    >> RRM Policy, STRUCTURE (len 1)
    >>> RRM Policy Member List, LIST (len 1)
    >>>> RRM Policy Member, STRUCTURE (len 2)
    >>>>> PLMN Identity, ELEMENT
    >>>>> S-NSSAI, STRUCTURE (len 2)
    >>>>>> SST, ELEMENT
    >>>>>> SD, ELEMENT
    >> Min PRB Policy Ratio, ELEMENT
    >> Max PRB Policy Ratio, ELEMENT
    >> Dedicated PRB Policy Ratio, ELEMENT

    For further details, please refer to the source code.


Control Service - Step 8 to 12


Exit - Step 13 to 14