UE_INACTIVE,
UE_ACTIVE,
UE_HANDIN_IN_PROGRESS,
- UE_DELETION_IN_PROGRESS
+ UE_DELETION_IN_PROGRESS,
+ UE_RESET_IN_PROGRESS
}UeState;
typedef enum
}DrxCycle;
#endif
+typedef struct duLcCfg
+{
+ ConfigType configType;
+ LcCfg lcConfig;
+}DuLcCfg;
+
+typedef struct duMacUeCfg
+{
+ uint16_t cellId;
+ uint8_t ueId;
+ uint16_t crnti;
+ bool macCellGrpCfgPres;
+ MacCellGrpCfg macCellGrpCfg;
+ bool phyCellGrpCfgPres;
+ PhyCellGrpCfg phyCellGrpCfg;
+ bool spCellCfgPres;
+ SpCellRecfg spCellCfg;
+ AmbrCfg *ambrCfg;
+ ModulationInfo dlModInfo; /* DL modulation info */ //TBD
+ ModulationInfo ulModInfo; /* UL modulation info */ //TBD
+ uint8_t numLcs;
+ DuLcCfg lcCfgList[MAX_NUM_LC];
+ UeCfgState macUeCfgState; /* InActive / Completed */ //TBD
+ DataTransmissionAction transmissionAction; //TBD
+#ifdef NR_DRX
+ bool drxConfigIndicatorRelease;
+#endif
+}DuMacUeCfg;
+
+typedef struct duRlcBearerCfg
+{
+ ConfigType configType;
+ RlcBearerCfg rlcBearerCfg;
+}DuRlcBearerCfg;
+
+typedef struct duRlcUeCfg
+{
+ uint16_t cellId;
+ uint8_t ueId;
+ uint8_t numLcs;
+ DuRlcBearerCfg rlcLcCfg[MAX_NUM_LC];
+ UeCfgState rlcUeCfgState; /* InActive / Completed */
+}DuRlcUeCfg;
+
+
typedef struct duUeCfg
{
void *cellGrpCfg;
void *ueNrCapability;
uint8_t numRlcLcs; /* Rlc Ue Cfg */
- RlcBearerCfg rlcLcCfg[MAX_NUM_LC];
+ DuRlcBearerCfg rlcLcCfg[MAX_NUM_LC];
uint8_t numMacLcs; /* Mac Ue Cfg */
- LcCfg macLcCfg[MAX_NUM_LC];
+ DuLcCfg macLcCfg[MAX_NUM_LC];
AmbrCfg *ambrCfg;
uint8_t numDrb;
UpTnlCfg upTnlInfo[MAX_NUM_DRB]; /* User plane TNL Info*/
uint8_t numDrbSetupMod; /*No. of DRB Added during Modification*/
- MacUeCfg copyOfmacUeCfg;
+ uint8_t numDrbModified; /*No. of DRB Modified during Modification*/
+ DuMacUeCfg copyOfmacUeCfg;
DataTransmissionAction dataTransmissionAction;
#ifdef NR_DRX
bool drxCyclePres;
DrxCycle drxCycle;
+ bool drxConfigIndicatorRelease;
#endif
}DuUeCfg;
uint32_t drbBitMap; /* Drb Bit Map */
UeState ueState; /* UE Active/ Ue Inactive state */
MacCfraResource cfraResource; /* CF-RA resource assigned by MAC/SCH */
- MacUeCfg macUeCfg; /* Mac Ue Cfg */
- RlcUeCfg rlcUeCfg; /* Rlc Ue Cfg */
+ DuMacUeCfg duMacUeCfg; /* Mac Ue Cfg */
+ DuRlcUeCfg duRlcUeCfg; /* Rlc Ue Cfg */
}DuUeCb;
typedef struct slotInfo
void *f1apMsg; /* msg structure */
}ReservedF1apPduInfo;
+typedef struct duTimer
+{
+ CmTqCp tmrTqCp; /*!< Timer Task Queue Cntrl Point */
+ CmTqType tmrTq[DU_TQ_SIZE]; /*!< Timer Task Queue */
+ uint8_t tmrRes; /*!< Timer resolution */
+}DuTimers;
+
/* DU APP DB */
typedef struct duCb
{
TskInit init; /* DU Init */
bool f1Status; /* Status of F1 connection */
bool e2Status; /* Status of E2 connection */
+ E2apDb e2apDb; /* E2AP database */
uint8_t numCfgCells; /* number of configured cells */
DuCellCb* cfgCellLst[MAX_NUM_CELL]; /* List of cells at DU APP of type DuCellCb */
uint8_t numActvCells; /* Number of active cells */
uint8_t numTeId; /* current number of TEIDs configured in the system*/
UpTnlCfg* upTnlCfg[MAX_TEID]; /* tunnel info for every Drb */
CmLListCp reservedF1apPduList; /*storing F1AP pdu infomation and transId */
- SliceCfgState sliceState;
- F1SetupMsg f1SetupReqAndRspMsg;
+ SliceCfgState sliceState; /* Slice status */
+ F1SetupMsg f1SetupReqAndRspMsg; /* f1 Setup Req And Rsp Msg*/
+ DuTimers duTimersInfo; /* Du timers queue */
}DuCb;