X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_mac_inf.h;h=f6ecc1125b057185ff70d467ce5be51757629e0c;hb=fc7d3ce9647a7da04f5a67fa34419076069defc1;hp=c0cb0dc80c3aa42d286378940695d02ec3b8d9cc;hpb=a14bf79bbc001990f96e01ada0dd291bcc9ddcad;p=o-du%2Fl2.git diff --git a/src/cm/du_app_mac_inf.h b/src/cm/du_app_mac_inf.h index c0cb0dc80..f6ecc1125 100644 --- a/src/cm/du_app_mac_inf.h +++ b/src/cm/du_app_mac_inf.h @@ -26,18 +26,14 @@ #define NUM_SSB 1 /* max value is 64 */ #define SSB_MASK_SIZE 1 /* SSB mask size is 32bit for sub6 */ #define SIB1_REPETITION_PERIOD 20 -#define CORESET_0_INDEX 0 #define CORESET_1_INDEX 1 #define CORESET_2_INDEX 2 #define CORESET_3_INDEX 3 #define CORESET_4_INDEX 4 #define SEARCHSPACE_0_INDEX 0 -#define SEARCHSPACE_1_INDEX 1 #define SEARCHSPACE_2_INDEX 2 #define SEARCHSPACE_3_INDEX 3 #define SEARCHSPACE_4_INDEX 4 -#define SS_MONITORING_SLOT_SL1 0 /* all slots */ -#define SS_MONITORING_SYMBOL 0x2000; /* symbol-0, set 14th bit */ /* Macro for Ue Context */ #define MAX_NUM_SR_CFG_PER_CELL_GRP 8 /* Max number of scheduling request config per cell group */ @@ -91,16 +87,21 @@ #define EVENT_MAC_DL_BROADCAST_REQ 228 #define EVENT_MAC_STATISTICS_REQ 229 #define EVENT_MAC_STATISTICS_RSP 230 +#define EVENT_MAC_STATISTICS_IND 231 +#define EVENT_MAC_STATS_DELETE_REQ 232 +#define EVENT_MAC_STATS_DELETE_RSP 233 +#define EVENT_MAC_STATISTICS_MODIFY_REQ 234 +#define EVENT_MAC_STATISTICS_MODIFY_RSP 235 #define BSR_PERIODIC_TIMER_SF_10 10 #define BSR_RETX_TIMER_SF_320 320 #define BSR_SR_DELAY_TMR_2560 2560 #define PAGING_SCHED_DELTA 4 -#define MAX_PLMN 2 +#define MAX_PLMN 1 /********************* Global Variable ********************/ -uint64_t ueBitMapPerCell[MAX_NUM_CELL]; /* Bit Map to store used/free UE-IDX per Cell */ +extern uint64_t ueBitMapPerCell[MAX_NUM_CELL]; /* Bit Map to store used/free UE-IDX per Cell */ /********************* Interface structure definition ********************/ typedef enum @@ -359,22 +360,22 @@ typedef enum typedef enum { - SLOTPERIODICITYANDOFFSET_PR_SL1 = 1, - SLOTPERIODICITYANDOFFSET_PR_SL2, - SLOTPERIODICITYANDOFFSET_PR_SL4, - SLOTPERIODICITYANDOFFSET_PR_SL5, - SLOTPERIODICITYANDOFFSET_PR_SL8, - SLOTPERIODICITYANDOFFSET_PR_SL10, - SLOTPERIODICITYANDOFFSET_PR_SL16, - SLOTPERIODICITYANDOFFSET_PR_SL20, - SLOTPERIODICITYANDOFFSET_PR_SL40, - SLOTPERIODICITYANDOFFSET_PR_SL80, - SLOTPERIODICITYANDOFFSET_PR_SL160, - SLOTPERIODICITYANDOFFSET_PR_SL320, - SLOTPERIODICITYANDOFFSET_PR_SL640, - SLOTPERIODICITYANDOFFSET_PR_SL1280, - SLOTPERIODICITYANDOFFSET_PR_SL2560 -}MSlotPeriodAndOffset; + SLOTPERIODICITY_PR_SL1 = 1, + SLOTPERIODICITY_PR_SL2, + SLOTPERIODICITY_PR_SL4, + SLOTPERIODICITY_PR_SL5, + SLOTPERIODICITY_PR_SL8, + SLOTPERIODICITY_PR_SL10, + SLOTPERIODICITY_PR_SL16, + SLOTPERIODICITY_PR_SL20, + SLOTPERIODICITY_PR_SL40, + SLOTPERIODICITY_PR_SL80, + SLOTPERIODICITY_PR_SL160, + SLOTPERIODICITY_PR_SL320, + SLOTPERIODICITY_PR_SL640, + SLOTPERIODICITY_PR_SL1280, + SLOTPERIODICITY_PR_SL2560 +}MSlotPeriodicity; typedef enum { @@ -606,9 +607,9 @@ typedef struct failureCause typedef struct carrierCfg { uint32_t dlBw; /* DL bandwidth */ - uint32_t dlFreq; /* Absolute frequency of DL point A in KHz */ + uint32_t arfcnDL; /* Absolute frequency Number of DL */ uint32_t ulBw; /* UL bandwidth */ - uint32_t ulFreq; /* Absolute frequency of UL point A in KHz */ + uint32_t arfcnUL; /* Absolute frequency Number of UL */ uint16_t numTxAnt; /* Number of Tx antennas */ uint16_t numRxAnt; /* Number of Rx antennas */ }CarrierCfg; @@ -644,8 +645,7 @@ typedef enum typedef struct plmnInfoList { Plmn plmn; - uint8_t numSupportedSlice; /* Total slice supporting */ - Snssai **snssai; /* List of supporting snssai*/ + SupportedSliceList suppSliceList; }PlmnInfoList; typedef struct schPageCfg @@ -875,7 +875,7 @@ typedef struct beamformingConf typedef struct csiRsCfg { - uint8_t *csiFreqDomainAlloc; + uint8_t *csiFreqDomainAlloc; uint8_t csiNrofPorts; uint8_t csirsfirstOFDMSymbolInTimeDomain; uint8_t csirsfirstOFDMSymbolInTimeDomain2; @@ -893,7 +893,7 @@ typedef struct macCellCfg CarrierCfg carrCfg; /* Carrier configuration */ CellCfg cellCfg; /* Cell Configuration*/ SsbCfg ssbCfg; /* SSB configuration */ - CsiRsCfg csiRsCfg; /*Reference: 38.331 CSI-MeasConfig*/ + CsiRsCfg csiRsCfg; /*Reference: 38.331 CSI-RS-ResourceMapping */ PrachCfg prachCfg; /* PRACH Configuration */ #ifdef NR_TDD TDDCfg tddCfg; /* TDD periodicity and slot configuration */ @@ -1005,6 +1005,12 @@ typedef struct controlRsrcSet uint16_t dmrsScramblingId; }ControlRsrcSet; +typedef struct mSlotPeriodAndOffset +{ + MSlotPeriodicity mSlotPeriodicity; + uint16_t mSlotOffset; +}MSlotPeriodAndOffset; + /* Search Space info */ typedef struct searchSpace { @@ -1854,24 +1860,76 @@ typedef struct macDlBroadcastReq SiSchedulingInfo **siSchedulingInfo; }MacDlBroadcastReq; -typedef struct macStatsInfo +typedef struct macStatsGrpInfo { - MacMeasurementType type; - uint16_t periodicity; /* In milliseconds */ -}MacStatsInfo; + uint8_t groupId; + uint16_t periodicity; /* In milliseconds */ + uint8_t numStats; + MacMeasurementType statsList[MAX_NUM_STATS]; +}MacStatsGrpInfo; typedef struct macStatsReq { - uint8_t numStats; - MacStatsInfo statsList[MAX_NUM_STATS]; + uint64_t subscriptionId; + uint8_t numStatsGroup; + MacStatsGrpInfo statsGrpList[MAX_NUM_STATS_GRP]; }MacStatsReq; -typedef struct macStatsRsp +typedef struct macStatsGrpRejected { - MacRsp rsp; + uint8_t groupId; CauseOfResult cause; +}MacStatsGrpRejected; + +typedef struct macStatsRsp +{ + uint64_t subscriptionId; + uint8_t numGrpAccepted; + uint8_t statsGrpAcceptedList[MAX_NUM_STATS_GRP]; + uint8_t numGrpRejected; + MacStatsGrpRejected statsGrpRejectedList[MAX_NUM_STATS_GRP]; }MacStatsRsp; +typedef struct macStats +{ + MacMeasurementType type; + double value; +}MacStats; + +typedef struct macStatsInd +{ + uint64_t subscriptionId; + uint8_t groupId; + uint8_t numStats; + MacStats measuredStatsList[MAX_NUM_STATS]; +}MacStatsInd; + +typedef struct macStatsDeleteReq +{ + uint64_t subscriptionId; + uint8_t numStatsGroupToBeDeleted; + uint8_t statsGrpIdToBeDelList[MAX_NUM_STATS_GRP]; +}MacStatsDeleteReq; + +typedef struct macStatsDeleteInfo +{ + uint8_t groupId; + MacRsp statsGrpDelRsp; + CauseOfResult statsGrpDelCause; +}MacStatsDeleteInfo; + +typedef struct macStatsDeleteRsp +{ + uint64_t subscriptionId; /* subscription Id */ + MacRsp subsDelRsp; /* deletion status of all statsGrp with given subscriptionId */ + CauseOfResult subsDelCause; /* cause of failure in deletion of all statsGrp with given subscriptionId */ + uint8_t numStatsGroupDeleted; /* number of actions to deleted */ + MacStatsDeleteInfo statsGrpDelInfo[MAX_NUM_STATS_GRP]; /*list of the deletion statuses for specific actions */ +}MacStatsDeleteRsp; + +typedef struct macStatsReq MacStatsModificationReq; +typedef struct macStatsRsp MacStatsModificationRsp; + /****************** FUNCTION POINTERS ********************************/ /* DL broadcast req from DU APP to MAC*/ @@ -2036,6 +2094,31 @@ typedef uint8_t (*MacDuStatsRspFunc) ARGS(( Pst *pst, MacStatsRsp *statsRsp)); +/* Statistics Ind from MAC to DU APP */ +typedef uint8_t (*MacDuStatsIndFunc) ARGS(( + Pst *pst, + MacStatsInd *statsInd)); + +/* Statitics Delete Request from DU APP to MAC */ +typedef uint8_t (*DuMacStatsDeleteReqFunc) ARGS(( + Pst *pst, + MacStatsDeleteReq *statsDeleteReq)); + +/* Statistics Delete Response from MAC to DU APP */ +typedef uint8_t (*MacDuStatsDeleteRspFunc) ARGS(( + Pst *pst, + MacStatsDeleteRsp *statsDeleteRsp)); + +/* Statitics Modification Request from DU APP to MAC */ +typedef uint8_t (*DuMacStatsModificationReqFunc) ARGS(( + Pst *pst, + MacStatsModificationReq *statsModificationReq)); + +/* Statistics Modification Response from MAC to DU APP */ +typedef uint8_t (*MacDuStatsModificationRspFunc) ARGS(( + Pst *pst, + MacStatsModificationRsp *statsModificationRsp)); + /******************** FUNCTION DECLARATIONS ********************************/ uint8_t packMacCellUpInd(Pst *pst, OduCellId *cellId); uint8_t unpackMacCellUpInd(DuMacCellUpInd func, Pst *pst, Buffer *mBuf); @@ -2165,6 +2248,27 @@ uint8_t packDuMacStatsRsp(Pst *pst, MacStatsRsp *statsRsp); uint8_t DuProcMacStatsRsp(Pst *pst, MacStatsRsp *statsRsp); uint8_t unpackDuMacStatsRsp(MacDuStatsRspFunc func, Pst *pst, Buffer *mBuf); +uint8_t packDuMacStatsInd(Pst *pst, MacStatsInd *statsRsp); +uint8_t DuProcMacStatsInd(Pst *pst, MacStatsInd *statsRsp); +uint8_t unpackDuMacStatsInd(MacDuStatsIndFunc func, Pst *pst, Buffer *mBuf); + +uint8_t packDuMacStatsDeleteReq(Pst *pst, MacStatsDeleteReq *statsDeleteReq); +uint8_t MacProcStatsDeleteReq(Pst *pst, MacStatsDeleteReq *statsDeleteReq); +uint8_t unpackMacStatsDeleteReq(DuMacStatsDeleteReqFunc func, Pst *pst, Buffer *mBuf); + +uint8_t packDuMacStatsDeleteRsp(Pst *pst, MacStatsDeleteRsp *statsDeleteRsp); +uint8_t DuProcMacStatsDeleteRsp(Pst *pst, MacStatsDeleteRsp *statsDeleteRsp); +uint8_t unpackDuMacStatsDeleteRsp(MacDuStatsDeleteRspFunc func, Pst *pst, Buffer *mBuf); + +uint8_t packDuMacStatsModificationReq(Pst *pst, MacStatsModificationReq *statsModificationReq); +uint8_t MacProcStatsModificationReq(Pst *pst, MacStatsModificationReq *statsModificationReq); +uint8_t unpackMacStatsModificationReq(DuMacStatsModificationReqFunc func, Pst *pst, Buffer *mBuf); + +uint8_t packDuMacStatsModificationRsp(Pst *pst, MacStatsModificationRsp *statsModificationRsp); +uint8_t DuProcMacStatsModificationRsp(Pst *pst, MacStatsModificationRsp *statsModificationRsp); +uint8_t unpackDuMacStatsModificationRsp(MacDuStatsModificationRspFunc func, Pst *pst, Buffer *mBuf); + + #endif