X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Fkw_cfg_ul.c;h=7f919cd381fa2dd5bfe356db8818e152ed47ded1;hb=3330932565e15a749fd5dd5039cdea2862ca51cc;hp=9372c21ba48aa81ba8020f680c05fb13dc064bdc;hpb=762bc0a2a50222d74b01d9a88071bfaf5d90979b;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/kw_cfg_ul.c b/src/5gnrrlc/kw_cfg_ul.c index 9372c21ba..7f919cd38 100755 --- a/src/5gnrrlc/kw_cfg_ul.c +++ b/src/5gnrrlc/kw_cfg_ul.c @@ -18,7 +18,7 @@ /********************************************************************20** - Name: LTE RLC - Configuration Manager file + Name: NR RLC - Configuration Manager file Type: C source file @@ -31,9 +31,6 @@ File: kw_cfg_ul.c *********************************************************************21*/ -static const char* RLOG_MODULE_NAME="CFG"; -static int RLOG_MODULE_ID=2048; -static int RLOG_FILE_ID=192; /** @file kw_cfg_ul.c @brief RLC Uplink Configuration Module **/ @@ -203,7 +200,7 @@ static S16 rlcAddToUlL2Meas(RlcCb *gCb, RlcUlRbCb *rlcRbCb,uint8_t cellId,uint8_ #ifdef LTE_L2_MEAS_RLC if (measCb->measType & LKW_L2MEAS_ACT_UE) { - if((rlcRbCb->mode == CM_LTE_MODE_UM) && + if((rlcRbCb->mode == RLC_MODE_UM) && (rlcRbCb->dir & RLC_DIR_DL )) { if (rlcRbCb->m.um.umDl.sduQ.count) @@ -215,7 +212,7 @@ static S16 rlcAddToUlL2Meas(RlcCb *gCb, RlcUlRbCb *rlcRbCb,uint8_t cellId,uint8_ } } } - else if (rlcRbCb->mode == CM_LTE_MODE_AM) + else if (rlcRbCb->mode == RLC_MODE_AM) { if ((rlcRbCb->m.am.amDl.cntrlBo) || (rlcRbCb->m.am.amDl.retxBo) || @@ -309,8 +306,7 @@ static S16 rlcAddToUlL2Meas(RlcCb *gCb, RlcUlRbCb *rlcRbCb,uint8_t cellId,uint8_ static S16 rlcCfgFillUlRbCb(RlcCb *gCb,RlcUlRbCb *rbCb,RlcUlUeCb *ueCb,RlcEntCfgInfo *entCfg) { - RLOG_ARG3(L_DEBUG,DBG_UEID,rbCb->rlcId.ueId, - "rlcCfgFillRbCb(cellId(%d), rbId(%d), rbType(%d))", + DU_LOG("\nDEBUG --> RLC_UL : rlcCfgFillRbCb(cellId(%d), rbId(%d), rbType(%d))", rbCb->rlcId.cellId, entCfg->rbId, entCfg->rbType); @@ -318,14 +314,14 @@ static S16 rlcCfgFillUlRbCb(RlcCb *gCb,RlcUlRbCb *rbCb,RlcUlUeCb *ueCb,RlcEntCfg /* Initialize according to entMode */ switch (entCfg->entMode) { - case CM_LTE_MODE_TM: + case RLC_MODE_TM: { rbCb->lch.lChId = entCfg->lCh[0].lChId; rbCb->lch.lChType = entCfg->lCh[0].type; rbCb->dir = entCfg->dir; break; } - case CM_LTE_MODE_UM: + case RLC_MODE_UM: { rbCb->lch.lChId = entCfg->lCh[0].lChId; rbCb->lch.lChType = entCfg->lCh[0].type; @@ -337,13 +333,13 @@ static S16 rlcCfgFillUlRbCb(RlcCb *gCb,RlcUlRbCb *rbCb,RlcUlUeCb *ueCb,RlcEntCfg /* the bitmask for SN = 10 is 0x3ff and for SN = 5 is 0x1f */ rbCb->m.umUl.modBitMask = (rbCb->m.umUl.umWinSz << 1) - 1; - rbCb->m.umUl.reOrdTmrInt = - entCfg->m.umInfo.ul.reOrdTmr; - cmInitTimers(&(rbCb->m.umUl.reOrdTmr), 1); + rbCb->m.umUl.reAsmblTmrInt = + entCfg->m.umInfo.ul.reAsmblTmr; + cmInitTimers(&(rbCb->m.umUl.reAsmblTmr), 1); ueCb->lCh[rbCb->lch.lChId - 1].ulRbCb = rbCb; break; } - case CM_LTE_MODE_AM: + case RLC_MODE_AM: { /* Down Link Information * indx = 1 as Up Link */ @@ -352,7 +348,7 @@ static S16 rlcCfgFillUlRbCb(RlcCb *gCb,RlcUlRbCb *rbCb,RlcUlUeCb *ueCb,RlcEntCfg rbCb->dir = RLC_DIR_BOTH; rbCb->m.amUl.staProhTmrInt = entCfg->m.amInfo.ul.staProhTmr; - rbCb->m.amUl.reOrdTmrInt = entCfg->m.amInfo.ul.reOrdTmr; + rbCb->m.amUl.reAsmblTmrInt = entCfg->m.amInfo.ul.reAsmblTmr; rbCb->m.amUl.snLen = entCfg->m.amInfo.ul.snLen; /* 5GNR */ @@ -365,7 +361,7 @@ static S16 rlcCfgFillUlRbCb(RlcCb *gCb,RlcUlRbCb *rbCb,RlcUlUeCb *ueCb,RlcEntCfg rbCb->m.amUl.snModMask = (1 << RLC_SN_LEN_18BITS) - 1; /* 5GNR */ } - cmInitTimers(&(rbCb->m.amUl.reOrdTmr), 1); + cmInitTimers(&(rbCb->m.amUl.reAsmblTmr), 1); cmInitTimers(&(rbCb->m.amUl.staProhTmr), 1); rbCb->m.amUl.vrMr = rbCb->m.amUl.rxNext + (RLC_AM_GET_WIN_SZ(rbCb->m.amUl.snLen)); @@ -376,8 +372,7 @@ static S16 rlcCfgFillUlRbCb(RlcCb *gCb,RlcUlRbCb *rbCb,RlcUlUeCb *ueCb,RlcEntCfg } default: { - RLOG_ARG2(L_ERROR,DBG_UEID,rbCb->rlcId.ueId, - "INVALID RB Mode cellId(%d), rbId(%d)", + DU_LOG("\nERROR --> RLC_UL : INVALID RB Mode cellId(%d), rbId(%d)", rbCb->rlcId.cellId, entCfg->rbId); return RFAILED; @@ -406,7 +401,7 @@ static S16 rlcCfgUpdateUlRb(RlcCb *gCb,RlcUlRbCb *rbCb,void *ptr,RlcEntCfgInfo * switch (rbCb->mode) { - case CM_LTE_MODE_TM: + case RLC_MODE_TM: { RlcUlCellCb *cellCb = (RlcUlCellCb *)ptr; rbCb->dir = entCfg->dir; @@ -416,14 +411,14 @@ static S16 rlcCfgUpdateUlRb(RlcCb *gCb,RlcUlRbCb *rbCb,void *ptr,RlcEntCfgInfo * cellCb->lCh[rbCb->lch.lChId - 1].ulRbCb = rbCb; break; } - case CM_LTE_MODE_UM: + case RLC_MODE_UM: { RlcUlUeCb *ueCb = (RlcUlUeCb *)ptr; ueCb->lCh[rbCb->lch.lChId - 1].ulRbCb = NULLP; rlcCfgFillUlRbCb(gCb,rbCb, ueCb, entCfg); break; } - case CM_LTE_MODE_AM: + case RLC_MODE_AM: { RlcUlUeCb *ueCb = (RlcUlUeCb *)ptr; @@ -433,7 +428,7 @@ static S16 rlcCfgUpdateUlRb(RlcCb *gCb,RlcUlRbCb *rbCb,void *ptr,RlcEntCfgInfo * rbCb->lch.lChId = entCfg->lCh[1].lChId; rbCb->lch.lChType = entCfg->lCh[1].type; rbCb->m.amUl.staProhTmrInt = entCfg->m.amInfo.ul.staProhTmr; - rbCb->m.amUl.reOrdTmrInt = entCfg->m.amInfo.ul.reOrdTmr; + rbCb->m.amUl.reAsmblTmrInt = entCfg->m.amInfo.ul.reAsmblTmr; break; } } @@ -476,18 +471,17 @@ S16 rlcValidateRbCfgParams(RlcCb *gCb,CmLteRnti ueId,CmLteCellId cellId,RlcEntCf { /* Validate LChId for UM and AM modes */ if ((cfgToValidate->lCh[0].lChId <= 0) || - ((cfgToValidate->entMode == CM_LTE_MODE_AM) && + ((cfgToValidate->entMode == RLC_MODE_AM) && (cfgToValidate->lCh[1].lChId <= 0))) { status->reason = CKW_CFG_REAS_INVALID_LCHID; return RFAILED; } - if((cfgToValidate->entMode == CM_LTE_MODE_UM) && - (cfgToValidate->m.umInfo.ul.snLen != RLC_UM_CFG_5BIT_SN_LEN) && - (cfgToValidate->m.umInfo.ul.snLen != RLC_UM_CFG_10BIT_SN_LEN)) + if((cfgToValidate->entMode == RLC_MODE_UM) && + (cfgToValidate->m.umInfo.ul.snLen != RLC_UM_CFG_6BIT_SN_LEN) && + (cfgToValidate->m.umInfo.ul.snLen != RLC_UM_CFG_12BIT_SN_LEN)) { - RLOG_ARG2(L_ERROR,DBG_UEID,ueId, - "CellId[%u]:UM Mode RB[%d],Invalid SN Len[%d]", + DU_LOG("\nERROR --> RLC_UL : UM Mode RB[%d],Invalid SN Len[%d]", cfgToValidate->rbId, cfgToValidate->m.umInfo.ul.snLen); status->reason = CKW_CFG_REAS_INVALID_SNLEN; @@ -503,9 +497,9 @@ S16 rlcValidateRbCfgParams(RlcCb *gCb,CmLteRnti ueId,CmLteCellId cellId,RlcEntCf } if ((cfgToValidate->lCh[0].type != CM_LTE_LCH_CCCH) && - (cfgToValidate->entMode != CM_LTE_MODE_TM)) + (cfgToValidate->entMode != RLC_MODE_TM)) { - status->reason= (cfgToValidate->entMode != CM_LTE_MODE_TM)? CKW_CFG_REAS_RB_MODE_MIS: + status->reason= (cfgToValidate->entMode != RLC_MODE_TM)? CKW_CFG_REAS_RB_MODE_MIS: CKW_CFG_REAS_LCHTYPE_MIS; return RFAILED; } @@ -518,13 +512,13 @@ S16 rlcValidateRbCfgParams(RlcCb *gCb,CmLteRnti ueId,CmLteCellId cellId,RlcEntCf return RFAILED; } - if(cfgToValidate->entMode == CM_LTE_MODE_TM) + if(cfgToValidate->entMode == RLC_MODE_TM) { status->reason = CKW_CFG_REAS_LCHTYPE_MIS; return RFAILED; } if (!(((cfgToValidate->lCh[0].type == CM_LTE_LCH_DCCH) && - (cfgToValidate->entMode != CM_LTE_MODE_UM))|| + (cfgToValidate->entMode != RLC_MODE_UM))|| (cfgToValidate->lCh[0].type == CM_LTE_LCH_DTCH)) ) { status->reason = CKW_CFG_REAS_RB_MODE_MIS; @@ -579,8 +573,7 @@ RlcUlCfgTmpData *cfgTmpData ) { - RLOG_ARG2(L_DEBUG,DBG_UEID,cfgTmpData->ueId, - "cellId(%d), cfgType(%d)", + DU_LOG("\nDEBUG --> RLC_UL : cellId(%d), cfgType(%d)", cfgTmpData->cellId, cfgToValidate->cfgType); @@ -609,8 +602,7 @@ RlcUlCfgTmpData *cfgTmpData RLC_ALLOC(gCb,cfgTmpData->cellCb, sizeof(RlcUlCellCb)); if(!cfgTmpData->cellCb) { - RLOG_ARG1(L_FATAL,DBG_UEID,cfgTmpData->ueId, - "Memory allocation failure CELLID:%d", + DU_LOG("\nERROR --> RLC_UL : Memory allocation failure CELLID:%d", cfgTmpData->cellId); cfgEntData->entUlCfgCfm.status.reason = CKW_CFG_REAS_CELL_CREAT_FAIL; return RFAILED; @@ -643,8 +635,7 @@ RlcUlCfgTmpData *cfgTmpData RLC_ALLOC(gCb,cfgTmpData->ueCb, sizeof(RlcUlUeCb)); if(!cfgTmpData->ueCb) { - RLOG_ARG1(L_FATAL,DBG_UEID,cfgTmpData->ueId, - "Memory allocation failure CELLID:%d", + DU_LOG("\nERROR --> RLC_UL : Memory allocation failure CELLID:%d", cfgTmpData->cellId); cfgEntData->entUlCfgCfm.status.reason = CKW_CFG_REAS_UE_CREAT_FAIL; return RFAILED; @@ -671,19 +662,24 @@ RlcUlCfgTmpData *cfgTmpData } } /*Allocating the memory for receive buffer */ - if(CM_LTE_MODE_UM == cfgToValidate->entMode) + if(RLC_MODE_UM == cfgToValidate->entMode) { - uint16_t winLen; + uint16_t hashIndex; - + /* Spec 38.322 Section 7.2 + * UM_Window_Size = 32 when a 6 bit SN is configured, + * UM_Window_Size = 2048 when a 12 bit SN is configured. + */ cfgEntData->rbCb->m.umUl.umWinSz = RLC_POWER(2, - ((cfgToValidate->m.umInfo.ul.snLen *5)-1)); - winLen = cfgEntData->rbCb->m.umUl.umWinSz << 1; - RLC_ALLOC(gCb, - cfgEntData->rbCb->m.umUl.recBuf, - (winLen * sizeof(RlcUmRecBuf*))); + ((cfgToValidate->m.umInfo.ul.snLen *6)-1)); + RLC_ALLOC(gCb, cfgEntData->rbCb->m.umUl.recBufLst, + (RLC_RCV_BUF_BIN_SIZE * sizeof(CmLListCp))); + for(hashIndex = 0; hashIndex < RLC_RCV_BUF_BIN_SIZE; hashIndex++ ) + { + cmLListInit(&(cfgEntData->rbCb->m.umUl.recBufLst[hashIndex])); + } } - else if(CM_LTE_MODE_AM == cfgToValidate->entMode) + else if(RLC_MODE_AM == cfgToValidate->entMode) { #ifndef LTE_TDD uint32_t hashIndex; @@ -707,8 +703,7 @@ RlcUlCfgTmpData *cfgTmpData rlcDbmFetchUlCellCb(gCb,cfgTmpData->cellId, &cfgTmpData->cellCb); if(!cfgTmpData->cellCb) { - RLOG_ARG1(L_ERROR, DBG_CELLID,cfgTmpData->cellId, - "CellCb not found UEID:%d", + DU_LOG("\nERROR --> RLC_UL : CellCb not found UEID:%d", cfgTmpData->ueId); /*how can a modify request come for a cell which does not exist*/ cfgEntData->entUlCfgCfm.status.reason = CKW_CFG_REAS_CELL_UNKWN; @@ -729,8 +724,7 @@ RlcUlCfgTmpData *cfgTmpData rlcDbmFetchUlUeCb(gCb,cfgTmpData->ueId, cfgTmpData->cellId, &cfgTmpData->ueCb); if(!cfgTmpData->ueCb) { - RLOG_ARG1(L_ERROR,DBG_CELLID, cfgTmpData->cellId, - "UeId [%d]: UeCb not found", + DU_LOG("\nERROR --> RLC_UL : UeId [%d]: UeCb not found", cfgTmpData->ueId); cfgEntData->entUlCfgCfm.status.reason = CKW_CFG_REAS_UE_UNKWN; return RFAILED; @@ -794,13 +788,11 @@ RlcUlEntTmpData *cfgEntData if(CKW_CFG_ADD == cfg->cfgType) { - if(CM_LTE_MODE_UM == cfg->entMode) + if(RLC_MODE_UM == cfg->entMode) { - RLC_FREE(gCb, - cfgEntData->rbCb->m.umUl.recBuf, - (cfgEntData->rbCb->m.umUl.umWinSz << 1) * sizeof(RlcUmRecBuf*)); + RLC_FREE(gCb, cfgEntData->rbCb->m.umUl.recBufLst, (RLC_RCV_BUF_BIN_SIZE * sizeof(CmLListCp))); } - else if(CM_LTE_MODE_AM == cfg->entMode) + else if(RLC_MODE_AM == cfg->entMode) { #ifndef LTE_TDD RLC_FREE(gCb,cfgEntData->rbCb->m.amUl.recBufLst, (RLC_RCV_BUF_BIN_SIZE * sizeof(CmLListCp))); @@ -915,11 +907,11 @@ RlcUlCfgTmpData *cfgTmpData NULLP; /* Free the Buffers of RbCb */ - if( CM_LTE_MODE_UM == cfgEntData->rbCb->mode ) + if( RLC_MODE_UM == cfgEntData->rbCb->mode ) { rlcUmmFreeUlRbCb(gCb, cfgEntData->rbCb); } - else if(CM_LTE_MODE_AM == cfgEntData->rbCb->mode) + else if(RLC_MODE_AM == cfgEntData->rbCb->mode) { rlcAmmFreeUlRbCb(gCb,cfgEntData->rbCb); } @@ -968,16 +960,14 @@ RlcUlCfgTmpData *cfgTmpData ) { - RLOG_ARG2(L_DEBUG,DBG_UEID,cfgTmpData->ueId, - "cellId(%d), cfgType(%d)", + DU_LOG("\nDEBUG --> RLC_UL : cellId(%d), cfgType(%d)", cfgTmpData->cellId,cfgToValidate->cfgType); /* Check for ueId is present or not */ if ( cfgTmpData->ueId == 0 ) { cfgEntData->entUlCfgCfm.status.reason = CKW_CFG_REAS_UE_UNKWN; - RLOG_ARG1(L_ERROR,DBG_UEID,cfgTmpData->ueId, - "UeId is 0 for CELLID;%d", + DU_LOG("\nERROR --> RLC_UL : UeId is 0 for CELLID;%d", cfgTmpData->cellId); return RFAILED; } @@ -985,8 +975,7 @@ RlcUlCfgTmpData *cfgTmpData /* Fetch Ue Cb */ if(ROK != rlcDbmFetchUlUeCb(gCb,cfgTmpData->ueId, cfgTmpData->cellId, &cfgTmpData->ueCb)) { - RLOG_ARG1(L_ERROR,DBG_CELLID, cfgTmpData->cellId, - "UeId [%d]: UeCb not found", + DU_LOG("\nERROR --> RLC_UL : UeId [%d]: UeCb not found", cfgTmpData->ueId); cfgEntData->entUlCfgCfm.status.reason = CKW_CFG_REAS_UE_UNKWN; return RFAILED; @@ -1045,7 +1034,7 @@ RlcUlCfgTmpData *cfgTmpData ) { - RLOG_ARG1(L_DEBUG,DBG_CELLID,cellId ,"cfgType(%d)", + DU_LOG("\nDEBUG --> RLC_UL : cfgType(%d)", cfgToValidate->cfgType); cfgTmpData->cellCb = NULLP; @@ -1054,7 +1043,7 @@ RlcUlCfgTmpData *cfgTmpData if ( cellId == 0 ) { cfgEntData->entUlCfgCfm.status.reason = CKW_CFG_REAS_CELL_UNKWN; - RLOG_ARG0(L_ERROR,DBG_CELLID,cellId , "CellId is 0"); + DU_LOG("\nERROR --> RLC_UL : CellId is 0"); return RFAILED; } @@ -1063,7 +1052,7 @@ RlcUlCfgTmpData *cfgTmpData if (!cfgTmpData->cellCb) { cfgEntData->entUlCfgCfm.status.reason = CKW_CFG_REAS_CELL_UNKWN; - RLOG_ARG0(L_ERROR, DBG_CELLID,cellId, "CellCb not found"); + DU_LOG("\nERROR --> RLC_UL : CellCb not found"); return RFAILED; } return ROK; @@ -1112,8 +1101,7 @@ RlcUlEntTmpData *cfgEntData { CmLteRlcId rlcId; /* RLC Identifier */ - RLOG_ARG2(L_DEBUG, DBG_UEID,ueId, - "cellId(%d) RBID:%d", + DU_LOG("\nDEBUG --> RLC_UL : cellId(%d) RBID:%d", cellId, cfgToValidate->rbId); @@ -1126,8 +1114,7 @@ RlcUlEntTmpData *cfgEntData rlcDbmFetchUlRbCbByRbId(gCb,&rlcId, &cfgEntData->rbCb); if (cfgEntData->rbCb == NULLP) { - RLOG_ARG2(L_WARNING, DBG_UEID,ueId, - "CellId [%u]: rbId [%d] not found", + DU_LOG("\nERROR --> RLC_UL : CellId [%u]: rbId [%d] not found", cellId, cfgToValidate->rbId); cfgEntData->entUlCfgCfm.status.reason = CKW_CFG_REAS_RB_UNKWN; @@ -1170,19 +1157,19 @@ RlcUlEntTmpData *cfgEntData cfgEntData->rbCb->rlcId.ueId = ueId; switch (cfgEntData->rbCb->mode) { - case CM_LTE_MODE_TM: + case RLC_MODE_TM: { rlcTmmUlReEstablish(gCb,cfgEntData->rbCb); break; } - case CM_LTE_MODE_UM: + case RLC_MODE_UM: { rlcUmmUlReEstablish(gCb,&rlcId,cfgEntData->rbCb); break; } - case CM_LTE_MODE_AM: + case RLC_MODE_AM: { rlcAmmUlReEstablish(gCb,rlcId,sndReEstInd,cfgEntData->rbCb); break; @@ -1225,8 +1212,7 @@ RlcUlCfgTmpData *cfgTmpData if(ROK == rlcDbmFetchUlUeCb(gCb,newUeInfo->ueId, newUeInfo->cellId, &ueCb)) { - RLOG_ARG1(L_ERROR, DBG_CELLID, newUeInfo->cellId, - "NewUeId[%d]:ueCb already exists", + DU_LOG("\nERROR --> RLC_UL : NewUeId[%d]:ueCb already exists", newUeInfo->ueId); CFM_STATUS.reason = CKW_CFG_REAS_UE_EXISTS; CFM_STATUS.status = CKW_CFG_CFM_NOK; @@ -1236,8 +1222,7 @@ RlcUlCfgTmpData *cfgTmpData if(ROK != rlcDbmFetchUlUeCb(gCb,ueInfo->ueId, ueInfo->cellId, &cfgTmpData->ueCb)) { - RLOG_ARG1(L_ERROR,DBG_CELLID, ueInfo->cellId, - "UeId [%d]: UeCb not found", + DU_LOG("\nERROR --> RLC_UL : UeId [%d]: UeCb not found", ueInfo->ueId); CFM_STATUS.reason = CKW_CFG_REAS_UE_UNKWN; CFM_STATUS.status = CKW_CFG_CFM_NOK; @@ -1283,8 +1268,7 @@ RlcUlCfgTmpData *cfgTmpData (uint16_t) sizeof(CmLteRnti))) { - RLOG_ARG1(L_ERROR,DBG_CELLID,newUeInfo->cellId, - "UeId[%u] HashList Insertion Failed", + DU_LOG("\nERROR --> RLC_UL : UeId[%u] HashList Insertion Failed", newUeInfo->ueId); }