2 * hostapd / IEEE 802.11 Management
3 * Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi>
5 * This software may be distributed under the terms of the BSD license.
6 * See README for more details.
15 struct hostapd_frame_info
;
16 struct ieee80211_ht_capabilities
;
17 struct ieee80211_vht_capabilities
;
18 struct ieee80211_mgmt
;
20 int ieee802_11_mgmt(struct hostapd_data
*hapd
, const u8
*buf
, size_t len
,
21 struct hostapd_frame_info
*fi
);
22 void ieee802_11_mgmt_cb(struct hostapd_data
*hapd
, const u8
*buf
, size_t len
,
24 void hostapd_2040_coex_action(struct hostapd_data
*hapd
,
25 const struct ieee80211_mgmt
*mgmt
, size_t len
);
27 int ieee802_11_get_mib(struct hostapd_data
*hapd
, char *buf
, size_t buflen
);
28 int ieee802_11_get_mib_sta(struct hostapd_data
*hapd
, struct sta_info
*sta
,
29 char *buf
, size_t buflen
);
30 #else /* NEED_AP_MLME */
31 static inline int ieee802_11_get_mib(struct hostapd_data
*hapd
, char *buf
,
37 static inline int ieee802_11_get_mib_sta(struct hostapd_data
*hapd
,
39 char *buf
, size_t buflen
)
43 #endif /* NEED_AP_MLME */
44 u16
hostapd_own_capab_info(struct hostapd_data
*hapd
);
45 void ap_ht2040_timeout(void *eloop_data
, void *user_data
);
46 u8
* hostapd_eid_ext_capab(struct hostapd_data
*hapd
, u8
*eid
);
47 u8
* hostapd_eid_qos_map_set(struct hostapd_data
*hapd
, u8
*eid
);
48 u8
* hostapd_eid_supp_rates(struct hostapd_data
*hapd
, u8
*eid
);
49 u8
* hostapd_eid_ext_supp_rates(struct hostapd_data
*hapd
, u8
*eid
);
50 u8
* hostapd_eid_ht_capabilities(struct hostapd_data
*hapd
, u8
*eid
);
51 u8
* hostapd_eid_ht_operation(struct hostapd_data
*hapd
, u8
*eid
);
52 u8
* hostapd_eid_secondary_channel(struct hostapd_data
*hapd
, u8
*eid
);
53 u8
* hostapd_eid_vht_capabilities(struct hostapd_data
*hapd
, u8
*eid
, u32 nsts
);
54 u8
* hostapd_eid_vht_operation(struct hostapd_data
*hapd
, u8
*eid
);
55 u8
* hostapd_eid_vendor_vht(struct hostapd_data
*hapd
, u8
*eid
);
56 u8
* hostapd_eid_wb_chsw_wrapper(struct hostapd_data
*hapd
, u8
*eid
);
57 u8
* hostapd_eid_txpower_envelope(struct hostapd_data
*hapd
, u8
*eid
);
58 u8
* hostapd_eid_he_capab(struct hostapd_data
*hapd
, u8
*eid
);
59 u8
* hostapd_eid_he_operation(struct hostapd_data
*hapd
, u8
*eid
);
61 int hostapd_ht_operation_update(struct hostapd_iface
*iface
);
62 void ieee802_11_send_sa_query_req(struct hostapd_data
*hapd
,
63 const u8
*addr
, const u8
*trans_id
);
64 void hostapd_get_ht_capab(struct hostapd_data
*hapd
,
65 struct ieee80211_ht_capabilities
*ht_cap
,
66 struct ieee80211_ht_capabilities
*neg_ht_cap
);
67 void hostapd_get_vht_capab(struct hostapd_data
*hapd
,
68 struct ieee80211_vht_capabilities
*vht_cap
,
69 struct ieee80211_vht_capabilities
*neg_vht_cap
);
70 int hostapd_get_aid(struct hostapd_data
*hapd
, struct sta_info
*sta
);
71 u16
copy_sta_ht_capab(struct hostapd_data
*hapd
, struct sta_info
*sta
,
73 u16
copy_sta_vendor_vht(struct hostapd_data
*hapd
, struct sta_info
*sta
,
74 const u8
*ie
, size_t len
);
76 void update_ht_state(struct hostapd_data
*hapd
, struct sta_info
*sta
);
77 void ht40_intolerant_add(struct hostapd_iface
*iface
, struct sta_info
*sta
);
78 void ht40_intolerant_remove(struct hostapd_iface
*iface
, struct sta_info
*sta
);
79 u16
copy_sta_vht_capab(struct hostapd_data
*hapd
, struct sta_info
*sta
,
81 u16
set_sta_vht_opmode(struct hostapd_data
*hapd
, struct sta_info
*sta
,
82 const u8
*vht_opmode
);
83 void hostapd_tx_status(struct hostapd_data
*hapd
, const u8
*addr
,
84 const u8
*buf
, size_t len
, int ack
);
85 void hostapd_eapol_tx_status(struct hostapd_data
*hapd
, const u8
*dst
,
86 const u8
*data
, size_t len
, int ack
);
87 void ieee802_11_rx_from_unknown(struct hostapd_data
*hapd
, const u8
*src
,
89 u8
* hostapd_eid_assoc_comeback_time(struct hostapd_data
*hapd
,
90 struct sta_info
*sta
, u8
*eid
);
91 void ieee802_11_sa_query_action(struct hostapd_data
*hapd
,
92 const u8
*sa
, const u8 action_type
,
94 u8
* hostapd_eid_interworking(struct hostapd_data
*hapd
, u8
*eid
);
95 u8
* hostapd_eid_adv_proto(struct hostapd_data
*hapd
, u8
*eid
);
96 u8
* hostapd_eid_roaming_consortium(struct hostapd_data
*hapd
, u8
*eid
);
97 u8
* hostapd_eid_time_adv(struct hostapd_data
*hapd
, u8
*eid
);
98 u8
* hostapd_eid_time_zone(struct hostapd_data
*hapd
, u8
*eid
);
99 int hostapd_update_time_adv(struct hostapd_data
*hapd
);
100 void hostapd_client_poll_ok(struct hostapd_data
*hapd
, const u8
*addr
);
101 u8
* hostapd_eid_bss_max_idle_period(struct hostapd_data
*hapd
, u8
*eid
);
103 int auth_sae_init_committed(struct hostapd_data
*hapd
, struct sta_info
*sta
);
105 void sae_clear_retransmit_timer(struct hostapd_data
*hapd
,
106 struct sta_info
*sta
);
107 void sae_accept_sta(struct hostapd_data
*hapd
, struct sta_info
*sta
);
108 #else /* CONFIG_SAE */
109 static inline void sae_clear_retransmit_timer(struct hostapd_data
*hapd
,
110 struct sta_info
*sta
)
113 #endif /* CONFIG_SAE */
117 u8
* hostapd_eid_mbo(struct hostapd_data
*hapd
, u8
*eid
, size_t len
);
119 u8
hostapd_mbo_ie_len(struct hostapd_data
*hapd
);
121 #else /* CONFIG_MBO */
123 static inline u8
* hostapd_eid_mbo(struct hostapd_data
*hapd
, u8
*eid
,
129 static inline u8
hostapd_mbo_ie_len(struct hostapd_data
*hapd
)
134 #endif /* CONFIG_MBO */
136 void ap_copy_sta_supp_op_classes(struct sta_info
*sta
,
137 const u8
*supp_op_classes
,
138 size_t supp_op_classes_len
);
140 u8
* hostapd_eid_fils_indic(struct hostapd_data
*hapd
, u8
*eid
, int hessid
);
141 void ieee802_11_finish_fils_auth(struct hostapd_data
*hapd
,
142 struct sta_info
*sta
, int success
,
143 struct wpabuf
*erp_resp
,
144 const u8
*msk
, size_t msk_len
);
145 u8
* owe_auth_req_process(struct hostapd_data
*hapd
, struct sta_info
*sta
,
146 const u8
*owe_dh
, u8 owe_dh_len
,
147 u8
*owe_buf
, u16
*reason
);
148 void fils_hlp_timeout(void *eloop_ctx
, void *eloop_data
);
149 void fils_hlp_finish_assoc(struct hostapd_data
*hapd
, struct sta_info
*sta
);
150 void handle_auth_fils(struct hostapd_data
*hapd
, struct sta_info
*sta
,
151 const u8
*pos
, size_t len
, u16 auth_alg
,
152 u16 auth_transaction
, u16 status_code
,
153 void (*cb
)(struct hostapd_data
*hapd
,
154 struct sta_info
*sta
,
155 u16 resp
, struct wpabuf
*data
, int pub
));
157 #endif /* IEEE802_11_H */