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 * @dot11mode_filter: dot11mode filter used to restrict connection to 192 * 11n/11ac/11ax. 193 * @sae_pwe: SAE mechanism for PWE derivation 194 * 0 = hunting-and-pecking loop only 195 * 1 = hash-to-element only 196 * 2 = both hunting-and-pecking loop and hash-to-element enabled 197 * @ht_caps: ht capability information bit mask 198 * @ht_caps_mask: mask of valid ht caps 199 * @vht_caps: vht capability information bit mask 200 * @vht_caps_mask: mask of valid vht caps 201 * @fils_info: Fills related connect info 202 * @is_non_assoc_link: non assoc link 203 * @ml_parnter_info: ml partner link info 204 */ 205 struct wlan_cm_connect_req { 206 uint8_t vdev_id; 207 enum wlan_cm_source source; 208 struct qdf_mac_addr bssid; 209 struct qdf_mac_addr prev_bssid; 210 struct wlan_ssid ssid; 211 struct qdf_mac_addr bssid_hint; 212 qdf_freq_t chan_freq; 213 qdf_freq_t chan_freq_hint; 214 struct wlan_cm_connect_crypto_info crypto; 215 struct element_info assoc_ie; 216 struct element_info scan_ie; 217 uint8_t force_rsne_override:1, 218 is_wps_connection:1, 219 is_osen_connection:1; 220 enum dot11_mode_filter dot11mode_filter; 221 uint8_t sae_pwe; 222 uint16_t ht_caps; 223 uint16_t ht_caps_mask; 224 uint32_t vht_caps; 225 uint32_t vht_caps_mask; 226 #ifdef WLAN_FEATURE_FILS_SK 227 struct wlan_fils_con_info fils_info; 228 #endif 229 bool is_non_assoc_link; 230 #ifdef WLAN_FEATURE_11BE_MLO 231 struct mlo_partner_info ml_parnter_info; 232 #endif 233 }; 234 235 /** 236 * struct wlan_cm_vdev_connect_req - connect req from connection manager to 237 * vdev mgr 238 * @vdev_id: vdev id 239 * @cm_id: Connect manager id 240 * @force_rsne_override: force the arbitrary rsne received in connect req to be 241 * used with out validation, used for the scenarios where the device is used 242 * as a testbed device with special functionality and not recommended 243 * for production. 244 * @is_wps_connection: if its wps connection 245 * @is_osen_connection: if its osen connection 246 * @ht_caps: ht capability 247 * @ht_caps_mask: mask of valid ht caps 248 * @vht_caps: vht capability 249 * @vht_caps_mask: mask of valid vht caps 250 * @assoc_ie: assoc ie to be used in assoc req 251 * @scan_ie: Default scan ie to be used in the uncast probe req 252 * @bss: scan entry for the candidate 253 * @fils_info: Fills related connect info 254 * @is_non_assoc_link: non assoc link 255 * @ml_parnter_info: ml partner link info 256 * @owe_trans_ssid: owe trans ssid to be used when scan entry ssid is wildcard 257 */ 258 struct wlan_cm_vdev_connect_req { 259 uint8_t vdev_id; 260 wlan_cm_id cm_id; 261 uint8_t force_rsne_override:1, 262 is_wps_connection:1, 263 is_osen_connection:1; 264 uint16_t ht_caps; 265 uint16_t ht_caps_mask; 266 uint32_t vht_caps; 267 uint32_t vht_caps_mask; 268 struct element_info assoc_ie; 269 struct element_info scan_ie; 270 struct scan_cache_node *bss; 271 #ifdef WLAN_FEATURE_FILS_SK 272 struct wlan_fils_con_info *fils_info; 273 #endif 274 bool is_non_assoc_link; 275 #ifdef WLAN_FEATURE_11BE_MLO 276 struct mlo_partner_info ml_parnter_info; 277 #endif 278 struct wlan_ssid owe_trans_ssid; 279 }; 280 281 /** 282 * struct wlan_cm_roam_req - roam req from requester 283 * @forced_roaming: Roaming to be done without giving bssid, and channel. 284 * @self_reassoc: used to determine self reassoc in host roaming 285 * @vdev_id: vdev id 286 * @source: source of the req 287 * @bssid: bssid given 288 * @prev_bssid: prev AP bssid, given in case supplican want to roam to new BSSID 289 * @chan_freq: channel of the AP 290 */ 291 struct wlan_cm_roam_req { 292 uint8_t forced_roaming:1, 293 self_reassoc:1; 294 uint8_t vdev_id; 295 enum wlan_cm_source source; 296 struct qdf_mac_addr bssid; 297 struct qdf_mac_addr prev_bssid; 298 uint32_t chan_freq; 299 }; 300 301 /** 302 * struct wlan_cm_vdev_reassoc_req - Reassoc req from connection manager to 303 * vdev mgr 304 * @vdev_id: vdev id 305 * @cm_id: Connect manager id 306 * @self_reassoc: if self reassoc 307 * @bss: scan entry for the candidate 308 */ 309 struct wlan_cm_vdev_reassoc_req { 310 uint8_t vdev_id; 311 wlan_cm_id cm_id; 312 bool self_reassoc; 313 struct qdf_mac_addr prev_bssid; 314 struct scan_cache_node *bss; 315 }; 316 317 /** 318 * struct wlan_cm_disconnect_req - disconnect req from requester 319 * @vdev_id: vdev id 320 * @source: source of disconnect 321 * @reason_code: protocol/propitiatory reason code of the disconnect. 322 * propitiatory will be used to send in 323 * QCA_WLAN_VENDOR_ATTR_GET_STATION_INFO_DRIVER_DISCONNECT_REASON 324 * @bssid: bssid of AP 325 * @is_no_disassoc_disconnect: Is disassoc required 326 */ 327 struct wlan_cm_disconnect_req { 328 uint8_t vdev_id; 329 enum wlan_cm_source source; 330 enum wlan_reason_code reason_code; 331 struct qdf_mac_addr bssid; 332 bool is_no_disassoc_disconnect; 333 }; 334 335 /** 336 * struct wlan_cm_vdev_discon_req - disconnect req from connection manager to 337 * vdev mgr 338 * @cm_id: connection manager ID 339 * @req: disconnect req 340 */ 341 struct wlan_cm_vdev_discon_req { 342 wlan_cm_id cm_id; 343 struct wlan_cm_disconnect_req req; 344 }; 345 346 /* 347 * enum wlan_cm_connect_fail_reason: connection manager connect fail reason 348 * @CM_NO_CANDIDATE_FOUND: No candidate found 349 * @CM_ABORT_DUE_TO_NEW_REQ_RECVD: Aborted as new command is received and 350 * @CM_BSS_SELECT_IND_FAILED: Failed BSS select indication 351 * State machine is not able to handle as state has changed due to new command. 352 * @CM_PEER_CREATE_FAILED: peer create failed 353 * @CM_JOIN_FAILED: Failed in joining state 354 * (BSS peer creation or other handling) 355 * @CM_JOIN_TIMEOUT: Did not receive beacon or probe response after unicast 356 * probe request 357 * @CM_AUTH_FAILED: Auth rejected by AP 358 * @CM_AUTH_TIMEOUT: No Auth resp from AP 359 * @CM_ASSOC_FAILED: Assoc rejected by AP 360 * @CM_ASSOC_TIMEOUT: No Assoc resp from AP 361 * @CM_HW_MODE_FAILURE: failed to change HW mode 362 * @CM_SER_FAILURE: Failed to serialize command 363 * @CM_SER_TIMEOUT: Serialization cmd timeout 364 * @CM_GENERIC_FAILURE: Generic failure apart from above 365 */ 366 enum wlan_cm_connect_fail_reason { 367 CM_NO_CANDIDATE_FOUND, 368 CM_ABORT_DUE_TO_NEW_REQ_RECVD, 369 CM_BSS_SELECT_IND_FAILED, 370 CM_PEER_CREATE_FAILED, 371 CM_JOIN_FAILED, 372 CM_JOIN_TIMEOUT, 373 CM_AUTH_FAILED, 374 CM_AUTH_TIMEOUT, 375 CM_ASSOC_FAILED, 376 CM_ASSOC_TIMEOUT, 377 CM_HW_MODE_FAILURE, 378 CM_SER_FAILURE, 379 CM_SER_TIMEOUT, 380 CM_GENERIC_FAILURE, 381 }; 382 383 #ifdef WLAN_FEATURE_FILS_SK 384 #define CM_FILS_MAX_HLP_DATA_LEN 2048 385 #define MAX_TK_LENGTH 32 386 #define MAX_GTK_LENGTH 255 387 388 /** 389 * struct fils_connect_rsp_params - fils related connect rsp params 390 * @fils_pmk: fils pmk 391 * @fils_pmk_len: fils pmk length 392 * @fils_pmkid: fils pmkid 393 * @kek: kek 394 * @kek_len: kek length 395 * @tk: tk 396 * @tk_len: tk length 397 * @gtk: gtk 398 * @gtk_len: gtk length 399 * @dst_mac: dst mac 400 * @src_mac: src mac 401 * @hlp_data: hlp data 402 * @hlp_data_len: hlp data length 403 * @fils_seq_num: FILS sequence number 404 */ 405 struct fils_connect_rsp_params { 406 uint8_t *fils_pmk; 407 uint8_t fils_pmk_len; 408 uint8_t fils_pmkid[PMKID_LEN]; 409 uint8_t kek[MAX_KEK_LENGTH]; 410 uint8_t kek_len; 411 uint8_t tk[MAX_TK_LENGTH]; 412 uint8_t tk_len; 413 uint8_t gtk[MAX_GTK_LENGTH]; 414 uint8_t gtk_len; 415 struct qdf_mac_addr dst_mac; 416 struct qdf_mac_addr src_mac; 417 uint8_t hlp_data[CM_FILS_MAX_HLP_DATA_LEN]; 418 uint16_t hlp_data_len; 419 uint16_t fils_seq_num; 420 }; 421 #endif 422 423 /** 424 * struct connect_rsp_ies - connect rsp ies stored in vdev filled during connect 425 * @bcn_probe_rsp: Raw beacon or probe rsp of connected AP 426 * @assoc_req: assoc req IE pointer send during conenct 427 * @assoc_rsq: assoc rsp IE received during connection 428 * @fills_ie: fills connection ie received during connection 429 */ 430 struct wlan_connect_rsp_ies { 431 struct element_info bcn_probe_rsp; 432 struct element_info assoc_req; 433 struct element_info assoc_rsp; 434 #ifdef WLAN_FEATURE_FILS_SK 435 struct fils_connect_rsp_params *fils_ie; 436 #endif 437 }; 438 439 #ifdef WLAN_FEATURE_ROAM_OFFLOAD 440 /** 441 * struct wlan_roam_sync_info - roam sync information populated 442 * from roam sync indication struct 443 * @auth_status: roam auth status (authenticated or connected) 444 * @kck_len: kck length 445 * @kck: kck info in roam sync 446 * @kek_len: kek length 447 * @kek: kek info in roam sync 448 * @replay_ctr: replay counter 449 * @subnet_change_status: if subnet has changed. 450 * 0 = unchanged 451 * 1 = changed 452 * 2 = unknown 453 * @roam_reason: reason of roaming 454 * @pmk_len: fils pmk length 455 * @pmk: fils pmk info 456 * @pmkid: fils pmkid 457 * @update_erp_next_seq_num: if seq update required 458 * @next_erp_seq_num: next seq number 459 */ 460 struct wlan_roam_sync_info { 461 uint8_t auth_status; 462 uint8_t kck_len; 463 uint8_t kck[MAX_KCK_LEN]; 464 uint8_t kek_len; 465 uint8_t kek[MAX_KEK_LENGTH]; 466 uint8_t replay_ctr[REPLAY_CTR_LEN]; 467 uint8_t subnet_change_status; 468 uint16_t roam_reason; 469 uint32_t pmk_len; 470 uint8_t pmk[MAX_PMK_LEN]; 471 uint8_t pmkid[PMKID_LEN]; 472 bool update_erp_next_seq_num; 473 uint16_t next_erp_seq_num; 474 }; 475 #endif 476 477 /** 478 * struct wlan_cm_connect_rsp - connect resp from VDEV mgr and will be sent to 479 * OSIF 480 * @vdev_id: vdev id 481 * @is_wps_connection: if its wps connection 482 * @is_osen_connection: if its osen connection 483 * @is_reassoc: if response is for reassoc/roam 484 * @is_ft: is FT reassoc 485 * @cm_id: Connect manager id 486 * @bssid: BSSID of the ap 487 * @ssid: SSID of the connection 488 * @freq: Channel frequency 489 * @connect_status: connect status success or failure 490 * @reason: connect fail reason, valid only in case of failure 491 * @status_code: protocol status code received in auth/assoc resp 492 * @aid: aid 493 * @connect_ies: connect related IE required by osif to send to kernel 494 * @roaming_info: roam sync info received 495 * @is_fils_connection: is fils connection 496 * @ml_parnter_info: ml partner link info 497 */ 498 struct wlan_cm_connect_resp { 499 uint8_t vdev_id; 500 uint8_t is_wps_connection:1, 501 is_osen_connection:1, 502 is_reassoc:1, 503 is_ft:1; 504 wlan_cm_id cm_id; 505 struct qdf_mac_addr bssid; 506 struct wlan_ssid ssid; 507 qdf_freq_t freq; 508 QDF_STATUS connect_status; 509 enum wlan_cm_connect_fail_reason reason; 510 enum wlan_status_code status_code; 511 uint8_t aid; 512 struct wlan_connect_rsp_ies connect_ies; 513 #ifdef WLAN_FEATURE_ROAM_OFFLOAD 514 struct wlan_roam_sync_info *roaming_info; 515 #endif 516 #ifdef WLAN_FEATURE_FILS_SK 517 bool is_fils_connection; 518 #endif 519 #ifdef WLAN_FEATURE_11BE_MLO 520 struct mlo_partner_info ml_parnter_info; 521 #endif 522 }; 523 524 #ifdef WLAN_VENDOR_HANDOFF_CONTROL 525 /* As per enum WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID */ 526 #define MAX_VENDOR_CONTROL_PARAMS 8 527 /* 528 * struct roam_param_info: vendor handoff related parameters 529 * @param_id : vendor control Param ID from enum 530 * WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID 531 * @param_value : vendor control param value 532 */ 533 struct roam_param_info { 534 uint32_t param_id; 535 uint32_t param_value; 536 }; 537 538 /* 539 * struct roam_vendor_handoff_params: vendor handoff parameters 540 * @vdev_id : vdev id 541 * @num_entries: num of tlv present in vendor handoff event 542 * @param_info: vendor handoff related parameters 543 */ 544 struct roam_vendor_handoff_params { 545 uint32_t vdev_id; 546 uint32_t num_entries; 547 struct roam_param_info param_info[MAX_VENDOR_CONTROL_PARAMS]; 548 }; 549 550 #endif 551 552 #ifdef WLAN_FEATURE_PREAUTH_ENABLE 553 /** 554 * struct wlan_preauth_req - preauth request 555 * @vdev_id: vdev id 556 * @entry: scan entry for the candidate 557 */ 558 struct wlan_preauth_req { 559 uint8_t vdev_id; 560 struct scan_cache_entry *entry; 561 }; 562 563 /** 564 * struct wlan_cm_preauth_fail - connection manager preauth fail 565 * @cm_id: connection id 566 * @reason: connect fail reason 567 */ 568 struct wlan_cm_preauth_fail { 569 wlan_cm_id cm_id; 570 enum wlan_cm_connect_fail_reason reason; 571 }; 572 573 #define CM_MAX_FTIE_SIZE 384 574 575 /** 576 * struct wlan_preauth_rsp - preauth response 577 * @psoc: psoc object 578 * @vdev_id: vdev id 579 * @cm_id: connection manager ID 580 * @pre_auth_bssid: bssid to preauth to 581 * @status: QDF_STATUS 582 * @ft_ie_length: ft ie length 583 * @ft_ie: ft ie 584 * @ric_ies_length: ric ies length 585 * @ric_ies: ric ies 586 * @timestamp: time stamp 587 */ 588 struct wlan_preauth_rsp { 589 struct wlan_objmgr_psoc *psoc; 590 uint8_t vdev_id; 591 wlan_cm_id cm_id; 592 struct qdf_mac_addr pre_auth_bssid; 593 QDF_STATUS status; 594 uint16_t ft_ie_length; 595 uint8_t ft_ie[CM_MAX_FTIE_SIZE]; 596 uint16_t ric_ies_length; 597 uint8_t ric_ies[CM_MAX_FTIE_SIZE]; 598 #ifdef FEATURE_WLAN_ESE 599 uint32_t timestamp[2]; 600 #endif 601 }; 602 #endif 603 604 /** 605 * struct wlan_cm_discon_rsp - disconnect resp from VDEV mgr and will be sent to 606 * OSIF 607 * @req: disconnect req sent to vdev mgr 608 * @ap_discon_ie: disconnect IE sent by AP 609 */ 610 struct wlan_cm_discon_rsp { 611 struct wlan_cm_vdev_discon_req req; 612 struct element_info ap_discon_ie; 613 }; 614 615 /* 616 * enum wlan_cm_active_request_type: CM active req type 617 * @CM_NONE: No active serialisation command 618 * @CM_CONNECT_ACTIVE: Connect active in serialisation 619 * @CM_DISCONNECT_ACTIVE: DicConnect active in serialisation 620 * @CM_ROAM_ACTIVE: Roam active in serialisation 621 */ 622 enum wlan_cm_active_request_type { 623 CM_NONE, 624 CM_CONNECT_ACTIVE, 625 CM_DISCONNECT_ACTIVE, 626 CM_ROAM_ACTIVE, 627 }; 628 629 #endif /* __WLAN_CM_PUBLIC_STRUCT_H__ */ 630