$search
00001 /* 00002 * hostapd / IEEE 802.11 Management 00003 * Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi> 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License version 2 as 00007 * published by the Free Software Foundation. 00008 * 00009 * Alternatively, this software may be distributed under the terms of BSD 00010 * license. 00011 * 00012 * See README and COPYING for more details. 00013 */ 00014 00015 #ifndef IEEE802_11_H 00016 #define IEEE802_11_H 00017 00018 struct hostapd_iface; 00019 struct hostapd_data; 00020 struct sta_info; 00021 struct hostapd_frame_info; 00022 struct ieee80211_ht_capabilities; 00023 00024 void ieee802_11_send_deauth(struct hostapd_data *hapd, const u8 *addr, 00025 u16 reason); 00026 void ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len, 00027 struct hostapd_frame_info *fi); 00028 void ieee802_11_mgmt_cb(struct hostapd_data *hapd, const u8 *buf, size_t len, 00029 u16 stype, int ok); 00030 void ieee802_11_print_ssid(char *buf, const u8 *ssid, u8 len); 00031 #ifdef NEED_AP_MLME 00032 int ieee802_11_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen); 00033 int ieee802_11_get_mib_sta(struct hostapd_data *hapd, struct sta_info *sta, 00034 char *buf, size_t buflen); 00035 #else /* NEED_AP_MLME */ 00036 static inline int ieee802_11_get_mib(struct hostapd_data *hapd, char *buf, 00037 size_t buflen) 00038 { 00039 return 0; 00040 } 00041 00042 static inline int ieee802_11_get_mib_sta(struct hostapd_data *hapd, 00043 struct sta_info *sta, 00044 char *buf, size_t buflen) 00045 { 00046 return 0; 00047 } 00048 #endif /* NEED_AP_MLME */ 00049 u16 hostapd_own_capab_info(struct hostapd_data *hapd, struct sta_info *sta, 00050 int probe); 00051 u8 * hostapd_eid_supp_rates(struct hostapd_data *hapd, u8 *eid); 00052 u8 * hostapd_eid_ext_supp_rates(struct hostapd_data *hapd, u8 *eid); 00053 u8 * hostapd_eid_ht_capabilities(struct hostapd_data *hapd, u8 *eid); 00054 u8 * hostapd_eid_ht_operation(struct hostapd_data *hapd, u8 *eid); 00055 int hostapd_ht_operation_update(struct hostapd_iface *iface); 00056 void ieee802_11_send_sa_query_req(struct hostapd_data *hapd, 00057 const u8 *addr, const u8 *trans_id); 00058 void hostapd_get_ht_capab(struct hostapd_data *hapd, 00059 struct ieee80211_ht_capabilities *ht_cap, 00060 struct ieee80211_ht_capabilities *neg_ht_cap); 00061 u16 copy_sta_ht_capab(struct sta_info *sta, const u8 *ht_capab, 00062 size_t ht_capab_len); 00063 void update_ht_state(struct hostapd_data *hapd, struct sta_info *sta); 00064 void hostapd_tx_status(struct hostapd_data *hapd, const u8 *addr, 00065 const u8 *buf, size_t len, int ack); 00066 void ieee802_11_rx_from_unknown(struct hostapd_data *hapd, const u8 *src, 00067 int wds); 00068 00069 #endif /* IEEE802_11_H */