X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Fmac.h;h=09450642123358897256708f1157301e9e04b3a6;hb=a2484c58e5beeb1ab9e1c86104cf9d9bc56750d1;hp=617212b032833720b46e15eb079749f9ace6e013;hpb=8d9ebf64c8a64bf1346685833fe79970c4ef3d14;p=o-du%2Fl2.git diff --git a/src/5gnrmac/mac.h b/src/5gnrmac/mac.h index 617212b03..094506421 100644 --- a/src/5gnrmac/mac.h +++ b/src/5gnrmac/mac.h @@ -31,7 +31,8 @@ #include "cm_hash.h" /* Common Hash List Defines */ #include "cm_lte.h" /* Common LTE Defines */ #include "cm_mblk.h" /* Common LTE Defines */ -#include "tfu.h" /* RGU Interface defines */ +#include "rgu.h" /* RGU interface includes*/ +#include "tfu.h" /* TFU Interface defines */ #include "lrg.h" #include "du_app_mac_inf.h" #include "mac_sch_interface.h" @@ -45,18 +46,41 @@ #include "cm_hash.x" /* Common Hash List Definitions */ #include "cm_lte.x" /* Common LTE Defines */ #include "cm_mblk.x" /* Common LTE Defines */ +#include "rgu.x" #include "tfu.x" /* RGU Interface includes */ #include "lrg.x" #define MAX_SLOT_SUPPORTED 10 /* numerology 0 15Khz */ #define MAX_ZERO_CORR_CFG_IDX 16 /* max zero correlation config index */ #define SI_RNTI 0xFFFF -#define P-RNTI 0xFFFE +#define P_RNTI 0xFFFE +#define MAX_MAC_CE 6 +#define MAX_UE 1 +#define MAX_CRI_SIZE 6 +#define MAX_MAC_DL_PDU 10 + +#define MAC_LCID_CCCH 0 +#define MAC_DEDLC_MIN_LCID 1 +#define MAC_DEDLC_MAX_LCID 32 +#define MAC_LCID_RESERVED_MIN 33 +#define MAC_LCID_RESERVED_MAX 51 +#define MAC_LCID_CCCH_48BIT 52 +#define MAC_LCID_BIT_RATE_QUERY 53 +#define MAC_LCID_MULT_PHR_FOUR_OCT 54 +#define MAC_LCID_CFG_GRANT_CFM 55 +#define MAC_LCID_MULT_PHR_ONE_OCT 56 +#define MAC_LCID_SINGLE_PHR 57 +#define MAC_LCID_CRNTI 58 +#define MAC_LCID_SHORT_TRUNC_BSR 59 +#define MAC_LCID_LONG_TRUNC_BSR 60 +#define MAC_LCID_SHORT_BSR 61 +#define MAC_LCID_LONG_BSR 62 +#define MAC_LCID_CRI 62 +#define MAC_LCID_PADDING 63 typedef struct macDlSlot { DlAlloc dlInfo; - }MacDlSlot; typedef struct macUlSlot @@ -64,12 +88,48 @@ typedef struct macUlSlot UlSchInfo ulCellInfo; }MacUlSlot; +typedef struct macCbInfo +{ + uint16_t cellId; + uint16_t crnti; + uint8_t msg3Pdu[6]; /* used as CRI value during muxing */ + uint8_t *msg4Pdu; /* storing DL-CCCH Ind Pdu */ + uint16_t msg4PduLen; /* storing DL-CCCH Ind Pdu Len */ + uint8_t *msg4TxPdu; /* muxed Pdu used for re-transmission */ + uint16_t msg4TbSize; /* size required for msg4TxPdu */ +}MacRaCbInfo; + +typedef struct macCe +{ + uint16_t macCeLcid; + uint8_t macCeValue[6]; +}MacCe; + +typedef struct macCeInfo +{ + uint16_t numCes; + MacCe macCe[MAX_MAC_CE]; +}MacCeInfo; + +typedef struct macDlInfo +{ + uint16_t lcId; + uint16_t pduLen; + uint8_t *dlPdu; +}MacDlInfo; + +typedef struct macDlData +{ + uint16_t numPdu; + MacDlInfo pduInfo[MAX_MAC_DL_PDU]; +}MacDlData; + typedef struct macCellCb { - uint16_t cellId; - RachIndInfo raCb; - MacDlSlot dlSlot[MAX_SLOT_SUPPORTED]; - MacUlSlot ulSlot[MAX_SLOT_SUPPORTED]; + uint16_t cellId; + MacRaCbInfo macRaCb[MAX_UE]; + MacDlSlot dlSlot[MAX_SLOT_SUPPORTED]; + MacUlSlot ulSlot[MAX_SLOT_SUPPORTED]; }MacCellCb; typedef struct macCb @@ -79,8 +139,14 @@ typedef struct macCb }MacCb; /* global variable */ -EXTERN MacCb macCb; +MacCb macCb; void fillMacToSchPst(Pst *pst); +void fillRarPdu(RarInfo *rarInfo); +void createMacRaCb(uint16_t cellId, uint16_t crnti); +void fillMsg4DlData(MacDlData *dlData); +void fillMacCe(MacCeInfo *macCeData); +void macMuxPdu(MacDlData *dlData, MacCeInfo *macCeData, uint16_t tbSize); +int unpackRxData(RxDataIndPdu *rxDataIndPdu); #endif /**********************************************************************