Home | History | Annotate | Download | only in ap
      1 /*
      2  * hostapd / IEEE 802.11 Management
      3  * Copyright (c) 2002-2009, Jouni Malinen <j (at) w1.fi>
      4  *
      5  * This program is free software; you can redistribute it and/or modify
      6  * it under the terms of the GNU General Public License version 2 as
      7  * published by the Free Software Foundation.
      8  *
      9  * Alternatively, this software may be distributed under the terms of BSD
     10  * license.
     11  *
     12  * See README and COPYING for more details.
     13  */
     14 
     15 #ifndef IEEE802_11_H
     16 #define IEEE802_11_H
     17 
     18 struct hostapd_iface;
     19 struct hostapd_data;
     20 struct sta_info;
     21 struct hostapd_frame_info;
     22 struct ieee80211_ht_capabilities;
     23 
     24 void ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len,
     25 		     struct hostapd_frame_info *fi);
     26 void ieee802_11_mgmt_cb(struct hostapd_data *hapd, const u8 *buf, size_t len,
     27 			u16 stype, int ok);
     28 void ieee802_11_print_ssid(char *buf, const u8 *ssid, u8 len);
     29 #ifdef NEED_AP_MLME
     30 int ieee802_11_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen);
     31 int ieee802_11_get_mib_sta(struct hostapd_data *hapd, struct sta_info *sta,
     32 			   char *buf, size_t buflen);
     33 #else /* NEED_AP_MLME */
     34 static inline int ieee802_11_get_mib(struct hostapd_data *hapd, char *buf,
     35 				     size_t buflen)
     36 {
     37 	return 0;
     38 }
     39 
     40 static inline int ieee802_11_get_mib_sta(struct hostapd_data *hapd,
     41 					 struct sta_info *sta,
     42 					 char *buf, size_t buflen)
     43 {
     44 	return 0;
     45 }
     46 #endif /* NEED_AP_MLME */
     47 u16 hostapd_own_capab_info(struct hostapd_data *hapd, struct sta_info *sta,
     48 			   int probe);
     49 u8 * hostapd_eid_ext_capab(struct hostapd_data *hapd, u8 *eid);
     50 u8 * hostapd_eid_supp_rates(struct hostapd_data *hapd, u8 *eid);
     51 u8 * hostapd_eid_ext_supp_rates(struct hostapd_data *hapd, u8 *eid);
     52 u8 * hostapd_eid_ht_capabilities(struct hostapd_data *hapd, u8 *eid);
     53 u8 * hostapd_eid_ht_operation(struct hostapd_data *hapd, u8 *eid);
     54 int hostapd_ht_operation_update(struct hostapd_iface *iface);
     55 void ieee802_11_send_sa_query_req(struct hostapd_data *hapd,
     56 				  const u8 *addr, const u8 *trans_id);
     57 void hostapd_get_ht_capab(struct hostapd_data *hapd,
     58 			  struct ieee80211_ht_capabilities *ht_cap,
     59 			  struct ieee80211_ht_capabilities *neg_ht_cap);
     60 u16 copy_sta_ht_capab(struct hostapd_data *hapd, struct sta_info *sta,
     61 		      const u8 *ht_capab, size_t ht_capab_len);
     62 void update_ht_state(struct hostapd_data *hapd, struct sta_info *sta);
     63 void hostapd_tx_status(struct hostapd_data *hapd, const u8 *addr,
     64 		       const u8 *buf, size_t len, int ack);
     65 void ieee802_11_rx_from_unknown(struct hostapd_data *hapd, const u8 *src,
     66 				int wds);
     67 
     68 #endif /* IEEE802_11_H */
     69