1 /* 2 * Copyright (c) 2012-2015,2020-2021 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 /** 19 * DOC: wlan_cm_public_struct.h 20 * 21 * This header file maintain public structures required for connection mgr 22 */ 23 24 #ifndef __WLAN_CM_PUBLIC_STRUCT_H__ 25 #define __WLAN_CM_PUBLIC_STRUCT_H__ 26 27 #include <wlan_scan_public_structs.h> 28 #include "wlan_crypto_global_def.h" 29 #include "qdf_status.h" 30 #ifdef WLAN_FEATURE_11BE_MLO 31 #include <wlan_mlo_mgr_public_structs.h> 32 #endif 33 34 #define CM_ID_INVALID 0xFFFFFFFF 35 typedef uint32_t wlan_cm_id; 36 37 /* Diconnect active timeout */ 38 #define DISCONNECT_TIMEOUT \ 39 ((STOP_RESPONSE_TIMER) + (DELETE_RESPONSE_TIMER) +\ 40 (RSO_STOP_RESPONSE_TIMER) + (1000)) 41 42 /* 43 * Disconnect command wait timeout VDEV timeouts + 5 sec buff for current active 44 * command to complete 45 */ 46 #define CM_DISCONNECT_CMD_TIMEOUT DISCONNECT_TIMEOUT + 5000 47 48 /** 49 * struct wlan_cm_wep_key_params - store wep key info 50 * @key: key info 51 * @seq: seq info 52 * @key_len: key length 53 * @seq_len: seq len 54 * @key_idx: key index 55 */ 56 struct wlan_cm_wep_key_params { 57 uint8_t *key; 58 uint8_t *seq; 59 uint8_t key_len; 60 uint8_t seq_len; 61 uint8_t key_idx; 62 }; 63 64 /** 65 * struct wlan_cm_connect_crypto_info - Crypto settings 66 * @wpa_versions: indicates which, if any, WPA versions are enabled 67 * (from enum nl80211_wpa_versions) 68 * @auth_type: Auth mode type bitmask 69 * @group_cipher: group key cipher suite bitmask 70 * @ciphers_pairwise: unicast key cipher suites bitmask 71 * @akm_suites: AKM suites bitmask 72 * @wep_keys: static WEP keys, if not NULL points to an array of 73 * MAX_WEP_KEYS WEP keys 74 * @rsn_caps: rsn caps 75 * @mgmt_ciphers: mgmt cipher bitmask 76 */ 77 struct wlan_cm_connect_crypto_info { 78 uint32_t wpa_versions; 79 uint32_t auth_type; 80 uint32_t group_cipher; 81 uint32_t ciphers_pairwise; 82 uint32_t akm_suites; 83 struct wlan_cm_wep_key_params wep_keys; 84 uint16_t rsn_caps; 85 uint32_t mgmt_ciphers; 86 }; 87 88 #ifdef WLAN_FEATURE_FILS_SK 89 #define WLAN_CM_FILS_MAX_KEYNAME_NAI_LENGTH 253 90 #define WLAN_CM_FILS_MAX_REALM_LEN 255 91 #define WLAN_CM_FILS_MAX_RRK_LENGTH 64 92 93 /** 94 * enum wlan_fils_auth_type - fils auth type info 95 * @FILS_SK_WITHOUT_PFS: without pfs 96 * @FILS_SK_WITH_PFS: with pfs 97 * @FILS_PK_AUTH: fils auth 98 * @FILS_PK_MAX: max value 99 */ 100 enum wlan_fils_auth_type { 101 FILS_SK_WITHOUT_PFS, 102 FILS_SK_WITH_PFS, 103 FILS_PK_AUTH, 104 FILS_PK_MAX, 105 }; 106 107 /** 108 * struct wlan_fils_con_info - fils connect req info 109 * @is_fils_connection: is fils connection 110 * @username_len: username length 111 * @username: username 112 * @realm_len: realm length 113 * @realm: realm 114 * @next_seq_num: next seq number 115 * @rrk_len: rrk length 116 * @rrk: rrk 117 */ 118 struct wlan_fils_con_info { 119 bool is_fils_connection; 120 uint32_t username_len; 121 uint8_t username[WLAN_CM_FILS_MAX_KEYNAME_NAI_LENGTH]; 122 uint32_t realm_len; 123 uint8_t realm[WLAN_CM_FILS_MAX_REALM_LEN]; 124 uint16_t next_seq_num; 125 uint32_t rrk_len; 126 uint8_t rrk[WLAN_CM_FILS_MAX_RRK_LENGTH]; 127 enum wlan_fils_auth_type auth_type; 128 }; 129 #endif 130 131 /** 132 * enum wlan_cm_source - connection manager req source 133 * @CM_OSIF_CONNECT: Connect req initiated by OSIF or north bound 134 * @CM_ROAMING_HOST: Roaming request initiated by host 135 * @CM_ROAMING_NUD_FAILURE: Roaming request initiated by NUD failure 136 * @CM_ROAMING_FW: Roam req initiated by FW 137 * @CM_OSIF_DISCONNECT: Disconnect req initiated by OSIF or north bound 138 * @CM_PEER_DISCONNECT: Disconnect req initiated by peer sending deauth/disassoc 139 * only for this localy generated will be false while indicating to kernel 140 * @CM_SB_DISCONNECT: Disconnect initiated from firmware. eg HB failure, 141 * sta kickout etc 142 * @CM_MLME_DISCONNECT: Disconnect req initiated by mlme. eg VDEV mgr or any 143 * other mlme component. 144 * @CM_INTERNAL_DISCONNECT: Internal disconnect initiated by Connection manager 145 * on receiving the back to back commands 146 * @CM_ROAM_DISCONNECT: Disconnect req due to HO failure 147 * @CM_OSIF_CFG_CONNECT: Connect request initiated due to config change 148 * @CM_OSIF_CFG_DISCONNECT: Disconnect request initiated due to config change 149 * @CM_MLO_LINK_VDEV_DISCONNECT: Disconnect req for ML link 150 * @CM_SOURCE_MAX: max value of connection manager source 151 * @CM_SOURCE_INVALID: Invalid connection manager req source 152 */ 153 enum wlan_cm_source { 154 CM_OSIF_CONNECT, 155 CM_ROAMING_HOST, 156 CM_ROAMING_NUD_FAILURE, 157 CM_ROAMING_FW, 158 CM_OSIF_DISCONNECT, 159 CM_PEER_DISCONNECT, 160 CM_SB_DISCONNECT, 161 CM_MLME_DISCONNECT, 162 CM_INTERNAL_DISCONNECT, 163 CM_ROAM_DISCONNECT, 164 CM_OSIF_CFG_CONNECT, 165 CM_OSIF_CFG_DISCONNECT, 166 CM_MLO_LINK_VDEV_DISCONNECT, 167 CM_SOURCE_MAX, 168 CM_SOURCE_INVALID = CM_SOURCE_MAX, 169 }; 170 171 /** 172 * struct wlan_cm_connect_req - connect req from requester 173 * @vdev_id: vdev id 174 * @source: source of the req 175 * @bssid: bssid given 176 * @prev_bssid: prev AP bssid, given in case supplican want to roam to new BSSID 177 * @ssid: profile SSID 178 * @bssid_hint: bssid hint to connect 179 * @chan_freq: channel of the AP 180 * @chan_freq_hint: channel hint 181 * @crypto: crypto related info 182 * @assoc_ie:Additional assoc IE to be appended in assoc req 183 * (Include RSN/WPA/WAPI/WPS ies) 184 * @scan_ie: Default scan ie to be used in the uncast probe req and connect scan 185 * @force_rsne_override: force the arbitrary rsne received in connect req to be 186 * used with out validation, used for the scenarios where the device is used 187 * as a testbed device with special functionality and not recommended 188 * for production. 189 * @is_wps_connection: if its wps connection 190 * @is_osen_connection: if its osen connection 191 * @reassoc_in_non_connected: if reassoc received in non connected 192 * @dot11mode_filter: dot11mode filter used to restrict connection to 193 * 11n/11ac/11ax. 194 * @sae_pwe: SAE mechanism for PWE derivation 195 * 0 = hunting-and-pecking loop only 196 * 1 = hash-to-element only 197 * 2 = both hunting-and-pecking loop and hash-to-element enabled 198 * @ht_caps: ht capability information bit mask 199 * @ht_caps_mask: mask of valid ht caps 200 * @vht_caps: vht capability information bit mask 201 * @vht_caps_mask: mask of valid vht caps 202 * @fils_info: Fills related connect info 203 * @is_non_assoc_link: non assoc link 204 * @ml_parnter_info: ml partner link info 205 */ 206 struct wlan_cm_connect_req { 207 uint8_t vdev_id; 208 enum wlan_cm_source source; 209 struct qdf_mac_addr bssid; 210 struct qdf_mac_addr prev_bssid; 211 struct wlan_ssid ssid; 212 struct qdf_mac_addr bssid_hint; 213 qdf_freq_t chan_freq; 214 qdf_freq_t chan_freq_hint; 215 struct wlan_cm_connect_crypto_info crypto; 216 struct element_info assoc_ie; 217 struct element_info scan_ie; 218 uint8_t force_rsne_override:1, 219 is_wps_connection:1, 220 is_osen_connection:1, 221 reassoc_in_non_connected:1; 222 enum dot11_mode_filter dot11mode_filter; 223 uint8_t sae_pwe; 224 uint16_t ht_caps; 225 uint16_t ht_caps_mask; 226 uint32_t vht_caps; 227 uint32_t vht_caps_mask; 228 #ifdef WLAN_FEATURE_FILS_SK 229 struct wlan_fils_con_info fils_info; 230 #endif 231 bool is_non_assoc_link; 232 #ifdef WLAN_FEATURE_11BE_MLO 233 struct mlo_partner_info ml_parnter_info; 234 #endif 235 }; 236 237 /** 238 * struct wlan_cm_vdev_connect_req - connect req from connection manager to 239 * vdev mgr 240 * @vdev_id: vdev id 241 * @cm_id: Connect manager id 242 * @force_rsne_override: force the arbitrary rsne received in connect req to be 243 * used with out validation, used for the scenarios where the device is used 244 * as a testbed device with special functionality and not recommended 245 * for production. 246 * @is_wps_connection: if its wps connection 247 * @is_osen_connection: if its osen connection 248 * @ht_caps: ht capability 249 * @ht_caps_mask: mask of valid ht caps 250 * @vht_caps: vht capability 251 * @vht_caps_mask: mask of valid vht caps 252 * @assoc_ie: assoc ie to be used in assoc req 253 * @scan_ie: Default scan ie to be used in the uncast probe req 254 * @bss: scan entry for the candidate 255 * @fils_info: Fills related connect info 256 * @is_non_assoc_link: non assoc link 257 * @ml_parnter_info: ml partner link info 258 * @owe_trans_ssid: owe trans ssid to be used when scan entry ssid is wildcard 259 */ 260 struct wlan_cm_vdev_connect_req { 261 uint8_t vdev_id; 262 wlan_cm_id cm_id; 263 uint8_t force_rsne_override:1, 264 is_wps_connection:1, 265 is_osen_connection:1; 266 uint16_t ht_caps; 267 uint16_t ht_caps_mask; 268 uint32_t vht_caps; 269 uint32_t vht_caps_mask; 270 struct element_info assoc_ie; 271 struct element_info scan_ie; 272 struct scan_cache_node *bss; 273 #ifdef WLAN_FEATURE_FILS_SK 274 struct wlan_fils_con_info *fils_info; 275 #endif 276 bool is_non_assoc_link; 277 #ifdef WLAN_FEATURE_11BE_MLO 278 struct mlo_partner_info ml_parnter_info; 279 #endif 280 struct wlan_ssid owe_trans_ssid; 281 }; 282 283 /** 284 * struct wlan_cm_roam_req - roam req from requester 285 * @forced_roaming: Roaming to be done without giving bssid, and channel. 286 * @self_reassoc: used to determine self reassoc in host roaming 287 * @vdev_id: vdev id 288 * @source: source of the req 289 * @bssid: bssid given 290 * @prev_bssid: prev AP bssid, given in case supplican want to roam to new BSSID 291 * @chan_freq: channel of the AP 292 */ 293 struct wlan_cm_roam_req { 294 uint8_t forced_roaming:1, 295 self_reassoc:1; 296 uint8_t vdev_id; 297 enum wlan_cm_source source; 298 struct qdf_mac_addr bssid; 299 struct qdf_mac_addr prev_bssid; 300 uint32_t chan_freq; 301 }; 302 303 /** 304 * struct wlan_cm_vdev_reassoc_req - Reassoc req from connection manager to 305 * vdev mgr 306 * @vdev_id: vdev id 307 * @cm_id: Connect manager id 308 * @self_reassoc: if self reassoc 309 * @bss: scan entry for the candidate 310 */ 311 struct wlan_cm_vdev_reassoc_req { 312 uint8_t vdev_id; 313 wlan_cm_id cm_id; 314 bool self_reassoc; 315 struct qdf_mac_addr prev_bssid; 316 struct scan_cache_node *bss; 317 }; 318 319 /** 320 * struct wlan_cm_disconnect_req - disconnect req from requester 321 * @vdev_id: vdev id 322 * @source: source of disconnect 323 * @reason_code: protocol/propitiatory reason code of the disconnect. 324 * propitiatory will be used to send in 325 * QCA_WLAN_VENDOR_ATTR_GET_STATION_INFO_DRIVER_DISCONNECT_REASON 326 * @bssid: bssid of AP 327 * @is_no_disassoc_disconnect: Is disassoc required 328 */ 329 struct wlan_cm_disconnect_req { 330 uint8_t vdev_id; 331 enum wlan_cm_source source; 332 enum wlan_reason_code reason_code; 333 struct qdf_mac_addr bssid; 334 bool is_no_disassoc_disconnect; 335 }; 336 337 /** 338 * struct wlan_cm_vdev_discon_req - disconnect req from connection manager to 339 * vdev mgr 340 * @cm_id: connection manager ID 341 * @req: disconnect req 342 */ 343 struct wlan_cm_vdev_discon_req { 344 wlan_cm_id cm_id; 345 struct wlan_cm_disconnect_req req; 346 }; 347 348 /* 349 * enum wlan_cm_connect_fail_reason: connection manager connect fail reason 350 * @CM_NO_CANDIDATE_FOUND: No candidate found 351 * @CM_ABORT_DUE_TO_NEW_REQ_RECVD: Aborted as new command is received and 352 * @CM_BSS_SELECT_IND_FAILED: Failed BSS select indication 353 * State machine is not able to handle as state has changed due to new command. 354 * @CM_PEER_CREATE_FAILED: peer create failed 355 * @CM_JOIN_FAILED: Failed in joining state 356 * (BSS peer creation or other handling) 357 * @CM_JOIN_TIMEOUT: Did not receive beacon or probe response after unicast 358 * probe request 359 * @CM_AUTH_FAILED: Auth rejected by AP 360 * @CM_AUTH_TIMEOUT: No Auth resp from AP 361 * @CM_ASSOC_FAILED: Assoc rejected by AP 362 * @CM_ASSOC_TIMEOUT: No Assoc resp from AP 363 * @CM_HW_MODE_FAILURE: failed to change HW mode 364 * @CM_SER_FAILURE: Failed to serialize command 365 * @CM_SER_TIMEOUT: Serialization cmd timeout 366 * @CM_GENERIC_FAILURE: Generic failure apart from above 367 */ 368 enum wlan_cm_connect_fail_reason { 369 CM_NO_CANDIDATE_FOUND, 370 CM_ABORT_DUE_TO_NEW_REQ_RECVD, 371 CM_BSS_SELECT_IND_FAILED, 372 CM_PEER_CREATE_FAILED, 373 CM_JOIN_FAILED, 374 CM_JOIN_TIMEOUT, 375 CM_AUTH_FAILED, 376 CM_AUTH_TIMEOUT, 377 CM_ASSOC_FAILED, 378 CM_ASSOC_TIMEOUT, 379 CM_HW_MODE_FAILURE, 380 CM_SER_FAILURE, 381 CM_SER_TIMEOUT, 382 CM_GENERIC_FAILURE, 383 }; 384 385 #ifdef WLAN_FEATURE_FILS_SK 386 #define CM_FILS_MAX_HLP_DATA_LEN 2048 387 #define MAX_TK_LENGTH 32 388 #define MAX_GTK_LENGTH 255 389 390 /** 391 * struct fils_connect_rsp_params - fils related connect rsp params 392 * @fils_pmk: fils pmk 393 * @fils_pmk_len: fils pmk length 394 * @fils_pmkid: fils pmkid 395 * @kek: kek 396 * @kek_len: kek length 397 * @tk: tk 398 * @tk_len: tk length 399 * @gtk: gtk 400 * @gtk_len: gtk length 401 * @dst_mac: dst mac 402 * @src_mac: src mac 403 * @hlp_data: hlp data 404 * @hlp_data_len: hlp data length 405 * @fils_seq_num: FILS sequence number 406 */ 407 struct fils_connect_rsp_params { 408 uint8_t *fils_pmk; 409 uint8_t fils_pmk_len; 410 uint8_t fils_pmkid[PMKID_LEN]; 411 uint8_t kek[MAX_KEK_LENGTH]; 412 uint8_t kek_len; 413 uint8_t tk[MAX_TK_LENGTH]; 414 uint8_t tk_len; 415 uint8_t gtk[MAX_GTK_LENGTH]; 416 uint8_t gtk_len; 417 struct qdf_mac_addr dst_mac; 418 struct qdf_mac_addr src_mac; 419 uint8_t hlp_data[CM_FILS_MAX_HLP_DATA_LEN]; 420 uint16_t hlp_data_len; 421 uint16_t fils_seq_num; 422 }; 423 #endif 424 425 /** 426 * struct connect_rsp_ies - connect rsp ies stored in vdev filled during connect 427 * @bcn_probe_rsp: Raw beacon or probe rsp of connected AP 428 * @assoc_req: assoc req IE pointer send during conenct 429 * @assoc_rsq: assoc rsp IE received during connection 430 * @fills_ie: fills connection ie received during connection 431 */ 432 struct wlan_connect_rsp_ies { 433 struct element_info bcn_probe_rsp; 434 struct element_info assoc_req; 435 struct element_info assoc_rsp; 436 #ifdef WLAN_FEATURE_FILS_SK 437 struct fils_connect_rsp_params *fils_ie; 438 #endif 439 }; 440 441 #ifdef WLAN_FEATURE_ROAM_OFFLOAD 442 /** 443 * struct wlan_roam_sync_info - roam sync information populated 444 * from roam sync indication struct 445 * @auth_status: roam auth status (authenticated or connected) 446 * @kck_len: kck length 447 * @kck: kck info in roam sync 448 * @kek_len: kek length 449 * @kek: kek info in roam sync 450 * @replay_ctr: replay counter 451 * @subnet_change_status: if subnet has changed. 452 * 0 = unchanged 453 * 1 = changed 454 * 2 = unknown 455 * @roam_reason: reason of roaming 456 * @pmk_len: fils pmk length 457 * @pmk: fils pmk info 458 * @pmkid: fils pmkid 459 * @update_erp_next_seq_num: if seq update required 460 * @next_erp_seq_num: next seq number 461 */ 462 struct wlan_roam_sync_info { 463 uint8_t auth_status; 464 uint8_t kck_len; 465 uint8_t kck[MAX_KCK_LEN]; 466 uint8_t kek_len; 467 uint8_t kek[MAX_KEK_LENGTH]; 468 uint8_t replay_ctr[REPLAY_CTR_LEN]; 469 uint8_t subnet_change_status; 470 uint16_t roam_reason; 471 uint32_t pmk_len; 472 uint8_t pmk[MAX_PMK_LEN]; 473 uint8_t pmkid[PMKID_LEN]; 474 bool update_erp_next_seq_num; 475 uint16_t next_erp_seq_num; 476 }; 477 #endif 478 479 /** 480 * struct wlan_cm_connect_rsp - connect resp from VDEV mgr and will be sent to 481 * OSIF 482 * @vdev_id: vdev id 483 * @is_wps_connection: if its wps connection 484 * @is_osen_connection: if its osen connection 485 * @is_reassoc: if response is for reassoc/roam 486 * @is_ft: is FT reassoc 487 * @is_assoc: if response is for assoc 488 * @send_disconnect: if disconnect needed to sent to kernel, for reassoc 489 * received in non connected state, this is to cleanup kernel 490 * @cm_id: Connect manager id 491 * @bssid: BSSID of the ap 492 * @ssid: SSID of the connection 493 * @freq: Channel frequency 494 * @connect_status: connect status success or failure 495 * @reason: connect fail reason, valid only in case of failure 496 * @status_code: protocol status code received in auth/assoc resp 497 * @aid: aid 498 * @connect_ies: connect related IE required by osif to send to kernel 499 * @roaming_info: roam sync info received 500 * @is_fils_connection: is fils connection 501 * @ml_parnter_info: ml partner link info 502 */ 503 struct wlan_cm_connect_resp { 504 uint8_t vdev_id; 505 uint8_t is_wps_connection:1, 506 is_osen_connection:1, 507 is_reassoc:1, 508 is_ft:1, 509 is_assoc:1, 510 send_disconnect:1; 511 wlan_cm_id cm_id; 512 struct qdf_mac_addr bssid; 513 struct wlan_ssid ssid; 514 qdf_freq_t freq; 515 QDF_STATUS connect_status; 516 enum wlan_cm_connect_fail_reason reason; 517 enum wlan_status_code status_code; 518 uint8_t aid; 519 struct wlan_connect_rsp_ies connect_ies; 520 #ifdef WLAN_FEATURE_ROAM_OFFLOAD 521 struct wlan_roam_sync_info *roaming_info; 522 #endif 523 #ifdef WLAN_FEATURE_FILS_SK 524 bool is_fils_connection; 525 #endif 526 #ifdef WLAN_FEATURE_11BE_MLO 527 struct mlo_partner_info ml_parnter_info; 528 #endif 529 }; 530 531 #ifdef WLAN_VENDOR_HANDOFF_CONTROL 532 /* As per enum WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID */ 533 #define MAX_VENDOR_CONTROL_PARAMS 8 534 /* 535 * struct roam_param_info: vendor handoff related parameters 536 * @param_id : vendor control Param ID from enum 537 * WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID 538 * @param_value : vendor control param value 539 */ 540 struct roam_param_info { 541 uint32_t param_id; 542 uint32_t param_value; 543 }; 544 545 /* 546 * struct roam_vendor_handoff_params: vendor handoff parameters 547 * @vdev_id : vdev id 548 * @num_entries: num of tlv present in vendor handoff event 549 * @param_info: vendor handoff related parameters 550 */ 551 struct roam_vendor_handoff_params { 552 uint32_t vdev_id; 553 uint32_t num_entries; 554 struct roam_param_info param_info[MAX_VENDOR_CONTROL_PARAMS]; 555 }; 556 557 #endif 558 559 #ifdef WLAN_FEATURE_PREAUTH_ENABLE 560 /** 561 * struct wlan_preauth_req - preauth request 562 * @vdev_id: vdev id 563 * @entry: scan entry for the candidate 564 */ 565 struct wlan_preauth_req { 566 uint8_t vdev_id; 567 struct scan_cache_entry *entry; 568 }; 569 570 /** 571 * struct wlan_cm_preauth_fail - connection manager preauth fail 572 * @cm_id: connection id 573 * @reason: connect fail reason 574 */ 575 struct wlan_cm_preauth_fail { 576 wlan_cm_id cm_id; 577 enum wlan_cm_connect_fail_reason reason; 578 }; 579 580 #define CM_MAX_FTIE_SIZE 384 581 582 /** 583 * struct wlan_preauth_rsp - preauth response 584 * @psoc: psoc object 585 * @vdev_id: vdev id 586 * @cm_id: connection manager ID 587 * @pre_auth_bssid: bssid to preauth to 588 * @status: QDF_STATUS 589 * @ft_ie_length: ft ie length 590 * @ft_ie: ft ie 591 * @ric_ies_length: ric ies length 592 * @ric_ies: ric ies 593 * @timestamp: time stamp 594 */ 595 struct wlan_preauth_rsp { 596 struct wlan_objmgr_psoc *psoc; 597 uint8_t vdev_id; 598 wlan_cm_id cm_id; 599 struct qdf_mac_addr pre_auth_bssid; 600 QDF_STATUS status; 601 uint16_t ft_ie_length; 602 uint8_t ft_ie[CM_MAX_FTIE_SIZE]; 603 uint16_t ric_ies_length; 604 uint8_t ric_ies[CM_MAX_FTIE_SIZE]; 605 #ifdef FEATURE_WLAN_ESE 606 uint32_t timestamp[2]; 607 #endif 608 }; 609 #endif 610 611 /** 612 * struct wlan_cm_discon_rsp - disconnect resp from VDEV mgr and will be sent to 613 * OSIF 614 * @req: disconnect req sent to vdev mgr 615 * @ap_discon_ie: disconnect IE sent by AP 616 */ 617 struct wlan_cm_discon_rsp { 618 struct wlan_cm_vdev_discon_req req; 619 struct element_info ap_discon_ie; 620 }; 621 622 /* 623 * enum wlan_cm_active_request_type: CM active req type 624 * @CM_NONE: No active serialisation command 625 * @CM_CONNECT_ACTIVE: Connect active in serialisation 626 * @CM_DISCONNECT_ACTIVE: DicConnect active in serialisation 627 * @CM_ROAM_ACTIVE: Roam active in serialisation 628 */ 629 enum wlan_cm_active_request_type { 630 CM_NONE, 631 CM_CONNECT_ACTIVE, 632 CM_DISCONNECT_ACTIVE, 633 CM_ROAM_ACTIVE, 634 }; 635 636 #endif /* __WLAN_CM_PUBLIC_STRUCT_H__ */ 637