1 // This file has been modified by Radisys in order to support 5G FAPI:PHY API Specification
2 // Document 222.10.01 dated June 2019
3 // Changes made by luis.farias@intel.com
4 // Document 222.10.03 dated May 2021
8 #ifndef _FAPI_INTERFACE_UE_SIM_H_
9 #define _FAPI_INTERFACE_UE_SIM_H_
12 #define PACK_STRUCT __attribute__((packed)) // Packed compiler instruction.
15 #if defined(__cplusplus)
19 typedef signed char int8_t;
20 typedef unsigned char uint8_t;
21 typedef int16_t int16_t;
22 typedef uint16_t uint16_t;
23 typedef int32_t int32_t;
24 typedef uint32_t uint32_t;
25 #ifdef VZ_VERIPHY_INTEG
26 typedef uint64_t uint64_t;
30 #define FAPI_PARAM_REQUEST 0x00
31 #define FAPI_PARAM_RESPONSE 0x01
32 #define FAPI_CONFIG_REQUEST 0x02
33 #define FAPI_CONFIG_RESPONSE 0x03
34 #define FAPI_START_REQUEST 0x04
36 #define FAPI_START_RESPONSE 0x0108 //Ref: SCF-225
38 #define FAPI_STOP_REQUEST 0x05
39 #define FAPI_STOP_INDICATION 0x06
40 #define FAPI_ERROR_INDICATION 0x07
41 // Reserved 0x08 - 0x7f
42 #define FAPI_DL_TTI_REQUEST 0x80
43 #define FAPI_UL_TTI_REQUEST 0x81
44 #define FAPI_SLOT_INDICATION 0x82
45 #define FAPI_UL_DCI_REQUEST 0x83
46 #define FAPI_TX_DATA_REQUEST 0x84
47 #define FAPI_RX_DATA_INDICATION 0x85
48 #define FAPI_CRC_INDICATION 0x86
49 #define FAPI_UCI_INDICATION 0x87
50 #define FAPI_SRS_INDICATION 0x88
51 #define FAPI_RACH_INDICATION 0x89
52 // Reserved 0x8a -0xff
54 #define FAPI_DL_NODE_SYNC 0x0180 //Ref: SCF-225
55 #define FAPI_UL_NODE_SYNC 0x0181 //Ref: SCF-225
56 #define FAPI_TIMING_INFO 0x0182 //Ref: SCF-225
60 #define FAPI_RELEASE_CAPABILITY_TAG 0x0001
61 #define FAPI_PHY_STATE_TAG 0x0002
62 #define FAPI_SKIP_BLANK_DL_CONFIG_TAG 0x0003
63 #define FAPI_SKIP_BLANK_UL_CONFIG_TAG 0x0004
64 #define FAPI_NUM_CONFIG_TLVS_TO_REPORT_TYPE_TAG 0x0005
65 #define FAPI_CYCLIC_PREFIX_TAG 0x0006
67 #define FAPI_SUPPORTED_SUBCARRIER_SPACING_DL_TAG 0x0007
68 #define FAPI_SUPPORTED_BANDWIDTH_DL_TAG 0x0008
69 #define FAPI_SUPPORTED_SUBCARRIER_SPACING_UL_TAG 0x0009
70 #define FAPI_SUPPORTED_BANDWIDTH_UL_TAG 0x000A
71 #define FAPI_CCE_MAPPING_TYPE_TAG 0x000B
72 #define FAPI_CORESET_OUTSIDE_FIRST_3_OFDM_SYMS_OF_SLOT_TAG 0x000c
73 #define FAPI_PRECODER_GRANULARITY_CORESET_TAG 0x000d
74 #define FAPI_PDCCH_MU_MIMO_TAG 0x000e
75 #define FAPI_PDCCH_PRECODER_CYCLING_TAG 0x000f
76 #define FAPI_MAX_PDCCHS_PER_SLOT_TAG 0x0010
78 #define FAPI_PUCCH_FORMATS_TAG 0x0011
79 #define FAPI_MAX_PUCCHS_PER_SLOT_TAG 0x0012
81 #define FAPI_PDSCH_MAPPING_TYPE_TAG 0x0013
82 #define FAPI_PDSCH_ALLOCATION_TYPES_TAG 0x0014
83 #define FAPI_PDSCH_VRB_TO_PRB_MAPPING_TAG 0x0015
84 #define FAPI_PDSCH_CBG_TAG 0x0016
85 #define FAPI_PDSCH_DMRS_CONFIG_TYPES_TAG 0x0017
86 #define FAPI_PDSCH_DMRS_MAX_LENGTH_TAG 0x0018
87 #define FAPI_PDSCH_DMRS_ADDITIONAL_POS_TAG 0x0019
88 #define FAPI_MAX_PDSCHS_TBS_PER_SLOT_TAG 0x001a
89 #define FAPI_MAX_NUMBER_MIMO_LAYERS_PDSCH_TAG 0x001b
90 #define FAPI_SUPPORTED_MAX_MODULATION_ORDER_DL_TAG 0x001c
91 #define FAPI_MAX_MU_MIMO_USERS_DL_TAG 0x001d
92 #define FAPI_PDSCH_DATA_IN_DMRS_SYMBOLS_TAG 0x001e
93 #define FAPI_PREMPTIONSUPPORT_TAG 0x001f
94 #define FAPI_PDSCH_NON_SLOT_SUPPORT_TAG 0x0020
96 #define FAPI_UCI_MUX_ULSCH_IN_PUSCH_TAG 0x0021
97 #define FAPI_UCI_ONLY_PUSCH_TAG 0x0022
98 #define FAPI_PUSCH_FREQUENCY_HOPPING_TAG 0x0023
99 #define FAPI_PUSCH_DMRS_CONFIG_TYPES_TAG 0x0024
100 #define FAPI_PUSCH_DMRS_MAX_LEN_TAG 0x0025
101 #define FAPI_PUSCH_DMRS_ADDITIONAL_POS_TAG 0x0026
102 #define FAPI_PUSCH_CBG_TAG 0x0027
103 #define FAPI_PUSCH_MAPPING_TYPE_TAG 0x0028
104 #define FAPI_PUSCH_ALLOCATION_TYPES_TAG 0x0029
105 #define FAPI_PUSCH_VRB_TO_PRB_MAPPING_TAG 0x002a
106 #define FAPI_PUSCH_MAX_PTRS_PORTS_TAG 0x002b
107 #define FAPI_MAX_PDUSCHS_TBS_PER_SLOT_TAG 0x002c
108 #define FAPI_MAX_NUMBER_MIMO_LAYERS_NON_CB_PUSCH_TAG 0x002d
109 #define FAPI_SUPPORTED_MODULATION_ORDER_UL_TAG 0x002e
110 #define FAPI_MAX_MU_MIMO_USERS_UL_TAG 0x002f
111 #define FAPI_DFTS_OFDM_SUPPORT_TAG 0x0030
112 #define FAPI_PUSCH_AGGREGATION_FACTOR_TAG 0x0031
114 #define FAPI_PRACH_LONG_FORMATS_TAG 0x0032
115 #define FAPI_PRACH_SHORT_FORMATS_TAG 0x0033
116 #define FAPI_PRACH_RESTRICTED_SETS_TAG 0x0034
117 #define FAPI_MAX_PRACH_FD_OCCASIONS_IN_A_SLOT_TAG 0x0035
118 // Measurement Parameters
119 #define FAPI_RSSI_MEASUREMENT_SUPPORT_TAG 0x0036
121 // CONFIG TLV TAGS per 5G FAPI
122 #ifdef FAPI_222_10_03
124 #define FAPI_PHY_PROFILE_ID_TAG 0x102a
125 #define FAPI_INDICATION_INSTANCES_PER_SLOT_TAG 0x102b
126 #define FAPI_REQUEST_INSTANCES_PER_SLOT_TAG 0x102c
127 // Carrier Configuration
128 #define FAPI_CARRIER_CONFIGURATION_TAG 0x102d
130 #define FAPI_DL_BANDWIDTH_TAG 0x1001
131 #define FAPI_DL_FREQUENCY_TAG 0x1002
132 #define FAPI_DL_K0_TAG 0x1003
133 #define FAPI_DL_GRIDSIZE_TAG 0x1004
134 #define FAPI_NUM_TX_ANT_TAG 0x1005
135 #define FAPI_UPLINK_BANDWIDTH_TAG 0x1006
136 #define FAPI_UPLINK_FREQUENCY_TAG 0x1007
137 #define FAPI_UL_K0_TAG 0x1008
138 #define FAPI_UL_GRID_SIZE_TAG 0x1009
139 #define FAPI_NUM_RX_ANT_TAG 0x100a
140 #define FAPI_FREQUENCY_SHIFT_7P5_KHZ_TAG 0x100b
142 // Cell Configuration
143 #define FAPI_PHY_CELL_ID_TAG 0x100c
144 #define FAPI_FRAME_DUPLEX_TYPE_TAG 0x100d
145 #ifdef FAPI_222_10_03
146 #define FAPI_PDSCH_TRANS_TYPE_VALIDITY_TAG 0x102e
147 #define FAPI_PUSCH_TRANS_TYPE_VALIDITY_TAG 0x102f
150 #define FAPI_SS_PBCH_POWER_TAG 0x100e
151 #ifdef FAPI_222_10_03
152 #define FAPI_SS_PBCH_BLOCK_POWER_SCALING_TAG 0x1030
153 #define FAPI_BCH_PAYLOAD_FLAG_TAG 0x100f
155 #define FAPI_BCH_PAYLOAD_TAG 0x100f
156 #define FAPI_SCS_COMMON_TAG 0x1010
158 // PRACH Configuration
159 #ifdef FAPI_222_10_03
160 #define FAPI_PRACH_CONFIGURATION_TAG 0x1031
162 #define FAPI_PRACH_SEQUENCE_LENGTH_TAG 0x1011
163 #define FAPI_PRACH_SUBC_SPACING_TAG 0x1012
164 #define FAPI_RESTRICTED_SET_CONFIG_TAG 0x1013
165 #define FAPI_NUM_PRACH_FD_OCCASIONS_TAG 0x1014
166 #define FAPI_PRACH_ROOT_SEQUENCE_INDEX_TAG 0x1015
167 #define FAPI_NUM_ROOT_SEQUENCES_TAG 0x1016
168 #define FAPI_K1_TAG 0x1017
169 #define FAPI_PRACH_ZERO_CORR_CONF_TAG 0x1018
170 #define FAPI_NUM_UNUSED_ROOT_SEQUENCES_TAG 0x1019
171 #define FAPI_UNUSED_ROOT_SEQUENCES_TAG 0x101a
172 #define FAPI_SSB_PER_RACH_TAG 0x101b
173 #define FAPI_PRACH_MULTIPLE_CARRIERS_IN_A_BAND_TAG 0x101c
175 #ifdef FAPI_222_10_03
176 //Multi PRACH Configurations
177 #define FAPI_MULTI_PRACH_CONFIGURATION_TAG 0x1032
179 #define FAPI_SSB_RESOURCE_CONFIGURATION_TAG 0x1033
181 #define FAPI_SSB_OFFSET_POINT_A_TAG 0x101d
182 #define FAPI_BETA_PSS_TAG 0x101e
183 #define FAPI_SSB_PERIOD_TAG 0x101f
184 #define FAPI_SSB_SUBCARRIER_OFFSET_TAG 0x1020
185 #define FAPI_MIB_TAG 0x1021
186 #define FAPI_SSB_MASK_TAG 0x1022
187 #define FAPI_BEAM_ID_TAG 0x1023
188 #define FAPI_SS_PBCH_MULTIPLE_CARRIERS_IN_A_BAND_TAG 0x1024
189 #define FAPI_MULTIPLE_CELLS_SS_PBCH_IN_A_CARRIER_TAG 0x1025
192 #ifdef FAPI_222_10_03
193 //Multi SSB Resource Configurations
194 #define FAPI_MULTI_SSB_RESOURCE_CONFIGURATION_TAG 0x1034
197 #define FAPI_TDD_PERIOD_TAG 0x1035
199 #define FAPI_TDD_PERIOD_TAG 0x1026
200 #define FAPI_SLOT_CONFIG_TAG 0x1027
202 // Measurement Configuration
203 #define FAPI_RSSI_MESUREMENT_TAG 0x1028
204 #define FAPI_PRACH_CONFIG_INDEX_TAG 0x1029
205 #ifdef FAPI_222_10_03
207 #define FAPI_UCI_CONFIGURATION_TAG 0x1036
208 // PRB-Symbol Rate Match Patterns
209 #define FAPI_PRB_SYMBOL_RATE_MATCH_PATTERN_TAG 0x0137
210 // LTE-CRS Rate Match Pattern
211 #define FAPI_LTE_CRS_RATE_MATCH_PATTERN_TAG 0x0138
212 // PUCCH semi-static configuration
213 #define FAPI_PUCCH_SEMI_STATIC_CONFIG_TAG 0x1039
214 // PDSCH Semi-Static Configuration
215 #define FAPI_PDSCH_CBG_SCHEME 0x103a
216 // Delay Management Configuration
217 #define FAPI_TIMING_WINDOW_TAG 0x011e
218 #define FAPI_TIMING_INFO_MODE_TAG 0x011f
219 #define FAPI_TIMING_INFO_PERIOD_TAG 0x0120
221 //Rel-16 mTRP Configurations
222 #define FAPI_NUM_TX_PORTS_TRP1_TAG 0x103b
223 #define FAPI_NUM_RX_PORTS_TRP1_TAG 0x103c
225 //Vendor Specific Tags
226 #define FAPI_NUM_DIG_BEAMS 0xA000
227 #define FAPI_NUM_TX_RUS 0xA001
228 #define FAPI_BEAM_IDX 0xA002
229 #define FAPI_DIG_BEAM_WEIGHT_RE 0xA003
230 #define FAPI_DIG_BEAM_WEIGHT_IM 0xA004
231 #define FAPI_PM_IDX 0xA005
232 #define FAPI_NUM_LAYERS 0xA006
233 #define FAPI_NUM_ANT_PORTS 0xA007
234 #define FAPI_PRECODER_WEIGHT_RE 0xA008
235 #define FAPI_PRECODER_WEIGHT_IM 0xA009
236 // Error Codes updated per 5G FAPI Table 3-31
237 #define FAPI_MSG_OK 0x0
238 #define FAPI_MSG_INVALID_STATE 0x1
239 #define FAPI_MSG_INVALID_CONFIG 0x2
240 #define FAPI_MSG_SFN_OUT_OF_SYNC 0x3
241 #define FAPI_MSG_SLOT_ERR 0x4
242 #define FAPI_MSG_BCH_MISSING 0x5
243 #define FAPI_MSG_INVALID_SFN 0x6
244 #define FAPI_MSG_UL_DCI_ERR 0x7
245 #define FAPI_MSG_TX_ERR 0x8
246 #ifdef FAPI_222_10_03
247 #define MSG_INVALID_PHY_ID 0x9
248 #define MSG_UNINSTANTIATED_PHY 0xA
249 #define MSG_INVALID_DFE_Profile 0xB
250 #define PHY_Profile_Selection_incompatible 0xC
252 #define FAPI_MAX_NUM_CW 1
253 #define FAPI_MAX_FREQ_DOMAIN_RES 6
255 #ifdef FAPI_222_10_03
256 #define FAPI_PROTOCOLVERSION_TAG 0X0037
257 #define FAPI_POWER_PROFILES_SUPPORTED_TAG 0X0038
258 #define FAPI_MAXNUMPDUS_INDL_TTI_TAG 0X0039
259 #define FAPI_MAXNUMPDUS_INUL_TTI_TAG 0X003A
260 #define FAPI_MAXNUMPDUS_INUL_DCI_TAG 0X003B
261 #define FAPI_SSPBCH_MULTIPLE_CARRIERS_IN_A_BAND_TAG 0x003C
262 #define FAPI_MULTIPLE_CELLS_SSPBCH_IN_A_CARRIER_TAG 0x003D
263 #define FAPI_PUCCHGROUP_AND_SEQUENCE_HOPPING_TAG 0x003E
264 #define FAPI_MAXNUM_UlBWPIDS_TAG 0x003F
265 #define FAPI_PUCCH_AGGREGATION_TAG 0x0040
266 #define FAPI_SSB_RATE_MATCH_TAG 0x0041
267 #define FAPI_SUPPORTED_RATE_MATCH_PATTERN_TYPE_TAG 0x0042
268 #define FAPI_PDCCH_RATE_MATCH_TAG 0x0043
269 #define FAPI_NUM_OF_RATE_MATCH_PATTERNLTECRCPERSLOT_TAG 0x0044
270 #define FAPI_NUMOFRATE_MATCH_PATTERN_LTECRC_INPHY_TAG 0x0045
271 #define FAPI_CSI_RS_RATE_MATCH_TAG 0x0046
272 #define FAPI_PDSCH_TRANS_TYPE_SUPPORT_TAG 0x0047
273 #define FAPI_PDSCH_MAC_PDU_BIT_ALIGNMENT_TAG 0x0048
274 #define FAPI_MAX_NUMBER_MIMO_LAYERS_CB_PUSCH_TAG 0x0049
275 #define FAPI_PUSCH_LBRM_SUPPORT_TAG 0x004A
276 #define FAPI_PUSCH_TRANS_TYPE_SUPPORT_TAG 0x004B
277 #define FAPI_PUSCH_MAC_PDU_BIT_ALIGNMENT_TAG 0x004C
278 #define FAPI_MAXNUM_PRACH_CONFIGURATIONS_TAG 0x004D
279 #define FAPI_PRACH_MULTIPLE_CARRIERS_IN_A_Band_TAG 0x004E
280 #define FAPI_MAX_NUM_UCIMAPS_TAG 0x004F
281 #define FAPI_CAPABILITY_VALIDITY_TAG 0x0050
282 #define FAPI_PHY_PARAMS_TAG 0x0051
283 #define FAPI_TIME_MANAGEMENT_TAG 0x0052
284 #define FAPI_PHY_PROTOCOL_VERSION_TAG 0x0053
285 #define FAPI_DFE_PROFILE_TAG 0x0054
286 #define FAPI_MORE_THAN_ONE_INDICATION_PER_SLOT_TAG 0x0055
287 #define FAPI_MORE_THAN_ONE_REQUEST_PER_SLOT_TAG 0x0056
288 #define FAPI_MTRP_SUPPORT_TAG 0x0057
289 #define FAPI_DL_TTI_TIMING_OFFSET_TAG 0X0106
290 #define FAPI_UL_TTI_TIMING_OFFSET_TAG 0X0107
291 #define FAPI_UL_DCI_TIMING_OFFSET_TAG 0X0108
292 #define FAPI_TX_DATA_TIMING_OFFSET_TAG 0X0109
294 // TODO : Work out what the correct maximums should be// Needs Review for 5G
296 // Number of UL/DL configurations, I, as defined by 36.212 section 5.3.3.1.4
297 // todo : work out what the max is
298 #define FAPI_MAX_UL_DL_CONFIGURATIONS 4
299 #define FAPI_MAX_NUM_PHYSICAL_ANTENNAS 4
300 #define FAPI_MAX_NUM_SCHEDULED_UES 8
301 #define FAPI_MAX_NUM_SUBBANDS 8
302 #define FAPI_MAX_ANTENNA_PORT_COUNT 2
305 // 5G FAPI Definitions
306 #define NUMEROLOGIES 5
307 #define MAX_NUM_UNUSED_ROOT_SEQUENCES 63 // 38.331 page 383
308 #define MAX_NUM_PRACH_FD_OCCASIONS 64 // 38.331 page 383
309 #define MAX_NUM_OF_SYMBOLS_PER_SLOT 14
310 #define MAX_TDD_PERIODICITY 160// 38.212 11.1 for u = 4 and P=10 ms
311 #define MAX_NUMBER_TX_RUS 4 // m = p*q with p number of panels and q number of TxRU/RxRU per panel, depends on
312 // the RF configuration, currently n = m = 4, q = 1, p = 4 and k = 21 (number of beams per pannel). n number of antenna ports
313 #define MAX_NUMBER_OF_BEAMS 64 // Intel API Page 27
314 #define MAX_NUM_ANT_PORTS 8 // Based on current RF
315 #define MAX_NUM_LAYERS 8 // 38.211 Table 7.3.1.3-1
316 #ifdef VZ_VERIPHY_INTEG
317 #define MAX_NUM_TLVS_CELL_CONFIG 46 // 5G FAPI Table 3-9 (A)
319 #define MAX_NUM_TLVS_CELL_CONFIG 2 // 5G FAPI Table 3-9 (A)
321 #define MAX_NUM_TLVS_CARRIER_CONFIG 27 // 5G FAPI Table 3-10 (B)
322 #define MAX_NUM_TLVS_PDCCH_CONFIG 6 // 5G FAPI Table 3-11 (C)
323 #define MAX_NUM_TLVS_PUCCH_CONFIG 2 // 5G FAPI Table 3-12 (D)
324 #define MAX_NUM_TLVS_PDSCH_CONFIG 14 // 5G FAPI Table 3-13 (E)
325 #define MAX_NUM_TLVS_PUSCH_CONFIG 17 // 5G FAPI Table 3-14 (F)
326 #define MAX_NUM_TLVS_PRACH_CONFIG 4 // 5G FAPI Table 3-15 (G)
327 #define MAX_NUM_TLVS_MEAS_CONFIG 1 // 5G FAPI Table 3-16 (H)
328 #ifdef VZ_VERIPHY_INTEG
329 #define MAX_NUM_TLVS_CONFIG 117 // A+B+C+D+E+F+G+H + Padding
331 #define MAX_NUM_TLVS_CONFIG 74 // A+B+C+D+E+F+G+H + Padding
333 #define MAX_NUMBER_UNSUPPORTED_TLVS 74
334 #define MAX_NUMBER_OF_INVALID_IDLE_ONLY_TLVS 74
335 #define MAX_NUMBER_OF_INVALID_RUNNING_ONLY_TLVS 74
336 #define MAX_NUMBER_OF_MISSING_TLVS 74
337 #define MAX_NUM_DIGBFINTERFACES 4 // Based on RF, 5G FAPI says {0, 255}
338 #define MAX_NUM_PRGS_PER_TTI 4 // Based on 38.214 5.1.2.3
339 #define DCI_PAYLOAD_BYTE_LEN 32 // Based on Intel API MAX_DCI_BIT_BYTE_LEN
340 #define MAX_NUMBER_DL_DCI 32 // Based on Intel API MAX_NUM_PDCCH
341 #define MAX_NUMBER_OF_CODEWORDS_PER_PDU 2 // Based on MAX_DL_CODEWORD
342 #define MAX_NUMBER_DL_PDUS_PER_TTI 129 // Based on (MAX_NUM_PDSCH*MAX_DL_CODEWORD + MAX_NUM_PDCCH + MAX_NUM_SRS + 1 PBCH/SLOT)
343 #define MAX_NUMBER_OF_UES_PER_TTI 16 // Per common_ran_parameters.h
344 #define MAX_NUM_CB_PER_TTI_IN_BYTES 192 // Based on Max Tb size of 1376264 bits + 24 crc over (8848-24) and O/H
345 #define MAX_NUM_PTRS_PORTS 12 // Per 3GPP 38.212 Table 7.3.1.1.2-21
346 #define MAX_NUMBER_OF_GROUPS_PER_TTI 8 // FlexRAN API Table 33
347 #define MAX_NUMBER_UL_PDUS_PER_TTI 328 // (MAX_NUM_PUSCH+MAX_NUM_PUCCH+MAX_NUM_SRS+MAX_NUM_PRACH_DET)
348 #define MAX_NUMBER_DCI_PDUS_PER_TTI 32 // Based on MAX_NUM_PDCCH
349 #define MAX_NUMBER_OF_TLVS_PER_PDU 32 // Based on FAPI/nFAPI implementation
350 #define MAX_NUMBER_TX_PDUS_PER_TTI 129 // Same as MAX_NUMBER_DL_PDUS_PER_TTI
351 #define MAX_PDU_LENGTH 172096 // Based on 38.214 5.1.3.4, the TBS is 1376264 bits and divided by 8 and aligned to 64 bytes
352 #define MAX_NUMBER_OF_PDUS_PER_TTI 129 // Same as MAX_NUMBER_DL_PDUS_PER_TTI
353 #define MAX_NUMBER_OF_ULSCH_PDUS_PER_TTI 64 // NUM_PUSCH_CHAN*MAX_NUMBER_OF_CODEWORDS_PER_PDU
354 #define MAX_NUMBER_OF_CRCS_PER_SLOT 32 // Based on MAX_NUM_UL_CHAN
355 #define MAX_HARQ_INFO_LEN_BYTES 214 // Based on 5G FAPI Table 3-70
356 #define MAX_CSI_PART1_DATA_BYTES 214 // Based on 5G FAPI Table 3-71
357 #define MAX_CSI_PART2_DATA_BYTES 214 // Based on 5G FAPI Table 3-72
358 #define MAX_NUMBER_OF_HARQS_PER_IND 2 // Based on 5G FAPI Table 3-68
359 #define MAX_SR_PAYLOAD_SIZE 1 // Based on 5G FAPI Table 3-69
360 #define MAX_HARQ_PAYLOAD_SIZE 214 // Based on 5G FAPI Table 3-70
361 #define MAX_NUMBER_UCI_PDUS_PER_SLOT 200 // Based on MAX_NUM_PUCCH
362 #define MAX_NUMBER_RBS 273 // Based on MAX_NUM_OF_PRB_IN_FULL_BAND
363 #define MAX_NUMBER_OF_REP_SYMBOLS 4 // Based on 5g FAPI Table 3-73
364 #define MAX_NUMBER_SRS_PDUS_PER_SLOT 32 // Based on MAX_NUM_SRS
365 #define MAX_NUM_PREAMBLES_PER_SLOT 64 // Based on MAX_NUM_PRACH_DET
366 #define MAX_NUMBER_RACH_PDUS_PER_SLOT 64 // Based on MAX_NUM_PRACH_DET
367 #define TA_AVG_TIME 32
368 #define TA_AVG_TIMElog2 5
369 #ifdef FAPI_222_10_03
370 #define MAX_NDLTYPES_DL_TTI_REQ 5
371 #define MAX_NDLTYPES_UL_DCI_REQ 2
372 #define MAX_SIGNAL_INDEX 7
373 #define MAX_NUM_UL_TYPES 5
376 typedef enum nr_ssb_periodicity
378 FAPI_NR_SSB_PERIODICITY_5MS,
379 FAPI_NR_SSB_PERIODICITY_10MS,
380 FAPI_NR_SSB_PERIODICITY_20MS,
381 FAPI_NR_SSB_PERIODICITY_40MS,
382 FAPI_NR_SSB_PERIODICITY_80MS,
383 FAPI_NR_SSB_PERIODICITY_160MS
385 } nr_ssb_periodicity_t;
387 // Updated per 5G FAPI
388 typedef struct PACK_STRUCT fapi_msg
390 uint16_t message_type_id;
391 uint32_t length; // Length of the message body in bytes
393 // Updated per 5G FAPI
394 typedef struct PACK_STRUCT fapi_msg_header
396 uint8_t numberOfMessagesIncluded;
397 uint8_t handle; // Can be used for Phy Id or Carrier Id
398 fapi_msg_t_ue_sim msg_details;
399 } fapi_msg_header_t_ue_sim;
400 // Updated per 5G FAPI
401 typedef struct PACK_STRUCT fapi_tl
406 // Updated per 5G FAPI
407 typedef struct PACK_STRUCT fapi_uint8_tlv
411 #ifdef VZ_VERIPHY_INTEG
414 } fapi_uint8_tlv_t_ue_sim;
415 // Updated per 5G FAPI
416 typedef struct PACK_STRUCT fapi_uint16_tlv
420 #ifdef VZ_VERIPHY_INTEG
423 } fapi_uint16_tlv_t_ue_sim;
424 // Updated per 5G FAPI
425 typedef struct PACK_STRUCT fapi_int16_tlv
429 #ifdef VZ_VERIPHY_INTEG
432 } fapi_int16_tlv_t_ue_sim;
433 // Updated per 5G FAPI
434 typedef struct PACK_STRUCT fapi_uint32_tlv
438 } fapi_uint32_tlv_t_ue_sim;
439 // Updated per 5G FAPI
440 typedef struct PACK_STRUCT fapi_tx_dat_tlv
443 //Currently DU is not supporting more than 1 TLVs. So length type changed to uint32_t as per DU team. To be modified once it is resolved.
445 #ifdef VZ_VERIPHY_INTEG
446 uint64_t valueOrOffset; // TLV with unsigned 32 bit value
453 // Updated per 5G FAPI
454 typedef struct PACK_STRUCT fapi_config_tlv
456 uint16_t tag; // In 5G FAPI for Cell Params
459 } fapi_config_tlv_t_ue_sim;
461 #ifdef VZ_VERIPHY_INTEG
462 // Updated per 5G FAPI
465 uint16_t value[NUMEROLOGIES];
466 uint16_t rsv; // To be 32-bit aligned, if FAPI_NUMEROLOGIES changes to some other value than 5 please ensure 32 bit alignment
467 } fapi_config_num_tlv_t;
470 // Updated per 5G FAPI
471 typedef struct PACK_STRUCT fapi_param_req
473 fapi_msg_header_t_ue_sim header; // For PARAM.req message length in fapi_msg_t_ue_sim is zero
474 #ifdef FAPI_222_10_03
475 fapi_uint8_tlv_t_ue_sim protocolVersion;
477 } fapi_param_req_t_ue_sim;
479 #ifdef FAPI_222_10_03
480 typedef struct PACK_STRUCT fapi_signal_index
483 int16_t powerOffsetMin;
484 int16_t powerOffsetMax;
485 } fapi_signal_index_t;
487 // Updated per 5G FAPI
488 typedef struct PACK_STRUCT fapi_cell_params
490 fapi_uint16_tlv_t_ue_sim releaseCapability;
491 fapi_uint16_tlv_t_ue_sim phyState;
492 fapi_uint8_tlv_t_ue_sim skipBlankDlConfig;
493 fapi_uint8_tlv_t_ue_sim skipBlankUlConfig;
494 fapi_uint16_tlv_t_ue_sim numTlvsToReport;
495 //fapi_param_tlv_t tlvStatus[MAX_NUMBER_OF_CONFIG_PARMS]; // Need to define this value based on 5G FAPI
496 #ifdef FAPI_222_10_03
497 fapi_uint8_tlv_t_ue_sim powerProfilesSupported;
498 fapi_signal_index_t signalIndex[MAX_SIGNAL_INDEX];
499 fapi_uint16_tlv_t_ue_sim maxNumPDUsInDL_TTI;
500 fapi_uint16_tlv_t_ue_sim maxNumPDUsInUL_TTI;
501 fapi_uint16_tlv_t_ue_sim maxNumPDUsInUL_DCI;
503 } fapi_cell_parms_t_ue_sim;
505 // Updated per 5G FAPI
506 typedef struct PACK_STRUCT fapi_carrier_parms
508 fapi_uint8_tlv_t_ue_sim cyclicPrefix;
509 fapi_uint8_tlv_t_ue_sim supportedSubcarrierSpacingDl;
510 fapi_uint16_tlv_t_ue_sim supportedBandwidthDl;
511 fapi_uint8_tlv_t_ue_sim supportedSubcarrierSpecingsUl;
512 fapi_uint16_tlv_t_ue_sim supportedBandwidthUl;
513 #ifdef FAPI_222_10_03
514 fapi_uint8_tlv_t_ue_sim ssPbchMultipleCarriersInABand;
515 fapi_uint8_tlv_t_ue_sim multipleCellsSsPbchInACarrier;
517 } fapi_carrier_parms_t_ue_sim;
519 // Updated per 5G FAPI
520 typedef struct PACK_STRUCT fapi_pdcch_parms
522 fapi_uint8_tlv_t_ue_sim cceMappingType;
523 fapi_uint8_tlv_t_ue_sim coresetOutsideFirst3OfdmSymsOfSlot;
524 fapi_uint8_tlv_t_ue_sim precoderGranularityCoreset;
525 fapi_uint8_tlv_t_ue_sim pdcchMuMimo;
526 fapi_uint8_tlv_t_ue_sim pdcchPrecoderCycling;
527 fapi_uint8_tlv_t_ue_sim maxPdcchsPerSlot;
528 } fapi_pdcch_parms_t_ue_sim;
530 // Updated per 5G FAPI
531 typedef struct PACK_STRUCT fapi_pucch_parms
533 fapi_uint8_tlv_t_ue_sim pucchFormats;
534 fapi_uint8_tlv_t_ue_sim maxPucchsPerSlot;
535 #ifdef FAPI_222_10_03
536 fapi_uint8_tlv_t_ue_sim pucchGroupAndSequenceHopping;
537 fapi_uint8_tlv_t_ue_sim maxNumUlBwpIds;
538 fapi_uint8_tlv_t_ue_sim pucchAggregation;
540 } fapi_pucch_parms_t_ue_sim;
542 // Updated per 5G FAPI
543 typedef struct PACK_STRUCT fapi_pdsch_parms
545 fapi_uint8_tlv_t_ue_sim pdschMappingType;
546 fapi_uint8_tlv_t_ue_sim pdschAllocationTypes;
547 fapi_uint8_tlv_t_ue_sim pdschVrbToPrbMapping;
548 fapi_uint8_tlv_t_ue_sim pdschCbg;
549 fapi_uint8_tlv_t_ue_sim pdschDmrsConfigTypes;
550 fapi_uint8_tlv_t_ue_sim pdschDmrsMaxLength;
551 fapi_uint8_tlv_t_ue_sim pdschDmrsAdditionalPos;
552 fapi_uint8_tlv_t_ue_sim maxPdschsTBsPerSlot;
553 fapi_uint8_tlv_t_ue_sim maxNumberMimoLayersPdsch;
554 fapi_uint8_tlv_t_ue_sim supportedMaxModulationOrderDl;
555 fapi_uint8_tlv_t_ue_sim maxMuMimoUsersDl;
556 fapi_uint8_tlv_t_ue_sim pdschDataInDmrsSymbols;
557 fapi_uint8_tlv_t_ue_sim premptionSupport;
558 fapi_uint8_tlv_t_ue_sim pdschNonSlotSupport;
559 #ifdef FAPI_222_10_03
560 fapi_uint8_tlv_t_ue_sim ssbRateMatch;
561 fapi_uint8_tlv_t_ue_sim supportedRateMatchPatternType;
562 fapi_uint8_tlv_t_ue_sim pdcchRateMatch;
563 fapi_uint8_tlv_t_ue_sim numOfRateMatchPatternLTECrsPerSlot;
564 fapi_uint8_tlv_t_ue_sim numOfRateMatchPatternLTECrsInPhy;
565 fapi_uint8_tlv_t_ue_sim csiRsRateMatch;
566 fapi_uint8_tlv_t_ue_sim pdschTransTypeSupport;
567 fapi_uint8_tlv_t_ue_sim pdschMacPduBitAlignment;
569 } fapi_pdsch_parms_t_ue_sim;
571 // Updated per 5G FAPI
572 typedef struct PACK_STRUCT fapi_pusch_parms
574 fapi_uint8_tlv_t_ue_sim uciMuxUlschInPusch;
575 fapi_uint8_tlv_t_ue_sim uciOnlyPusch;
576 fapi_uint8_tlv_t_ue_sim puschFrequencyHopping;
577 fapi_uint8_tlv_t_ue_sim puschDmrsConfigTypes;
578 fapi_uint8_tlv_t_ue_sim puschDmrsMaxLen;
579 fapi_uint8_tlv_t_ue_sim puschDmrsAditionalPos;
580 fapi_uint8_tlv_t_ue_sim puschCbg;
581 fapi_uint8_tlv_t_ue_sim puschMappingType;
582 fapi_uint8_tlv_t_ue_sim puschAllocationTypes;
583 fapi_uint8_tlv_t_ue_sim puschVrbToPrbMapping;
584 fapi_uint8_tlv_t_ue_sim puschMaxPtrsPorts;
585 fapi_uint8_tlv_t_ue_sim maxPduschsTBsPerSlot;
586 fapi_uint8_tlv_t_ue_sim maxNumberMimoLayersnonCbPusch;
587 #ifdef FAPI_222_10_03
588 fapi_uint8_tlv_t_ue_sim maxNumberMimoLayersCbPusch;
590 fapi_uint8_tlv_t_ue_sim supportedModulationOrderUl;
591 fapi_uint8_tlv_t_ue_sim maxMuMimoUsersUl;
592 fapi_uint8_tlv_t_ue_sim dftsOfdmSupport;
593 fapi_uint8_tlv_t_ue_sim puschAggregationFactor;
594 #ifdef FAPI_222_10_03
595 fapi_uint8_tlv_t_ue_sim puschLbrmSupport;
596 fapi_uint8_tlv_t_ue_sim puschTransTypeSupport;
597 fapi_uint8_tlv_t_ue_sim puschMacPduBitAlignment;
599 }fapi_pusch_parms_t_ue_sim;
601 // Updated per 5G FAPI
602 typedef struct PACK_STRUCT fapi_prach_parms
604 fapi_uint8_tlv_t_ue_sim prachLongFormats;
605 fapi_uint8_tlv_t_ue_sim prachShortFormats;
606 fapi_uint8_tlv_t_ue_sim prachRestrictedSets;
607 fapi_uint8_tlv_t_ue_sim maxPrachFdOccasionsInASlot;
608 #ifdef FAPI_222_10_03
609 fapi_uint16_tlv_t_ue_sim maxNumPrachConfigurations;
610 fapi_uint8_tlv_t_ue_sim prachMultipleCarriersInABand;
612 }fapi_prach_parms_t_ue_sim;
614 // Updated per 5G FAPI
615 typedef struct PACK_STRUCT fapi_meas_parms
617 fapi_uint8_tlv_t_ue_sim rssiMeasurementSupport;
618 } fapi_meas_parms_t_ue_sim;
619 #ifdef FAPI_222_10_03
620 typedef struct PACK_STRUCT fapi_uci_parms
622 fapi_uint16_tlv_t_ue_sim maxNumUciMaps;
624 typedef struct PACK_STRUCT fapi_capability
626 uint16_t capabilityTag;
627 uint8_t validityScope;
629 typedef struct PACK_STRUCT fapi_capability_validity
631 fapi_tl_t_ue_sim fapi_capability_validity;
632 uint16_t numCapabilities;
633 fapi_capability_t capability[];
634 } fapi_capability_validity_t;
635 typedef struct PACK_STRUCT fapi_phy_port
637 uint8_t numDlPortRanges; /* Number of DL port ranges for this PHYs */
638 uint16_t dlPortRangeStart[0]; /* Start of each range of DL ports, depends on Number of DL port ranges for this PHYs*/
639 uint16_t dlPortRangeLen[0];
640 uint8_t numUlPortRanges;
641 uint16_t ulPortRangeStart[0];
642 uint16_t ulPortRangeLen[0];
644 typedef struct PACK_STRUCT fapi_phy_profile
647 fapi_phy_port_t phy_port[0];
649 typedef struct PACK_STRUCT fapi_phy_parms
651 fapi_tl_t_ue_sim phySupport;
652 uint16_t numPhyProfiles;
653 uint16_t numDlBbPorts;
654 uint16_t numUlBbPorts;
655 fapi_phy_profile_t phyProfiles[0];
656 fapi_uint8_tlv_t_ue_sim timeManagement;
657 fapi_tl_t_ue_sim protocolVersion;
658 uint8_t phyFapiProtocolVersion;
659 uint8_t phyFapiNegotiatedProtocolVersion;
660 fapi_uint8_tlv_t_ue_sim moreThanOneIndicationPerSlot[6];
661 fapi_uint8_tlv_t_ue_sim moreThanOneRequestPerSlot[4];
663 typedef struct PACK_STRUCT fapi_dfe_profile
665 fapi_tl_t_ue_sim dfe_profile;
666 uint16_t numPhyProfiles;
667 uint16_t numDfeProfiles;
668 uint8_t profileValidityMap;
670 typedef struct PACK_STRUCT fapi_delay_management_parms
672 fapi_uint32_tlv_t_ue_sim dl_tti_timing_offset;
673 fapi_uint32_tlv_t_ue_sim ul_tti_timing_offset;
674 fapi_uint32_tlv_t_ue_sim ul_dci_timing_offset;
675 fapi_uint32_tlv_t_ue_sim tx_data_timing_offset;
676 fapi_uint16_tlv_t_ue_sim timing_window;
677 fapi_uint8_tlv_t_ue_sim timing_info_period;
678 }fapi_delay_management_parms_t;
679 typedef struct PACK_STRUCT fapi_rel16_mTRP_parameters
681 fapi_uint32_tlv_t_ue_sim mTRP_Support;
682 }fapi_rel16_mTRP_parameters_t;
684 // Updated per 5G FAPI
685 typedef struct PACK_STRUCT fapi_params
687 fapi_cell_parms_t_ue_sim cellParms;
688 fapi_carrier_parms_t_ue_sim carrParms;
689 fapi_pdcch_parms_t_ue_sim pdcchParms;
690 fapi_pucch_parms_t_ue_sim pucchParms;
691 fapi_pdsch_parms_t_ue_sim pdschParms;
692 fapi_pusch_parms_t_ue_sim puschParms;
693 fapi_prach_parms_t_ue_sim prachParms;
694 fapi_meas_parms_t_ue_sim measParms;
695 #ifdef FAPI_222_10_03
696 fapi_uci_parms_t uciParms;
697 fapi_capability_validity_t capabilityValidity;
698 fapi_phy_support_t phySupport;
699 fapi_dfe_profile_t dfeProfile;
700 fapi_delay_management_parms_t delayManagementParms;
701 fapi_rel16_mTRP_parameters_t rel16mTRPParameters;
703 } fapi_params_t_ue_sim;
705 // Updated per 5G FAPI
706 typedef struct PACK_STRUCT fapi_param_resp
708 fapi_msg_header_t_ue_sim header;
710 uint8_t number_of_tlvs;
711 fapi_uint16_tlv_t_ue_sim tlvs[MAX_NUM_TLVS_CONFIG];
712 } fapi_param_resp_t_ue_sim;
714 // Updated per 5G FAPI
715 #ifdef FAPI_222_10_03
716 typedef struct PACK_STRUCT fapi_phy_config
718 fapi_uint16_tlv_t_ue_sim phyProfileId;
719 fapi_uint8_tlv_t_ue_sim indicationInstancePerSlot[6];
720 fapi_uint8_tlv_t_ue_sim requestInstancePerSlot[4];
723 // Updated per 5G FAPI
724 #ifdef FAPI_222_10_03
725 typedef struct PACK_STRUCT fapi_carrier_config
727 fapi_tl_t_ue_sim carrierConfig;
728 uint16_t dlBandwidth;
729 uint32_t dlFrequency;
730 #ifdef VZ_VERIPHY_INTEG
731 fapi_config_num_tlv_t dlk0;
732 fapi_config_num_tlv_t dlGridSize;
734 uint16_t dlk0[NUMEROLOGIES];
735 uint16_t dlGridSize[NUMEROLOGIES];
738 uint16_t uplinkBandwidth;
739 uint32_t uplinkFrequency;
740 #ifdef VZ_VERIPHY_INTEG
741 fapi_config_num_tlv_t ulk0;
742 fapi_config_num_tlv_t ulGridSize;
744 uint16_t ulk0[NUMEROLOGIES];
745 uint16_t ulGridSize[NUMEROLOGIES];
748 uint8_t frequencyShift7p5KHz;
749 uint8_t powerProfile;
750 uint8_t powerOffsetRsIndex;
751 } fapi_carrier_config_t_ue_sim;
753 typedef struct PACK_STRUCT fapi_carrier_config
755 fapi_uint16_tlv_t_ue_sim dlBandwidth;
756 fapi_uint32_tlv_t_ue_sim dlFrequency;
757 #ifdef VZ_VERIPHY_INTEG
758 fapi_config_num_tlv_t dlk0;
759 fapi_config_num_tlv_t dlGridSize;
761 fapi_uint16_tlv_t_ue_sim dlk0[NUMEROLOGIES];
762 fapi_uint16_tlv_t_ue_sim dlGridSize[NUMEROLOGIES];
764 fapi_uint16_tlv_t_ue_sim numTxAnt;
765 fapi_uint16_tlv_t_ue_sim uplinkBandwidth;
766 fapi_uint32_tlv_t_ue_sim uplinkFrequency;
767 #ifdef VZ_VERIPHY_INTEG
768 fapi_config_num_tlv_t ulk0;
769 fapi_config_num_tlv_t ulGridSize;
771 fapi_uint16_tlv_t_ue_sim ulk0[NUMEROLOGIES];
772 fapi_uint16_tlv_t_ue_sim ulGridSize[NUMEROLOGIES];
774 fapi_uint16_tlv_t_ue_sim numRxAnt;
775 fapi_uint8_tlv_t_ue_sim frequencyShift7p5KHz;
776 } fapi_carrier_config_t_ue_sim;
779 // Updated per 5G FAPI
780 typedef struct PACK_STRUCT fapi_cell_config
782 fapi_uint16_tlv_t_ue_sim phyCellId; //in legacy data type mentioned was uint8_t, though in spec it was uint16_t
783 fapi_uint8_tlv_t_ue_sim frameDuplexType;
784 #ifdef FAPI_222_10_03
785 fapi_uint8_tlv_t_ue_sim pdschTransTypeValidity;
786 fapi_uint8_tlv_t_ue_sim puschTransTypeValidity;
788 } fapi_cell_config_t_ue_sim;
790 // Updated per 5G FAPI
791 #ifdef FAPI_222_10_03
792 typedef struct PACK_STRUCT fapi_ssb_pwr_pbch_config
794 fapi_uint32_tlv_t_ue_sim ssPbchPower;
795 fapi_int16_tlv_t_ue_sim ssPbchBlockPowerScaling;
796 fapi_uint8_tlv_t_ue_sim bchPayloadFlag;
797 }fapi_ssb_pwr_pbch_config_t;
799 typedef struct PACK_STRUCT fapi_ssb_config
801 fapi_uint32_tlv_t_ue_sim ssPbchPower;
802 fapi_uint8_tlv_t_ue_sim bchPayload;
803 fapi_uint8_tlv_t_ue_sim scsCommon;
804 } fapi_ssb_config_t_ue_sim;
807 // Updated per 5G FAPI
808 #ifdef FAPI_222_10_03
809 typedef struct PACK_STRUCT fapi_prachFdOccasion
811 uint16_t prachRootSequenceIndex;
812 uint8_t numRootSequences;
814 uint8_t prachZeroCorrConf;
815 uint16_t numUnusedRootSequences; // 5G FAPI Table 3-24 Subset
816 uint16_t unusedRootSequences[MAX_NUM_UNUSED_ROOT_SEQUENCES];
817 } fapi_prachFdOccasion_t_ue_sim;
819 typedef struct PACK_STRUCT fapi_prachFdOccasion
821 fapi_uint16_tlv_t_ue_sim prachRootSequenceIndex;
822 fapi_uint8_tlv_t_ue_sim numRootSequences;
823 fapi_uint16_tlv_t_ue_sim k1;
824 fapi_uint8_tlv_t_ue_sim prachZeroCorrConf;
825 fapi_uint16_tlv_t_ue_sim numUnusedRootSequences; // 5G FAPI Table 3-24 Subset
826 fapi_uint8_tlv_t_ue_sim unusedRootSequences[MAX_NUM_UNUSED_ROOT_SEQUENCES];
827 } fapi_prachFdOccasion_t_ue_sim;
829 // Updated per 5G FAPI
830 #ifdef FAPI_222_10_03
831 typedef struct PACK_STRUCT fapi_prach_configuration
833 fapi_tl_t_ue_sim prachConfig;
834 uint16_t prachResConfigIndex;
835 uint8_t prachSequenceLength;
836 uint8_t prachSubCSpacing;
837 uint8_t ulBwpPuschScs;
838 uint8_t restrictedSetConfig;
839 uint8_t numPrachFdOccasions;
840 uint8_t prachConfigIndex;
841 fapi_prachFdOccasion_t_ue_sim prachFdOccasion[MAX_NUM_PRACH_FD_OCCASIONS];
843 } fapi_prach_configuration_t_ue_sim;
845 typedef struct PACK_STRUCT fapi_prach_configuration
847 fapi_uint8_tlv_t_ue_sim prachSequenceLength;
848 fapi_uint8_tlv_t_ue_sim prachSubCSpacing;
849 fapi_uint8_tlv_t_ue_sim restrictedSetConfig;
850 fapi_uint8_tlv_t_ue_sim numPrachFdOccasions;
851 fapi_uint8_tlv_t_ue_sim prachConfigIndex;
852 fapi_prachFdOccasion_t_ue_sim prachFdOccasion[MAX_NUM_PRACH_FD_OCCASIONS];
853 fapi_uint8_tlv_t_ue_sim ssbPerRach;
854 fapi_uint8_tlv_t_ue_sim prachMultipleCarriersInABand;
855 } fapi_prach_configuration_t_ue_sim;
858 #ifdef FAPI_222_10_03
859 // Updated per 5G FAPI
860 typedef struct PACK_STRUCT fapi_multi_prach_config
862 fapi_tl_t_ue_sim multiPrachConfig;
863 uint16_t numPrachConfigurations;
864 fapi_prach_configuration_t_ue_sim numPrachConfigurationsTlv[];
865 }fapi_multi_prach_config_t;
868 //Updated per 5G FAPI
869 #ifdef FAPI_222_10_03
870 typedef struct PACK_STRUCT fapi_ssb_res_config_table
872 fapi_tl_t_ue_sim ssbTableConfig;
873 uint16_t ssbConfigIndex;
874 uint16_t ssbOffsetPointA;
875 uint8_t betaPssProfileNR;
876 int16_t betaPssProfileSSS;
878 uint8_t ssbSubcarrierOffset;
880 uint8_t subCarrierSpacing;
881 uint8_t subCarrierSpacingCommon;
885 uint8_t rmsiPresence;
886 }fapi_ssb_res_config_table_t;
888 typedef struct PACK_STRUCT fapi_ssb_table
890 fapi_uint16_tlv_t_ue_sim ssbOffsetPointA;
891 fapi_uint8_tlv_t_ue_sim betaPss;
892 fapi_uint8_tlv_t_ue_sim ssbPeriod;
893 fapi_uint8_tlv_t_ue_sim ssbSubCarrierOffset;
894 fapi_uint32_tlv_t_ue_sim mib;
895 fapi_uint32_tlv_t_ue_sim ssbMask[2];
896 fapi_uint8_tlv_t_ue_sim beamId[64];
897 fapi_uint8_tlv_t_ue_sim ssPbchMultipleCarriersInABand;
898 fapi_uint8_tlv_t_ue_sim multipleCellsSsPbchInACarrier;
899 } fapi_ssb_table_t_ue_sim;
902 #ifdef FAPI_222_10_03
903 //Updated per 5G FAPI
904 typedef struct PACK_STRUCT fapi_multi_ssb_resource_config_table
906 fapi_tl_t_ue_sim multiSsbResourceConfig;
907 uint8_t numSsbConfigurations;
908 fapi_ssb_res_config_table_t ssbConfigurationsTLVs[];
909 }fapi_multi_ssb_resource_config_table_t;
912 // Updated per 5G FAPI
913 #ifdef FAPI_222_10_03
914 typedef struct PACK_STRUCT fapi_slotconfig
916 uint8_t slotConfig[MAX_NUM_OF_SYMBOLS_PER_SLOT];
917 } fapi_slotconfig_t_ue_sim;
919 typedef struct PACK_STRUCT fapi_slotconfig
921 fapi_uint8_tlv_t_ue_sim slotConfig[MAX_NUM_OF_SYMBOLS_PER_SLOT];
922 } fapi_slotconfig_t_ue_sim;
925 // Updated per 5G FAPI
926 #ifdef FAPI_222_10_03
927 typedef struct PACK_STRUCT fapi_tdd_table
929 fapi_tl_t_ue_sim tddTableConfig;
931 fapi_slotconfig_t_ue_sim slotConfig[MAX_TDD_PERIODICITY];
932 } fapi_tdd_table_t_ue_sim;
934 typedef struct PACK_STRUCT fapi_tdd_table
936 fapi_uint8_tlv_t_ue_sim tddPeriod;
937 fapi_slotconfig_t_ue_sim slotConfig[MAX_TDD_PERIODICITY];
938 } fapi_tdd_table_t_ue_sim;
941 // Updated per 5G FAPI
942 typedef struct PACK_STRUCT fapi_meas_config
944 fapi_uint8_tlv_t_ue_sim rssiMeasurement;
945 } fapi_meas_config_t_ue_sim;
947 // Updated per 5G FAPI
948 typedef struct PACK_STRUCT fapi_dig_beam_weight
950 int16_t digBeamWeightRe;
951 int16_t digBeamWeightIm;
952 } fapi_dig_beam_weight_t_ue_sim;
954 // Updated per 5G FAPI
955 typedef struct PACK_STRUCT fapi_dig_beam_config
958 fapi_dig_beam_weight_t_ue_sim digBeamWeight[MAX_NUMBER_TX_RUS];
959 } fapi_dig_beam_config_t_ue_sim;
961 // Updated per 5G FAPI
962 typedef struct PACK_STRUCT fapi_beamforming_table
964 uint16_t numDigBeams;
965 #ifndef FAPI_222_10_03
968 uint16_t numBasebandPorts;
970 fapi_dig_beam_config_t_ue_sim digBeam[MAX_NUMBER_OF_BEAMS];
971 } fapi_beamforming_table_t_ue_sim;
973 // Updated per 5G FAPI
974 typedef struct PACK_STRUCT fapi_precoderWeight
976 int16_t preCoderWeightRe;
977 int16_t preCoderWeightIm;
978 } fapi_precoderWeight_t_ue_sim;
980 // Updated per 5G FAPI
981 typedef struct PACK_STRUCT fapi_precoder_weight
983 fapi_precoderWeight_t_ue_sim precoder_weight[MAX_NUM_ANT_PORTS];
984 } fapi_precoder_weight_t_ue_sim;
986 #ifdef FAPI_222_10_03
987 typedef struct PACK_STRUCT fapi_map_index
989 uint8_t numPart1Params;
990 uint8_t sizePart1Params[0]; /* Shall Not exced 12 */
993 // Updated per 5G FAPI
994 typedef struct PACK_STRUCT fapi_uci_config
996 fapi_tl_t_ue_sim uciConfig;
997 uint16_t numUci2Maps;
998 fapi_map_index_t mapIndex[];
1001 // Updated per 5G FAPI
1003 typedef struct PACK_STRUCT fapi_prb_sym_rate_match_pattern
1005 uint8_t prbSymbRateMatchPatternID;
1006 uint8_t freqDomainRB[35];
1007 uint8_t oneOrTwoSlots;
1008 uint32_t symbolsInRB;
1009 uint8_t timeDomainPeriodicity;
1010 uint8_t timeDomainPattern[5];
1011 uint8_t subCarrierSpacing;
1012 }fapi_prb_sym_rate_match_pattern_t;
1014 typedef struct PACK_STRUCT fapi_prb_symbol_rate_match_pattern
1016 fapi_tl_t_ue_sim prbSymRateMatchPattern;
1017 uint8_t numPrbSymbRatePattern;
1018 fapi_prb_sym_rate_match_pattern_t prbSymbRateMatchPatterns[];
1019 }fapi_prb_symbol_rate_match_pattern_t;
1021 // Updated per 5G FAPI
1022 typedef struct PACK_STRUCT fapi_mbsfn_sf_config_list
1024 uint8_t radioframeAllocationPeriod;
1025 uint8_t radioframeAllocationOffset;
1026 uint8_t lteFrameStructureType;
1027 uint8_t subframeAllocLength;
1028 uint32_t subframeAllocationBitmap; /* Ref: Table 3-42 LTE-CRS rate match patterns configuration*/
1029 }fapi_mbsfn_sf_config_list_t;
1031 typedef struct PACK_STRUCT fapi_lte_crs_rm_ptrn
1033 uint8_t crsRateMatchPatternID;
1034 uint16_t carrierFreqDL;
1035 uint8_t carrierBandwidthDL;
1038 uint8_t sizeMbsfnSubframeConfigList;
1039 fapi_mbsfn_sf_config_list_t mbsfnSFConfigList[0];
1040 }fapi_lte_crs_rm_ptrn_t;
1042 typedef struct PACK_STRUCT fapi_lte_crs_rm_pattern
1044 fapi_tl_t_ue_sim lteCrsRmPattern;
1045 uint8_t numLteCrsRmPattern;
1046 fapi_lte_crs_rm_ptrn_t lteCrsRmPtrn[0];
1047 }fapi_lte_crs_rm_pattern_t;
1049 // Updated per 5G Fapi
1050 typedef struct PACK_STRUCT fapi_ul_bwp_id
1052 uint8_t pucchGroupHopping;
1053 uint16_t nIdPucchHopping;
1056 typedef struct PACK_STRUCT fapi_pucch_semi_static_config
1058 fapi_uint8_tlv_t_ue_sim numUlBwpIds;
1059 fapi_ul_bwp_id_t ulBwpId[0];
1060 }fapi_pucch_semi_static_config_t;
1062 // Updated per 5G Fapi
1063 typedef struct PACK_STRUCT fapi_pdsch_config
1065 fapi_uint8_tlv_t_ue_sim pdschCbgScheme;
1066 }fapi_pdsch_config_t;
1068 // Updated per 5G Fapi
1069 typedef struct PACK_STRUCT fapi_delay_mgmt_config
1071 fapi_uint16_tlv_t_ue_sim timingWindow;
1072 fapi_uint8_tlv_t_ue_sim timingInfoMode;
1073 fapi_uint8_tlv_t_ue_sim timingInfoPeriod;
1074 }fapi_delay_mgmt_config_t;
1076 // Updated per 5G Fapi
1077 typedef struct PACK_STRUCT fapi_rel16_mtrp_config
1079 fapi_uint8_tlv_t_ue_sim numTxPortsTRP1;
1080 fapi_uint8_tlv_t_ue_sim numRxPortsTRP1;
1081 }fapi_rel16_mtrp_config_t;
1083 // Updated per 5G FAPI
1084 typedef struct PACK_STRUCT
1088 uint16_t numAntPorts;
1089 fapi_precoder_weight_t_ue_sim precoderWeight[MAX_NUM_LAYERS];
1090 } fapi_precoding_table_t_ue_sim;
1092 // Updated per 5G FAPI
1093 #ifdef FAPI_222_10_03
1094 typedef struct PACK_STRUCT fapi_config
1096 fapi_phy_config_t phyConfig;
1097 fapi_carrier_config_t_ue_sim carrierConfig;
1098 fapi_cell_config_t_ue_sim cellConfig;
1099 fapi_ssb_pwr_pbch_config_t ssbPowerPbchConfig;
1100 fapi_prach_configuration_t_ue_sim prachConfig;
1101 fapi_multi_prach_config_t multiPrachConfig;
1102 fapi_ssb_res_config_table_t ssbResConfigTable;
1103 fapi_multi_ssb_resource_config_table_t multiSsbResourceConfigTable;
1104 fapi_tdd_table_t_ue_sim tddTable;
1105 fapi_meas_config_t_ue_sim measConfig;
1106 fapi_beamforming_table_t_ue_sim beamformingTable;
1107 fapi_precoding_table_t_ue_sim precodingTable;
1108 fapi_uci_config_t uciConfig;
1109 fapi_prb_symbol_rate_match_pattern_t prbSymRmPtrn;
1110 fapi_lte_crs_rm_pattern_t lteCrsRmPtrn;
1111 fapi_pucch_semi_static_config_t pucchSemiStaticConfig;
1112 fapi_pdsch_config_t pdschConfig;
1113 fapi_delay_mgmt_config_t delayMgmtConfig;
1114 fapi_rel16_mtrp_config_t rel16MtrpConfig;
1115 }fapi_config_t_ue_sim;
1117 typedef struct PACK_STRUCT fapi_config
1119 fapi_carrier_config_t_ue_sim carrierConfig;
1120 fapi_cell_config_t_ue_sim cellConfig;
1121 fapi_ssb_config_t_ue_sim ssbConfig;
1122 //fapi_prach_config_t prachConfig;
1123 fapi_prach_configuration_t_ue_sim prachConfig;
1124 fapi_ssb_table_t_ue_sim ssbTable;
1125 fapi_tdd_table_t_ue_sim tddTable;
1126 fapi_meas_config_t_ue_sim measConfig;
1127 fapi_beamforming_table_t_ue_sim beamformingTable;
1128 fapi_precoding_table_t_ue_sim precodingTable;
1129 }fapi_config_t_ue_sim;
1131 // Updated per 5G FAPI
1132 typedef struct PACK_STRUCT fapi_config_req
1134 fapi_msg_header_t_ue_sim header;
1135 uint8_t number_of_tlvs;
1136 fapi_uint16_tlv_t_ue_sim tlvs[MAX_NUM_TLVS_CONFIG];
1137 } fapi_config_req_t_ue_sim;
1139 // Updated per 5G FAPI
1140 typedef struct PACK_STRUCT fapi_config_resp
1142 fapi_msg_header_t_ue_sim header;
1144 uint8_t number_of_invalid_tlvs;
1145 uint8_t number_of_inv_tlvs_idle_only;
1146 uint8_t number_of_inv_tlvs_running_only;
1147 uint8_t number_of_missing_tlvs;
1148 fapi_uint16_tlv_t_ue_sim tlvs[4 * MAX_NUM_TLVS_CONFIG];
1149 // fapi_uint16_tlv_t_ue_sim unsupported_or_invalid_tlvs[MAX_NUMBER_UNSUPPORTED_TLVS];
1150 // fapi_uint16_tlv_t_ue_sim invalid_idle_only_tlvs[MAX_NUMBER_OF_INVALID_IDLE_ONLY_TLVS];
1151 // fapi_uint16_tlv_t_ue_sim invalid_running_only_tlvs[MAX_NUMBER_OF_INVALID_RUNNING_ONLY_TLVS];
1152 // fapi_uint16_tlv_t_ue_sim missing_tlvs[MAX_NUMBER_OF_MISSING_TLVS];
1153 } fapi_config_resp_t_ue_sim;
1155 // Updated per 5G FAPI
1156 typedef struct PACK_STRUCT fapi_start_req
1158 fapi_msg_header_t_ue_sim header; // Message Length is zero for START.request
1159 } fapi_start_req_t_ue_sim;
1161 // Updated per 5G FAPI
1162 typedef struct PACK_STRUCT fapi_stop_req
1164 fapi_msg_header_t_ue_sim header; // Message Length is zero for STOP.request
1165 } fapi_stop_req_t_ue_sim;
1167 // Updated per 5G FAPI
1168 typedef struct PACK_STRUCT fapi_stop_ind
1170 fapi_msg_header_t_ue_sim header; // Message Length is zero for STOP.indication
1171 } fapi_stop_ind_t_ue_sim;
1173 // Updated per 5G FAPI
1174 typedef struct PACK_STRUCT fapi_error_ind
1176 fapi_msg_header_t_ue_sim header;
1181 #ifdef FAPI_222_10_03
1182 uint16_t expectedSFN;
1183 uint16_t expectedSlot;
1185 } fapi_error_ind_t_ue_sim;
1187 // Updated per 5G FAPI
1188 typedef struct PACK_STRUCT fapi_slot_ind
1190 fapi_msg_header_t_ue_sim header;
1193 } fapi_slot_ind_t_ue_sim;
1195 #ifdef FAPI_222_10_03
1196 /* Ref: section 3.1.9 of* SCF-225 */
1197 typedef struct PACK_STRUCT fapi_start_resp
1199 fapi_msg_header_t_ue_sim header;
1203 // Updated per 5G FAPI
1204 typedef struct PACK_STRUCT fapi_bmi
1207 } fapi_bmi_t_ue_sim;
1209 // Updated per 5G FAPI
1210 typedef struct PACK_STRUCT fapi_pmi_bfi
1213 fapi_bmi_t_ue_sim beam_idx[];
1214 } fapi_pmi_bfi_t_ue_sim;
1216 // Updated per 5G FAPI
1217 typedef struct PACK_STRUCT fapi_bmform
1219 #ifndef FAPI_222_10_03
1224 uint8_t dig_bf_interfaces;
1225 uint16_t beam_idx[][1];
1228 // Updated per 5G FAPI
1229 typedef struct PACK_STRUCT fapi_precoding_bmform
1231 #ifndef FAPI_222_10_03
1236 uint8_t dig_bf_interfaces;
1237 fapi_pmi_bfi_t_ue_sim pmi_bfi[1];
1238 } fapi_precoding_bmform_t_ue_sim;
1240 // Updated per 5G FAPI
1241 typedef struct PACK_STRUCT fapi_tx_power_info
1243 uint8_t beta_pdcch_1_0;
1244 #ifndef FAPI_222_10_03
1245 uint8_t power_control_ofsset_ss;
1247 int8_t powerControlOffsetSSProfileNR;
1249 } fapi_tx_power_info_t;
1251 // Updated per 5G FAPI
1252 typedef struct PACK_STRUCT fapi_bwp
1254 uint16_t bwp_size; /* BWP configuration Start */
1256 uint8_t sub_carrier_spacing;
1257 uint8_t cyclic_prefix; /* BWP Configuration End*/
1260 // Updated per 5G FAPI
1261 typedef struct PACK_STRUCT fapi_coreset
1263 uint8_t start_symbol_index; /* Coreset Configuration Start */
1264 uint8_t duration_symbols;
1265 uint8_t freq_domain_resource[FAPI_MAX_FREQ_DOMAIN_RES];
1266 uint8_t cce_reg_mapping_type;
1267 uint8_t reg_bundle_size;
1268 uint8_t interleaver_size;
1269 uint8_t core_set_type;
1270 uint16_t shift_index;
1271 uint8_t precoder_granularity; /* Coreset Configuration End */
1274 // Updated per 5G FAPI
1275 typedef struct PACK_STRUCT fapi_dl_dci
1278 #ifdef FAPI_222_10_03
1279 uint16_t nIdPdcchData;
1280 uint16_t nRntiPdcchData;
1282 uint16_t scrambling_id;
1283 uint16_t scrambling_rnti;
1286 uint8_t aggregation_level;
1287 fapi_precoding_bmform_t_ue_sim pc_and_bform;
1288 fapi_tx_power_info_t tx_power_info;
1289 uint16_t payload_size_bits;
1291 } fapi_dl_dci_t_ue_sim;
1292 #ifdef FAPI_222_10_03
1293 typedef struct PACK_STRUCT fapi_coreset_parms
1295 uint16_t pdcchPduIndex;
1296 uint16_t nIdPdcchDmrs;
1297 } fapi_coreset_parms_t;
1299 typedef struct PACK_STRUCT fapi_dci_specific_parms
1302 uint8_t collocatedAl16Candidate;
1303 int16_t pdcchDmrsPowerOffsetProfileSSS;
1304 int16_t pdcchDataPowerOffsetProfileSSS;
1305 } fapi_dci_specific_parms_t;
1307 typedef struct PACK_STRUCT fapi_pdcch_mnt_parms
1309 fapi_coreset_parms_t coresetParms;
1310 fapi_dci_specific_parms_t dciSpecificParms;
1311 } fapi_pdcch_mnt_parms_t;
1313 // Updated per 5G FAPI
1314 typedef struct PACK_STRUCT fapi_dl_pdcch_pdu
1317 fapi_coreset_t coreset;
1318 uint16_t num_dl_dci; /*Number of DCIs in this CORESET */
1319 fapi_dl_dci_t_ue_sim dl_dci[0];
1320 #ifdef FAPI_222_10_03
1321 fapi_pdcch_mnt_parms_t pdcchMntParms;
1323 } fapi_dl_pdcch_pdu_t_ue_sim;
1324 // Updated per 5G FAPI
1325 typedef struct PACK_STRUCT fapi_codeword_pdu
1327 uint16_t target_code_rate;
1328 uint8_t qam_mod_order;
1333 } fapi_codeword_pdu_t_ue_sim;
1335 // Updated per 5G FAPI
1336 typedef struct PACK_STRUCT fapi_dmrs
1338 uint16_t dl_dmrs_symb_pos; /*SCF: DMRS Config Start */
1339 uint8_t dmrs_config_type;
1340 uint16_t dl_dmrs_scrambling_id;
1342 uint8_t num_dmrs_cdm_grps_no_data;
1343 uint16_t dmrs_ports; /*SCF: DMRS Config End */
1346 // Updated per 5G FAPI
1347 typedef struct PACK_STRUCT fapi_pdsch_freq_dom_alloc
1349 uint8_t resource_alloc; /*SCF: PDSCH Allocation in Frequency Domain Start */
1350 uint8_t rb_bitmap[36];
1353 uint8_t vrb_to_prb_mapping;/*SCF : PDSCH Allocation in Frequency Domain End */
1354 } fapi_pdsch_freq_dom_alloc_t;
1356 // Updated per 5G FAPI
1357 typedef struct PACK_STRUCT fapi_pdsch_time_dom_alloc
1359 uint8_t start_symb_index;/*SCF : PDSCH Allocation in Time Domain Start */
1360 uint8_t nr_of_symbols; /*SCF : PDSCH Allocation in Time Domain End */
1361 } fapi_pdsch_time_dom_alloc_t;
1363 typedef struct PACK_STRUCT fapi_dl_pdsch_ptrs_info
1365 uint8_t ptrs_port_index;
1366 uint8_t ptrs_time_density;
1367 uint8_t ptrs_freq_density;
1368 uint8_t ptrs_re_offset;
1369 uint8_t n_epre_ratio_of_pdsch_to_ptrs;
1371 } fapi_dl_pdsch_ptrs_info_t;
1373 // Updated per 5G FAPI
1374 typedef struct PACK_STRUCT fapi_tx_pwr_info
1376 #ifndef FAPI_222_10_03
1377 uint8_t power_control_offset; /*SCF : TX Power Info Start */
1378 uint8_t power_control_offset_ss; /*SCF : Tx Power Info End */
1380 uint8_t powerControlOffsetProfileNR; /*SCF : TX Power Info Start */
1381 uint8_t powerControlOffsetSSProfileNR; /*SCF : Tx Power Info End */
1383 } fapi_tx_pwr_info_t;
1385 typedef struct PACK_STRUCT fapi_dl_pdsch_cbg_info
1387 uint8_t is_last_cb_present;
1388 uint8_t is_inline_tb_crc;
1389 #ifndef FAPI_222_10_03
1392 uint32_t dlTbCrc[2];
1395 } fapi_dl_pdsch_cbg_info_t;
1397 #ifdef FAPI_222_10_03
1398 typedef struct PACK_STRUCT fapi_dl_prb_sym_rm_patrn_by_val
1400 uint8_t freqDomainRB[35];
1401 uint16_t symbolsInRB;
1402 } fapi_dl_prb_sym_rm_patrn_by_val_t;
1404 typedef struct PACK_STRUCT fapi_dl_coreset_rm_patrn
1406 uint8_t freqDomainResources[6];
1407 uint16_t symbolsPatrn;
1408 } fapi_dl_coreset_rm_patrn_t;
1411 typedef struct PACK_STRUCT fapi_dl_rate_match_ref
1413 uint8_t ssbPdusForRateMatching[2];
1414 uint8_t ssbConfigForRateMatching;
1415 uint8_t prbSymRmPatrnBitmapSizeByRef;
1416 uint8_t prbSymRmPatrnBitmapByRef[0]; // side depends on ceil(prbSymRmPatrnBitmapSizeByRef / 8)
1417 uint8_t numPrbSymRmPatrnByVal;
1418 fapi_dl_prb_sym_rm_patrn_by_val_t prbSymRmPatrnByValue[0];
1419 uint8_t numCoresetRmPatrn;
1420 fapi_dl_coreset_rm_patrn_t coresetRmPatrn[0];
1421 uint16_t pdcchPduIndex;
1423 uint8_t lteCrsRaMaPatrnBitmapSize;
1424 uint8_t lteCrsRaMaPatrn[0]; // side depends on ceil(lteCrsRaMaPatrnBitmapSize / 8)
1425 uint8_t numCsiRsForRaMa;
1426 uint16_t csiRsForRaMa[0]; // side depends on numCsiRsForRaMa
1428 } fapi_dl_rate_match_ref_t;
1430 typedef struct PACK_STRUCT fapi_dl_code_word
1433 } fapi_dl_code_word_t;
1435 typedef struct PACK_STRUCT fapi_dl_tx_pwr_info
1437 uint16_t pdschDmrsPwrOffsetPrfSSS;
1438 uint16_t pdschDataPwrOffsetPrfSSS;
1439 uint8_t maxNumCbgPerTb;
1440 fapi_dl_code_word_t codeWord[0];
1441 } fapi_dl_tx_pwr_info_t;
1443 typedef struct PACK_STRUCT fapi_dl_codeword_info
1445 uint8_t ldpcBaseGraph;
1446 uint32_t tbSizeLbrmBytes;
1447 uint8_t tbCrcRequired;
1449 } fapi_dl_codeword_info_t;
1451 typedef struct PACK_STRUCT fapi_dl_pdsch_mnt_parms
1453 uint8_t pdschTransType;
1454 uint16_t coresetStartPoint;
1455 uint16_t initialDlBwpSize;
1456 fapi_dl_codeword_info_t codewordInfo;
1457 fapi_dl_rate_match_ref_t rateMatchRef;
1458 fapi_dl_tx_pwr_info_t txPwrInfo;
1459 } fapi_dl_pdsch_mnt_parms_t;
1461 typedef struct PACK_STRUCT fapi_dl_ptrs_tx_pwr_info
1463 uint16_t pdschPtrsPwrOffsetPrfSSS;
1464 }fapi_dl_ptrs_tx_pwr_info_t;
1466 typedef struct PACK_STRUCT fapi_dl_pdsch_ptrs_mnt_parms
1468 fapi_dl_ptrs_tx_pwr_info_t txPwrInfo;
1469 } fapi_dl_pdsch_ptrs_mnt_parms_t;
1471 typedef struct PACK_STRUCT fapi_dl_pdsch_ptrs2
1473 uint8_t ptrsPortIndex;
1474 uint8_t ptrsTimeDensity;
1475 uint8_t ptrsFreqDensity;
1476 uint8_t ptrsReOffset;
1477 uint8_t nEpreRatOfPdschToPtrsProfNR;
1478 } fapi_dl_pdsch_ptrs2_t;
1480 typedef struct PACK_STRUCT fapi_dl_pdsch_ptrsv3
1482 fapi_dl_ptrs_tx_pwr_info_t txPwrInfo;
1483 }fapi_dl_pdsch_ptrsv3_t;
1485 typedef struct PACK_STRUCT fapi_dl_rel16_pdsch_parms_t
1487 uint8_t repetitionScheme;
1488 fapi_dl_pdsch_ptrs2_t pdschPtrs2;
1489 fapi_dl_pdsch_ptrsv3_t pdschPtrsV3;
1490 } fapi_dl_rel16_pdsch_parms_t;
1492 // Updated per 5G FAPI
1493 typedef struct PACK_STRUCT fapi_dl_pdsch_pdu
1495 uint16_t pdu_bit_map; /* Bit 0: pdschPtrs - Indicates PTRS included (FR2)
1496 Bit 1:cbgRetxCtrl (Present when CBG based retransmit is used) */
1500 uint8_t nr_of_code_words; /* SCF : Code Word Info Start */
1501 fapi_codeword_pdu_t_ue_sim cw_info[FAPI_MAX_NUM_CW]; /* SCF : Code Word Info End */
1502 #ifdef FAPI_222_10_03
1505 uint16_t data_scrambling_id;
1507 uint8_t nr_of_layers;
1508 uint8_t transmission_scheme;
1511 fapi_pdsch_freq_dom_alloc_t pdsch_freq_dom_alloc;
1512 fapi_pdsch_time_dom_alloc_t pdsch_time_dom_alloc;
1513 fapi_dl_pdsch_ptrs_info_t pdsch_ptrs_info;
1514 fapi_precoding_bmform_t_ue_sim pre_coding_and_beamforming;
1515 fapi_tx_pwr_info_t tx_pwr_info;
1516 fapi_dl_pdsch_cbg_info_t cbg_info;
1517 #ifdef FAPI_222_10_03
1518 fapi_dl_pdsch_mnt_parms_t dlPdschMntparms;
1519 fapi_dl_pdsch_ptrs_mnt_parms_t dlPdschPtrsMntParms;
1520 fapi_dl_rel16_pdsch_parms_t rel16PdschParms;
1522 } fapi_dl_pdsch_pdu_t_ue_sim;
1524 #ifdef FAPI_222_10_03
1525 typedef struct PACK_STRUCT fapi_basic_parms
1527 uint16_t csiRsPduIndex;
1528 } fapi_basic_parms_t;
1530 typedef struct PACK_STRUCT ifapi_csi_rs_tx_pwr_info
1532 uint16_t csiRsPowerOffsetProfileSSS;
1533 } fapi_csi_rs_tx_pwr_info_t;
1536 typedef struct PACK_STRUCT fapi_dl_csi_rs_mnt_parms
1538 fapi_basic_parms_t basic;
1539 fapi_csi_rs_tx_pwr_info_t txPwrInfo;
1540 }fapi_dl_csi_rs_mnt_parms_t;
1543 // Updated per 5G FAPI
1544 typedef struct PACK_STRUCT fapi_dl_csi_rs_pdu
1546 #ifdef FAPI_222_10_03
1547 uint8_t subCarrierSpacing;
1548 uint8_t cyclicPrefix; /* BWP Configuration End*/
1556 uint16_t freq_domain;
1560 uint8_t freq_density;
1562 fapi_tx_pwr_info_t tx_pwr_info;
1563 fapi_precoding_bmform_t_ue_sim pre_coding_and_beamforming;
1564 #ifdef FAPI_222_10_03
1565 fapi_dl_csi_rs_mnt_parms_t csiRsMntParms;
1567 } fapi_dl_csi_rs_pdu_t_ue_sim;
1569 // Updated per 5G FAPI
1570 typedef struct PACK_STRUCT fapi_phy_mib_pdu
1572 uint8_t dmrs_type_a_position;
1573 uint8_t pdcch_config_sib1;
1574 uint8_t cell_barred;
1575 uint8_t intra_freq_reselction;
1576 } fapi_phy_mib_pdu_t_ue_sim;
1578 // Updated per 5G FAPI
1579 typedef struct PACK_STRUCT fapi_bch_payload
1583 uint32_t bch_payload;
1584 fapi_phy_mib_pdu_t_ue_sim phy_mib_pdu;
1586 } fapi_bch_payload_t_ue_sim;
1588 #ifdef FAPI_222_10_03
1589 typedef struct PACK_STRUCT fapi_ssb_basic_parms
1591 uint8_t ssbPduIndex;
1593 uint8_t subcarrierSpacing;
1595 } fapi_ssb_basic_parms_t;
1597 typedef struct PACK_STRUCT fapi_ssb_tx_pwr_info
1599 uint16_t ssPbchBlockPowerScaling;
1600 uint16_t betaPSSProfileSSS;
1601 } fapi_ssb_tx_pwr_info_t;
1603 typedef struct PACK_STRUCT fapi_dl_ssb_pbch_mnt_parms
1605 fapi_ssb_basic_parms_t basicParams;
1606 fapi_ssb_tx_pwr_info_t tx_pwr_info;
1607 }fapi_dl_ssb_pbch_mnt_parms_t;
1611 // Updated per 5G FAPI
1612 typedef struct PACK_STRUCT fapi_dl_ssb_pdu
1615 uint16_t phys_cell_id;
1616 #ifdef FAPI_222_10_03
1617 uint8_t betaPssProfileNR;
1621 uint8_t ssb_block_index;
1622 uint8_t ssb_sub_carrier_offset;
1623 uint16_t ssb_offset_point_a;
1624 uint8_t bch_payload_flag;
1625 fapi_bch_payload_t_ue_sim bch_payload;
1626 fapi_precoding_bmform_t_ue_sim pre_coding_and_beamforming;
1627 #ifdef FAPI_222_10_03
1628 fapi_dl_ssb_pbch_mnt_parms_t ssbPbchMntParms;
1630 } fapi_dl_ssb_pdu_t_ue_sim;
1632 // Updated per 5G FAPI
1633 typedef struct PACK_STRUCT fapi_dl_tti_req_pdu
1639 fapi_dl_pdcch_pdu_t_ue_sim pdcch_pdu;
1640 fapi_dl_pdsch_pdu_t_ue_sim pdsch_pdu;
1641 fapi_dl_csi_rs_pdu_t_ue_sim csi_rs_pdu;
1642 fapi_dl_ssb_pdu_t_ue_sim ssb_pdu;
1644 } fapi_dl_tti_req_pdu_t_ue_sim;
1646 // Updated per 5G FAPI
1647 typedef struct PACK_STRUCT fapi_ue_info
1651 } fapi_ue_info_t_ue_sim;
1653 // Updated per 5G FAPI
1654 typedef struct PACK_STRUCT fapi_dl_tti_req
1656 fapi_msg_header_t_ue_sim header;
1659 #ifdef FAPI_222_10_03
1662 uint16_t nPDUsOfEachType[MAX_NDLTYPES_DL_TTI_REQ];
1667 fapi_dl_tti_req_pdu_t_ue_sim pdus[0];
1668 fapi_ue_info_t_ue_sim ueGrpInfo[0];
1669 } fapi_dl_tti_req_t_ue_sim;
1670 #ifdef FAPI_222_10_03
1671 typedef struct PACK_STRUCT fapi_pRACH_Mntnc_param
1674 uint8_t prachConfigScope;
1675 uint16_t prachResConfigIndex;
1677 uint8_t startPreambleIndex;
1678 uint8_t numPreambleIndices;
1679 }fapi_pRACH_Mntnc_param_t;
1681 // Updated per 5G FAPI
1682 typedef struct PACK_STRUCT fapi_ul_prach_pdu
1684 uint16_t phys_cell_id;
1685 uint8_t num_prach_ocas;
1686 uint8_t prach_format;
1687 #ifdef FAPI_222_10_03
1692 uint8_t prach_start_symbol;
1694 fapi_bmform_t beamforming;
1695 #ifdef FAPI_222_10_03
1696 fapi_pRACH_Mntnc_param_t pRACH_Mntnc;
1698 } fapi_ul_prach_pdu_t_ue_sim;
1701 // Updated per 5G FAPI
1702 typedef struct PACK_STRUCT fapi_pusch_data
1705 uint8_t harq_process_id;
1706 uint8_t new_data_indicator;
1709 uint8_t cb_present_and_position[1];
1710 } fapi_pusch_data_t_ue_sim;
1712 // Updated per 5G FAPI
1713 typedef struct PACK_STRUCT fapi_pusch_uci
1715 uint16_t harq_ack_bit_length;
1716 uint16_t csi_part1_bit_length;
1717 #ifdef FAPI_222_10_03
1718 uint16_t flagCsiPart2;
1720 uint16_t csi_part2_bit_length;
1722 uint8_t alpha_scaling;
1723 uint8_t beta_offset_harq_ack;
1724 uint8_t beta_offset_csi1;
1725 uint8_t beta_offset_csi2;
1726 } fapi_pusch_uci_t_ue_sim;
1728 // Updated per 5G FAPI
1729 typedef struct PACK_STRUCT fapi_ptrs_info
1731 uint16_t ptrs_port_index;
1732 uint8_t ptrs_dmrs_port;
1733 uint8_t ptrs_re_offset;
1734 } fapi_ptrs_info_t_ue_sim;
1736 // Updated per 5G FAPI
1737 typedef struct PACK_STRUCT fapi_pusch_ptrs
1739 uint8_t num_ptrs_ports;
1740 fapi_ptrs_info_t_ue_sim ptrs_info[MAX_NUM_PTRS_PORTS];
1741 uint8_t ptrs_time_density;
1742 uint8_t ptrs_freq_density;
1743 uint8_t ul_ptrs_power;
1744 } fapi_pusch_ptrs_t_ue_sim;
1746 // Updated per 5G FAPI
1747 typedef struct PACK_STRUCT fapi_dfts_ofdm
1749 uint8_t low_papr_group_number;
1750 uint16_t low_papr_sequence_number;
1751 uint8_t ul_ptrs_sample_density;
1752 uint8_t ul_ptrs_time_density_transform_precoding;
1753 } fapi_dfts_ofdm_t_ue_sim;
1755 #ifdef FAPI_222_10_03
1756 typedef struct PACK_STRUCT fapi_pusch_mnt_parms
1758 uint8_t puschTransType;
1759 uint16_t deltaBwp0StartFromActiveBwp;
1760 uint16_t initialUlBwpSize;
1761 uint8_t groupOrSequenceHopping;
1762 uint16_t puschSecondHopPRB;
1763 uint8_t ldpcBaseGraph;
1764 uint32_t tbSizeLbrmBytes;
1765 } fapi_pusch_mnt_parms_t;
1767 typedef struct PACK_STRUCT fapi_part2_parms
1770 uint8_t numPart1Params;
1771 uint16_t paramOffsets[0];
1772 uint8_t paramSizes[0];
1773 uint16_t part2SizeMapIndex;
1774 } fapi_part2_parms_t;
1776 typedef struct PACK_STRUCT fapi_optional_pusch_uci
1779 fapi_part2_parms_t part2_parms[0];
1780 } fapi_optional_pusch_uci_t;
1783 // Updated per 5G FAPI
1784 typedef struct PACK_STRUCT fapi_ul_pusch_pdu
1786 uint16_t pdu_bitmap;
1789 #ifdef VZ_VERIPHY_INTEG
1794 uint8_t sub_carrier_spacing;
1795 uint8_t cyclic_prefix;
1797 uint16_t target_code_rate;
1798 uint8_t qam_mod_order;
1801 uint8_t transform_precoding;
1802 #ifdef FAPI_222_10_03
1805 uint16_t data_scrambling_id;
1807 uint8_t nr_of_layers;
1808 uint16_t ul_dmrs_symb_pos;
1809 uint8_t dmrs_config_type;
1810 uint16_t ul_dmrs_scrambling_id;
1811 uint16_t pusch_identity;
1812 #ifdef FAPI_222_10_03
1817 uint8_t num_dmrs_cdm_grps_no_data;
1818 uint16_t dmrs_ports;
1819 uint8_t resource_alloc;
1820 uint8_t rb_bitmap[36];
1823 uint8_t vrb_to_prb_mapping;
1824 #ifdef FAPI_222_10_03
1825 uint8_t IntraSlotFrequencyHopping;
1827 uint8_t frequency_hopping;
1829 uint16_t tx_direct_current_location;
1830 uint8_t uplink_frequency_shift7p5khz;
1831 uint8_t start_symb_index;
1832 uint8_t nr_of_symbols;
1833 fapi_pusch_data_t_ue_sim pusch_data;
1834 fapi_pusch_uci_t_ue_sim pusch_uci;
1835 fapi_pusch_ptrs_t_ue_sim pusch_ptrs;
1836 fapi_dfts_ofdm_t_ue_sim dfts_ofdm;
1837 fapi_bmform_t beamforming;
1838 #ifdef FAPI_222_10_03
1839 fapi_pusch_mnt_parms_t puschMntParms;
1840 fapi_optional_pusch_uci_t optionalPuschUci;
1842 } fapi_ul_pusch_pdu_t_ue_sim;
1843 #ifdef FAPI_222_10_03
1844 typedef struct PACK_STRUCT fapi_pUCCH_Mntnnc_params
1846 uint8_t maxCodeRate;
1848 } fapi_pucch_mntnnc_params_t;
1849 typedef struct PACK_STRUCT fapi_uci_part2
1852 uint8_t numPart1Params;
1853 uint16_t paramOffsets[0];
1854 uint8_t paramSizes[0];
1855 uint8_t part2SizeMapIndex;
1857 typedef struct PACK_STRUCT fapi_uci_part1_part2
1860 fapi_uci_part2_t uci_part2[0];
1861 } fapi_uci_part1_part2_t;
1863 // Updated per 5G FAPI
1864 typedef struct PACK_STRUCT fapi_ul_pucch_pdu
1868 #ifdef VZ_VERIPHY_INTEG
1873 uint8_t sub_carrier_spacing;
1874 uint8_t cyclic_prefix;
1876 uint8_t format_type;
1877 uint8_t multi_slot_tx_indicator;
1881 uint8_t start_symbol_index;
1882 uint8_t nr_of_symbols;
1883 #ifdef FAPI_222_10_03
1884 uint8_t intraSlotFrequencyHopping;
1886 uint8_t freq_hop_flag;
1888 uint16_t second_hop_prb;
1889 #ifdef FAPI_222_10_03
1890 uint8_t pucchGroupHopping;
1891 uint8_t obsolete8bit;
1892 uint8_t nIdPucchHopping;
1894 uint8_t group_hop_flag;
1895 uint8_t sequence_hop_flag;
1896 uint16_t hopping_id;
1898 uint16_t initial_cyclic_shift;
1899 #ifdef FAPI_222_10_03
1900 uint16_t nIdPucchScrambling;
1902 uint16_t data_scrambling_id;
1904 uint8_t time_domain_occ_idx;
1905 uint8_t pre_dft_occ_idx;
1906 uint8_t pre_dft_occ_len;
1907 uint8_t add_dmrs_flag;
1908 uint16_t dmrs_scrambling_id;
1909 uint8_t dmrs_cyclic_shift;
1911 uint16_t bit_len_harq;
1912 #ifdef FAPI_222_10_03
1913 uint16_t csiPart1BitLength;
1915 uint16_t bit_len_csi_part1;
1916 uint16_t bit_len_csi_part2;
1918 fapi_bmform_t beamforming;
1919 #ifdef FAPI_222_10_03
1920 fapi_pucch_mntnnc_params_t pucch_basicextension;
1921 fapi_uci_part1_part2_t uci_part1_part2;
1923 } fapi_ul_pucch_pdu_t_ue_sim;
1925 // Updated per 5G FAPI
1926 typedef struct PACK_STRUCT fapi_ul_srs_pdu
1930 #ifdef VZ_VERIPHY_INTEG
1935 uint8_t sub_carrier_spacing;
1936 uint8_t cyclic_prefix;
1938 uint8_t num_ant_ports;
1939 uint8_t num_symbols;
1940 uint8_t num_repetitions;
1941 uint8_t time_start_position;
1942 uint8_t config_index;
1943 uint16_t sequence_id;
1944 uint8_t bandwidth_index;
1946 uint8_t comb_offset;
1947 uint8_t cyclic_shift;
1948 uint8_t frequency_position;
1949 uint16_t frequency_shift;
1950 uint8_t frequency_hopping;
1951 uint8_t group_or_sequence_hopping;
1952 uint8_t resource_type;
1955 fapi_bmform_t beamforming;
1956 } fapi_ul_srs_pdu_t_ue_sim;
1958 // Updated per 5G FAPI
1959 typedef struct PACK_STRUCT fapi_ul_tti_req_pdu
1965 fapi_ul_prach_pdu_t_ue_sim prach_pdu;
1966 fapi_ul_pusch_pdu_t_ue_sim pusch_pdu;
1967 fapi_ul_pucch_pdu_t_ue_sim pucch_pdu;
1968 fapi_ul_srs_pdu_t_ue_sim srs_pdu;
1969 //fapi_ul_rx_bmform_pdu_t rx_beamforming_pdu;
1971 } fapi_ul_tti_req_pdu_t_ue_sim;
1973 // Updated per 5G FAPI
1974 typedef struct PACK_STRUCT fapi_ul_tti_req
1976 fapi_msg_header_t_ue_sim header;
1979 #ifdef FAPI_222_10_03
1982 /* [0]: number of PRACH PDUs [1]: number of PUSCH PDUs [2]: number of Format 0/1 PUCCH PDUs [3]: number of Format 2/3/4 PUCCH PDUs [4]: number of SRS PDUs */
1983 uint16_t nPDUsOfEachType[MAX_NUM_UL_TYPES];
1985 /* Indicates if a RACH PDU will be included in this message.
1986 * 0: no RACH in this slot
1987 * 1: RACH in this slot */
1988 uint8_t rach_present;
1989 uint8_t n_ulsch; /* Number of ULSCH PDUs that are included in this message.*/
1990 uint8_t n_ulcch; /* Number of ULCCH PDUs that are included in this message.*/
1993 uint8_t n_group; /* Number of UE Groups included in this message.*/
1994 fapi_ul_tti_req_pdu_t_ue_sim pdus[0];
1995 fapi_ue_info_t_ue_sim ueGrpInfo[0];
1996 } fapi_ul_tti_req_t_ue_sim;
1998 // Updated per 5G FAPI
1999 typedef struct PACK_STRUCT fapi_dci_pdu
2003 fapi_dl_pdcch_pdu_t_ue_sim pdcch_pdu;
2004 } fapi_dci_pdu_t_ue_sim;
2006 // Updated per 5G FAPI
2007 typedef struct PACK_STRUCT fapi_ul_dci_req
2009 fapi_msg_header_t_ue_sim header;
2013 #ifdef FAPI_222_10_03
2015 uint16_t nPDUsOfEachType[MAX_NDLTYPES_UL_DCI_REQ];
2017 fapi_dci_pdu_t_ue_sim pdus[];
2018 } fapi_ul_dci_req_t_ue_sim;
2020 // Updated per 5G FAPI
2021 typedef struct PACK_STRUCT fapi_tx_pdu_desc
2025 #ifdef FAPI_222_10_03
2026 uint8_t cwIndex; /* Ref: Table 3-90 Tx_Data.request message */
2029 fapi_tx_dat_tlv_t tlvs[];
2030 } fapi_tx_pdu_desc_t_ue_sim;
2032 // Updated per 5G FAPI
2033 typedef struct PACK_STRUCT fapi_tx_data_req
2035 fapi_msg_header_t_ue_sim header;
2039 #ifdef VZ_VERIPHY_INTEG
2040 fapi_tx_pdu_desc_t_ue_sim pduDesc[];
2042 fapi_tx_pdu_desc_t_ue_sim pduDesc[];
2044 } fapi_tx_data_req_t_ue_sim;
2046 // Updated per 5G FAPI
2047 typedef struct PACK_STRUCT fapi_pdu_ind_info
2052 #ifndef VZ_VERIPHY_INTEG
2053 uint16_t pdu_length;
2056 uint16_t timing_advance;
2058 #ifdef VZ_VERIPHY_INTEG
2060 uint32_t pdu_length;
2061 uint64_t pduDataOrOffset; //Shared memory offset // 5G FAPI Table 3-61 Subset
2065 } fapi_pdu_ind_info_t_ue_sim;
2067 // Updated per 5G FAPI
2068 typedef struct PACK_STRUCT fapi_rx_data_indication
2070 fapi_msg_header_t_ue_sim header;
2074 fapi_pdu_ind_info_t_ue_sim pdus[MAX_NUMBER_OF_ULSCH_PDUS_PER_TTI];
2075 } fapi_rx_data_indication_t_ue_sim;
2077 // Updated per 5G FAPI
2078 typedef struct PACK_STRUCT fapi_crc_ind_info
2083 uint8_t tb_crc_status;
2085 uint8_t cb_crc_status[MAX_NUM_CB_PER_TTI_IN_BYTES];
2087 uint16_t timing_advance;
2089 } fapi_crc_ind_info_t_ue_sim;
2091 // Updated per 5G FAPI
2092 typedef struct PACK_STRUCT fapi_crc_ind
2094 fapi_msg_header_t_ue_sim header;
2098 fapi_crc_ind_info_t_ue_sim crc[MAX_NUMBER_OF_CRCS_PER_SLOT];
2099 } fapi_crc_ind_t_ue_sim;
2101 typedef enum PACK_STRUCT fapi_uci_mux_typ
2105 FAPI_UCI_CSI_P1 = 4,
2106 FAPI_UCI_CSI_P2 = 8,
2107 FAPI_UCI_MUX_TYP_SR_HQ = 3,
2108 FAPI_UCI_MUX_TYP_SR_CSI_1 = 5,
2109 FAPI_UCI_MUX_TYP_HQ_CSI_1 = 6,
2110 FAPI_UCI_MUX_TYP_SR_HQ_CSI_1 = 7
2111 }fapi_uci_mux_typ_t;
2113 // Updated per 5G FAPI
2114 typedef struct PACK_STRUCT fapi_harq_info
2117 uint16_t harq_bit_len;
2118 uint8_t harq_payload[MAX_HARQ_INFO_LEN_BYTES];
2119 } fapi_harq_info_t_ue_sim;
2121 // Updated per 5G FAPI
2122 typedef struct PACK_STRUCT fapi_csi_p1_info
2124 uint8_t csi_part1_crc;
2125 uint16_t csi_part1_bit_len;
2126 uint8_t csi_part1_payload[MAX_CSI_PART1_DATA_BYTES];
2127 } fapi_csi_p1_info_t_ue_sim;
2129 // Updated per 5G FAPI
2130 typedef struct PACK_STRUCT fapi_csi_p2_info
2132 uint8_t csi_part2_crc;
2133 uint16_t csi_part2_bit_len;
2134 uint8_t csi_part2_payload[MAX_CSI_PART2_DATA_BYTES];
2135 } fapi_csi_p2_info_t_ue_sim;
2137 // Updated per 5G FAPI
2138 typedef struct PACK_STRUCT fapi_uci_o_pusch
2144 uint16_t timing_advance;
2146 fapi_harq_info_t_ue_sim harqInfo; // This is included if indicated by the pduBitmap
2147 fapi_csi_p1_info_t_ue_sim csiPart1info; // This is included if indicated by the pduBitmap
2148 fapi_csi_p2_info_t_ue_sim csiPart2info; // This is included if indicated by the pduBitmap
2149 } fapi_uci_o_pusch_t_ue_sim;
2151 // Updated per 5G FAPI
2152 typedef struct PACK_STRUCT fapi_sr_f0f1_info
2154 uint8_t sr_indication;
2155 uint8_t sr_confidence_level;
2156 } fapi_sr_f0f1_info_t_ue_sim;
2158 // Updated per 5G FAPI
2159 typedef struct PACK_STRUCT fapi_harq_f0f1_info
2162 uint8_t harq_confidence_level;
2163 uint8_t harq_value[MAX_NUMBER_OF_HARQS_PER_IND];
2164 } fapi_harq_f0f1_info_t_ue_sim;
2166 // Updated per 5G FAPI
2167 typedef struct PACK_STRUCT fapi_sr_f2f3f4_info
2170 uint8_t sr_payload[MAX_SR_PAYLOAD_SIZE];
2171 } fapi_sr_f2f3f4_info_t_ue_sim;
2173 // Updated per 5G FAPI
2174 typedef struct PACK_STRUCT fapi_harq_f2f3f4_info
2177 uint16_t harq_bit_len;
2178 uint8_t harq_payload[MAX_HARQ_PAYLOAD_SIZE];
2179 } fapi_harq_f2f3f4_info_t_ue_sim;
2181 // Updated per 5G FAPI
2182 typedef struct PACK_STRUCT fapi_uci_o_pucch_f2f3f4
2187 uint8_t pucch_format;
2189 uint16_t timing_advance;
2191 fapi_sr_f2f3f4_info_t_ue_sim srInfo; // This is included if indicated by the pduBitmap
2192 fapi_harq_f2f3f4_info_t_ue_sim harqInfo; // This is included if indicated by the pduBitmap
2193 fapi_csi_p1_info_t_ue_sim csiPart1Info; // This is included if indicated by the pduBitmap
2194 fapi_csi_p2_info_t_ue_sim csiPart2Info; // This is included if indicated by the pduBitmap
2195 } fapi_uci_o_pucch_f2f3f4_t_ue_sim;
2197 // Updated per 5G FAPI
2198 typedef struct PACK_STRUCT fapi_uci_o_pucch_f0f1
2203 uint8_t pucch_format;
2205 uint16_t timing_advance;
2207 fapi_sr_f0f1_info_t_ue_sim srInfo; // This is included if indicated by the pduBitmap
2208 fapi_harq_f0f1_info_t_ue_sim harqInfo; // This is included if indicated by the pduBitmap
2209 } fapi_uci_o_pucch_f0f1_t_ue_sim;
2211 // Updated per 5G FAPI
2212 typedef struct PACK_STRUCT fapi_uci_pdu_info
2218 fapi_uci_o_pusch_t_ue_sim uci_pusch;
2219 fapi_uci_o_pucch_f0f1_t_ue_sim uci_pucch_f0f1;
2220 fapi_uci_o_pucch_f2f3f4_t_ue_sim uci_pucch_f2f3f4;
2222 } fapi_uci_pdu_info_t_ue_sim;
2224 // Updated per 5G FAPI
2225 typedef struct PACK_STRUCT fapi_uci_indication
2227 fapi_msg_header_t_ue_sim header;
2231 fapi_uci_pdu_info_t_ue_sim uci_pdu[] ;//max length of the array MAX_NUMBER_UCI_PDUS_PER_SLOT;
2232 } fapi_uci_indication_t_ue_sim;
2234 // Updated per 5G FAPI
2235 typedef struct PACK_STRUCT fapi_symb_snr
2238 uint8_t rbSNR[MAX_NUMBER_RBS];
2239 } fapi_symb_snr_t_ue_sim;
2241 // Updated per 5G FAPI
2242 typedef struct PACK_STRUCT fapi_srs_pdu
2246 uint16_t timingAdvance;
2248 uint8_t wideBandSnr;
2249 uint8_t numReportedSymbols;
2250 fapi_symb_snr_t_ue_sim symbSnr[MAX_NUMBER_OF_REP_SYMBOLS];
2251 } fapi_srs_pdu_t_ue_sim;
2253 // Updated per 5G FAPI
2254 typedef struct PACK_STRUCT fapi_srs_indication
2256 fapi_msg_header_t_ue_sim header;
2260 fapi_srs_pdu_t_ue_sim srsPdus[MAX_NUMBER_SRS_PDUS_PER_SLOT];
2261 } fapi_srs_indication_t_ue_sim;
2263 // Updated per 5G FAPI
2264 typedef struct PACK_STRUCT fapi_preamble_info
2266 uint8_t preambleIndex;
2267 uint16_t timingAdvance;
2268 uint32_t premblePwr;
2269 #ifdef FAPI_222_10_03
2270 uint8_t preambleSnr;
2272 } fapi_preamble_info_t_ue_sim;
2274 // Updated per 5G FAPI
2275 typedef struct PACK_STRUCT fapi_rach_pdu
2277 #ifdef FAPI_222_10_03
2280 uint16_t physCellId;
2282 uint8_t symbolIndex;
2284 #ifdef FAPI_222_10_03
2289 #ifdef VZ_VERIPHY_INTEG
2290 uint8_t ulCarrierId;
2292 #ifdef FAPI_222_10_03
2298 uint8_t numPreamble;
2299 fapi_preamble_info_t_ue_sim preambleInfo[MAX_NUM_PREAMBLES_PER_SLOT];
2300 } fapi_rach_pdu_t_ue_sim;
2302 // Updated per 5G FAPI
2303 typedef struct PACK_STRUCT fapi_rach_indication
2305 fapi_msg_header_t_ue_sim header;
2309 fapi_rach_pdu_t_ue_sim rachPdu[MAX_NUMBER_RACH_PDUS_PER_SLOT];
2310 } fapi_rach_indication_t_ue_sim;
2313 ** \struct pkd_fapi_l1api_msg_frmt
2314 ** \brief This structure is FAPI L1API message format towards L1.
2316 typedef struct PACK_STRUCT pkd_fapi_l1api_msg_frmt
2323 * Length of vendor-specific message body (bytes)
2325 uint8_t vendor_spec_msg_len;
2327 * Length of message body (bytes)
2331 * Message Body.(Dummy Field)
2335 * Vendor message Body.(Dummy Field)
2337 uint8_t* vendor_spec_msg_body;
2339 } pkd_fapi_l1api_msg_frmt_t;
2344 //------------------------------------------------------------------------------
2346 #if defined(__cplusplus)