X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fric_stub%2Fric_e2ap_msg_hdl.c;h=851fb5d1298d295f8ff5bc513c8045d3ebcb52ca;hb=653aa9a77c383713ea88d4b34759b333576646b4;hp=b82dd8c650da86f41850e64bd12c137dc6233af8;hpb=45d134510deb6902b870b4a0fb574b6075fba601;p=o-du%2Fl2.git diff --git a/src/ric_stub/ric_e2ap_msg_hdl.c b/src/ric_stub/ric_e2ap_msg_hdl.c index b82dd8c65..851fb5d12 100644 --- a/src/ric_stub/ric_e2ap_msg_hdl.c +++ b/src/ric_stub/ric_e2ap_msg_hdl.c @@ -26,6 +26,8 @@ #include "ric_e2ap_msg_hdl.h" #include "GlobalE2node-gNB-ID.h" #include "ProtocolIE-FieldE2.h" +#include "InitiatingMessageE2.h" +#include "SuccessfulOutcomeE2.h" #include "E2AP-PDU.h" #include "du_log.h" @@ -52,30 +54,30 @@ S16 SendE2APMsg(Region region, Pool pool) { Buffer *mBuf; - if(SGetMsg(region, pool, &mBuf) == ROK) + if(ODU_GET_MSG_BUF(region, pool, &mBuf) == ROK) { - if(SAddPstMsgMult((Data *)encBuf, encBufSize, mBuf) == ROK) + if(ODU_ADD_POST_MSG_MULT((Data *)encBuf, encBufSize, mBuf) == ROK) { - SPrntMsg(mBuf, 0,0); + ODU_PRINT_MSG(mBuf, 0,0); if(sctpSend(mBuf) != ROK) { - DU_LOG("\nE2AP : SCTP Send for E2 failed"); - SPutMsg(mBuf); + DU_LOG("\nERROR --> E2AP : SCTP Send for E2 failed"); + ODU_PUT_MSG_BUF(mBuf); return RFAILED; } } else { - DU_LOG("\nE2AP : SAddPstMsgMult failed"); - SPutMsg(mBuf); + DU_LOG("\nERROR --> E2AP : ODU_ADD_POST_MSG_MULT failed"); + ODU_PUT_MSG_BUF(mBuf); return RFAILED; } - SPutMsg(mBuf); + ODU_PUT_MSG_BUF(mBuf); } else { - DU_LOG("\nE2AP : Failed to allocate memory"); + DU_LOG("\nERROR --> E2AP : Failed to allocate memory"); return RFAILED; } @@ -100,16 +102,16 @@ S16 SendE2APMsg(Region region, Pool pool) S16 BuildGlobalRicId(GlobalRIC_ID_t *ricId) { - U8 unused = 4; - U8 byteSize = 3; - U8 val = 1; + uint8_t unused = 4; + uint8_t byteSize = 3; + uint8_t val = 16; if(ricId != NULLP) { - ricId->pLMN_Identity.size = byteSize * sizeof(U8); + ricId->pLMN_Identity.size = byteSize * sizeof(uint8_t); RIC_ALLOC(ricId->pLMN_Identity.buf, ricId->pLMN_Identity.size); - buildPlmnId(ricCfgParams.plmn , &ricId->pLMN_Identity); + buildPlmnId(ricCfgParams.plmn , ricId->pLMN_Identity.buf); /* fill ric Id */ - ricId->ric_ID.size = byteSize * sizeof(U8); + ricId->ric_ID.size = byteSize * sizeof(uint8_t); RIC_ALLOC(ricId->ric_ID.buf, ricId->ric_ID.size); fillBitString(&ricId->ric_ID, unused, byteSize, val); } @@ -139,23 +141,23 @@ S16 BuildAndSendE2SetupRsp() E2AP_PDU_t *e2apMsg = NULL; E2setupResponse_t *e2SetupRsp; asn_enc_rval_t encRetVal; - U8 idx; - U8 elementCnt; + uint8_t idx; + uint8_t elementCnt; - DU_LOG("\nE2AP : Building E2 Setup Response\n"); + DU_LOG("\nINFO --> E2AP : Building E2 Setup Response\n"); RIC_ALLOC(e2apMsg, sizeof(E2AP_PDU_t)); if(e2apMsg == NULLP) { - DU_LOG("\nE2AP : Memory allocation for E2AP-PDU failed"); + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); return RFAILED; } e2apMsg->present = E2AP_PDU_PR_successfulOutcome; RIC_ALLOC(e2apMsg->choice.successfulOutcome, sizeof(SuccessfulOutcomeE2_t)); if(e2apMsg->choice.successfulOutcome == NULLP) { - DU_LOG("\nE2AP : Memory allocation for E2AP-PDU failed"); + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); RIC_FREE(e2apMsg, sizeof(E2AP_PDU_t)); return RFAILED; } @@ -174,7 +176,7 @@ S16 BuildAndSendE2SetupRsp() e2SetupRsp->protocolIEs.list.size); if(e2SetupRsp->protocolIEs.list.array == NULLP) { - DU_LOG("\nE2AP : Memory allocation for E2ResponseIEs failed"); + DU_LOG("\nERROR --> E2AP : Memory allocation for E2ResponseIEs failed"); RIC_FREE(e2apMsg->choice.successfulOutcome, sizeof(SuccessfulOutcomeE2_t)); RIC_FREE(e2apMsg, sizeof(E2AP_PDU_t)); return RFAILED; @@ -204,30 +206,30 @@ S16 BuildAndSendE2SetupRsp() BuildGlobalRicId(&(e2SetupRsp->protocolIEs.list.array[idx]->value.choice.GlobalRIC_ID)); xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2apMsg); - cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN); + memset(encBuf, 0, ENC_BUF_MAX_LEN); encBufSize = 0; encRetVal = aper_encode(&asn_DEF_E2AP_PDU, 0, e2apMsg, PrepFinalEncBuf, encBuf); /* Check encode results */ if(encRetVal.encoded == ENCODE_FAIL) { - DU_LOG("\nE2AP : Could not encode E2SetupResponse structure (at %s)\n",\ + DU_LOG("\nERROR --> E2AP : Could not encode E2SetupResponse structure (at %s)\n",\ encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); return RFAILED; } else { - DU_LOG("\nE2AP : Created APER encoded buffer for E2SetupResponse\n"); + DU_LOG("\nDEBUG --> E2AP : Created APER encoded buffer for E2SetupResponse\n"); for(int i=0; i< encBufSize; i++) { - printf("%x",encBuf[i]); + DU_LOG("%x",encBuf[i]); } } if(SendE2APMsg(RIC_APP_MEM_REG, RIC_POOL) != ROK) { - DU_LOG("\nE2AP : Sending E2 Setup Response failed"); + DU_LOG("\nERROR --> E2AP : Sending E2 Setup Response failed"); return RFAILED; } @@ -284,7 +286,7 @@ RICaction_ToBeSetup_Item_t* fillSetupItems(RICaction_ToBeSetup_Item_t *setupItem setupItems->ricActionType = RICactionType_report; } - RETVALUE(setupItems); + return (setupItems); } /******************************************************************* @@ -334,16 +336,16 @@ S16 fillSubsDetails(RICaction_ToBeSetup_ItemIEs_t *items) S16 BuildRicSubsDetails(RICsubscriptionDetails_t *subsDetails) { - U8 elementCnt; + uint8_t elementCnt; if(subsDetails != NULLP) { /* Octet string to be build here */ /* Sending PLMN as Octect string */ - U8 byteSize = 3; - subsDetails->ricEventTriggerDefinition.size = byteSize * sizeof(U8); + uint8_t byteSize = 3; + subsDetails->ricEventTriggerDefinition.size = byteSize * sizeof(uint8_t); RIC_ALLOC(subsDetails->ricEventTriggerDefinition.buf, subsDetails->ricEventTriggerDefinition.size); - buildPlmnId(ricCfgParams.plmn, &subsDetails->ricEventTriggerDefinition); + buildPlmnId(ricCfgParams.plmn, subsDetails->ricEventTriggerDefinition.buf); elementCnt = 1; subsDetails->ricAction_ToBeSetup_List.list.count = elementCnt; subsDetails->ricAction_ToBeSetup_List.list.size = \ @@ -352,7 +354,7 @@ S16 BuildRicSubsDetails(RICsubscriptionDetails_t *subsDetails) subsDetails->ricAction_ToBeSetup_List.list.size); if(subsDetails->ricAction_ToBeSetup_List.list.array == NULLP) { - DU_LOG("\nE2AP : Memory allocation for RICactionToBeSetup Items failed"); + DU_LOG("\nERROR --> E2AP : Memory allocation for RICactionToBeSetup Items failed"); return RFAILED; } RIC_ALLOC(subsDetails->ricAction_ToBeSetup_List.list.array[0],\ @@ -380,21 +382,21 @@ S16 BuildRicSubsDetails(RICsubscriptionDetails_t *subsDetails) S16 BuildAndSendRicSubscriptionReq() { - E2AP_PDU_t *e2apRicMsg = NULL; + E2AP_PDU_t *e2apRicMsg = NULL; RICsubscriptionRequest_t *ricSubscriptionReq; - U8 elementCnt; - U8 idx; - U8 ieId; - S16 ret; - asn_enc_rval_t encRetVal; /* Encoder return value */ + uint8_t elementCnt; + uint8_t idx; + uint8_t ieId; + S16 ret; + asn_enc_rval_t encRetVal; /* Encoder return value */ ricSubsStatus = TRUE; - DU_LOG("\nE2AP : Building RIC Subscription Request\n"); + DU_LOG("\nINFO --> E2AP : Building RIC Subscription Request\n"); RIC_ALLOC(e2apRicMsg, sizeof(E2AP_PDU_t)); if(e2apRicMsg == NULLP) { - DU_LOG("\nE2AP : Memory allocation for E2AP-PDU failed"); + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); return RFAILED; } @@ -402,7 +404,7 @@ S16 BuildAndSendRicSubscriptionReq() RIC_ALLOC(e2apRicMsg->choice.initiatingMessage, sizeof(InitiatingMessageE2_t)); if(e2apRicMsg->choice.initiatingMessage == NULLP) { - DU_LOG("\nE2AP : Memory allocation for E2AP-PDU failed"); + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); RIC_FREE(e2apRicMsg, sizeof(E2AP_PDU_t)); return RFAILED; } @@ -422,7 +424,7 @@ S16 BuildAndSendRicSubscriptionReq() ricSubscriptionReq->protocolIEs.list.size); if(ricSubscriptionReq->protocolIEs.list.array == NULLP) { - DU_LOG("\nE2AP : Memory allocation for RICSubscriptionRequestIEs failed"); + DU_LOG("\nERROR --> E2AP : Memory allocation for RICSubscriptionRequestIEs failed"); RIC_FREE(e2apRicMsg->choice.initiatingMessage, sizeof(InitiatingMessageE2_t)); RIC_FREE(e2apRicMsg, (Size)sizeof(E2AP_PDU_t)); return RFAILED; @@ -480,22 +482,22 @@ S16 BuildAndSendRicSubscriptionReq() /* Prints the Msg formed */ xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2apRicMsg); - cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN); + memset(encBuf, 0, ENC_BUF_MAX_LEN); encBufSize = 0; encRetVal = aper_encode(&asn_DEF_E2AP_PDU, 0, e2apRicMsg, PrepFinalEncBuf,\ encBuf); if(encRetVal.encoded == ENCODE_FAIL) { - DU_LOG("\nE2AP : Could not encode RicSubscriptionRequest structure (at %s)\n",\ + DU_LOG("\nERROR --> E2AP : Could not encode RicSubscriptionRequest structure (at %s)\n",\ encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); return RFAILED; } else { - DU_LOG("\nE2AP : Created APER encoded buffer for RicSubscriptionRequest\n"); + DU_LOG("\nDEBUG --> E2AP : Created APER encoded buffer for RicSubscriptionRequest\n"); for(int i=0; i< encBufSize; i++) { - printf("%x",encBuf[i]); + DU_LOG("%x",encBuf[i]); } } @@ -503,7 +505,7 @@ S16 BuildAndSendRicSubscriptionReq() /* Sending msg */ if(SendE2APMsg(RIC_APP_MEM_REG, RIC_POOL) != ROK) { - DU_LOG("\nE2AP : Sending RIC subscription Request failed"); + DU_LOG("\nERROR --> E2AP : Sending RIC subscription Request failed"); return RFAILED; } @@ -530,34 +532,36 @@ S16 BuildAndSendRicSubscriptionReq() * ****************************************************************/ void E2APMsgHdlr(Buffer *mBuf) { - int i; - char *recvBuf; - MsgLen copyCnt; - MsgLen recvBufLen; - E2AP_PDU_t *e2apMsg; - asn_dec_rval_t rval; /* Decoder return value */ - E2AP_PDU_t e2apasnmsg ; + int i; + char *recvBuf; + MsgLen copyCnt; + MsgLen recvBufLen; + E2AP_PDU_t *e2apMsg; + asn_dec_rval_t rval; /* Decoder return value */ + E2AP_PDU_t e2apasnmsg ; - DU_LOG("\nE2AP : Received E2AP message buffer"); - SPrntMsg(mBuf, 0,0); + DU_LOG("\nINFO --> E2AP : Received E2AP message buffer"); + ODU_PRINT_MSG(mBuf, 0,0); /* Copy mBuf into char array to decode it */ - SFndLenMsg(mBuf, &recvBufLen); - if(SGetSBuf(DFLT_REGION, DFLT_POOL, (Data **)&recvBuf, (Size)recvBufLen) != ROK) + ODU_GET_MSG_LEN(mBuf, &recvBufLen); + RIC_ALLOC(recvBuf, (Size)recvBufLen); + + if(recvBuf == NULLP) { - DU_LOG("\nE2AP : Memory allocation failed"); + DU_LOG("\nERROR --> E2AP : Memory allocation failed"); return; } - if(SCpyMsgFix(mBuf, 0, recvBufLen, (Data *)recvBuf, ©Cnt) != ROK) + if(ODU_COPY_MSG_TO_FIX_BUF(mBuf, 0, recvBufLen, (Data *)recvBuf, ©Cnt) != ROK) { - DU_LOG("\nE2AP : Failed while copying %d", copyCnt); + DU_LOG("\nERROR --> E2AP : Failed while copying %d", copyCnt); return; } - printf("\nE2AP : Received flat buffer to be decoded : "); + DU_LOG("\nDEBUG --> E2AP : Received flat buffer to be decoded : "); for(i=0; i< recvBufLen; i++) { - printf("%x",recvBuf[i]); + DU_LOG("%x",recvBuf[i]); } /* Decoding flat buffer into E2AP messsage */ @@ -565,13 +569,14 @@ void E2APMsgHdlr(Buffer *mBuf) memset(e2apMsg, 0, sizeof(E2AP_PDU_t)); rval = aper_decode(0, &asn_DEF_E2AP_PDU, (void **)&e2apMsg, recvBuf, recvBufLen, 0, 0); - SPutSBuf(DFLT_REGION, DFLT_POOL, (Data *)recvBuf, (Size)recvBufLen); + RIC_FREE(recvBuf, (Size)recvBufLen); + if(rval.code == RC_FAIL || rval.code == RC_WMORE) { - DU_LOG("\nE2AP : ASN decode failed"); + DU_LOG("\nERROR --> E2AP : ASN decode failed"); return; } - printf("\n"); + DU_LOG("\n"); xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2apMsg); switch(e2apMsg->present) @@ -582,18 +587,18 @@ void E2APMsgHdlr(Buffer *mBuf) { case InitiatingMessageE2__value_PR_E2setupRequest: { - DU_LOG("\nE2AP : E2 setup request received"); + DU_LOG("\nINFO --> E2AP : E2 setup request received"); BuildAndSendE2SetupRsp(); break; } case InitiatingMessageE2__value_PR_RICindication: { - DU_LOG("\nE2AP : RIC Indication Acknowledged"); + DU_LOG("\nINFO --> E2AP : RIC Indication Acknowledged"); break; } default: { - DU_LOG("\nE2AP : Invalid type of intiating message [%d]",e2apMsg->choice.initiatingMessage->value.present); + DU_LOG("\nERROR --> E2AP : Invalid type of intiating message [%d]",e2apMsg->choice.initiatingMessage->value.present); return; } }/* End of switch(initiatingMessage) */ @@ -605,12 +610,12 @@ void E2APMsgHdlr(Buffer *mBuf) { case SuccessfulOutcomeE2__value_PR_RICsubscriptionResponse: { - DU_LOG("\nE2AP : RICsubscriptionResponse Msg Acknowledged"); + DU_LOG("\nINFO --> E2AP : RICsubscriptionResponse Msg Acknowledged"); break; } default: { - DU_LOG("\nE2AP : Invalid type of successfulOutcome message [%d]",e2apMsg->choice.successfulOutcome->value.present); + DU_LOG("\nERROR --> E2AP : Invalid type of successfulOutcome message [%d]",e2apMsg->choice.successfulOutcome->value.present); return; } break; @@ -619,7 +624,7 @@ void E2APMsgHdlr(Buffer *mBuf) } default: { - DU_LOG("\nE2AP : Invalid type message type "); + DU_LOG("\nERROR --> E2AP : Invalid type message type "); return; }