0001
0002
0003
0004
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