12 #include "common/defs.h" 13 #include "utils/list.h" 14 #include "ap_config.h" 15 #include "drivers/driver.h" 34 struct hostapd_config * (*config_read_cb)(
const char *config_fname);
39 void *ctx),
void *ctx);
45 char *global_iface_path;
46 char *global_iface_name;
47 #ifndef CONFIG_NATIVE_WINDOWS 48 gid_t ctrl_iface_group;
52 size_t terminate_on_error;
53 #ifndef CONFIG_NO_VLAN 56 int eloop_initialized;
59 enum hostapd_chan_status {
60 HOSTAPD_CHAN_VALID = 0,
61 HOSTAPD_CHAN_INVALID = 1,
66 int (*cb)(
void *ctx,
const u8 *sa,
const u8 *da,
const u8 *bssid,
67 const u8 *ie,
size_t ie_len,
int ssi_signal);
71 #define HOSTAPD_RATE_BASIC 0x00000001 85 WPS_STATUS_SUCCESS = 1,
90 WPS_PBC_STATUS_DISABLE,
91 WPS_PBC_STATUS_ACTIVE,
92 WPS_PBC_STATUS_TIMEOUT,
93 WPS_PBC_STATUS_OVERLAP
97 enum wps_status status;
98 enum wps_error_indication failure_reason;
99 enum pbc_status pbc_status;
100 u8 peer_addr[ETH_ALEN];
123 unsigned int started:1;
124 unsigned int disabled:1;
125 unsigned int reenable_beacon:1;
127 u8 own_addr[ETH_ALEN];
131 #define STA_HASH_SIZE 256 132 #define STA_HASH(sta) (sta[5]) 133 struct sta_info *sta_hash[STA_HASH_SIZE];
140 #define AID_WORDS ((2008 + 31) / 32) 141 u32 sta_aid[AID_WORDS];
150 void *msg_ctx_parent;
164 struct rsn_preauth_interface *preauth_iface;
166 int michael_mic_failures;
167 int tkip_countermeasures;
173 void *eap_sim_db_priv;
177 int parameter_set_count;
180 u8 time_update_counter;
183 #ifdef CONFIG_FULL_DYNAMIC_VLAN 191 struct wpabuf *wps_beacon_ie;
192 struct wpabuf *wps_probe_resp_ie;
194 unsigned int ap_pin_failures;
195 unsigned int ap_pin_failures_consecutive;
197 unsigned int ap_pin_lockout_time;
203 size_t num_probereq_cb;
205 void (*public_action_cb)(
void *ctx,
const u8 *buf,
size_t len,
207 void *public_action_cb_ctx;
208 void (*public_action_cb2)(
void *ctx,
const u8 *buf,
size_t len,
210 void *public_action_cb2_ctx;
212 int (*vendor_action_cb)(
void *ctx,
const u8 *buf,
size_t len,
214 void *vendor_action_cb_ctx;
216 void (*wps_reg_success_cb)(
void *ctx,
const u8 *mac_addr,
218 void *wps_reg_success_cb_ctx;
220 void (*wps_event_cb)(
void *ctx,
enum wps_event event,
222 void *wps_event_cb_ctx;
224 void (*sta_authorized_cb)(
void *ctx,
const u8 *mac_addr,
225 int authorized,
const u8 *p2p_dev_addr);
226 void *sta_authorized_cb_ctx;
228 void (*setup_complete_cb)(
void *ctx);
229 void *setup_complete_cb_ctx;
231 void (*new_psk_cb)(
void *ctx,
const u8 *mac_addr,
232 const u8 *p2p_dev_addr,
const u8 *psk,
234 void *new_psk_cb_ctx;
240 unsigned int cs_c_off_beacon;
241 unsigned int cs_c_off_proberesp;
243 unsigned int cs_c_off_ecsa_beacon;
244 unsigned int cs_c_off_ecsa_proberesp;
247 unsigned int bss_load_update_timeout;
252 struct wpabuf *p2p_beacon_ie;
253 struct wpabuf *p2p_probe_resp_ie;
263 #ifdef CONFIG_PROXYARP 272 struct wpabuf *mesh_pending_auth;
274 u8 mesh_required_peer[ETH_ALEN];
285 int dot11RSNASAERetransPeriod;
288 #ifdef CONFIG_TESTING_OPTIONS 289 unsigned int ext_mgmt_frame_handling:1;
290 unsigned int ext_eapol_frame_io:1;
296 unsigned int mbo_assoc_disallow;
304 unsigned int lci_req_active:1;
305 unsigned int range_req_active:1;
314 #ifdef CONFIG_TAXONOMY 315 struct wpabuf *probe_ie_taxonomy;
329 enum hostapd_iface_state {
330 HAPD_IFACE_UNINITIALIZED,
332 HAPD_IFACE_COUNTRY_UPDATE,
346 unsigned int wait_channel_update:1;
347 unsigned int cac_started:1;
350 const struct wpabuf *fst_ies;
357 unsigned int driver_ap_teardown:1;
363 unsigned int need_to_start_in_sync:1;
366 unsigned int ready_to_start_in_sync:1;
370 struct ap_info *ap_hash[STA_HASH_SIZE];
375 unsigned int smps_modes;
381 unsigned int probe_resp_offloads;
384 const u8 *extended_capa, *extended_capa_mask;
385 unsigned int extended_capa_len;
387 unsigned int drv_max_acl_mac_addrs;
406 int num_sta_no_short_slot_time;
409 int num_sta_no_short_preamble;
414 int num_sta_ht_no_gf;
420 int num_sta_ht_20mhz;
423 int num_sta_ht40_intolerant;
433 unsigned int chans_surveyed;
439 u64 last_channel_time;
440 u64 last_channel_time_busy;
441 u8 channel_utilization;
446 unsigned int dfs_cac_ms;
454 unsigned int acs_num_completed_scans;
458 int num_ht40_scan_tries;
461 unsigned int num_sta_seen;
467 void *ctx),
void *ctx);
474 int hostapd_setup_interface_complete(
struct hostapd_iface *iface,
int err);
479 const char *config_file);
481 hostapd_interface_init_bss(
struct hapd_interfaces *interfaces,
const char *phy,
482 const char *config_fname,
int debug);
485 void hostapd_interface_deinit_free(
struct hostapd_iface *iface);
491 void hostapd_channel_list_updated(
struct hostapd_iface *iface,
int initiator);
492 void hostapd_set_state(
struct hostapd_iface *iface,
enum hostapd_iface_state s);
493 const char * hostapd_state_text(
enum hostapd_iface_state s);
500 void hostapd_cleanup_cs_params(
struct hostapd_data *hapd);
504 int hostapd_register_probereq_cb(
struct hostapd_data *hapd,
505 int (*cb)(
void *ctx,
const u8 *sa,
506 const u8 *da,
const u8 *bssid,
507 const u8 *ie,
size_t ie_len,
510 void hostapd_prune_associations(
struct hostapd_data *hapd,
const u8 *addr);
513 int hostapd_notif_assoc(
struct hostapd_data *hapd,
const u8 *addr,
514 const u8 *ie,
size_t ielen,
int reassoc);
515 void hostapd_notif_disassoc(
struct hostapd_data *hapd,
const u8 *addr);
516 void hostapd_event_sta_low_ack(
struct hostapd_data *hapd,
const u8 *addr);
517 void hostapd_event_connect_failed_reason(
struct hostapd_data *hapd,
518 const u8 *addr,
int reason_code);
519 int hostapd_probe_req_rx(
struct hostapd_data *hapd,
const u8 *sa,
const u8 *da,
520 const u8 *bssid,
const u8 *ie,
size_t ie_len,
522 void hostapd_event_ch_switch(
struct hostapd_data *hapd,
int freq,
int ht,
523 int offset,
int width,
int cf1,
int cf2);
524 struct survey_results;
526 struct survey_results *survey_results);
527 void hostapd_acs_channel_selected(
struct hostapd_data *hapd,
528 struct acs_selected_channels *acs_res);
531 hostapd_get_eap_user(
struct hostapd_data *hapd,
const u8 *identity,
532 size_t identity_len,
int phase2);
538 void fst_hostapd_fill_iface_obj(
struct hostapd_data *hapd,
539 struct fst_wpa_obj *iface_obj);
struct csa_settings - Settings for channel switch command : Count in Beacon frames (TBTT) to perform ...
Definition: driver.h:1759
Definition: sta_info.h:66
int num_rates
num_rates - Number of entries in the rates array
Definition: driver.h:164
Definition: ieee802_11_auth.c:44
struct hostapd_iface - hostapd per-interface data structure
Definition: hostapd.h:322
Definition: radius_das.c:19
Definition: hostapd.h:103
Definition: wps_upnp_i.h:123
Definition: ieee802_11_defs.h:944
Definition: l2_packet_freebsd.c:36
union wps_event_data - WPS event data
Definition: wps.h:484
struct p2p_data - P2P module data (internal to P2P module)
Definition: p2p_i.h:174
Definition: fst_iface.h:18
Definition: ieee802_11_auth.c:30
struct hostapd_hw_modes - Supported hardware mode information
Definition: driver.h:145
struct dl_list - Doubly-linked list
Definition: list.h:15
struct radius_server_data - Internal RADIUS server data
Definition: radius_server.c:119
Definition: vlan_full.c:38
struct wpa_driver_ops - Driver interface API definition
Definition: driver.h:1843
Definition: vlan_full.c:30
Definition: hostapd.h:309
Definition: radius_das.py:1
Definition: wpa_auth_i.h:189
struct hostapd_bss_config - Per-BSS configuration
Definition: ap_config.h:237
struct hostapd_freq_params - Channel parameters
Definition: driver.h:565
mesh_conf - local MBSS state and settings
Definition: ap_config.h:25
struct radius_client_data - Internal RADIUS client data
Definition: radius_client.c:154
Definition: ap_config.h:153
struct wpa_ctrl_dst - Data structure of control interface monitors
Definition: ctrl_iface_common.h:20
struct p2p_group - Internal P2P module per-group data
Definition: p2p_group.c:34
Definition: dbus_new_introspect.c:20
struct hostapd_data - hostapd per-BSS data structure
Definition: hostapd.h:118
struct eapol_authenticator - Global EAPOL authenticator data
Definition: eapol_auth_sm_i.h:27
struct wps_context - Long term WPS context data
Definition: wps.h:594
struct hostapd_config - Per-radio interface configuration
Definition: ap_config.h:619