From: Michael Braun Date: Wed, 24 Feb 2016 11:53:34 +0000 (+0100) Subject: FT: Use BSSID as r1_key_holder if no value is configured X-Git-Tag: hostap_2_6~799 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d48d1b88d0226bf096890a4a9b485ec65ddc341b;p=thirdparty%2Fhostap.git FT: Use BSSID as r1_key_holder if no value is configured r1_key_holder is an identifier that was always set to zero if unless configured before. See 11.6.1.7.4 of IEEE Std 802.11-2012 which reads "R1KH-ID is a MAC address of the holder of the PMK-R1 in the Authenticator of the AP" See 12.2.2 of IEEE Std 802.11-2012 which reads "Each R0KH-ID and R1KH-ID is assumed to be expressed as a unique identifier within the mobility domain." "The R1KH-ID shall be set to a MAC address of the physical entity that stores the PMK-R1 ..." Defaulting this to BSSID is a more reasonable value since we have not rejected the missing r1_key_holder as invalid configuration. Signed-off-by: Michael Braun --- diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf index d535eec40..fbc71d3d2 100644 --- a/hostapd/hostapd.conf +++ b/hostapd/hostapd.conf @@ -1260,6 +1260,7 @@ own_ip_addr=127.0.0.1 # PMK-R1 Key Holder identifier (dot11FTR1KeyHolderID) # 6-octet identifier as a hex string. +# Defaults to BSSID. #r1_key_holder=000102030405 # Reassociation deadline in time units (TUs / 1.024 ms; range 1000..65535) diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c index dd2dc17d0..4e7c0378f 100644 --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c @@ -940,6 +940,11 @@ static int hostapd_setup_bss(struct hostapd_data *hapd, int first) if (conf->wmm_enabled < 0) conf->wmm_enabled = hapd->iconf->ieee80211n; +#ifdef CONFIG_IEEE80211R + if (is_zero_ether_addr(conf->r1_key_holder)) + os_memcpy(conf->r1_key_holder, hapd->own_addr, ETH_ALEN); +#endif /* CONFIG_IEEE80211R */ + #ifdef CONFIG_MESH if (hapd->iface->mconf == NULL) flush_old_stations = 0;