X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fmac_sch_interface.h;h=0716535ca5f55a0b6546a97cee8c1295910b253f;hb=a6ec34e2927a6167f62cf18fe60c46113bcfc019;hp=fd9554b044aa1cdf02a77f315cf0a2c94bf0a0b5;hpb=9625bef129812dfbc9b0a55ee52395c2fa7fbd93;p=o-du%2Fl2.git diff --git a/src/cm/mac_sch_interface.h b/src/cm/mac_sch_interface.h index fd9554b04..0716535ca 100644 --- a/src/cm/mac_sch_interface.h +++ b/src/cm/mac_sch_interface.h @@ -51,6 +51,14 @@ #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 +#define EVENT_STATISTICS_DELETE_REQ_TO_SCH 38 +#define EVENT_STATISTICS_DELETE_RSP_TO_MAC 39 +#define EVENT_STATISTICS_MODIFY_REQ_TO_SCH 40 +#define EVENT_STATISTICS_MODIFY_RSP_TO_MAC 41 + /*macros*/ #define MAX_SSB_IDX 1 /* forcing it as 1 for now. Right value is 64 */ #define SCH_SSB_MASK_SIZE 1 @@ -115,6 +123,13 @@ #define MAX_PHR_REPORT 1 /*TODO: Range of PHR reports in multiple PHR.*/ #define MAX_FAILURE_DET_RESOURCES 10 /*Spec 38.331 'maxNrofFailureDetectionResources'*/ +/*As per SCF222_5GFAPI, 'MaxDciPerSlot' defines this value but this parameter value is missing in Spec.*/ +#ifdef INTEL_FAPI + #define MAX_NUM_PDCCH 1 +#else + #define MAX_NUM_PDCCH 2 +#endif + #define ADD_DELTA_TO_TIME(crntTime, toFill, incr, numOfSlot) \ { \ if ((crntTime.slot + incr) > (numOfSlot - 1)) \ @@ -139,14 +154,6 @@ typedef enum RRC_CONNECTED_USERS_RSRC }SchResourceType; -typedef enum -{ - SLICE_NOT_FOUND, - SLICE_CONFIGURED, - SLICE_RECONFIGURED, - RESOURCE_NOT_AVAILABLE -}RspCause; - typedef enum { NO_TRANSMISSION, @@ -154,14 +161,6 @@ typedef enum REPEATITION }PduTxOccsaion; -typedef enum -{ - UNSPECIFIED_CAUSE, - INVALID_PARAM_VALUE, - RESOURCE_UNAVAILABLE, - SYSTEM_ERROR -}SchFailureCause; - typedef enum { SR_PROHIBIT_MS1, @@ -174,13 +173,6 @@ typedef enum SR_PROHIBIT_MS128 }SchSrProhibitTimer; -typedef enum -{ - NOT_APPLICABLE, - INVALID_CELLID, - INVALID_UEID -}ErrorCause; - typedef enum { SR_TRANS_MAX_N4, @@ -307,22 +299,22 @@ typedef enum typedef enum { - SLOT_PERIODICITY_AND_OFFSET_SL_1 = 1, - SLOT_PERIODICITY_AND_OFFSET_SL_2, - SLOT_PERIODICITY_AND_OFFSET_SL_4, - SLOT_PERIODICITY_AND_OFFSET_SL_5, - SLOT_PERIODICITY_AND_OFFSET_SL_8, - SLOT_PERIODICITY_AND_OFFSET_SL_10, - SLOT_PERIODICITY_AND_OFFSET_SL_16, - SLOT_PERIODICITY_AND_OFFSET_SL_20, - SLOT_PERIODICITY_AND_OFFSET_SL_40, - SLOT_PERIODICITY_AND_OFFSET_SL_80, - SLOT_PERIODICITY_AND_OFFSET_SL_160, - SLOT_PERIODICITY_AND_OFFSET_SL_320, - SLOT_PERIODICITY_AND_OFFSET_SL_640, - SLOT_PERIODICITY_AND_OFFSET_SL_1280, - SLOT_PERIODICITY_AND_OFFSET_SL_2560 -}SchMSlotPeriodAndOffset; + SLOT_PERIODICITY_SL_1 = 1, + SLOT_PERIODICITY_SL_2, + SLOT_PERIODICITY_SL_4, + SLOT_PERIODICITY_SL_5, + SLOT_PERIODICITY_SL_8, + SLOT_PERIODICITY_SL_10, + SLOT_PERIODICITY_SL_16, + SLOT_PERIODICITY_SL_20, + SLOT_PERIODICITY_SL_40, + SLOT_PERIODICITY_SL_80, + SLOT_PERIODICITY_SL_160, + SLOT_PERIODICITY_SL_320, + SLOT_PERIODICITY_SL_640, + SLOT_PERIODICITY_SL_1280, + SLOT_PERIODICITY_SL_2560 +}SchMSlotPeriodicity; typedef enum { @@ -471,6 +463,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 { @@ -625,7 +624,7 @@ typedef struct pdcchCfg /* coreset-0 configuration */ CoresetCfg coresetCfg; uint16_t numDlDci; - DlDCI dci; /* as of now its only one DCI, later it will be numDlCi */ + DlDCI dci[MAX_NUM_PDCCH]; } PdcchCfg; /* end of SIB1 PDCCH structures */ @@ -790,8 +789,7 @@ typedef struct schBwpUlCfg typedef struct schPlmnInfoList { Plmn plmn; - uint8_t numSliceSupport; /* Total slice supporting */ - Snssai **snssai; /* List of supporting snssai*/ + SupportedSliceList suppSliceList; }SchPlmnInfoList; #ifdef NR_DRX @@ -907,7 +905,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*/ @@ -922,8 +919,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; @@ -934,7 +931,7 @@ typedef struct schCellCfgCfm { uint16_t cellId; /* Cell Id */ SchMacRsp rsp; - SchFailureCause cause; + CauseOfResult cause; }SchCellCfgCfm; /*Ref: ORAN_WG8.V7.0.0 Sec 11.2.4.2.2 Cell Del Req*/ @@ -948,7 +945,7 @@ typedef struct schCellDeleteRsp { uint16_t cellId; SchMacRsp rsp; - SchFailureCause cause; + CauseOfResult cause; }SchCellDeleteRsp; /*Ref: ORAN_WG8.V7.0.0 Sec 11.2.4.2.3*/ @@ -976,7 +973,7 @@ typedef struct schSliceCfgRsp { Snssai snssai; SchMacRsp rsp; - RspCause cause; + CauseOfResult cause; }SchSliceCfgRsp; /*As per ORAN-WG8 V7.0.0 Sec 11.2.4.3.4 , Slice Cfg and Recfg are same structures*/ @@ -1451,6 +1448,13 @@ typedef struct schControlRsrcSet uint16_t dmrsScramblingId; }SchControlRsrcSet; +/*Slot Perioicity and Offset*/ +typedef struct schMSlotPeriodAndOffset +{ + SchMSlotPeriodicity mSlotPeriodicity; + uint16_t mSlotOffset; +}SchMSlotPeriodAndOffset; + /* Search Space info */ typedef struct schSearchSpace { @@ -1985,7 +1989,6 @@ typedef struct schModulationInfo typedef struct schUeCfgReq { uint16_t cellId; - uint8_t ueId; uint8_t beamIdx; uint16_t crnti; bool macCellGrpCfgPres; @@ -2005,7 +2008,6 @@ typedef struct schUeCfgReq typedef struct schUeRecfgReq { uint16_t cellId; - uint8_t ueId; uint8_t beamIdx; uint16_t crnti; bool macCellGrpRecfgPres; @@ -2034,10 +2036,9 @@ typedef struct schUeCfgRsp { uint16_t cellId; uint8_t beamIdx; - uint16_t ueId; uint16_t crnti; SchMacRsp rsp; - SchFailureCause cause; + CauseOfResult cause; }SchUeCfgRsp; /*As per WG8 V7.0.0 Sec 11.2.4.3.6, UE ReCFG and UECFG have same structure definition*/ @@ -2056,7 +2057,7 @@ typedef struct schUeDeleteRsp uint16_t cellId; uint16_t crnti; SchMacRsp rsp; - ErrorCause cause; + CauseOfResult cause; }SchUeDeleteRsp; /*Spec O-RAN, WG8, V7.0.0, '11.2.4.2.8' DL HARQ Indication*/ @@ -2261,8 +2262,80 @@ 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; + +typedef struct schStatsReq SchStatsModificationReq; +typedef struct schStatsRsp SchStatsModificationRsp; + +/* 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; + +typedef struct schStatsDeleteReq +{ + uint64_t subscriptionId; + uint8_t numStatsGroupToBeDeleted; + uint8_t statsGrpIdToBeDelList[MAX_NUM_STATS_GRP]; +}SchStatsDeleteReq; + +typedef struct statsDeleteResult +{ + uint8_t groupId; + SchMacRsp statsGrpDelRsp; + CauseOfResult statsGrpDelCause; +}StatsDeleteResult; + +typedef struct schStatsDeleteRsp +{ + uint64_t subscriptionId; /* subscription Id */ + SchMacRsp 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; /* num of action deleted */ + StatsDeleteResult statsGrpDelInfo[MAX_NUM_STATS_GRP]; /* list of the deletion status for specific actions */ +}SchStatsDeleteRsp; + /* 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);