Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
c5c77ba1 JK |
2 | |
3 | /*! | |
4 | * @file coreconfigurator.h | |
5 | * @brief | |
6 | * @author | |
7 | * @sa coreconfigurator.c | |
8 | * @date 1 Mar 2012 | |
9 | * @version 1.0 | |
10 | */ | |
11 | ||
c5c77ba1 JK |
12 | #ifndef CORECONFIGURATOR_H |
13 | #define CORECONFIGURATOR_H | |
14 | ||
c5c77ba1 | 15 | #include "wilc_wlan_if.h" |
36cca3ba | 16 | |
c5c77ba1 | 17 | #define NUM_BASIC_SWITCHES 45 |
13994d1e | 18 | #define NUM_FHSS_SWITCHES 0 |
c5c77ba1 | 19 | |
13994d1e | 20 | #define NUM_RSSI 5 |
c5c77ba1 JK |
21 | |
22 | #ifdef MAC_802_11N | |
23 | #define NUM_11N_BASIC_SWITCHES 25 | |
24 | #define NUM_11N_HUT_SWITCHES 47 | |
36cca3ba | 25 | #else |
c5c77ba1 JK |
26 | #define NUM_11N_BASIC_SWITCHES 0 |
27 | #define NUM_11N_HUT_SWITCHES 0 | |
36cca3ba | 28 | #endif |
c5c77ba1 | 29 | |
36cca3ba | 30 | #define MAC_HDR_LEN 24 |
c5c77ba1 JK |
31 | #define MAX_SSID_LEN 33 |
32 | #define FCS_LEN 4 | |
33 | #define TIME_STAMP_LEN 8 | |
34 | #define BEACON_INTERVAL_LEN 2 | |
35 | #define CAP_INFO_LEN 2 | |
36 | #define STATUS_CODE_LEN 2 | |
37 | #define AID_LEN 2 | |
38 | #define IE_HDR_LEN 2 | |
39 | ||
c5c77ba1 | 40 | #define SET_CFG 0 |
c5c77ba1 JK |
41 | #define GET_CFG 1 |
42 | ||
13994d1e SK |
43 | #define MAX_STRING_LEN 256 |
44 | #define MAX_SURVEY_RESULT_FRAG_SIZE MAX_STRING_LEN | |
45 | #define SURVEY_RESULT_LENGTH 44 | |
46 | #define MAX_ASSOC_RESP_FRAME_SIZE MAX_STRING_LEN | |
c5c77ba1 | 47 | |
13994d1e SK |
48 | #define MAC_CONNECTED 1 |
49 | #define MAC_DISCONNECTED 0 | |
c5c77ba1 | 50 | |
d85f5326 | 51 | #define MAKE_WORD16(lsb, msb) ((((u16)(msb) << 8) & 0xFF00) | (lsb)) |
4e4467fd | 52 | #define MAKE_WORD32(lsw, msw) ((((u32)(msw) << 16) & 0xFFFF0000) | (lsw)) |
c5c77ba1 | 53 | |
b1d296b3 | 54 | enum connect_status { |
13994d1e SK |
55 | SUCCESSFUL_STATUSCODE = 0, |
56 | UNSPEC_FAIL = 1, | |
57 | UNSUP_CAP = 10, | |
58 | REASOC_NO_ASOC = 11, | |
59 | FAIL_OTHER = 12, | |
60 | UNSUPT_ALG = 13, | |
61 | AUTH_SEQ_FAIL = 14, | |
62 | CHLNG_FAIL = 15, | |
63 | AUTH_TIMEOUT = 16, | |
64 | AP_FULL = 17, | |
65 | UNSUP_RATE = 18, | |
66 | SHORT_PREAMBLE_UNSUP = 19, | |
67 | PBCC_UNSUP = 20, | |
68 | CHANNEL_AGIL_UNSUP = 21, | |
69 | SHORT_SLOT_UNSUP = 25, | |
70 | OFDM_DSSS_UNSUP = 26, | |
c5c77ba1 | 71 | CONNECT_STS_FORCE_16_BIT = 0xFFFF |
b1d296b3 | 72 | }; |
c5c77ba1 | 73 | |
f3ae44fc | 74 | struct rssi_history_buffer { |
36d98c18 TK |
75 | bool full; |
76 | u8 index; | |
77 | s8 samples[NUM_RSSI]; | |
1d191e10 | 78 | }; |
36cca3ba | 79 | |
6b5180a0 | 80 | struct network_info { |
5c23a291 | 81 | s8 rssi; |
fa5e2d15 | 82 | u16 cap_info; |
2a3ff58a | 83 | u8 ssid[MAX_SSID_LEN]; |
a36e89e9 | 84 | u8 ssid_len; |
38d3bb78 | 85 | u8 bssid[6]; |
4b313e91 | 86 | u16 beacon_period; |
df340fdf | 87 | u8 dtim_period; |
405a8c78 | 88 | u8 ch; |
264d70f4 LK |
89 | unsigned long time_scan_cached; |
90 | unsigned long time_scan; | |
d4020763 | 91 | bool new_network; |
a35d6e2d | 92 | u8 found; |
afb70653 | 93 | u32 tsf_lo; |
390b6db0 LK |
94 | u8 *ies; |
95 | u16 ies_len; | |
cb64de7c | 96 | void *join_params; |
6d642eaa | 97 | struct rssi_history_buffer rssi_history; |
17d2f2b3 | 98 | u64 tsf_hi; |
6b5180a0 | 99 | }; |
c5c77ba1 | 100 | |
40d96e1d | 101 | struct connect_resp_info { |
ba7b6ff5 LK |
102 | u16 capability; |
103 | u16 status; | |
104 | u16 assoc_id; | |
105 | u8 *ies; | |
106 | u16 ies_len; | |
40d96e1d | 107 | }; |
c5c77ba1 | 108 | |
3b0437e1 | 109 | struct connect_info { |
d4a24e08 | 110 | u8 bssid[6]; |
4ff48570 | 111 | u8 *req_ies; |
4607f9cc | 112 | size_t req_ies_len; |
61e1326f | 113 | u8 *resp_ies; |
3e7477c2 | 114 | u16 resp_ies_len; |
134b4cf2 | 115 | u16 status; |
3b0437e1 | 116 | }; |
c5c77ba1 | 117 | |
bb76df5a | 118 | struct disconnect_info { |
90f209da | 119 | u16 reason; |
63d03e47 | 120 | u8 *ie; |
c5c77ba1 | 121 | size_t ie_len; |
bb76df5a | 122 | }; |
c5c77ba1 | 123 | |
6b5180a0 LK |
124 | s32 wilc_parse_network_info(u8 *msg_buffer, |
125 | struct network_info **ret_network_info); | |
946a9ddb | 126 | s32 wilc_parse_assoc_resp_info(u8 *buffer, u32 buffer_len, |
40d96e1d | 127 | struct connect_resp_info **ret_connect_resp_info); |
dade3c62 | 128 | void wilc_scan_complete_received(struct wilc *wilc, u8 *buffer, u32 length); |
bdb27e64 | 129 | void wilc_network_info_received(struct wilc *wilc, u8 *buffer, u32 length); |
28c82859 | 130 | void wilc_gnrl_async_info_received(struct wilc *wilc, u8 *buffer, u32 length); |
c5c77ba1 | 131 | #endif |