📄 hostapd.h
字号:
/* * hostapd / Initialization and configuration * Host AP kernel driver * Copyright (c) 2002-2006, Jouni Malinen <jkmaline@cc.hut.fi> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * Alternatively, this software may be distributed under the terms of BSD * license. * * See README and COPYING for more details. */#ifndef HOSTAPD_H#define HOSTAPD_H#include "common.h"#include "ap.h"#ifndef ETH_ALEN#define ETH_ALEN 6#endif#ifndef IFNAMSIZ#define IFNAMSIZ 16#endif#ifndef ETH_P_ALL#define ETH_P_ALL 0x0003#endif#ifndef ETH_P_PAE#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */#endif /* ETH_P_PAE */#ifndef BIT#define BIT(x) (1 << (x))#endif#ifndef MAC2STR#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]#define MACSTR "%02x:%02x:%02x:%02x:%02x:%02x"#endif#include "config.h"#ifdef _MSC_VER#pragma pack(push, 1)#endif /* _MSC_VER */struct ieee8023_hdr { u8 dest[6]; u8 src[6]; u16 ethertype;} STRUCT_PACKED;struct ieee80211_hdr { u16 frame_control; u16 duration_id; u8 addr1[6]; u8 addr2[6]; u8 addr3[6]; u16 seq_ctrl; /* followed by 'u8 addr4[6];' if ToDS and FromDS is set in data frame */} STRUCT_PACKED;#ifdef _MSC_VER#pragma pack(pop)#endif /* _MSC_VER */#define IEEE80211_DA_FROMDS addr1#define IEEE80211_BSSID_FROMDS addr2#define IEEE80211_SA_FROMDS addr3#define IEEE80211_HDRLEN (sizeof(struct ieee80211_hdr))#define IEEE80211_FC(type, stype) host_to_le16((type << 2) | (stype << 4))/* MTU to be set for the wlan#ap device; this is mainly needed for IEEE 802.1X * frames that might be longer than normal default MTU and they are not * fragmented */#define HOSTAPD_MTU 2290extern unsigned char rfc1042_header[6];struct hostap_sta_driver_data { unsigned long rx_packets, tx_packets, rx_bytes, tx_bytes; unsigned long current_tx_rate; unsigned long inactive_msec; unsigned long flags; unsigned long num_ps_buf_frames; unsigned long tx_retry_failed; unsigned long tx_retry_count; int last_rssi; int last_ack_rssi;};struct driver_ops;struct wpa_ctrl_dst;struct radius_server_data;/** * struct hostapd_data - hostapd per-BSS data structure */struct hostapd_data { struct hostapd_iface *iface; struct hostapd_config *iconf; struct hostapd_bss_config *conf; u8 own_addr[ETH_ALEN]; int num_sta; /* number of entries in sta_list */ struct sta_info *sta_list; /* STA info list head */ struct sta_info *sta_hash[STA_HASH_SIZE]; /* pointers to STA info; based on allocated AID or NULL if AID free * AID is in the range 1-2007, so sta_aid[0] corresponders to AID 1 * and so on */ struct sta_info *sta_aid[MAX_AID_TABLE_SIZE]; struct driver_ops *driver; u8 *default_wep_key; u8 default_wep_key_idx; struct radius_client_data *radius; u32 acct_session_id_hi, acct_session_id_lo; struct iapp_data *iapp; enum { DO_NOT_ASSOC = 0, WAIT_BEACON, AUTHENTICATE, ASSOCIATE, ASSOCIATED } assoc_ap_state; char assoc_ap_ssid[33]; int assoc_ap_ssid_len; u16 assoc_ap_aid; struct hostapd_cached_radius_acl *acl_cache; struct hostapd_acl_query_data *acl_queries; struct wpa_authenticator *wpa_auth; struct rsn_preauth_interface *preauth_iface; time_t michael_mic_failure; int michael_mic_failures; int tkip_countermeasures; int ctrl_sock; struct wpa_ctrl_dst *ctrl_dst; void *ssl_ctx; void *eap_sim_db_priv; struct radius_server_data *radius_srv;};/** * struct hostapd_iface - hostapd per-interface data structure */struct hostapd_iface { char *config_fname; struct hostapd_config *conf; int num_bss; struct hostapd_data **bss; struct hostapd_hw_modes *hw_features; int num_hw_features; struct hostapd_hw_modes *current_mode; /* Rates that are currently used (i.e., filtered copy of * current_mode->channels */ int num_rates; struct hostapd_rate_data *current_rates; u16 hw_flags;};void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta, int reassoc);void hostapd_logger(struct hostapd_data *hapd, const u8 *addr, unsigned int module, int level, const char *fmt, ...) PRINTF_FORMAT(5, 6);#ifndef _MSC_VER#define HOSTAPD_DEBUG(level, args...) \do { \ if (hapd->conf == NULL || hapd->conf->debug >= (level)) \ printf(args); \} while (0)#endif /* _MSC_VER */#define HOSTAPD_DEBUG_COND(level) (hapd->conf->debug >= (level))const char * hostapd_ip_txt(const struct hostapd_ip_addr *addr, char *buf, size_t buflen);#endif /* HOSTAPD_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -