X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fmac_sch_interface.h;h=ae772ad74e6df9fe3916d8420f7a8323ed84c746;hb=05d098e6b94f629a932caaff404f2b703b123852;hp=88b347e363aac7510ac5d10c99d4be38216cc37c;hpb=d1f428c3527bfff3b3eae2715e91ae8449ad1784;p=o-du%2Fl2.git diff --git a/src/cm/mac_sch_interface.h b/src/cm/mac_sch_interface.h index 88b347e36..ae772ad74 100644 --- a/src/cm/mac_sch_interface.h +++ b/src/cm/mac_sch_interface.h @@ -51,6 +51,10 @@ #define EVENT_DL_CQI_TO_SCH 32 #define EVENT_UL_CQI_TO_SCH 33 #define EVENT_PHR_IND_TO_SCH 34 +#define EVENT_STATISTICS_REQ_TO_SCH 35 +#define EVENT_STATISTICS_RSP_TO_MAC 36 +#define EVENT_STATISTICS_IND_TO_MAC 37 + /*macros*/ #define MAX_SSB_IDX 1 /* forcing it as 1 for now. Right value is 64 */ #define SCH_SSB_MASK_SIZE 1 @@ -448,6 +452,13 @@ typedef enum CQI_PUSCH }CqiUlReportType; +/* Performance measurements from 3GPP TS 28.552 Release 15 */ +typedef enum +{ + SCH_DL_TOTAL_PRB_USAGE, + SCH_UL_TOTAL_PRB_USAGE +}SchMeasurementType; + /*structures*/ typedef struct timeDomainAlloc { @@ -884,7 +895,6 @@ typedef struct schCellCfg uint16_t phyCellId; /* Physical cell id */ SchPlmnInfoList plmnInfoList[MAX_PLMN]; /* Consits of PlmnId and Snssai list */ SchDuplexMode dupMode; /* Duplex type: TDD/FDD */ - uint8_t numerology; /* Supported numerology */ uint8_t dlBandwidth; /* Supported B/W */ uint8_t ulBandwidth; /* Supported B/W */ SchDlCfgCommon dlCfgCommon; /*Spec 38.331 DownlinkConfigCommonSIB*/ @@ -899,8 +909,8 @@ typedef struct schCellCfg SchSSBPeriod ssbPeriod; /* SSB Periodicity in msec */ uint32_t ssbFrequency; /* SB frequency in kHz*/ uint8_t dmrsTypeAPos; - uint8_t scsCommon; /* subcarrier spacing for common [0-3]*/ - SchPdcchConfigSib1 pdcchCfgSib1; /* Req to configure CORESET#0 and SearchSpace#0*/ + uint8_t ssbScs; /* SSB subcarrier spacing*/ + SchPdcchConfigSib1 pdcchCfgSib1; /* Req to configure CORESET#0 and SearchSpace#0*/ uint32_t ssbPbchPwr; /* SSB block power */ uint8_t ssbSubcOffset; /* Subcarrier Offset(Kssb) */ uint16_t sib1PduLen; @@ -2238,8 +2248,55 @@ typedef struct schRlsHqInfo SchUeHqInfo *ueHqInfo; }SchRlsHqInfo; +/* Statistics Request from MAC to SCH */ +typedef struct schStatsGrpInfo +{ + uint8_t groupId; + uint16_t periodicity; /* In milliseconds */ + uint8_t numStats; + SchMeasurementType statsList[MAX_NUM_STATS]; +}SchStatsGrpInfo; + +typedef struct schStatsReq +{ + uint64_t subscriptionId; + uint8_t numStatsGroup; + SchStatsGrpInfo statsGrpList[MAX_NUM_STATS_GRP]; +}SchStatsReq; + +/* Statistics Response from SCH to MAC */ +typedef struct schStatsGrpRejected +{ + uint8_t groupId; + CauseOfResult cause; +}SchStatsGrpRejected; + +typedef struct schStatsRsp +{ + uint64_t subscriptionId; + uint8_t numGrpAccepted; + uint8_t statsGrpAcceptedList[MAX_NUM_STATS_GRP]; + uint8_t numGrpRejected; + SchStatsGrpRejected statsGrpRejectedList[MAX_NUM_STATS_GRP]; +}SchStatsRsp; + +/* Statistics Indication from SCH to MAC */ +typedef struct schStats +{ + SchMeasurementType type; + double value; +}SchStats; + +typedef struct schStatsInd +{ + uint64_t subscriptionId; + uint8_t groupId; + uint8_t numStats; + SchStats measuredStatsList[MAX_NUM_STATS]; +}SchStatsInd; + + /* function declarations */ -uint8_t schActvInit(Ent entity, Inst instId, Region region, Reason reason); uint8_t MacMessageRouter(Pst *pst, void *msg); uint8_t SchMessageRouter(Pst *pst, void *msg);