blob: 43d774b2a175653edfce8ce95b72d5a605ca1fa0 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2016
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * iwlan_errc_struct.h
41 *
42 * Project:
43 * --------
44 * UMOLYA
45 *
46 * Description:
47 * ------------
48 * Structs be used in Interfaces of IWLAN - ERRC.
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *----------------------------------------------------------------------------
58 * removed!
59 *
60 * removed!
61 * removed!
62 * removed!
63 * removed!
64 *
65 *
66 *----------------------------------------------------------------------------
67 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
68 *============================================================================
69 ****************************************************************************/
70
71#ifndef _IWLAN_ERRC_STRUCT_H
72#define _IWLAN_ERRC_STRUCT_H
73/****************************************************************************/
74
75#include "kal_general_types.h"
76#include "kal_public_defs.h"
77
78/****************************************************************************/
79
80#define IWLAN_ERRC_UE_CAPA_LWI (1)
81#define IWLAN_ERRC_UE_CAPA_RCLWI (2)
82#define IWLAN_ERRC_UE_CAPA_LWA (4)
83#define IWLAN_ERRC_UE_CAPA_LWIP (8)
84#define IWLAN_MAX_WLAN_ID_R12 (16)
85
86#define IWLAN_ERRC_WLAN_MAX_MEAS_OBJ_BAND_NUM 2
87#define IWLAN_ERRC_WLAN_MAX_WLAN_NUM 32
88#define IWLAN_ERRC_WLAN_MAX_CARR_INFO_NUM 8
89#define IWLAN_ERRC_WLAN_MAX_CARR_INFO_CHANNEL_NUM 16
90#define IWLAN_ERRC_WLAN_MAX_MEAS_OBJECT_NUM 10
91#define IWLAN_ERRC_WLAN_MAX_MEAS_RESULT_NUM 33
92
93#define IWLAN_ERRC_WLAN_RSSI_NEG_INFINITY -128
94#define IWLAN_ERRC_WLAN_RSSI_POS_INFINITY 127
95
96/****************************************************************************/
97
98typedef enum
99{
100 r0, r4, r8, r16, r32, r64, r128, r256, r512,
101 r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072,
102 r262144, r524288, r1048576, r2097152, r4194304, r8388608,
103 r16777216, r33554432, r67108864, r134217728, r268435456,
104 r536870912, r1073741824, r2147483648, r4294967296
105} wlan_backhaulRate_enum;
106
107typedef enum
108{
109 TRIGGERED,
110 NOT_TRIGGERED,
111 UNCHANGED
112} iwlan_errc_lwi_steering_status_enum;
113
114typedef enum
115{
116 IWLAN_ERRC_CONN_TYPE_LWA,
117 IWLAN_ERRC_CONN_TYPE_RCLWI,
118 IWLAN_ERRC_CONN_TYPE_LWIP
119} iwlan_errc_connection_type_enum;
120
121typedef enum
122{
123 IWLAN_ERRC_WLAN_BAND_2_DOT_4,
124 IWLAN_ERRC_WLAN_BAND_5
125} iwlan_errc_wlan_band_enum;
126
127typedef enum
128{
129 IWLAN_ERRC_WLAN_LWA_CONNECTION_SUCCESS,
130 IWLAN_ERRC_WLAN_LWA_CONNECTION_FAILURE
131} iwlan_errc_wlan_lwa_connect_result_enum;
132
133typedef enum
134{
135 IWLAN_ERRC_WLAN_LWA_FAIL_CAUSE_RADIO_LINK_PROBLEM,
136 IWLAN_ERRC_WLAN_LWA_FAIL_CAUSE_UE_INTERNAL_PROBLEM,
137 IWLAN_ERRC_WLAN_LWA_FAIL_CAUSE_SHM_NOT_RDY_PROBLEM
138} iwlan_errc_wlan_lwa_failure_cause_enum;
139
140typedef enum
141{
142 IWLAN_ERRC_WLAN_COUNTRY_CODE_USA,
143 IWLAN_ERRC_WLAN_COUNTRY_CODE_EUROPE,
144 IWLAN_ERRC_WLAN_COUNTRY_CODE_JAPAN,
145 IWLAN_ERRC_WLAN_COUNTRY_CODE_GLOBAL,
146} iwlan_errc_wlan_country_code_enum;
147
148typedef struct
149{
150 /* Length 0 means that ssid is not present. */
151 kal_uint8 opt_ssid_r12;
152 struct errc_ssid_r12_struct {
153 kal_uint8 oct_len;
154 kal_uint8 octs[32];
155 } ssid_r12;
156
157 kal_uint8 opt_bssid_r12;
158 kal_uint8 bssid_r12[6];
159
160 kal_uint8 opt_hessid_r12;
161 kal_uint8 hessid_r12[6];
162} iwlan_errc_wlanidlist_r12_struct;
163
164typedef struct
165{
166 kal_uint8 opt_threshold_rsrp_r12;
167 struct errc_threshold_rsrp_r12_struct {
168 kal_uint8 threshold_rsrp_low_r12;
169 kal_uint8 threshold_rsrp_high_r12;
170 } threshold_rsrp_r12;
171
172 kal_uint8 opt_threshold_rsrq_r12;
173 struct errc_threshold_rsrq_r12_struct {
174 kal_uint8 threshold_rsrq_low_r12;
175 kal_uint8 threshold_rsrq_high_r12;
176 } threshold_rsrq_r12;
177
178 kal_uint8 opt_threshold_channel_utilization_r12;
179 struct errc_threshold_channel_utilization_r12_struct {
180 kal_uint8 threshold_channel_utilization_low_r12;
181 kal_uint8 threshold_channel_utilization_high_r12;
182 } threshold_channel_utilization_r12;
183
184 kal_uint8 opt_threshold_backhaul_bandwidth_r12;
185 struct errc_threshold_backhaul_bandwidth_r12_struct {
186 kal_uint8 threshold_backhaul_dl_bandwidth_low_r12;
187 kal_uint8 threshold_backhaul_dl_bandwidth_high_r12;
188 kal_uint8 threshold_backhaul_ul_bandwidth_low_r12;
189 kal_uint8 threshold_backhaul_ul_bandwidth_high_r12;
190 } threshold_backhaul_bandwidth_r12;
191
192 kal_uint8 opt_threshold_beacon_rssi_r12;
193 struct errc_threshold_beacon_rssi_r12_struct {
194 kal_uint8 threshold_beacon_rssi_low_r12;
195 kal_uint8 threshold_beacon_rssi_high_r12;
196 } threshold_beacon_rssi_r12;
197
198 kal_uint8 opt_offload_preference_indicator_r12;
199 kal_uint8 offload_preference_indicator_r12[2];
200
201 kal_uint8 opt_t_steering_wlan_r12;
202 kal_uint8 t_steering_wlan_r12;
203
204} iwlan_errc_wlan_offloadconfig_r12_struct;
205
206typedef struct
207{
208 /* Length 0 means that ssid is not present. */
209 kal_uint8 ssid_len;
210 kal_uint8 ssid[32];
211
212 kal_bool bssid_valid;
213 kal_uint8 bssid[6];
214
215 kal_bool hessid_valid;
216 kal_uint8 hessid[6];
217} iwlan_errc_wlan_id_struct;
218
219typedef struct
220{
221 kal_bool operating_class_valid;
222 kal_uint8 operating_class;
223
224 kal_bool country_code_valid;
225 iwlan_errc_wlan_country_code_enum country_code;
226
227 /* Length 0 means that the list is not present. */
228 kal_uint8 wlan_channel_list_len;
229 kal_uint8 wlan_channel_list[IWLAN_ERRC_WLAN_MAX_CARR_INFO_CHANNEL_NUM];
230} iwlan_errc_wlan_carrier_info_struct;
231
232typedef struct
233{
234 kal_bool report_carrier_info;
235 kal_bool report_available_admission_capacity;
236 kal_bool report_backhaul_dl_bw;
237 kal_bool report_backhaul_ul_bw;
238 kal_bool report_channel_utilization;
239 kal_bool report_station_count;
240} iwlan_errc_wlan_report_quantity_struct;
241
242typedef struct
243{
244 kal_uint8 meas_object_id;
245
246 kal_uint8 wlan_list_len;
247 iwlan_errc_wlan_id_struct wlan_list[IWLAN_ERRC_WLAN_MAX_WLAN_NUM];
248
249 /* Length 0 means that the list is not present. */
250 kal_uint8 wlan_band_list_len;
251 iwlan_errc_wlan_band_enum wlan_band_list[IWLAN_ERRC_WLAN_MAX_MEAS_OBJ_BAND_NUM];
252
253 /* Length 0 means that the list is not present. */
254 kal_uint8 carrier_info_list_len;
255 iwlan_errc_wlan_carrier_info_struct carrier_info_list[IWLAN_ERRC_WLAN_MAX_CARR_INFO_NUM];
256
257 iwlan_errc_wlan_report_quantity_struct report_quantities;
258} iwlan_errc_wlan_meas_object_struct;
259
260typedef struct
261{
262 iwlan_errc_wlan_id_struct wlan_id;
263 /* RSSI has two special values: negative infinity (-128) and positive infinity (127).
264 Otherwise value range is [-100, 39] */
265 kal_int8 rssi;
266 iwlan_errc_wlan_band_enum band;
267 kal_bool connected;
268
269 kal_bool carrier_info_valid;
270 iwlan_errc_wlan_carrier_info_struct carrier_info;
271
272 kal_bool available_admission_capacity_valid;
273 kal_uint16 available_admission_capacity;
274
275 kal_bool backhaul_dl_bw_valid;
276 kal_uint8 backhaul_dl_bw;
277
278 kal_bool backhaul_ul_bw_valid;
279 kal_uint8 backhaul_ul_bw;
280
281 kal_bool channel_utilization_valid;
282 kal_uint8 channel_utilization;
283
284 kal_bool station_count_valid;
285 kal_uint16 station_count;
286} iwlan_errc_wlan_meas_result_struct;
287
288/* MSG_ID_IWLAN_ERRC_WLAN_CAPABILITY_REQ */
289typedef struct
290{
291 LOCAL_PARA_HDR
292 kal_uint8 capability;
293 kal_uint8 wlan_mac_address[6];
294 kal_uint8 band_2_dot_4_support;
295 kal_uint8 band_5_support;
296} iwlan_errc_wlan_capability_req_struct;
297
298/* MSG_ID_IWLAN_ERRC_WLAN_PARAMETER_IND */
299typedef struct
300{
301 LOCAL_PARA_HDR
302 kal_uint8 opt_wlan_idlist;
303 iwlan_errc_wlanidlist_r12_struct wlanidlist_r12[IWLAN_MAX_WLAN_ID_R12];
304 kal_uint8 opt_wlan_offloadconfig;
305 iwlan_errc_wlan_offloadconfig_r12_struct wlan_offloadconfig_r12;
306} iwlan_errc_wlan_parameter_ind_struct;
307
308/* MSG_ID_IWLAN_ERRC_LWI_STEER_STATUS_IND */
309typedef struct
310{
311 LOCAL_PARA_HDR
312 kal_uint8 transaction_id;
313 iwlan_errc_lwi_steering_status_enum iwlan_errc_lwi_lte_to_wlan_status;
314 iwlan_errc_lwi_steering_status_enum iwlan_errc_lwi_wlan_to_lte_status;
315} iwlan_errc_lwi_steer_status_ind_struct;
316
317/* MSG_ID_IWLAN_ERRC_LWI_STEER_STATUS_REQ */
318typedef struct
319{
320 LOCAL_PARA_HDR
321 kal_uint8 transaction_id;
322 kal_bool measurement_switch;
323} iwlan_errc_lwi_steer_status_req_struct;
324
325/* MSG_ID_IWLAN_ERRC_WLAN_MEASUEMENT_IND */
326typedef struct
327{
328 LOCAL_PARA_HDR
329 kal_uint8 filter_coefficient;
330
331 kal_uint8 meas_object_list_len;
332 iwlan_errc_wlan_meas_object_struct meas_object_list[IWLAN_ERRC_WLAN_MAX_MEAS_OBJECT_NUM];
333} iwlan_errc_wlan_measurement_ind_struct;
334
335/* MSG_ID_IWLAN_ERRC_WLAN_MEASUEMENT_REQ */
336typedef struct
337{
338 LOCAL_PARA_HDR
339 kal_bool is_wlan_resource_available;
340 kal_uint8 meas_object_id;
341
342 kal_uint8 meas_result_list_len;
343 iwlan_errc_wlan_meas_result_struct meas_result_list[IWLAN_ERRC_WLAN_MAX_MEAS_RESULT_NUM];
344
345#ifdef UNIT_TEST
346 kal_uint32 meas_req_ms_diff;
347#endif /* UNIT_TEST */
348} iwlan_errc_wlan_measurement_req_struct;
349
350/* MSG_ID_IWLAN_ERRC_WLAN_LWA_CONNECT_IND */
351typedef struct
352{
353 LOCAL_PARA_HDR
354 kal_uint8 connect_type;
355 kal_uint8 wlan_mobility_set_list_len;
356 iwlan_errc_wlan_id_struct wlan_mobility_set_list[IWLAN_ERRC_WLAN_MAX_WLAN_NUM];
357
358 /* S-Kwt encoding:
359 bits 0..7 encoded in s_kwt[0]
360 bits 8..15 encoded in s_kwt[1]
361 ...
362 First bit of S-Kwt is the MSB of s_kwt[0]. */
363 kal_bool s_kwt_valid;
364 kal_uint8 s_kwt[32];
365} iwlan_errc_wlan_lwa_connect_ind_struct;
366
367/* MSG_ID_IWLAN_ERRC_WLAN_LWA_CONNECT_RSP */
368typedef struct
369{
370 LOCAL_PARA_HDR
371 iwlan_errc_wlan_lwa_connect_result_enum result;
372 iwlan_errc_wlan_lwa_failure_cause_enum failure_cause;
373 iwlan_errc_wlan_id_struct wlan_id;
374} iwlan_errc_wlan_lwa_connect_rsp_struct;
375
376/* MSG_ID_IWLAN_ERRC_WLAN_LWA_LOST_REQ */
377typedef struct
378{
379 LOCAL_PARA_HDR
380 iwlan_errc_wlan_lwa_failure_cause_enum cause;
381} iwlan_errc_wlan_lwa_lost_req_struct;
382
383/****************************************************************************/
384#endif /* _IWLAN_ERRC_STRUCT_H */