#define EVENT_MAC_CELL_START_REQ 202
#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
{
SSB_PRDCTY_MS_160
}SSBPeriod;
+typedef enum
+{
+ RRC_REJECT,
+ RRC_SETUP
+}DlCcchMsgType;
+
typedef struct carrierCfg
{
Bool pres;
SearchSpaceCfg raSearchSpace;
}PdcchConfigCommon;
+typedef struct pdschConfigCommon
+{
+ uint8_t k0;
+ uint8_t mappingType;
+ uint8_t startSymbol;
+ uint8_t lengthSymbol;
+}PdschConfigCommon;
+
+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
+ // pucch info not required
+ PuschConfigCommon puschCommon;
+}BwpUlConfig;
+
typedef struct macCellCfg
{
U16 transId;
TDDCfg tddCfg; /* TDD periodicity and slot configuration */
RSSIMeasUnit rssiUnit; /* RSSI measurement unit */
Sib1CellCfg sib1Cfg;
- BwpDlConfig initialBwp;
+ BwpDlConfig initialDlBwp;
+ BwpUlConfig initialUlBwp;
}MacCellCfg;
typedef struct macCellCfgCfm
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;
+ 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 ));
/* 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,
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
/**********************************************************************