X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Fkw_cfg_dl.c;h=8c9da76d51d82f9c4a2483489abd1cfb9add2a69;hb=f01eb5471d34834e2ef1d8dbbfc4b2fe68403650;hp=de810a3937bd86255d7fcba3e6b25d6cafae2a65;hpb=95fc4329bde1b6a06b00f94bd0eeab8bc5ba7295;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/kw_cfg_dl.c b/src/5gnrrlc/kw_cfg_dl.c index de810a393..8c9da76d5 100755 --- a/src/5gnrrlc/kw_cfg_dl.c +++ b/src/5gnrrlc/kw_cfg_dl.c @@ -47,6 +47,7 @@ static int RLOG_FILE_ID=191; /* header (.h) include files */ #include "common_def.h" +#include "math.h" #include "lkw.h" /* LKW defines */ #include "ckw.h" /* CKW defines */ #include "kwu.h" /* KWU defines */ @@ -66,6 +67,7 @@ static int RLOG_FILE_ID=191; #include "kw.x" #include "kw_udx.x" #include "kw_dl.x" +#include "du_app_rlc_inf.h" #define RLC_MODULE RLC_DBGMASK_CFG /*Added for adding new Ue in onging L2 Meas*/ @@ -202,7 +204,7 @@ static S16 rlcAddToDlL2Meas(RlcCb *gCb, RlcDlRbCb *rlcRbCb,uint8_t cellId,uint8_ { 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.umDl.sduQ.count) @@ -214,7 +216,7 @@ static S16 rlcAddToDlL2Meas(RlcCb *gCb, RlcDlRbCb *rlcRbCb,uint8_t cellId,uint8_ } } } - else if (rlcRbCb->mode == CM_LTE_MODE_AM) + else if (rlcRbCb->mode == RLC_MODE_AM) { if ((rlcRbCb->m.amDl.cntrlBo) || (rlcRbCb->m.amDl.retxBo) || @@ -301,6 +303,7 @@ static S16 rlcAddToDlL2Meas(RlcCb *gCb, RlcDlRbCb *rlcRbCb,uint8_t cellId,uint8_ return ROK; }/*rlcAddToDlL2Meas*/ #endif /*LTE_L2_MEAS*/ + /** * @brief @@ -327,7 +330,7 @@ static S16 rlcCfgFillDlRbCb(RlcCb *gCb,RlcDlRbCb *rbCb,RlcDlUeCb *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; @@ -335,30 +338,39 @@ static S16 rlcCfgFillDlRbCb(RlcCb *gCb,RlcDlRbCb *rbCb,RlcDlUeCb *ueCb,RlcEntCfg break; } - case CM_LTE_MODE_UM: + case RLC_MODE_UM: { rbCb->lch.lChId = entCfg->lCh[0].lChId; rbCb->lch.lChType = entCfg->lCh[0].type; rbCb->dir = entCfg->dir; + + /* Spec 38.322 Section 7.1 + * All UM state variables can take values from 0 to 63 for 6 bit SN or + * from 0 to 4095 for 12 bit SN. All arithmetic operations on UM state + * variables are affected by the UM modulus + * (i.e. final value = [value from arithmetic operation] modulo 64 + * for 6 bit SN and 4096 for 12 bit SN) + */ rbCb->m.umDl.snLen = entCfg->m.umInfo.dl.snLen; - if (entCfg->m.umInfo.dl.snLen == RLC_UM_CFG_5BIT_SN_LEN) - rbCb->m.umDl.modBitMask = 0x1f; + if (entCfg->m.umInfo.dl.snLen == RLC_UM_CFG_6BIT_SN_LEN) + rbCb->m.umDl.modBitMask = 0x3f; else - rbCb->m.umDl.modBitMask = 0x3ff; + rbCb->m.umDl.modBitMask = 0xfff; ueCb->lCh[rbCb->lch.lChId - 1].dlRbCb = rbCb; break; } - case CM_LTE_MODE_AM: + case RLC_MODE_AM: { /* Down Link Information * indx = 0 as Down Link */ rbCb->lch.lChId = entCfg->lCh[0].lChId; rbCb->lch.lChType = entCfg->lCh[0].type; rbCb->dir = RLC_DIR_BOTH; + rbCb->m.amDl.pollPdu = entCfg->m.amInfo.dl.pollPdu; - rbCb->m.amDl.pollByte = entCfg->m.amInfo.dl.pollByte; + rbCb->m.amDl.pollByte = entCfg->m.amInfo.dl.pollByte; rbCb->m.amDl.maxRetx = entCfg->m.amInfo.dl.maxRetx; rbCb->m.amDl.pollRetxTmrInt = entCfg->m.amInfo.dl.pollRetxTmr; rbCb->m.amDl.snLen = entCfg->m.amInfo.dl.snLen; @@ -373,8 +385,6 @@ static S16 rlcCfgFillDlRbCb(RlcCb *gCb,RlcDlRbCb *rbCb,RlcDlUeCb *ueCb,RlcEntCfg } cmInitTimers(&(rbCb->m.amDl.pollRetxTmr), 1); - - ueCb->lCh[rbCb->lch.lChId - 1].dlRbCb = rbCb; #ifndef LTE_TDD @@ -439,7 +449,7 @@ RlcEntCfgInfo *entCfg switch (rbCb->mode) { - case CM_LTE_MODE_TM: + case RLC_MODE_TM: { RlcDlCellCb *cellCb = (RlcDlCellCb *)ptr; @@ -451,7 +461,7 @@ RlcEntCfgInfo *entCfg break; } - case CM_LTE_MODE_UM: + case RLC_MODE_UM: { RlcDlUeCb *ueCb = (RlcDlUeCb *)ptr; @@ -468,7 +478,7 @@ RlcEntCfgInfo *entCfg break; } - case CM_LTE_MODE_AM: + case RLC_MODE_AM: { RlcDlUeCb *ueCb = (RlcDlUeCb *)ptr; @@ -582,7 +592,7 @@ RlcEntCfgCfmInfo *entCfm if (((entCfg->lCh[0].type == CM_LTE_LCH_BCCH) || (entCfg->lCh[0].type == CM_LTE_LCH_PCCH) || (entCfg->lCh[0].type == CM_LTE_LCH_CCCH)) && - (entCfg->entMode == CM_LTE_MODE_TM)) + (entCfg->entMode == RLC_MODE_TM)) { /* Cell CB present */ rlcDbmFetchDlCellCb(gCb, cellId, &cellCb); @@ -653,7 +663,7 @@ RlcEntCfgCfmInfo *entCfm } else { - reason= (entCfg->entMode != CM_LTE_MODE_TM)? CKW_CFG_REAS_RB_MODE_MIS: + reason= (entCfg->entMode != RLC_MODE_TM)? CKW_CFG_REAS_RB_MODE_MIS: CKW_CFG_REAS_LCHTYPE_MIS; /* Fill entCfm structure */ RLC_CFG_FILL_CFG_CFM(entCfm, entCfg->rbId, entCfg->rbType, @@ -675,11 +685,11 @@ RlcEntCfgCfmInfo *entCfm return RFAILED; } if ((((entCfg->lCh[0].type == CM_LTE_LCH_DCCH) && - (entCfg->entMode != CM_LTE_MODE_UM) && + (entCfg->entMode != RLC_MODE_UM) && (CM_LTE_SRB == entCfg->rbType)) || ((entCfg->lCh[0].type == CM_LTE_LCH_DTCH) && (CM_LTE_DRB == entCfg->rbType))) && - (entCfg->entMode != CM_LTE_MODE_TM)) + (entCfg->entMode != RLC_MODE_TM)) { /* UE CB present */ if ( rlcDbmFetchDlUeCb(gCb,ueId, cellId, &ueCb) == ROK) @@ -717,7 +727,7 @@ RlcEntCfgCfmInfo *entCfm /* Validate LChId for UM and AM modes */ if ((entCfg->lCh[0].lChId <= 0) || - ((entCfg->entMode == CM_LTE_MODE_AM)&& + ((entCfg->entMode == RLC_MODE_AM)&& (entCfg->lCh[1].lChId <= 0))) { /* Fill entCfm structure */ @@ -752,7 +762,7 @@ RlcEntCfgCfmInfo *entCfm } else { - if (entCfg->entMode == CM_LTE_MODE_TM) + if (entCfg->entMode == RLC_MODE_TM) { reason = CKW_CFG_REAS_RB_MODE_MIS; } @@ -1157,13 +1167,13 @@ RlcEntCfgCfmInfo *entCfm RLC_UPD_L2_DECR_NONIP_PER_QCI_RB_COUNT(gCb, rlcRbCb); #endif /* Free the Buffers of RbCb */ - if( CM_LTE_MODE_UM == rlcRbCb->mode) + if( RLC_MODE_UM == rlcRbCb->mode) { rlcUmmFreeDlRbCb(gCb,rlcRbCb); /* Delete RbCb */ RLC_FREE(gCb,rlcRbCb, sizeof(RlcDlRbCb)); } - else if( CM_LTE_MODE_AM == rlcRbCb->mode) + else if( RLC_MODE_AM == rlcRbCb->mode) { rlcAmmFreeDlRbCb(gCb,rlcRbCb); } @@ -1259,19 +1269,19 @@ RlcEntCfgCfmInfo *entCfm switch (rbCb->mode) { - case CM_LTE_MODE_TM: + case RLC_MODE_TM: { rlcDlTmmReEstablish(gCb,rbCb); break; } - case CM_LTE_MODE_UM: + case RLC_MODE_UM: { rlcDlUmmReEstablish(gCb,rlcId,sndReEstInd,rbCb); break; } - case CM_LTE_MODE_AM: + case RLC_MODE_AM: { rlcAmmDlReEstablish(gCb, rlcId, rbCb); break;