X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcu_stub%2Fcu_stub.c;h=1694a14dd5b0323cd8a92c07a4c25058c3df0ff4;hb=1dc4874f3806146823871718c4450d4d77444947;hp=397103623e1d44e4c25c4e64f61478266c529706;hpb=1b1e3c88d7018e047cf7a04d44f21059ef5d123b;p=o-du%2Fl2.git diff --git a/src/cu_stub/cu_stub.c b/src/cu_stub/cu_stub.c index 397103623..1694a14dd 100644 --- a/src/cu_stub/cu_stub.c +++ b/src/cu_stub/cu_stub.c @@ -263,6 +263,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 @@ -295,8 +329,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 */ @@ -350,6 +385,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); + } } } /**********************************************************************