Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Copyright (c) 2012 - 2018 Microchip Technology Inc., and its subsidiaries.
0004  * All rights reserved.
0005  */
0006 
0007 #ifndef WILC_FW_H
0008 #define WILC_FW_H
0009 
0010 #include <linux/ieee80211.h>
0011 
0012 #define WILC_MAX_NUM_STA            9
0013 #define WILC_MAX_RATES_SUPPORTED        12
0014 #define WILC_MAX_NUM_PMKIDS         16
0015 #define WILC_MAX_NUM_SCANNED_CH         14
0016 
0017 struct wilc_assoc_resp {
0018     __le16 capab_info;
0019     __le16 status_code;
0020     __le16 aid;
0021 } __packed;
0022 
0023 struct wilc_pmkid {
0024     u8 bssid[ETH_ALEN];
0025     u8 pmkid[WLAN_PMKID_LEN];
0026 } __packed;
0027 
0028 struct wilc_pmkid_attr {
0029     u8 numpmkid;
0030     struct wilc_pmkid pmkidlist[WILC_MAX_NUM_PMKIDS];
0031 } __packed;
0032 
0033 struct wilc_reg_frame {
0034     u8 reg;
0035     u8 reg_id;
0036     __le16 frame_type;
0037 } __packed;
0038 
0039 struct wilc_drv_handler {
0040     __le32 handler;
0041     u8 mode;
0042 } __packed;
0043 
0044 struct wilc_sta_wpa_ptk {
0045     u8 mac_addr[ETH_ALEN];
0046     u8 key_len;
0047     u8 key[];
0048 } __packed;
0049 
0050 struct wilc_ap_wpa_ptk {
0051     u8 mac_addr[ETH_ALEN];
0052     u8 index;
0053     u8 key_len;
0054     u8 key[];
0055 } __packed;
0056 
0057 struct wilc_wpa_igtk {
0058     u8 index;
0059     u8 pn_len;
0060     u8 pn[6];
0061     u8 key_len;
0062     u8 key[];
0063 } __packed;
0064 
0065 struct wilc_gtk_key {
0066     u8 mac_addr[ETH_ALEN];
0067     u8 rsc[8];
0068     u8 index;
0069     u8 key_len;
0070     u8 key[];
0071 } __packed;
0072 
0073 struct wilc_op_mode {
0074     __le32 mode;
0075 } __packed;
0076 
0077 struct wilc_noa_opp_enable {
0078     u8 ct_window;
0079     u8 cnt;
0080     __le32 duration;
0081     __le32 interval;
0082     __le32 start_time;
0083 } __packed;
0084 
0085 struct wilc_noa_opp_disable {
0086     u8 cnt;
0087     __le32 duration;
0088     __le32 interval;
0089     __le32 start_time;
0090 } __packed;
0091 
0092 struct wilc_join_bss_param {
0093     char ssid[IEEE80211_MAX_SSID_LEN];
0094     u8 ssid_terminator;
0095     u8 bss_type;
0096     u8 ch;
0097     __le16 cap_info;
0098     u8 sa[ETH_ALEN];
0099     u8 bssid[ETH_ALEN];
0100     __le16 beacon_period;
0101     u8 dtim_period;
0102     u8 supp_rates[WILC_MAX_RATES_SUPPORTED + 1];
0103     u8 wmm_cap;
0104     u8 uapsd_cap;
0105     u8 ht_capable;
0106     u8 rsn_found;
0107     u8 rsn_grp_policy;
0108     u8 mode_802_11i;
0109     u8 p_suites[3];
0110     u8 akm_suites[3];
0111     u8 rsn_cap[2];
0112     u8 noa_enabled;
0113     __le32 tsf_lo;
0114     u8 idx;
0115     u8 opp_enabled;
0116     union {
0117         struct wilc_noa_opp_disable opp_dis;
0118         struct wilc_noa_opp_enable opp_en;
0119     };
0120 } __packed;
0121 
0122 struct wilc_external_auth_param {
0123     u8 action;
0124     u8 bssid[ETH_ALEN];
0125     u8 ssid[IEEE80211_MAX_SSID_LEN];
0126     u8 ssid_len;
0127     __le32 key_mgmt_suites;
0128     __le16 status;
0129 } __packed;
0130 #endif