From 6520dbc95ae67ceeaa8823191fcbf59c0348b738 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Tue, 31 Oct 2023 15:09:31 +0100 Subject: [PATCH] Implement F1 Setup Failure to originate at RRC --- openair2/F1AP/f1ap_cu_interface_management.c | 10 ++-------- openair2/F1AP/f1ap_cu_interface_management.h | 2 +- openair2/F1AP/f1ap_cu_task.c | 4 ++++ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/openair2/F1AP/f1ap_cu_interface_management.c b/openair2/F1AP/f1ap_cu_interface_management.c index 7cd38027ba..6e6cd8558d 100644 --- a/openair2/F1AP/f1ap_cu_interface_management.c +++ b/openair2/F1AP/f1ap_cu_interface_management.c @@ -196,13 +196,7 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance, sctp_assoc_t assoc_id, uint3 sys_info->sib1_length = DUsi->sIB1_message.size; } - if (req->num_cells_available > 0) { - itti_send_msg_to_task(TASK_RRC_GNB, GNB_MODULE_ID_TO_INSTANCE(instance), message_p); - } else { - CU_send_F1_SETUP_FAILURE(assoc_id); - itti_free(TASK_CU_F1,message_p); - return -1; - } + itti_send_msg_to_task(TASK_RRC_GNB, GNB_MODULE_ID_TO_INSTANCE(instance), message_p); return 0; } @@ -309,7 +303,7 @@ int CU_send_F1_SETUP_RESPONSE(sctp_assoc_t assoc_id, f1ap_setup_resp_t *f1ap_set return 0; } -int CU_send_F1_SETUP_FAILURE(sctp_assoc_t assoc_id) +int CU_send_F1_SETUP_FAILURE(sctp_assoc_t assoc_id, const f1ap_setup_failure_t *fail) { LOG_D(F1AP, "CU_send_F1_SETUP_FAILURE\n"); F1AP_F1AP_PDU_t pdu= {0}; diff --git a/openair2/F1AP/f1ap_cu_interface_management.h b/openair2/F1AP/f1ap_cu_interface_management.h index 8ed6fdf032..4d3f562128 100644 --- a/openair2/F1AP/f1ap_cu_interface_management.h +++ b/openair2/F1AP/f1ap_cu_interface_management.h @@ -54,7 +54,7 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance, sctp_assoc_t assoc_id, uint3 int CU_send_F1_SETUP_RESPONSE(sctp_assoc_t assoc_id, f1ap_setup_resp_t *f1ap_setup_resp); -int CU_send_F1_SETUP_FAILURE(sctp_assoc_t assoc_id); +int CU_send_F1_SETUP_FAILURE(sctp_assoc_t assoc_id, const f1ap_setup_failure_t *fail); /* * gNB-DU Configuration Update diff --git a/openair2/F1AP/f1ap_cu_task.c b/openair2/F1AP/f1ap_cu_task.c index 75d6e1b8cc..38fb722b3e 100644 --- a/openair2/F1AP/f1ap_cu_task.c +++ b/openair2/F1AP/f1ap_cu_task.c @@ -170,6 +170,10 @@ void *F1AP_CU_task(void *arg) { &F1AP_SETUP_RESP(received_msg)); break; + case F1AP_SETUP_FAILURE: + CU_send_F1_SETUP_FAILURE(assoc_id, &F1AP_SETUP_FAILURE(received_msg)); + break; + case F1AP_GNB_CU_CONFIGURATION_UPDATE: // from rrc CU_send_gNB_CU_CONFIGURATION_UPDATE(assoc_id, &F1AP_GNB_CU_CONFIGURATION_UPDATE(received_msg));