- DU_LOG("\nINFO --> CU_STUB: Inter-CU Handover Started for ueId [%d] from CU ID [%d] to CU ID [%d]", \
- ueId, sourceCuId, targetCuId);
- //TODO : First message of HO procedure to be triggered here. Changes to be done in next commit.
+ uint8_t duIdx, ueIdx;
+ CuUeCb *ueCb = NULLP;
+
+ DU_LOG("\nINFO --> CU_STUB: Inter-CU Handover Started for ueId [%d] to CU ID [%d]", \
+ cuUeF1apId, targetCuId);
+
+ for(duIdx = 0; duIdx < cuCb.numDu; duIdx++)
+ {
+ for(ueIdx = 0; ueIdx < (MAX_NUM_CELL * MAX_NUM_UE); ueIdx++)
+ {
+ ueCb = &cuCb.duInfo[duIdx].ueCb[ueIdx];
+ if(cuCb.duInfo[duIdx].ueCb[ueIdx].gnbCuUeF1apId == cuUeF1apId)
+ {
+ ueCb = &cuCb.duInfo[duIdx].ueCb[ueIdx];
+ break;
+ }
+ }
+ if(ueCb)
+ break;
+ }
+
+ if(ueCb)
+ {
+ ueCb->state = UE_HANDOVER_IN_PROGRESS;
+ ueCb->hoInfo.HOType = Xn_Based_Inter_CU_HO;
+ ueCb->hoInfo.srcNodeId = cuCb.cuCfgParams.cuId;
+ ueCb->hoInfo.tgtNodeId = targetCuId;
+ ueCb->hoInfo.tgtCellId = cellId;
+ ueCb->hoInfo.cuUeF1apIdSrc = ueCb->gnbCuUeF1apId;
+
+ BuildAndSendUeContextModificationReq(cuCb.duInfo[duIdx].duId, ueCb, QUERY_CONFIG);
+ }
+ else
+ {
+ DU_LOG("\nINFO --> CU_STUB: CU UE F1AP ID [%d] not found", cuUeF1apId);
+ }