Merge remote-tracking branch 'origin/fixes-ue-handling' into integration_2025_w27 (!3500)
Various fixes for UE handling, HO doc updates - On release request, search both attach and connected list to free a UE. - on DU disconnect, only release the correspnonding UE contexts. - When no AMF for the UE, auto-release the UE (NGAP would also send an answer, but better check first) - implement a "grace period" before the DU/MAC automatically releases a UE: this is to avoid cases in which (for whatever reason) the UE release request is not honored by the CU. In order to not fill up UE contexts unnecessarily, the DU will eventually (after 10s) drop the UE context - some clarification in HO tutorial
This commit is contained in:
@@ -30,7 +30,12 @@ ue_id_e2sm_t fill_e2sm_gnb_ue_id_data(const gNB_RRC_UE_t *rrc_ue_context, __attr
|
||||
// 6.2.3.16
|
||||
// Mandatory
|
||||
// AMF UE NGAP ID
|
||||
ue_id.gnb.amf_ue_ngap_id = rrc_ue_context->amf_ue_ngap_id;
|
||||
// it seems that certain messages can be triggered before the ue has an AMF
|
||||
// UE NGAP ID (e.g., RRC setup). In that case, the AMF UE NGAP ID is set to
|
||||
// an invalid value. Below, check for this, and set 0 in that case (which
|
||||
// historically used to be in amf_ue_ngap_id).
|
||||
uint64_t auni = rrc_ue_context->amf_ue_ngap_id;
|
||||
ue_id.gnb.amf_ue_ngap_id = auni < (1LL << 40) ? auni : 0;
|
||||
|
||||
// Mandatory
|
||||
//GUAMI 6.2.3.17
|
||||
|
||||
@@ -209,6 +209,9 @@ static arr_ue_id_t filter_ues_by_s_nssai_in_cu(const test_info_lst_t test_info)
|
||||
struct rrc_gNB_ue_context_s* rrc_ue_context = NULL;
|
||||
RB_FOREACH(rrc_ue_context, rrc_nr_ue_tree_s, &RC.nrrrc[0]->rrc_ue_head) {
|
||||
gNB_RRC_UE_t *ue = &rrc_ue_context->ue_context;
|
||||
/* UE has no AMF UE NGAP ID yet => can't send message */
|
||||
if (ue->amf_ue_ngap_id >= (1LL << 40))
|
||||
continue;
|
||||
for (int p = 0; p < ue->nb_of_pdusessions; ++p) {
|
||||
pdusession_t *pdu = &ue->pduSession[p].param;
|
||||
if (nssai_matches(pdu->nssai, sst, sd)) {
|
||||
@@ -296,6 +299,9 @@ static arr_ue_id_t filter_ues_by_s_nssai_in_du_or_monolithic(const test_info_lst
|
||||
arr_ue_id.ue_id[arr_ue_id.sz] = fill_ue_id_data[ngran_gNB_DU](NULL, rrc_ue_id.secondary_ue, 0);
|
||||
} else {
|
||||
rrc_gNB_ue_context_t* rrc_ue_context = rrc_gNB_get_ue_context_by_rnti(RC.nrrrc[0], -1, ue->rnti);
|
||||
/* UE has no AMF UE NGAP ID yet => can't send message */
|
||||
if (rrc_ue_context->ue_context.amf_ue_ngap_id >= (1LL << 40))
|
||||
continue;
|
||||
arr_ue_id.ue_id[arr_ue_id.sz] = fill_ue_id_data[ngran_gNB](&rrc_ue_context->ue_context, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user