fix (RRC): add SRB2 and DRB validation checks for reestablishment

Add validation checks per TS 38.331 5.3.7.1 to ensure SRB2 and at
least one DRB are active before processing RRC reestablishment
requests. Use more specific NGAP cause code for procedure failures.

Reestablishment requests without SRB2 or DRB setup now properly
fall back to RRC setup with appropriate NGAP cause indication

Major changes:
- Add SRB2 active check before processing reestablishment
- Add DRB active check (at least one DRB required)

Signed-off-by: Guido Casati <guido.casati@openairinterface.org>
This commit is contained in:
Guido Casati
2026-02-13 14:13:39 +01:00
committed by Guido Casati
parent 31eb466a7d
commit 33ff225739

View File

@@ -1510,6 +1510,15 @@ static void rrc_handle_RRCReestablishmentRequest(gNB_RRC_INST *rrc,
goto fallback_rrc_setup;
}
/* TS 38.331 5.3.7.1: requires a retrieved valid UE context. Context without
* SRB2 or any DRB is incomplete for re-establishment (UE initiation needs both,
* treat as not verified). */
if (!UE->Srb[SRB2].Active || seq_arr_size(&UE->drbs) == 0) {
LOG_E(NR_RRC, "UE context not valid for re-establishment (no SRB2/DRB), fallback to RRC setup\n");
ngap_cause = NGAP_CAUSE_RADIO_NETWORK_RELEASE_DUE_TO_NGRAN_GENERATED_REASON;
goto fallback_rrc_setup;
}
f1_ue_data_t ue_data = cu_get_f1_ue_data(UE->rrc_ue_id);
nr_ho_source_cu_t *source_ctx = UE->ho_context ? UE->ho_context->source : NULL;