X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fmac_sch_interface.h;h=4111dcc5a842108b9909640bca0f09290a311ec3;hb=e698840bb6fcecc68be5b1d1fd17436bd1d5e83f;hp=f973b83e536782f1436b76ea755f97f0a11a7f6d;hpb=79661a503b0e6bcbe20fe0e19eb920110ab35242;p=o-du%2Fl2.git diff --git a/src/cm/mac_sch_interface.h b/src/cm/mac_sch_interface.h index f973b83e5..4111dcc5a 100644 --- a/src/cm/mac_sch_interface.h +++ b/src/cm/mac_sch_interface.h @@ -38,16 +38,9 @@ /*macros*/ -#define NO_SSB 0 -#define SSB_TRANSMISSION 1 -#define SSB_REPEAT 2 #define MAX_SSB_IDX 1 /* forcing it as 1 for now. Right value is 64 */ #define SCH_SSB_MASK_SIZE 1 -#define NO_SIB1 0 -#define SIB1_TRANSMISSION 1 -#define SIB1_REPITITION 2 - #define MAX_NUM_PRG 1 /* max value should be later 275 */ #define MAX_DIG_BF_INTERFACES 0 /* max value should be later 255 */ #define MAX_CODEWORDS 1 /* max should be 2 */ @@ -90,7 +83,7 @@ #define MAX_NUM_PUCCH_P0_PER_SET 8 #define MAX_NUM_PATH_LOSS_REF_RS 4 #define MAX_NUM_DL_DATA_TO_UL_ACK 15 -#define SD_SIZE 3 +#define QPSK_MODULATION 2 #define RAR_PAYLOAD_SIZE 10 /* As per spec 38.321, sections 6.1.5 and 6.2.3, RAR PDU is 8 bytes long and 2 bytes of padding */ #define TX_PAYLOAD_HDR_LEN 32 /* Intel L1 requires adding a 32 byte header to transmitted payload */ @@ -99,7 +92,13 @@ #define MAX_NUM_K0_IDX 16 /* Max number of pdsch time domain downlink allocation */ #define MAX_NUM_K1_IDX 8 /* As per spec 38.213 section 9.2.3 Max number of PDSCH-to-HARQ resource indication */ #define MIN_NUM_K1_IDX 4 /* Min K1 values */ -#define DEFAULT_K0_VALUE 0 /*As per 38.331, PDSCH-TimeDomainResourceAllocation field descriptions*/ +#define MAX_NUM_K2_IDX 16 /* PUSCH time domain UL resource allocation list */ +#define DEFAULT_K0_VALUE 0 /* As per 38.331, PDSCH-TimeDomainResourceAllocation field descriptions */ +/* As per 38.331, PUSCH-TimeDomainResourceAllocationList field descriptions */ +#define DEFAULT_K2_VALUE_FOR_SCS15 1 +#define DEFAULT_K2_VALUE_FOR_SCS30 1 +#define DEFAULT_K2_VALUE_FOR_SCS60 2 +#define DEFAULT_K2_VALUE_FOR_SCS120 3 #define ADD_DELTA_TO_TIME(crntTime, toFill, incr) \ { \ @@ -118,6 +117,20 @@ } \ } +typedef enum +{ + PRB_RSRC, + DRB_RSRC, + RRC_CONNECTED_USERS_RSRC +}SchResourceType; + +typedef enum +{ + NO_TRANSMISSION, + NEW_TRANSMISSION, + REPEATITION +}PduTxOccsaion; + typedef enum { UNSPECIFIED_CAUSE, @@ -395,6 +408,14 @@ typedef enum SCH_MCS_TABLE_QAM_64_LOW_SE }SchMcsTable; +typedef enum +{ + NONE, + PDCCH_PDU, + PDSCH_PDU, + BOTH +}DlPduType; + /*structures*/ typedef struct timeDomainAlloc { @@ -601,8 +622,9 @@ typedef struct schCandidatesInfo typedef struct schSearchSpaceCfg { - uint8_t searchSpaceId; - uint8_t coresetId; + uint8_t searchSpaceId; + uint8_t coresetId; + uint8_t freqDomainRsrc[FREQ_DOM_RSRC_SIZE]; /* Frequency domain resource */ uint16_t monitoringSlot; uint16_t duration; uint16_t monitoringSymbol; @@ -682,13 +704,42 @@ typedef struct schBwpDlCfg SchK0K1TimingInfoTbl k0K1InfoTbl; }SchBwpDlCfg; +typedef struct schK2TimingInfo +{ + uint8_t numK2; + uint8_t k2Indexes[MAX_NUM_K2_IDX]; +}SchK2TimingInfo; + +typedef struct schK2TimingInfoTbl +{ + uint16_t tblSize; + SchK2TimingInfo k2TimingInfo[MAX_NUM_CONFIG_SLOTS]; +}SchK2TimingInfoTbl; + typedef struct schBwpUlCfg { SchBwpParams bwp; SchPucchCfgCmn pucchCommon; SchPuschCfgCmn puschCommon; + SchK2TimingInfoTbl msg3K2InfoTbl; + SchK2TimingInfoTbl k2InfoTbl; }SchBwpUlCfg; +typedef struct schPolicyMemberList +{ + Plmn plmn; + Snssai snssai; +}SchPolicyMemberList; + +typedef struct schRrmPolicy +{ + SchResourceType rsrcType; + SchPolicyMemberList memberList; + uint8_t policyMaxRatio; + uint8_t policyMinRatio; + uint8_t policyDedicatedRatio; +}SchRrmPolicy; + typedef struct schCellCfg { uint16_t cellId; /* Cell Id */ @@ -703,9 +754,12 @@ typedef struct schCellCfg SchRachCfg schRachCfg; /* PRACH config */ SchBwpDlCfg schInitialDlBwp; /* Initial DL BWP */ SchBwpUlCfg schInitialUlBwp; /* Initial UL BWP */ + uint8_t numSliceSupport; /* Total num of slice support */ + Snssai **snssai; /* List of supporting snssai*/ + SchRrmPolicy *rrmPolicy; /* RRM policy */ #ifdef NR_TDD TDDCfg tddCfg; /* TDD Cfg */ -#endif +#endif }SchCellCfg; typedef struct schCellCfgCfm @@ -778,6 +832,8 @@ typedef struct rarInfo typedef struct rarAlloc { + DlPduType pduPres; + uint8_t pdschSlot; RarInfo rarInfo; BwpCfg bwp; PdcchCfg rarPdcchCfg; @@ -813,6 +869,8 @@ typedef struct dlMsgAlloc BwpCfg bwp; PdcchCfg dlMsgPdcchCfg; PdschCfg dlMsgPdschCfg; + DlPduType pduPres; + uint8_t pdschSlot; DlMsgInfo dlMsgInfo; }DlMsgAlloc; @@ -888,17 +946,13 @@ typedef struct dlSchedInfo DlBrdcstAlloc brdcstAlloc; /* Allocation for RAR message */ - //uint8_t isRarPres; - RarAlloc *rarAlloc; - - /* Allocation from MSG4 */ - //Msg4Alloc *msg4Alloc; + RarAlloc *rarAlloc[MAX_NUM_UE]; /* UL grant in response to BSR */ DciInfo *ulGrant; /* Allocation from dedicated DL msg */ - DlMsgAlloc *dlMsgAlloc; + DlMsgAlloc *dlMsgAlloc[MAX_NUM_UE]; }DlSchedInfo; @@ -1363,6 +1417,7 @@ typedef struct schInitialUlBwp SchPucchCfg pucchCfg; bool puschCfgPres; SchPuschCfg puschCfg; + SchK2TimingInfoTbl k2InfoTbl; }SchInitialUlBwp; /* Uplink BWP information */ @@ -1437,12 +1492,6 @@ typedef struct schDrbQos uint32_t ulPduSessAggMaxBitRate; /* UL PDU Session Aggregate max bit rate */ }SchDrbQosInfo; -typedef struct schSnssai -{ - uint8_t sst; - uint8_t sd[SD_SIZE]; -}SchSnssai; - /* Special cell configuration */ typedef struct schSpCellCfg { @@ -1472,7 +1521,7 @@ typedef struct schLcCfg ConfigType configType; uint8_t lcId; SchDrbQosInfo *drbQos; - SchSnssai *snssai; + Snssai *snssai; SchDlLcCfg dlLcCfg; SchUlLcCfg ulLcCfg; }SchLcCfg;