blob: 6a47ede7e6e76cf2f96fbb634384121b3ff792de [file] [log] [blame]
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -07001/*
Yu Wang943abb92017-04-05 12:08:37 +08002 * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -07003 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
Prakash Dhavali7410fac2014-02-05 21:27:47 -080027
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -070028#ifndef __WEXT_IW_H__
29#define __WEXT_IW_H__
30
31#include <linux/version.h>
32#include <linux/module.h>
33#include <linux/netdevice.h>
34#include <linux/wireless.h>
35#include <net/iw_handler.h>
36#include <linux/timer.h>
37#include "vos_event.h"
38
39/*
40 * order of parameters in addTs private ioctl
41 */
42#define HDD_WLAN_WMM_PARAM_HANDLE 0
43#define HDD_WLAN_WMM_PARAM_TID 1
44#define HDD_WLAN_WMM_PARAM_DIRECTION 2
Prakash Dhavali82154d72013-12-27 15:07:45 -080045#define HDD_WLAN_WMM_PARAM_APSD 3
46#define HDD_WLAN_WMM_PARAM_USER_PRIORITY 4
47#define HDD_WLAN_WMM_PARAM_NOMINAL_MSDU_SIZE 5
48#define HDD_WLAN_WMM_PARAM_MAXIMUM_MSDU_SIZE 6
49#define HDD_WLAN_WMM_PARAM_MINIMUM_DATA_RATE 7
50#define HDD_WLAN_WMM_PARAM_MEAN_DATA_RATE 8
51#define HDD_WLAN_WMM_PARAM_PEAK_DATA_RATE 9
52#define HDD_WLAN_WMM_PARAM_MAX_BURST_SIZE 10
53#define HDD_WLAN_WMM_PARAM_MINIMUM_PHY_RATE 11
54#define HDD_WLAN_WMM_PARAM_SURPLUS_BANDWIDTH_ALLOWANCE 12
55#define HDD_WLAN_WMM_PARAM_SERVICE_INTERVAL 13
56#define HDD_WLAN_WMM_PARAM_SUSPENSION_INTERVAL 14
57#define HDD_WLAN_WMM_PARAM_BURST_SIZE_DEFN 15
58#define HDD_WLAN_WMM_PARAM_ACK_POLICY 16
59#define HDD_WLAN_WMM_PARAM_INACTIVITY_INTERVAL 17
60#define HDD_WLAN_WMM_PARAM_MAX_SERVICE_INTERVAL 18
61#define HDD_WLAN_WMM_PARAM_COUNT 19
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -070062
63#define MHZ 6
64
DARAM SUDHA82d0d862015-03-03 14:24:57 +053065#define WE_MAX_STR_LEN IW_PRIV_SIZE_MASK
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -070066#define WLAN_HDD_UI_BAND_AUTO 0
67#define WLAN_HDD_UI_BAND_5_GHZ 1
68#define WLAN_HDD_UI_BAND_2_4_GHZ 2
Jeff Johnsond3d769e2014-04-02 12:09:25 -070069/* SETBAND x */
70/* 012345678 */
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -070071#define WLAN_HDD_UI_SET_BAND_VALUE_OFFSET 8
72
73typedef enum
74{
75 HDD_WLAN_WMM_DIRECTION_UPSTREAM = 0,
76 HDD_WLAN_WMM_DIRECTION_DOWNSTREAM = 1,
77 HDD_WLAN_WMM_DIRECTION_BIDIRECTIONAL = 2,
78} hdd_wlan_wmm_direction_e;
79
80typedef enum
81{
82 HDD_WLAN_WMM_POWER_SAVE_LEGACY = 0,
83 HDD_WLAN_WMM_POWER_SAVE_UAPSD = 1,
84} hdd_wlan_wmm_power_save_e;
85
86typedef enum
87{
88 // TSPEC/re-assoc done, async
89 HDD_WLAN_WMM_STATUS_SETUP_SUCCESS = 0,
90 // no need to setup TSPEC since ACM=0 and no UAPSD desired, sync + async
91 HDD_WLAN_WMM_STATUS_SETUP_SUCCESS_NO_ACM_NO_UAPSD = 1,
92 // no need to setup TSPEC since ACM=0 and UAPSD already exists, sync + async
93 HDD_WLAN_WMM_STATUS_SETUP_SUCCESS_NO_ACM_UAPSD_EXISTING = 2,
94 // TSPEC result pending, sync
95 HDD_WLAN_WMM_STATUS_SETUP_PENDING = 3,
96 // TSPEC/re-assoc failed, sync + async
97 HDD_WLAN_WMM_STATUS_SETUP_FAILED = 4,
98 // Request rejected due to invalid params, sync + async
99 HDD_WLAN_WMM_STATUS_SETUP_FAILED_BAD_PARAM = 5,
100 // TSPEC request rejected since AP!=QAP, sync
101 HDD_WLAN_WMM_STATUS_SETUP_FAILED_NO_WMM = 6,
102
103 // TSPEC modification/re-assoc successful, async
104 HDD_WLAN_WMM_STATUS_MODIFY_SUCCESS = 7,
105 // TSPEC modification a no-op since ACM=0 and no change in UAPSD, sync + async
106 HDD_WLAN_WMM_STATUS_MODIFY_SUCCESS_NO_ACM_NO_UAPSD = 8,
107 // TSPEC modification a no-op since ACM=0 and requested U-APSD already exists, sync + async
108 HDD_WLAN_WMM_STATUS_MODIFY_SUCCESS_NO_ACM_UAPSD_EXISTING = 9,
109 // TSPEC result pending, sync
110 HDD_WLAN_WMM_STATUS_MODIFY_PENDING = 10,
111 // TSPEC modification failed, prev TSPEC in effect, sync + async
112 HDD_WLAN_WMM_STATUS_MODIFY_FAILED = 11,
113 // TSPEC modification request rejected due to invalid params, sync + async
114 HDD_WLAN_WMM_STATUS_MODIFY_FAILED_BAD_PARAM = 12,
115
116 // TSPEC release successful, sync and also async
117 HDD_WLAN_WMM_STATUS_RELEASE_SUCCESS = 13,
118 // TSPEC release pending, sync
119 HDD_WLAN_WMM_STATUS_RELEASE_PENDING = 14,
120 // TSPEC release failed, sync + async
121 HDD_WLAN_WMM_STATUS_RELEASE_FAILED = 15,
122 // TSPEC release rejected due to invalid params, sync
123 HDD_WLAN_WMM_STATUS_RELEASE_FAILED_BAD_PARAM = 16,
124 // TSPEC modified due to the mux'ing of requests on ACs, async
125
126 HDD_WLAN_WMM_STATUS_MODIFIED = 17,
127 // TSPEC revoked by AP, async
128 HDD_WLAN_WMM_STATUS_LOST = 18,
129 // some internal failure like memory allocation failure, etc, sync
Jeff Johnson33d87442014-02-18 15:57:26 -0800130 HDD_WLAN_WMM_STATUS_INTERNAL_FAILURE = 19,
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700131
Srinivas Girigowdaa9586412014-09-05 18:04:55 -0700132 /* U-APSD failed during setup but OTA setup (whether TSPEC exchange or
133 re-assoc) was done so app should release this QoS, async */
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700134 HDD_WLAN_WMM_STATUS_SETUP_UAPSD_SET_FAILED = 20,
Srinivas Girigowdaa9586412014-09-05 18:04:55 -0700135 /* U-APSD failed during modify, but OTA setup (whether TSPEC exchange or
136 re-assoc) was done so app should release this QoS, async */
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700137 HDD_WLAN_WMM_STATUS_MODIFY_UAPSD_SET_FAILED = 21
138
139} hdd_wlan_wmm_status_e;
140
141/** TS Info Ack Policy */
142typedef enum
143{
144 HDD_WLAN_WMM_TS_INFO_ACK_POLICY_NORMAL_ACK = 0,
145 HDD_WLAN_WMM_TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK = 1,
146} hdd_wlan_wmm_ts_info_ack_policy_e;
147
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700148/** Maximum Length of WPA/RSN IE */
149#define MAX_WPA_RSN_IE_LEN 40
150
151/** Maximum Number of WEP KEYS */
152#define MAX_WEP_KEYS 4
153
154/** Ether Address Length */
155#define ETHER_ADDR_LEN 6
156
157/** Enable 11d */
158#define ENABLE_11D 1
159
160/** Disable 11d */
161#define DISABLE_11D 0
162
Jeff Johnson33d87442014-02-18 15:57:26 -0800163/*
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700164 refer wpa.h in wpa supplicant code for REASON_MICHAEL_MIC_FAILURE
165
Jeff Johnson33d87442014-02-18 15:57:26 -0800166 supplicant sets REASON_MICHAEL_MIC_FAILURE as the reason code when it sends the MLME deauth IOCTL
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700167 for TKIP counter measures
168*/
169#define HDD_REASON_MICHAEL_MIC_FAILURE 14
170
Jeff Johnson33d87442014-02-18 15:57:26 -0800171/*
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700172 * These are for TLV fields in WPS IE
173 */
Jeff Johnson33d87442014-02-18 15:57:26 -0800174#define HDD_WPS_UUID_LEN 16
175#define HDD_WPS_ELEM_VERSION 0x104a
176#define HDD_WPS_ELEM_REQUEST_TYPE 0x103a
177#define HDD_WPS_ELEM_CONFIG_METHODS 0x1008
178#define HDD_WPS_ELEM_UUID_E 0x1047
179#define HDD_WPS_ELEM_PRIMARY_DEVICE_TYPE 0x1054
180#define HDD_WPS_ELEM_RF_BANDS 0x103c
181#define HDD_WPS_ELEM_ASSOCIATION_STATE 0x1002
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700182#define HDD_WPS_ELEM_CONFIGURATION_ERROR 0x1009
Jeff Johnson33d87442014-02-18 15:57:26 -0800183#define HDD_WPS_ELEM_DEVICE_PASSWORD_ID 0x1012
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700184
185#define HDD_WPA_ELEM_VENDOR_EXTENSION 0x1049
186
187#define HDD_WPS_MANUFACTURER_LEN 64
188#define HDD_WPS_MODEL_NAME_LEN 32
189#define HDD_WPS_MODEL_NUM_LEN 32
190#define HDD_WPS_SERIAL_NUM_LEN 32
191#define HDD_WPS_DEVICE_OUI_LEN 4
192#define HDD_WPS_DEVICE_NAME_LEN 32
193
194#define HDD_WPS_ELEM_WPS_STATE 0x1044
195#define HDD_WPS_ELEM_APSETUPLOCK 0x1057
Jeff Johnson33d87442014-02-18 15:57:26 -0800196#define HDD_WPS_ELEM_SELECTEDREGISTRA 0x1041
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700197#define HDD_WPS_ELEM_RSP_TYPE 0x103B
198#define HDD_WPS_ELEM_MANUFACTURER 0x1021
199#define HDD_WPS_ELEM_MODEL_NAME 0x1023
200#define HDD_WPS_ELEM_MODEL_NUM 0x1024
Jeff Johnson33d87442014-02-18 15:57:26 -0800201#define HDD_WPS_ELEM_SERIAL_NUM 0x1042
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700202#define HDD_WPS_ELEM_DEVICE_NAME 0x1011
203#define HDD_WPS_ELEM_REGISTRA_CONF_METHODS 0x1053
204
Ming-yi Lin11240c42013-12-28 15:49:19 -0800205#define HDD_RTSCTS_EN_MASK 0xF
206#define HDD_RTSCTS_ENABLE 1
207#define HDD_CTS_ENABLE 2
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700208
209#define WPS_OUI_TYPE "\x00\x50\xf2\x04"
210#define WPS_OUI_TYPE_SIZE 4
211
212#define SS_OUI_TYPE "\x00\x16\x32"
213#define SS_OUI_TYPE_SIZE 3
214
215#define P2P_OUI_TYPE "\x50\x6f\x9a\x09"
216#define P2P_OUI_TYPE_SIZE 4
217
218#define HS20_OUI_TYPE "\x50\x6f\x9a\x10"
219#define HS20_OUI_TYPE_SIZE 4
220
James Zmuda531f2482014-05-28 12:15:30 -0700221#define OSEN_OUI_TYPE "\x50\x6f\x9a\x12"
222#define OSEN_OUI_TYPE_SIZE 4
223
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700224#ifdef WLAN_FEATURE_WFD
225#define WFD_OUI_TYPE "\x50\x6f\x9a\x0a"
226#define WFD_OUI_TYPE_SIZE 4
227#endif
228
229typedef enum
230{
231 eWEXT_WPS_OFF = 0,
232 eWEXT_WPS_ON = 1,
233}hdd_wps_mode_e;
234
235typedef enum
236{
237 DRIVER_POWER_MODE_AUTO = 0,
238 DRIVER_POWER_MODE_ACTIVE = 1,
239} hdd_power_mode_e;
240
241typedef enum
242{
243 WEXT_SCAN_PENDING_GIVEUP = 0,
244 WEXT_SCAN_PENDING_PIGGYBACK = 1,
245 WEXT_SCAN_PENDING_DELAY = 2,
246 WEXT_SCAN_PENDING_MAX
247} hdd_scan_pending_option_e;
248
kaliu58afff52015-04-22 14:51:13 +0800249/**
250 * enum hdd_tsf_get_state - status of get tsf action
251 *
252 * TSF_RETURN: get tsf
253 * TSF_STA_NOT_CONNECTED_NO_TSF: sta not connected to ap
254 * TSF_NOT_RETURNED_BY_FW: fw not returned tsf
255 * TSF_CURRENT_IN_CAP_STATE: driver in capture state
256 * TSF_CAPTURE_FAIL: capture fail
257 * TSF_GET_FAIL: get fail
258 * TSF_RESET_GPIO_FAIL: GPIO reset fail
Manikandan Mohan3b0a2d82015-10-05 13:56:53 -0700259 * TSF_SAP_NOT_STARTED_NO_TSF SAP not started
Yu Wang943abb92017-04-05 12:08:37 +0800260 * TSF_NOT_READY: TSF module is not initialized or init failed
Yu Wang7e9fd6e2017-04-05 16:52:45 +0800261 * TSF_DISABLED_BY_TSFPLUS: cap_tsf/get_tsf are disabled due to TSF_PLUS
kaliu58afff52015-04-22 14:51:13 +0800262 */
263enum hdd_tsf_get_state {
264 TSF_RETURN = 0,
265 TSF_STA_NOT_CONNECTED_NO_TSF,
266 TSF_NOT_RETURNED_BY_FW,
267 TSF_CURRENT_IN_CAP_STATE,
268 TSF_CAPTURE_FAIL,
269 TSF_GET_FAIL,
Manikandan Mohan3b0a2d82015-10-05 13:56:53 -0700270 TSF_RESET_GPIO_FAIL,
Yu Wang943abb92017-04-05 12:08:37 +0800271 TSF_SAP_NOT_STARTED_NO_TSF,
Yu Wang7e9fd6e2017-04-05 16:52:45 +0800272 TSF_NOT_READY,
273 TSF_DISABLED_BY_TSFPLUS
kaliu58afff52015-04-22 14:51:13 +0800274};
275
276/**
277 * enum hdd_tsf_capture_state - status of capture
278 *
279 * TSF_IDLE: idle
280 * TSF__CAP_STATE: current is in capture state
281 */
282enum hdd_tsf_capture_state {
283 TSF_IDLE = 0,
284 TSF_CAP_STATE
285};
286
Jeff Johnson33d87442014-02-18 15:57:26 -0800287/*
288 * This structure contains the interface level (granularity)
289 * configuration information in support of wireless extensions.
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700290 */
Jeff Johnson33d87442014-02-18 15:57:26 -0800291typedef struct hdd_wext_state_s
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700292{
293 /** The CSR "desired" Profile */
Jeff Johnson33d87442014-02-18 15:57:26 -0800294 tCsrRoamProfile roamProfile;
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700295
296 /** BSSID to which connect request is received */
297 tCsrBssid req_bssId;
298
Jeff Johnson33d87442014-02-18 15:57:26 -0800299 /** The association status code */
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700300 v_U32_t statusCode;
301
302 /** wpa version WPA/WPA2/None*/
Jeff Johnson33d87442014-02-18 15:57:26 -0800303 v_S31_t wpaVersion;
304
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700305 /**WPA or RSN IE*/
Jeff Johnson33d87442014-02-18 15:57:26 -0800306 u_int8_t WPARSNIE[MAX_WPA_RSN_IE_LEN];
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700307
308 /**gen IE */
309 tSirAddie genIE;
310
311 /**Additional IE for assoc */
Jeff Johnson33d87442014-02-18 15:57:26 -0800312 tSirAddie assocAddIE;
313
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700314 /**auth key mgmt */
Jeff Johnson33d87442014-02-18 15:57:26 -0800315 v_S31_t authKeyMgmt;
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700316
317 /**vos event */
318 vos_event_t vosevent;
319
320 vos_event_t scanevent;
321
322 /**Counter measure state, Started/Stopped*/
Jeff Johnson33d87442014-02-18 15:57:26 -0800323 v_BOOL_t mTKIPCounterMeasures;
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700324
325 /**Completion Variable*/
326 struct completion completion_var;
327
328#ifdef FEATURE_OEM_DATA_SUPPORT
329 /* oem data req in Progress */
330 v_BOOL_t oemDataReqInProgress;
331
332 /* oem data req ID */
333 v_U32_t oemDataReqID;
334#endif
335
Krishna Kumaar Natarajan95f8a282014-03-20 22:06:41 -0700336#ifdef FEATURE_WLAN_ESE
337 /* ESE state variables */
338 v_BOOL_t isESEConnection;
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700339 eCsrAuthType collectedAuthType; /* Collected from ALL SIOCSIWAUTH Ioctls. Will be negotiatedAuthType - in tCsrProfile */
340#endif
341}hdd_wext_state_t;
342
343typedef struct ccp_freq_chan_map_s{
344 // List of frequencies
345 v_U32_t freq;
346 v_U32_t chan;
347}hdd_freq_chan_map_t;
348
349#define wlan_hdd_get_wps_ie_ptr(ie, ie_len) \
350 wlan_hdd_get_vendor_oui_ie_ptr(WPS_OUI_TYPE, WPS_OUI_TYPE_SIZE, ie, ie_len)
351
352#define wlan_hdd_get_p2p_ie_ptr(ie, ie_len) \
353 wlan_hdd_get_vendor_oui_ie_ptr(P2P_OUI_TYPE, P2P_OUI_TYPE_SIZE, ie, ie_len)
354
355#ifdef WLAN_FEATURE_WFD
356#define wlan_hdd_get_wfd_ie_ptr(ie, ie_len) \
357 wlan_hdd_get_vendor_oui_ie_ptr(WFD_OUI_TYPE, WFD_OUI_TYPE_SIZE, ie, ie_len)
358#endif
359
360extern int hdd_UnregisterWext(struct net_device *dev);
361extern int hdd_register_wext(struct net_device *dev);
362extern int hdd_wlan_get_freq(v_U32_t chan,v_U32_t *freq);
363extern int hdd_wlan_get_rts_threshold(hdd_adapter_t *pAdapter,
364 union iwreq_data *wrqu);
365extern int hdd_wlan_get_frag_threshold(hdd_adapter_t *pAdapter,
366 union iwreq_data *wrqu);
367extern void hdd_wlan_get_version(hdd_adapter_t *pAdapter,
368 union iwreq_data *wrqu, char *extra);
369
Chandrasekaran, Manishekar472b1962016-04-19 19:14:46 +0530370extern int hdd_wlan_get_stats(hdd_adapter_t *pAdapter, v_U16_t *length,
DARAM SUDHA41d02de2014-09-29 17:32:56 +0530371 char *buffer, v_U16_t buf_len);
372
Nirav Shah84f93002015-03-12 18:54:07 +0530373extern void hdd_wlan_dump_stats(hdd_adapter_t *pAdapter, int value);
374
Jeff Johnson33d87442014-02-18 15:57:26 -0800375extern int iw_get_scan(struct net_device *dev,
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700376 struct iw_request_info *info,
377 union iwreq_data *wrqu, char *extra);
378
379extern int iw_set_scan(struct net_device *dev, struct iw_request_info *info,
380 union iwreq_data *wrqu, char *extra);
381
382extern int iw_set_cscan(struct net_device *dev, struct iw_request_info *info,
383 union iwreq_data *wrqu, char *extra);
384
Jeff Johnson33d87442014-02-18 15:57:26 -0800385extern int iw_set_essid(struct net_device *dev,
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700386 struct iw_request_info *info,
387 union iwreq_data *wrqu, char *extra);
388
Jeff Johnson33d87442014-02-18 15:57:26 -0800389extern int iw_get_essid(struct net_device *dev,
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700390 struct iw_request_info *info,
391 struct iw_point *dwrq, char *extra);
392
393
394extern int iw_set_ap_address(struct net_device *dev,
395 struct iw_request_info *info,
396 union iwreq_data *wrqu, char *extra);
397
398extern int iw_get_ap_address(struct net_device *dev,
399 struct iw_request_info *info,
400 union iwreq_data *wrqu, char *extra);
401
402extern int iw_set_auth(struct net_device *dev,struct iw_request_info *info,
403 union iwreq_data *wrqu,char *extra);
404
405extern int iw_get_auth(struct net_device *dev,struct iw_request_info *info,
406 union iwreq_data *wrqu,char *extra);
407
Jeff Johnson2c594552015-09-09 13:43:54 -0700408int iw_set_pno(struct net_device *dev, struct iw_request_info *info,
409 union iwreq_data *wrqu, char *extra, int nOffset);
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700410
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700411VOS_STATUS iw_set_power_params(struct net_device *dev, struct iw_request_info *info,
412 union iwreq_data *wrqu, char *extra, int nOffset);
413
414void ccmCfgSetCallback(tHalHandle halHandle, tANI_S32 result);
415
416extern int iw_set_var_ints_getnone(struct net_device *dev, struct iw_request_info *info,
417 union iwreq_data *wrqu, char *extra);
418
419extern int iw_set_three_ints_getnone(struct net_device *dev, struct iw_request_info *info,
420 union iwreq_data *wrqu, char *extra);
421
Girish Gowli0fcad9b2014-06-12 18:44:33 +0530422extern int hdd_priv_get_data(struct iw_point *p_priv_data,
423 union iwreq_data *wrqu);
424
Girish Gowliff20db82014-06-17 19:28:05 +0530425extern void *mem_alloc_copy_from_user_helper(const void *wrqu_data, size_t len);
426
Manikandaraja Venkatachalapathy45fff832014-05-01 10:16:05 -0700427extern VOS_STATUS wlan_hdd_get_linkspeed_for_peermac(hdd_adapter_t *pAdapter,
428 tSirMacAddr macAddress);
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700429void hdd_clearRoamProfileIe( hdd_adapter_t *pAdapter);
430void hdd_GetClassA_statisticsCB(void *pStats, void *pContext);
Manikandaraja Venkatachalapathy45fff832014-05-01 10:16:05 -0700431void hdd_GetLink_SpeedCB(tSirLinkSpeedInfo *pLinkSpeed, void *pContext);
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700432
433VOS_STATUS wlan_hdd_check_ula_done(hdd_adapter_t *pAdapter);
434
Jeff Johnson33d87442014-02-18 15:57:26 -0800435v_U8_t* wlan_hdd_get_vendor_oui_ie_ptr(v_U8_t *oui, v_U8_t oui_size,
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700436 v_U8_t *ie, int ie_len);
437
438VOS_STATUS wlan_hdd_enter_bmps(hdd_adapter_t *pAdapter, int mode);
439
440VOS_STATUS wlan_hdd_exit_lowpower(hdd_context_t *pHddCtx,
441 hdd_adapter_t *pAdapter);
442
443VOS_STATUS wlan_hdd_enter_lowpower(hdd_context_t *pHddCtx);
444
445VOS_STATUS wlan_hdd_get_classAstats(hdd_adapter_t *pAdapter);
446
447VOS_STATUS wlan_hdd_get_station_stats(hdd_adapter_t *pAdapter);
448
449VOS_STATUS wlan_hdd_get_rssi(hdd_adapter_t *pAdapter, v_S7_t *rssi_value);
Prakash Dhavali82154d72013-12-27 15:07:45 -0800450
451VOS_STATUS wlan_hdd_get_snr(hdd_adapter_t *pAdapter, v_S7_t *snr);
452
Boreddy, Bhaskar Reddy638d8402015-05-28 16:50:52 +0530453int hdd_get_ldpc(hdd_adapter_t *adapter, int *value);
454int hdd_set_ldpc(hdd_adapter_t *adapter, int value);
455int hdd_get_tx_stbc(hdd_adapter_t *adapter, int *value);
456int hdd_set_tx_stbc(hdd_adapter_t *adapter, int value);
457int hdd_get_rx_stbc(hdd_adapter_t *adapter, int *value);
458int hdd_set_rx_stbc(hdd_adapter_t *adapter, int value);
459
Prakash Dhavali82154d72013-12-27 15:07:45 -0800460void hdd_wmm_tx_snapshot(hdd_adapter_t *pAdapter);
461
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700462#ifdef FEATURE_WLAN_TDLS
463VOS_STATUS iw_set_tdls_params(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra, int nOffset);
464#endif
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700465
466#ifdef WLAN_FEATURE_PACKET_FILTERING
Hanumanth Reddy Pothulad8316712016-11-25 17:13:11 +0530467int wlan_hdd_set_mc_addr_list(hdd_adapter_t *pAdapter, v_U8_t set);
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700468#endif
Prakash Dhavali82154d72013-12-27 15:07:45 -0800469void* wlan_hdd_change_country_code_callback(void *pAdapter);
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700470
471VOS_STATUS wlan_hdd_set_powersave(hdd_adapter_t *pAdapter, int mode);
472
Jeff Johnsond3d769e2014-04-02 12:09:25 -0700473int hdd_setBand(struct net_device *dev, u8 ui_band);
474int hdd_setBand_helper(struct net_device *dev, const char *command);
Manikandan Mohanb76784c2014-08-20 18:06:33 +0530475int wlan_hdd_update_phymode(struct net_device *net, tHalHandle hal,
476 int new_phymode,
477 hdd_context_t *phddctx);
Jeff Johnsond3d769e2014-04-02 12:09:25 -0700478
Haresh Eswari Lankaraman9890bf32014-07-25 18:27:54 -0700479int process_wma_set_command_twoargs(int sessid, int paramid,
480 int sval, int ssecval, int vpdev);
Ryan Hsud1b4f572014-09-13 08:18:18 -0700481
482void hdd_GetTemperatureCB(int temperature, void *pContext);
483VOS_STATUS wlan_hdd_get_temperature(hdd_adapter_t *pAdapter,
484 union iwreq_data *wrqu, char *extra);
Madan Mohan Koyyalamudie32d2192013-09-28 23:54:37 -0700485#endif // __WEXT_IW_H__