X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcu_stub%2Fcu_f1ap_msg_hdl.c;h=2b651a0242a5c5dbf95d4b666b49f2ead87e88a0;hb=791615463ef2fcc0d6e0697d7860e6e6a56bd9a6;hp=6c23d0f055759376ffea6c0fa12a24470c03fb23;hpb=66916eaaf8212d36b38e4dba88bdf159d7637779;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 6c23d0f05..2b651a024 100644 --- a/src/cu_stub/cu_f1ap_msg_hdl.c +++ b/src/cu_stub/cu_f1ap_msg_hdl.c @@ -1512,7 +1512,7 @@ uint8_t fillDlDcchRrcMsg(RRCContainer_t *rrcContainer) uint8_t BuildDLRRCContainer(uint8_t rrcMsgType, RRCContainer_t *rrcContainer) { - uint8_t ret, idx2, bufLen; + uint8_t ret, bufLen; ret =ROK; if(rrcMsgType == RRC_SETUP) @@ -1530,11 +1530,8 @@ uint8_t BuildDLRRCContainer(uint8_t rrcMsgType, RRCContainer_t *rrcContainer) CU_ALLOC(rrcContainer->buf, rrcContainer->size); if(rrcContainer->buf != NULLP) { - memset(rrcContainer->buf, 0, encBufSize); - for(idx2 = 0; idx2 < encBufSize; idx2++) - { - rrcContainer->buf[idx2] = buf[idx2]; - } + memset(rrcContainer->buf, 0, bufLen); + memcpy(rrcContainer->buf, buf, bufLen); } } else if(rrcMsgType == RRC_RECONFIG) @@ -1559,11 +1556,8 @@ uint8_t BuildDLRRCContainer(uint8_t rrcMsgType, RRCContainer_t *rrcContainer) CU_ALLOC(rrcContainer->buf, rrcContainer->size); if(rrcContainer->buf != NULLP) { - memset(rrcContainer->buf, 0, encBufSize); - for(idx2 = 0; idx2 < encBufSize; idx2++) - { - rrcContainer->buf[idx2] = buf[idx2]; - } + memset(rrcContainer->buf, 0, bufLen); + memcpy(rrcContainer->buf, buf, bufLen); } } @@ -5779,7 +5773,7 @@ uint8_t BuildAndSendUeContextSetupReq(uint8_t cuUeF1apId, uint8_t duUeF1apId, \ ueSetReq = &f1apMsg->choice.initiatingMessage->value.choice.UEContextSetupRequest; - elementCnt = 11; + elementCnt = 12; ueSetReq->protocolIEs.list.count = elementCnt; ueSetReq->protocolIEs.list.size = \ elementCnt * sizeof(UEContextSetupRequestIEs_t *); @@ -5908,7 +5902,7 @@ uint8_t BuildAndSendUeContextSetupReq(uint8_t cuUeF1apId, uint8_t duUeF1apId, \ ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject; ueSetReq->protocolIEs.list.array[idx]->value.present = \ UEContextSetupRequestIEs__value_PR_RRCContainer; - char buf[9]={0x00, 0x02, 0x22, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00}; + char secModeBuf[9]={0x00, 0x02, 0x22, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00}; bufLen =9; ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.size = bufLen; CU_ALLOC(ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf, @@ -5918,11 +5912,8 @@ uint8_t BuildAndSendUeContextSetupReq(uint8_t cuUeF1apId, uint8_t duUeF1apId, \ DU_LOG(" F1AP : Memory allocation for BuildAndSendUeContextSetupReq failed"); break; } - memset(ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf, 0, encBufSize); - for(idx1 = 0; idx1 < encBufSize; idx1++) - { - ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf[idx1] = buf[idx1]; - } + memset(ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf, 0, bufLen); + memcpy(ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf, secModeBuf, bufLen); /* RRC delivery status request */ idx++; @@ -5933,7 +5924,27 @@ uint8_t BuildAndSendUeContextSetupReq(uint8_t cuUeF1apId, uint8_t duUeF1apId, \ UEContextSetupRequestIEs__value_PR_RRCDeliveryStatusRequest; ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCDeliveryStatusRequest = \ RRCDeliveryStatusRequest_true; - + + /* Bit Rate hardcoded as in reference logs */ + idx++; + ueSetReq->protocolIEs.list.array[idx]->id = \ + ProtocolIE_ID_id_GNB_DU_UE_AMBR_UL; + ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_ignore; + ueSetReq->protocolIEs.list.array[idx]->value.present = \ + UEContextSetupRequestIEs__value_PR_BitRate; + char bitRateBuf[4]= {0x3B, 0x37, 0xF4, 0xCD}; + bufLen = 4; + ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.size = bufLen; + CU_ALLOC(ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.buf,\ + ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.size); + if(!ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.buf) + { + DU_LOG(" F1AP : Failed to allocate memory for Bit Rate in BuildAndSendUeContextSetupReq()"); + break; + } + memset(ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.buf, 0, bufLen); + memcpy(ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.buf, bitRateBuf, bufLen); + xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apMsg); /* Encode the F1SetupRequest type as APER */