Ignore UE Context Modification Required during handover

During handover, we might receive a UE context Modification required
message. Currently, we cannot handle this; ignore the message.
This commit is contained in:
Robert Schmidt
2024-10-25 20:10:26 +02:00
parent 546ffee56b
commit 8b4259c047
+8 -2
View File
@@ -2100,7 +2100,7 @@ static void rrc_CU_process_ue_context_modification_response(MessageDef *msg_p, i
} }
} }
static void rrc_CU_process_ue_modification_required(MessageDef *msg_p, instance_t instance) static void rrc_CU_process_ue_modification_required(MessageDef *msg_p, instance_t instance, sctp_assoc_t assoc_id)
{ {
gNB_RRC_INST *rrc = RC.nrrrc[instance]; gNB_RRC_INST *rrc = RC.nrrrc[instance];
f1ap_ue_context_modif_required_t *required = &F1AP_UE_CONTEXT_MODIFICATION_REQUIRED(msg_p); f1ap_ue_context_modif_required_t *required = &F1AP_UE_CONTEXT_MODIFICATION_REQUIRED(msg_p);
@@ -2117,6 +2117,12 @@ static void rrc_CU_process_ue_modification_required(MessageDef *msg_p, instance_
return; return;
} }
gNB_RRC_UE_t *UE = &ue_context_p->ue_context;
if (UE->ho_context && UE->ho_context->source && UE->ho_context->source->du && UE->ho_context->source->du->assoc_id == assoc_id) {
LOG_W(NR_RRC, "UE %d: UE Context Modification Required during handover, ignoring message\n", UE->rrc_ue_id);
return;
}
if (required->du_to_cu_rrc_information && required->du_to_cu_rrc_information->cellGroupConfig) { if (required->du_to_cu_rrc_information && required->du_to_cu_rrc_information->cellGroupConfig) {
gNB_RRC_UE_t *UE = &ue_context_p->ue_context; gNB_RRC_UE_t *UE = &ue_context_p->ue_context;
LOG_I(RRC, LOG_I(RRC,
@@ -2515,7 +2521,7 @@ void *rrc_gnb_task(void *args_p) {
break; break;
case F1AP_UE_CONTEXT_MODIFICATION_REQUIRED: case F1AP_UE_CONTEXT_MODIFICATION_REQUIRED:
rrc_CU_process_ue_modification_required(msg_p, instance); rrc_CU_process_ue_modification_required(msg_p, instance, msg_p->ittiMsgHeader.originInstance);
break; break;
case F1AP_UE_CONTEXT_RELEASE_REQ: case F1AP_UE_CONTEXT_RELEASE_REQ: