X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_rlc_inf.h;h=699958777370941fd107ac21300b48bebced8ff2;hb=42f73fef5ef8722af83284e0f146b2da693a1f68;hp=367c78f7f51a71b80d892eb1462d1154c3a50814;hpb=5831bf6b3454aa200a92cd3e84209650734e4863;p=o-du%2Fl2.git diff --git a/src/cm/du_app_rlc_inf.h b/src/cm/du_app_rlc_inf.h index 367c78f7f..699958777 100644 --- a/src/cm/du_app_rlc_inf.h +++ b/src/cm/du_app_rlc_inf.h @@ -20,10 +20,12 @@ #ifndef __RLC_INF_H__ #define __RLC_INF_H__ -/* Macro for Ue Context */ -#define MAX_NUM_LOGICAL_CHANNELS 11 +/* Events */ #define EVENT_RLC_UL_UE_CREATE_REQ 210 #define EVENT_RLC_UL_UE_CREATE_RSP 211 /*!< Config Confirm */ +#define EVENT_UL_RRC_MSG_TRANS_TO_DU 212 +#define EVENT_DL_RRC_MSG_TRANS_TO_RLC 213 +#define EVENT_RRC_DELIVERY_MSG_TRANS_TO_DU 214 #define RB_ID_SRB 0 #define RB_ID_DRB 1 @@ -478,7 +480,7 @@ typedef struct rlcUeCfg uint16_t cellId; uint8_t ueIdx; uint8_t numLcs; - RlcBearerCfg rlcBearerCfg[MAX_NUM_LOGICAL_CHANNELS]; + RlcBearerCfg rlcBearerCfg[MAX_NUM_LC]; }RlcUeCfg; typedef struct rlcUeCfgRsp @@ -489,6 +491,46 @@ typedef struct rlcUeCfgRsp FailureReason reason; }RlcUeCfgRsp; +/* UL RRC Message from RLC to DU APP */ +typedef struct ulRrcMsgInfo +{ + uint16_t cellId; /* Cell Id */ + uint16_t ueIdx; /* UE Index */ + uint8_t lcId; /* Logical channel Id */ + uint16_t msgLen; /* RRC message length (in bytes) */ + uint8_t *rrcMsg; /* RRC Message (UL-DCCH Message) */ +}RlcUlRrcMsgInfo; + +/* DL RRC Message from DU APP to RLC */ +typedef struct dlRrcMsgInfo +{ + uint16_t cellId; /* Cell Id */ + uint16_t ueIdx; /* UE index */ + uint8_t rbType; /* Radio Bearer Type */ + uint8_t rbId; /* Radio Bearer Id */ + uint8_t lcType; /* Logical channel type */ + uint8_t lcId; /* Logical channel Id */ + bool execDup; /* Execution duplication enabled */ + bool deliveryStaRpt; /* Reporting of delivery status by RLC to DU-APP enabled */ + uint16_t msgLen; /* RRC Message length */ + uint8_t *rrcMsg; /* RRC Message (DL-DCCH Message) */ +}RlcDlRrcMsgInfo; + +/* RRC delivery message from RLC to DU APP */ +typedef struct rrcDeliveryStatus +{ + uint16_t deliveryStatus; + uint16_t triggeringMessage; +}RrcDeliveryStatus; + +typedef struct rrcDeliveryReportInfo +{ + uint16_t cellId; + uint16_t ueIdx; + uint8_t srbId; + RrcDeliveryStatus rrcDeliveryStatus; +}RrcDeliveryReport; + /* Function Pointers */ /* UE create Request from DU APP to RLC*/ typedef uint8_t (*DuRlcUlUeCreateReq) ARGS(( @@ -500,14 +542,39 @@ typedef uint8_t (*RlcUlDuUeCreateRsp) ARGS(( Pst *pst, RlcUeCfgRsp *ueCfgRsp)); -/* Function Declarations */ +/* UL RRC Message from RLC to DU APP */ +typedef uint8_t (*RlcUlRrcMsgToDuFunc) ARGS(( + Pst *pst, + RlcUlRrcMsgInfo *ulRrcMsgInfo)); + +/* DL RRC Message from DU APP to RLC */ +typedef uint8_t (*DuDlRrcMsgToRlcFunc) ARGS(( + Pst *pst, + RlcDlRrcMsgInfo *dlRrcMsgInfo)); + +/* RRC delivery message from RLC to DU APP */ +typedef uint8_t (*RlcRrcDeliveryReportToDuFunc) ARGS(( + Pst *pst, + RrcDeliveryReport *rrcDeliveryReport)); + +/* Pack/Unpack function declarations */ uint8_t packDuRlcUlUeCreateReq(Pst *pst, RlcUeCfg *ueCfg); uint8_t unpackRlcUlUeCreateReq(DuRlcUlUeCreateReq func, Pst *pst, Buffer *mBuf); -uint8_t RlcUlProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg); uint8_t packRlcUlDuUeCreateRsp(Pst *pst, RlcUeCfgRsp *ueCfgRsp); uint8_t unpackRlcUlUeCreateRsp(RlcUlDuUeCreateRsp 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); +uint8_t unpackDlRrcMsgToRlc(DuDlRrcMsgToRlcFunc func, Pst *pst, Buffer *mBuf); +uint8_t packRrcDeliveryReportToDu(Pst *pst, RrcDeliveryReport *rrcDeliveryReport); +uint8_t unpackRrcDeliveryReportToDu(RlcRrcDeliveryReportToDuFunc func,Pst *pst, Buffer *mBuf); + +/* Event Handler function declarations */ +uint8_t RlcUlProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg); uint8_t DuProcRlcUlUeCreateRsp(Pst *pst, RlcUeCfgRsp *cfgRsp); - +uint8_t DuProcRlcUlRrcMsgTrans(Pst *pst, RlcUlRrcMsgInfo *ulRrcMsgInfo); +uint8_t RlcProcDlRrcMsgTransfer(Pst *pst, RlcDlRrcMsgInfo *dlRrcMsgInfo); +uint8_t DuProcRlcRrcDeliveryReport(Pst *pst, RrcDeliveryReport *rrcDeliveryReport); #endif /* RLC_INF_H */ /**********************************************************************