From b9acf4a8e32a3f1a036f90e2a5f5a2a943e747ae Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 5 Feb 2025 16:24:50 +0100 Subject: [PATCH] Refactor E1 UE removal in separate function Refactor into remove_ue_e1(), to be used in the next commit, independent of e1_bearer_release_cmd(). --- openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c b/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c index 380ae1f60a..dc9b5b52ee 100644 --- a/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c +++ b/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c @@ -300,24 +300,28 @@ void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req) get_e1_if()->bearer_modif_response(&modif); } -void e1_bearer_release_cmd(const e1ap_bearer_release_cmd_t *cmd) +static void remove_ue_e1(const uint32_t ue_id) { bool need_ue_id_mgmt = e1_used(); instance_t n3inst = get_n3_gtp_instance(); instance_t f1inst = get_f1_gtp_instance(); - LOG_I(E1AP, "releasing UE %d\n", cmd->gNB_cu_up_ue_id); - - newGtpuDeleteAllTunnels(n3inst, cmd->gNB_cu_up_ue_id); + newGtpuDeleteAllTunnels(n3inst, ue_id); if (f1inst >= 0) // is there F1-U? - newGtpuDeleteAllTunnels(f1inst, cmd->gNB_cu_up_ue_id); + newGtpuDeleteAllTunnels(f1inst, ue_id); if (need_ue_id_mgmt) { // see issue #706: in monolithic, gNB will free PDCP of UE - nr_pdcp_remove_UE(cmd->gNB_cu_up_ue_id); - cu_remove_f1_ue_data(cmd->gNB_cu_up_ue_id); + nr_pdcp_remove_UE(ue_id); + cu_remove_f1_ue_data(ue_id); } - nr_sdap_delete_ue_entities(cmd->gNB_cu_up_ue_id); + nr_sdap_delete_ue_entities(ue_id); +} + +void e1_bearer_release_cmd(const e1ap_bearer_release_cmd_t *cmd) +{ + LOG_I(E1AP, "releasing UE %d\n", cmd->gNB_cu_up_ue_id); + remove_ue_e1(cmd->gNB_cu_up_ue_id); e1ap_bearer_release_cplt_t cplt = { .gNB_cu_cp_ue_id = cmd->gNB_cu_cp_ue_id,