F1 UE Ctxt Modif Req: forward Capabilities, ignore other CU2DU
- forward capabilities to update CellGroupConfig - Do not require measConfig/cG_ConfigInfo to be NULL, but ignore them, as it is not implemented
This commit is contained in:
@@ -935,6 +935,32 @@ int DU_handle_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance, sctp_assoc_t
|
|||||||
LOG_D(F1AP, "can't find RRCContainer in UEContextModificationRequestIEs by id %ld \n", F1AP_ProtocolIE_ID_id_RRCContainer);
|
LOG_D(F1AP, "can't find RRCContainer in UEContextModificationRequestIEs by id %ld \n", F1AP_ProtocolIE_ID_id_RRCContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* CU2DU Information */
|
||||||
|
F1AP_UEContextModificationRequestIEs_t *ieCU2DU = NULL;
|
||||||
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextModificationRequestIEs_t,
|
||||||
|
ieCU2DU,
|
||||||
|
container,
|
||||||
|
F1AP_ProtocolIE_ID_id_CUtoDURRCInformation,
|
||||||
|
false);
|
||||||
|
if (ieCU2DU != NULL) {
|
||||||
|
f1ap_ue_context_modification_req->cu_to_du_rrc_information =
|
||||||
|
calloc(1, sizeof(*f1ap_ue_context_modification_req->cu_to_du_rrc_information));
|
||||||
|
AssertFatal(f1ap_ue_context_modification_req->cu_to_du_rrc_information != NULL, "out of memory\n");
|
||||||
|
cu_to_du_rrc_information_t *cu2du = f1ap_ue_context_modification_req->cu_to_du_rrc_information;
|
||||||
|
const F1AP_CUtoDURRCInformation_t *cu2duie = &ieCU2DU->value.choice.CUtoDURRCInformation;
|
||||||
|
if (cu2duie->cG_ConfigInfo != NULL)
|
||||||
|
LOG_W(F1AP, "UE RNTI %04x: ignoring cg_ConfigInfo, not implemented\n", f1ap_ue_context_modification_req->gNB_DU_ue_id);
|
||||||
|
if (cu2duie->measConfig != NULL)
|
||||||
|
LOG_W(F1AP, "UE RNTI %04x: ignoring measConfig, not implemented\n", f1ap_ue_context_modification_req->gNB_DU_ue_id);
|
||||||
|
if (cu2duie->uE_CapabilityRAT_ContainerList != NULL) {
|
||||||
|
F1AP_UE_CapabilityRAT_ContainerList_t *uecap = cu2duie->uE_CapabilityRAT_ContainerList;
|
||||||
|
cu2du->uE_CapabilityRAT_ContainerList = calloc(uecap->size, sizeof(*cu2du->uE_CapabilityRAT_ContainerList));
|
||||||
|
AssertFatal(cu2du->uE_CapabilityRAT_ContainerList != NULL, "out of memory\n");
|
||||||
|
cu2du->uE_CapabilityRAT_ContainerList_length = uecap->size;
|
||||||
|
memcpy(cu2du->uE_CapabilityRAT_ContainerList, uecap->buf, uecap->size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ue_context_modification_request(f1ap_ue_context_modification_req);
|
ue_context_modification_request(f1ap_ue_context_modification_req);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user