From 95e4270ea70ea743a15b984bd4d3110096db7c9e Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Tue, 31 Mar 2026 22:26:30 +0200 Subject: [PATCH] bugfix: do not trigger e1 bearer setup when no PDU session It can happen that no PDU session can be setup (e.g., PDU session already setup). Check that there is at least one before triggering the message. Also initialize bearer_req.gNB_cu_cp_ue_id early to avoid uninitialized IDs (e.g., when no PDU session to be setup). --- openair2/RRC/NR/rrc_gNB_NGAP.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/openair2/RRC/NR/rrc_gNB_NGAP.c b/openair2/RRC/NR/rrc_gNB_NGAP.c index f2971f199b..035447be55 100644 --- a/openair2/RRC/NR/rrc_gNB_NGAP.c +++ b/openair2/RRC/NR/rrc_gNB_NGAP.c @@ -354,7 +354,9 @@ bool trigger_bearer_setup(gNB_RRC_INST *rrc, gNB_RRC_UE_t *UE, int n, pdusession return false; } AssertFatal(UE->as_security_active, "logic bug: security should be active when activating DRBs\n"); - e1ap_bearer_setup_req_t bearer_req = {0}; + e1ap_bearer_setup_req_t bearer_req = { + .gNB_cu_cp_ue_id = UE->rrc_ue_id, + }; // Reject bearers setup if there's no CU-UP associated if (!is_cuup_associated(rrc)) { @@ -412,6 +414,10 @@ bool trigger_bearer_setup(gNB_RRC_INST *rrc, gNB_RRC_UE_t *UE, int n, pdusession pdu->DRBnGRanList[0] = fill_e1_drb_to_setup(rrc_drb, session, rrc->configuration.um_on_default_drb, UE->redcap_cap); } } + if (bearer_req.numPDUSessions == 0) { + LOG_W(NR_RRC, "UE %d: No PDU sessions to setup, skipping bearer context setup\n", UE->rrc_ue_id); + return false; + } /* Limitation: we assume one fixed CU-UP per UE. We base the selection on * NSSAI, but the UE might have multiple PDU sessions with differing slices, * in which we might need to select different CU-UPs. In this case, we would