X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcu_stub%2Fcu_f1ap_msg_hdl.c;fp=src%2Fcu_stub%2Fcu_f1ap_msg_hdl.c;h=573c3f024639a5660465bd457a8169ad533b7d46;hb=d6b8cf5c9afbba0fada62efd626d56cb59c1e839;hp=5da21750bd9c291f89e03abf7bd5f9a0248047f0;hpb=a3d6ee5b748b9591315cede5c78a14b290b1ca9a;p=o-du%2Fl2.git diff --git a/src/cu_stub/cu_f1ap_msg_hdl.c b/src/cu_stub/cu_f1ap_msg_hdl.c index 5da21750b..573c3f024 100644 --- a/src/cu_stub/cu_f1ap_msg_hdl.c +++ b/src/cu_stub/cu_f1ap_msg_hdl.c @@ -9846,29 +9846,36 @@ uint8_t procUlRrcMsg(uint32_t duId, F1AP_PDU_t *f1apMsg) if(duDb->ueCb[duUeF1apId-1].state == UE_HANDOVER_IN_PROGRESS) { - uint8_t ueIdx = 0; - uint8_t srcDuId = duDb->ueCb[duUeF1apId-1].hoInfo.srcNodeId; - DuDb *srcDuDb = NULLP; - - /* In target DU DB, mark UE as active and delete HO info */ - duDb->ueCb[duUeF1apId-1].state = UE_ACTIVE; - memset(&duDb->ueCb[duUeF1apId-1].hoInfo, 0, sizeof(HandoverInfo)); - - /* Release UE context in source DU because the UE is now - * attached to target DU */ - SEARCH_DU_DB(duIdx, srcDuId, srcDuDb); - for(ueIdx = 0; ueIdx < srcDuDb->numUe; ueIdx++) + if(duDb->ueCb[duUeF1apId-1].hoInfo.HOType == Inter_DU_HO) { - if(srcDuDb->ueCb[ueIdx].gnbCuUeF1apId == cuUeF1apId) + uint8_t ueIdx = 0; + uint8_t srcDuId = duDb->ueCb[duUeF1apId-1].hoInfo.srcNodeId; + DuDb *srcDuDb = NULLP; + + /* Release UE context in source DU because the UE is now + * attached to target DU */ + SEARCH_DU_DB(duIdx, srcDuId, srcDuDb); + for(ueIdx = 0; ueIdx < srcDuDb->numUe; ueIdx++) { - ret = BuildAndSendUeContextReleaseCommand(srcDuId, srcDuDb->ueCb[ueIdx].gnbCuUeF1apId, srcDuDb->ueCb[ueIdx].gnbDuUeF1apId); - if(ret != ROK) + if(srcDuDb->ueCb[ueIdx].gnbCuUeF1apId == cuUeF1apId) { - DU_LOG("\nINFO --> F1AP: Failed to build and send UE context release command to source DU Id [%d]", srcDuId); + ret = BuildAndSendUeContextReleaseCommand(srcDuId, srcDuDb->ueCb[ueIdx].gnbCuUeF1apId, srcDuDb->ueCb[ueIdx].gnbDuUeF1apId); + if(ret != ROK) + { + DU_LOG("\nINFO --> F1AP: Failed to build and send UE context release command to source DU Id [%d]", srcDuId); + } + break; } - break; } } + else + { + BuildAndSendUeContextRelease(&duDb->ueCb[duUeF1apId-1]); + } + + /* In target DU DB, mark UE as active and delete HO info */ + duDb->ueCb[duUeF1apId-1].state = UE_ACTIVE; + memset(&duDb->ueCb[duUeF1apId-1].hoInfo, 0, sizeof(HandoverInfo)); return ret; } break;