X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_rlc_inf.h;h=0644420601dde024b6c102244f83a52eaaa0d488;hb=refs%2Fchanges%2F91%2F5391%2F11;hp=03e05941eb1c30fe6829112812a3c09e31871e8d;hpb=cfe7ea3ab6cb69d18ed91d79c1bf66b3bc8bdc98;p=o-du%2Fl2.git diff --git a/src/cm/du_app_rlc_inf.h b/src/cm/du_app_rlc_inf.h index 03e05941e..064442060 100644 --- a/src/cm/du_app_rlc_inf.h +++ b/src/cm/du_app_rlc_inf.h @@ -21,14 +21,16 @@ #define __RLC_INF_H__ /* Events */ -#define EVENT_RLC_UL_UE_CREATE_REQ 210 -#define EVENT_RLC_UL_UE_CREATE_RSP 211 /*!< Config Confirm */ +#define EVENT_RLC_UE_CREATE_REQ 210 +#define EVENT_RLC_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 - -/* Macro for Ue Context */ -#define MAX_NUM_LOGICAL_CHANNELS 11 +#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 @@ -49,6 +51,12 @@ #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 { @@ -464,6 +472,7 @@ typedef struct umUniDirDlBearerCfg /* Spec Ref: 38.331, 6.3.2 RLC-BearerConfig */ typedef struct rlcBearerCfg { + ConfigType configType; uint8_t rbId; uint8_t rbType; uint8_t lcId; @@ -471,10 +480,10 @@ typedef struct rlcBearerCfg RlcMode rlcMode; union { - AmBearerCfg amCfg; - UmBiDirBearerCfg umBiDirCfg; - UmUniDirUlBearerCfg umUniDirUlCfg; - UmUniDirDlBearerCfg umUniDirDlCfg; + AmBearerCfg *amCfg; + UmBiDirBearerCfg *umBiDirCfg; + UmUniDirUlBearerCfg *umUniDirUlCfg; + UmUniDirDlBearerCfg *umUniDirDlCfg; }u; }RlcBearerCfg; @@ -483,7 +492,8 @@ typedef struct rlcUeCfg uint16_t cellId; uint8_t ueIdx; uint8_t numLcs; - RlcBearerCfg rlcBearerCfg[MAX_NUM_LOGICAL_CHANNELS]; + RlcBearerCfg rlcLcCfg[MAX_NUM_LC]; + UeCfgState rlcUeCfgState; /* InActive / Completed */ }RlcUeCfg; typedef struct rlcUeCfgRsp @@ -504,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 { @@ -519,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 { @@ -536,12 +564,12 @@ typedef struct rrcDeliveryReportInfo /* Function Pointers */ /* UE create Request from DU APP to RLC*/ -typedef uint8_t (*DuRlcUlUeCreateReq) ARGS(( +typedef uint8_t (*DuRlcUeCreateReq) ARGS(( Pst *pst, RlcUeCfg *ueCfg )); -/* UE create Response from RLC to DU APP*/ -typedef uint8_t (*RlcUlDuUeCreateRsp) ARGS(( +/* UE Cfg Response from RLC to DU APP*/ +typedef uint8_t (*RlcDuUeCfgRsp) ARGS(( Pst *pst, RlcUeCfgRsp *ueCfgRsp)); @@ -560,24 +588,48 @@ typedef uint8_t (*RlcRrcDeliveryReportToDuFunc) ARGS(( Pst *pst, RrcDeliveryReport *rrcDeliveryReport)); +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 packDuRlcUlUeCreateReq(Pst *pst, RlcUeCfg *ueCfg); -uint8_t unpackRlcUlUeCreateReq(DuRlcUlUeCreateReq func, Pst *pst, Buffer *mBuf); -uint8_t packRlcUlDuUeCreateRsp(Pst *pst, RlcUeCfgRsp *ueCfgRsp); -uint8_t unpackRlcUlUeCreateRsp(RlcUlDuUeCreateRsp func, Pst *pst, Buffer *mBuf); +uint8_t packDuRlcUeCreateReq(Pst *pst, RlcUeCfg *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 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); +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 RlcUlProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg); -uint8_t DuProcRlcUlUeCreateRsp(Pst *pst, RlcUeCfgRsp *cfgRsp); +uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg); +uint8_t DuProcRlcUeCfgRsp(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); +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 */ /**********************************************************************