Merge "[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-535] Implementation of E2 Removal...
authorPriyanka Borla <pborla@radisys.com>
Fri, 27 Oct 2023 10:52:03 +0000 (10:52 +0000)
committerGerrit Code Review <gerrit@o-ran-sc.org>
Fri, 27 Oct 2023 10:52:03 +0000 (10:52 +0000)
src/5gnrmac/lwr_mac_fsm.c
src/5gnrmac/mac_ue_mgr.c
src/5gnrsch/sch_ue_mgr.c
src/cm/du_app_mac_inf.h
src/cm/mac_sch_interface.h
src/du_app/du_cfg.c

index bbc67cc..440f30f 100644 (file)
@@ -2006,6 +2006,7 @@ uint8_t lwr_mac_procConfigReqEvt(void *msg)
    uint16_t cellIdx =0;
    uint32_t msgLen = 0;
    uint32_t mib = 0;
+   uint32_t dlFreq = 0, ulFreq = 0;
    MacCellCfg macCfgParams;
    fapi_vendor_msg_t *vendorMsg;
    fapi_config_req_t *configReq;
@@ -2079,8 +2080,9 @@ uint8_t lwr_mac_procConfigReqEvt(void *msg)
 
    fillTlvs(&configReq->tlvs[index++], FAPI_DL_BANDWIDTH_TAG,           \
          sizeof(uint32_t), macCfgParams.carrCfg.dlBw, &msgLen);
+   dlFreq = convertArfcnToFreqKhz(macCfgParams.carrCfg.arfcnDL);
    fillTlvs(&configReq->tlvs[index++], FAPI_DL_FREQUENCY_TAG,           \
-         sizeof(uint32_t), macCfgParams.carrCfg.dlFreq, &msgLen);
+         sizeof(uint32_t), dlFreq, &msgLen);
    /* Due to bug in Intel FT code, commenting TLVs that are are not 
     * needed to avoid error. Must be uncommented when FT bug is fixed */
    //fillTlvs(&configReq->tlvs[index++], FAPI_DL_K0_TAG,                  \
@@ -2091,8 +2093,9 @@ uint8_t lwr_mac_procConfigReqEvt(void *msg)
          sizeof(uint16_t), macCfgParams.carrCfg.numTxAnt, &msgLen);
    fillTlvs(&configReq->tlvs[index++], FAPI_UPLINK_BANDWIDTH_TAG,       \
          sizeof(uint32_t), macCfgParams.carrCfg.ulBw, &msgLen);
+   ulFreq = convertArfcnToFreqKhz(macCfgParams.carrCfg.arfcnUL);
    fillTlvs(&configReq->tlvs[index++], FAPI_UPLINK_FREQUENCY_TAG,       \
-         sizeof(uint32_t), macCfgParams.carrCfg.ulFreq, &msgLen);
+         sizeof(uint32_t), ulFreq, &msgLen);
    //fillTlvs(&configReq->tlvs[index++], FAPI_UL_K0_TAG,                  \
    sizeof(uint16_t), macCfgParams.ulCarrCfg.k0[0], &msgLen);
    //fillTlvs(&configReq->tlvs[index++], FAPI_UL_GRID_SIZE_TAG,           \
index cea9305..e38ef94 100644 (file)
@@ -1841,7 +1841,6 @@ uint8_t fillSchUeCfg(SchUeCfgReq *schUeCfg, MacUeCreateReq *ueCfg)
    uint8_t ret = ROK;
 
    schUeCfg->cellId = ueCfg->cellId;
-   schUeCfg->ueId = ueCfg->ueId;
    schUeCfg->crnti = ueCfg->crnti;
    /* Copy MAC cell group config */
    if(ueCfg->macCellGrpCfgPres == true)
@@ -1932,7 +1931,6 @@ uint8_t fillSchUeRecfg(SchUeRecfgReq *schUeRecfg, MacUeRecfg *ueRecfg)
    uint8_t ret = ROK;
 
    schUeRecfg->cellId = ueRecfg->cellId;
-   schUeRecfg->ueId = ueRecfg->ueId;
    schUeRecfg->crnti = ueRecfg->crnti;
    schUeRecfg->dataTransmissionInfo = ueRecfg->transmissionAction;
    /* Copy MAC cell group config */
@@ -2838,7 +2836,7 @@ uint8_t MacSendUeCreateRsp(MacRsp result, SchUeCfgRsp *schCfgRsp)
    /* Filling UE Config response */
    memset(cfgRsp, 0, sizeof(MacUeCreateRsp));
    cfgRsp->cellId = schCfgRsp->cellId;
-   cfgRsp->ueId = schCfgRsp->ueId;
+   GET_UE_ID(schCfgRsp->crnti, cfgRsp->ueId);
    cfgRsp->result = result;
 
    /* Fill Post structure and send UE Create response*/
@@ -2878,7 +2876,7 @@ uint8_t MacSendUeReconfigRsp(MacRsp result, SchUeRecfgRsp *schCfgRsp)
    /* Filling UE Config response */
    memset(recfgRsp, 0, sizeof(MacUeRecfgRsp));
    recfgRsp->cellId = schCfgRsp->cellId;
-   recfgRsp->ueId = schCfgRsp->ueId;
+   GET_UE_ID(schCfgRsp->crnti, recfgRsp->ueId);
    recfgRsp->result = result;
 
    /* Fill Post structure and send UE Create response*/
@@ -2973,7 +2971,7 @@ uint8_t MacProcSchUeCfgRsp(Pst *pst, SchUeCfgRsp *schCfgRsp)
 {
    uint8_t result = MAC_DU_APP_RSP_NOK;
    uint8_t ret = ROK;
-   uint16_t cellIdx;
+   uint16_t cellIdx = 0, ueId = 0;
    MacUeCreateReq *ueCfg = NULLP;
 
 #ifdef CALL_FLOW_DEBUG_LOG
@@ -2992,7 +2990,8 @@ uint8_t MacProcSchUeCfgRsp(Pst *pst, SchUeCfgRsp *schCfgRsp)
 #endif
 
    GET_CELL_IDX(schCfgRsp->cellId, cellIdx);
-   ueCfg = getMacUeCfg(cellIdx, schCfgRsp->ueId);
+   GET_UE_ID(schCfgRsp->crnti, ueId);
+   ueCfg = getMacUeCfg(cellIdx, ueId);
    if(ueCfg == NULLP)
    {
       DU_LOG("\nERROR  -->  MAC : Failed to find the Mac Ue Cfg for event [%d] in MacProcSchUeCfgRsp()", pst->event);
@@ -3043,7 +3042,7 @@ uint8_t MacProcSchUeRecfgRsp(Pst *pst, SchUeRecfgRsp *schRecfgRsp)
 {
    uint8_t result = MAC_DU_APP_RSP_NOK;
    uint8_t ret = ROK;
-   uint16_t cellIdx;
+   uint16_t cellIdx = 0, ueId = 0;
    MacUeRecfg *ueRecfg = NULLP;
    
 #ifdef CALL_FLOW_DEBUG_LOG
@@ -3059,7 +3058,8 @@ uint8_t MacProcSchUeRecfgRsp(Pst *pst, SchUeRecfgRsp *schRecfgRsp)
 #endif
 
    GET_CELL_IDX(schRecfgRsp->cellId, cellIdx);
-   ueRecfg = getMacUeRecfg(cellIdx, schRecfgRsp->ueId);
+   GET_UE_ID(schRecfgRsp->crnti, ueId);
+   ueRecfg = getMacUeRecfg(cellIdx, ueId);
    if(ueRecfg == NULLP)
    {
       DU_LOG("\nERROR  -->  MAC : Failed to find the Mac Ue Cfg for event [%d] in MacProcSchUeCfgRsp()", pst->event);
index d416a07..67c05a8 100644 (file)
@@ -54,7 +54,6 @@ void SchSendUeCfgRspToMac(SchUeCfgReq *ueCfg, Inst inst,\
    Pst rspPst;
 
    cfgRsp->cellId = ueCfg->cellId;
-   cfgRsp->ueId = ueCfg->ueId;
    cfgRsp->crnti = ueCfg->crnti;
    cfgRsp->rsp = result;   
 
@@ -87,7 +86,6 @@ void SchSendUeRecfgRspToMac(SchUeRecfgReq *ueRecfgReq, Inst inst,\
    Pst rspPst;
 
    reCfgRsp->cellId = ueRecfgReq->cellId;
-   reCfgRsp->ueId = ueRecfgReq->ueId;
    reCfgRsp->crnti = ueRecfgReq->crnti;
    reCfgRsp->rsp = result;   
 
@@ -296,7 +294,7 @@ uint8_t fillSchUeCbFrmCfgReq(Inst inst, SchUeCb *ueCb, SchUeCfgReq *ueCfg)
    bool isLcIdValid = FALSE;
 
    ueCb->ueCfg.cellId = ueCfg->cellId;
-   ueCb->ueCfg.ueId = ueCfg->ueId;
+   ueCb->ueCfg.ueId = ueCb->ueId;
    ueCb->ueCfg.crnti = ueCfg->crnti;
    if(ueCfg->macCellGrpCfgPres == true)
    {
@@ -462,8 +460,8 @@ uint8_t fillSchUeCbFrmRecfgReq(Inst inst, SchUeCb *ueCb, SchUeRecfgReq *ueRecfg)
 
 
    ueCb->ueCfg.cellId = ueRecfg->cellId;
-   ueCb->ueCfg.ueId = ueRecfg->ueId;
    ueCb->ueCfg.crnti = ueRecfg->crnti;
+   GET_UE_ID(ueRecfg->crnti, ueCb->ueCfg.ueId);
    ueCb->ueCfg.dataTransmissionAction = ueRecfg->dataTransmissionInfo;
    if(ueRecfg->macCellGrpRecfgPres == true)
    {
@@ -746,6 +744,7 @@ SchCellCb *getSchCellCb(uint16_t srcEvent, Inst inst, uint16_t cellId)
 uint8_t SchAddUeConfigReq(Pst *pst, SchUeCfgReq *ueCfg)
 {
    uint8_t      lcIdx = 0, ret = ROK, idx = 0;
+   uint16_t     ueId = 0;
    SchCellCb    *cellCb = NULLP;
    SchUeCb      *ueCb = NULLP;
    SchUeCfgRsp  cfgRsp;
@@ -766,7 +765,8 @@ uint8_t SchAddUeConfigReq(Pst *pst, SchUeCfgReq *ueCfg)
       return RFAILED; 
    }
    /* Search if UE already configured */
-   ueCb = &cellCb->ueCb[ueCfg->ueId - 1];
+   GET_UE_ID(ueCfg->crnti, ueId);
+   ueCb = &cellCb->ueCb[ueId - 1];
 
    if((ueCb->crnti == ueCfg->crnti) && (ueCb->state == SCH_UE_STATE_ACTIVE))
    {
@@ -778,11 +778,11 @@ uint8_t SchAddUeConfigReq(Pst *pst, SchUeCfgReq *ueCfg)
    /* Fill received Ue Configuration in UeCb */
    memset(ueCb, 0, sizeof(SchUeCb));
 
-   ueCb->ueId = ueCfg->ueId;
    ueCb->crnti = ueCfg->crnti;
+   GET_UE_ID(ueCb->crnti, ueCb->ueId);
    ueCb->cellCb = cellCb;
-   schUlHqEntInit(cellCb, &cellCb->ueCb[ueCfg->ueId-1]);
-   schDlHqEntInit(cellCb, &cellCb->ueCb[ueCfg->ueId-1]);
+   schUlHqEntInit(cellCb, &cellCb->ueCb[ueCb->ueId-1]);
+   schDlHqEntInit(cellCb, &cellCb->ueCb[ueCb->ueId-1]);
    SCH_ALLOC(ueCb->hqDlmap, sizeof(SchHqDlMap*)*(ueCb->cellCb->numSlots));
    SCH_ALLOC(ueCb->hqUlmap, sizeof(SchHqUlMap*)*(ueCb->cellCb->numSlots));
 
index 9e5ee54..3514714 100644 (file)
@@ -607,9 +607,9 @@ typedef struct failureCause
 typedef struct carrierCfg
 {
    uint32_t   dlBw;                   /* DL bandwidth */
-   uint32_t   dlFreq;                 /* Absolute frequency of DL point A in KHz */
+   uint32_t   arfcnDL;                 /* Absolute frequency Number of DL */
    uint32_t   ulBw;                   /* UL bandwidth */
-   uint32_t   ulFreq;                 /* Absolute frequency of UL point A in KHz */
+   uint32_t   arfcnUL;                 /* Absolute frequency Number of UL */
    uint16_t   numTxAnt;               /* Number of Tx antennas */
    uint16_t   numRxAnt;               /* Number of Rx antennas */
 }CarrierCfg;
index ae772ad..adb77f0 100644 (file)
@@ -1972,7 +1972,6 @@ typedef struct schModulationInfo
 typedef struct schUeCfgReq
 {
    uint16_t           cellId;
-   uint8_t            ueId;
    uint8_t            beamIdx; 
    uint16_t           crnti;
    bool               macCellGrpCfgPres;
@@ -1992,7 +1991,6 @@ typedef struct schUeCfgReq
 typedef struct schUeRecfgReq
 {
    uint16_t         cellId;
-   uint8_t          ueId;
    uint8_t          beamIdx;
    uint16_t         crnti;
    bool             macCellGrpRecfgPres;
@@ -2021,7 +2019,6 @@ typedef struct schUeCfgRsp
 {
    uint16_t   cellId;
    uint8_t    beamIdx;
-   uint16_t   ueId;
    uint16_t   crnti;
    SchMacRsp  rsp;
    CauseOfResult cause;
index 766c032..72af421 100644 (file)
@@ -106,20 +106,20 @@ uint8_t readMacCfg()
 #ifdef O1_ENABLE
    duCfgParam.macCellCfg.cellId = cellParams.cellLocalId;
    duCfgParam.macCellCfg.carrCfg.dlBw = cellParams.bSChannelBwDL;
-   duCfgParam.macCellCfg.carrCfg.dlFreq = convertArfcnToFreqKhz(cellParams.arfcnDL);
+   duCfgParam.macCellCfg.carrCfg.arfcnDL = cellParams.arfcnDL;
 #else
    duCfgParam.macCellCfg.cellId = NR_CELL_ID;
    duCfgParam.macCellCfg.carrCfg.dlBw = NR_BANDWIDTH;
-   duCfgParam.macCellCfg.carrCfg.dlFreq = convertArfcnToFreqKhz(NR_DL_ARFCN);
+   duCfgParam.macCellCfg.carrCfg.arfcnDL  = NR_DL_ARFCN;
 #endif
    duCfgParam.macCellCfg.carrCfg.numTxAnt = NUM_TX_ANT;
    /* UL Carrier configuration */
 #ifdef O1_ENABLE
    duCfgParam.macCellCfg.carrCfg.ulBw = cellParams.bSChannelBwUL;
-   duCfgParam.macCellCfg.carrCfg.ulFreq = convertArfcnToFreqKhz(cellParams.arfcnUL);
+   duCfgParam.macCellCfg.carrCfg.arfcnUL = cellParams.arfcnUL;
 #else   
    duCfgParam.macCellCfg.carrCfg.ulBw = NR_BANDWIDTH;
-   duCfgParam.macCellCfg.carrCfg.ulFreq =  convertArfcnToFreqKhz(NR_UL_ARFCN);
+   duCfgParam.macCellCfg.carrCfg.arfcnUL =  NR_UL_ARFCN;
 #endif   
    duCfgParam.macCellCfg.carrCfg.numRxAnt = NUM_RX_ANT;