Move STA entry structure into sta_info.h and remove ap.h
authorJouni Malinen <jouni.malinen@atheros.com>
Wed, 25 Mar 2009 14:13:35 +0000 (16:13 +0200)
committerJouni Malinen <j@w1.fi>
Wed, 25 Mar 2009 14:13:35 +0000 (16:13 +0200)
This cleans up some of the hostapd include file usage and only includes
the needed STA flags into driver wrappers.

13 files changed:
hostapd/accounting.c
hostapd/ap.h [deleted file]
hostapd/ap_list.c
hostapd/beacon.h
hostapd/config.c
hostapd/driver.h
hostapd/hostapd.c
hostapd/hostapd.h
hostapd/hw_features.c
hostapd/mlme.c
hostapd/pmksa_cache.c
hostapd/sta_flags.h [new file with mode: 0644]
hostapd/sta_info.h

index 10656f1..7fdcf1c 100644 (file)
@@ -21,6 +21,7 @@
 #include "accounting.h"
 #include "ieee802_1x.h"
 #include "driver_i.h"
+#include "sta_info.h"
 
 
 /* Default interval in seconds for polling TX/RX octets from the driver if
diff --git a/hostapd/ap.h b/hostapd/ap.h
deleted file mode 100644 (file)
index 2440fbd..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * hostapd / Station table data structures
- * Copyright (c) 2002-2008, Jouni Malinen <j@w1.fi>
- * Copyright (c) 2007-2008, Intel Corporation
- *
- * 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 AP_H
-#define AP_H
-
-#ifdef CONFIG_IEEE80211N
-#include "ieee802_11_defs.h"
-#endif /* CONFIG_IEEE80211N */
-
-/* STA flags */
-#define WLAN_STA_AUTH BIT(0)
-#define WLAN_STA_ASSOC BIT(1)
-#define WLAN_STA_PS BIT(2)
-#define WLAN_STA_TIM BIT(3)
-#define WLAN_STA_PERM BIT(4)
-#define WLAN_STA_AUTHORIZED BIT(5)
-#define WLAN_STA_PENDING_POLL BIT(6) /* pending activity poll not ACKed */
-#define WLAN_STA_SHORT_PREAMBLE BIT(7)
-#define WLAN_STA_PREAUTH BIT(8)
-#define WLAN_STA_WMM BIT(9)
-#define WLAN_STA_MFP BIT(10)
-#define WLAN_STA_HT BIT(11)
-#define WLAN_STA_WPS BIT(12)
-#define WLAN_STA_MAYBE_WPS BIT(13)
-#define WLAN_STA_NONERP BIT(31)
-
-/* Maximum number of supported rates (from both Supported Rates and Extended
- * Supported Rates IEs). */
-#define WLAN_SUPP_RATES_MAX 32
-
-
-struct sta_info {
-       struct sta_info *next; /* next entry in sta list */
-       struct sta_info *hnext; /* next entry in hash table list */
-       u8 addr[6];
-       u16 aid; /* STA's unique AID (1 .. 2007) or 0 if not yet assigned */
-       u32 flags;
-       u16 capability;
-       u16 listen_interval; /* or beacon_int for APs */
-       u8 supported_rates[WLAN_SUPP_RATES_MAX];
-       int supported_rates_len;
-
-       unsigned int nonerp_set:1;
-       unsigned int no_short_slot_time_set:1;
-       unsigned int no_short_preamble_set:1;
-       unsigned int no_ht_gf_set:1;
-       unsigned int no_ht_set:1;
-       unsigned int ht_20mhz_set:1;
-
-       u16 auth_alg;
-       u8 previous_ap[6];
-
-       enum {
-               STA_NULLFUNC = 0, STA_DISASSOC, STA_DEAUTH, STA_REMOVE
-       } timeout_next;
-
-       /* IEEE 802.1X related data */
-       struct eapol_state_machine *eapol_sm;
-
-       /* IEEE 802.11f (IAPP) related data */
-       struct ieee80211_mgmt *last_assoc_req;
-
-       u32 acct_session_id_hi;
-       u32 acct_session_id_lo;
-       time_t acct_session_start;
-       int acct_session_started;
-       int acct_terminate_cause; /* Acct-Terminate-Cause */
-       int acct_interim_interval; /* Acct-Interim-Interval */
-
-       unsigned long last_rx_bytes;
-       unsigned long last_tx_bytes;
-       u32 acct_input_gigawords; /* Acct-Input-Gigawords */
-       u32 acct_output_gigawords; /* Acct-Output-Gigawords */
-
-       u8 *challenge; /* IEEE 802.11 Shared Key Authentication Challenge */
-
-       struct wpa_state_machine *wpa_sm;
-       struct rsn_preauth_interface *preauth_iface;
-
-       struct hostapd_ssid *ssid; /* SSID selection based on (Re)AssocReq */
-       struct hostapd_ssid *ssid_probe; /* SSID selection based on ProbeReq */
-
-       int vlan_id;
-
-#ifdef CONFIG_IEEE80211N
-       struct ht_cap_ie ht_capabilities; /* IEEE 802.11n capabilities */
-#endif /* CONFIG_IEEE80211N */
-
-#ifdef CONFIG_IEEE80211W
-       int sa_query_count; /* number of pending SA Query requests;
-                            * 0 = no SA Query in progress */
-       int sa_query_timed_out;
-       u8 *sa_query_trans_id; /* buffer of WLAN_SA_QUERY_TR_ID_LEN *
-                               * sa_query_count octets of pending SA Query
-                               * transaction identifiers */
-       struct os_time sa_query_start;
-#endif /* CONFIG_IEEE80211W */
-
-       struct wpabuf *wps_ie; /* WPS IE from (Re)Association Request */
-};
-
-
-/* Default value for maximum station inactivity. After AP_MAX_INACTIVITY has
- * passed since last received frame from the station, a nullfunc data frame is
- * sent to the station. If this frame is not acknowledged and no other frames
- * have been received, the station will be disassociated after
- * AP_DISASSOC_DELAY seconds. Similarily, the station will be deauthenticated
- * after AP_DEAUTH_DELAY seconds has passed after disassociation. */
-#define AP_MAX_INACTIVITY (5 * 60)
-#define AP_DISASSOC_DELAY (1)
-#define AP_DEAUTH_DELAY (1)
-/* Number of seconds to keep STA entry with Authenticated flag after it has
- * been disassociated. */
-#define AP_MAX_INACTIVITY_AFTER_DISASSOC (1 * 30)
-/* Number of seconds to keep STA entry after it has been deauthenticated. */
-#define AP_MAX_INACTIVITY_AFTER_DEAUTH (1 * 5)
-
-#endif /* AP_H */
index e554609..30c2d72 100644 (file)
@@ -20,6 +20,7 @@
 #include "hostapd.h"
 #include "ieee802_11.h"
 #include "eloop.h"
+#include "sta_info.h"
 #include "ap_list.h"
 #include "hw_features.h"
 #include "beacon.h"
index 5cf06ca..ba50958 100644 (file)
@@ -16,6 +16,8 @@
 #ifndef BEACON_H
 #define BEACON_H
 
+struct ieee80211_mgmt *mgmt;
+
 void handle_probe_req(struct hostapd_data *hapd, struct ieee80211_mgmt *mgmt,
                      size_t len);
 #ifdef NEED_MLME
index a8c8cea..78c3340 100644 (file)
@@ -27,6 +27,7 @@
 #include "wpa.h"
 #include "uuid.h"
 #include "eap_common/eap_wsc_common.h"
+#include "sta_info.h"
 
 
 #define MAX_STA_COUNT 2007
index 3ea019e..a79b91e 100644 (file)
@@ -16,6 +16,8 @@
 #ifndef DRIVER_H
 #define DRIVER_H
 
+#include "sta_flags.h"
+
 struct hostapd_data;
 
 struct hostap_sta_driver_data {
index 0007e92..0aefb31 100644 (file)
 #include "accounting.h"
 #include "eapol_sm.h"
 #include "iapp.h"
-#include "ap.h"
 #include "ieee802_11_defs.h"
 #include "ieee802_11_auth.h"
-#include "ap_list.h"
 #include "sta_info.h"
+#include "ap_list.h"
 #include "driver_i.h"
 #include "radius/radius_client.h"
 #include "radius/radius_server.h"
index 8bdd58c..75dc0f3 100644 (file)
@@ -18,7 +18,6 @@
 #define HOSTAPD_H
 
 #include "common.h"
-#include "ap.h"
 #include "hostapd_defs.h"
 #include "config.h"
 
index 22e1d83..843fb0c 100644 (file)
@@ -17,6 +17,7 @@
 #include "includes.h"
 
 #include "hostapd.h"
+#include "ieee802_11_defs.h"
 #include "hw_features.h"
 #include "driver_i.h"
 #include "config.h"
index 3945dfe..f9b143a 100644 (file)
@@ -19,6 +19,7 @@
 #include "hostapd.h"
 #include "ieee802_11.h"
 #include "wpa.h"
+#include "sta_info.h"
 #include "mlme.h"
 
 
index f330f98..b815e58 100644 (file)
@@ -15,7 +15,7 @@
 #include "includes.h"
 
 #include "common.h"
-#include "ap.h"
+#include "sta_info.h"
 #include "config.h"
 #include "common.h"
 #include "eloop.h"
diff --git a/hostapd/sta_flags.h b/hostapd/sta_flags.h
new file mode 100644 (file)
index 0000000..a790039
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * hostapd - driver interface definition
+ * Copyright (c) 2002-2009, Jouni Malinen <j@w1.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 STA_FLAGS_H
+#define STA_FLAGS_H
+
+/* STA flags */
+#define WLAN_STA_AUTH BIT(0)
+#define WLAN_STA_ASSOC BIT(1)
+#define WLAN_STA_PS BIT(2)
+#define WLAN_STA_TIM BIT(3)
+#define WLAN_STA_PERM BIT(4)
+#define WLAN_STA_AUTHORIZED BIT(5)
+#define WLAN_STA_PENDING_POLL BIT(6) /* pending activity poll not ACKed */
+#define WLAN_STA_SHORT_PREAMBLE BIT(7)
+#define WLAN_STA_PREAUTH BIT(8)
+#define WLAN_STA_WMM BIT(9)
+#define WLAN_STA_MFP BIT(10)
+#define WLAN_STA_HT BIT(11)
+#define WLAN_STA_WPS BIT(12)
+#define WLAN_STA_MAYBE_WPS BIT(13)
+#define WLAN_STA_NONERP BIT(31)
+
+#endif /* STA_FLAGS_H */
index e835970..993f087 100644 (file)
 #ifndef STA_INFO_H
 #define STA_INFO_H
 
+#include "sta_flags.h"
+
+#ifdef CONFIG_IEEE80211N
+#include "ieee802_11_defs.h"
+#endif /* CONFIG_IEEE80211N */
+
+/* Maximum number of supported rates (from both Supported Rates and Extended
+ * Supported Rates IEs). */
+#define WLAN_SUPP_RATES_MAX 32
+
+
+struct sta_info {
+       struct sta_info *next; /* next entry in sta list */
+       struct sta_info *hnext; /* next entry in hash table list */
+       u8 addr[6];
+       u16 aid; /* STA's unique AID (1 .. 2007) or 0 if not yet assigned */
+       u32 flags;
+       u16 capability;
+       u16 listen_interval; /* or beacon_int for APs */
+       u8 supported_rates[WLAN_SUPP_RATES_MAX];
+       int supported_rates_len;
+
+       unsigned int nonerp_set:1;
+       unsigned int no_short_slot_time_set:1;
+       unsigned int no_short_preamble_set:1;
+       unsigned int no_ht_gf_set:1;
+       unsigned int no_ht_set:1;
+       unsigned int ht_20mhz_set:1;
+
+       u16 auth_alg;
+       u8 previous_ap[6];
+
+       enum {
+               STA_NULLFUNC = 0, STA_DISASSOC, STA_DEAUTH, STA_REMOVE
+       } timeout_next;
+
+       /* IEEE 802.1X related data */
+       struct eapol_state_machine *eapol_sm;
+
+       /* IEEE 802.11f (IAPP) related data */
+       struct ieee80211_mgmt *last_assoc_req;
+
+       u32 acct_session_id_hi;
+       u32 acct_session_id_lo;
+       time_t acct_session_start;
+       int acct_session_started;
+       int acct_terminate_cause; /* Acct-Terminate-Cause */
+       int acct_interim_interval; /* Acct-Interim-Interval */
+
+       unsigned long last_rx_bytes;
+       unsigned long last_tx_bytes;
+       u32 acct_input_gigawords; /* Acct-Input-Gigawords */
+       u32 acct_output_gigawords; /* Acct-Output-Gigawords */
+
+       u8 *challenge; /* IEEE 802.11 Shared Key Authentication Challenge */
+
+       struct wpa_state_machine *wpa_sm;
+       struct rsn_preauth_interface *preauth_iface;
+
+       struct hostapd_ssid *ssid; /* SSID selection based on (Re)AssocReq */
+       struct hostapd_ssid *ssid_probe; /* SSID selection based on ProbeReq */
+
+       int vlan_id;
+
+#ifdef CONFIG_IEEE80211N
+       struct ht_cap_ie ht_capabilities; /* IEEE 802.11n capabilities */
+#endif /* CONFIG_IEEE80211N */
+
+#ifdef CONFIG_IEEE80211W
+       int sa_query_count; /* number of pending SA Query requests;
+                            * 0 = no SA Query in progress */
+       int sa_query_timed_out;
+       u8 *sa_query_trans_id; /* buffer of WLAN_SA_QUERY_TR_ID_LEN *
+                               * sa_query_count octets of pending SA Query
+                               * transaction identifiers */
+       struct os_time sa_query_start;
+#endif /* CONFIG_IEEE80211W */
+
+       struct wpabuf *wps_ie; /* WPS IE from (Re)Association Request */
+};
+
+
+/* Default value for maximum station inactivity. After AP_MAX_INACTIVITY has
+ * passed since last received frame from the station, a nullfunc data frame is
+ * sent to the station. If this frame is not acknowledged and no other frames
+ * have been received, the station will be disassociated after
+ * AP_DISASSOC_DELAY seconds. Similarily, the station will be deauthenticated
+ * after AP_DEAUTH_DELAY seconds has passed after disassociation. */
+#define AP_MAX_INACTIVITY (5 * 60)
+#define AP_DISASSOC_DELAY (1)
+#define AP_DEAUTH_DELAY (1)
+/* Number of seconds to keep STA entry with Authenticated flag after it has
+ * been disassociated. */
+#define AP_MAX_INACTIVITY_AFTER_DISASSOC (1 * 30)
+/* Number of seconds to keep STA entry after it has been deauthenticated. */
+#define AP_MAX_INACTIVITY_AFTER_DEAUTH (1 * 5)
+
+
+struct hostapd_data;
+
 int ap_for_each_sta(struct hostapd_data *hapd,
                    int (*cb)(struct hostapd_data *hapd, struct sta_info *sta,
                              void *ctx),