Updated IP and Port configurations
[o-du/l2.git] / src / cm / rgu.x
index 9809516..0338cee 100755 (executable)
@@ -396,6 +396,52 @@ typedef struct rguInfoRingElem
   U8           event;
   Void         *msg;
 }RguInfoRingElem;
+
+/* Buffer occupancy status information */
+typedef struct rlcMacBOStatus
+{
+   CmLteCellId  cellId;     /*!< CELL ID */
+   CmLteRnti    rnti;       /*!< UE ID */
+   Bool         commCh;     /*!< Common or Dedicated Channel */
+   CmLteLcId    lcId;       /*!< Logical channel ID */
+   S32          bo;         /*!< Buffer occupancy reported by RLC */
+}RlcMacBOStatus;
+
+/* Schedule result report from RLC to MAC */
+typedef struct rlcMacLchSta
+{
+   Bool         commCh;     /*!<Common or Dedicated Channel */
+   RguLchStaInd lchStaInd;  /*!<Buffer size allocated for logical channel */
+}RlcMacLchSta;
+
+typedef struct rlcMacSchedRep
+{
+   CmLteTimingInfo timeToTx;  /*!< Air interface time */
+   CmLteCellId  cellId;       /*!< CELL ID */
+   CmLteRnti    rnti;         /*!< Temporary CRNTI */
+   U8           nmbLch;       /*!< Number of logical channels scheduled */
+   RlcMacLchSta lchSta[RGU_MAX_LC];  /*!< Scheduled info of logical channels */
+}RlcMacSchedRepInfo;
+
+/* UL Data i.e. RLC PDU info from RLC to MAC */
+typedef struct rlcMacPduInfo
+{
+   Bool         commCh;   /*!<Common or Dedicated Channel */
+   CmLteLcId    lcId;     /*!< Logical channel ID */
+   MsgLen       pduLen;   /*!< PDU Length */
+   Buffer       *pduBuf;  /*!< RLC PDU buffer */
+}RlcMacPduInfo;
+
+typedef struct rlcMacData
+{  
+   CmLteTimingInfo timeToTx;  /*!< Air interface time */
+   CmLteCellId     cellId;       /*!< CELL ID */
+   CmLteRnti       rnti;         /*!< Temporary CRNTI */ 
+   U8              nmbPdu;       /*!< Number of RLC PDUs */
+   RlcMacPduInfo   pduInfo[RGU_MAX_PDU];
+}RlcMacData;
+
+
 /***********************************************************************
           type definitions for upper layer interface - RLC primitives
  ***********************************************************************/
@@ -426,7 +472,12 @@ typedef S16 (*RguCDatReq) ARGS((
 typedef S16 (*RguDDatReq) ARGS((
    Pst*                 pst,
    SpId                 spId,
-   RguDDatReqInfo  *    datReq));
+   RguDDatReqInfo       *datReq));
+
+typedef uint16_t (*RlcMacDlData) ARGS((
+   Pst*                 pst,
+   SpId                 spId,
+   RlcMacData           *dlData));
 /** @brief Data Indication from MAC to RLC to 
  * forward the data received for common channels */
 typedef S16 (*RguCDatInd) ARGS((
@@ -438,7 +489,12 @@ typedef S16 (*RguCDatInd) ARGS((
 typedef S16 (*RguDDatInd) ARGS((
    Pst*                 pst,
    SuId                 suId,
-   RguDDatIndInfo  *    datInd));
+   RguDDatIndInfo       *datInd));
+
+typedef S16 (*RlcMacUlData) ARGS((
+   Pst*                 pst,
+   SuId                 suId,
+   RlcMacData           *ulData));
 /** @brief Status Response from RLC to MAC to 
  * inform the BO report for common channels */
 typedef S16 (*RguCStaRsp) ARGS((
@@ -451,6 +507,12 @@ typedef S16 (*RguDStaRsp) ARGS((
    Pst*                 pst,
    SpId                 spId,
    RguDStaRspInfo  *    staRsp));
+
+typedef uint16_t (*RlcMacBoStatus) ARGS((
+   Pst*                 pst,
+   SpId                 spId,
+   RlcMacBOStatus       *boStatus));
+
 /** @brief Status Indication from MAC to RLC  
  * as a response to the staRsp primitive from RLC */
 typedef S16 (*RguCStaInd) ARGS((
@@ -462,7 +524,12 @@ typedef S16 (*RguCStaInd) ARGS((
 typedef S16 (*RguDStaInd) ARGS((
    Pst*                 pst,
    SuId                 suId,
-   RguDStaIndInfo  *    staInd));
+   RguDStaIndInfo *    staInd));
+
+typedef uint16_t (*RlcMacSchedRep) ARGS((
+   Pst*                 pst,
+   SuId                 suId,
+   RlcMacSchedRepInfo       *schRep));
 
 typedef S16 (*RguFlowCntrlIndInfo) ARGS((
    Pst                  *pst,
@@ -526,6 +593,9 @@ EXTERN S16 RgUiRguCDatReq ARGS((Pst* pst,SpId spId,RguCDatReqInfo *datReq));
  * @return ROK/RFAILED
 */
 EXTERN S16 RgUiRguDDatReq ARGS((Pst* pst,SpId spId,RguDDatReqInfo  *datReq));
+
+EXTERN uint16_t MacRlcProcDlData(Pst* pst, SpId spId, RlcMacData *dlData);
+
 /** @brief Data Indication from MAC to RLC to 
  * forward the data received for common channels
  * @param pst Pointer to the post structure.
@@ -558,6 +628,9 @@ EXTERN S16 RgUiRguCStaRsp ARGS((Pst* pst,SpId spId,RguCStaRspInfo  *staRsp));
  * @return ROK/RFAILED
 */
 EXTERN S16 RgUiRguDStaRsp ARGS((Pst* pst,SpId spId,RguDStaRspInfo  *staRsp));
+
+EXTERN uint16_t MacRlcProcBOStatus(Pst* pst, SpId spId, RlcMacBOStatus* boStatus);
+
 /** @brief Status Indication from MAC to RLC  
  * as a response to the staRsp primitive from RLC.
  * @param pst Pointer to the post structure.
@@ -626,11 +699,21 @@ EXTERN S16 KwLiRguCDatReq ARGS((
 ));
 /** @brief Request from RLC to MAC for forwarding SDUs on 
  * dedicated channel for transmission */
-EXTERN S16 KwLiRguDDatReq ARGS((
+EXTERN S16 RlcMacSendDlData ARGS((
    Pst*                 pst,
    SpId                 spId,
-   RguDDatReqInfo  *    datReq
+   RlcMacData  *    datReq
 ));
+
+/** @brief Handler toprocess UL data from MAC and
+ * forwarding to appropriate common/dedicated
+ * channel's handler */
+EXTERN S16 RlcMacProcUlData ARGS((
+   Pst*           pst,
+   SuId           suId,
+   RlcMacData   *ulData
+));
+
 /** @brief Data Indication from MAC to RLC to 
  * forward the data received for common channels*/
 EXTERN S16 KwLiRguCDatInd ARGS((
@@ -654,10 +737,18 @@ EXTERN S16 KwLiRguCStaRsp ARGS((
 ));
 /** @brief Primitive invoked from RLC to MAC to 
  * inform the BO report for dedicated channels*/
-EXTERN S16 KwLiRguDStaRsp ARGS((
+EXTERN S16 RlcMacSendBOStatus ARGS((
    Pst*                 pst,
    SpId                 spId,
-   RguDStaRspInfo  *    staRsp
+   RlcMacBOStatus*      boSta
+));
+
+/**@brief Primitive invoked from MAC to RLC to
+ * inform scheduling result for logical channels */
+EXTERN uint16_t RlcMacProcSchedRep ARGS((
+   Pst*                 pst,
+   SuId                 suId,
+   RlcMacSchedRepInfo       *schRep
 ));
 /** @brief Status Indication from MAC to RLC  
  * as a response to the staRsp primitive from RLC.
@@ -761,15 +852,15 @@ EXTERN S16 cmUnpkRguCDatReq ARGS((
 ));
 /** @brief Request from RLC to MAC for forwarding SDUs on 
  * dedicated channel for transmission */
-EXTERN S16 cmPkRguDDatReq ARGS((
+EXTERN uint16_t packDlData ARGS((
    Pst*                 pst,
    SpId                 spId,
-   RguDDatReqInfo  *    datReq
+   RlcMacData      *    datReq
 ));
 /** @brief Request from RLC to MAC for forwarding SDUs on 
  * dedicated channel for transmission */
-EXTERN S16 cmUnpkRguDDatReq ARGS((
-   RguDDatReq           func,
+EXTERN S16 unpackDlData ARGS((
+   RlcMacDlData         func,
    Pst*                 pst,
    Buffer               *mBuf
 ));
@@ -789,15 +880,15 @@ EXTERN S16 cmUnpkRguCDatInd ARGS((
 ));
 /** @brief Data Indication from MAC to RLC to 
  * forward the data received for dedicated channels*/
-EXTERN S16 cmPkRguDDatInd ARGS((
+EXTERN S16 packRcvdUlData ARGS((
    Pst*                 pst,
    SuId                 suId,
-   RguDDatIndInfo  *    datInd
+   RlcMacData  *    ulData
 ));
 /** @brief Data Indication from MAC to RLC to 
  * forward the data received for dedicated channels*/
-EXTERN S16 cmUnpkRguDDatInd ARGS((
-   RguDDatInd           func,
+EXTERN S16 unpackRcvdUlData ARGS((
+   RlcMacUlData         func,
    Pst*                 pst,
    Buffer               *mBuf
 ));
@@ -817,15 +908,15 @@ EXTERN S16 cmUnpkRguCStaRsp ARGS((
 ));
 /** @brief Primitive invoked from RLC to MAC to 
  * inform the BO report for dedicated channels*/
-EXTERN S16 cmPkRguDStaRsp ARGS((
+EXTERN uint16_t packBOStatus ARGS((
    Pst*                 pst,
    SpId                 spId,
-   RguDStaRspInfo  *    staRsp
+   RlcMacBOStatus*      boStatus
 ));
 /** @brief Primitive invoked from RLC to MAC to 
  * inform the BO report for dedicated channels*/
-EXTERN S16 cmUnpkRguDStaRsp ARGS((
-   RguDStaRsp           func,
+EXTERN uint16_t unpackBOStatus ARGS((
+   RlcMacBoStatus       func,
    Pst*                 pst,
    Buffer               *mBuf
 ));
@@ -851,10 +942,10 @@ EXTERN S16 cmUnpkRguCStaInd ARGS((
  * as a response to the staRsp primitive from RLC.
  * Informs RLC of the totalBufferSize and Timing Info 
  * for the transmission on dedicated channels. */
-EXTERN S16 cmPkRguDStaInd ARGS((
+EXTERN S16 packSchedRep ARGS((
    Pst*                 pst,
    SuId                 suId,
-   RguDStaIndInfo  *    staInd
+   RlcMacSchedRepInfo   *staInd
 ));
 EXTERN S16 cmPkRguFlowCntrlInfo ARGS((
 RguFlowCntrlInd *param, 
@@ -884,8 +975,8 @@ Buffer           *mBuf
  * as a response to the staRsp primitive from RLC.
  * Informs RLC of the totalBufferSize and Timing Info 
  * for the transmission on dedicated channels. */
-EXTERN S16 cmUnpkRguDStaInd ARGS((
-   RguDStaInd           func,
+EXTERN S16 unpackSchedRep ARGS((
+   RlcMacSchedRep       func,
    Pst*                 pst,
    Buffer               *mBuf
 ));
@@ -981,12 +1072,12 @@ EXTERN S16 cmUnpkRguLchDatInd ARGS((
    RguLchDatInd         *param,
    Buffer               *mBuf
 ));
-EXTERN S16 cmPkRguDDatIndInfo ARGS((
-   RguDDatIndInfo       *param,
+EXTERN S16 packRlcMacDataInfo ARGS((
+   RlcMacData         *param,
    Buffer               *mBuf
 ));
-EXTERN S16 cmUnpkRguDDatIndInfo ARGS((
-   RguDDatIndInfo       *param,
+EXTERN S16 unpackRlcMacDataInfo ARGS((
+   RlcMacData       *param,
    Buffer               *mBuf
 ));
 
@@ -998,12 +1089,12 @@ EXTERN S16 cmUnpkRguCStaRspInfo ARGS((
    RguCStaRspInfo       *param,
    Buffer               *mBuf
 ));
-EXTERN S16 cmPkRguDStaRspInfo ARGS((
-   RguDStaRspInfo       *param,
+EXTERN S16 packBOStatusInfo ARGS((
+   RlcMacBOStatus       *param,
    Buffer               *mBuf
 ));
-EXTERN S16 cmUnpkRguDStaRspInfo ARGS((
-   RguDStaRspInfo       *param,
+EXTERN S16 unpackBOStatusInfo ARGS((
+   RlcMacBOStatus       *param,
    Buffer               *mBuf
 ));
 EXTERN S16 cmPkRguCStaIndInfo ARGS((
@@ -1022,12 +1113,12 @@ EXTERN S16 cmUnpkRguLchStaInd ARGS((
    RguLchStaInd         *param,
    Buffer               *mBuf
 ));
-EXTERN S16 cmPkRguDStaIndInfo ARGS((
-   RguDStaIndInfo       *param,
+EXTERN S16 packSchedRepInfo ARGS((
+   RlcMacSchedRepInfo   *param,
    Buffer               *mBuf
 ));
-EXTERN S16 cmUnpkRguDStaIndInfo ARGS((
-   RguDStaIndInfo       *param,
+EXTERN S16 unpackSchedRepInfo ARGS((
+   RlcMacSchedRepInfo   *param,
    Buffer               *mBuf
 ));