X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_mac_inf.h;h=c9855a202e67e2e25acf099b6c79cecdde9244a8;hb=1931d49496d91723b7c54c63db50ff4ee8ff03b6;hp=9e4b759e3c7695cfcfe5df0f940946ff898b3458;hpb=0fccb83e55b237d60cf451bab71a0c7242cc6e66;p=o-du%2Fl2.git diff --git a/src/cm/du_app_mac_inf.h b/src/cm/du_app_mac_inf.h index 9e4b759e3..c9855a202 100644 --- a/src/cm/du_app_mac_inf.h +++ b/src/cm/du_app_mac_inf.h @@ -29,12 +29,21 @@ #define SIB1_NEW_TX_PERIOD 160 #define SIB1_REPETITION_PERIOD 20 #define CORESET_0_INDEX 0 +#define CORESET_1_INDEX 1 +#define CORESET_2_INDEX 2 +#define CORESET_3_INDEX 3 +#define CORESET_4_INDEX 4 #define SEARCHSPACE_0_INDEX 0 #define SEARCHSPACE_1_INDEX 1 +#define SEARCHSPACE_2_INDEX 2 +#define SEARCHSPACE_3_INDEX 3 +#define SEARCHSPACE_4_INDEX 4 #define SS_MONITORING_SLOT_SL1 0 /* all slots */ #define SS_MONITORING_SYMBOL 0x2000; /* symbol-0, set 14th bit */ #define SIB1_MCS 4 +#define SRB_ID_0 0 +#define SRB_ID_1 1 /* Macros for coupling */ #define DU_MAC_LC 0 #define DU_MAC_TC 1 @@ -47,6 +56,8 @@ #define EVENT_MAC_CELL_STOP_REQ 203 #define EVENT_MAC_SLOT_IND 204 #define EVENT_MAC_STOP_IND 205 +#define EVENT_MAC_UL_CCCH_IND 206 +#define EVENT_MAC_DL_CCCH_IND 207 typedef enum { @@ -116,6 +127,12 @@ typedef enum SSB_PRDCTY_MS_160 }SSBPeriod; +typedef enum +{ + RRC_REJECT, + RRC_SETUP +}DlCcchMsgType; + typedef struct carrierCfg { Bool pres; @@ -161,6 +178,7 @@ typedef struct prachCfg RstSetCfg prachRstSetCfg; /* PRACH restricted set config */ uint16_t msg1FreqStart; /* Msg1-FrequencyStart */ uint8_t msg1Fdm; /* PRACH FDM (1,2,4,8) */ + uint8_t rootSeqLen; /* Root sequence length */ PrachFdmInfo fdm[8]; /* FDM info */ uint8_t ssbPerRach; /* SSB per RACH occassion */ Bool prachMultCarrBand; /* Multiple carriers in Band */ @@ -217,32 +235,68 @@ typedef struct searchSpaceCfg typedef struct pdcchConfigCommon { - SearchSpaceCfg raSearchSpace; + /* only one search space is configured during SIB1 */ + SearchSpaceCfg commonSearchSpace; + uint8_t raSearchSpaceId; }PdcchConfigCommon; +typedef struct pdschConfigCommon +{ + uint8_t k0; + uint8_t mappingType; + uint8_t startSymbol; + uint8_t lengthSymbol; +}PdschConfigCommon; + +typedef struct pucchConfigCommon +{ + uint8_t pucchResourceCommon; + uint8_t pucchGroupHopping; +}PucchConfigCommon; + +typedef struct puschConfigCommon +{ + /* PUSCH-TimeDomainResourceAllocation info */ + uint8_t k2; + uint8_t mappingType; + uint8_t startSymbol; + uint8_t lengthSymbol; +}PuschConfigCommon; + typedef struct bwpDlConfig { BwpParams bwp; PdcchConfigCommon pdcchCommon; + PdschConfigCommon pdschCommon; }BwpDlConfig; +typedef struct bwpUlConfig +{ + BwpParams bwp; + // rach config common sent in PrachCfg + PucchConfigCommon pucchCommon; + PuschConfigCommon puschCommon; +}BwpUlConfig; + typedef struct macCellCfg { - U16 transId; - U16 cellId; /* Cell Id */ - U8 numTlv; /* Number of configuration TLVs */ - U8 carrierId; /* Carrired Index */ - U16 phyCellId; /* Physical cell id */ - DuplexMode dupType; /* Duplex type: TDD/FDD */ - CarrierCfg dlCarrCfg; /* DL Carrier configuration */ - CarrierCfg ulCarrCfg; /* UL Carrier configuration */ - Bool freqShft; /* Indicates presence of 7.5kHz frequency shift */ - SsbCfg ssbCfg; /* SSB configuration */ - PrachCfg prachCfg; /* PRACH Configuration */ - TDDCfg tddCfg; /* TDD periodicity and slot configuration */ - RSSIMeasUnit rssiUnit; /* RSSI measurement unit */ - Sib1CellCfg sib1Cfg; - BwpDlConfig initialBwp; + U16 transId; /* Trans Id */ + U16 cellId; /* Cell Id */ + U8 numTlv; /* Number of configuration TLVs */ + U8 carrierId; /* Carrired Index */ + U16 phyCellId; /* Physical cell id */ + DuplexMode dupType; /* Duplex type: TDD/FDD */ + CarrierCfg dlCarrCfg; /* DL Carrier configuration */ + CarrierCfg ulCarrCfg; /* UL Carrier configuration */ + Bool freqShft; /* Indicates presence of 7.5kHz frequency shift */ + SsbCfg ssbCfg; /* SSB configuration */ + PrachCfg prachCfg; /* PRACH Configuration */ + TDDCfg tddCfg; /* TDD periodicity and slot configuration */ + RSSIMeasUnit rssiUnit; /* RSSI measurement unit */ + Sib1CellCfg sib1Cfg; /* SIB1 config */ + BwpDlConfig initialDlBwp; /* Initial DL BWP */ + BwpUlConfig initialUlBwp; /* Initial UL BWP */ + uint8_t dmrsTypeAPos; /* DMRS Type A position */ }MacCellCfg; typedef struct macCellCfgCfm @@ -268,42 +322,43 @@ typedef struct macCellStopInfo uint16_t cellId; }MacCellStopInfo; +typedef struct ulCcchInd +{ + uint16_t cellId; + uint16_t crnti; + uint8_t *ulCcchMsg; +}UlCcchIndInfo; + +typedef struct dlCcchInd +{ + uint16_t cellId; + uint16_t crnti; + DlCcchMsgType msgType; + uint16_t dlCcchMsgLen; + uint8_t *dlCcchMsg; +}DlCcchIndInfo; + + /* Functions for slot Ind from MAC to DU APP*/ typedef uint16_t (*DuMacSlotInd) ARGS(( Pst *pst, SlotInfo *slotInfo )); -extern uint16_t packMacSlotInd(Pst *pst, SlotInfo *slotInfo ); -extern uint16_t unpackMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf); -extern uint16_t duHandleSlotInd(Pst *pst, SlotInfo *slotInfo); - /* Functions for stop Ind from MAC to DU APP*/ typedef uint16_t (*DuMacStopInd) ARGS(( Pst *pst, MacCellStopInfo *cellId )); -extern uint16_t packMacStopInd(Pst *pst, MacCellStopInfo *cellId); -extern uint16_t unpackMacStopInd(DuMacStopInd func, Pst *pst, Buffer *mBuf); -extern uint16_t duHandleStopInd(Pst *pst, MacCellStopInfo *cellId); - /* Functions for mac cell start req */ typedef uint16_t (*DuMacCellStartReq) ARGS(( Pst *pst, MacCellStartInfo *cellStartInfo )); -extern uint16_t packMacCellStartReq(Pst *pst, MacCellStartInfo *cellStartInfo); -extern uint16_t unpackMacCellStartReq(DuMacCellStartReq func, Pst *pst, Buffer *mBuf); -extern uint16_t MacHdlCellStartReq(Pst *pst, MacCellStartInfo *cellStartInfo); - /* Functions for mac cell stop request */ typedef uint16_t (*DuMacCellStopReq) ARGS(( Pst *pst, MacCellStopInfo *cellStopInfo )); -extern uint16_t packMacCellStopReq(Pst *pst, MacCellStopInfo *cellStopInfo); -extern uint16_t unpackMacCellStopReq(DuMacCellStopReq func, Pst *pst, Buffer *mBuf); -extern uint16_t MacHdlCellStopReq(Pst *pst, MacCellStopInfo *cellStopInfo); - /* Function pointers for packing macCellCfg Request and Confirm */ typedef int (*packMacCellCfgReq) ARGS(( Pst *pst, @@ -321,11 +376,39 @@ typedef int (*DuMacCellCfgCfm) ARGS(( Pst *pst, MacCellCfgCfm *macCellCfgCfm )); +/* Functions for UL CCCH Ind from MAC to DU APP*/ +typedef uint16_t (*DuMacUlCcchInd) ARGS(( + Pst *pst, + UlCcchIndInfo *ulCcchIndInfo )); + +/* Functions for DL CCCH Ind from DU APP to MAC*/ +typedef uint16_t (*DuMacDlCcchInd) ARGS(( + Pst *pst, + DlCcchIndInfo *dlCcchIndInfo )); + +extern uint16_t packMacSlotInd(Pst *pst, SlotInfo *slotInfo ); +extern uint16_t unpackMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf); +extern uint16_t duHandleSlotInd(Pst *pst, SlotInfo *slotInfo); +extern uint16_t packMacCellStartReq(Pst *pst, MacCellStartInfo *cellStartInfo); +extern uint16_t unpackMacCellStartReq(DuMacCellStartReq func, Pst *pst, Buffer *mBuf); +extern uint16_t MacHdlCellStartReq(Pst *pst, MacCellStartInfo *cellStartInfo); +extern uint16_t packMacCellStopReq(Pst *pst, MacCellStopInfo *cellStopInfo); +extern uint16_t unpackMacCellStopReq(DuMacCellStopReq func, Pst *pst, Buffer *mBuf); +extern uint16_t MacHdlCellStopReq(Pst *pst, MacCellStopInfo *cellStopInfo); extern int packMacCellCfg(Pst *pst, MacCellCfg *macCellCfg); extern int MacHdlCellCfgReq(Pst *pst, MacCellCfg *macCellCfg); extern void cmUnpackLwLcMacCellCfg(DuMacCellCfgReq func, Pst *pst, Buffer *mBuf); extern int unpackMacCellCfgCfm(DuMacCellCfgCfm func, Pst *pst, Buffer *mBuf); extern int duHandleMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); +extern uint16_t packMacStopInd(Pst *pst, MacCellStopInfo *cellId); +extern uint16_t unpackMacStopInd(DuMacStopInd func, Pst *pst, Buffer *mBuf); +extern uint16_t duHandleStopInd(Pst *pst, MacCellStopInfo *cellId); +extern uint16_t packMacUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo); +extern uint16_t unpackMacUlCcchInd(DuMacUlCcchInd func, Pst *pst, Buffer *mBuf); +extern uint16_t duHandleUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo); +extern uint16_t packMacDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo); +extern uint16_t unpackMacDlCcchInd(DuMacDlCcchInd func, Pst *pst, Buffer *mBuf); +extern uint16_t MacHdlDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo); uint8_t sendStopIndMacToDuApp(); #endif