Commit b9bfff33 authored by Guido Casati's avatar Guido Casati Committed by Robert Schmidt

Minor improvements to E1 procedures readability

parent 60ca77f8
...@@ -400,7 +400,7 @@ static int create_gNB_tasks(ngran_node_t node_type, configmodule_interface_t *cf ...@@ -400,7 +400,7 @@ static int create_gNB_tasks(ngran_node_t node_type, configmodule_interface_t *cf
} }
} }
// If CU // E1AP initialisation, whether the node is a CU or has integrated CU
if (node_type == ngran_gNB_CU || node_type == ngran_gNB) { if (node_type == ngran_gNB_CU || node_type == ngran_gNB) {
MessageDef *msg = RCconfig_NR_CU_E1(NULL); MessageDef *msg = RCconfig_NR_CU_E1(NULL);
instance_t inst = 0; instance_t inst = 0;
......
...@@ -22,10 +22,10 @@ ...@@ -22,10 +22,10 @@
/* gNB_CUUP application layer -> E1AP messages */ /* gNB_CUUP application layer -> E1AP messages */
MESSAGE_DEF(E1AP_REGISTER_REQ, MESSAGE_PRIORITY_MED, e1ap_register_req_t, e1ap_register_req) MESSAGE_DEF(E1AP_REGISTER_REQ, MESSAGE_PRIORITY_MED, e1ap_register_req_t, e1ap_register_req)
/* E1AP messages -> RRC (CU-CP) */ /* E1AP Interface Management Messages */
/* E1AP Setup Request: gNB-CU-UP -> gNB-CU-CP */
MESSAGE_DEF(E1AP_SETUP_REQ , MESSAGE_PRIORITY_MED , e1ap_setup_req_t , e1ap_setup_req) MESSAGE_DEF(E1AP_SETUP_REQ , MESSAGE_PRIORITY_MED , e1ap_setup_req_t , e1ap_setup_req)
/* E1AP Setup Response: gNB-CU-CP -> gNB-CU-UP */
/* E1AP -> eNB_DU or eNB_CU_RRC -> E1AP application layer messages */
MESSAGE_DEF(E1AP_SETUP_RESP , MESSAGE_PRIORITY_MED, e1ap_setup_resp_t , e1ap_setup_resp) MESSAGE_DEF(E1AP_SETUP_RESP , MESSAGE_PRIORITY_MED, e1ap_setup_resp_t , e1ap_setup_resp)
/* E1AP Setup Failure: gNB-CU-CP -> gNB-CU-UP */ /* E1AP Setup Failure: gNB-CU-CP -> gNB-CU-UP */
MESSAGE_DEF(E1AP_SETUP_FAIL, MESSAGE_PRIORITY_MED, e1ap_setup_fail_t, e1ap_setup_fail) MESSAGE_DEF(E1AP_SETUP_FAIL, MESSAGE_PRIORITY_MED, e1ap_setup_fail_t, e1ap_setup_fail)
......
...@@ -1860,6 +1860,14 @@ void e1apHandleTimer(instance_t myInstance) ...@@ -1860,6 +1860,14 @@ void e1apHandleTimer(instance_t myInstance)
e1_task_send_sctp_association_req(TASK_CUUP_E1, myInstance, &getCxtE1(myInstance)->net_config); e1_task_send_sctp_association_req(TASK_CUUP_E1, myInstance, &getCxtE1(myInstance)->net_config);
} }
/**
* @brief E1AP Centralized Unit Control Plane (CU-CP) task function.
*
* This is the main task loop for the E1AP CUCP module:
* it listens for incoming messages from the Inter-Task Interface (ITTI)
* and calls the relevant handlers for each message type.
*
*/
void *E1AP_CUCP_task(void *arg) { void *E1AP_CUCP_task(void *arg) {
LOG_I(E1AP, "Starting E1AP at CU CP\n"); LOG_I(E1AP, "Starting E1AP at CU CP\n");
MessageDef *msg = NULL; MessageDef *msg = NULL;
...@@ -1931,6 +1939,14 @@ void *E1AP_CUCP_task(void *arg) { ...@@ -1931,6 +1939,14 @@ void *E1AP_CUCP_task(void *arg) {
} }
} }
/**
* @brief E1AP Centralized Unit User Plane (CU-UP) task function.
*
* This is the main task loop for the E1AP CUUP module:
* it listens for incoming messages from the Inter-Task Interface (ITTI)
* and calls the relevant handlers for each message type.
*
*/
void *E1AP_CUUP_task(void *arg) { void *E1AP_CUUP_task(void *arg) {
LOG_I(E1AP, "Starting E1AP at CU UP\n"); LOG_I(E1AP, "Starting E1AP at CU UP\n");
e1ap_common_init(); e1ap_common_init();
......
...@@ -148,7 +148,7 @@ void *gNB_app_task(void *args_p) ...@@ -148,7 +148,7 @@ void *gNB_app_task(void *args_p)
AssertFatal(false, "Create task for E1AP CP failed\n"); AssertFatal(false, "Create task for E1AP CP failed\n");
E1_t e1type = CPtype; E1_t e1type = CPtype;
MessageDef *msg = RCconfig_NR_CU_E1(&e1type); MessageDef *msg = RCconfig_NR_CU_E1(&e1type);
AssertFatal(msg != NULL, "Send inti to task for E1AP CP failed\n"); AssertFatal(msg != NULL, "Send itti to task for E1AP CP failed\n");
// this sends the E1AP_REGISTER_REQ to CU-CP so it sets up the socket // this sends the E1AP_REGISTER_REQ to CU-CP so it sets up the socket
// it does NOT use the E1AP part // it does NOT use the E1AP part
itti_send_msg_to_task(TASK_CUCP_E1, 0, msg); itti_send_msg_to_task(TASK_CUCP_E1, 0, msg);
......
...@@ -2065,6 +2065,9 @@ static pdusession_level_qos_parameter_t *get_qos_characteristics(const int qfi, ...@@ -2065,6 +2065,9 @@ static pdusession_level_qos_parameter_t *get_qos_characteristics(const int qfi,
return NULL; return NULL;
} }
/**
* @brief E1AP Bearer Context Setup Response processing
*/
void rrc_gNB_process_e1_bearer_context_setup_resp(e1ap_bearer_setup_resp_t *resp, instance_t instance) void rrc_gNB_process_e1_bearer_context_setup_resp(e1ap_bearer_setup_resp_t *resp, instance_t instance)
{ {
gNB_RRC_INST *rrc = RC.nrrrc[0]; gNB_RRC_INST *rrc = RC.nrrrc[0];
...@@ -2172,6 +2175,9 @@ void rrc_gNB_process_e1_bearer_context_setup_resp(e1ap_bearer_setup_resp_t *resp ...@@ -2172,6 +2175,9 @@ void rrc_gNB_process_e1_bearer_context_setup_resp(e1ap_bearer_setup_resp_t *resp
rrc->mac_rrc.ue_context_modification_request(ue_data.du_assoc_id, &ue_context_modif_req); rrc->mac_rrc.ue_context_modification_request(ue_data.du_assoc_id, &ue_context_modif_req);
} }
/**
* @brief E1AP Bearer Context Modification Response processing
*/
void rrc_gNB_process_e1_bearer_context_modif_resp(const e1ap_bearer_modif_resp_t *resp) void rrc_gNB_process_e1_bearer_context_modif_resp(const e1ap_bearer_modif_resp_t *resp)
{ {
gNB_RRC_INST *rrc = RC.nrrrc[0]; gNB_RRC_INST *rrc = RC.nrrrc[0];
...@@ -2188,6 +2194,9 @@ void rrc_gNB_process_e1_bearer_context_modif_resp(const e1ap_bearer_modif_resp_t ...@@ -2188,6 +2194,9 @@ void rrc_gNB_process_e1_bearer_context_modif_resp(const e1ap_bearer_modif_resp_t
} }
} }
/**
* @brief E1AP Bearer Context Release processing
*/
void rrc_gNB_process_e1_bearer_context_release_cplt(const e1ap_bearer_release_cplt_t *cplt) void rrc_gNB_process_e1_bearer_context_release_cplt(const e1ap_bearer_release_cplt_t *cplt)
{ {
// there is not really anything to do here as of now // there is not really anything to do here as of now
......
...@@ -134,6 +134,9 @@ static void e1ap_setup_failure(sctp_assoc_t assoc_id, uint64_t transac_id) ...@@ -134,6 +134,9 @@ static void e1ap_setup_failure(sctp_assoc_t assoc_id, uint64_t transac_id)
itti_send_msg_to_task(TASK_CUCP_E1, 0 /*unused by callee*/, msg_p); itti_send_msg_to_task(TASK_CUCP_E1, 0 /*unused by callee*/, msg_p);
} }
/**
* @brief E1AP Setup Request processing on CU-CP
*/
int rrc_gNB_process_e1_setup_req(sctp_assoc_t assoc_id, e1ap_setup_req_t *req) int rrc_gNB_process_e1_setup_req(sctp_assoc_t assoc_id, e1ap_setup_req_t *req)
{ {
AssertFatal(req->supported_plmns <= PLMN_LIST_MAX_SIZE, "Supported PLMNs is more than PLMN_LIST_MAX_SIZE\n"); AssertFatal(req->supported_plmns <= PLMN_LIST_MAX_SIZE, "Supported PLMNs is more than PLMN_LIST_MAX_SIZE\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment