1 /** @file wifi_nxp_internal.h 2 * 3 * @brief This file provides Core Wi-Fi definition for wpa supplicant RTOS driver. 4 * 5 * Copyright 2008-2024 NXP 6 * 7 * SPDX-License-Identifier: BSD-3-Clause 8 * 9 */ 10 11 #ifndef __WIFI_NXP_INTERNAL_H__ 12 #define __WIFI_NXP_INTERNAL_H__ 13 14 #include <stdio.h> 15 16 #include <wifi_config_default.h> 17 18 #if CONFIG_WPA_SUPP 19 #define WIFI_NXP_HT_MCS_MASK_LEN 10 20 #define WIFI_NXP_HT_MCS_RES_LEN 3 21 22 /** 23 * @brief MCS information. 24 * 25 */ 26 struct wifi_nxp_event_mcs_info { 27 /** Highest supported RX rate */ 28 unsigned short wifi_nxp_rx_highest; 29 /** RX mask */ 30 unsigned char wifi_nxp_rx_mask[WIFI_NXP_HT_MCS_MASK_LEN]; 31 /** TX parameters */ 32 unsigned char wifi_nxp_tx_params; 33 /** reserved */ 34 unsigned char wifi_nxp_reserved[WIFI_NXP_HT_MCS_RES_LEN]; 35 }; 36 37 /** 38 * @brief This structure represents HT capability parameters. 39 * 40 */ 41 struct wifi_nxp_event_sta_ht_cap { 42 /** 1 indicates HT Supported */ 43 signed int wifi_nxp_ht_supported; 44 /** HT capabilities, as in the HT information IE */ 45 unsigned short wifi_nxp_cap; 46 /** MCS information. @ref wifi_nxp_event_mcs_info */ 47 struct wifi_nxp_event_mcs_info mcs; 48 /** A-MPDU factor, as in 11n */ 49 unsigned char wifi_nxp_ampdu_factor; 50 /** A-MPDU density, as in 11n */ 51 unsigned char wifi_nxp_ampdu_density; 52 }; 53 54 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_NO_IR (1 << 0) 55 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_NO_IBSS (1 << 1) 56 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_RADAR (1 << 2) 57 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_NO_HT40_MINUS (1 << 3) 58 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_NO_HT40_PLUS (1 << 4) 59 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_NO_80MHZ (1 << 5) 60 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_NO_160MHZ (1 << 6) 61 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_INDOOR_ONLY (1 << 7) 62 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_GO_CONCURRENT (1 << 8) 63 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_NO_20MHZ (1 << 9) 64 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_NO_10MHZ (1 << 10) 65 #define WIFI_NXP_CHAN_FLAG_FREQUENCY_DISABLED (1 << 11) 66 67 #define WIFI_NXP_CHAN_DFS_VALID (1 << 12) 68 #define WIFI_NXP_CHAN_DFS_CAC_TIME_VALID (1 << 13) 69 70 /** 71 * @brief This structure represents channel parameters. 72 */ 73 struct wifi_nxp_event_channel { 74 /** channel flags WIFI_NXP_CHAN_FLAG_FREQUENCY_ATTR_NO_IBSS */ 75 unsigned short wifi_nxp_flags; 76 /** maximum transmission power (in dBm) */ 77 signed int wifi_nxp_max_power; 78 /** DFS state time */ 79 unsigned int wifi_nxp_time; 80 /** DFS CAC time in ms */ 81 unsigned int dfs_cac_msec; 82 /** Channel parameters are valid or not 1=valid */ 83 signed char ch_valid; 84 /** Channel center frequency */ 85 unsigned short center_frequency; 86 /** Current dfs state */ 87 signed char dfs_state; 88 }; 89 90 #define WIFI_NXP_EVENT_GET_WIPHY_FLAG_RATE_SHORT_PREAMBLE (1 << 0) 91 /** 92 * @brief This structure represents rate information. 93 */ 94 struct wifi_nxp_event_rate { 95 /** WIFI_NXP_EVENT_GET_WIPHY_FLAG_RATE_SHORT_PREAMBLE */ 96 unsigned short wifi_nxp_flags; 97 /** Bitrate in units of 100 kbps */ 98 unsigned short wifi_nxp_bitrate; 99 }; 100 101 /** 102 * @brief VHT MCS information. 103 * 104 */ 105 struct wifi_nxp_event_vht_mcs_info { 106 /** RX MCS map 2 bits for each stream, total 8 streams */ 107 unsigned short rx_mcs_map; 108 /** Indicates highest long GI VHT PPDU data rate 109 * STA can receive. Rate expressed in units of 1 Mbps. 110 * If this field is 0 this value should not be used to 111 * consider the highest RX data rate supported. 112 */ 113 unsigned short rx_highest; 114 /** TX MCS map 2 bits for each stream, total 8 streams */ 115 unsigned short tx_mcs_map; 116 /** Indicates highest long GI VHT PPDU data rate 117 * STA can transmit. Rate expressed in units of 1 Mbps. 118 * If this field is 0 this value should not be used to 119 * consider the highest TX data rate supported. 120 */ 121 unsigned short tx_highest; 122 }; 123 124 /** 125 * @brief This structure represents VHT capability parameters. 126 * 127 */ 128 struct wifi_nxp_event_sta_vht_cap { 129 /** 1 indicates VHT Supported */ 130 signed char wifi_nxp_vht_supported; 131 /** VHT capability info */ 132 unsigned int wifi_nxp_cap; 133 /** Refer @ref wifi_nxp_event_vht_mcs_info */ 134 struct wifi_nxp_event_vht_mcs_info vht_mcs; 135 }; 136 137 #define WIFI_NXP_HE_MAX_MAC_CAPAB_SIZE 6 138 #define WIFI_NXP_HE_MAX_PHY_CAPAB_SIZE 11 139 #define WIFI_NXP_HE_MAX_MCS_CAPAB_SIZE 12 140 #define WIFI_NXP_HE_MAX_PPET_CAPAB_SIZE 25 141 142 /** 143 * @brief This structure represents HE capability parameters. 144 * 145 */ 146 struct wifi_nxp_event_sta_he_cap { 147 unsigned char wifi_nxp_he_supported; 148 unsigned char phy_cap[WIFI_NXP_HE_MAX_PHY_CAPAB_SIZE]; 149 unsigned char mac_cap[WIFI_NXP_HE_MAX_MAC_CAPAB_SIZE]; 150 unsigned char mcs[WIFI_NXP_HE_MAX_MCS_CAPAB_SIZE]; 151 unsigned char ppet[WIFI_NXP_HE_MAX_PPET_CAPAB_SIZE]; 152 unsigned short he_6ghz_capa; 153 }; 154 155 /** 156 * @brief Frequency band information. 157 * 158 */ 159 struct wifi_nxp_event_supported_band { 160 /** No.of channels */ 161 unsigned short wifi_nxp_n_channels; 162 /** No.of bitrates */ 163 unsigned short wifi_nxp_n_bitrates; 164 /** Array of channels the hardware can operate in this band */ 165 struct wifi_nxp_event_channel channels[29]; 166 /** Array of bitrates the hardware can operate with in this band */ 167 struct wifi_nxp_event_rate bitrates[13]; 168 /** HT capabilities in this band */ 169 struct wifi_nxp_event_sta_ht_cap ht_cap; 170 /** VHT capabilities in this band */ 171 struct wifi_nxp_event_sta_vht_cap vht_cap; 172 /** HE capabilities in this band */ 173 struct wifi_nxp_event_sta_he_cap he_cap; 174 /** the band this structure represents */ 175 signed char band; 176 }; 177 178 struct wifi_nxp_event_get_wiphy 179 { 180 /** Supported bands info. @ref wifi_nxp_event_supported_band */ 181 struct wifi_nxp_event_supported_band sband[WIFI_NXP_EVENT_GET_WIPHY_NUM_BANDS]; 182 }; 183 184 #define WIFI_HE_MAX_MAC_CAPAB_SIZE 6 185 #define WIFI_HE_MAX_PHY_CAPAB_SIZE 11 186 #define WIFI_HE_MAX_MCS_CAPAB_SIZE 12 187 #define WIFI_HE_MAX_PPET_CAPAB_SIZE 25 188 189 /** 190 * struct he_capabilities - IEEE 802.11ax HE capabilities 191 */ 192 typedef MLAN_PACK_START struct _nxp_wifi_he_capabilities 193 { 194 unsigned char he_supported; 195 unsigned char phy_cap[WIFI_HE_MAX_PHY_CAPAB_SIZE]; 196 unsigned char mac_cap[WIFI_HE_MAX_MAC_CAPAB_SIZE]; 197 unsigned char mcs[WIFI_HE_MAX_MCS_CAPAB_SIZE]; 198 unsigned char ppet[WIFI_HE_MAX_PPET_CAPAB_SIZE]; 199 unsigned short he_6ghz_capa; 200 } MLAN_PACK_END nxp_wifi_he_capabilities; 201 202 #define WIFI_MAX_IE_LEN 500U 203 204 typedef MLAN_PACK_START struct _nxp_wifi_ie 205 { 206 unsigned short ie_len; 207 char ie[WIFI_MAX_IE_LEN]; 208 } MLAN_PACK_END nxp_wifi_ie_t; 209 210 typedef MLAN_PACK_START struct _nxp_wifi_ie2 211 { 212 unsigned short ie_len; 213 unsigned char *ie; 214 } MLAN_PACK_END nxp_wifi_ie2_t; 215 216 #define WIFI_MAX_SSID_LEN 32U 217 #define WIFI_ETH_ADDR_LEN 6U 218 219 typedef MLAN_PACK_START struct _nxp_wifi_ssid 220 { 221 unsigned char ssid_len; 222 unsigned char ssid[WIFI_MAX_SSID_LEN]; 223 } MLAN_PACK_END nxp_wifi_ssid_t; 224 225 #define WIFI_SCAN_MAX_NUM_SSIDS 2U 226 #define WIFI_SCAN_MAX_NUM_CHAN 41U 227 #define MAX_NUM_CHANNELS 39U 228 229 typedef MLAN_PACK_START struct _nxp_wifi_trigger_scan 230 { 231 bool hostapd; 232 unsigned char num_ssids; 233 nxp_wifi_ssid_t scan_ssids[WIFI_SCAN_MAX_NUM_SSIDS]; 234 unsigned char num_chans; 235 unsigned char chan_list[WIFI_SCAN_MAX_NUM_CHAN]; 236 nxp_wifi_ie_t extra_ies; 237 int filter_rssi; 238 unsigned char bssid[WIFI_ETH_ADDR_LEN]; 239 unsigned int only_new_results : 1; 240 } MLAN_PACK_END nxp_wifi_trigger_scan_t; 241 242 typedef MLAN_PACK_START struct _nxp_wifi_trigger_sched_scan 243 { 244 unsigned int chan_per_scan; 245 unsigned char num_ssids; 246 nxp_wifi_ssid_t scan_ssids[WIFI_SCAN_MAX_NUM_SSIDS]; 247 unsigned char num_chans; 248 unsigned char chan_list[WIFI_SCAN_MAX_NUM_CHAN]; 249 nxp_wifi_ie_t extra_ies; 250 unsigned int scan_interval; 251 unsigned int report_condition; 252 unsigned short repeat_count; 253 int filter_rssi; 254 } MLAN_PACK_END nxp_wifi_trigger_sched_scan_t; 255 256 typedef MLAN_PACK_START struct _nxp_wifi_event_new_scan_result 257 { 258 unsigned int frequency; 259 unsigned int chan_width; 260 unsigned int seen_ms_ago; 261 int status; 262 unsigned long long ies_tsf; 263 unsigned long long beacon_ies_tsf; 264 unsigned short beacon_interval; 265 unsigned short capability; 266 nxp_wifi_ie2_t ies; 267 unsigned char rssi; 268 unsigned short noise; 269 unsigned char mac_addr[WIFI_ETH_ADDR_LEN]; 270 bool more_res; 271 } MLAN_PACK_END nxp_wifi_event_new_scan_result_t; 272 273 typedef MLAN_PACK_START struct _nxp_wifi_trigger_op 274 { 275 bool hostapd; 276 } MLAN_PACK_END nxp_wifi_trigger_op_t; 277 278 typedef MLAN_PACK_START struct _nxp_wifi_event_new_survey_result 279 { 280 unsigned int freq; 281 char nf; 282 unsigned long long channel_time; 283 unsigned long long channel_time_busy; 284 unsigned long long channel_time_rx; 285 unsigned long long channel_time_tx; 286 bool more_res; 287 } MLAN_PACK_END nxp_wifi_event_new_survey_result_t; 288 289 typedef MLAN_PACK_START struct _nxp_wifi_acs_params 290 { 291 unsigned int pri_freq; 292 unsigned int sec_freq; 293 unsigned short ch_width; 294 unsigned int hw_mode; 295 } MLAN_PACK_END nxp_wifi_acs_params; 296 297 #define WIFI_MAX_FRAME_LEN 1500U 298 299 typedef MLAN_PACK_START struct _nxp_wifi_frame 300 { 301 int frame_len; 302 int freq; 303 unsigned char frame[WIFI_MAX_FRAME_LEN]; 304 } MLAN_PACK_END nxp_wifi_frame_t; 305 306 typedef MLAN_PACK_START struct _nxp_wifi_event_mlme 307 { 308 nxp_wifi_frame_t frame; 309 unsigned char mac_addr[WIFI_ETH_ADDR_LEN]; 310 } MLAN_PACK_END nxp_wifi_event_mlme_t; 311 312 #define WIFI_EAPOL_MAX_FRAME_LEN 1500U 313 314 typedef MLAN_PACK_START struct _nxp_wifi_eapol_frame 315 { 316 int frame_len; 317 unsigned char frame[WIFI_EAPOL_MAX_FRAME_LEN]; 318 } MLAN_PACK_END nxp_wifi_eapol_frame_t; 319 320 typedef MLAN_PACK_START struct _nxp_wifi_event_eapol_mlme 321 { 322 nxp_wifi_eapol_frame_t frame; 323 unsigned char mac_addr[WIFI_ETH_ADDR_LEN]; 324 } MLAN_PACK_END nxp_wifi_event_eapol_mlme_t; 325 326 typedef MLAN_PACK_START struct _nxp_wifi_assoc_event_mlme 327 { 328 nxp_wifi_frame_t frame; 329 unsigned char mac_addr[WIFI_ETH_ADDR_LEN]; 330 unsigned int req_ie_len; 331 unsigned char req_ie[WIFI_MAX_FRAME_LEN]; 332 } MLAN_PACK_END nxp_wifi_assoc_event_mlme_t; 333 334 typedef MLAN_PACK_START struct _nxp_wifi_gsta_info 335 { 336 unsigned char mac_addr[WIFI_ETH_ADDR_LEN]; 337 } MLAN_PACK_END nxp_wifi_gsta_info_t; 338 339 typedef MLAN_PACK_START struct _nxp_wifi_event_new_station 340 { 341 // struct wpa_signal_info for supplicant 342 unsigned char wme; 343 unsigned char is_sta_legacy; 344 unsigned char mac_addr[WIFI_ETH_ADDR_LEN]; 345 unsigned int generation; 346 nxp_wifi_gsta_info_t sta_info; 347 nxp_wifi_ie_t assoc_req_ies; 348 } MLAN_PACK_END nxp_wifi_event_new_station_t; 349 350 typedef MLAN_PACK_START struct _nxp_wifi_chan_definition 351 { 352 int width; 353 unsigned int center_frequency1; 354 unsigned int center_frequency2; 355 } MLAN_PACK_END nxp_wifi_chan_definition_t; 356 357 #define IFACENAMSIZ 10U 358 359 typedef MLAN_PACK_START struct _nxp_wifi_interface_info 360 { 361 // struct wpa_signal_info for supplicant 362 int nrf_wifi_iftype; 363 char ifacename[IFACENAMSIZ]; 364 unsigned char nxp_wifi_eth_addr[WIFI_ETH_ADDR_LEN]; 365 nxp_wifi_chan_definition_t chan_def; 366 nxp_wifi_ssid_t ssid; 367 } MLAN_PACK_END nxp_wifi_interface_info_t; 368 369 typedef MLAN_PACK_START struct _nxp_wifi_auth_info 370 { 371 unsigned char auth_alg; 372 unsigned char auth_trans_num; 373 unsigned char status_code; 374 unsigned char bssid[WIFI_ETH_ADDR_LEN]; 375 int channel; 376 nxp_wifi_ie_t auth_ie; 377 } MLAN_PACK_END nxp_wifi_auth_info_t; 378 379 typedef MLAN_PACK_START struct _nxp_wifi_deauth_info 380 { 381 unsigned char bssid[WIFI_ETH_ADDR_LEN]; 382 unsigned short reason_code; 383 } MLAN_PACK_END nxp_wifi_deauth_info_t; 384 385 typedef MLAN_PACK_START struct _nxp_wifi_assoc_info 386 { 387 unsigned int center_frequency; 388 nxp_wifi_ssid_t ssid; 389 unsigned char bssid[WIFI_ETH_ADDR_LEN]; 390 unsigned char prev_bssid[WIFI_ETH_ADDR_LEN]; 391 int channel; 392 nxp_wifi_ie_t wpa_ie; 393 unsigned char use_mfp; 394 char control_port; 395 bool is_ft; 396 } MLAN_PACK_END nxp_wifi_assoc_info_t; 397 398 #define WIFI_MAX_KEY_LEN 256U 399 400 typedef MLAN_PACK_START struct _nxp_wifi_key_info 401 { 402 bool is_pairwise; 403 int key_idx; 404 unsigned char key[WIFI_MAX_KEY_LEN]; 405 size_t key_len; 406 unsigned char bssid[WIFI_ETH_ADDR_LEN]; 407 } MLAN_PACK_END nxp_wifi_key_info_t; 408 409 typedef MLAN_PACK_START struct _nxp_wifi_port_info 410 { 411 int authorized; 412 unsigned char bssid[WIFI_ETH_ADDR_LEN]; 413 } MLAN_PACK_END nxp_wifi_port_info_t; 414 415 typedef MLAN_PACK_START struct _nxp_wifi_signal_info 416 { 417 int current_signal; 418 int avg_signal; 419 int avg_beacon_signal; 420 int current_noise; 421 int current_txrate; 422 } MLAN_PACK_END nxp_wifi_signal_info_t; 423 424 #define WIFI_MAX_DATA_LEN 400U 425 426 typedef MLAN_PACK_START struct _nxp_wifi_mgmt_tx_info 427 { 428 int channel; 429 unsigned int wait_time; 430 size_t data_len; 431 unsigned char data[WIFI_MAX_DATA_LEN]; 432 } MLAN_PACK_END nxp_wifi_mgmt_tx_info_t; 433 434 enum wifi_mode 435 { 436 MODE_IEEE80211B, 437 MODE_IEEE80211G, 438 MODE_IEEE80211A, 439 MODE_IEEE80211AD, 440 MODE_IEEE80211ANY, 441 NUM_MODES 442 }; 443 444 typedef MLAN_PACK_START struct _nxp_wifi_chan_info 445 { 446 enum wifi_mode mode; 447 int freq; 448 int channel; 449 int sec_channel_offset; 450 int bandwidth; 451 int ht_enabled; 452 int vht_enabled; 453 int he_enabled; 454 int center_freq1; 455 int center_freq2; 456 } MLAN_PACK_END nxp_wifi_chan_info_t; 457 458 typedef MLAN_PACK_START struct _nxp_wifi_ap_info 459 { 460 int beacon_set; 461 unsigned char bssid[WIFI_ETH_ADDR_LEN]; 462 nxp_wifi_ie_t head_ie; 463 nxp_wifi_ie_t tail_ie; 464 int dtim_period; 465 int beacon_int; 466 nxp_wifi_chan_info_t chan; 467 nxp_wifi_ie_t proberesp; 468 nxp_wifi_ssid_t ssid; 469 int hide_ssid; 470 unsigned int pairwise_ciphers; 471 unsigned int group_cipher; 472 unsigned int key_mgmt_suites; 473 unsigned int auth_algs; 474 unsigned int wpa_version; 475 int privacy; 476 nxp_wifi_ie_t beacon_ies; 477 nxp_wifi_ie_t proberesp_ies; 478 nxp_wifi_ie_t assocresp_ies; 479 int ht_opmode; 480 int ap_max_inactivity; 481 int reenable; 482 int twt_responder; 483 int sae_pwe; 484 } MLAN_PACK_END nxp_wifi_ap_info_t; 485 486 /* HT Capabilities element */ 487 typedef MLAN_PACK_START struct _ieee80211_ht_capab 488 { 489 unsigned short ht_capabilities_info; 490 unsigned char a_mpdu_params; 491 unsigned char supported_mcs_set[16]; 492 unsigned short ht_extended_capabilities; 493 unsigned int tx_bf_capability_info; 494 unsigned char asel_capabilities; 495 } MLAN_PACK_END ieee80211_ht_capab_t; 496 497 typedef MLAN_PACK_START struct _ieee80211_vht_capab 498 { 499 unsigned int vht_capabilities_info; 500 struct 501 { 502 unsigned short rx_map; 503 unsigned short rx_highest; 504 unsigned short tx_map; 505 unsigned short tx_highest; 506 } vht_supported_mcs_set; 507 } MLAN_PACK_END ieee80211_vht_capab_t; 508 509 typedef MLAN_PACK_START struct _ieee80211_he_capab 510 { 511 unsigned char he_mac_capab_info[6]; 512 unsigned char he_phy_capab_info[11]; 513 unsigned char optional[37]; 514 } MLAN_PACK_END ieee80211_he_capab_t; 515 516 typedef MLAN_PACK_START struct _nxp_wifi_sta_info 517 { 518 unsigned char addr[WIFI_ETH_ADDR_LEN]; 519 unsigned short aid; 520 unsigned short capability; 521 unsigned char supp_rates[30]; 522 size_t supp_rates_len; 523 unsigned short listen_interval; 524 ieee80211_ht_capab_t ht_capab; 525 size_t ht_capab_len; 526 ieee80211_vht_capab_t vht_capab; 527 size_t vht_capab_len; 528 int vht_opmode_enabled; 529 unsigned char vht_opmode; 530 ieee80211_he_capab_t he_capab; 531 size_t he_capab_len; 532 unsigned int flags; /* bitmask of WPA_STA_* flags */ 533 int set; /* Set STA parameters instead of add */ 534 unsigned char qosinfo; 535 unsigned char ext_capab[10]; 536 size_t ext_capab_len; 537 } MLAN_PACK_END nxp_wifi_sta_info_t; 538 539 enum chanWidth 540 { 541 CHAN_BAND_WIDTH_20_NOHT, 542 CHAN_BAND_WIDTH_20, 543 CHAN_BAND_WIDTH_40, 544 CHAN_BAND_WIDTH_80, 545 CHAN_BAND_WIDTH_80P80, 546 CHAN_BAND_WIDTH_160, 547 }; 548 549 typedef MLAN_PACK_START struct _nxp_wifi_ch_switch_info 550 { 551 int center_freq; 552 int ht_enabled; 553 int ch_offset; 554 enum chanWidth ch_width; 555 int center_freq1; 556 int center_freq2; 557 } MLAN_PACK_END nxp_wifi_ch_switch_info; 558 559 typedef MLAN_PACK_START struct _nxp_wifi_dfs_cac_info 560 { 561 int center_freq; 562 int ht_enabled; 563 int ch_offset; 564 enum chanWidth ch_width; 565 int center_freq1; 566 int center_freq2; 567 } MLAN_PACK_END nxp_wifi_dfs_cac_info; 568 /** 569 * struct wifi_nxp_callbk_fns - Callback functions to be invoked by Wi-Fi driver 570 * when a paticular event occurs. 571 * @if_state_chg_callbk_fn: Callback function to be called when an interface 572 * state changes. 573 * @rx_frm_callbk_fn: Callback function to be called when a frame is received. 574 * 575 * This structure contains function pointers to all the callback functions that 576 * the Wi-Fi driver needs to invoked for various events. 577 */ 578 typedef MLAN_PACK_START struct _wifi_nxp_callbk_fns 579 { 580 void (*mac_changed_callbk_fn)(void *if_priv); 581 582 void (*chan_list_changed_callbk_fn)(void *if_priv, const char *alpha2); 583 584 void (*scan_start_callbk_fn)(void *if_priv); 585 586 void (*scan_done_callbk_fn)(void *if_priv, int aborted, int external_scan); 587 588 void (*survey_res_callbk_fn)(void *if_priv, 589 nxp_wifi_event_new_survey_result_t *survey_res, 590 unsigned int event_len, 591 bool more_res); 592 593 void (*auth_resp_callbk_fn)(void *if_priv, nxp_wifi_event_mlme_t *auth_resp_event, unsigned int event_len); 594 595 void (*assoc_resp_callbk_fn)(void *if_priv, nxp_wifi_assoc_event_mlme_t *assoc_resp_event, unsigned int event_len); 596 597 void (*deauth_callbk_fn)(void *if_priv, nxp_wifi_event_mlme_t *deauth_event, unsigned int event_len); 598 599 void (*disassoc_callbk_fn)(void *if_priv, nxp_wifi_event_mlme_t *disassoc_event, unsigned int event_len); 600 601 void (*acs_channel_sel_callbk_fn)(void *if_priv, nxp_wifi_acs_params *acs_params); 602 603 void (*mgmt_rx_callbk_fn)(void *if_priv, nxp_wifi_event_mlme_t *mgmt_rx_event, unsigned int event_len, int rssi); 604 void (*get_wiphy_callbk_fn)(void *if_priv, struct wifi_nxp_event_get_wiphy *wiphy_info, unsigned int event_len); 605 void (*eapol_rx_callbk_fn)(void *if_priv, nxp_wifi_event_eapol_mlme_t *mgmt_rx_event, unsigned int event_len); 606 void (*unprot_mlme_mgmt_rx_callbk_fn)(void *if_priv, 607 nxp_wifi_event_mlme_t *unprot_mlme_event, 608 unsigned int event_len); 609 610 void (*mgmt_tx_status_callbk_fn)(void *if_priv, nxp_wifi_event_mlme_t *mlme_event, unsigned int event_len); 611 void (*remain_on_channel_callbk_fn)(void *if_priv, int cancel_channel); 612 void (*ecsa_complete_callbk_fn)(void *if_priv, nxp_wifi_ch_switch_info *ch_switch_info); 613 void (*dfs_cac_started_callbk_fn)(void *if_priv, nxp_wifi_dfs_cac_info *ch_switch_info); 614 void (*dfs_cac_finished_callbk_fn)(void *if_priv, nxp_wifi_dfs_cac_info *ch_switch_info); 615 int (*is_supp_scan_in_progress_callbk_fn)(void *if_priv); 616 void (*signal_change_callbk_fn)(void *if_priv, t_s16 *rssi); 617 } MLAN_PACK_END wifi_nxp_callbk_fns_t; 618 619 typedef struct _chan_to_freq_t 620 { 621 /** Frequency */ 622 t_u32 freq; 623 /** Channel */ 624 t_u16 channel; 625 /** Band */ 626 t_u8 band; 627 } chan_to_freq_t; 628 629 int channel_to_frequency(t_u16 channel, t_u8 band); 630 t_u16 freq_to_chan(unsigned int freq); 631 #endif 632 633 #endif /* __WIFI_NXP_INTERNAL_H__ */ 634