1 /*
2 * Copyright (c) 2013-2021 The Linux Foundation. All rights reserved.
3 * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for
6 * any purpose with or without fee is hereby granted, provided that the
7 * above copyright notice and this permission notice appear in all
8 * copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
18 */
19
20 #if !defined(WLAN_HDD_ASSOC_H__)
21 #define WLAN_HDD_ASSOC_H__
22
23 /**
24 * DOC: wlan_hdd_assoc.h
25 *
26 */
27
28 /* Include files */
29 #include <sme_api.h>
30 #include <wlan_defs.h>
31 #include "cdp_txrx_peer_ops.h"
32 #include <net/cfg80211.h>
33 #include <linux/ieee80211.h>
34
35 #define HDD_TIME_STRING_LEN 24
36
37 /* Timeout (in ms) for Link to Up before Registering Station */
38 #define ASSOC_LINKUP_TIMEOUT 60
39
40 #define INVALID_PEER_IDX -1
41
42 /**
43 * enum eConnectionState - connection state values at HDD
44 * @eConnectionState_NotConnected: Not associated in Infra
45 * @eConnectionState_NdiDisconnected: NDI in disconnected state - no peers
46 * @eConnectionState_NdiConnected: NDI in connected state - at least one peer
47 */
48 typedef enum {
49 eConnectionState_NotConnected,
50 eConnectionState_NdiDisconnected,
51 eConnectionState_NdiConnected,
52 } eConnectionState;
53
54 /**
55 * enum peer_status - Peer status
56 * @ePeerConnected: peer connected
57 * @ePeerDisconnected: peer disconnected
58 */
59 enum peer_status {
60 ePeerConnected = 1,
61 ePeerDisconnected
62 };
63
64 /**
65 * struct hdd_conn_flag - connection flags
66 * @ht_present: ht element present or not
67 * @vht_present: vht element present or not
68 * @eht_present: eht element present or not
69 * @hs20_present: hs20 element present or not
70 * @ht_op_present: ht operation present or not
71 * @vht_op_present: vht operation present or not
72 * @he_present: he operation present or not
73 * @eht_op_present: eht operation present or not
74 */
75 struct hdd_conn_flag {
76 uint8_t ht_present:1;
77 uint8_t vht_present:1;
78 uint8_t eht_present:1;
79 uint8_t hs20_present:1;
80 uint8_t ht_op_present:1;
81 uint8_t vht_op_present:1;
82 uint8_t he_present:1;
83 uint8_t eht_op_present:1;
84 };
85
86 /*defines for tx_BF_cap_info */
87 #define TX_BF_CAP_INFO_TX_BF 0x00000001
88 #define TX_BF_CAP_INFO_RX_STAG_RED_SOUNDING 0x00000002
89 #define TX_BF_CAP_INFO_TX_STAG_RED_SOUNDING 0x00000004
90 #define TX_BF_CAP_INFO_RX_ZFL 0x00000008
91 #define TX_BF_CAP_INFO_TX_ZFL 0x00000010
92 #define TX_BF_CAP_INFO_IMP_TX_BF 0x00000020
93 #define TX_BF_CAP_INFO_CALIBRATION 0x000000c0
94 #define TX_BF_CAP_INFO_CALIBRATION_SHIFT 6
95 #define TX_BF_CAP_INFO_EXP_CSIT_BF 0x00000100
96 #define TX_BF_CAP_INFO_EXP_UNCOMP_STEER_MAT 0x00000200
97 #define TX_BF_CAP_INFO_EXP_BF_CSI_FB 0x00001c00
98 #define TX_BF_CAP_INFO_EXP_BF_CSI_FB_SHIFT 10
99 #define TX_BF_CAP_INFO_EXP_UNCMP_STEER_MAT 0x0000e000
100 #define TX_BF_CAP_INFO_EXP_UNCMP_STEER_MAT_SHIFT 13
101 #define TX_BF_CAP_INFO_EXP_CMP_STEER_MAT_FB 0x00070000
102 #define TX_BF_CAP_INFO_EXP_CMP_STEER_MAT_FB_SHIFT 16
103 #define TX_BF_CAP_INFO_CSI_NUM_BF_ANT 0x00180000
104 #define TX_BF_CAP_INFO_CSI_NUM_BF_ANT_SHIFT 18
105 #define TX_BF_CAP_INFO_UNCOMP_STEER_MAT_BF_ANT 0x00600000
106 #define TX_BF_CAP_INFO_UNCOMP_STEER_MAT_BF_ANT_SHIFT 20
107 #define TX_BF_CAP_INFO_COMP_STEER_MAT_BF_ANT 0x01800000
108 #define TX_BF_CAP_INFO_COMP_STEER_MAT_BF_ANT_SHIFT 22
109 #define TX_BF_CAP_INFO_RSVD 0xfe000000
110
111 /* defines for antenna selection info */
112 #define ANTENNA_SEL_INFO 0x01
113 #define ANTENNA_SEL_INFO_EXP_CSI_FB_TX 0x02
114 #define ANTENNA_SEL_INFO_ANT_ID_FB_TX 0x04
115 #define ANTENNA_SEL_INFO_EXP_CSI_FB 0x08
116 #define ANTENNA_SEL_INFO_ANT_ID_FB 0x10
117 #define ANTENNA_SEL_INFO_RX_AS 0x20
118 #define ANTENNA_SEL_INFO_TX_SOUNDING_PPDU 0x40
119 #define ANTENNA_SEL_INFO_RSVD 0x80
120
121 /**
122 * struct hdd_connection_info - structure to store connection information
123 * @conn_state: connection state of the NIC
124 * @bssid: BSSID
125 * @ssid: SSID Info
126 * @peer_macaddr:Peer Mac Address of the IBSS Stations
127 * @auth_type: Auth Type
128 * @uc_encrypt_type: Unicast Encryption Type
129 * @is_authenticated: Remembers authenticated state
130 * @dot11mode: dot11mode
131 * @proxy_arp_service: proxy arp service
132 * @ptk_installed: ptk installed state
133 * @gtk_installed: gtk installed state
134 * @nss: number of spatial streams negotiated
135 * @rate_flags: rate flags for current connection
136 * @chan_freq: channel frequency
137 * @txrate: txrate structure holds nss & datarate info
138 * @rxrate: rx rate info
139 * @noise: holds noise information
140 * @ht_caps: holds ht capabilities info
141 * @vht_caps: holds vht capabilities info
142 * @conn_flag: flag conn info params is present or not
143 * @hs20vendor_ie: holds passpoint/hs20 info
144 * @ht_operation: HT operation info
145 * @vht_operation: VHT operation info
146 * @he_operation: HE operation info
147 * @he_oper_len: length of @he_operation
148 * @roam_count: roaming counter
149 * @signal: holds rssi info
150 * @assoc_status_code: holds assoc fail reason
151 * @congestion: holds congestion percentage
152 * @last_ssid: holds last ssid
153 * @last_auth_type: holds last auth type
154 * @auth_time: last authentication established time
155 * @connect_time: last association established time
156 * @ch_width: channel width of operating channel
157 * @max_tx_bitrate: Max tx bitrate supported by the AP
158 * to which currently sta is connected.
159 * @prev_ap_bcn_ie: ap beacon IE information to which sta is currently connected
160 * @ieee_link_id: AP Link Id valid for MLO connection
161 * @eht_operation: EHT operation info
162 * @eht_oper_len: length of @eht_operation
163 */
164 struct hdd_connection_info {
165 eConnectionState conn_state;
166 struct qdf_mac_addr bssid;
167 tCsrSSIDInfo ssid;
168 struct qdf_mac_addr peer_macaddr[MAX_PEERS];
169 enum csr_akm_type auth_type;
170 eCsrEncryptionType uc_encrypt_type;
171 uint8_t is_authenticated;
172 uint32_t dot11mode;
173 uint8_t proxy_arp_service;
174 bool ptk_installed;
175 bool gtk_installed;
176 uint8_t nss;
177 uint32_t rate_flags;
178 uint32_t chan_freq;
179 struct rate_info txrate;
180 struct rate_info rxrate;
181 int8_t noise;
182 struct ieee80211_ht_cap ht_caps;
183 struct ieee80211_vht_cap vht_caps;
184 struct hdd_conn_flag conn_flag;
185 tDot11fIEhs20vendor_ie hs20vendor_ie;
186 struct ieee80211_ht_operation ht_operation;
187 struct ieee80211_vht_operation vht_operation;
188 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0)) \
189 && defined(WLAN_FEATURE_11AX)
190 struct ieee80211_he_operation *he_operation;
191 uint32_t he_oper_len;
192 #endif
193 uint32_t roam_count;
194 int8_t signal;
195 int32_t assoc_status_code;
196 tCsrSSIDInfo last_ssid;
197 enum csr_akm_type last_auth_type;
198 char auth_time[HDD_TIME_STRING_LEN];
199 char connect_time[HDD_TIME_STRING_LEN];
200 enum phy_ch_width ch_width;
201 struct rate_info max_tx_bitrate;
202 struct element_info prev_ap_bcn_ie;
203 #ifdef WLAN_FEATURE_11BE_MLO
204 int32_t ieee_link_id;
205 #endif
206 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)) && \
207 defined(WLAN_FEATURE_11BE)
208 struct ieee80211_eht_operation eht_operation;
209 uint32_t eht_oper_len;
210 #endif
211 };
212
213 /* Forward declarations */
214 struct hdd_adapter;
215 struct hdd_station_ctx;
216 struct hdd_context;
217 struct wlan_hdd_link_info;
218
219 /*
220 * hdd_is_fils_connection: API to determine if connection is FILS
221 * @hdd_ctx: hdd context
222 * @adapter: hdd adapter
223 *
224 * Return: true if fils connection else false
225 */
226 bool hdd_is_fils_connection(struct hdd_context *hdd_ctx,
227 struct hdd_adapter *adapter);
228
229 /**
230 * hdd_conn_set_authenticated() - set authentication state
231 * @link_info: Link info pointer in HDD adapter
232 * @auth_state: authentication state
233 *
234 * This function updates the global HDD station context
235 * authentication state. And to start auto powersave timer
236 * if ptk installed case and open security case.
237 *
238 * Return: none
239 */
240 void hdd_conn_set_authenticated(struct wlan_hdd_link_info *link_info,
241 uint8_t auth_state);
242
243 /**
244 * hdd_conn_set_connection_state() - set connection state
245 * @adapter: pointer to the adapter
246 * @conn_state: connection state
247 *
248 * This function updates the global HDD station context connection state.
249 *
250 * Return: none
251 */
252 void hdd_conn_set_connection_state(struct hdd_adapter *adapter,
253 eConnectionState conn_state);
254
255 /**
256 * hdd_conn_get_connected_band() - get current connection radio band
257 * @link_info: pointer to the link_info structure
258 *
259 * Return: BAND_2G or BAND_5G based on current AP connection
260 * BAND_ALL if not connected
261 */
262 enum band_info
263 hdd_conn_get_connected_band(struct wlan_hdd_link_info *link_info);
264
265 /**
266 * hdd_get_sta_connection_in_progress() - get STA for which connection
267 * is in progress
268 * @hdd_ctx: hdd context
269 *
270 * Return: Link info pointer in adapter for which connection is in progress
271 */
272 struct wlan_hdd_link_info *
273 hdd_get_sta_connection_in_progress(struct hdd_context *hdd_ctx);
274
275 /**
276 * hdd_abort_ongoing_sta_connection() - Disconnect the sta for which the
277 * connection is in progress.
278 *
279 * @hdd_ctx: hdd context
280 *
281 * Return: none
282 */
283 void hdd_abort_ongoing_sta_connection(struct hdd_context *hdd_ctx);
284
285 /**
286 * hdd_abort_ongoing_sta_sae_connection() - Disconnect the sta for which the
287 * sae connection is in progress.
288 *
289 * @hdd_ctx: hdd context
290 *
291 * Return: none
292 */
293 void hdd_abort_ongoing_sta_sae_connection(struct hdd_context *hdd_ctx);
294
295 /**
296 * hdd_is_any_sta_connected() - check if any sta in connected state
297 * @hdd_ctx: hdd context
298 *
299 * Return: true if any connected sta
300 */
301 bool hdd_is_any_sta_connected(struct hdd_context *hdd_ctx);
302
303 /**
304 * hdd_get_first_connected_sta_vdev_id() - check if any sta in connected state
305 * and exteact the vdev id of connected STA.
306 * @hdd_ctx: hdd context
307 * @vdev_id: pointer to vdev id
308 *
309 * Return: QDF_STATUS enumeration
310 */
311 QDF_STATUS hdd_get_first_connected_sta_vdev_id(struct hdd_context *hdd_ctx,
312 uint32_t *vdev_id);
313
314 /**
315 * hdd_sme_roam_callback() - hdd sme roam callback
316 * @context: pointer to link info context in HDD adapter
317 * @roam_info: pointer to roam info
318 * @roam_status: roam status
319 * @roam_result: roam result
320 *
321 * Return: QDF_STATUS enumeration
322 */
323 QDF_STATUS hdd_sme_roam_callback(void *context,
324 struct csr_roam_info *roam_info,
325 eRoamCmdStatus roam_status,
326 eCsrRoamResult roam_result);
327
328 #ifdef FEATURE_WLAN_TDLS
329 /**
330 * hdd_roam_register_tdlssta() - register new TDLS station
331 * @adapter: pointer to adapter
332 * @peerMac: pointer to peer MAC address
333 * @qos: Quality of service
334 *
335 * Construct the txrx_desc and register the new STA with the Data Plane.
336 * This is called as part of ADD_STA in the TDLS setup.
337 *
338 * Return: QDF_STATUS enumeration
339 */
340 QDF_STATUS hdd_roam_register_tdlssta(struct hdd_adapter *adapter,
341 const uint8_t *peerMac, uint8_t qos);
342 #endif
343
344 #ifdef FEATURE_WLAN_ESE
345 /**
346 * hdd_indicate_ese_bcn_report_no_results() - beacon report no scan results
347 * @adapter: pointer to adapter
348 * @measurementToken: measurement token
349 * @flag: flag
350 * @numBss: number of bss
351 *
352 * If the measurement is none and no scan results found,
353 * indicate the supplicant about measurement done.
354 *
355 * Return: none
356 */
357 void
358 hdd_indicate_ese_bcn_report_no_results(const struct hdd_adapter *adapter,
359 const uint16_t measurementToken,
360 const bool flag,
361 const uint8_t numBss);
362 #endif /* FEATURE_WLAN_ESE */
363
364 /**
365 * hdd_change_peer_state() - change peer state
366 * @link_info: Link info pointer of VDEV in adapter
367 * @peer_mac_addr: Peer MAC address
368 * @sta_state: peer state
369 *
370 * Return: QDF status
371 */
372 QDF_STATUS hdd_change_peer_state(struct wlan_hdd_link_info *link_info,
373 uint8_t *peer_mac_addr,
374 enum ol_txrx_peer_state sta_state);
375
376 /**
377 * hdd_update_dp_vdev_flags() - update datapath vdev flags
378 * @cbk_data: callback data
379 * @vdev_id: virtual interface id
380 * @vdev_param: vdev parameter
381 * @is_link_up: link state up or down
382 *
383 * Return: QDF status
384 */
385 QDF_STATUS hdd_update_dp_vdev_flags(void *cbk_data,
386 uint8_t vdev_id,
387 uint32_t vdev_param,
388 bool is_link_up);
389
390 /**
391 * hdd_roam_register_sta() - register station
392 * @link_info: Link info pointer in HDD adapter
393 * @bssid: bssid of the connection
394 * @is_auth_required: is upper layer authenticatoin required
395 *
396 * Return: QDF_STATUS enumeration
397 */
398 QDF_STATUS hdd_roam_register_sta(struct wlan_hdd_link_info *link_info,
399 struct qdf_mac_addr *bssid,
400 bool is_auth_required);
401
402 /**
403 * hdd_save_peer() - Save peer MAC address in adapter peer table.
404 * @sta_ctx: pointer to hdd station context
405 * @peer_mac_addr: mac address of new peer
406 *
407 * This information is passed to iwconfig later. The peer that joined
408 * last is passed as information to iwconfig.
409 *
410 * Return: true if success, false otherwise
411 */
412 bool hdd_save_peer(struct hdd_station_ctx *sta_ctx,
413 struct qdf_mac_addr *peer_mac_addr);
414
415 /**
416 * hdd_delete_peer() - removes peer from hdd station context peer table
417 * @sta_ctx: pointer to hdd station context
418 * @peer_mac_addr: mac address of peer to be deleted
419 *
420 * Return: None
421 */
422 void hdd_delete_peer(struct hdd_station_ctx *sta_ctx,
423 struct qdf_mac_addr *peer_mac_addr);
424
425 /**
426 * hdd_copy_ht_caps()- copy ht caps info from roam ht caps
427 * info to source ht_cap info of type ieee80211_ht_cap.
428 * @hdd_ht_cap: pointer to Source ht_cap info of type ieee80211_ht_cap
429 * @roam_ht_cap: pointer to roam ht_caps info
430 *
431 * Return: None
432 */
433
434 void hdd_copy_ht_caps(struct ieee80211_ht_cap *hdd_ht_cap,
435 tDot11fIEHTCaps *roam_ht_cap);
436
437 /**
438 * hdd_add_beacon_filter() - add beacon filter
439 * @adapter: Pointer to the hdd adapter
440 *
441 * Return: 0 on success and errno on failure
442 */
443 int hdd_add_beacon_filter(struct hdd_adapter *adapter);
444
445 /**
446 * hdd_copy_vht_caps()- copy vht caps info from roam vht caps
447 * info to source vht_cap info of type ieee80211_vht_cap.
448 * @hdd_vht_cap: pointer to Source vht_cap info of type ieee80211_vht_cap
449 * @roam_vht_cap: pointer to roam vht_caps info
450 *
451 * Return: None
452 */
453 void hdd_copy_vht_caps(struct ieee80211_vht_cap *hdd_vht_cap,
454 tDot11fIEVHTCaps *roam_vht_cap);
455
456 /**
457 * hdd_roam_profile_init() - initialize adapter roam profile
458 * @link_info: Link info pointer in HDD adapter
459 *
460 * This function initializes the roam profile that is embedded within
461 * the adapter.
462 *
463 * Return: void
464 */
465 void hdd_roam_profile_init(struct wlan_hdd_link_info *link_info);
466
467 /**
468 * hdd_any_valid_peer_present() - Check if any valid peer is present
469 * @link_info: Pointer of link_info in adapter struct
470 *
471 * Check if there is any peer present with non-zero mac address other than
472 * broadcast address.
473 *
474 * Return: True if there is any valid peer present
475 */
476 bool hdd_any_valid_peer_present(struct wlan_hdd_link_info *link_info);
477
478 /**
479 * hdd_cm_register_cb() - Sets legacy callbacks to osif
480 *
481 * API to set legacy callbacks to osif
482 * Context: Any context.
483 *
484 * Return: QDF_STATUS
485 */
486 QDF_STATUS hdd_cm_register_cb(void);
487
488 /**
489 * hdd_cm_unregister_cb - Resets legacy callbacks to osif
490 *
491 * API to reset legacy callbacks to osif
492 * Context: Any context.
493 *
494 * Return: QDF_STATUS
495 */
496 void hdd_cm_unregister_cb(void);
497
498 /**
499 * hdd_conn_remove_connect_info() - remove connection info
500 * @sta_ctx: pointer to global HDD station context
501 *
502 * Return: none
503 */
504 void hdd_conn_remove_connect_info(struct hdd_station_ctx *sta_ctx);
505
506 /**
507 * hdd_clear_roam_profile_ie() - Clear Roam Profile IEs
508 * @adapter: adapter who's IEs are to be cleared
509 *
510 * Return: None
511 */
512 void hdd_clear_roam_profile_ie(struct hdd_adapter *adapter);
513
514 /**
515 * hdd_remove_beacon_filter() - remove beacon filter
516 * @adapter: Pointer to the hdd adapter
517 *
518 * Return: 0 on success and errno on failure
519 */
520 int hdd_remove_beacon_filter(struct hdd_adapter *adapter);
521
522 /**
523 * hdd_copy_ht_operation()- copy HT operation element to
524 * hdd station context.
525 * @hdd_sta_ctx: pointer to hdd station context
526 * @ht_ops: pointer to ht operation
527 *
528 * Return: None
529 */
530 void hdd_copy_ht_operation(struct hdd_station_ctx *hdd_sta_ctx,
531 tDot11fIEHTInfo *ht_ops);
532
533 /**
534 * hdd_copy_vht_operation()- copy VHT operations element to
535 * hdd station context.
536 * @hdd_sta_ctx: pointer to hdd station context
537 * @vht_ops: pointer to vht operation
538 *
539 * Return: None
540 */
541 void hdd_copy_vht_operation(struct hdd_station_ctx *hdd_sta_ctx,
542 tDot11fIEVHTOperation *vht_ops);
543
544 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)) && \
545 defined(WLAN_FEATURE_11BE)
546 /**
547 * hdd_copy_eht_operation()- copy EHT operations element to
548 * hdd station context.
549 * @hdd_sta_ctx: pointer to hdd station context
550 * @eht_ops: pointer to eht operation
551 *
552 * Return: None
553 */
554 void hdd_copy_eht_operation(struct hdd_station_ctx *hdd_sta_ctx,
555 tDot11fIEeht_op *eht_ops);
556
557 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)) && \
558 defined(WLAN_FEATURE_11BE)
559 void hdd_copy_eht_operation(struct hdd_station_ctx *hdd_sta_ctx,
560 tDot11fIEeht_op *eht_ops);
561 #else
hdd_copy_eht_operation(struct hdd_station_ctx * hdd_sta_ctx,tDot11fIEeht_op * eht_ops)562 static inline void hdd_copy_eht_operation(struct hdd_station_ctx *hdd_sta_ctx,
563 tDot11fIEeht_op *eht_ops)
564 {
565 }
566 #endif
567
568 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0)) && \
569 defined(WLAN_FEATURE_11AX)
570 /**
571 * hdd_copy_he_operation()- copy HE operations element to
572 * hdd station context.
573 * @hdd_sta_ctx: pointer to hdd station context
574 * @he_operation: pointer to he operation
575 *
576 * Return: None
577 */
578 void hdd_copy_he_operation(struct hdd_station_ctx *hdd_sta_ctx,
579 tDot11fIEhe_op *he_operation);
580 #else
hdd_copy_he_operation(struct hdd_station_ctx * hdd_sta_ctx,tDot11fIEhe_op * he_operation)581 static inline void hdd_copy_he_operation(struct hdd_station_ctx *hdd_sta_ctx,
582 tDot11fIEhe_op *he_operation)
583 {
584 }
585 #endif
586
587 /**
588 * hdd_is_roam_sync_in_progress()- Check if roam offloaded
589 * @hdd_ctx: Pointer to hdd context
590 * @vdev_id: Vdev id
591 *
592 * Return: roam sync status if roaming offloaded else false
593 */
594 bool hdd_is_roam_sync_in_progress(struct hdd_context *hdd_ctx, uint8_t vdev_id);
595
596 #ifdef WLAN_FEATURE_HOST_ROAM
597 /**
598 * wlan_hdd_ft_set_key_delay() - hdd set key delayed for FT mode
599 * @vdev: vdev
600 *
601 * Return: void
602 */
603 void wlan_hdd_ft_set_key_delay(struct wlan_objmgr_vdev *vdev);
604 #else
605 static inline void
wlan_hdd_ft_set_key_delay(struct wlan_objmgr_vdev * vdev)606 wlan_hdd_ft_set_key_delay(struct wlan_objmgr_vdev *vdev)
607 {
608 }
609 #endif
610
611 #ifdef FEATURE_WLAN_WAPI
612 /**
613 * hdd_translate_wapi_to_csr_auth_type() - Translate WAPI to CSR auth type
614 * @auth_suite: auth suite
615 *
616 * Return: enum csr_akm_type enumeration
617 */
618 enum csr_akm_type hdd_translate_wapi_to_csr_auth_type(uint8_t auth_suite[4]);
619
620 /**
621 * hdd_translate_wapi_to_csr_encryption_type() -
622 * Translate WAPI to CSR encryption type
623 * @cipher_suite: cipher suite
624 *
625 * Return: eCsrEncryptionType enumeration
626 */
627 eCsrEncryptionType
628 hdd_translate_wapi_to_csr_encryption_type(uint8_t cipher_suite[4]);
629 #else
hdd_translate_wapi_to_csr_auth_type(uint8_t auth_suite[4])630 enum csr_akm_type hdd_translate_wapi_to_csr_auth_type(uint8_t auth_suite[4])
631 {
632 return eCSR_AUTH_TYPE_UNKNOWN;
633 }
634
635 eCsrEncryptionType
hdd_translate_wapi_to_csr_encryption_type(uint8_t cipher_suite[4])636 hdd_translate_wapi_to_csr_encryption_type(uint8_t cipher_suite[4])
637 {
638 return eCSR_AUTH_TYPE_UNKNOWN;
639 }
640 #endif
641
642 /**
643 * hdd_convert_ch_width_to_cdp_peer_bw() - Convert ch_width to DP format
644 * @ch_width: ch_width
645 *
646 * Return: cdp_peer_bw enumeration
647 */
648 enum cdp_peer_bw
649 hdd_convert_ch_width_to_cdp_peer_bw(enum phy_ch_width ch_width);
650
651 #endif
652