hostapd: add FTM responder support
authorDavid Bauer <mail@david-bauer.net>
Sun, 18 Oct 2020 21:09:09 +0000 (23:09 +0200)
committerDavid Bauer <mail@david-bauer.net>
Tue, 27 Oct 2020 23:08:56 +0000 (00:08 +0100)
This adds support for enabling the FTM responder flag for the APs
extended capabilities. On supported hardware, enabling the ftm_responder
config key for a given AP will enable the FTM responder bit.

FTM support itself is unconditionally implemented in the devices
firmware (ath10k 2nd generation with 3.2.1.1 firmware). There's
currently no softmac implementation.

Also allow to configure LCI and civic location information which can be
transmitted to a FTM initiator.

Signed-off-by: David Bauer <mail@david-bauer.net>
package/network/services/hostapd/files/hostapd.sh

index 8e05ae211f0ecbbd44de958a88978543ecc7d4e6..6267fa90451de49f7584614710394b52bcd70806 100644 (file)
@@ -245,6 +245,9 @@ hostapd_common_add_bss_config() {
 
        config_add_boolean ieee80211k rrm_neighbor_report rrm_beacon_report
 
+       config_add_boolean ftm_responder stationary_ap
+       config_add_string lci civic
+
        config_add_boolean ieee80211r pmk_r1_push ft_psk_generate_local ft_over_ds
        config_add_int r0_key_lifetime reassociation_deadline
        config_add_string mobility_domain r1_key_holder
@@ -627,6 +630,16 @@ hostapd_set_bss_options() {
        [ "$rrm_neighbor_report" -eq "1" ] && append bss_conf "rrm_neighbor_report=1" "$N"
        [ "$rrm_beacon_report" -eq "1" ] && append bss_conf "rrm_beacon_report=1" "$N"
 
+       json_get_vars ftm_responder stationary_ap lci civic
+       if [ "$ftm_responder" -eq "1" ]; then
+               iw phy "$phy" info | grep -q "ENABLE_FTM_RESPONDER" && {
+                       append bss_conf "ftm_responder=1" "$N"
+                       [ "$stationary_ap" -eq "1" ] && append bss_conf "stationary_ap=1" "$N"
+                       [ -n "$lci" ] && append bss_conf "lci=$lci" "$N"
+                       [ -n "$civic" ] && append bss_conf "lci=$civic" "$N"
+               }
+       fi
+
        if [ "$wpa" -ge "1" ]; then
                json_get_vars ieee80211r
                set_default ieee80211r 0