#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 */
#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,
/* 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;
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 ueId;
- 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; /* Cell Id */
uint16_t ueId; /* UE Id */
- uint8_t rbType; /* Radio Bearer Type */
- uint8_t rbId; /* Radio Bearer Id */
- uint8_t lcType; /* Logical channel type */
- uint8_t lcId; /* Logical channel 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 */
{
uint16_t cellId; /* Cell Id */
uint16_t ueId; /* UE Id */
- uint8_t rbId; /* Radio Bearer Id */
+ uint8_t rbId; /* Radio Bearer Id {4 .. MAC\7fX_NUM_DRB} */
uint16_t msgLen; /* Message length */
Buffer *dlMsg; /* DL Data */
}RlcDlUserDataInfo;
/* 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((
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);
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);