X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Fmac.h;h=a4dc3207efa699624bf184f63deabe1bf0c95508;hb=2ba58cd78e409ae234aac627914f954e6aa8b1ff;hp=ea4bfa0cdff791c292558e1e084bc3a219a19080;hpb=12da8be0c4941e107b9ff0d18ce5b6eb7f5f7d20;p=o-du%2Fl2.git diff --git a/src/5gnrmac/mac.h b/src/5gnrmac/mac.h index ea4bfa0cd..a4dc3207e 100644 --- a/src/5gnrmac/mac.h +++ b/src/5gnrmac/mac.h @@ -26,6 +26,7 @@ #define MAX_ZERO_CORR_CFG_IDX 16 /* max zero correlation config index */ #define MAC_TQ_SIZE 10 /* Timing Queue Size */ #define MAX_NUM_TIMER 1 /* MAX number of MAC timers */ +#define MAX_PENDING_STATS_RSP 5 /* Maximum number of statistics request for which response is pending */ #define DEFAULT_CELLS 1 #define SI_RNTI 0xFFFF @@ -59,6 +60,7 @@ #define LC_ID_SIZE 6 #define TIMING_ADVANCE_SIZE 12 #define T_CRNTI_SIZE 16 + /* UL Grant is of size = 27 bits. Refer to Spec 38.213, Table 8.2-1 for * contents of UL grant in RAR */ #define FREQ_HOP_FLAG_SIZE 1 @@ -229,21 +231,31 @@ typedef struct macUeCb struct macCellCb { - uint16_t cellId; - uint16_t numOfSlots; - MacCellStatus state; - uint16_t crntiMap; - MacRaCbInfo macRaCb[MAX_NUM_UE]; - MacDlSlot dlSlot[MAX_SLOTS]; - MacUlSlot ulSlot[MAX_SLOTS]; - uint16_t numActvUe; - MacUeCfg *ueCfgTmpData[MAX_NUM_UE]; - MacUeRecfg *ueRecfgTmpData[MAX_NUM_UE]; - MacUeCb ueCb[MAX_NUM_UE]; - MacCellCfg macCellCfg; - SlotTimingInfo currTime; + uint16_t cellId; + uint16_t numOfSlots; + MacCellStatus state; + uint16_t crntiMap; + MacRaCbInfo macRaCb[MAX_NUM_UE]; + MacDlSlot dlSlot[MAX_SLOTS]; + MacUlSlot ulSlot[MAX_SLOTS]; + uint16_t numActvUe; + MacUeCreateReq *ueCfgTmpData[MAX_NUM_UE]; + MacUeRecfg *ueRecfgTmpData[MAX_NUM_UE]; + MacUeCb ueCb[MAX_NUM_UE]; + MacCellCfg macCellCfg; + uint8_t numerology; + SlotTimingInfo currTime; }; +typedef struct macStatistics +{ + uint8_t numPendingStatsRsp; + MacStatsRsp pendingStatsRsp[MAX_PENDING_STATS_RSP]; + + /* This structure can be developed in future to add details of + * the statistics to be calculated at MAC */ +}MacStatistics; + typedef struct macCb { Inst macInst; @@ -253,6 +265,7 @@ typedef struct macCb CmTqType tmrTq[MAC_TQ_SIZE]; /*!< Timer Task Queue */ CmTimer tmrBlk[MAX_NUM_TIMER]; /*!< Timer Block */ MacCellCb *macCell[MAX_NUM_CELL]; + MacStatistics statistics; }MacCb; /* global variable */ @@ -286,6 +299,9 @@ uint8_t MacProcUlSchInfo(Pst *pst, UlSchedInfo *ulSchedInfo); uint8_t MacProcSchRachRsrcRsp(Pst *pst, SchRachRsrcRsp *schRachRsrcRsp); uint8_t MacProcDlPageAlloc(Pst *pst, DlPageAlloc *dlPageAlloc); uint8_t MacProcSchCellDeleteRsp(Pst *pst, SchCellDeleteRsp *schCellDeleteRsp); + +uint8_t MacProcSchStatsRsp(Pst *pst, SchStatsRsp *schStatsRsp); +uint8_t MacProcSchStatsInd(Pst *pst, SchStatsInd *schStatsInd); #endif /********************************************************************** End of file