1 /******************************************************************************
3 * Copyright (c) 2019 Intel.
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.
17 *******************************************************************************/
19 #ifndef _FAPI_VENDOR_EXTENSION_H_
20 #define _FAPI_VENDOR_EXTENSION_H_
22 #if defined(__cplusplus)
26 #define FAPI_VENDOR_MESSAGE 0x10
27 #define FAPI_VENDOR_EXT_SHUTDOWN_REQUEST 0x11
28 #define FAPI_VENDOR_EXT_SHUTDOWN_RESPONSE 0x12
31 #define FAPI_VENDOR_EXT_DL_IQ_SAMPLES 0x13
32 #define FAPI_VENDOR_EXT_UL_IQ_SAMPLES 0x14
33 #define FAPI_VENDOR_EXT_START_RESPONSE 0x15
36 /* ----- WLS Operation --- */
37 #define FAPI_VENDOR_MSG_HEADER_IND 0x1A
40 #define FAPI_VENDOR_MSG_PHY_ZBC_BLOCK_REQ 0x1B
42 // Linked list header present at the top of all messages
43 typedef struct _fapi_api_queue_elem {
44 struct _fapi_api_queue_elem *p_next;
45 // p_tx_data_elm_list used for TX_DATA.request processing
46 struct _fapi_api_queue_elem *p_tx_data_elm_list;
48 uint8_t num_message_in_block;
50 uint32_t align_offset;
52 } fapi_api_queue_elem_t,
53 *p_fapi_api_queue_elem_t;
54 /* ----------------------- */
57 #define FAPI_MAX_IQ_SAMPLE_FILE_SIZE 576
58 #define FAPI_MAX_IQ_SAMPLE_DL_PORTS 16
59 #define FAPI_MAX_IQ_SAMPLE_UL_PORTS 2
60 #define FAPI_MAX_IQ_SAMPLE_UL_VIRTUAL_PORTS 8
61 #define FAPI_MAX_IQ_SAMPLE_UL_ANTENNA 64
62 #define FAPI_MAX_IQ_SAMPLE_BUFFER_SIZE 4096
67 uint8_t carrier_aggregation_level;
68 uint8_t group_hop_flag;
69 uint8_t sequence_hop_flag;
70 // uint8_t nDMRS_type_A_pos;
72 } fapi_config_req_vendor_msg_t;
82 } fapi_start_req_vendor_msg_t;
87 } fapi_stop_req_vendor_msg_t;
91 fapi_config_req_vendor_msg_t config_req_vendor;
92 fapi_start_req_vendor_msg_t start_req_vendor;
93 fapi_stop_req_vendor_msg_t stop_req_vendor;
101 } fapi_vendor_ext_shutdown_req_t;
108 } fapi_vendor_ext_shutdown_res_t;
113 uint32_t numSubframes;
114 uint32_t nIsRadioMode;
115 uint32_t timerModeFreqDomain;
116 uint32_t phaseCompensationEnable;
117 uint32_t startFrameNum;
118 uint32_t startSlotNum;
119 uint32_t startSymNum;
120 char filename_in_ul_iq[FAPI_MAX_IQ_SAMPLE_UL_VIRTUAL_PORTS]
121 [FAPI_MAX_IQ_SAMPLE_FILE_SIZE];
122 char filename_in_prach_iq[FAPI_MAX_IQ_SAMPLE_UL_VIRTUAL_PORTS]
123 [FAPI_MAX_IQ_SAMPLE_FILE_SIZE];
124 char filename_in_srs_iq[FAPI_MAX_IQ_SAMPLE_UL_ANTENNA]
125 [FAPI_MAX_IQ_SAMPLE_FILE_SIZE];
126 char filename_out_dl_iq[FAPI_MAX_IQ_SAMPLE_FILE_SIZE];
127 char filename_out_dl_beam[FAPI_MAX_IQ_SAMPLE_DL_PORTS]
128 [FAPI_MAX_IQ_SAMPLE_FILE_SIZE];
129 char filename_out_ul_beam[FAPI_MAX_IQ_SAMPLE_UL_VIRTUAL_PORTS]
130 [FAPI_MAX_IQ_SAMPLE_FILE_SIZE];
131 uint8_t buffer[FAPI_MAX_IQ_SAMPLE_BUFFER_SIZE];
132 } fapi_vendor_ext_iq_samples_info_t;
136 fapi_vendor_ext_iq_samples_info_t iq_samples_info;
137 } fapi_vendor_ext_iq_samples_req_t;
141 } fapi_vendor_ext_dl_iq_samples_res_t;
145 } fapi_vendor_ext_ul_iq_samples_res_t;
149 } fapi_vendor_ext_start_response_t;
152 #if defined(__cplusplus)
155 #endif // FAPI_VENDOR_EXTENSION_H_