Skip to content

1. CCC Control Request

1.1 XappCccControlRequestPublisherPubData

The XappCccControlRequestPublisherPubData is responsible for sending CCC (Cell Configuration and Control) requests to the E2 nodes.

These control requests are used to adjust various aspects of the network, such as shutting down cells, bringing cells up, or modifying specific configurations.

Each control request involves specifying control actions and parameters that define the specific type of adjustment or control that the xApp aims to execute on the RAN via the E2 interface.

1.2 Examples

Info

To publish a Cell Shutdown Request, the following NATS subject must be used:

e2-t.E2SM-CCC-CONTROL-REQUEST
This subject is responsible for publishing the control message that contains the desired CCC control action.

The following Python example demonstrates how to send a CCC Control Request.

Example

Send CCC Control example:

# Add Accelleran xapp library
from xapp_lib import xapp_lib
# Add protobuf definitions
from xapp_lib.proto_pb2.accelleran.e2 import genCcc_pb2
# Add function to serialize json dict in protobuf
from google.protobuf.json_format import ParseDict

def main():

    ### Use xApp Builder to create the xApp
    builder = xapp_lib.XAppBuilder("../..", absolute=False)
    builder.metadata("core/xapp_metadata.json")
    builder.endpoints("config/xapp_endpoints.json")
    builder.config("config/xapp_config.json")
    builder.readme("README.md")
    xapp = builder.build()

    # Get xApp request id
    req_id = xapp.id
    # Get xApp instance id
    node_a_ins_id = xapp.transaction_id_gen.get()

    # Define the XappCccControlRequestPublisherPubData python dictionary
    cell_shutdown_config = {
        "E2smCccRicControlRequest": {
            "RicRequestId": {
                "RicRequestorId": req_id,
                "RicInstanceId": node_a_ins_id
            },
            ...
        }
    }

    # Serialize the shutdown request message
    e2sm_ccc_control_request_msg = genCcc_pb2.XappCccControlRequestPublisherPubData()
    ParseDict(cell_shutdown_config, e2sm_ccc_control_request_msg)

    # Send E2SM CCC request message
    xapp.nats(endpoint="NATS_URL_5G").send_data(
        "e2-t.E2SM-CCC-CONTROL-REQUEST", e2sm_ccc_control_request_msg.SerializeToString()
    )

1.2.1 Cell Shutdown Request

Example XappCccControlRequestPublisherPubData message for cell shutdown:

E2 CCC Cell Shutdown Request example
{
    "E2smCccRicControlRequest": {
        "GlobalE2NodeId": {
            "GlobalGnbId": {
                "PlmnIdentity": {
                    "Data": [
                        153,
                        249,
                        153
                    ]
                },
                "GnbId": {
                    "Value": 1,
                    "Length": 22
                }
            },
            "OptionalGnbDuId": 1
        },
        "RicRequestId": {
            "RicRequestorId": 23,
            "RicInstanceId": 153563
        },
        "RanFunctionName": "ORAN-E2SM-CCC",
        "RanFunctionId": 1,
        "RicCallProcessId": {
            "items": [0]
        },
        "RicControlAckRequest": genE2apMsgData_pb2.RIC_CONTROL_ACK_REQUEST_ACK,
        "RicControlHeader": json.dumps({
            "RIC-Control-Header": {
                "E2SM-CCC-ControlHeaderFormat1": {
                    "ricStyleType": 2
                }
            }
        }),
        "RicControlMessage": json.dumps({
            "controlMessageFormat": {
                "E2SM-CCC-ControlMessageFormat2": {
                    "listOfCellsControlled": [
                        {
                            "cellGlobalId": {
                                "plmnIdentity": {
                                    "mcc": "311",
                                    "mnc": "48"
                                },
                                "nRCellIdentity": "16385"
                            },
                            "listOfConfigurationStructures": [
                                {
                                    "ranConfigurationStructureName": "O-CESManagementFunction",
                                    "oldValuesOfAttributes": {
                                        "ranConfigurationStructure": {
                                            "energySavingControl": "toBeEnergySaving"
                                        }
                                    },
                                    "newValuesOfAttributes": {
                                        "ranConfigurationStructure": {
                                            "energySavingControl": "toBeEnergySaving"
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                }
            }
        })
    }
}

1.2.2 Cell Bring-up Request

Example XappCccControlRequestPublisherPubData message for cell bring-up:

E2 CCC Bring-up Request example
{
    "E2smCccRicControlRequest": {
        "GlobalE2NodeId": {
            "GlobalGnbId": {
                "PlmnIdentity": {
                    "Data": [
                        153,
                        249,
                        153
                    ]
                },
                "GnbId": {
                    "Value": 1,
                    "Length": 22
                }
            },
            "OptionalGnbDuId": 1
        },
        "RicRequestId": {
            "RicRequestorId": 23,
            "RicInstanceId": 153563
        },
        "RanFunctionName": "ORAN-E2SM-CCC",
        "RanFunctionId": 1,
        "RicCallProcessId": {
            "items": [0]
        },
        "RicControlAckRequest": genE2apMsgData_pb2.RIC_CONTROL_ACK_REQUEST_ACK,
        "RicControlHeader": json.dumps({
            "RIC-Control-Header": {
                "E2SM-CCC-ControlHeaderFormat1": {
                    "ricStyleType": 2
                }
            }
        }),
        "RicControlMessage": json.dumps({
            "controlMessageFormat": {
                "E2SM-CCC-ControlMessageFormat2" : {
                    "listOfCellsControlled": [
                        {
                            "cellGlobalId": {
                                "plmnIdentity": {
                                    "mcc": "311",
                                    "mnc": "48"
                                },
                                "nRCellIdentity": "16385"
                            },
                            "listOfConfigurationStructures": [
                                {
                                    "ranConfigurationStructureName": "O-CESManagementFunction",
                                    "oldValuesOfAttributes": {
                                        "ranConfigurationStructure": {
                                            "energySavingControl": "toBeEnergySaving"
                                        }
                                    },
                                    "newValuesOfAttributes": {
                                        "ranConfigurationStructure": {
                                            "energySavingControl": "toBeNotEnergySaving"
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                }
            }
        })
    }
}

1.3 Schema

This section provides the JSON schema for the E2 CCC Control Request, which outlines the expected structure and data types.

E2 CCC Control Request schema
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "$ref": "#/definitions/XappCccControlRequestPublisherPubData",
    "definitions": {
        "PBE2apMsgData.GlobalE2NodeId": {
            "properties": {
                "GlobalGnbId": {
                    "$ref": "#/definitions/PBE2apMsgData.GlobalGnbId",
                    "additionalProperties": true
                },
                "OptionalGnbCuUpId": {
                    "type": "string"
                },
                "OptionalGnbDuId": {
                    "type": "string"
                }
            },
            "additionalProperties": true,
            "type": "object",
            "title": "Global E 2 Node Id",
            "description": "*O-RAN.WG3.E2AP-v02.00 9.2.6 Global E2 Node ID"
        },
        "PBE2apMsgData.GlobalGnbId": {
            "properties": {
                "PlmnIdentity": {
                    "$ref": "#/definitions/PBE2apMsgData.PlmnIdentity",
                    "additionalProperties": true
                },
                "GnbId": {
                    "$ref": "#/definitions/PBE2apMsgData.GnbId",
                    "additionalProperties": true
                }
            },
            "additionalProperties": true,
            "type": "object",
            "title": "Global Gnb Id"
        },
        "PBE2apMsgData.GnbId": {
            "properties": {
                "Value": {
                    "type": "integer"
                },
                "Length": {
                    "type": "integer",
                    "description": "Number of bits used in the gnbId. This may vary from 22 to 32"
                }
            },
            "additionalProperties": true,
            "type": "object",
            "title": "Gnb Id"
        },
        "PBE2apMsgData.PlmnIdentity": {
            "properties": {
                "Data": {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                }
            },
            "additionalProperties": true,
            "type": "object",
            "title": "Plmn Identity",
            "description": "*O-RAN.WG3.E2SM-R003-v03.00 6.2.3.1 PLMN Identity"
        },
        "PBE2apMsgData.RicCallProcessId": {
            "properties": {
                "items": {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array",
                    "description": "Carries max 4096 elements of type uint32"
                }
            },
            "additionalProperties": true,
            "type": "object",
            "title": "Ric Call Process Id"
        },
        "PBE2apMsgData.RicRequestId": {
            "properties": {
                "RicRequestorId": {
                    "type": "integer"
                },
                "RicInstanceId": {
                    "type": "integer"
                }
            },
            "additionalProperties": true,
            "type": "object",
            "title": "Ric Request Id"
        },
        "PBXAppCccData.E2smCccRicControlRequest": {
            "properties": {
                "GlobalE2NodeId": {
                    "$ref": "#/definitions/PBE2apMsgData.GlobalE2NodeId",
                    "additionalProperties": true
                },
                "RicRequestId": {
                    "$ref": "#/definitions/PBE2apMsgData.RicRequestId",
                    "additionalProperties": true
                },
                "RanFunctionName": {
                    "type": "string"
                },
                "RanFunctionId": {
                    "type": "integer"
                },
                "RicCallProcessId": {
                    "$ref": "#/definitions/PBE2apMsgData.RicCallProcessId",
                    "additionalProperties": true
                },
                "RicControlAckRequest": {
                    "enum": [
                        "RIC_CONTROL_ACK_REQUEST_NO_ACK",
                        "RIC_CONTROL_ACK_REQUEST_ACK"
                    ],
                    "type": "string",
                    "title": "Ric Control Ack Request"
                },
                "RicControlHeader": {
                    "type": "string"
                },
                "RicControlMessage": {
                    "type": "string"
                }
            },
            "additionalProperties": true,
            "type": "object",
            "title": "E 2 Sm Ccc Ric Control Request"
        },
        "XappCccControlRequestPublisherPubData": {
            "properties": {
                "E2smCccRicControlRequest": {
                    "$ref": "#/definitions/PBXAppCccData.E2smCccRicControlRequest",
                    "additionalProperties": true,
                    "description": "See E2smCccRicControlRequest for detailed description of this field"
                },
                "tlpublishTime": {
                    "type": "string",
                    "description": "Contains the time of publishing in EPOCH milliseconds"
                },
                "spanContext": {
                    "type": "string",
                    "description": "Contains an opentracing spancontext",
                    "format": "binary",
                    "binaryEncoding": "base64"
                }
            },
            "additionalProperties": true,
            "type": "object",
            "title": "Xapp Ccc Control Request Publisher Pub Data",
            "description": "* Publisher : XappCccControlRequestPublisher Topic : E2SM-CCC-CONTROL-REQUEST Description : Publishes E2 CCC Control Request initiated by the XAPP to the SMCCC"
        }
    }
}