X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_mgr.h;h=0cdc00d69aa149ff29100dc248a5b48c4ddd08b2;hb=52ca0cf30806914e2f44054932cd2300f12aded8;hp=a46a3709fe76fac16f72880358cf074f23346839;hpb=04ac036d193d4f4807cfaae96ce74dfd1c3e7966;p=o-du%2Fl2.git diff --git a/src/du_app/du_mgr.h b/src/du_app/du_mgr.h index a46a3709f..0cdc00d69 100644 --- a/src/du_app/du_mgr.h +++ b/src/du_app/du_mgr.h @@ -57,6 +57,7 @@ #define DU_SET_ZERO(_buf, _size) \ memset((_buf), 0, _size); +/*Refer Spec 38.331 Annexure A: maxNrofPageRec : 32 [Maximum number of page records]*/ #define MAX_PAGING_UE_RECORDS 32 typedef enum @@ -79,7 +80,8 @@ typedef enum UE_INACTIVE, UE_ACTIVE, UE_HANDIN_IN_PROGRESS, - UE_DELETION_IN_PROGRESS + UE_DELETION_IN_PROGRESS, + UE_RESET_IN_PROGRESS }UeState; typedef enum @@ -128,20 +130,82 @@ typedef struct upTnlCfg GtpTnlCfg *tnlCfg2; /* Tunnel 2 */ }UpTnlCfg; +#ifdef NR_DRX +/* This structures is taken from the DRX Cycle section of + * specification 33.473. */ +typedef struct drxCycle +{ + uint16_t drxLongCycleLength; + bool shortDrxCyclePres; + ShortDrx shortDrxCycle; +}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; - DataTransmissionAction dataTransmissionAction; + uint8_t numDrbModified; /*No. of DRB Modified during Modification*/ + DuMacUeCfg copyOfmacUeCfg; + DataTransmissionAction dataTransmissionAction; +#ifdef NR_DRX + bool drxCyclePres; + DrxCycle drxCycle; + bool drxConfigIndicatorRelease; +#endif }DuUeCfg; typedef struct f1UeContextSetup @@ -170,8 +234,9 @@ typedef struct duUeCb uint32_t gnbCuUeF1apId; /* GNB CU UE F1AP ID */ uint32_t drbBitMap; /* Drb Bit Map */ UeState ueState; /* UE Active/ Ue Inactive state */ - MacUeCfg macUeCfg; /* Mac Ue Cfg */ - RlcUeCfg rlcUeCfg; /* Rlc Ue Cfg */ + MacCfraResource cfraResource; /* CF-RA resource assigned by MAC/SCH */ + DuMacUeCfg duMacUeCfg; /* Mac Ue Cfg */ + DuRlcUeCfg duRlcUeCfg; /* Rlc Ue Cfg */ }DuUeCb; typedef struct slotInfo @@ -200,9 +265,8 @@ typedef struct pagingMsg typedef struct duPagUeRecord { - uint16_t pagUeId; /*UEID calculated from 5gsTMSI as per Spec 38.304*/ - uint64_t sTmsi; /*UE Paging Identity: 5GS-TMSI*/ - uint8_t pagPriority; /* Paging priority */ + uint16_t pagUeId; /*UEID calculated from 5gsTMSI as per Spec 38.304*/ + uint64_t sTmsi; /* UE Paging Identity: S-TMSI */ }DuPagUeRecord; typedef struct duPagInfo @@ -334,6 +398,7 @@ uint8_t duSendEgtpDatInd(Buffer *mBuf); uint8_t duHdlSchCfgComplete(Pst *pst, RgMngmt *cfm); uint8_t duBuildAndSendMacCellStart(); uint8_t duBuildAndSendMacCellStop(uint16_t cellId); + #endif /**********************************************************************