X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcu_stub%2Fcu_stub.c;h=c8724d7e16d981fe896b449c0a755b4e4f44d11f;hb=d43106e9959db218ce4a4c278f73405d6d70579f;hp=11b7a4e755939afb3c7394dc76aeba49da52de25;hpb=a5f35b2204dd87ebe347f11282000852b55810ad;p=o-du%2Fl2.git diff --git a/src/cu_stub/cu_stub.c b/src/cu_stub/cu_stub.c index 11b7a4e75..c8724d7e1 100644 --- a/src/cu_stub/cu_stub.c +++ b/src/cu_stub/cu_stub.c @@ -257,6 +257,40 @@ void readCuCfg() } /* End of readCuCfg */ +/******************************************************************* + * + * @brief Initiates inter DU handover + * + * @details + * + * Function : initiateInterDuHandover + * + * Functionality: Initiates the first procedure of inter-DU + * handover i.eG GNB-DU configuration query to source DU + * + * @params[in] Source DU Id + * Target DU Id + * UE Id to be handed off + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +void initiateInterDuHandover(uint32_t sourceDuId, uint32_t targetDuId, uint32_t ueId) +{ + DuDb *duDb = NULLP; + CuUeCb *ueCb = NULLP; + + duDb = getDuDb(sourceDuId); + if(duDb) + ueCb = &duDb->ueCb[ueId-1]; + if(ueCb) + ueCb->state = HANDOVER_IN_PROGRESS; + + DU_LOG("\nINFO --> CU_STUB: Inter-DU Handover Started for ueId [%d] from DU ID [%d] to DU ID [%d]", \ + ueId, sourceDuId, targetDuId); + BuildAndSendUeContextModificationReq(sourceDuId, ueCb, QUERY_CONFIG); +} + /******************************************************************* * * @brief Handles Console input @@ -289,8 +323,9 @@ void *cuConsoleHandler(void *args) while(true) { + ch = getchar(); /* Send DL user data to CU when user enters 'd' on console */ - if((ch = getchar()) == 'd') + if(ch == 'd') { /* Change #if 0 to #if 1 to take input from user */ @@ -344,6 +379,21 @@ void *cuConsoleHandler(void *args) #endif continue; } + + /* Start Handover procedure towards DU when 'h' is received from console input */ + else if(ch == 'h') + { + uint32_t sourceDuId, targetDuId, ueId; + + DU_LOG("\nEnter Source DU ID for Inter-DU Handover"); + scanf("%d", &sourceDuId); + DU_LOG("\nEnter Target DU ID for Inter-DU Handover"); + scanf("%d", &targetDuId); + DU_LOG("\nEnter DU UE F1AP ID to be handed over"); + scanf("%d", &ueId); + + initiateInterDuHandover(sourceDuId, targetDuId, ueId); + } } } /**********************************************************************