X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fphy_stub%2Fl1_bdy1.c;h=79dc9c0684f37584bca812afab829601158efbea;hb=refs%2Fchanges%2F58%2F3458%2F3;hp=64c5a043fb040d076747c381a978a090139d82f6;hpb=5d64905a366e340b65b01021ec4eec4f7350a94e;p=o-du%2Fl2.git diff --git a/src/phy_stub/l1_bdy1.c b/src/phy_stub/l1_bdy1.c index 64c5a043f..79dc9c068 100644 --- a/src/phy_stub/l1_bdy1.c +++ b/src/phy_stub/l1_bdy1.c @@ -27,12 +27,14 @@ #include "gen.x" #include "ssi.x" -#include "rg_cl_phy.h" #include "lwr_mac.h" +#include "lwr_mac_phy.h" #ifdef FAPI #include "fapi.h" #endif #include "lphy_stub.h" +#include "du_log.h" +#include "rg.h" #define MAX_SLOT_VALUE 9 #define MAX_SFN_VALUE 1023 @@ -45,8 +47,7 @@ EXTERN void fillTlvs ARGS((fapi_uint16_tlv_t *tlv, uint16_t tag, uint16_t length, uint16_t value, uint32_t *msgLen)); EXTERN void fillMsgHeader ARGS((fapi_msg_t *hdr, uint16_t msgType, uint16_t msgLen)); #endif -EXTERN void sendToLowerMac ARGS((uint16_t msgType, uint32_t msgLen,void *msg)); -EXTERN void handlePhyMessages ARGS((void *msg)); +EXTERN void handlePhyMessages(uint16_t msgType, uint32_t msgSize, void *msg); /******************************************************************* * @@ -146,8 +147,8 @@ S16 l1BldAndSndParamRsp(void *msg) fillMsgHeader(&fapiParamRsp->header, FAPI_PARAM_RESPONSE, msgLen); fapiParamRsp->error_code = MSG_OK; - printf("\nPHY_STUB: Sending Param Request to Lower Mac"); - sendToLowerMac(fapiParamRsp->header.message_type_id, sizeof(fapi_param_resp_t), (void *)fapiParamRsp); + DU_LOG("\nPHY_STUB: Sending Param Request to Lower Mac"); + handlePhyMessages(fapiParamRsp->header.message_type_id, sizeof(fapi_param_resp_t), (void *)fapiParamRsp); #endif return ROK; } @@ -172,9 +173,8 @@ S16 l1BldAndSndParamRsp(void *msg) S16 l1BldAndSndConfigRsp(void *msg) { #ifdef FAPI - uint8_t index = 0; uint32_t msgLen = 0; - fapi_config_resp_t *fapiConfigRsp = (fapi_config_resp_t *)msg; + fapi_config_resp_t *fapiConfigRsp = (fapi_config_resp_t *)msg; if(fapiConfigRsp != NULL) { @@ -184,8 +184,8 @@ S16 l1BldAndSndConfigRsp(void *msg) fapiConfigRsp->error_code = MSG_OK; msgLen += sizeof(fapi_config_resp_t); fillMsgHeader(&fapiConfigRsp->header, FAPI_CONFIG_RESPONSE, msgLen); - printf("\nPHY_STUB: Sending Config Response to Lower Mac"); - sendToLowerMac(fapiConfigRsp->header.message_type_id, sizeof(fapi_config_resp_t), (void *)fapiConfigRsp); + DU_LOG("\nPHY_STUB: Sending Config Response to Lower Mac"); + handlePhyMessages(fapiConfigRsp->header.message_type_id, sizeof(fapi_config_resp_t), (void *)fapiConfigRsp); return ROK; } #else @@ -212,11 +212,11 @@ S16 l1BldAndSndConfigRsp(void *msg) PUBLIC void l1HdlParamReq(uint32_t msgLen, void *msg) { - printf("\nPHY_STUB: Received Param Request in PHY"); + DU_LOG("\nPHY_STUB: Received Param Request in PHY"); /* Handling PARAM RESPONSE */ if(l1BldAndSndParamRsp(msg)!= ROK) { - printf("\nPHY_STUB: Failed Sending Param Response"); + DU_LOG("\nPHY_STUB: Failed Sending Param Response"); } } @@ -240,7 +240,7 @@ PUBLIC void l1HdlParamReq(uint32_t msgLen, void *msg) PUBLIC void l1HdlConfigReq(uint32_t msgLen, void *msg) { - printf("\nPHY_STUB: Received Config Request in PHY"); + DU_LOG("\nPHY_STUB: Received Config Request in PHY"); /* Handling CONFIG RESPONSE */ if(l1BldAndSndConfigRsp(msg)!= ROK) @@ -266,24 +266,24 @@ PUBLIC void l1HdlConfigReq(uint32_t msgLen, void *msg) * @return void * * ****************************************************************/ -PUBLIC void buildAndSendSlotIndication() +PUBLIC S16 buildAndSendSlotIndication() { #ifdef FAPI fapi_slot_ind_t *slotIndMsg; if(SGetSBuf(0, 0, (Data **)&slotIndMsg, sizeof(slotIndMsg)) != ROK) { - printf("\nPHY_STUB: Memory allocation failed for slot Indication Message"); + DU_LOG("\nPHY_STUB: Memory allocation failed for slot Indication Message"); return RFAILED; } else { slotValue++; - if(sfnValue >= MAX_SFN_VALUE && slotValue >= MAX_SLOT_VALUE) + if(sfnValue > MAX_SFN_VALUE && slotValue > MAX_SLOT_VALUE) { sfnValue = 0; slotValue = 0; } - else if(slotValue >= MAX_SLOT_VALUE) + else if(slotValue > MAX_SLOT_VALUE) { sfnValue++; slotValue = 0; @@ -291,11 +291,12 @@ PUBLIC void buildAndSendSlotIndication() slotIndMsg->sfn = sfnValue; slotIndMsg->slot = slotValue; fillMsgHeader(&slotIndMsg->header, FAPI_SLOT_INDICATION, sizeof(fapi_slot_ind_t)); - printf("\nPHY_STUB: Sending Slot Indication Msg to Lower Mac"); - handlePhyMessages((void*)slotIndMsg); + DU_LOG("\nPHY_STUB [%d:%d] ",sfnValue,slotValue); + handlePhyMessages(slotIndMsg->header.message_type_id, sizeof(fapi_slot_ind_t), (void*)slotIndMsg); SPutSBuf(0, 0, (Data *)slotIndMsg, sizeof(slotIndMsg)); } #endif + return ROK; } /******************************************************************* @@ -316,7 +317,7 @@ PUBLIC void buildAndSendSlotIndication() * * ****************************************************************/ -PUBLIC void l1HdlStartReq(uint32_t msgLen, void *msg) +PUBLIC S16 l1HdlStartReq(uint32_t msgLen, void *msg) { if(clGlobalCp.phyState == PHY_STATE_CONFIGURED) { @@ -328,7 +329,7 @@ PUBLIC void l1HdlStartReq(uint32_t msgLen, void *msg) } else { - printf("\n PHY_STUB: Received Start Req in PHY State", clGlobalCp.phyState); + DU_LOG("\n PHY_STUB: Received Start Req in PHY State %d", clGlobalCp.phyState); return RFAILED; } } @@ -351,11 +352,12 @@ PUBLIC void l1HdlStartReq(uint32_t msgLen, void *msg) * * ****************************************************************/ -PUBLIC void l1HdlDlTtiReq(uint16_t msgLen, void *msg) +PUBLIC S16 l1HdlDlTtiReq(uint16_t msgLen, void *msg) { #ifdef FAPI fapi_dl_tti_req_t *dlTtiReq; dlTtiReq = (fapi_dl_tti_req_t *)msg; +#if 0 printf("\nPHY_STUB: Received DL TTI Request in PHY"); printf("\nPHY_STUB: SFN %d", dlTtiReq->sfn); printf("\nPHY_STUB: SLOT %d", dlTtiReq->slot); @@ -369,11 +371,67 @@ PUBLIC void l1HdlDlTtiReq(uint16_t msgLen, void *msg) printf("\nPHY_STUB: ssbOffsetPointA %d", dlTtiReq->pdus->u.ssb_pdu.ssbOffsetPointA); printf("\nPHY_STUB: bchPayloadFlag %d", dlTtiReq->pdus->u.ssb_pdu.bchPayloadFlag); printf("\nPHY_STUB: bchPayload %x", dlTtiReq->pdus->u.ssb_pdu.bchPayload); +#endif + uint8_t numPdus = dlTtiReq->nPdus; + if(numPdus == 0) + { + DU_LOG("\nNo PDU \n"); + } + while(numPdus) + { + if(dlTtiReq->pdus->pduType == 3) //SSB_PDU_TYPE + DU_LOG("\nSSB PDU\n"); + else if(dlTtiReq->pdus->pduType == 0) + DU_LOG("\nSIB1 PDCCH PDU\n"); + else if(dlTtiReq->pdus->pduType == 1) + DU_LOG("\nSIB1 PDSCH PDU\n"); + + numPdus--; + } + MAC_FREE(dlTtiReq, sizeof(fapi_dl_tti_req_t)); +#endif + return ROK; +} + +/******************************************************************* +* +* @brief Handles Ul Tti request received from MAC +* +* @details +* +* Function : l1HdlUlTtiReq +* +* Functionality: +* -Handles Ul Tti request received from MAC +* +* @params[in] Message length +* Ul Tti request message pointer +* +* @return void +* +* ****************************************************************/ - SPutSBuf(0, 0, (Data *)dlTtiReq, sizeof(fapi_dl_tti_req_t)); +PUBLIC S16 l1HdlUlTtiReq(uint16_t msgLen, void *msg) +{ +#ifdef FAPI + fapi_ul_tti_req_t *ulTtiReq; + ulTtiReq = (fapi_ul_tti_req_t *)msg; + uint8_t numPdus = ulTtiReq->nPdus; + if(numPdus == 0) + { + DU_LOG("\nPHY STUB: No PDU in UL TTI \n"); + } + while(numPdus) + { + if(ulTtiReq->pdus->pduType == 0) + DU_LOG("\n PHY STUB: PRACH PDU\n"); + numPdus--; + } + MAC_FREE(ulTtiReq, sizeof(fapi_ul_tti_req_t)); #endif return ROK; } + /******************************************************************* * * @brief Receives message from MAC @@ -410,8 +468,11 @@ void processFapiRequest(uint8_t msgType, uint32_t msgLen, void *msg) case FAPI_DL_TTI_REQUEST: l1HdlDlTtiReq(msgLen, msg); break; + case FAPI_UL_TTI_REQUEST: + l1HdlUlTtiReq(msgLen, msg); + break; default: - printf("\nPHY_STUB: Invalid message type[%x] received at PHY", msgType); + DU_LOG("\nPHY_STUB: Invalid message type[%x] received at PHY", msgType); break; #endif }