From 1e8f194d11b88acd5499969f3407013555e7be04 Mon Sep 17 00:00:00 2001 From: Robert Schmidt <robert.schmidt@openairinterface.org> Date: Thu, 21 Mar 2024 17:59:44 +0100 Subject: [PATCH] Only release UE in PDCP if in E1 Explanations: see #706. TLDR: the RRC code calls nr_pdcp_remove_ue(), so we should not call it in the E1 handler if we do not use split mode. --- openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c b/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c index 2b65cf87f96..e18c8eddfb5 100644 --- a/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c +++ b/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c @@ -283,11 +283,12 @@ void e1_bearer_release_cmd(const e1ap_bearer_release_cmd_t *cmd) newGtpuDeleteAllTunnels(n3inst, cmd->gNB_cu_up_ue_id); if (f1inst >= 0) // is there F1-U? newGtpuDeleteAllTunnels(f1inst, cmd->gNB_cu_up_ue_id); - nr_pdcp_remove_UE(cmd->gNB_cu_up_ue_id); - nr_sdap_delete_ue_entities(cmd->gNB_cu_up_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_sdap_delete_ue_entities(cmd->gNB_cu_up_ue_id); e1ap_bearer_release_cplt_t cplt = { .gNB_cu_cp_ue_id = cmd->gNB_cu_cp_ue_id, -- GitLab