1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
5 # Licensed under the Apache License, Version 2.0 (the "License"); #
6 # you may not use this file except in compliance with the License. #
7 # You may obtain a copy of the License at #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
11 # Unless required by applicable law or agreed to in writing, software #
12 # distributed under the License is distributed on an "AS IS" BASIS, #
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
14 # See the License for the specific language governing permissions and #
15 # limitations under the License. #
16 ################################################################################
17 *******************************************************************************/
19 /* Defines APIs exchanged between du_app and cl module of MAC */
23 #define NUM_NUMEROLOGY 5 /* Number of numerology */
24 #define MAX_TDD_PERIODICITY 5
25 #define MAX_SYMB_PER_SLOT 14
35 MAC_GEN_FULL_PBCH_PAYLD, /* MAC generated the full PBCH Payload */
36 PHY_GEN_TIMING_PBCH_BIT, /* PHY generates the timing PBCH bits */
37 PHY_GEN_FULL_PBCH_PAYLD /* PHY generates full PBCH payload */
49 RESTRICTED_SET_TYPE_A,
95 typedef struct carrierCfg
98 U16 bw; /* DL/UL bandwidth */
99 U32 freq; /* Absolute frequency of DL/UL point A in KHz */
100 U16 k0[NUM_NUMEROLOGY]; /* K0 for DL/UL */
101 U16 gridSize[NUM_NUMEROLOGY]; /* DL/UL Grid size for each numerologies */
102 U16 numAnt; /* Number of Tx/Rx antennas */
105 typedef struct ssbCfg
107 U32 ssbPbchPwr; /* SSB block power */
108 BchPduOpt bchPayload; /* Options for generation of payload */
109 U8 scsCmn; /* subcarrier spacing for common */
110 U16 ssbPrbOffset; /* SSB PRB offset from point A */
112 SSBPeriod ssbPeriod; /* SSB Periodicity in msec */
113 U8 ssbSubcOffset; /* Subcarrier Offset */
114 U32 mibPdu; /* MIB payload */
115 U32 nSSBMask[2]; /* Bitmap for actually transmitted SSB. */
116 Bool multCarrBand; /* Multiple carriers in a band */
117 Bool multCellCarr; /* Multiple cells in single carrier */
120 typedef struct fdmInfo
122 U16 rootSeqIdx; /* Root sequence index */
123 U8 numRootSeq; /* Number of root sequences required for FD */
124 U16 k1; /* Frequency Offset for each FD */
125 U8 zeroCorrZoneCfg; /* Zero correlation zone cofig */
126 U8 numUnusedRootSeq; /* Number of unused root sequence */
127 U8 *unsuedRootSeq; /* Unused root sequence per FD */
130 typedef struct prachCfg
133 PrachSeqLen prachSeqLen; /* RACH Sequence length: Long/short */
134 U8 prachSubcSpacing; /* Subcarrier spacing of RACH */
135 RstSetCfg prachRstSetCfg; /* PRACH restricted set config */
136 U8 prachFdm; /* PRACH FDM (1,2,4,8) */
138 U8 ssbPerRach; /* SSB per RACH occassion */
139 Bool prachMultCarrBand; /* Multiple carriers in Band */
142 typedef struct tddCfg
145 DlUlTxPeriodicity tddPeriod; /* DL UL Transmission periodicity */
146 SlotConfig slotCfg[MAX_TDD_PERIODICITY][MAX_SYMB_PER_SLOT];
149 typedef struct clCellCfg
151 U8 numTlv; /* Number of configuration TLVs */
152 U8 carrierId; /* Carrired Index */
153 U16 cellId; /* Cell Id */
154 U16 phyCellId; /* Physical cell id */
155 DuplexMode dupType; /* Duplex type: TDD/FDD */
156 CarrierCfg dlCarrCfg; /* DL Carrier configuration */
157 CarrierCfg ulCarrCfg; /* UL Carrier configuration */
158 Bool freqShft; /* Indicates presence of 7.5kHz frequency shift */
159 SsbCfg ssbCfg; /* SSB configuration */
160 PrachCfg prachCfg; /* PRACH Configuration */
161 TDDCfg tddCfg; /* TDD periodicity and slot configuration */
162 RSSIMeasUnit rssiUnit; /* RSSI measurement unit */
167 /**********************************************************************
169 **********************************************************************/