X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_rlc_inf.h;h=62ea905b4c141ee1c1792ed76163a4e00e9d8c87;hb=531da47c7bfb6ce138a454f66eb184729860beef;hp=519862def8c6420372bdbbe83c99e35304e899f1;hpb=af8f9c8f6f7cd5e0a89e5dfa7a566fa5811e110c;p=o-du%2Fl2.git diff --git a/src/cm/du_app_rlc_inf.h b/src/cm/du_app_rlc_inf.h index 519862def..62ea905b4 100644 --- a/src/cm/du_app_rlc_inf.h +++ b/src/cm/du_app_rlc_inf.h @@ -38,9 +38,6 @@ #define RB_ID_SRB 0 #define RB_ID_DRB 1 -#define RB_TYPE_SRB 0 /* Signalling Radio Bearer */ -#define RB_TYPE_DRB 1 /* Data Radio Bearer */ - /* RLC Direction Config */ #define RLC_CFG_DIR_UL 1 /*!< Uplink direction */ #define RLC_CFG_DIR_DL 2 /*!< Downlink direction */ @@ -54,6 +51,12 @@ #define LCH_DTCH 4 /*!< DTCH Logical Channel */ #define LCH_DCCH 5 /*!< DCCH Logical Channel */ +typedef enum +{ + RB_TYPE_SRB, /* Signalling Radio Bearer */ + RB_TYPE_DRB /* Data Radio Bearer */ +}RlcRbType; + typedef enum { TRANSMISSION_IN_PROGRESS, @@ -178,9 +181,8 @@ typedef struct umUniDirDlBearerCfg /* Spec Ref: 38.331, 6.3.2 RLC-BearerConfig */ typedef struct rlcBearerCfg { - ConfigType configType; uint8_t rbId; - uint8_t rbType; + RlcRbType rbType; uint8_t lcId; uint8_t lcType; Snssai *snssai; @@ -192,21 +194,33 @@ typedef struct rlcBearerCfg UmUniDirUlBearerCfg *umUniDirUlCfg; UmUniDirDlBearerCfg *umUniDirDlCfg; }u; + bool isLcAddModRspSent; }RlcBearerCfg; +typedef struct rlcUeRecfg +{ + uint16_t cellId; + uint8_t ueId; + uint8_t numLcsToAdd; + RlcBearerCfg rlcLcCfgAdd[MAX_NUM_LC]; + uint8_t numLcsToMod; + RlcBearerCfg rlcLcCfgMod[MAX_NUM_LC]; + uint8_t numLcsToRel; + RlcBearerCfg rlcLcCfgRel[MAX_NUM_LC]; +}RlcUeRecfg; + typedef struct rlcUeCfg { - uint16_t cellId; - uint8_t ueIdx; - uint8_t numLcs; - RlcBearerCfg rlcLcCfg[MAX_NUM_LC]; - UeCfgState rlcUeCfgState; /* InActive / Completed */ + uint16_t cellId; + uint8_t ueId; + uint8_t numLcsToAdd; + RlcBearerCfg rlcLcCfgAdd[MAX_NUM_LC]; }RlcUeCfg; typedef struct rlcUeCfgRsp { uint16_t cellId; - uint16_t ueIdx; + uint16_t ueId; RlcRsp result; FailureReason reason; }RlcUeCfgRsp; @@ -228,7 +242,7 @@ typedef struct rlcUeDeleteRsp 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) */ @@ -238,7 +252,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) */ @@ -248,11 +262,8 @@ typedef struct ulUserDatInfo 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 */ + uint16_t ueId; /* UE Id */ + uint8_t lcId; /* Logical channel Id {1...3} */ bool execDup; /* Execution duplication enabled */ bool deliveryStaRpt; /* Reporting of delivery status by RLC to DU-APP enabled */ uint16_t msgLen; /* RRC Message length */ @@ -274,10 +285,16 @@ 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 { - uint32_t networkSliceIdentifier; + SliceIdentifier networkSliceIdentifier; double ThpDl; double ThpUl; }SlicePm; @@ -291,7 +308,7 @@ typedef struct slicePmList typedef struct rrcDeliveryReportInfo { uint16_t cellId; - uint16_t ueIdx; + uint16_t ueId; uint8_t srbId; RrcDeliveryStatus rrcDeliveryStatus; }RrcDeliveryReport; @@ -300,8 +317,8 @@ typedef struct rrcDeliveryReportInfo typedef struct dlDataMsgInfo { uint16_t cellId; /* Cell Id */ - uint16_t ueIdx; /* UE index */ - uint8_t rbId; /* Radio Bearer Id */ + uint16_t ueId; /* UE Id */ + uint8_t rbId; /* Radio Bearer Id {4 .. MACX_NUM_DRB} */ uint16_t msgLen; /* Message length */ Buffer *dlMsg; /* DL Data */ }RlcDlUserDataInfo; @@ -340,7 +357,7 @@ typedef uint8_t (*RlcRrcDeliveryReportToDuFunc) ARGS(( /* UE Reconfig Request from DU APP to RLC */ typedef uint8_t (*DuRlcUeReconfigReq) ARGS(( Pst *pst, - RlcUeCfg *ueCfg )); + RlcUeRecfg *ueRecfg )); /* UE Delete Request from DU APP to RLC */ typedef uint8_t (*DuRlcUeDeleteReq) ARGS(( @@ -378,7 +395,7 @@ 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 packDuRlcUeReconfigReq(Pst *pst, RlcUeRecfg *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); @@ -399,7 +416,7 @@ 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 RlcProcUeReconfigReq(Pst *pst, RlcUeRecfg *ueCfg); uint8_t DuProcRlcDlRrcMsgRsp(Pst *pst, RlcDlRrcMsgRsp *dlRrcMsg); uint8_t DuProcRlcUlUserDataTrans(Pst *pst, RlcUlUserDatInfo *ulUserData); uint8_t RlcProcDlUserDataTransfer(Pst *pst, RlcDlUserDataInfo *dlDataMsgInfo);