HS 2.0R2 AP: Update HS 2.0 Indication element to Release 2
authorJouni Malinen <jouni@qca.qualcomm.com>
Sun, 17 Mar 2013 13:59:36 +0000 (15:59 +0200)
committerJouni Malinen <j@w1.fi>
Tue, 25 Feb 2014 23:24:24 +0000 (01:24 +0200)
The HS 2.0 Indication element from hostapd now includes the release
number field and the new ANQP Domain ID field. This ID can be configured
with anqp_domain_id parameter in hostapd.conf.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

hostapd/config_file.c
hostapd/hostapd.conf
src/ap/ap_config.h
src/ap/hs20.c

index a889dca..26f52e9 100644 (file)
@@ -2810,6 +2810,8 @@ static int hostapd_config_fill(struct hostapd_config *conf,
                        bss->hs20 = atoi(pos);
                } else if (os_strcmp(buf, "disable_dgaf") == 0) {
                        bss->disable_dgaf = atoi(pos);
+               } else if (os_strcmp(buf, "anqp_domain_id") == 0) {
+                       bss->anqp_domain_id = atoi(pos);
                } else if (os_strcmp(buf, "hs20_oper_friendly_name") == 0) {
                        if (hs20_parse_oper_friendly_name(bss, pos, line) < 0)
                                errors++;
index 3733a32..0630320 100644 (file)
@@ -1582,6 +1582,11 @@ own_ip_addr=127.0.0.1
 # forging such frames to other stations in the BSS.
 #disable_dgaf=1
 
+# ANQP Domain ID (0..65535)
+# An identifier for a set of APs in an ESS that share the same common ANQP
+# information. 0 = Some of the ANQP information is unique to this AP (default).
+#anqp_domain_id=1234
+
 # Operator Friendly Name
 # This parameter can be used to configure one or more Operator Friendly Name
 # Duples. Each entry has a two or three character language code (ISO-639)
index eda193b..b6e8cbc 100644 (file)
@@ -455,6 +455,7 @@ struct hostapd_bss_config {
 #ifdef CONFIG_HS20
        int hs20;
        int disable_dgaf;
+       u16 anqp_domain_id;
        unsigned int hs20_oper_friendly_name_count;
        struct hostapd_lang_string *hs20_oper_friendly_name;
        u8 *hs20_wan_metrics;
index 45d518b..01c87e8 100644 (file)
 
 u8 * hostapd_eid_hs20_indication(struct hostapd_data *hapd, u8 *eid)
 {
+       u8 conf;
        if (!hapd->conf->hs20)
                return eid;
        *eid++ = WLAN_EID_VENDOR_SPECIFIC;
-       *eid++ = 5;
+       *eid++ = 7;
        WPA_PUT_BE24(eid, OUI_WFA);
        eid += 3;
        *eid++ = HS20_INDICATION_OUI_TYPE;
-       /* Hotspot Configuration: DGAF Enabled */
-       *eid++ = hapd->conf->disable_dgaf ? 0x01 : 0x00;
+       conf = HS20_VERSION; /* Release Number */
+       conf |= HS20_ANQP_DOMAIN_ID_PRESENT;
+       if (hapd->conf->disable_dgaf)
+               conf |= HS20_DGAF_DISABLED;
+       *eid++ = conf;
+       WPA_PUT_LE16(eid, hapd->conf->anqp_domain_id);
+       eid += 2;
+
        return eid;
 }