Mistake on this page?
Report an issue in GitHub or email us
whd_types.h
Go to the documentation of this file.
1 /*
2  * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company)
3  * SPDX-License-Identifier: Apache-2.0
4  *
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
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
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 
18 /** @file whd_types.h
19  * Defines common data types used with WHD
20  *
21  */
22 
23 #include <stdint.h>
24 #include "cy_result.h"
25 #include "cyhal_hw_types.h"
26 
27 #ifndef INCLUDED_WHD_TYPES_H_
28 #define INCLUDED_WHD_TYPES_H_
29 
30 #ifdef __cplusplus
31 extern "C"
32 {
33 #endif
34 
35 /******************************************************
36 * Macros
37 ******************************************************/
38 #define SSID_NAME_SIZE (32) /**< SSID Length */
39 
40 #define WEP_ENABLED 0x0001 /**< Flag to enable WEP Security */
41 #define TKIP_ENABLED 0x0002 /**< Flag to enable TKIP Encryption */
42 #define AES_ENABLED 0x0004 /**< Flag to enable AES Encryption */
43 #define SHARED_ENABLED 0x00008000 /**< Flag to enable Shared key Security */
44 #define WPA_SECURITY 0x00200000 /**< Flag to enable WPA Security */
45 #define WPA2_SECURITY 0x00400000 /**< Flag to enable WPA2 Security */
46 #define WPA3_SECURITY 0x01000000 /**< Flag to enable WPA3 PSK Security */
47 #define SECURITY_MASK (WEP_ENABLED | TKIP_ENABLED | AES_ENABLED) /**< Flag to Security mask */
48 
49 #define ENTERPRISE_ENABLED 0x02000000 /**< Flag to enable Enterprise Security */
50 #define WPS_ENABLED 0x10000000 /**< Flag to enable WPS Security */
51 #define IBSS_ENABLED 0x20000000 /**< Flag to enable IBSS mode */
52 #define FBT_ENABLED 0x40000000 /**< Flag to enable FBT */
53 
54 #define PM1_POWERSAVE_MODE (1) /**< Powersave mode on specified interface without regard for throughput reduction */
55 #define PM2_POWERSAVE_MODE (2) /**< Powersave mode on specified interface with High throughput */
56 #define NO_POWERSAVE_MODE (0) /**< No Powersave mode */
57 
58 /**
59  * Suppress unused parameter warning
60  */
61 #define UNUSED_PARAMETER(x) ( (void)(x) )
62 
63 /**
64  * Suppress unused variable warning
65  */
66 #define UNUSED_VARIABLE(x) ( (void)(x) )
67 
68 /**
69  * Suppress unused variable warning occurring due to an assert which is disabled in release mode
70  */
71 #define REFERENCE_DEBUG_ONLY_VARIABLE(x) ( (void)(x) )
72 
73 /******************************************************
74 *@cond Type Definitions
75 ******************************************************/
76 typedef void *whd_buffer_t;
77 typedef struct wl_bss_info_struct whd_bss_info_t;
78 typedef struct edcf_acparam whd_edcf_ac_param_t;
79 typedef struct wl_af_params whd_af_params_t;
80 typedef struct whd_arp_stats_s whd_arp_stats_t;
81 typedef struct wl_pkt_filter_stats whd_pkt_filter_stats_t;
82 typedef struct whd_tko_retry whd_tko_retry_t;
83 typedef struct whd_tko_connect whd_tko_connect_t;
84 typedef struct whd_tko_status whd_tko_status_t;
85 /** @endcond */
86 /******************************************************
87 * Constants
88 ******************************************************/
89 
90 #define WIFI_IE_OUI_LENGTH (3) /**< OUI length for Information Element */
91 
92 /* Below constants are used to allocate the buffer pool by the application */
93 
94 #define BDC_HEADER_WITH_PAD 6 /**< BDC Header with padding 4 + 2 */
95 
96 /** From bdc header, Ethernet data starts after an offset of (bdc_header->data_offset<<2).
97  * It is variable, but usually 4.
98  */
99 #define BDC_HEADER_OFFSET_TO_DATA 4
100 
101 #define SDPCM_HEADER (8 + 4) /**< SDPCM SW header + Frame tag */
102 
103 #define MAX_BUS_HEADER_SIZE 4 /**< Max bus header size for all bus types (sdio/spi) */
104 
105 #define BUFFER_OVERHEAD 4 /**< Buffer overhead, sizeof(void *) */
106 
107 /**
108  * The maximum space in bytes required for headers in front of the Ethernet header.
109  * 6 + (8 + 4) + 4 + 4 + 4 = 30 bytes
110  */
111 #define WHD_LINK_HEADER (BDC_HEADER_WITH_PAD + BDC_HEADER_OFFSET_TO_DATA + \
112  SDPCM_HEADER + MAX_BUS_HEADER_SIZE + BUFFER_OVERHEAD)
113 
114 /**
115  * The size of an Ethernet header
116  */
117 #define WHD_ETHERNET_SIZE (14)
118 
119 /**
120  * The size in bytes of the Link layer header i.e. the whd specific headers and the Ethernet header
121  */
122 #define WHD_PHYSICAL_HEADER (WHD_LINK_HEADER + WHD_ETHERNET_SIZE)
123 
124 /**
125  * The maximum size in bytes of the data part of an Ethernet frame
126  */
127 #ifndef WHD_PAYLOAD_MTU
128 #define WHD_PAYLOAD_MTU (1500)
129 #endif
130 
131 /**
132  * The maximum size in bytes of a packet used within whd.
133  * Pool should be atleast of this size.
134  * Usually buffer pools needs implementation specific headers like pbuf header etc, that should be
135  * taken into account along with this during buffer pool creation. Also buffer pools needs alignment with
136  * cache size of the platform for better performance
137  */
138 #define WHD_LINK_MTU (WHD_PAYLOAD_MTU + WHD_PHYSICAL_HEADER)
139 
140 /** @cond */
141 #ifdef __x86_64__
142 typedef uint64_t whd_thread_arg_t;
143 #else
144 typedef uint32_t whd_thread_arg_t;
145 #endif
146 /** @endcond */
147 /******************************************************
148 * Structures and Enumerations
149 ******************************************************/
150 /**
151  * Enumeration of Dot11 Reason Codes
152  */
153 typedef enum
154 {
155  WHD_DOT11_RC_RESERVED = 0, /**< Reserved */
156  WHD_DOT11_RC_UNSPECIFIED = 1 /**< Unspecified */
158 
159 /**
160  * Boolean values
161  */
162 typedef enum
163 {
164  WHD_FALSE = 0, /**< Boolean True */
165  WHD_TRUE = 1 /**< Boolean False */
166 } whd_bool_t;
167 
168 
169 /**
170  * Transfer direction for the WHD platform bus interface
171  */
172 typedef enum
173 {
174  /* If updating this enum, the bus_direction_mapping variable will also need to be updated */
175  BUS_READ, /**< Specifies bus type and read direction */
176  BUS_WRITE /**< Specifies bus type and write direction */
178 
179 /**
180  * Enumeration of Wi-Fi security modes
181  */
182 typedef enum
183 {
184  WHD_SECURITY_OPEN = 0, /**< Open security */
185  WHD_SECURITY_WEP_PSK = WEP_ENABLED, /**< WEP PSK Security with open authentication */
186  WHD_SECURITY_WEP_SHARED = (WEP_ENABLED | SHARED_ENABLED), /**< WEP PSK Security with shared authentication */
187  WHD_SECURITY_WPA_TKIP_PSK = (WPA_SECURITY | TKIP_ENABLED), /**< WPA PSK Security with TKIP */
188  WHD_SECURITY_WPA_AES_PSK = (WPA_SECURITY | AES_ENABLED), /**< WPA PSK Security with AES */
189  WHD_SECURITY_WPA_MIXED_PSK = (WPA_SECURITY | AES_ENABLED | TKIP_ENABLED), /**< WPA PSK Security with AES & TKIP */
190  WHD_SECURITY_WPA2_AES_PSK = (WPA2_SECURITY | AES_ENABLED), /**< WPA2 PSK Security with AES */
191  WHD_SECURITY_WPA2_TKIP_PSK = (WPA2_SECURITY | TKIP_ENABLED), /**< WPA2 PSK Security with TKIP */
192  WHD_SECURITY_WPA2_MIXED_PSK = (WPA2_SECURITY | AES_ENABLED | TKIP_ENABLED), /**< WPA2 PSK Security with AES & TKIP */
193  WHD_SECURITY_WPA2_FBT_PSK = (WPA2_SECURITY | AES_ENABLED | FBT_ENABLED), /**< WPA2 FBT PSK Security with AES & TKIP */
194  WHD_SECURITY_WPA3_SAE = (WPA3_SECURITY | AES_ENABLED), /**< WPA3 Security with AES */
195  WHD_SECURITY_WPA2_WPA_AES_PSK = (WPA2_SECURITY | WPA_SECURITY | AES_ENABLED), /**< WPA2 WPA PSK Security with AES */
196  WHD_SECURITY_WPA2_WPA_MIXED_PSK = (WPA2_SECURITY | WPA_SECURITY | AES_ENABLED | TKIP_ENABLED), /**< WPA2 WPA PSK Security with AES & TKIP */
197 
198  WHD_SECURITY_WPA3_WPA2_PSK = (WPA3_SECURITY | WPA2_SECURITY | AES_ENABLED), /**< WPA3 WPA2 PSK Security with AES */
199 
200  WHD_SECURITY_WPA_TKIP_ENT = (ENTERPRISE_ENABLED | WPA_SECURITY | TKIP_ENABLED), /**< WPA Enterprise Security with TKIP */
201  WHD_SECURITY_WPA_AES_ENT = (ENTERPRISE_ENABLED | WPA_SECURITY | AES_ENABLED), /**< WPA Enterprise Security with AES */
202  WHD_SECURITY_WPA_MIXED_ENT = (ENTERPRISE_ENABLED | WPA_SECURITY | AES_ENABLED | TKIP_ENABLED), /**< WPA Enterprise Security with AES & TKIP */
203  WHD_SECURITY_WPA2_TKIP_ENT = (ENTERPRISE_ENABLED | WPA2_SECURITY | TKIP_ENABLED), /**< WPA2 Enterprise Security with TKIP */
204  WHD_SECURITY_WPA2_AES_ENT = (ENTERPRISE_ENABLED | WPA2_SECURITY | AES_ENABLED), /**< WPA2 Enterprise Security with AES */
205  WHD_SECURITY_WPA2_MIXED_ENT = (ENTERPRISE_ENABLED | WPA2_SECURITY | AES_ENABLED | TKIP_ENABLED), /**< WPA2 Enterprise Security with AES & TKIP */
206  WHD_SECURITY_WPA2_FBT_ENT = (ENTERPRISE_ENABLED | WPA2_SECURITY | AES_ENABLED | FBT_ENABLED), /**< WPA2 Enterprise Security with AES & FBT */
207 
208  WHD_SECURITY_IBSS_OPEN = (IBSS_ENABLED), /**< Open security on IBSS ad-hoc network */
209  WHD_SECURITY_WPS_SECURE = AES_ENABLED, /**< WPS with AES security */
210 
211  WHD_SECURITY_UNKNOWN = -1, /**< May be returned by scan function if security is unknown. Do not pass this to the join function! */
212 
213  WHD_SECURITY_FORCE_32_BIT = 0x7fffffff /**< Exists only to force whd_security_t type to 32 bits */
215 
216 /**
217  * Enumeration of methods of scanning
218  */
219 typedef enum
220 {
221  WHD_SCAN_TYPE_ACTIVE = 0x00, /**< Actively scan a network by sending 802.11 probe(s) */
222  WHD_SCAN_TYPE_PASSIVE = 0x01, /**< Passively scan a network by listening for beacons from APs */
223  WHD_SCAN_TYPE_PNO = 0x02, /**< Use preferred network offload to detect an AP */
224  WHD_SCAN_TYPE_PROHIBITED_CHANNELS = 0x04, /**< Permit (passively) scanning a channel that isn't valid for the current country */
225  WHD_SCAN_TYPE_NO_BSSID_FILTER = 0x08 /**< Return a scan record for each beacon or probe response RX'ed */
227 
228 /**
229  * Enumeration of network types
230  */
231 typedef enum
232 {
233  WHD_BSS_TYPE_INFRASTRUCTURE = 0, /**< Denotes infrastructure network */
234  WHD_BSS_TYPE_ADHOC = 1, /**< Denotes an 802.11 ad-hoc IBSS network */
235  WHD_BSS_TYPE_ANY = 2, /**< Denotes either infrastructure or ad-hoc network */
236  WHD_BSS_TYPE_MESH = 3, /**< Denotes 802.11 mesh network */
237 
238  WHD_BSS_TYPE_UNKNOWN = -1 /**< May be returned by scan function if BSS type is unknown. Do not pass this to the Join function */
240 
241 /**
242  * Enumeration of 802.11 radio bands
243  */
244 typedef enum
245 {
246  WHD_802_11_BAND_5GHZ = 0, /**< Denotes 5GHz radio band */
247  WHD_802_11_BAND_2_4GHZ = 1 /**< Denotes 2.4GHz radio band */
249 
250 /**
251  * Enumeration of custom IE(Information Element) management actions
252  */
253 typedef enum
254 {
255  WHD_ADD_CUSTOM_IE, /**< Add a custom IE(Information Element) */
256  WHD_REMOVE_CUSTOM_IE /**< Remove a custom IE(Information Element) */
258 
259 
260 /**
261  * Enumeration of listen interval time unit types
262  */
263 typedef enum
264 {
265  WHD_LISTEN_INTERVAL_TIME_UNIT_BEACON, /**< Time units specified in beacon periods */
266  WHD_LISTEN_INTERVAL_TIME_UNIT_DTIM /**< Time units specified in DTIM periods */
268 
269 /**
270  * Structure for storing scan status
271  */
272 typedef enum
273 {
274  WHD_SCAN_INCOMPLETE, /**< Denotes that scan is not finished */
275  WHD_SCAN_COMPLETED_SUCCESSFULLY, /**< Successful completion of scan */
276  WHD_SCAN_ABORTED, /**< Scan is aborted */
278 
279 /**
280  * Structure for storing radio band list information
281  */
282 typedef struct
283 {
284  int32_t number_of_bands; /**< Number of bands supported, currently 1 or 2 */
285  int32_t current_band; /**< Current band type: WLC_BAND_2G or WLC_BAND_5G */
286  int32_t other_band; /**< If value of number_of_bands parameter is 2, then this member specifies the 2nd band */
288 
289 /**
290  * Enumeration of scan result flags
291  */
292 typedef enum
293 {
294  WHD_SCAN_RESULT_FLAG_RSSI_OFF_CHANNEL = 0x01, /**< RSSI came from an off channel DSSS (1 or 1 Mb) Rx */
295  WHD_SCAN_RESULT_FLAG_BEACON = 0x02 /**< Beacon (vs probe response) */
297 
298 /**
299  * Protected Management Frame Capability
300  */
301 enum
302 {
303  WL_MFP_NONE = 0, /**< Disables the client support for MFP. */
304  WL_MFP_CAPABLE, /**< Allows both MFP-capable and clients that do not support MFP to join the network. */
305  WL_MFP_REQUIRED /**< Clients are allowed to associate only if MFP is negotiated. */
306 };
307 
308 
309 /**
310  * Enumeration of ioctl get
311  */
312 typedef enum
313 {
314  WHD_IOCTL_GET_RATE = 12,
315  WHD_IOCTL_GET_COUNTRY = 83,
316  WHD_IOCTL_GET_CLK = 160,
317  WHD_IOCTL_GET_WSEC = 133,
318  WHD_IOCTL_GET_AUTH = 21,
319  WHD_IOCTL_GET_WPA_AUTH = 164,
320  WHD_IOCTL_GET_PM = 85,
321  WHD_IOCTL_GET_BSSID = 23,
322  WHD_IOCTL_GET_ASSOCLIST = 159,
323  WHD_IOCTL_GET_BSS_INFO = 136,
324  WHD_IOCTL_GET_CHANNEL = 29
325 
327 
328 /**
329  * Enumeration of ioctl set
330  */
331 typedef enum
332 {
333  WHD_IOCTL_SET_CHANNEL = 30,
334  WHD_IOCTL_SET_WSEC_PMK = 268,
335  WHD_IOCTL_SET_KEY = 45,
336  WHD_IOCTL_SET_WPA_AUTH = 165,
337  WHD_IOCTL_SCB_DEAUTHENTICATE_FOR_REASON = 201,
338  WHD_IOCTL_SET_PM = 86,
339  WHD_IOCTL_SET_SSID = 26,
340  WHD_IOCTL_SET_BCNPRD = 76,
341  WHD_IOCTL_SET_DTIMPRD = 78,
342  WHD_IOCTL_SET_WSEC = 134,
343  WHD_IOCTL_SET_INFRA = 20,
344  WHD_IOCTL_SET_AUTH = 22
345 
347 
348 /**
349  * IOVAR set list
350  */
351 typedef enum
352 {
353  WHD_IOVAR_SET_MFP = 0,
354  WHD_IOVAR_SET_MPC,
355  WHD_IOVAR_SET_AMPDU_BA_WINDOW_SIZE,
356  WHD_IOVAR_SET_AMPDU_MPDU,
357  WHD_IOVAR_SET_LISTEN_INTERVAL_BEACON,
358  WHD_IOVAR_SET_LISTEN_INTERVAL_DTIM,
359  WHD_IOVAR_SET_LISTEN_INTERVAL_ASSOC,
361 
362 /**
363  * IOVAR get list
364  */
365 typedef enum
366 {
367  WHD_IOVAR_GET_MFP = 0,
368  WHD_IOVAR_GET_MPC,
369  WHD_IOVAR_GET_AMPDU_BA_WINDOW_SIZE,
370  WHD_IOVAR_GET_AMPDU_MPDU,
371  WHD_IOVAR_GET_LISTEN_INTERVAL, /**< Get Listen Interval value */
372  WHD_IOVAR_GET_MAC_ADDRESS, /**< Get mac address */
374 
375 /******************************************************
376 * Type Definitions
377 ******************************************************/
378 /** @cond */
379 typedef struct whd_event_msg whd_event_header_t;
380 /** @endcond */
381 
382 /**
383  * Structure for storing a MAC address (Wi-Fi Media Access Control address).
384  */
385 typedef struct
386 {
387  uint8_t octet[6]; /**< Unique 6-byte MAC address */
388 } whd_mac_t;
389 
390 /**
391  * Structure for storing a Service Set Identifier (i.e. Name of Access Point)
392  */
393 typedef struct
394 {
395  uint8_t length; /**< SSID length */
396  uint8_t value[SSID_NAME_SIZE]; /**< SSID name (AP name) */
397 } whd_ssid_t;
398 
399 /**<
400  The received packet formats are different when EXT_STA is enabled. In case
401  of EXT_STA the received packets are in 802.11 format, where as in other
402  case the received packets have Ethernet II format
403 
404  1. 802.11 frames
405  ----------------------------------------------------------------------------
406  | FC (2) | DID (2) |A1 (6) |A2 (6)|A3 (6) |SID (2) |SNAP (6) |type (2) |data (46 - 1500) |
407  ----------------------------------------------------------------------------
408 
409  2. Ethernet II frames
410  -------------------------------------------------
411  | DA (6) | SA (6) | type (2) | data (46 - 1500) |
412  -------------------------------------------------
413  */
414 
415 
416 /**
417  * Macro for creating country codes according to endianness
418  * @cond !ADDTHIS
419  */
420 #ifdef IL_BIGENDIAN
421 #define MK_CNTRY(a, b, \
422  rev) ( ( (unsigned char)(b) ) + ( ( (unsigned char)(a) ) << 8 ) + \
423  ( ( (unsigned short)(rev) ) << 16 ) )
424 #else /* ifdef IL_BIGENDIAN */
425 #define MK_CNTRY(a, b, \
426  rev) ( ( (unsigned char)(a) ) + ( ( (unsigned char)(b) ) << 8 ) + \
427  ( ( (unsigned short)(rev) ) << 16 ) )
428 #endif /* ifdef IL_BIGENDIAN */
429 /** @endcond */
430 
431 /**
432  * Enumerated list of country codes
433  */
434 typedef enum
435 {
436  WHD_COUNTRY_AFGHANISTAN = MK_CNTRY('A', 'F', 0), /**< AF Afghanistan */
437  WHD_COUNTRY_ALBANIA = MK_CNTRY('A', 'L', 0), /**< AL Albania */
438  WHD_COUNTRY_ALGERIA = MK_CNTRY('D', 'Z', 0), /**< DZ Algeria */
439  WHD_COUNTRY_AMERICAN_SAMOA = MK_CNTRY('A', 'S', 0), /**< AS American_Samoa */
440  WHD_COUNTRY_ANGOLA = MK_CNTRY('A', 'O', 0), /**< AO Angola */
441  WHD_COUNTRY_ANGUILLA = MK_CNTRY('A', 'I', 0), /**< AI Anguilla */
442  WHD_COUNTRY_ANTIGUA_AND_BARBUDA = MK_CNTRY('A', 'G', 0), /**< AG Antigua_and_Barbuda */
443  WHD_COUNTRY_ARGENTINA = MK_CNTRY('A', 'R', 0), /**< AR Argentina */
444  WHD_COUNTRY_ARMENIA = MK_CNTRY('A', 'M', 0), /**< AM Armenia */
445  WHD_COUNTRY_ARUBA = MK_CNTRY('A', 'W', 0), /**< AW Aruba */
446  WHD_COUNTRY_AUSTRALIA = MK_CNTRY('A', 'U', 0), /**< AU Australia */
447  WHD_COUNTRY_AUSTRIA = MK_CNTRY('A', 'T', 0), /**< AT Austria */
448  WHD_COUNTRY_AZERBAIJAN = MK_CNTRY('A', 'Z', 0), /**< AZ Azerbaijan */
449  WHD_COUNTRY_BAHAMAS = MK_CNTRY('B', 'S', 0), /**< BS Bahamas */
450  WHD_COUNTRY_BAHRAIN = MK_CNTRY('B', 'H', 0), /**< BH Bahrain */
451  WHD_COUNTRY_BAKER_ISLAND = MK_CNTRY('0', 'B', 0), /**< 0B Baker_Island */
452  WHD_COUNTRY_BANGLADESH = MK_CNTRY('B', 'D', 0), /**< BD Bangladesh */
453  WHD_COUNTRY_BARBADOS = MK_CNTRY('B', 'B', 0), /**< BB Barbados */
454  WHD_COUNTRY_BELARUS = MK_CNTRY('B', 'Y', 0), /**< BY Belarus */
455  WHD_COUNTRY_BELGIUM = MK_CNTRY('B', 'E', 0), /**< BE Belgium */
456  WHD_COUNTRY_BELIZE = MK_CNTRY('B', 'Z', 0), /**< BZ Belize */
457  WHD_COUNTRY_BENIN = MK_CNTRY('B', 'J', 0), /**< BJ Benin */
458  WHD_COUNTRY_BERMUDA = MK_CNTRY('B', 'M', 0), /**< BM Bermuda */
459  WHD_COUNTRY_BHUTAN = MK_CNTRY('B', 'T', 0), /**< BT Bhutan */
460  WHD_COUNTRY_BOLIVIA = MK_CNTRY('B', 'O', 0), /**< BO Bolivia */
461  WHD_COUNTRY_BOSNIA_AND_HERZEGOVINA = MK_CNTRY('B', 'A', 0), /**< BA Bosnia_and_Herzegovina */
462  WHD_COUNTRY_BOTSWANA = MK_CNTRY('B', 'W', 0), /**< BW Botswana */
463  WHD_COUNTRY_BRAZIL = MK_CNTRY('B', 'R', 0), /**< BR Brazil */
464  WHD_COUNTRY_BRITISH_INDIAN_OCEAN_TERRITORY = MK_CNTRY('I', 'O', 0), /**< IO British_Indian_Ocean_Territory */
465  WHD_COUNTRY_BRUNEI_DARUSSALAM = MK_CNTRY('B', 'N', 0), /**< BN Brunei_Darussalam */
466  WHD_COUNTRY_BULGARIA = MK_CNTRY('B', 'G', 0), /**< BG Bulgaria */
467  WHD_COUNTRY_BURKINA_FASO = MK_CNTRY('B', 'F', 0), /**< BF Burkina_Faso */
468  WHD_COUNTRY_BURUNDI = MK_CNTRY('B', 'I', 0), /**< BI Burundi */
469  WHD_COUNTRY_CAMBODIA = MK_CNTRY('K', 'H', 0), /**< KH Cambodia */
470  WHD_COUNTRY_CAMEROON = MK_CNTRY('C', 'M', 0), /**< CM Cameroon */
471  WHD_COUNTRY_CANADA = MK_CNTRY('C', 'A', 0), /**< CA Canada */
472  WHD_COUNTRY_CANADA_REV950 = MK_CNTRY('C', 'A', 950), /**< CA Canada Revision 950 */
473  WHD_COUNTRY_CAPE_VERDE = MK_CNTRY('C', 'V', 0), /**< CV Cape_Verde */
474  WHD_COUNTRY_CAYMAN_ISLANDS = MK_CNTRY('K', 'Y', 0), /**< KY Cayman_Islands */
475  WHD_COUNTRY_CENTRAL_AFRICAN_REPUBLIC = MK_CNTRY('C', 'F', 0), /**< CF Central_African_Republic */
476  WHD_COUNTRY_CHAD = MK_CNTRY('T', 'D', 0), /**< TD Chad */
477  WHD_COUNTRY_CHILE = MK_CNTRY('C', 'L', 0), /**< CL Chile */
478  WHD_COUNTRY_CHINA = MK_CNTRY('C', 'N', 0), /**< CN China */
479  WHD_COUNTRY_CHRISTMAS_ISLAND = MK_CNTRY('C', 'X', 0), /**< CX Christmas_Island */
480  WHD_COUNTRY_COLOMBIA = MK_CNTRY('C', 'O', 0), /**< CO Colombia */
481  WHD_COUNTRY_COMOROS = MK_CNTRY('K', 'M', 0), /**< KM Comoros */
482  WHD_COUNTRY_CONGO = MK_CNTRY('C', 'G', 0), /**< CG Congo */
483  WHD_COUNTRY_CONGO_THE_DEMOCRATIC_REPUBLIC_OF_THE = MK_CNTRY('C', 'D', 0), /**< CD Congo,_The_Democratic_Republic_Of_The */
484  WHD_COUNTRY_COSTA_RICA = MK_CNTRY('C', 'R', 0), /**< CR Costa_Rica */
485  WHD_COUNTRY_COTE_DIVOIRE = MK_CNTRY('C', 'I', 0), /**< CI Cote_D'ivoire */
486  WHD_COUNTRY_CROATIA = MK_CNTRY('H', 'R', 0), /**< HR Croatia */
487  WHD_COUNTRY_CUBA = MK_CNTRY('C', 'U', 0), /**< CU Cuba */
488  WHD_COUNTRY_CYPRUS = MK_CNTRY('C', 'Y', 0), /**< CY Cyprus */
489  WHD_COUNTRY_CZECH_REPUBLIC = MK_CNTRY('C', 'Z', 0), /**< CZ Czech_Republic */
490  WHD_COUNTRY_DENMARK = MK_CNTRY('D', 'K', 0), /**< DK Denmark */
491  WHD_COUNTRY_DJIBOUTI = MK_CNTRY('D', 'J', 0), /**< DJ Djibouti */
492  WHD_COUNTRY_DOMINICA = MK_CNTRY('D', 'M', 0), /**< DM Dominica */
493  WHD_COUNTRY_DOMINICAN_REPUBLIC = MK_CNTRY('D', 'O', 0), /**< DO Dominican_Republic */
494  WHD_COUNTRY_DOWN_UNDER = MK_CNTRY('A', 'U', 0), /**< AU G'Day mate! */
495  WHD_COUNTRY_ECUADOR = MK_CNTRY('E', 'C', 0), /**< EC Ecuador */
496  WHD_COUNTRY_EGYPT = MK_CNTRY('E', 'G', 0), /**< EG Egypt */
497  WHD_COUNTRY_EL_SALVADOR = MK_CNTRY('S', 'V', 0), /**< SV El_Salvador */
498  WHD_COUNTRY_EQUATORIAL_GUINEA = MK_CNTRY('G', 'Q', 0), /**< GQ Equatorial_Guinea */
499  WHD_COUNTRY_ERITREA = MK_CNTRY('E', 'R', 0), /**< ER Eritrea */
500  WHD_COUNTRY_ESTONIA = MK_CNTRY('E', 'E', 0), /**< EE Estonia */
501  WHD_COUNTRY_ETHIOPIA = MK_CNTRY('E', 'T', 0), /**< ET Ethiopia */
502  WHD_COUNTRY_FALKLAND_ISLANDS_MALVINAS = MK_CNTRY('F', 'K', 0), /**< FK Falkland_Islands_(Malvinas) */
503  WHD_COUNTRY_FAROE_ISLANDS = MK_CNTRY('F', 'O', 0), /**< FO Faroe_Islands */
504  WHD_COUNTRY_FIJI = MK_CNTRY('F', 'J', 0), /**< FJ Fiji */
505  WHD_COUNTRY_FINLAND = MK_CNTRY('F', 'I', 0), /**< FI Finland */
506  WHD_COUNTRY_FRANCE = MK_CNTRY('F', 'R', 0), /**< FR France */
507  WHD_COUNTRY_FRENCH_GUINA = MK_CNTRY('G', 'F', 0), /**< GF French_Guina */
508  WHD_COUNTRY_FRENCH_POLYNESIA = MK_CNTRY('P', 'F', 0), /**< PF French_Polynesia */
509  WHD_COUNTRY_FRENCH_SOUTHERN_TERRITORIES = MK_CNTRY('T', 'F', 0), /**< TF French_Southern_Territories */
510  WHD_COUNTRY_GABON = MK_CNTRY('G', 'A', 0), /**< GA Gabon */
511  WHD_COUNTRY_GAMBIA = MK_CNTRY('G', 'M', 0), /**< GM Gambia */
512  WHD_COUNTRY_GEORGIA = MK_CNTRY('G', 'E', 0), /**< GE Georgia */
513  WHD_COUNTRY_GERMANY = MK_CNTRY('D', 'E', 0), /**< DE Germany */
514  WHD_COUNTRY_EUROPEAN_WIDE_REV895 = MK_CNTRY('E', '0', 895), /**< E0 European_Wide Revision 895 */
515  WHD_COUNTRY_GHANA = MK_CNTRY('G', 'H', 0), /**< GH Ghana */
516  WHD_COUNTRY_GIBRALTAR = MK_CNTRY('G', 'I', 0), /**< GI Gibraltar */
517  WHD_COUNTRY_GREECE = MK_CNTRY('G', 'R', 0), /**< GR Greece */
518  WHD_COUNTRY_GRENADA = MK_CNTRY('G', 'D', 0), /**< GD Grenada */
519  WHD_COUNTRY_GUADELOUPE = MK_CNTRY('G', 'P', 0), /**< GP Guadeloupe */
520  WHD_COUNTRY_GUAM = MK_CNTRY('G', 'U', 0), /**< GU Guam */
521  WHD_COUNTRY_GUATEMALA = MK_CNTRY('G', 'T', 0), /**< GT Guatemala */
522  WHD_COUNTRY_GUERNSEY = MK_CNTRY('G', 'G', 0), /**< GG Guernsey */
523  WHD_COUNTRY_GUINEA = MK_CNTRY('G', 'N', 0), /**< GN Guinea */
524  WHD_COUNTRY_GUINEA_BISSAU = MK_CNTRY('G', 'W', 0), /**< GW Guinea-bissau */
525  WHD_COUNTRY_GUYANA = MK_CNTRY('G', 'Y', 0), /**< GY Guyana */
526  WHD_COUNTRY_HAITI = MK_CNTRY('H', 'T', 0), /**< HT Haiti */
527  WHD_COUNTRY_HOLY_SEE_VATICAN_CITY_STATE = MK_CNTRY('V', 'A', 0), /**< VA Holy_See_(Vatican_City_State) */
528  WHD_COUNTRY_HONDURAS = MK_CNTRY('H', 'N', 0), /**< HN Honduras */
529  WHD_COUNTRY_HONG_KONG = MK_CNTRY('H', 'K', 0), /**< HK Hong_Kong */
530  WHD_COUNTRY_HUNGARY = MK_CNTRY('H', 'U', 0), /**< HU Hungary */
531  WHD_COUNTRY_ICELAND = MK_CNTRY('I', 'S', 0), /**< IS Iceland */
532  WHD_COUNTRY_INDIA = MK_CNTRY('I', 'N', 0), /**< IN India */
533  WHD_COUNTRY_INDONESIA = MK_CNTRY('I', 'D', 0), /**< ID Indonesia */
534  WHD_COUNTRY_IRAN_ISLAMIC_REPUBLIC_OF = MK_CNTRY('I', 'R', 0), /**< IR Iran,_Islamic_Republic_Of */
535  WHD_COUNTRY_IRAQ = MK_CNTRY('I', 'Q', 0), /**< IQ Iraq */
536  WHD_COUNTRY_IRELAND = MK_CNTRY('I', 'E', 0), /**< IE Ireland */
537  WHD_COUNTRY_ISRAEL = MK_CNTRY('I', 'L', 0), /**< IL Israel */
538  WHD_COUNTRY_ITALY = MK_CNTRY('I', 'T', 0), /**< IT Italy */
539  WHD_COUNTRY_JAMAICA = MK_CNTRY('J', 'M', 0), /**< JM Jamaica */
540  WHD_COUNTRY_JAPAN = MK_CNTRY('J', 'P', 0), /**< JP Japan */
541  WHD_COUNTRY_JERSEY = MK_CNTRY('J', 'E', 0), /**< JE Jersey */
542  WHD_COUNTRY_JORDAN = MK_CNTRY('J', 'O', 0), /**< JO Jordan */
543  WHD_COUNTRY_KAZAKHSTAN = MK_CNTRY('K', 'Z', 0), /**< KZ Kazakhstan */
544  WHD_COUNTRY_KENYA = MK_CNTRY('K', 'E', 0), /**< KE Kenya */
545  WHD_COUNTRY_KIRIBATI = MK_CNTRY('K', 'I', 0), /**< KI Kiribati */
546  WHD_COUNTRY_KOREA_REPUBLIC_OF = MK_CNTRY('K', 'R', 1), /**< KR Korea,_Republic_Of */
547  WHD_COUNTRY_KOSOVO = MK_CNTRY('0', 'A', 0), /**< 0A Kosovo */
548  WHD_COUNTRY_KUWAIT = MK_CNTRY('K', 'W', 0), /**< KW Kuwait */
549  WHD_COUNTRY_KYRGYZSTAN = MK_CNTRY('K', 'G', 0), /**< KG Kyrgyzstan */
550  WHD_COUNTRY_LAO_PEOPLES_DEMOCRATIC_REPUBIC = MK_CNTRY('L', 'A', 0), /**< LA Lao_People's_Democratic_Repubic */
551  WHD_COUNTRY_LATVIA = MK_CNTRY('L', 'V', 0), /**< LV Latvia */
552  WHD_COUNTRY_LEBANON = MK_CNTRY('L', 'B', 0), /**< LB Lebanon */
553  WHD_COUNTRY_LESOTHO = MK_CNTRY('L', 'S', 0), /**< LS Lesotho */
554  WHD_COUNTRY_LIBERIA = MK_CNTRY('L', 'R', 0), /**< LR Liberia */
555  WHD_COUNTRY_LIBYAN_ARAB_JAMAHIRIYA = MK_CNTRY('L', 'Y', 0), /**< LY Libyan_Arab_Jamahiriya */
556  WHD_COUNTRY_LIECHTENSTEIN = MK_CNTRY('L', 'I', 0), /**< LI Liechtenstein */
557  WHD_COUNTRY_LITHUANIA = MK_CNTRY('L', 'T', 0), /**< LT Lithuania */
558  WHD_COUNTRY_LUXEMBOURG = MK_CNTRY('L', 'U', 0), /**< LU Luxembourg */
559  WHD_COUNTRY_MACAO = MK_CNTRY('M', 'O', 0), /**< MO Macao */
560  WHD_COUNTRY_MACEDONIA_FORMER_YUGOSLAV_REPUBLIC_OF = MK_CNTRY('M', 'K', 0), /**< MK Macedonia,_Former_Yugoslav_Republic_Of */
561  WHD_COUNTRY_MADAGASCAR = MK_CNTRY('M', 'G', 0), /**< MG Madagascar */
562  WHD_COUNTRY_MALAWI = MK_CNTRY('M', 'W', 0), /**< MW Malawi */
563  WHD_COUNTRY_MALAYSIA = MK_CNTRY('M', 'Y', 0), /**< MY Malaysia */
564  WHD_COUNTRY_MALDIVES = MK_CNTRY('M', 'V', 0), /**< MV Maldives */
565  WHD_COUNTRY_MALI = MK_CNTRY('M', 'L', 0), /**< ML Mali */
566  WHD_COUNTRY_MALTA = MK_CNTRY('M', 'T', 0), /**< MT Malta */
567  WHD_COUNTRY_MAN_ISLE_OF = MK_CNTRY('I', 'M', 0), /**< IM Man,_Isle_Of */
568  WHD_COUNTRY_MARTINIQUE = MK_CNTRY('M', 'Q', 0), /**< MQ Martinique */
569  WHD_COUNTRY_MAURITANIA = MK_CNTRY('M', 'R', 0), /**< MR Mauritania */
570  WHD_COUNTRY_MAURITIUS = MK_CNTRY('M', 'U', 0), /**< MU Mauritius */
571  WHD_COUNTRY_MAYOTTE = MK_CNTRY('Y', 'T', 0), /**< YT Mayotte */
572  WHD_COUNTRY_MEXICO = MK_CNTRY('M', 'X', 0), /**< MX Mexico */
573  WHD_COUNTRY_MICRONESIA_FEDERATED_STATES_OF = MK_CNTRY('F', 'M', 0), /**< FM Micronesia,_Federated_States_Of */
574  WHD_COUNTRY_MOLDOVA_REPUBLIC_OF = MK_CNTRY('M', 'D', 0), /**< MD Moldova,_Republic_Of */
575  WHD_COUNTRY_MONACO = MK_CNTRY('M', 'C', 0), /**< MC Monaco */
576  WHD_COUNTRY_MONGOLIA = MK_CNTRY('M', 'N', 0), /**< MN Mongolia */
577  WHD_COUNTRY_MONTENEGRO = MK_CNTRY('M', 'E', 0), /**< ME Montenegro */
578  WHD_COUNTRY_MONTSERRAT = MK_CNTRY('M', 'S', 0), /**< MS Montserrat */
579  WHD_COUNTRY_MOROCCO = MK_CNTRY('M', 'A', 0), /**< MA Morocco */
580  WHD_COUNTRY_MOZAMBIQUE = MK_CNTRY('M', 'Z', 0), /**< MZ Mozambique */
581  WHD_COUNTRY_MYANMAR = MK_CNTRY('M', 'M', 0), /**< MM Myanmar */
582  WHD_COUNTRY_NAMIBIA = MK_CNTRY('N', 'A', 0), /**< NA Namibia */
583  WHD_COUNTRY_NAURU = MK_CNTRY('N', 'R', 0), /**< NR Nauru */
584  WHD_COUNTRY_NEPAL = MK_CNTRY('N', 'P', 0), /**< NP Nepal */
585  WHD_COUNTRY_NETHERLANDS = MK_CNTRY('N', 'L', 0), /**< NL Netherlands */
586  WHD_COUNTRY_NETHERLANDS_ANTILLES = MK_CNTRY('A', 'N', 0), /**< AN Netherlands_Antilles */
587  WHD_COUNTRY_NEW_CALEDONIA = MK_CNTRY('N', 'C', 0), /**< NC New_Caledonia */
588  WHD_COUNTRY_NEW_ZEALAND = MK_CNTRY('N', 'Z', 0), /**< NZ New_Zealand */
589  WHD_COUNTRY_NICARAGUA = MK_CNTRY('N', 'I', 0), /**< NI Nicaragua */
590  WHD_COUNTRY_NIGER = MK_CNTRY('N', 'E', 0), /**< NE Niger */
591  WHD_COUNTRY_NIGERIA = MK_CNTRY('N', 'G', 0), /**< NG Nigeria */
592  WHD_COUNTRY_NORFOLK_ISLAND = MK_CNTRY('N', 'F', 0), /**< NF Norfolk_Island */
593  WHD_COUNTRY_NORTHERN_MARIANA_ISLANDS = MK_CNTRY('M', 'P', 0), /**< MP Northern_Mariana_Islands */
594  WHD_COUNTRY_NORWAY = MK_CNTRY('N', 'O', 0), /**< NO Norway */
595  WHD_COUNTRY_OMAN = MK_CNTRY('O', 'M', 0), /**< OM Oman */
596  WHD_COUNTRY_PAKISTAN = MK_CNTRY('P', 'K', 0), /**< PK Pakistan */
597  WHD_COUNTRY_PALAU = MK_CNTRY('P', 'W', 0), /**< PW Palau */
598  WHD_COUNTRY_PANAMA = MK_CNTRY('P', 'A', 0), /**< PA Panama */
599  WHD_COUNTRY_PAPUA_NEW_GUINEA = MK_CNTRY('P', 'G', 0), /**< PG Papua_New_Guinea */
600  WHD_COUNTRY_PARAGUAY = MK_CNTRY('P', 'Y', 0), /**< PY Paraguay */
601  WHD_COUNTRY_PERU = MK_CNTRY('P', 'E', 0), /**< PE Peru */
602  WHD_COUNTRY_PHILIPPINES = MK_CNTRY('P', 'H', 0), /**< PH Philippines */
603  WHD_COUNTRY_POLAND = MK_CNTRY('P', 'L', 0), /**< PL Poland */
604  WHD_COUNTRY_PORTUGAL = MK_CNTRY('P', 'T', 0), /**< PT Portugal */
605  WHD_COUNTRY_PUETO_RICO = MK_CNTRY('P', 'R', 0), /**< PR Pueto_Rico */
606  WHD_COUNTRY_QATAR = MK_CNTRY('Q', 'A', 0), /**< QA Qatar */
607  WHD_COUNTRY_REUNION = MK_CNTRY('R', 'E', 0), /**< RE Reunion */
608  WHD_COUNTRY_ROMANIA = MK_CNTRY('R', 'O', 0), /**< RO Romania */
609  WHD_COUNTRY_RUSSIAN_FEDERATION = MK_CNTRY('R', 'U', 0), /**< RU Russian_Federation */
610  WHD_COUNTRY_RWANDA = MK_CNTRY('R', 'W', 0), /**< RW Rwanda */
611  WHD_COUNTRY_SAINT_KITTS_AND_NEVIS = MK_CNTRY('K', 'N', 0), /**< KN Saint_Kitts_and_Nevis */
612  WHD_COUNTRY_SAINT_LUCIA = MK_CNTRY('L', 'C', 0), /**< LC Saint_Lucia */
613  WHD_COUNTRY_SAINT_PIERRE_AND_MIQUELON = MK_CNTRY('P', 'M', 0), /**< PM Saint_Pierre_and_Miquelon */
614  WHD_COUNTRY_SAINT_VINCENT_AND_THE_GRENADINES = MK_CNTRY('V', 'C', 0), /**< VC Saint_Vincent_and_The_Grenadines */
615  WHD_COUNTRY_SAMOA = MK_CNTRY('W', 'S', 0), /**< WS Samoa */
616  WHD_COUNTRY_SANIT_MARTIN_SINT_MARTEEN = MK_CNTRY('M', 'F', 0), /**< MF Sanit_Martin_/_Sint_Marteen */
617  WHD_COUNTRY_SAO_TOME_AND_PRINCIPE = MK_CNTRY('S', 'T', 0), /**< ST Sao_Tome_and_Principe */
618  WHD_COUNTRY_SAUDI_ARABIA = MK_CNTRY('S', 'A', 0), /**< SA Saudi_Arabia */
619  WHD_COUNTRY_SENEGAL = MK_CNTRY('S', 'N', 0), /**< SN Senegal */
620  WHD_COUNTRY_SERBIA = MK_CNTRY('R', 'S', 0), /**< RS Serbia */
621  WHD_COUNTRY_SEYCHELLES = MK_CNTRY('S', 'C', 0), /**< SC Seychelles */
622  WHD_COUNTRY_SIERRA_LEONE = MK_CNTRY('S', 'L', 0), /**< SL Sierra_Leone */
623  WHD_COUNTRY_SINGAPORE = MK_CNTRY('S', 'G', 0), /**< SG Singapore */
624  WHD_COUNTRY_SLOVAKIA = MK_CNTRY('S', 'K', 0), /**< SK Slovakia */
625  WHD_COUNTRY_SLOVENIA = MK_CNTRY('S', 'I', 0), /**< SI Slovenia */
626  WHD_COUNTRY_SOLOMON_ISLANDS = MK_CNTRY('S', 'B', 0), /**< SB Solomon_Islands */
627  WHD_COUNTRY_SOMALIA = MK_CNTRY('S', 'O', 0), /**< SO Somalia */
628  WHD_COUNTRY_SOUTH_AFRICA = MK_CNTRY('Z', 'A', 0), /**< ZA South_Africa */
629  WHD_COUNTRY_SPAIN = MK_CNTRY('E', 'S', 0), /**< ES Spain */
630  WHD_COUNTRY_SRI_LANKA = MK_CNTRY('L', 'K', 0), /**< LK Sri_Lanka */
631  WHD_COUNTRY_SURINAME = MK_CNTRY('S', 'R', 0), /**< SR Suriname */
632  WHD_COUNTRY_SWAZILAND = MK_CNTRY('S', 'Z', 0), /**< SZ Swaziland */
633  WHD_COUNTRY_SWEDEN = MK_CNTRY('S', 'E', 0), /**< SE Sweden */
634  WHD_COUNTRY_SWITZERLAND = MK_CNTRY('C', 'H', 0), /**< CH Switzerland */
635  WHD_COUNTRY_SYRIAN_ARAB_REPUBLIC = MK_CNTRY('S', 'Y', 0), /**< SY Syrian_Arab_Republic */
636  WHD_COUNTRY_TAIWAN_PROVINCE_OF_CHINA = MK_CNTRY('T', 'W', 0), /**< TW Taiwan,_Province_Of_China */
637  WHD_COUNTRY_TAJIKISTAN = MK_CNTRY('T', 'J', 0), /**< TJ Tajikistan */
638  WHD_COUNTRY_TANZANIA_UNITED_REPUBLIC_OF = MK_CNTRY('T', 'Z', 0), /**< TZ Tanzania,_United_Republic_Of */
639  WHD_COUNTRY_THAILAND = MK_CNTRY('T', 'H', 0), /**< TH Thailand */
640  WHD_COUNTRY_TOGO = MK_CNTRY('T', 'G', 0), /**< TG Togo */
641  WHD_COUNTRY_TONGA = MK_CNTRY('T', 'O', 0), /**< TO Tonga */
642  WHD_COUNTRY_TRINIDAD_AND_TOBAGO = MK_CNTRY('T', 'T', 0), /**< TT Trinidad_and_Tobago */
643  WHD_COUNTRY_TUNISIA = MK_CNTRY('T', 'N', 0), /**< TN Tunisia */
644  WHD_COUNTRY_TURKEY = MK_CNTRY('T', 'R', 0), /**< TR Turkey */
645  WHD_COUNTRY_TURKMENISTAN = MK_CNTRY('T', 'M', 0), /**< TM Turkmenistan */
646  WHD_COUNTRY_TURKS_AND_CAICOS_ISLANDS = MK_CNTRY('T', 'C', 0), /**< TC Turks_and_Caicos_Islands */
647  WHD_COUNTRY_TUVALU = MK_CNTRY('T', 'V', 0), /**< TV Tuvalu */
648  WHD_COUNTRY_UGANDA = MK_CNTRY('U', 'G', 0), /**< UG Uganda */
649  WHD_COUNTRY_UKRAINE = MK_CNTRY('U', 'A', 0), /**< UA Ukraine */
650  WHD_COUNTRY_UNITED_ARAB_EMIRATES = MK_CNTRY('A', 'E', 0), /**< AE United_Arab_Emirates */
651  WHD_COUNTRY_UNITED_KINGDOM = MK_CNTRY('G', 'B', 0), /**< GB United_Kingdom */
652  WHD_COUNTRY_UNITED_STATES = MK_CNTRY('U', 'S', 0), /**< US United_States */
653  WHD_COUNTRY_UNITED_STATES_REV4 = MK_CNTRY('U', 'S', 4), /**< US United_States Revision 4 */
654  WHD_COUNTRY_UNITED_STATES_REV931 = MK_CNTRY('Q', '1', 931), /**< Q1 United_States Revision 931 */
655  WHD_COUNTRY_UNITED_STATES_NO_DFS = MK_CNTRY('Q', '2', 0), /**< Q2 United_States_(No_DFS) */
656  WHD_COUNTRY_UNITED_STATES_MINOR_OUTLYING_ISLANDS = MK_CNTRY('U', 'M', 0), /**< UM United_States_Minor_Outlying_Islands */
657  WHD_COUNTRY_URUGUAY = MK_CNTRY('U', 'Y', 0), /**< UY Uruguay */
658  WHD_COUNTRY_UZBEKISTAN = MK_CNTRY('U', 'Z', 0), /**< UZ Uzbekistan */
659  WHD_COUNTRY_VANUATU = MK_CNTRY('V', 'U', 0), /**< VU Vanuatu */
660  WHD_COUNTRY_VENEZUELA = MK_CNTRY('V', 'E', 0), /**< VE Venezuela */
661  WHD_COUNTRY_VIET_NAM = MK_CNTRY('V', 'N', 0), /**< VN Viet_Nam */
662  WHD_COUNTRY_VIRGIN_ISLANDS_BRITISH = MK_CNTRY('V', 'G', 0), /**< VG Virgin_Islands,_British */
663  WHD_COUNTRY_VIRGIN_ISLANDS_US = MK_CNTRY('V', 'I', 0), /**< VI Virgin_Islands,_U.S. */
664  WHD_COUNTRY_WALLIS_AND_FUTUNA = MK_CNTRY('W', 'F', 0), /**< WF Wallis_and_Futuna */
665  WHD_COUNTRY_WEST_BANK = MK_CNTRY('0', 'C', 0), /**< 0C West_Bank */
666  WHD_COUNTRY_WESTERN_SAHARA = MK_CNTRY('E', 'H', 0), /**< EH Western_Sahara */
667  WHD_COUNTRY_WORLD_WIDE_XV_REV983 = MK_CNTRY('X', 'V', 983), /**< Worldwide Locale Revision 983 */
668  WHD_COUNTRY_WORLD_WIDE_XX = MK_CNTRY('X', 'X', 0), /**< Worldwide Locale (passive Ch12-14) */
669  WHD_COUNTRY_WORLD_WIDE_XX_REV17 = MK_CNTRY('X', 'X', 17), /**< Worldwide Locale (passive Ch12-14) Revision 17 */
670  WHD_COUNTRY_YEMEN = MK_CNTRY('Y', 'E', 0), /**< YE Yemen */
671  WHD_COUNTRY_ZAMBIA = MK_CNTRY('Z', 'M', 0), /**< ZM Zambia */
672  WHD_COUNTRY_ZIMBABWE = MK_CNTRY('Z', 'W', 0), /**< ZW Zimbabwe */
674 
675 /**
676  * Structure for storing extended scan parameters
677  */
678 typedef struct
679 {
680  int32_t number_of_probes_per_channel; /**< Number of probes to send on each channel */
681  int32_t scan_active_dwell_time_per_channel_ms; /**< Period of time to wait on each channel when active scanning */
682  int32_t scan_passive_dwell_time_per_channel_ms; /**< Period of time to wait on each channel when passive scanning */
683  int32_t scan_home_channel_dwell_time_between_channels_ms; /**< Period of time to wait on the home channel when scanning. Only relevant if associated. */
685 
686 /**
687  * Structure for storing scan results
688  */
689 #pragma pack(1)
690 typedef struct whd_scan_result
691 {
692  whd_ssid_t SSID; /**< Service Set Identification (i.e. Name of Access Point) */
693  whd_mac_t BSSID; /**< Basic Service Set Identification (i.e. MAC address of Access Point) */
694  int16_t signal_strength; /**< Receive Signal Strength Indication in dBm. <-90=Very poor, >-30=Excellent */
695  uint32_t max_data_rate; /**< Maximum data rate in kilobits/s */
696  whd_bss_type_t bss_type; /**< Network type */
697  whd_security_t security; /**< Security type */
698  uint8_t channel; /**< Radio channel that the AP beacon was received on */
699  whd_802_11_band_t band; /**< Radio band */
700  uint8_t ccode[2]; /**< Two letter ISO country code from AP */
701  uint8_t flags; /**< flags */
702  struct whd_scan_result *next; /**< Pointer to the next scan result */
703  uint8_t *ie_ptr; /**< Pointer to received Beacon/Probe Response IE(Information Element) */
704  uint32_t ie_len; /**< Length of IE(Information Element) */
706 #pragma pack()
707 
708 /**
709  * Structure to store scan result parameters for each AP
710  */
712 {
713  whd_ssid_t SSID; /**< Service Set Identification (i.e. Name of Access Point) */
714  whd_mac_t BSSID; /**< Basic Service Set Identification (i.e. MAC address of Access Point) */
715  int16_t signal_strength; /**< Receive Signal Strength Indication in dBm. <-90=Very poor, >-30=Excellent */
716  whd_security_t security; /**< Security type */
717  uint8_t channel; /**< Radio channel that the AP beacon was received on */
719 
720 typedef uint16_t wl_chanspec_t; /**< Channel specified in uint16_t */
721 #define MCSSET_LEN 16 /**< Maximum allowed mcs rate */
722 
723 /** BSS(Basic Service Set) information structure
724  *
725  * Applications MUST CHECK ie_offset field and length field to access IEs(Information Elements) and
726  * next bss_info structure in a vector (in whd_sync_scan_result_t)
727  */
728 typedef struct wl_bss_info_struct
729 {
730  uint32_t version; /**< version field */
731  uint32_t length; /**< byte length of data in this record, starting at version and including IEs */
732  whd_mac_t BSSID; /**< Unique 6-byte MAC address */
733  uint16_t beacon_period; /**< Interval between two consecutive beacon frames. Units are Kusec */
734  uint16_t capability; /**< Capability information */
735  uint8_t SSID_len; /**< SSID length */
736  uint8_t SSID[32]; /**< Array to store SSID */
737  struct
738  {
739  uint32_t count; /**< Count of rates in this set */
740  uint8_t rates[16]; /**< rates in 500kbps units, higher bit set if basic */
741  } rateset; /**< supported rates */
742  wl_chanspec_t chanspec; /**< Channel specification for basic service set */
743  uint16_t atim_window; /**< Announcement traffic indication message window size. Units are Kusec */
744  uint8_t dtim_period; /**< Delivery traffic indication message period */
745  int16_t RSSI; /**< receive signal strength (in dBm) */
746  int8_t phy_noise; /**< noise (in dBm) */
747 
748  uint8_t n_cap; /**< BSS is 802.11N Capable */
749  uint32_t nbss_cap; /**< 802.11N BSS Capabilities (based on HT_CAP_*) */
750  uint8_t ctl_ch; /**< 802.11N BSS control channel number */
751  uint32_t reserved32[1]; /**< Reserved for expansion of BSS properties */
752  uint8_t flags; /**< flags */
753  uint8_t reserved[3]; /**< Reserved for expansion of BSS properties */
754  uint8_t basic_mcs[MCSSET_LEN]; /**< 802.11N BSS required MCS set */
755 
756  uint16_t ie_offset; /**< offset at which IEs start, from beginning */
757  uint32_t ie_length; /**< byte length of Information Elements */
758  int16_t SNR; /**< Average SNR(signal to noise ratio) during frame reception */
759  /* Add new fields here */
760  /* variable length Information Elements */
761 } wl_bss_info_t;
762 
763 /** Structure for storing 802.11 powersave listen interval values \n
764  * See @ref whd_wifi_get_listen_interval for more information
765  */
766 typedef struct
767 {
768  uint8_t beacon; /**< Listen interval in beacon periods */
769  uint8_t dtim; /**< Listen interval in DTIM periods */
770  uint16_t assoc; /**< Listen interval as sent to APs */
772 
773 /**
774  * WHD result is specified as uint32_t value
775  */
776 typedef uint32_t whd_result_t;
777 
778 /* whd_result_t error code format
779  * |31-18 (14 bit) for module id|17-16 (2 bit) for result type|15-0 for whd error code|
780  */
781 #define WHD_RESULT_TYPE 0 /**< WHD Result type */
782 #define WHD_RESULT_CREATE(x) CY_RSLT_CREATE(WHD_RESULT_TYPE, CY_RSLT_MODULE_DRIVERS_WHD_BASE, (x) ) /**< Create a result value from the specified type, module, and result code */
783 
784 #define WHD_SUCCESS CY_RSLT_SUCCESS /**< Success */
785 #define WHD_PENDING WHD_RESULT_CREATE(1) /**< Pending */
786 #define WHD_TIMEOUT WHD_RESULT_CREATE(2) /**< Timeout */
787 #define WHD_BADARG WHD_RESULT_CREATE(5) /**< Bad Arguments */
788 #define WHD_UNFINISHED WHD_RESULT_CREATE(10) /**< Operation not finished yet WHD_RESULT_CREATE(maybe aborted) */
789 
790 #define WHD_PARTIAL_RESULTS WHD_RESULT_CREATE(1003) /**< Partial results */
791 #define WHD_INVALID_KEY WHD_RESULT_CREATE(1004) /**< Invalid key */
792 #define WHD_DOES_NOT_EXIST WHD_RESULT_CREATE(1005) /**< Does not exist */
793 #define WHD_NOT_AUTHENTICATED WHD_RESULT_CREATE(1006) /**< Not authenticated */
794 #define WHD_NOT_KEYED WHD_RESULT_CREATE(1007) /**< Not keyed */
795 #define WHD_IOCTL_FAIL WHD_RESULT_CREATE(1008) /**< IOCTL fail */
796 #define WHD_BUFFER_UNAVAILABLE_TEMPORARY WHD_RESULT_CREATE(1009) /**< Buffer unavailable temporarily */
797 #define WHD_BUFFER_UNAVAILABLE_PERMANENT WHD_RESULT_CREATE(1010) /**< Buffer unavailable permanently */
798 #define WHD_CONNECTION_LOST WHD_RESULT_CREATE(1012) /**< Connection lost */
799 #define WHD_OUT_OF_EVENT_HANDLER_SPACE WHD_RESULT_CREATE(1013) /**< Cannot add extra event handler */
800 #define WHD_SEMAPHORE_ERROR WHD_RESULT_CREATE(1014) /**< Error manipulating a semaphore */
801 #define WHD_FLOW_CONTROLLED WHD_RESULT_CREATE(1015) /**< Packet retrieval cancelled due to flow control */
802 #define WHD_NO_CREDITS WHD_RESULT_CREATE(1016) /**< Packet retrieval cancelled due to lack of bus credits */
803 #define WHD_NO_PACKET_TO_SEND WHD_RESULT_CREATE(1017) /**< Packet retrieval cancelled due to no pending packets */
804 #define WHD_CORE_CLOCK_NOT_ENABLED WHD_RESULT_CREATE(1018) /**< Core disabled due to no clock */
805 #define WHD_CORE_IN_RESET WHD_RESULT_CREATE(1019) /**< Core disabled - in reset */
806 #define WHD_UNSUPPORTED WHD_RESULT_CREATE(1020) /**< Unsupported function */
807 #define WHD_BUS_WRITE_REGISTER_ERROR WHD_RESULT_CREATE(1021) /**< Error writing to WLAN register */
808 #define WHD_SDIO_BUS_UP_FAIL WHD_RESULT_CREATE(1022) /**< SDIO bus failed to come up */
809 #define WHD_JOIN_IN_PROGRESS WHD_RESULT_CREATE(1023) /**< Join not finished yet */
810 #define WHD_NETWORK_NOT_FOUND WHD_RESULT_CREATE(1024) /**< Specified network was not found */
811 #define WHD_INVALID_JOIN_STATUS WHD_RESULT_CREATE(1025) /**< Join status error */
812 #define WHD_UNKNOWN_INTERFACE WHD_RESULT_CREATE(1026) /**< Unknown interface specified */
813 #define WHD_SDIO_RX_FAIL WHD_RESULT_CREATE(1027) /**< Error during SDIO receive */
814 #define WHD_HWTAG_MISMATCH WHD_RESULT_CREATE(1028) /**< Hardware tag header corrupt */
815 #define WHD_RX_BUFFER_ALLOC_FAIL WHD_RESULT_CREATE(1029) /**< Failed to allocate a buffer to receive into */
816 #define WHD_BUS_READ_REGISTER_ERROR WHD_RESULT_CREATE(1030) /**< Error reading a bus hardware register */
817 #define WHD_THREAD_CREATE_FAILED WHD_RESULT_CREATE(1031) /**< Failed to create a new thread */
818 #define WHD_QUEUE_ERROR WHD_RESULT_CREATE(1032) /**< Error manipulating a queue */
819 #define WHD_BUFFER_POINTER_MOVE_ERROR WHD_RESULT_CREATE(1033) /**< Error moving the current pointer of a packet buffer */
820 #define WHD_BUFFER_SIZE_SET_ERROR WHD_RESULT_CREATE(1034) /**< Error setting size of packet buffer */
821 #define WHD_THREAD_STACK_NULL WHD_RESULT_CREATE(1035) /**< Null stack pointer passed when non null was reqired */
822 #define WHD_THREAD_DELETE_FAIL WHD_RESULT_CREATE(1036) /**< Error deleting a thread */
823 #define WHD_SLEEP_ERROR WHD_RESULT_CREATE(1037) /**< Error sleeping a thread */
824 #define WHD_BUFFER_ALLOC_FAIL WHD_RESULT_CREATE(1038) /**< Failed to allocate a packet buffer */
825 #define WHD_NO_PACKET_TO_RECEIVE WHD_RESULT_CREATE(1039) /**< No Packets waiting to be received */
826 #define WHD_INTERFACE_NOT_UP WHD_RESULT_CREATE(1040) /**< Requested interface is not active */
827 #define WHD_DELAY_TOO_LONG WHD_RESULT_CREATE(1041) /**< Requested delay is too long */
828 #define WHD_INVALID_DUTY_CYCLE WHD_RESULT_CREATE(1042) /**< Duty cycle is outside limit 0 to 100 */
829 #define WHD_PMK_WRONG_LENGTH WHD_RESULT_CREATE(1043) /**< Returned pmk was the wrong length */
830 #define WHD_UNKNOWN_SECURITY_TYPE WHD_RESULT_CREATE(1044) /**< AP security type was unknown */
831 #define WHD_WEP_NOT_ALLOWED WHD_RESULT_CREATE(1045) /**< AP not allowed to use WEP - it is not secure - use Open instead */
832 #define WHD_WPA_KEYLEN_BAD WHD_RESULT_CREATE(1046) /**< WPA / WPA2 key length must be between 8 & 64 bytes */
833 #define WHD_FILTER_NOT_FOUND WHD_RESULT_CREATE(1047) /**< Specified filter id not found */
834 #define WHD_SPI_ID_READ_FAIL WHD_RESULT_CREATE(1048) /**< Failed to read 0xfeedbead SPI id from chip */
835 #define WHD_SPI_SIZE_MISMATCH WHD_RESULT_CREATE(1049) /**< Mismatch in sizes between SPI header and SDPCM header */
836 #define WHD_ADDRESS_ALREADY_REGISTERED WHD_RESULT_CREATE(1050) /**< Attempt to register a multicast address twice */
837 #define WHD_SDIO_RETRIES_EXCEEDED WHD_RESULT_CREATE(1051) /**< SDIO transfer failed too many times. */
838 #define WHD_NULL_PTR_ARG WHD_RESULT_CREATE(1052) /**< Null Pointer argument passed to function. */
839 #define WHD_THREAD_FINISH_FAIL WHD_RESULT_CREATE(1053) /**< Error deleting a thread */
840 #define WHD_WAIT_ABORTED WHD_RESULT_CREATE(1054) /**< Semaphore/mutex wait has been aborted */
841 #define WHD_SET_BLOCK_ACK_WINDOW_FAIL WHD_RESULT_CREATE(1055) /**< Failed to set block ack window */
842 #define WHD_DELAY_TOO_SHORT WHD_RESULT_CREATE(1056) /**< Requested delay is too short */
843 #define WHD_INVALID_INTERFACE WHD_RESULT_CREATE(1057) /**< Invalid interface provided */
844 #define WHD_WEP_KEYLEN_BAD WHD_RESULT_CREATE(1058) /**< WEP / WEP_SHARED key length must be 5 or 13 bytes */
845 #define WHD_HANDLER_ALREADY_REGISTERED WHD_RESULT_CREATE(1059) /**< EAPOL handler already registered */
846 #define WHD_AP_ALREADY_UP WHD_RESULT_CREATE(1060) /**< Soft AP or P2P group owner already up */
847 #define WHD_EAPOL_KEY_PACKET_M1_TIMEOUT WHD_RESULT_CREATE(1061) /**< Timeout occurred while waiting for EAPOL packet M1 from AP */
848 #define WHD_EAPOL_KEY_PACKET_M3_TIMEOUT WHD_RESULT_CREATE(1062) /**< Timeout occurred while waiting for EAPOL packet M3 from APwhich may indicate incorrect WPA2/WPA passphrase */
849 #define WHD_EAPOL_KEY_PACKET_G1_TIMEOUT WHD_RESULT_CREATE(1063) /**< Timeout occurred while waiting for EAPOL packet G1 from AP */
850 #define WHD_EAPOL_KEY_FAILURE WHD_RESULT_CREATE(1064) /**< Unknown failure occurred during the EAPOL key handshake */
851 #define WHD_MALLOC_FAILURE WHD_RESULT_CREATE(1065) /**< Memory allocation failure */
852 #define WHD_ACCESS_POINT_NOT_FOUND WHD_RESULT_CREATE(1066) /**< Access point not found */
853 #define WHD_RTOS_ERROR WHD_RESULT_CREATE(1067) /**< RTOS operation failed */
854 #define WHD_CLM_BLOB_DLOAD_ERROR WHD_RESULT_CREATE(1068) /**< CLM blob download failed */
855 #define WHD_HAL_ERROR WHD_RESULT_CREATE(1069) /**< WHD HAL Error */
856 #define WHD_RTOS_STATIC_MEM_LIMIT WHD_RESULT_CREATE(1070) /**< Exceeding the RTOS static objects memory */
857 
858 #define WLAN_ENUM_OFFSET 2000 /**< WLAN enum offset for WHD_WLAN error processing */
859 
860 #define WHD_WLAN_ERROR WHD_RESULT_CREATE(2001) /**< Generic Error */
861 #define WHD_WLAN_BADARG WHD_RESULT_CREATE(2002) /**< Bad Argument */
862 #define WHD_WLAN_BADOPTION WHD_RESULT_CREATE(2003) /**< Bad option */
863 #define WHD_WLAN_NOTUP WHD_RESULT_CREATE(2004) /**< Not up */
864 #define WHD_WLAN_NOTDOWN WHD_RESULT_CREATE(2005) /**< Not down */
865 #define WHD_WLAN_NOTAP WHD_RESULT_CREATE(2006) /**< Not AP */
866 #define WHD_WLAN_NOTSTA WHD_RESULT_CREATE(2007) /**< Not STA */
867 #define WHD_WLAN_BADKEYIDX WHD_RESULT_CREATE(2008) /**< BAD Key Index */
868 #define WHD_WLAN_RADIOOFF WHD_RESULT_CREATE(2009) /**< Radio Off */
869 #define WHD_WLAN_NOTBANDLOCKED WHD_RESULT_CREATE(2010) /**< Not band locked */
870 #define WHD_WLAN_NOCLK WHD_RESULT_CREATE(2011) /**< No Clock */
871 #define WHD_WLAN_BADRATESET WHD_RESULT_CREATE(2012) /**< BAD Rate valueset */
872 #define WHD_WLAN_BADBAND WHD_RESULT_CREATE(2013) /**< BAD Band */
873 #define WHD_WLAN_BUFTOOSHORT WHD_RESULT_CREATE(2014) /**< Buffer too short */
874 #define WHD_WLAN_BUFTOOLONG WHD_RESULT_CREATE(2015) /**< Buffer too long */
875 #define WHD_WLAN_BUSY WHD_RESULT_CREATE(2016) /**< Busy */
876 #define WHD_WLAN_NOTASSOCIATED WHD_RESULT_CREATE(2017) /**< Not Associated */
877 #define WHD_WLAN_BADSSIDLEN WHD_RESULT_CREATE(2018) /**< Bad SSID len */
878 #define WHD_WLAN_OUTOFRANGECHAN WHD_RESULT_CREATE(2019) /**< Out of Range Channel */
879 #define WHD_WLAN_BADCHAN WHD_RESULT_CREATE(2020) /**< Bad Channel */
880 #define WHD_WLAN_BADADDR WHD_RESULT_CREATE(2021) /**< Bad Address */
881 #define WHD_WLAN_NORESOURCE WHD_RESULT_CREATE(2022) /**< Not Enough Resources */
882 #define WHD_WLAN_UNSUPPORTED WHD_RESULT_CREATE(2023) /**< Unsupported */
883 #define WHD_WLAN_BADLEN WHD_RESULT_CREATE(2024) /**< Bad length */
884 #define WHD_WLAN_NOTREADY WHD_RESULT_CREATE(2025) /**< Not Ready */
885 #define WHD_WLAN_EPERM WHD_RESULT_CREATE(2026) /**< Not Permitted */
886 #define WHD_WLAN_NOMEM WHD_RESULT_CREATE(2027) /**< No Memory */
887 #define WHD_WLAN_ASSOCIATED WHD_RESULT_CREATE(2028) /**< Associated */
888 #define WHD_WLAN_RANGE WHD_RESULT_CREATE(2029) /**< Not In Range */
889 #define WHD_WLAN_NOTFOUND WHD_RESULT_CREATE(2030) /**< Not Found */
890 #define WHD_WLAN_WME_NOT_ENABLED WHD_RESULT_CREATE(2031) /**< WME Not Enabled */
891 #define WHD_WLAN_TSPEC_NOTFOUND WHD_RESULT_CREATE(2032) /**< TSPEC Not Found */
892 #define WHD_WLAN_ACM_NOTSUPPORTED WHD_RESULT_CREATE(2033) /**< ACM Not Supported */
893 #define WHD_WLAN_NOT_WME_ASSOCIATION WHD_RESULT_CREATE(2034) /**< Not WME Association */
894 #define WHD_WLAN_SDIO_ERROR WHD_RESULT_CREATE(2035) /**< SDIO Bus Error */
895 #define WHD_WLAN_WLAN_DOWN WHD_RESULT_CREATE(2036) /**< WLAN Not Accessible */
896 #define WHD_WLAN_BAD_VERSION WHD_RESULT_CREATE(2037) /**< Incorrect version */
897 #define WHD_WLAN_TXFAIL WHD_RESULT_CREATE(2038) /**< TX failure */
898 #define WHD_WLAN_RXFAIL WHD_RESULT_CREATE(2039) /**< RX failure */
899 #define WHD_WLAN_NODEVICE WHD_RESULT_CREATE(2040) /**< Device not present */
900 #define WHD_WLAN_UNFINISHED WHD_RESULT_CREATE(2041) /**< To be finished */
901 #define WHD_WLAN_NONRESIDENT WHD_RESULT_CREATE(2042) /**< access to nonresident overlay */
902 #define WHD_WLAN_DISABLED WHD_RESULT_CREATE(2043) /**< Disabled in this build */
903 #define WHD_WLAN_NOFUNCTION WHD_RESULT_CREATE(2044) /**< Function pointer not provided */
904 #define WHD_WLAN_INVALID WHD_RESULT_CREATE(2045) /**< Not valid */
905 #define WHD_WLAN_NOBAND WHD_RESULT_CREATE(2046) /**< No Band */
906 
907 /**
908  * type definition for whd_buffer_t
909  */
910 typedef whd_buffer_t whd_buffer_queue_ptr_t;
911 
912 #pragma pack(1)
913 
914 /**
915  * Structure for storing AP information
916  */
917 typedef struct whd_ap_info
918 {
919  whd_ssid_t SSID; /**< Service Set Identification (i.e. Name of Access Point) */
920  whd_mac_t BSSID; /**< Basic Service Set Identification (i.e. MAC address of Access Point) */
921  int16_t signal_strength; /**< Receive Signal Strength Indication in dBm. <-90=Very poor, >-30=Excellent */
922  uint32_t max_data_rate; /**< Maximum data rate in kilobits/s */
923  whd_bss_type_t bss_type; /**< Network type */
924  whd_security_t security; /**< Security type */
925  uint8_t channel; /**< Radio channel that the AP beacon was received on */
926  whd_802_11_band_t band; /**< Radio band */
927  struct whd_ap_info *next; /**< Pointer to the next scan result */
928 } whd_ap_info_t;
929 
930 /**
931  * Structure describing a list of associated softAP clients
932  */
933 typedef struct
934 {
935  uint32_t count; /**< Number of MAC addresses in the list */
936  whd_mac_t mac_list[1]; /**< Variable length array of MAC addresses */
937 } whd_maclist_t;
938 
939 #pragma pack()
940 
941 /**
942  * Time value in milliseconds
943  */
944 typedef uint32_t whd_time_t;
945 
946 /**
947  * Structure for storing a WEP key
948  */
949 typedef struct
950 {
951  uint8_t index; /**< WEP key index [0/1/2/3] */
952  uint8_t length; /**< WEP key length. Either 5 bytes (40-bits) or 13-bytes (104-bits) */
953  uint8_t data[32]; /**< WEP key as values NOT characters */
954 } whd_wep_key_t;
955 
956 /**
957  * Structure for Out-of-band interrupt config parameters which can be set by application during whd power up
958  */
959 typedef struct whd_oob_config
960 {
961  cyhal_gpio_t host_oob_pin; /**< Host-side GPIO pin selection */
962  uint8_t dev_gpio_sel; /**< WiFi device-side GPIO pin selection (must be zero) */
963  whd_bool_t is_falling_edge; /**< Interrupt trigger (polarity) */
964  uint8_t intr_priority; /**< OOB interrupt priority */
966 
967 /**
968  * Structure for SDIO config parameters which can be set by application during whd power up
969  */
970 typedef struct whd_sdio_config
971 {
972  /* Bus config */
973  whd_bool_t sdio_1bit_mode; /**< Default is false, means SDIO operates under 4 bit mode */
974  whd_bool_t high_speed_sdio_clock; /**< Default is false, means SDIO operates in normal clock rate */
975  whd_oob_config_t oob_config; /**< Out-of-band interrupt configuration (required when bus can sleep) */
977 
978 /**
979  * Structure for SPI config parameters which can be set by application during whd power up
980  */
981 typedef struct whd_spi_config
982 {
983  /* Bus config */
984  whd_bool_t is_spi_normal_mode; /**< Default is false */
985  whd_oob_config_t oob_config; /**< Out-of-band interrupt configuration */
987 
988 /**
989  * Enumeration of applicable packet mask bits for custom Information Elements (IEs)
990  */
991 typedef enum
992 {
993  VENDOR_IE_BEACON = 0x1, /**< Denotes beacon packet */
994  VENDOR_IE_PROBE_RESPONSE = 0x2, /**< Denotes probe response packet */
995  VENDOR_IE_ASSOC_RESPONSE = 0x4, /**< Denotes association response packet */
996  VENDOR_IE_AUTH_RESPONSE = 0x8, /**< Denotes authentication response packet */
997  VENDOR_IE_PROBE_REQUEST = 0x10, /**< Denotes probe request packet */
998  VENDOR_IE_ASSOC_REQUEST = 0x20, /**< Denotes association request packet */
999  VENDOR_IE_CUSTOM = 0x100 /**< Denotes a custom IE(Information Element) identifier */
1001 
1002 /**
1003  * Structure for LE Scan parameters
1004  */
1006 {
1007  uint16_t priority; /**< LE scan priority */
1008  uint16_t duty_cycle; /**< LE scan duty cycle */
1009  uint16_t max_win; /**< LE Max Scan window */
1010  uint16_t int_grant; /**< LE Small Interval Grant */
1011  uint16_t scan_int; /**< LE scan interval */
1012  uint16_t scan_win; /**< LE scan Window */
1014 
1015 /**
1016  * Structure for coex config parameters which can be set by application
1017  */
1018 typedef struct whd_coex_config
1019 {
1020  whd_btc_lescan_params_t le_scan_params; /**< LE Scan Parameters */
1022 
1023 #define PORT_FILTER_LEN 26 /**< Port filter len */
1024 #define PACKET_FILTER_LIST_BUFFER_MAX_LEN 1000 /**< Packet filter buffer max len */
1025 /**
1026  * Enumeration of packet filter rules
1027  */
1028 typedef enum
1029 {
1030  WHD_PACKET_FILTER_RULE_POSITIVE_MATCHING = 0, /**< Specifies that a filter should match a given pattern */
1031  WHD_PACKET_FILTER_RULE_NEGATIVE_MATCHING = 1 /**< Specifies that a filter should NOT match a given pattern */
1033 
1034 /**
1035  * Structure describing a packet filter list item
1036  */
1037 typedef struct
1038 {
1039  uint32_t id; /**< Unique identifier for a packet filter item */
1040  whd_packet_filter_rule_t rule; /**< Filter matches are either POSITIVE or NEGATIVE matching */
1041  uint16_t offset; /**< Offset in bytes to start filtering (referenced to the start of the ethernet packet) */
1042  uint16_t mask_size; /**< Size of the mask in bytes */
1043  uint8_t *mask; /**< Pattern mask bytes to be ANDed with the pattern eg. "\xff00" (must be in network byte order) */
1044  uint8_t *pattern; /**< Pattern bytes used to filter eg. "\x0800" (must be in network byte order) */
1045  whd_bool_t enabled_status; /**< When returned from wwd_wifi_get_packet_filters, indicates if the filter is enabled */
1047 
1048 #define TKO_DATA_OFFSET offsetof(wl_tko_t, data) /**< TKO data offset */
1049 
1050 #ifdef __cplusplus
1051 } /* extern "C" */
1052 #endif
1053 #endif /* ifndef INCLUDED_WHD_TYPES_H_ */
1054 
Specifies that a filter should NOT match a given pattern.
Definition: whd_types.h:1031
uint32_t length
byte length of data in this record, starting at version and including IEs
Definition: whd_types.h:731
whd_802_11_band_t
Enumeration of 802.11 radio bands.
Definition: whd_types.h:244
BS Bahamas.
Definition: whd_types.h:449
Denotes 2.4GHz radio band.
Definition: whd_types.h:247
uint8_t n_cap
BSS is 802.11N Capable.
Definition: whd_types.h:748
Denotes either infrastructure or ad-hoc network.
Definition: whd_types.h:235
ET Ethiopia.
Definition: whd_types.h:501
NE Niger.
Definition: whd_types.h:590
EE Estonia.
Definition: whd_types.h:500
MV Maldives.
Definition: whd_types.h:564
ST Sao_Tome_and_Principe.
Definition: whd_types.h:617
Denotes authentication response packet.
Definition: whd_types.h:996
whd_mac_t BSSID
Unique 6-byte MAC address.
Definition: whd_types.h:732
IM Man,_Isle_Of.
Definition: whd_types.h:567
whd_mac_t BSSID
Basic Service Set Identification (i.e.
Definition: whd_types.h:920
AU Australia.
Definition: whd_types.h:446
struct wl_bss_info_struct wl_bss_info_t
BSS(Basic Service Set) information structure.
Boolean False.
Definition: whd_types.h:165
uint16_t max_win
LE Max Scan window.
Definition: whd_types.h:1009
PW Palau.
Definition: whd_types.h:597
Specifies bus type and write direction.
Definition: whd_types.h:176
AI Anguilla.
Definition: whd_types.h:441
TZ Tanzania,_United_Republic_Of.
Definition: whd_types.h:638
Structure for storing radio band list information.
Definition: whd_types.h:282
uint8_t * pattern
Pattern bytes used to filter eg.
Definition: whd_types.h:1044
WPA Enterprise Security with AES & TKIP.
Definition: whd_types.h:202
Flag to enable WEP Security.
Definition: whd_types.h:185
Structure to store scan result parameters for each AP.
Definition: whd_types.h:711
PM Saint_Pierre_and_Miquelon.
Definition: whd_types.h:613
WEP PSK Security with shared authentication.
Definition: whd_types.h:186
Add a custom IE(Information Element)
Definition: whd_types.h:255
int32_t scan_home_channel_dwell_time_between_channels_ms
Period of time to wait on the home channel when scanning.
Definition: whd_types.h:683
IO British_Indian_Ocean_Territory.
Definition: whd_types.h:464
JE Jersey.
Definition: whd_types.h:541
BW Botswana.
Definition: whd_types.h:462
struct whd_btc_lescan_params whd_btc_lescan_params_t
Structure for LE Scan parameters.
AU G&#39;Day mate!
Definition: whd_types.h:494
VU Vanuatu.
Definition: whd_types.h:659
whd_packet_filter_rule_t rule
Filter matches are either POSITIVE or NEGATIVE matching.
Definition: whd_types.h:1040
Get/Set TKO intervals & retrys.
Definition: whd_wlioctl.h:3940
uint32_t nbss_cap
802.11N BSS Capabilities (based on HT_CAP_*)
Definition: whd_types.h:749
whd_country_code_t
Enumerated list of country codes.
Definition: whd_types.h:434
Q1 United_States Revision 931.
Definition: whd_types.h:654
uint32_t max_data_rate
Maximum data rate in kilobits/s.
Definition: whd_types.h:922
ZA South_Africa.
Definition: whd_types.h:628
FI Finland.
Definition: whd_types.h:505
int8_t phy_noise
noise (in dBm)
Definition: whd_types.h:746
MU Mauritius.
Definition: whd_types.h:570
KZ Kazakhstan.
Definition: whd_types.h:543
SL Sierra_Leone.
Definition: whd_types.h:622
int16_t signal_strength
Receive Signal Strength Indication in dBm.
Definition: whd_types.h:921
MN Mongolia.
Definition: whd_types.h:576
MG Madagascar.
Definition: whd_types.h:561
GF French_Guina.
Definition: whd_types.h:507
ZM Zambia.
Definition: whd_types.h:671
whd_usr_iovar_get_list_t
IOVAR get list.
Definition: whd_types.h:365
RS Serbia.
Definition: whd_types.h:620
QA Qatar.
Definition: whd_types.h:606
Denotes a custom IE(Information Element) identifier.
Definition: whd_types.h:999
May be returned by scan function if security is unknown.
Definition: whd_types.h:211
UA Ukraine.
Definition: whd_types.h:649
TF French_Southern_Territories.
Definition: whd_types.h:509
NI Nicaragua.
Definition: whd_types.h:589
whd_btc_lescan_params_t le_scan_params
LE Scan Parameters.
Definition: whd_types.h:1020
struct whd_simple_scan_result whd_sync_scan_result_t
Structure to store scan result parameters for each AP.
E0 European_Wide Revision 895.
Definition: whd_types.h:514
MM Myanmar.
Definition: whd_types.h:581
#define SSID_NAME_SIZE
SSID Length.
Definition: whd_types.h:38
LA Lao_People&#39;s_Democratic_Repubic.
Definition: whd_types.h:550
TO Tonga.
Definition: whd_types.h:641
uint8_t SSID_len
SSID length.
Definition: whd_types.h:735
FO Faroe_Islands.
Definition: whd_types.h:503
Struct to query FW for current TKO configuation.
Definition: whd_wlioctl.h:3968
Permit (passively) scanning a channel that isn&#39;t valid for the current country.
Definition: whd_types.h:224
MD Moldova,_Republic_Of.
Definition: whd_types.h:574
CD Congo,_The_Democratic_Republic_Of_The.
Definition: whd_types.h:483
SB Solomon_Islands.
Definition: whd_types.h:626
RW Rwanda.
Definition: whd_types.h:610
YE Yemen.
Definition: whd_types.h:670
whd_ssid_t SSID
Service Set Identification (i.e.
Definition: whd_types.h:713
IR Iran,_Islamic_Republic_Of.
Definition: whd_types.h:534
struct whd_scan_result * next
Pointer to the next scan result.
Definition: whd_types.h:702
MT Malta.
Definition: whd_types.h:566
whd_802_11_band_t band
Radio band.
Definition: whd_types.h:699
SK Slovakia.
Definition: whd_types.h:624
TN Tunisia.
Definition: whd_types.h:643
BT Bhutan.
Definition: whd_types.h:459
PG Papua_New_Guinea.
Definition: whd_types.h:599
CL Chile.
Definition: whd_types.h:477
UM United_States_Minor_Outlying_Islands.
Definition: whd_types.h:656
GD Grenada.
Definition: whd_types.h:518
AL Albania.
Definition: whd_types.h:437
AS American_Samoa.
Definition: whd_types.h:439
Structure for SDIO config parameters which can be set by application during whd power up...
Definition: whd_types.h:970
struct whd_oob_config whd_oob_config_t
Structure for Out-of-band interrupt config parameters which can be set by application during whd powe...
BA Bosnia_and_Herzegovina.
Definition: whd_types.h:461
IE Ireland.
Definition: whd_types.h:536
Structure for storing AP information.
Definition: whd_types.h:917
whd_usr_ioctl_set_list_t
Enumeration of ioctl set.
Definition: whd_types.h:331
CR Costa_Rica.
Definition: whd_types.h:484
Structure for storing extended scan parameters.
Definition: whd_types.h:678
ML Mali.
Definition: whd_types.h:565
MZ Mozambique.
Definition: whd_types.h:580
DM Dominica.
Definition: whd_types.h:492
HN Honduras.
Definition: whd_types.h:528
int32_t scan_passive_dwell_time_per_channel_ms
Period of time to wait on each channel when passive scanning.
Definition: whd_types.h:682
Denotes an 802.11 ad-hoc IBSS network.
Definition: whd_types.h:234
WPA Enterprise Security with AES.
Definition: whd_types.h:201
VG Virgin_Islands,_British.
Definition: whd_types.h:662
Denotes that scan is not finished.
Definition: whd_types.h:274
uint16_t offset
Offset in bytes to start filtering (referenced to the start of the ethernet packet) ...
Definition: whd_types.h:1041
GE Georgia.
Definition: whd_types.h:512
KH Cambodia.
Definition: whd_types.h:469
uint8_t dtim
Listen interval in DTIM periods.
Definition: whd_types.h:769
Structure for storing scan results.
Definition: whd_types.h:690
whd_scan_type_t
Enumeration of methods of scanning.
Definition: whd_types.h:219
SE Sweden.
Definition: whd_types.h:633
HK Hong_Kong.
Definition: whd_types.h:529
HR Croatia.
Definition: whd_types.h:486
WPA PSK Security with TKIP.
Definition: whd_types.h:187
whd_security_t
Enumeration of Wi-Fi security modes.
Definition: whd_types.h:182
DO Dominican_Republic.
Definition: whd_types.h:493
NP Nepal.
Definition: whd_types.h:584
0B Baker_Island
Definition: whd_types.h:451
GU Guam.
Definition: whd_types.h:520
CV Cape_Verde.
Definition: whd_types.h:473
IS Iceland.
Definition: whd_types.h:531
uint16_t wl_chanspec_t
Channel specified in uint16_t.
Definition: whd_types.h:720
Disables the client support for MFP.
Definition: whd_types.h:303
NO Norway.
Definition: whd_types.h:594
LR Liberia.
Definition: whd_types.h:554
SA Saudi_Arabia.
Definition: whd_types.h:618
CN China.
Definition: whd_types.h:478
AZ Azerbaijan.
Definition: whd_types.h:448
struct whd_coex_config whd_coex_config_t
Structure for coex config parameters which can be set by application.
uint16_t duty_cycle
LE scan duty cycle.
Definition: whd_types.h:1008
LT Lithuania.
Definition: whd_types.h:557
struct whd_ap_info whd_ap_info_t
Structure for storing AP information.
uint8_t * ie_ptr
Pointer to received Beacon/Probe Response IE(Information Element)
Definition: whd_types.h:703
int32_t number_of_probes_per_channel
Number of probes to send on each channel.
Definition: whd_types.h:680
whd_scan_result_flag_t
Enumeration of scan result flags.
Definition: whd_types.h:292
uint32_t count
Count of rates in this set.
Definition: whd_types.h:739
WPA3 WPA2 PSK Security with AES.
Definition: whd_types.h:198
BR Brazil.
Definition: whd_types.h:463
Structure for storing a Service Set Identifier (i.e.
Definition: whd_types.h:393
uint8_t channel
Radio channel that the AP beacon was received on.
Definition: whd_types.h:717
BB Barbados.
Definition: whd_types.h:453
0A Kosovo
Definition: whd_types.h:547
WF Wallis_and_Futuna.
Definition: whd_types.h:664
US United_States.
Definition: whd_types.h:652
whd_bus_transfer_direction_t
Transfer direction for the WHD platform bus interface.
Definition: whd_types.h:172
LB Lebanon.
Definition: whd_types.h:552
GR Greece.
Definition: whd_types.h:517
Denotes probe request packet.
Definition: whd_types.h:997
GA Gabon.
Definition: whd_types.h:510
PF French_Polynesia.
Definition: whd_types.h:508
KY Cayman_Islands.
Definition: whd_types.h:474
WPA2 WPA PSK Security with AES.
Definition: whd_types.h:195
uint8_t length
SSID length.
Definition: whd_types.h:395
whd_usr_iovar_set_list_t
IOVAR set list.
Definition: whd_types.h:351
whd_bool_t enabled_status
When returned from wwd_wifi_get_packet_filters, indicates if the filter is enabled.
Definition: whd_types.h:1045
Denotes beacon packet.
Definition: whd_types.h:993
whd_802_11_band_t band
Radio band.
Definition: whd_types.h:926
whd_bool_t
Boolean values.
Definition: whd_types.h:162
BY Belarus.
Definition: whd_types.h:454
KN Saint_Kitts_and_Nevis.
Definition: whd_types.h:611
uint8_t dev_gpio_sel
WiFi device-side GPIO pin selection (must be zero)
Definition: whd_types.h:962
uint8_t ctl_ch
802.11N BSS control channel number
Definition: whd_types.h:750
#define WEP_ENABLED
Flag to enable WEP Security.
Definition: whd_types.h:40
KG Kyrgyzstan.
Definition: whd_types.h:549
CM Cameroon.
Definition: whd_types.h:470
uint32_t max_data_rate
Maximum data rate in kilobits/s.
Definition: whd_types.h:695
TM Turkmenistan.
Definition: whd_types.h:645
JM Jamaica.
Definition: whd_types.h:539
NA Namibia.
Definition: whd_types.h:582
MR Mauritania.
Definition: whd_types.h:569
CI Cote_D&#39;ivoire.
Definition: whd_types.h:485
PY Paraguay.
Definition: whd_types.h:600
NR Nauru.
Definition: whd_types.h:583
Denotes association request packet.
Definition: whd_types.h:998
Boolean True.
Definition: whd_types.h:164
Return a scan record for each beacon or probe response RX&#39;ed.
Definition: whd_types.h:225
WPA2 Enterprise Security with AES.
Definition: whd_types.h:204
int32_t other_band
If value of number_of_bands parameter is 2, then this member specifies the 2nd band.
Definition: whd_types.h:286
WPA PSK Security with AES & TKIP.
Definition: whd_types.h:189
BO Bolivia.
Definition: whd_types.h:460
Structure for storing 802.11 powersave listen interval values See whd_wifi_get_listen_interval for m...
Definition: whd_types.h:766
#define FBT_ENABLED
Flag to enable FBT.
Definition: whd_types.h:52
whd_security_t security
Security type.
Definition: whd_types.h:924
whd_security_t security
Security type.
Definition: whd_types.h:716
#define IBSS_ENABLED
Flag to enable IBSS mode.
Definition: whd_types.h:51
CH Switzerland.
Definition: whd_types.h:634
SY Syrian_Arab_Republic.
Definition: whd_types.h:635
int32_t current_band
Current band type: WLC_BAND_2G or WLC_BAND_5G.
Definition: whd_types.h:285
uint16_t mask_size
Size of the mask in bytes.
Definition: whd_types.h:1042
#define SHARED_ENABLED
Flag to enable Shared key Security.
Definition: whd_types.h:43
Scan is aborted.
Definition: whd_types.h:276
KE Kenya.
Definition: whd_types.h:544
uint16_t int_grant
LE Small Interval Grant.
Definition: whd_types.h:1010
ME Montenegro.
Definition: whd_types.h:577
AW Aruba.
Definition: whd_types.h:445
NF Norfolk_Island.
Definition: whd_types.h:592
Status of each TCP connection.
Definition: whd_wlioctl.h:3961
AF Afghanistan.
Definition: whd_types.h:436
LC Saint_Lucia.
Definition: whd_types.h:612
LU Luxembourg.
Definition: whd_types.h:558
EG Egypt.
Definition: whd_types.h:496
PK Pakistan.
Definition: whd_types.h:596
VN Viet_Nam.
Definition: whd_types.h:661
FM Micronesia,_Federated_States_Of.
Definition: whd_types.h:573
CX Christmas_Island.
Definition: whd_types.h:479
Denotes association response packet.
Definition: whd_types.h:995
Beacon (vs probe response)
Definition: whd_types.h:295
Structure for storing a MAC address (Wi-Fi Media Access Control address).
Definition: whd_types.h:385
int16_t SNR
Average SNR(signal to noise ratio) during frame reception.
Definition: whd_types.h:758
WPA2 PSK Security with TKIP.
Definition: whd_types.h:191
AE United_Arab_Emirates.
Definition: whd_types.h:650
uint8_t channel
Radio channel that the AP beacon was received on.
Definition: whd_types.h:698
MS Montserrat.
Definition: whd_types.h:578
uint8_t flags
flags
Definition: whd_types.h:701
IT Italy.
Definition: whd_types.h:538
Get mac address.
Definition: whd_types.h:372
Actively scan a network by sending 802.11 probe(s)
Definition: whd_types.h:221
#define ENTERPRISE_ENABLED
Flag to enable Enterprise Security.
Definition: whd_types.h:49
int32_t number_of_bands
Number of bands supported, currently 1 or 2.
Definition: whd_types.h:284
uint32_t version
version field
Definition: whd_types.h:730
BN Brunei_Darussalam.
Definition: whd_types.h:465
GN Guinea.
Definition: whd_types.h:523
PL Poland.
Definition: whd_types.h:603
Time units specified in beacon periods.
Definition: whd_types.h:265
MY Malaysia.
Definition: whd_types.h:563
VI Virgin_Islands,_U.S.
Definition: whd_types.h:663
#define WPA2_SECURITY
Flag to enable WPA2 Security.
Definition: whd_types.h:45
TT Trinidad_and_Tobago.
Definition: whd_types.h:642
BZ Belize.
Definition: whd_types.h:456
whd_ie_packet_flag_t
Enumeration of applicable packet mask bits for custom Information Elements (IEs)
Definition: whd_types.h:991
uint32_t whd_result_t
WHD result is specified as uint32_t value.
Definition: whd_types.h:776
struct whd_sdio_config whd_sdio_config_t
Structure for SDIO config parameters which can be set by application during whd power up...
CG Congo.
Definition: whd_types.h:482
Clients are allowed to associate only if MFP is negotiated.
Definition: whd_types.h:305
TD Chad.
Definition: whd_types.h:476
TG Togo.
Definition: whd_types.h:640
FJ Fiji.
Definition: whd_types.h:504
PR Pueto_Rico.
Definition: whd_types.h:605
AN Netherlands_Antilles.
Definition: whd_types.h:586
TH Thailand.
Definition: whd_types.h:639
CA Canada Revision 950.
Definition: whd_types.h:472
int16_t signal_strength
Receive Signal Strength Indication in dBm.
Definition: whd_types.h:694
Structure to store fields after ethernet header in event message.
Definition: whd_events.h:148
Structure for coex config parameters which can be set by application.
Definition: whd_types.h:1018
UY Uruguay.
Definition: whd_types.h:657
whd_usr_ioctl_get_list_t
Enumeration of ioctl get.
Definition: whd_types.h:312
MQ Martinique.
Definition: whd_types.h:568
ZW Zimbabwe.
Definition: whd_types.h:672
VC Saint_Vincent_and_The_Grenadines.
Definition: whd_types.h:614
whd_mac_t BSSID
Basic Service Set Identification (i.e.
Definition: whd_types.h:693
LY Libyan_Arab_Jamahiriya.
Definition: whd_types.h:555
uint32_t ie_len
Length of IE(Information Element)
Definition: whd_types.h:704
Denotes infrastructure network.
Definition: whd_types.h:233
Successful completion of scan.
Definition: whd_types.h:275
struct whd_spi_config whd_spi_config_t
Structure for SPI config parameters which can be set by application during whd power up...
GB United_Kingdom.
Definition: whd_types.h:651
#define TKIP_ENABLED
Flag to enable TKIP Encryption.
Definition: whd_types.h:41
uint32_t count
Number of MAC addresses in the list.
Definition: whd_types.h:935
DK Denmark.
Definition: whd_types.h:490
DJ Djibouti.
Definition: whd_types.h:491
HU Hungary.
Definition: whd_types.h:530
whd_bool_t is_falling_edge
Interrupt trigger (polarity)
Definition: whd_types.h:963
TC Turks_and_Caicos_Islands.
Definition: whd_types.h:646
int16_t signal_strength
Receive Signal Strength Indication in dBm.
Definition: whd_types.h:715
whd_bool_t sdio_1bit_mode
Default is false, means SDIO operates under 4 bit mode.
Definition: whd_types.h:973
uint8_t index
WEP key index [0/1/2/3].
Definition: whd_types.h:951
SI Slovenia.
Definition: whd_types.h:625
PT Portugal.
Definition: whd_types.h:604
Open security on IBSS ad-hoc network.
Definition: whd_types.h:208
Denotes 802.11 mesh network.
Definition: whd_types.h:236
MA Morocco.
Definition: whd_types.h:579
NZ New_Zealand.
Definition: whd_types.h:588
uint16_t capability
Capability information.
Definition: whd_types.h:734
PA Panama.
Definition: whd_types.h:598
whd_security_t security
Security type.
Definition: whd_types.h:697
KI Kiribati.
Definition: whd_types.h:545
TJ Tajikistan.
Definition: whd_types.h:637
whd_listen_interval_time_unit_t
Enumeration of listen interval time unit types.
Definition: whd_types.h:263
Structure for Out-of-band interrupt config parameters which can be set by application during whd powe...
Definition: whd_types.h:959
LK Sri_Lanka.
Definition: whd_types.h:630
Allows both MFP-capable and clients that do not support MFP to join the network.
Definition: whd_types.h:304
struct whd_ap_info * next
Pointer to the next scan result.
Definition: whd_types.h:927
MC Monaco.
Definition: whd_types.h:575
WPA Enterprise Security with TKIP.
Definition: whd_types.h:200
Structure describing a packet filter list item.
Definition: whd_types.h:1037
EC Ecuador.
Definition: whd_types.h:495
BH Bahrain.
Definition: whd_types.h:450
uint8_t channel
Radio channel that the AP beacon was received on.
Definition: whd_types.h:925
WPA2 PSK Security with AES & TKIP.
Definition: whd_types.h:192
Open security.
Definition: whd_types.h:184
TW Taiwan,_Province_Of_China.
Definition: whd_types.h:636
WPA2 PSK Security with AES.
Definition: whd_types.h:190
uint8_t * mask
Pattern mask bytes to be ANDed with the pattern eg.
Definition: whd_types.h:1043
WPA2 Enterprise Security with TKIP.
Definition: whd_types.h:203
Structure for storing a WEP key.
Definition: whd_types.h:949
JP Japan.
Definition: whd_types.h:540
DE Germany.
Definition: whd_types.h:513
PH Philippines.
Definition: whd_types.h:602
CO Colombia.
Definition: whd_types.h:480
int32_t scan_active_dwell_time_per_channel_ms
Period of time to wait on each channel when active scanning.
Definition: whd_types.h:681
ER Eritrea.
Definition: whd_types.h:499
US United_States Revision 4.
Definition: whd_types.h:653
WS Samoa.
Definition: whd_types.h:615
BJ Benin.
Definition: whd_types.h:457
WPA2 FBT PSK Security with AES & TKIP.
Definition: whd_types.h:193
int16_t RSSI
receive signal strength (in dBm)
Definition: whd_types.h:745
0C West_Bank
Definition: whd_types.h:665
SO Somalia.
Definition: whd_types.h:627
LV Latvia.
Definition: whd_types.h:551
MO Macao.
Definition: whd_types.h:559
KM Comoros.
Definition: whd_types.h:481
whd_bool_t high_speed_sdio_clock
Default is false, means SDIO operates in normal clock rate.
Definition: whd_types.h:974
GW Guinea-bissau.
Definition: whd_types.h:524
uint16_t atim_window
Announcement traffic indication message window size.
Definition: whd_types.h:743
IN India.
Definition: whd_types.h:532
Remove a custom IE(Information Element)
Definition: whd_types.h:256
IL Israel.
Definition: whd_types.h:537
FR France.
Definition: whd_types.h:506
struct whd_scan_result whd_scan_result_t
Structure for storing scan results.
WPA2 WPA PSK Security with AES & TKIP.
Definition: whd_types.h:196
EH Western_Sahara.
Definition: whd_types.h:666
MK Macedonia,_Former_Yugoslav_Republic_Of.
Definition: whd_types.h:560
GP Guadeloupe.
Definition: whd_types.h:519
Structure describing a list of associated softAP clients.
Definition: whd_types.h:933
ARP offload statistics.
Definition: whd_wlioctl.h:3830
Worldwide Locale Revision 983.
Definition: whd_types.h:667
ES Spain.
Definition: whd_types.h:629
uint8_t dtim_period
Delivery traffic indication message period.
Definition: whd_types.h:744
LS Lesotho.
Definition: whd_types.h:553
DZ Algeria.
Definition: whd_types.h:438
MW Malawi.
Definition: whd_types.h:562
WPA2 Enterprise Security with AES & FBT.
Definition: whd_types.h:206
#define MK_CNTRY(a, b, rev)
Macro for creating country codes according to endianness.
Definition: whd_types.h:425
whd_scan_status_t
Structure for storing scan status.
Definition: whd_types.h:272
SG Singapore.
Definition: whd_types.h:623
Exists only to force whd_security_t type to 32 bits.
Definition: whd_types.h:213
TR Turkey.
Definition: whd_types.h:644
PE Peru.
Definition: whd_types.h:601
SV El_Salvador.
Definition: whd_types.h:497
GT Guatemala.
Definition: whd_types.h:521
uint8_t intr_priority
OOB interrupt priority.
Definition: whd_types.h:964
Worldwide Locale (passive Ch12-14) Revision 17.
Definition: whd_types.h:669
whd_dot11_reason_code_t
Enumeration of Dot11 Reason Codes.
Definition: whd_types.h:153
SR Suriname.
Definition: whd_types.h:631
FK Falkland_Islands_(Malvinas)
Definition: whd_types.h:502
BSS(Basic Service Set) information structure.
Definition: whd_types.h:728
whd_bool_t is_spi_normal_mode
Default is false.
Definition: whd_types.h:984
uint32_t ie_length
byte length of Information Elements
Definition: whd_types.h:757
CA Canada.
Definition: whd_types.h:471
uint8_t ccode[2]
Two letter ISO country code from AP.
Definition: whd_types.h:700
SC Seychelles.
Definition: whd_types.h:621
RU Russian_Federation.
Definition: whd_types.h:609
JO Jordan.
Definition: whd_types.h:542
Get Listen Interval value.
Definition: whd_types.h:371
wl_chanspec_t chanspec
Channel specification for basic service set.
Definition: whd_types.h:742
LI Liechtenstein.
Definition: whd_types.h:556
Structure for SPI config parameters which can be set by application during whd power up...
Definition: whd_types.h:981
RO Romania.
Definition: whd_types.h:608
MP Northern_Mariana_Islands.
Definition: whd_types.h:593
whd_oob_config_t oob_config
Out-of-band interrupt configuration.
Definition: whd_types.h:985
whd_bss_type_t bss_type
Network type.
Definition: whd_types.h:696
Worldwide Locale (passive Ch12-14)
Definition: whd_types.h:668
GY Guyana.
Definition: whd_types.h:525
uint16_t scan_int
LE scan interval.
Definition: whd_types.h:1011
uint16_t scan_win
LE scan Window.
Definition: whd_types.h:1012
AT Austria.
Definition: whd_types.h:447
whd_ssid_t SSID
Service Set Identification (i.e.
Definition: whd_types.h:692
CF Central_African_Republic.
Definition: whd_types.h:475
TV Tuvalu.
Definition: whd_types.h:647
Specifies that a filter should match a given pattern.
Definition: whd_types.h:1030
May be returned by scan function if BSS type is unknown.
Definition: whd_types.h:238
#define AES_ENABLED
Flag to enable AES Encryption.
Definition: whd_types.h:42
NC New_Caledonia.
Definition: whd_types.h:587
IQ Iraq.
Definition: whd_types.h:535
whd_bss_type_t
Enumeration of network types.
Definition: whd_types.h:231
GI Gibraltar.
Definition: whd_types.h:516
BE Belgium.
Definition: whd_types.h:455
Passively scan a network by listening for beacons from APs.
Definition: whd_types.h:222
BF Burkina_Faso.
Definition: whd_types.h:467
whd_bss_type_t bss_type
Network type.
Definition: whd_types.h:923
MF Sanit_Martin_/_Sint_Marteen.
Definition: whd_types.h:616
uint16_t ie_offset
offset at which IEs start, from beginning
Definition: whd_types.h:756
NG Nigeria.
Definition: whd_types.h:591
MX Mexico.
Definition: whd_types.h:572
#define WPA_SECURITY
Flag to enable WPA Security.
Definition: whd_types.h:44
whd_mac_t BSSID
Basic Service Set Identification (i.e.
Definition: whd_types.h:714
AM Armenia.
Definition: whd_types.h:444
YT Mayotte.
Definition: whd_types.h:571
AO Angola.
Definition: whd_types.h:440
#define WPA3_SECURITY
Flag to enable WPA3 PSK Security.
Definition: whd_types.h:46
VE Venezuela.
Definition: whd_types.h:660
SN Senegal.
Definition: whd_types.h:619
GQ Equatorial_Guinea.
Definition: whd_types.h:498
GG Guernsey.
Definition: whd_types.h:522
whd_packet_filter_rule_t
Enumeration of packet filter rules.
Definition: whd_types.h:1028
OM Oman.
Definition: whd_types.h:595
cyhal_gpio_t host_oob_pin
Host-side GPIO pin selection.
Definition: whd_types.h:961
uint16_t assoc
Listen interval as sent to APs.
Definition: whd_types.h:770
CY Cyprus.
Definition: whd_types.h:488
Time units specified in DTIM periods.
Definition: whd_types.h:266
HT Haiti.
Definition: whd_types.h:526
Structure for LE Scan parameters.
Definition: whd_types.h:1005
Use preferred network offload to detect an AP.
Definition: whd_types.h:223
whd_ssid_t SSID
Service Set Identification (i.e.
Definition: whd_types.h:919
BM Bermuda.
Definition: whd_types.h:458
KR Korea,_Republic_Of.
Definition: whd_types.h:546
whd_custom_ie_action_t
Enumeration of custom IE(Information Element) management actions.
Definition: whd_types.h:253
AG Antigua_and_Barbuda.
Definition: whd_types.h:442
uint8_t flags
flags
Definition: whd_types.h:752
AR Argentina.
Definition: whd_types.h:443
Flag to enable AES Encryption.
Definition: whd_types.h:209
WPA2 Enterprise Security with AES & TKIP.
Definition: whd_types.h:205
CU Cuba.
Definition: whd_types.h:487
uint32_t whd_time_t
Time value in milliseconds.
Definition: whd_types.h:944
whd_buffer_t whd_buffer_queue_ptr_t
type definition for whd_buffer_t
Definition: whd_types.h:910
RSSI came from an off channel DSSS (1 or 1 Mb) Rx.
Definition: whd_types.h:294
CZ Czech_Republic.
Definition: whd_types.h:489
WPA3 Security with AES.
Definition: whd_types.h:194
uint16_t beacon_period
Interval between two consecutive beacon frames.
Definition: whd_types.h:733
UG Uganda.
Definition: whd_types.h:648
GM Gambia.
Definition: whd_types.h:511
Specifies bus type and read direction.
Definition: whd_types.h:175
Denotes 5GHz radio band.
Definition: whd_types.h:246
uint16_t priority
LE scan priority.
Definition: whd_types.h:1007
KW Kuwait.
Definition: whd_types.h:548
RE Reunion.
Definition: whd_types.h:607
SZ Swaziland.
Definition: whd_types.h:632
ID Indonesia.
Definition: whd_types.h:533
#define MCSSET_LEN
Maximum allowed mcs rate.
Definition: whd_types.h:721
VA Holy_See_(Vatican_City_State)
Definition: whd_types.h:527
NL Netherlands.
Definition: whd_types.h:585
uint32_t id
Unique identifier for a packet filter item.
Definition: whd_types.h:1039
Denotes probe response packet.
Definition: whd_types.h:994
GH Ghana.
Definition: whd_types.h:515
BD Bangladesh.
Definition: whd_types.h:452
Q2 United_States_(No_DFS)
Definition: whd_types.h:655
BG Bulgaria.
Definition: whd_types.h:466
uint8_t beacon
Listen interval in beacon periods.
Definition: whd_types.h:768
uint8_t length
WEP key length.
Definition: whd_types.h:952
UZ Uzbekistan.
Definition: whd_types.h:658
WPA PSK Security with AES.
Definition: whd_types.h:188
whd_oob_config_t oob_config
Out-of-band interrupt configuration (required when bus can sleep)
Definition: whd_types.h:975
BI Burundi.
Definition: whd_types.h:468
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.