+
+/* Ref: ORAN_WG8.V7.0.0 Sec 1.1.1.1 Cell Start */
+typedef struct cellInfo
+{
+ SlotTimingInfo slotInfo;
+ uint16_t cellId;
+}CellInfo;
+
+typedef struct cellInfo CellStartInfo;
+typedef struct cellInfo CellStopInfo;
+
+/* Ref: ORAN_WG8.V7.0.0 Sec 1.1.1.12 UE Reset Request */
+typedef struct ueReset
+{
+ uint16_t cellId;
+ uint8_t ueId;
+}MacUeResetReq;
+
+/* Ref: ORAN_WG8.V7.0.0 Sec 1.1.1.13 UE Reset Response */
+typedef struct ueResetRsp
+{
+ uint16_t cellId;
+ uint8_t ueId;
+ CauseOfResult status;
+}MacUeResetRsp;
+
+/* Ref: ORAN_WG8.V7.0.0 Sec 1.1.1.14 UE Sync Status Indication */
+typedef struct ueSyncStatusInd
+{
+ uint16_t cellId;
+ uint8_t ueId;
+ SyncStatus status;
+}MacUeSyncStatusInd;
+
+/* The following list of structures is taken from the SI-SchedulingInfo section of specification 33.331. */
+typedef struct sibTypeInfo
+{
+ SibType sibType;
+ uint8_t valueTag;
+ bool areaScope;
+}SibTypeInfo;
+
+typedef struct sibMappingInfo
+{
+ uint8_t numSibTypeInfo;
+ SibTypeInfo sibTypeInfo[NUM_SIB];
+}SibMappingInfo;
+
+typedef struct schedulingInfo
+{
+ SiBroadcastStatus siBroadcastStatus;
+ SiPeriodicity siPeriodicity;
+ SibMappingInfo sibMappingInfo;
+}SchedulingInfo;
+
+typedef struct rachOccasionsSi
+{
+ RachCfgGeneric rachConfigSi;
+ SsbPerRachOccasion ssbPerRachOccasion;
+}RachOccasionsSi;
+
+typedef struct siReqRsrc
+{
+ uint8_t raPreambleStartIndex;
+ uint8_t raAssociationPeriodIndex;
+ uint8_t raSsbOccasionMaskIndex;
+}SiReqRsrc;
+
+typedef struct siRequestResource
+{
+ uint8_t numOfSiReqRsrc;
+ SiReqRsrc siReqRsrc[MAX_SI_MESSAGE];
+}SiRequestResource;
+
+typedef struct siRequestConfig
+{
+ RachOccasionsSi rachOccasionsSi;
+ SiRequestPeriod siRequestPeriod;
+ SiRequestResource siRequestResource;
+}SiRequestConfig;
+
+typedef struct schedulingInfoList
+{
+ uint8_t numSchInfo;
+ SchedulingInfo schedulingInfo[MAX_SI_MESSAGE];
+}SchedulingInfoList;
+
+typedef struct siSchedulingInfo
+{
+ SchedulingInfoList schInfoList;
+ SiWindowLength siWindowLength;
+ SiRequestConfig siRequestConfig;
+ SiRequestConfig siRequestConfigSUL;
+ uint8_t *siAreaID;
+}SiSchedulingInfo;
+
+/* Ref: ORAN_WG8.V7.0.0 Sec 1.1.1.18 DL Broadcast Request */
+typedef struct macDlBroadcastReq
+{
+ uint16_t cellId;
+ uint8_t numSiBlock;
+ SiSchedulingInfo **siSchedulingInfo;
+}MacDlBroadcastReq;
+
+typedef struct macStatsGrpInfo
+{
+ uint8_t groupId;
+ uint16_t periodicity; /* In milliseconds */
+ uint8_t numStats;
+ MacMeasurementType statsList[MAX_NUM_STATS];
+}MacStatsGrpInfo;
+
+typedef struct macStatsReq
+{
+ uint64_t subscriptionId;
+ uint8_t numStatsGroup;
+ MacStatsGrpInfo statsGrpList[MAX_NUM_STATS_GRP];
+}MacStatsReq;
+
+typedef struct macStatsGrpRejected
+{
+ 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*/
+typedef uint8_t (*DuMacDlBroadcastReq) ARGS((
+ Pst *pst,
+ MacDlBroadcastReq *dlBroadcast));
+
+/* Functions for CellUp Ind from MAC to DU APP*/