Remove direct driver calls from ieee802_11.c
[libeap.git] / hostapd / config.h
index 832d657..b8ce830 100644 (file)
@@ -1,7 +1,6 @@
 /*
- * hostapd / Configuration file
- * Copyright (c) 2003-2007, Jouni Malinen <j@w1.fi>
- * Copyright (c) 2007-2008, Intel Corporation
+ * hostapd / Configuration definitions and helpers functions
+ * Copyright (c) 2003-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
  * See README and COPYING for more details.
  */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#ifndef HOSTAPD_CONFIG_H
+#define HOSTAPD_CONFIG_H
 
-#include "defs.h"
+#include "common/defs.h"
 #include "ip_addr.h"
-#include "wpa_common.h"
+#include "common/wpa_common.h"
 
-#ifndef IFNAMSIZ
-#define IFNAMSIZ 16
-#endif
+#define MAX_STA_COUNT 2007
+#define MAX_VLAN_ID 4094
 
 typedef u8 macaddr[ETH_ALEN];
 
@@ -135,11 +133,11 @@ struct hostapd_tx_queue_params {
        int configured;
 };
 
-struct hostapd_wme_ac_params {
+struct hostapd_wmm_ac_params {
        int cwmin;
        int cwmax;
        int aifs;
-       int txopLimit; /* in units of 32us */
+       int txop_limit; /* in units of 32us */
        int admission_control_mandatory;
 };
 
@@ -171,6 +169,7 @@ struct hostapd_bss_config {
        struct hostapd_ip_addr own_ip_addr;
        char *nas_identifier;
        struct hostapd_radius_servers *radius;
+       int acct_interim_interval;
 
        struct hostapd_ssid ssid;
 
@@ -198,6 +197,7 @@ struct hostapd_bss_config {
        int num_accept_mac;
        struct mac_acl_entry *deny_mac;
        int num_deny_mac;
+       int wds_sta;
 
        int auth_algs; /* bitfield of allowed IEEE 802.11 authentication
                        * algorithms, WPA_AUTH_ALG_{OPEN,SHARED,LEAP} */
@@ -205,15 +205,11 @@ struct hostapd_bss_config {
        int wpa; /* bitfield of WPA_PROTO_WPA, WPA_PROTO_RSN */
        int wpa_key_mgmt;
 #ifdef CONFIG_IEEE80211W
-       enum {
-               NO_IEEE80211W = 0,
-               IEEE80211W_OPTIONAL = 1,
-               IEEE80211W_REQUIRED = 2
-       } ieee80211w;
-       /* dot11AssociationPingResponseTimeout (in TU) */
-       unsigned int assoc_ping_timeout;
-       /* dot11AssociationMaximumPingAttempts */
-       int assoc_ping_attempts;
+       enum mfp_options ieee80211w;
+       /* dot11AssociationSAQueryMaximumTimeout (in TUs) */
+       unsigned int assoc_sa_query_max_timeout;
+       /* dot11AssociationSAQueryRetryTimeout (in TUs) */
+       int assoc_sa_query_retry_timeout;
 #endif /* CONFIG_IEEE80211W */
        int wpa_pairwise;
        int wpa_group;
@@ -271,7 +267,7 @@ struct hostapd_bss_config {
        int ap_max_inactivity;
        int ignore_broadcast_ssid;
 
-       int wme_enabled;
+       int wmm_enabled;
 
        struct hostapd_vlan *vlan, *vlan_tail;
 
@@ -300,24 +296,27 @@ struct hostapd_bss_config {
        char *config_methods;
        u8 os_version[4];
        char *ap_pin;
+       int skip_cred_build;
+       u8 *extra_cred;
+       size_t extra_cred_len;
+       int wps_cred_processing;
+       u8 *ap_settings;
+       size_t ap_settings_len;
+       char *upnp_iface;
+       char *friendly_name;
+       char *manufacturer_url;
+       char *model_description;
+       char *model_url;
+       char *upc;
 #endif /* CONFIG_WPS */
 };
 
 
-typedef enum {
-       HOSTAPD_MODE_IEEE80211B,
-       HOSTAPD_MODE_IEEE80211G,
-       HOSTAPD_MODE_IEEE80211A,
-       NUM_HOSTAPD_MODES
-} hostapd_hw_mode;
-
-
 /**
  * struct hostapd_config - Per-radio interface configuration
  */
 struct hostapd_config {
        struct hostapd_bss_config *bss, *last_bss;
-       struct hostapd_radius_servers *radius;
        size_t num_bss;
 
        u16 beacon_int;
@@ -342,9 +341,6 @@ struct hostapd_config {
 
        const struct wpa_driver_ops *driver;
 
-       int passive_scan_interval; /* seconds, 0 = disabled */
-       int passive_scan_listen; /* usec */
-       int passive_scan_mode;
        int ap_table_max_size;
        int ap_table_expiration_time;
 
@@ -360,32 +356,25 @@ struct hostapd_config {
        struct hostapd_tx_queue_params tx_queue[NUM_TX_QUEUES];
 
        /*
-        * WME AC parameters, in same order as 802.1D, i.e.
+        * WMM AC parameters, in same order as 802.1D, i.e.
         * 0 = BE (best effort)
         * 1 = BK (background)
         * 2 = VI (video)
         * 3 = VO (voice)
         */
-       struct hostapd_wme_ac_params wme_ac_params[4];
+       struct hostapd_wmm_ac_params wmm_ac_params[4];
 
-       enum {
-               INTERNAL_BRIDGE_DO_NOT_CONTROL = -1,
-               INTERNAL_BRIDGE_DISABLED = 0,
-               INTERNAL_BRIDGE_ENABLED = 1
-       } bridge_packets;
-
-#ifdef CONFIG_IEEE80211N
-       int ieee80211n;
        int ht_op_mode_fixed;
        u16 ht_capab;
-#endif /* CONFIG_IEEE80211N */
+       int ieee80211n;
        int secondary_channel;
 };
 
 
 int hostapd_mac_comp(const void *a, const void *b);
 int hostapd_mac_comp_empty(const void *a);
-struct hostapd_config * hostapd_config_read(const char *fname);
+struct hostapd_config * hostapd_config_defaults(void);
+void hostapd_config_defaults_bss(struct hostapd_bss_config *bss);
 void hostapd_config_free(struct hostapd_config *conf);
 int hostapd_maclist_found(struct mac_acl_entry *list, int num_entries,
                          const u8 *addr, int *vlan_id);
@@ -401,4 +390,4 @@ const struct hostapd_eap_user *
 hostapd_get_eap_user(const struct hostapd_bss_config *conf, const u8 *identity,
                     size_t identity_len, int phase2);
 
-#endif /* CONFIG_H */
+#endif /* HOSTAPD_CONFIG_H */