[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-523] Statistics Request API and Timer Based...
[o-du/l2.git] / src / cm / du_app_rlc_inf.h
index ebf0cdd..ee536f6 100644 (file)
@@ -36,6 +36,7 @@
 #define EVENT_RLC_SLICE_PM_TO_DU 222
 #define EVENT_RLC_UE_REESTABLISH_REQ 223
 #define EVENT_RLC_UE_REESTABLISH_RSP 224
+#define EVENT_RLC_MAX_RETRANSMISSION 225
 
 #define RB_ID_SRB 0
 #define RB_ID_DRB 1
@@ -120,6 +121,16 @@ typedef enum
    RLC_DU_APP_RSP_NOK
 }RlcRsp;
 
+/*  Ref: ORAN_WG8.V7.0.0 Sec 11.2.5.10 RLC Max Retransmission Reached */
+
+typedef struct rlcMaxRetransInd 
+{
+   uint16_t       cellId;
+   uint16_t       ueId;
+   RlcRbType      lcType;
+   uint8_t        lcId;
+}RlcMaxRetransInfo;
+
 typedef struct ulAmCfg
 {
    SnLenAm        snLenUl;              /* Sequence Number length in bits. Allowed values are 12 and 18 */
@@ -206,22 +217,25 @@ typedef struct rlcUeRecfg
 }RlcUeRecfg;
 
 /*  Ref: ORAN_WG8.V7.0.0 Sec 11.2.5.1 UE Create */
-typedef struct rlcUeCfg
+typedef struct rlcUeCreate
 {
    uint16_t       cellId;
    uint8_t        ueId;
    uint8_t        numLcsToAdd;
    RlcBearerCfg   rlcLcCfgAdd[MAX_NUM_LC];
-}RlcUeCfg;
+}RlcUeCreate;
 
 /*  Ref: ORAN_WG8.V7.0.0 Sec 11.2.5.2 UE Create Response */
-typedef struct rlcUeCfgRsp
+typedef struct rlcUeCreateRsp
 {
    uint16_t       cellId;
    uint16_t       ueId;
    RlcRsp         result;
    FailureReason  reason;
-}RlcUeCfgRsp;
+}RlcUeCreateRsp;
+
+/*  Ref: ORAN_WG8.V7.0.0 Sec 11.2.5.4 UE Reconfig Response */
+typedef struct rlcUeCreateRsp RlcUeReconfigRsp;
 
 /*  Ref: ORAN_WG8.V7.0.0 Sec 11.2.5.5 UE Delete Response */
 typedef struct rlcUeDelete
@@ -342,15 +356,21 @@ typedef struct rlcUeReestablishRsp
 }RlcUeReestablishRsp;
 
 /* Function Pointers */
+
+/* Max Retransmission  from RLC to DU APP*/
+typedef uint8_t (*RlcDuMaxRetransInd) ARGS((
+         Pst          *pst,
+         RlcMaxRetransInfo *maxRetransInfo));
+
 /* UE create Request from DU APP to RLC*/
 typedef uint8_t (*DuRlcUeCreateReq) ARGS((
    Pst           *pst,
-   RlcUeCfg      *ueCfg ));
+   RlcUeCreate      *ueCfg ));
 
-/* UE Cfg Response from RLC to DU APP*/
-typedef uint8_t (*RlcDuUeCfgRsp) ARGS((
+/* UE Create Response from RLC to DU APP*/
+typedef uint8_t (*RlcDuUeCreateRsp) ARGS((
    Pst          *pst,
-   RlcUeCfgRsp  *ueCfgRsp));
+   RlcUeCreateRsp  *ueCreateRsp));
 
 /* UE Delete Response from RLC to DU APP*/
 typedef uint8_t (*RlcDuUeDeleteRsp) ARGS((
@@ -377,6 +397,11 @@ typedef uint8_t (*DuRlcUeReconfigReq) ARGS((
    Pst           *pst,
    RlcUeRecfg      *ueRecfg ));
 
+/* UE Reconfig Response from RLC to DU APP*/
+typedef uint8_t (*RlcDuUeReconfigRsp) ARGS((
+   Pst          *pst,
+   RlcUeReconfigRsp  *ueReconfigRsp));
+
 /* UE Delete Request from DU APP to RLC */
 typedef uint8_t (*DuRlcUeDeleteReq) ARGS((
    Pst           *pst,
@@ -413,10 +438,14 @@ typedef uint8_t (*RlcDuUeReestablishRsp) ARGS((
    RlcUeReestablishRsp  *ueDelRsp));
 
 /* Pack/Unpack function declarations */
-uint8_t packDuRlcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg);
+uint8_t packRlcDuMaxRetransInd(Pst *pst, RlcMaxRetransInfo *maxRetransInd);
+uint8_t unpackRlcMaxRetransInd(RlcDuMaxRetransInd  func, Pst *pst, Buffer *mBuf);
+uint8_t packDuRlcUeCreateReq(Pst *pst, RlcUeCreate *ueCfg);
 uint8_t unpackRlcUeCreateReq(DuRlcUeCreateReq func, Pst *pst, Buffer *mBuf);
-uint8_t packRlcDuUeCfgRsp(Pst *pst, RlcUeCfgRsp *ueCfgRsp);
-uint8_t unpackRlcUeCfgRsp(RlcDuUeCfgRsp func, Pst *pst, Buffer *mBuf);
+uint8_t packRlcDuUeCreateRsp(Pst *pst, RlcUeCreateRsp *ueCfgRsp);
+uint8_t unpackRlcUeCreateRsp(RlcDuUeCreateRsp func, Pst *pst, Buffer *mBuf);
+uint8_t packRlcDuUeReconfigRsp(Pst *pst, RlcUeReconfigRsp *ueCfgRsp);
+uint8_t unpackRlcUeReconfigRsp(RlcDuUeReconfigRsp func, Pst *pst, Buffer *mBuf);
 uint8_t packRlcUlRrcMsgToDu(Pst *pst, RlcUlRrcMsgInfo *ulRrcMsgInfo);
 uint8_t unpackRlcUlRrcMsgToDu(RlcUlRrcMsgToDuFunc func, Pst *pst, Buffer *mBuf);
 uint8_t packDlRrcMsgToRlc(Pst *pst, RlcDlRrcMsgInfo *dlRrcMsgInfo);
@@ -443,8 +472,10 @@ uint8_t packRlcDuUeReestablishRsp(Pst *pst, RlcUeReestablishRsp *ueReestablishRs
 uint8_t unpackRlcUeReestablishRsp(RlcDuUeReestablishRsp func, Pst *pst, Buffer *mBuf);
 
 /* Event Handler function declarations */
-uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg);
-uint8_t DuProcRlcUeCfgRsp(Pst *pst, RlcUeCfgRsp *cfgRsp);
+uint8_t DuProcRlcMaxRetransInd(Pst *pst, RlcMaxRetransInfo *maxRetransInd);
+uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCreate *ueCfg);
+uint8_t DuProcRlcUeCreateRsp(Pst *pst, RlcUeCreateRsp *cfgRsp);
+uint8_t DuProcRlcUeReconfigRsp(Pst *pst, RlcUeReconfigRsp *recfgRsp);
 uint8_t DuProcRlcUlRrcMsgTrans(Pst *pst, RlcUlRrcMsgInfo *ulRrcMsgInfo);
 uint8_t RlcProcDlRrcMsgTransfer(Pst *pst, RlcDlRrcMsgInfo *dlRrcMsgInfo);
 uint8_t DuProcRlcRrcDeliveryReport(Pst *pst, RrcDeliveryReport *rrcDeliveryReport);