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
- Used Functions
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:
Parameter Type in C Comment hdr_frm
e2sm_rc_ctrl_hdr_e
Format of header for RIC Control Request ue_id
ue_id_e2sm_t
UE ID used on E2 interface (6.2.2.6, O-RAN.WG3.E2SM-v02.01) ric_style_type
uint32_t
Control service style type (7.6.1, O-RAN.WG3.E2SM-RC-v01.03) ctrl_act_id
uint16_t
Control action ID ((7.6.2.1, O-RAN.WG3.E2SM-RC-v01.03) -
Output:
Parameter Type in C Comment rc_ctrl.hdr
e2sm_rc_ctrl_hdr_t
Header 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:
Parameter Type in C Comment msg_frm
e2sm_rc_ctrl_msg_e
Format of message for RIC Control Request -
Output:
Parameter Type in C Comment rc_ctrl.msg
e2sm_rc_ctrl_msg_t
Message 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()
callsgen_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 thee2sm_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, ELEMENTFor further details, please refer to the source code.
-
Control Service - Step 8 to 12
- Used function
Exit - Step 13 to 14
- Used function