TDLS: Declare tdls_testing as extern in a header file
[mech_eap.git] / wpa_supplicant / bss.h
index 4a624c5..f7f72f3 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * BSS table
- * Copyright (c) 2009-2010, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2009-2015, Jouni Malinen <j@w1.fi>
  *
  * This software may be distributed under the terms of the BSD license.
  * See README for more details.
@@ -19,6 +19,12 @@ struct wpa_scan_res;
 #define WPA_BSS_ASSOCIATED             BIT(5)
 #define WPA_BSS_ANQP_FETCH_TRIED       BIT(6)
 
+struct wpa_bss_anqp_elem {
+       struct dl_list list;
+       u16 infoid;
+       struct wpabuf *payload;
+};
+
 /**
  * struct wpa_bss_anqp - ANQP data for a BSS entry (struct wpa_bss)
  */
@@ -26,6 +32,7 @@ struct wpa_bss_anqp {
        /** Number of BSS entries referring to this ANQP data instance */
        unsigned int users;
 #ifdef CONFIG_INTERWORKING
+       struct wpabuf *capability_list;
        struct wpabuf *venue_name;
        struct wpabuf *network_auth_type;
        struct wpabuf *roaming_consortium;
@@ -33,8 +40,10 @@ struct wpa_bss_anqp {
        struct wpabuf *nai_realm;
        struct wpabuf *anqp_3gpp;
        struct wpabuf *domain_name;
+       struct dl_list anqp_elems; /* list of struct wpa_bss_anqp_elem */
 #endif /* CONFIG_INTERWORKING */
 #ifdef CONFIG_HS20
+       struct wpabuf *hs20_capability_list;
        struct wpabuf *hs20_operator_friendly_name;
        struct wpabuf *hs20_wan_metrics;
        struct wpabuf *hs20_connection_capability;
@@ -67,7 +76,7 @@ struct wpa_bss {
        /** HESSID */
        u8 hessid[ETH_ALEN];
        /** SSID */
-       u8 ssid[32];
+       u8 ssid[SSID_MAX_LEN];
        /** Length of SSID */
        size_t ssid_len;
        /** Frequency of the channel in MHz (e.g., 2412 = channel 1) */
@@ -86,6 +95,10 @@ struct wpa_bss {
        u64 tsf;
        /** Time of the last update (i.e., Beacon or Probe Response RX) */
        struct os_reltime last_update;
+       /** Estimated throughput in kbps */
+       unsigned int est_throughput;
+       /** Signal-to-noise ratio in dB */
+       int snr;
        /** ANQP data */
        struct wpa_bss_anqp *anqp;
        /** Length of the following IE field in octets (from Probe Response) */
@@ -135,4 +148,21 @@ static inline int bss_is_dmg(const struct wpa_bss *bss)
        return bss->freq > 45000;
 }
 
+/**
+ * Test whether a BSS is a PBSS.
+ * This checks whether a BSS is a DMG-band PBSS. PBSS is used for P2P DMG
+ * network.
+ */
+static inline int bss_is_pbss(struct wpa_bss *bss)
+{
+       return bss_is_dmg(bss) &&
+               (bss->caps & IEEE80211_CAP_DMG_MASK) == IEEE80211_CAP_DMG_PBSS;
+}
+
+static inline void wpa_bss_update_level(struct wpa_bss *bss, int new_level)
+{
+       if (bss != NULL && new_level < 0)
+               bss->level = new_level;
+}
+
 #endif /* BSS_H */