This patch adds uapsd and wpa_psk_file options to hostapd. It also fixes the hostapd_set_bss_options call in mac80211.sh.
The uapsd option sets the uapsd_advertisement_enabled flag in hostapd, only if the adapter actually supports the option. The wpa_psk_file offers the possibility to use a different WPA-PSK key for each client. The directive points to a file with the following syntax: > 00:11:22:33:44:55 passphrase_for_client_1 > 00:11:22:33:44:67 passphrase_for_client_2 > 00:11:22:33:44:89 > 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef So it is possible to specify both ASCII passphrases and raw 64-chars hex keys. Signed-off-by: Vittorio Gambaletta <open...@vittgam.net> diff -aur /rom/lib/netifd/hostapd.sh /overlay/lib/netifd/hostapd.sh --- /rom/lib/netifd/hostapd.sh 2014-10-12 12:59:38.000000000 +0200 +++ /overlay/lib/netifd/hostapd.sh 2014-10-14 00:03:52.000000000 +0200 @@ -100,7 +100,7 @@ hostapd_common_add_bss_config() { config_add_string 'bssid:macaddr' 'ssid:string' - config_add_boolean wds wmm hidden + config_add_boolean wds wmm uapsd hidden config_add_int maxassoc max_inactivity config_add_boolean disassoc_low_ack isolate short_preamble @@ -134,6 +134,8 @@ config_add_string 'key1:wepkey' 'key2:wepkey' 'key3:wepkey' 'key4:wepkey' 'password:wpakey' + config_add_string wpa_psk_file + config_add_boolean wps_pushbutton wps_label ext_registrar wps_pbc_in_m1 config_add_string wps_device_type wps_device_name wps_manufacturer wps_pin @@ -161,7 +163,7 @@ maxassoc max_inactivity disassoc_low_ack isolate auth_cache \ wps_pushbutton wps_label ext_registrar wps_pbc_in_m1 \ wps_device_type wps_device_name wps_manufacturer wps_pin \ - macfilter ssid wmm hidden short_preamble rsn_preauth + macfilter ssid wmm uapsd hidden short_preamble rsn_preauth set_default isolate 0 set_default maxassoc 0 @@ -170,6 +172,7 @@ set_default disassoc_low_ack 1 set_default hidden 0 set_default wmm 1 + set_default uapsd 1 append bss_conf "ctrl_interface=/var/run/hostapd" if [ "$isolate" -gt 0 ]; then @@ -187,6 +190,10 @@ append bss_conf "wmm_enabled=$wmm" "$N" append bss_conf "ignore_broadcast_ssid=$hidden" "$N" + [ -n "$phy" ] && iw phy "$phy" info 2>/dev/null | grep -q 'Device supports AP-side u-APSD.' && { + append bss_conf "uapsd_advertisement_enabled=$uapsd" "$N" + } + [ "$wpa" -gt 0 ] && { [ -n "$wpa_group_rekey" ] && append bss_conf "wpa_group_rekey=$wpa_group_rekey" "$N" [ -n "$wpa_pair_rekey" ] && append bss_conf "wpa_ptk_rekey=$wpa_pair_rekey" "$N" @@ -201,7 +208,7 @@ wps_not_configured=1 ;; psk) - json_get_vars key + json_get_vars key wpa_psk_file if [ ${#key} -lt 8 ]; then wireless_setup_vif_failed INVALID_WPA_PSK return 1 @@ -210,6 +217,10 @@ else append bss_conf "wpa_passphrase=$key" "$N" fi + [ -n "$wpa_psk_file" ] && { + [ -e "$wpa_psk_file" ] || touch "$wpa_psk_file" + append bss_conf "wpa_psk_file=$wpa_psk_file" "$N" + } wps_possible=1 ;; eap) diff -aur /rom/lib/netifd/wireless/mac80211.sh /overlay/lib/netifd/wireless/mac80211.sh --- /rom/lib/netifd/wireless/mac80211.sh 2014-10-12 23:44:53.000000000 +0200 +++ /overlay/lib/netifd/wireless/mac80211.sh 2014-10-13 23:59:39.000000000 +0200 @@ -310,7 +310,7 @@ hostapd_cfg= append hostapd_cfg "$type=$ifname" "$N" - hostapd_set_bss_options hostapd_cfg "$vif" || return 1 + hostapd_set_bss_options hostapd_cfg "$phy" "$ifname" || return 1 json_get_vars wds dtim_period max_listen_int set_default wds 0 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel