msg3 and msg4 changes
[o-du/l2.git] / src / cm / du_app_mac_inf.h
index 9e4b759..3b1c558 100644 (file)
@@ -47,6 +47,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 +118,12 @@ typedef enum
    SSB_PRDCTY_MS_160
 }SSBPeriod;
 
+typedef enum
+{
+   RRC_REJECT,
+   RRC_SETUP
+}DlCcchMsgType;
+
 typedef struct carrierCfg
 {
    Bool  pres;
@@ -220,12 +228,38 @@ typedef struct pdcchConfigCommon
    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;
@@ -242,7 +276,8 @@ typedef struct macCellCfg
    TDDCfg         tddCfg;     /* TDD periodicity and slot configuration */
    RSSIMeasUnit   rssiUnit;   /* RSSI measurement unit */
    Sib1CellCfg    sib1Cfg;
-       BwpDlConfig    initialBwp;
+       BwpDlConfig    initialDlBwp;
+       BwpUlConfig    initialUlBwp;
 }MacCellCfg;
 
 typedef struct macCellCfgCfm
@@ -268,42 +303,42 @@ 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;
+   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 +356,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