UL data path changes at Phy stub, RLC UL UM and DU APP [Issue-ID: ODUHIGH-262]
[o-du/l2.git] / src / cm / du_app_rlc_inf.h
index 761e163..0644420 100644 (file)
@@ -28,6 +28,9 @@
 #define EVENT_RRC_DELIVERY_MSG_TRANS_TO_DU 214
 #define EVENT_RLC_UE_RECONFIG_REQ  215
 #define EVENT_RLC_UE_RECONFIG_RSP  216
+#define EVENT_DL_RRC_MSG_RSP_TO_DU 217
+#define EVENT_DL_USER_DATA_TRANS_TO_DU 218
+#define EVENT_UL_USER_DATA_TRANS_TO_DU 219
 
 #define RB_ID_SRB 0
 #define RB_ID_DRB 1
 #define LCH_DTCH      4      /*!< DTCH Logical Channel */
 #define LCH_DCCH      5      /*!< DCCH Logical Channel */
 
+typedef enum
+{
+   TRANSMISSION_IN_PROGRESS,
+   TRANSMISSION_COMPLETE,
+   TRANSMISSION_FAILED
+}DlMsgState;
 
 typedef enum
 {
@@ -505,6 +514,16 @@ typedef struct ulRrcMsgInfo
    uint8_t    *rrcMsg;      /* RRC Message (UL-DCCH Message) */
 }RlcUlRrcMsgInfo;
 
+/* UL User Data from RLC to DU APP */
+typedef struct ulUserDatInfo
+{
+   uint16_t   cellId;       /* Cell Id */
+   uint16_t   ueIdx;        /* UE Index */
+   uint8_t    rbId;
+   uint16_t   msgLen;       /* User data length (in bytes) */
+   uint8_t    *userData;    /* User data (UL-DTCH Message) */
+}RlcUlUserDatInfo;
+
 /* DL RRC Message from DU APP to RLC */
 typedef struct dlRrcMsgInfo
 {
@@ -520,6 +539,14 @@ typedef struct dlRrcMsgInfo
    uint8_t    *rrcMsg;        /* RRC Message (DL-DCCH Message) */
 }RlcDlRrcMsgInfo;
 
+/* DL RRC Message Rsp From RLC to DU APP */
+typedef struct dlRrcMsgRsp
+{
+   uint16_t   cellId;         /* Cell Id */
+   uint16_t   crnti;          /* UE index */
+   DlMsgState state;         /* Dl RRC Msg State */
+}RlcDlRrcMsgRsp;
+
 /* RRC delivery message from RLC to DU APP */
 typedef struct rrcDeliveryStatus
 {
@@ -565,6 +592,16 @@ typedef uint8_t (*DuRlcUeReconfigReq) ARGS((
    Pst           *pst,
    RlcUeCfg      *ueCfg ));
 
+/* DL RRC Message from RLC to DU APP */
+typedef uint8_t (*RlcDlRrcMsgRspToDuFunc) ARGS((
+   Pst           *pst,
+   RlcDlRrcMsgRsp *dlRrcMsgRsp));
+
+/* UL User data from RLC to DU APP */
+typedef uint8_t (*RlcUlUserDataToDuFunc) ARGS((
+   Pst           *pst,
+   RlcUlUserDatInfo *ulUserData));
+
 /* Pack/Unpack function declarations */
 uint8_t packDuRlcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg);
 uint8_t unpackRlcUeCreateReq(DuRlcUeCreateReq func, Pst *pst, Buffer *mBuf);
@@ -578,6 +615,10 @@ uint8_t packRrcDeliveryReportToDu(Pst *pst, RrcDeliveryReport *rrcDeliveryReport
 uint8_t unpackRrcDeliveryReportToDu(RlcRrcDeliveryReportToDuFunc func,Pst *pst, Buffer *mBuf);
 uint8_t packDuRlcUeReconfigReq(Pst *pst, RlcUeCfg *ueCfg);
 uint8_t unpackRlcUeReconfigReq(DuRlcUeReconfigReq func, Pst *pst, Buffer *mBuf);
+uint8_t packRlcDlRrcMsgRspToDu(Pst *pst, RlcDlRrcMsgRsp *dlRrcMsgRsp);
+uint8_t unpackRlcDlRrcMsgRspToDu(RlcDlRrcMsgRspToDuFunc func, Pst *pst, Buffer *mBuf);
+uint8_t packRlcUlUserDataToDu(Pst *pst, RlcUlUserDatInfo *ulUserData);
+uint8_t unpackRlcUlUserDataToDu(RlcUlUserDataToDuFunc func, Pst *pst, Buffer *mBuf);
 
 /* Event Handler function declarations */
 uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg);
@@ -586,6 +627,8 @@ uint8_t DuProcRlcUlRrcMsgTrans(Pst *pst, RlcUlRrcMsgInfo *ulRrcMsgInfo);
 uint8_t RlcProcDlRrcMsgTransfer(Pst *pst, RlcDlRrcMsgInfo *dlRrcMsgInfo);
 uint8_t DuProcRlcRrcDeliveryReport(Pst *pst, RrcDeliveryReport *rrcDeliveryReport);
 uint8_t RlcProcUeReconfigReq(Pst *pst, RlcUeCfg *ueCfg);
+uint8_t DuProcRlcDlRrcMsgRsp(Pst *pst, RlcDlRrcMsgRsp *dlRrcMsg);
+uint8_t DuProcRlcUlUserDataTrans(Pst *pst, RlcUlUserDatInfo *ulUserData);
 
 #endif /* RLC_INF_H */