X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcu_stub%2Fcu_f1ap_msg_hdl.c;h=a7ce195dd0949fc89e4337314b34804195f54d16;hb=aa526133f1f94ca507ebb3f2eeab26afd3ad8821;hp=55c95ca134cbacbe877f6cf7861f9872387fc315;hpb=3235ecfc7414aa0b72d0ad50db63ae8b5626045b;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 55c95ca13..a7ce195dd 100644 --- a/src/cu_stub/cu_f1ap_msg_hdl.c +++ b/src/cu_stub/cu_f1ap_msg_hdl.c @@ -21,32 +21,6 @@ #include "cu_stub_sctp.h" #include "cu_f1ap_msg_hdl.h" -char encBuf[ENC_BUF_MAX_LEN]; - -/******************************************************************* - * - * @brief Writes the encoded chunks into a buffer - * - * @details - * - * Function : PrepFinalEncBuf - * - * Functionality:Fills the encoded buffer - * - * @params[in] void *buffer,initial encoded data - * @params[in] size_t size,size of buffer - * @params[in] void *encodedBuf,final buffer - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -static int PrepFinalEncBuf(const void *buffer, size_t size, void *encodedBuf) -{ - memcpy(encodedBuf + encBufSize, buffer, size); - encBufSize += size; - return 0; -} /* PrepFinalEncBuf */ - /******************************************************************* * * @brief Sends F1 msg over SCTP @@ -97,24 +71,36 @@ S16 SendF1APMsg(Region region, Pool pool) RETVALUE(ROK); } /* SendF1APMsg */ - -void plmnBuildCU(Plmn plmn, OCTET_STRING_t *octe) +/******************************************************************* +* +* @brief Builds NRCell ID +* +* @details +* +* Function : BuildNrCellId +* +* Functionality: Building the NR Cell ID +* +* @params[in] BIT_STRING_t *nrcell +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ + +S16 BuildNrCellId(BIT_STRING_t *nrcell) { - U8 mncCnt; - mncCnt = 2; - octe->buf[0] = ((plmn.mcc[1] << 4) | (plmn.mcc[0])); - if(mncCnt == 2) - { - octe->buf[1] = ((0xf0) | (plmn.mcc[2])); - octe->buf[2] = ((plmn.mnc[1] << 4) | (plmn.mnc[0])); - } - else + U8 tmp; + for (tmp = 0 ; tmp < nrcell->size-1; tmp++) { - octe->buf[1] = ((plmn.mnc[0] << 4) | (plmn.mcc[2])); - octe->buf[2] = ((plmn.mnc[2] << 4) | (plmn.mnc[1])); + nrcell->buf[tmp] = 0; } + nrcell->buf[4] = 16; + nrcell->bits_unused = 4; + nrcell->size = 5 * sizeof(uint8_t); + RETVALUE(ROK); } -/******************************************************************* + +/******************************************************************** * * @brief Builds and sends the F1SetupResponse * @@ -317,10 +303,10 @@ S16 BuildAndSendF1SetupRsp() CU_FREE(f1apMsg, sizeof(F1AP_PDU_t)); RETVALUE(RFAILED); } - plmnBuildCU(cuCfgParams.plmn , &cellToActivate->list.array[0]->value.choice.\ + buildPlmnId(cuCfgParams.plmn , &cellToActivate->list.array[0]->value.choice.\ Cells_to_be_Activated_List_Item.nRCGI.pLMN_Identity); cellToActivate->list.array[0]->value.choice.Cells_to_be_Activated_List_Item.\ - nRCGI.nRCellIdentity.size = 5*sizeof(uint8_t); + nRCGI.nRCellIdentity.size = 5; CU_ALLOC(cellToActivate->list.array[0]->value.choice.\ Cells_to_be_Activated_List_Item.nRCGI.nRCellIdentity.buf,\ 5*sizeof(uint8_t)); @@ -351,18 +337,7 @@ S16 BuildAndSendF1SetupRsp() CU_FREE(f1apMsg, sizeof(F1AP_PDU_t)); RETVALUE(RFAILED); } - for (int tmp = 0 ; tmp < cellToActivate->list.array[0]->value.\ - choice.Cells_to_be_Activated_List_Item.\ - nRCGI.nRCellIdentity.size-1; tmp++) - { - cellToActivate->list.array[0]->value.choice.\ - Cells_to_be_Activated_List_Item.nRCGI.nRCellIdentity.buf[tmp] = 0; - } - cellToActivate->list.array[0]->value.choice.\ - Cells_to_be_Activated_List_Item.nRCGI.nRCellIdentity.buf[4] = 16; - cellToActivate->list.array[0]->value.choice.Cells_to_be_Activated_List_Item.\ - nRCGI.nRCellIdentity.bits_unused = 4; - + BuildNrCellId(&(cellToActivate->list.array[0]->value.choice.Cells_to_be_Activated_List_Item.nRCGI.nRCellIdentity)); /* RRC Version */ idx++; f1SetupRsp->protocolIEs.list.array[idx]->id = \ @@ -1033,7 +1008,7 @@ void F1APMsgHdlr(Buffer *mBuf) { DU_LOG("\nF1AP : F1 setup request received"); BuildAndSendF1SetupRsp(); - break; + break; } case InitiatingMessage__value_PR_GNBDUConfigurationUpdate: