X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=inline;f=src%2Fcm%2Fdu_app_rlc_inf.h;h=aea59cb312eb4eaaae1892c7ae0f30d71199a6e1;hb=a26e316791d661712939df53aa8a2e5b74b951e9;hp=837afc3b2751f21604b1f23f00d7903d2c6bd6e1;hpb=7d9367ae84317dce9bbe8cca3c0ae805ddaeee63;p=o-du%2Fl2.git diff --git a/src/cm/du_app_rlc_inf.h b/src/cm/du_app_rlc_inf.h index 837afc3b2..aea59cb31 100644 --- a/src/cm/du_app_rlc_inf.h +++ b/src/cm/du_app_rlc_inf.h @@ -31,7 +31,9 @@ #define EVENT_DL_RRC_MSG_RSP_TO_DU 217 #define EVENT_DL_USER_DATA_TRANS_TO_RLC 218 #define EVENT_UL_USER_DATA_TRANS_TO_DU 219 - +#define EVENT_RLC_UE_DELETE_REQ 220 +#define EVENT_RLC_UE_DELETE_RSP 221 +#define EVENT_RLC_SLICE_PM_TO_DU 222 #define RB_ID_SRB 0 #define RB_ID_DRB 1 @@ -87,6 +89,13 @@ typedef enum RLC_CFG_REAS_INVALID_RGUSAP /*!< Invalid RGU SAP ID */ }FailureReason; +typedef enum +{ + SUCCESSFUL , /*!< No Failure */ + INVALID_CELLID , /*!< CellId not present */ + INVALID_UEID , /*!< UEId not present */ +}UeDeleteResult; + typedef enum { RLC_AM, //Acknowledged Mode @@ -109,8 +118,8 @@ typedef enum typedef enum { - RLC_DU_APP_RSP_NOK, - RLC_DU_APP_RSP_OK + RLC_DU_APP_RSP_OK = 1, + RLC_DU_APP_RSP_NOK }RlcRsp; typedef struct ulAmCfg @@ -128,7 +137,7 @@ typedef struct dlAmCfg int16_t pollPdu; /* Used to trigger a poll for every pollPdu.*/ int32_t pollByte; /* Poll_Byte in bytes. */ uint8_t maxRetxTh; /* Max_Retx_Threshold */ - + }DlAmCfg; typedef struct dlUmCfg @@ -174,6 +183,7 @@ typedef struct rlcBearerCfg uint8_t rbType; uint8_t lcId; uint8_t lcType; + Snssai *snssai; RlcMode rlcMode; union { @@ -187,7 +197,7 @@ typedef struct rlcBearerCfg typedef struct rlcUeCfg { uint16_t cellId; - uint8_t ueIdx; + uint8_t ueId; uint8_t numLcs; RlcBearerCfg rlcLcCfg[MAX_NUM_LC]; UeCfgState rlcUeCfgState; /* InActive / Completed */ @@ -196,16 +206,29 @@ typedef struct rlcUeCfg typedef struct rlcUeCfgRsp { uint16_t cellId; - uint16_t ueIdx; + uint16_t ueId; RlcRsp result; FailureReason reason; }RlcUeCfgRsp; +typedef struct rlcUeDelete +{ + uint16_t cellId; + uint8_t ueId; +}RlcUeDelete; + +typedef struct rlcUeDeleteRsp +{ + uint16_t cellId; + uint8_t ueId; + UeDeleteResult result; +}RlcUeDeleteRsp; + /* UL RRC Message from RLC to DU APP */ typedef struct ulRrcMsgInfo { uint16_t cellId; /* Cell Id */ - uint16_t ueIdx; /* UE Index */ + uint16_t ueId; /* UE Id */ uint8_t lcId; /* Logical channel Id */ uint16_t msgLen; /* RRC message length (in bytes) */ uint8_t *rrcMsg; /* RRC Message (UL-DCCH Message) */ @@ -215,7 +238,7 @@ typedef struct ulRrcMsgInfo typedef struct ulUserDatInfo { uint16_t cellId; /* Cell Id */ - uint16_t ueIdx; /* UE Index */ + uint16_t ueId; /* UE Id */ uint8_t rbId; uint16_t msgLen; /* User data length (in bytes) */ uint8_t *userData; /* User data (UL-DTCH Message) */ @@ -225,7 +248,7 @@ typedef struct ulUserDatInfo typedef struct dlRrcMsgInfo { uint16_t cellId; /* Cell Id */ - uint16_t ueIdx; /* UE index */ + uint16_t ueId; /* UE Id */ uint8_t rbType; /* Radio Bearer Type */ uint8_t rbId; /* Radio Bearer Id */ uint8_t lcType; /* Logical channel type */ @@ -251,10 +274,30 @@ typedef struct rrcDeliveryStatus uint16_t triggeringMessage; }RrcDeliveryStatus; +typedef struct +{ + uint32_t sd:24; + uint8_t sst; +}SliceIdentifier; + +/*Pm Metric for NW Slicing from RLC to DUAPP*/ +typedef struct slicePm +{ + SliceIdentifier networkSliceIdentifier; + double ThpDl; + double ThpUl; +}SlicePm; + +typedef struct slicePmList +{ + uint8_t numSlice; + SlicePm *sliceRecord; +}SlicePmList; + typedef struct rrcDeliveryReportInfo { uint16_t cellId; - uint16_t ueIdx; + uint16_t ueId; uint8_t srbId; RrcDeliveryStatus rrcDeliveryStatus; }RrcDeliveryReport; @@ -263,7 +306,7 @@ typedef struct rrcDeliveryReportInfo typedef struct dlDataMsgInfo { uint16_t cellId; /* Cell Id */ - uint16_t ueIdx; /* UE index */ + uint16_t ueId; /* UE Id */ uint8_t rbId; /* Radio Bearer Id */ uint16_t msgLen; /* Message length */ Buffer *dlMsg; /* DL Data */ @@ -280,6 +323,11 @@ typedef uint8_t (*RlcDuUeCfgRsp) ARGS(( Pst *pst, RlcUeCfgRsp *ueCfgRsp)); +/* UE Delete Response from RLC to DU APP*/ +typedef uint8_t (*RlcDuUeDeleteRsp) ARGS(( + Pst *pst, + RlcUeDeleteRsp *ueDelRsp)); + /* UL RRC Message from RLC to DU APP */ typedef uint8_t (*RlcUlRrcMsgToDuFunc) ARGS(( Pst *pst, @@ -295,10 +343,16 @@ typedef uint8_t (*RlcRrcDeliveryReportToDuFunc) ARGS(( Pst *pst, RrcDeliveryReport *rrcDeliveryReport)); +/* UE Reconfig Request from DU APP to RLC */ typedef uint8_t (*DuRlcUeReconfigReq) ARGS(( Pst *pst, RlcUeCfg *ueCfg )); +/* UE Delete Request from DU APP to RLC */ +typedef uint8_t (*DuRlcUeDeleteReq) ARGS(( + Pst *pst, + RlcUeDelete *ueDelete)); + /* DL RRC Message from RLC to DU APP */ typedef uint8_t (*RlcDlRrcMsgRspToDuFunc) ARGS(( Pst *pst, @@ -314,6 +368,11 @@ typedef uint8_t (*DuRlcDlUserDataToRlcFunc) ARGS(( Pst *pst, RlcDlUserDataInfo *dlDataMsg)); +/* Slice Metrics from RLC to DU APP */ +typedef uint8_t (*RlcSlicePmToDuFunc) ARGS(( + Pst *pst, + SlicePmList *sliceStats)); + /* Pack/Unpack function declarations */ uint8_t packDuRlcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg); uint8_t unpackRlcUeCreateReq(DuRlcUeCreateReq func, Pst *pst, Buffer *mBuf); @@ -333,6 +392,12 @@ uint8_t packRlcUlUserDataToDu(Pst *pst, RlcUlUserDatInfo *ulUserData); uint8_t unpackRlcUlUserDataToDu(RlcUlUserDataToDuFunc func, Pst *pst, Buffer *mBuf); uint8_t packRlcDlUserDataToRlc(Pst *pst, RlcDlUserDataInfo *dlDataMsg); uint8_t unpackRlcDlUserDataToRlc(DuRlcDlUserDataToRlcFunc func, Pst *pst, Buffer *mBuf); +uint8_t packDuRlcUeDeleteReq(Pst *pst, RlcUeDelete *ueDelete); +uint8_t unpackRlcUeDeleteReq(DuRlcUeDeleteReq func, Pst *pst, Buffer *mBuf); +uint8_t packRlcDuUeDeleteRsp(Pst *pst, RlcUeDeleteRsp *ueDeleteRsp); +uint8_t unpackRlcUeDeleteRsp(RlcDuUeDeleteRsp func, Pst *pst, Buffer *mBuf); +uint8_t packRlcDuSlicePm(Pst *pst, SlicePmList *sliceStats); +uint8_t unpackRlcSlicePm(RlcSlicePmToDuFunc func, Pst *pst, Buffer *mBuf); /* Event Handler function declarations */ uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg); @@ -344,7 +409,9 @@ uint8_t RlcProcUeReconfigReq(Pst *pst, RlcUeCfg *ueCfg); uint8_t DuProcRlcDlRrcMsgRsp(Pst *pst, RlcDlRrcMsgRsp *dlRrcMsg); uint8_t DuProcRlcUlUserDataTrans(Pst *pst, RlcUlUserDatInfo *ulUserData); uint8_t RlcProcDlUserDataTransfer(Pst *pst, RlcDlUserDataInfo *dlDataMsgInfo); - +uint8_t RlcProcUeDeleteReq(Pst *pst, RlcUeDelete *ueDelete); +uint8_t DuProcRlcUeDeleteRsp(Pst *pst, RlcUeDeleteRsp *delRsp); +uint8_t DuProcRlcSliceMetrics(Pst *pst, SlicePmList *sliceStats); #endif /* RLC_INF_H */ /**********************************************************************