X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fmac_sch_interface.h;h=4166a8e9cc4fde8b769268e6d3c3c183ce759b5f;hb=73da3ffdd36c5ade0c1cccbe7d2ad4d457897b2f;hp=ca349700342336bcf628d9b0d86e8521714cb01f;hpb=f73456bd55152c329601f8286ae67fe9875025bc;p=o-du%2Fl2.git diff --git a/src/cm/mac_sch_interface.h b/src/cm/mac_sch_interface.h index ca3497003..4166a8e9c 100644 --- a/src/cm/mac_sch_interface.h +++ b/src/cm/mac_sch_interface.h @@ -52,6 +52,12 @@ #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 */ @@ -286,22 +292,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 { @@ -1436,6 +1442,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 { @@ -1970,7 +1983,6 @@ typedef struct schModulationInfo typedef struct schUeCfgReq { uint16_t cellId; - uint8_t ueId; uint8_t beamIdx; uint16_t crnti; bool macCellGrpCfgPres; @@ -1990,7 +2002,6 @@ typedef struct schUeCfgReq typedef struct schUeRecfgReq { uint16_t cellId; - uint8_t ueId; uint8_t beamIdx; uint16_t crnti; bool macCellGrpRecfgPres; @@ -2019,7 +2030,6 @@ typedef struct schUeCfgRsp { uint16_t cellId; uint8_t beamIdx; - uint16_t ueId; uint16_t crnti; SchMacRsp rsp; CauseOfResult cause; @@ -2246,18 +2256,79 @@ typedef struct schRlsHqInfo SchUeHqInfo *ueHqInfo; }SchRlsHqInfo; -typedef struct schStatsInfo +/* Statistics Request from MAC to SCH */ +typedef struct schStatsGrpInfo { - SchMeasurementType type; - uint16_t periodicity; /* In milliseconds */ -}SchStatsInfo; + uint8_t groupId; + uint16_t periodicity; /* In milliseconds */ + uint8_t numStats; + SchMeasurementType statsList[MAX_NUM_STATS]; +}SchStatsGrpInfo; typedef struct schStatsReq { - uint8_t numStats; - SchStatsInfo statsList[MAX_NUM_STATS]; + 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 MacMessageRouter(Pst *pst, void *msg); uint8_t SchMessageRouter(Pst *pst, void *msg);