diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-04-28 12:37:09 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-04-28 12:37:09 +0000 |
commit | d520c048d8eda9083b3fffb4e4e0a82a8a8b0c6b (patch) | |
tree | 55111555c00d21d4857262bd9ca3ee0bc2bcf222 /package/mac80211/files/lib | |
parent | acd03cf8d8c3a047108b7983944b0c8d0228f812 (diff) | |
download | upstream-d520c048d8eda9083b3fffb4e4e0a82a8a8b0c6b.tar.gz upstream-d520c048d8eda9083b3fffb4e4e0a82a8a8b0c6b.tar.bz2 upstream-d520c048d8eda9083b3fffb4e4e0a82a8a8b0c6b.zip |
mac80211: update to 2013-02-22 from trunk + backports
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@36470 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/files/lib')
-rw-r--r-- | package/mac80211/files/lib/wifi/mac80211.sh | 71 |
1 files changed, 38 insertions, 33 deletions
diff --git a/package/mac80211/files/lib/wifi/mac80211.sh b/package/mac80211/files/lib/wifi/mac80211.sh index c3fbc5017e..081dc4d886 100644 --- a/package/mac80211/files/lib/wifi/mac80211.sh +++ b/package/mac80211/files/lib/wifi/mac80211.sh @@ -6,8 +6,6 @@ mac80211_hostapd_setup_base() { local ifname="$2" cfgfile="/var/run/hostapd-$phy.conf" - macfile="/var/run/hostapd-$phy.maclist" - [ -e "$macfile" ] && rm -f "$macfile" config_get device "$vif" device config_get country "$device" country @@ -16,7 +14,6 @@ mac80211_hostapd_setup_base() { config_get beacon_int "$device" beacon_int config_get basic_rate_list "$device" basic_rate config_get_bool noscan "$device" noscan - config_get_bool short_preamble "$device" short_preamble "0" hostapd_set_log_options base_cfg "$device" @@ -51,24 +48,6 @@ mac80211_hostapd_setup_base() { config_get_bool country_ie "$device" country_ie "$country_ie" [ "$country_ie" -gt 0 ] && append base_cfg "ieee80211d=1" "$N" - config_get macfilter "$vif" macfilter - case "$macfilter" in - allow) - append base_cfg "macaddr_acl=1" "$N" - append base_cfg "accept_mac_file=$macfile" "$N" - ;; - deny) - append base_cfg "macaddr_acl=0" "$N" - append base_cfg "deny_mac_file=$macfile" "$N" - ;; - esac - config_get maclist "$vif" maclist - [ -n "$maclist" ] && { - for mac in $maclist; do - echo "$mac" >> $macfile - done - } - local br brval brstr [ -n "$basic_rate_list" ] && { for br in $basic_rate_list; do @@ -78,8 +57,6 @@ mac80211_hostapd_setup_base() { done } - append base_cfg "preamble=$short_preamble" "$N" - cat >> "$cfgfile" <<EOF ctrl_interface=/var/run/hostapd-$phy driver=nl80211 @@ -184,26 +161,46 @@ mac80211_start_vif() { set_wifi_up "$vif" "$ifname" } -find_mac80211_phy() { - local device="$1" +lookup_phy() { + [ -n "$phy" ] && { + [ -d /sys/class/ieee80211/$phy ] && return + } + + local devpath + config_get devpath "$device" path + [ -n "$devpath" -a -d "/sys/devices/$devpath/ieee80211" ] && { + phy="$(ls /sys/devices/$devpath/ieee80211 | grep -m 1 phy)" + [ -n "$phy" ] && return + } local macaddr="$(config_get "$device" macaddr | tr 'A-Z' 'a-z')" - config_get phy "$device" phy - [ -z "$phy" -a -n "$macaddr" ] && { - for phy in $(ls /sys/class/ieee80211 2>/dev/null); do - [ "$macaddr" = "$(cat /sys/class/ieee80211/${phy}/macaddress)" ] || continue - config_set "$device" phy "$phy" - break + [ -n "$macaddr" ] && { + for _phy in $(ls /sys/class/ieee80211 2>/dev/null); do + [ "$macaddr" = "$(cat /sys/class/ieee80211/${_phy}/macaddress)" ] || continue + phy="$_phy" + return done - config_get phy "$device" phy } + phy= + return +} + +find_mac80211_phy() { + local device="$1" + + config_get phy "$device" phy + lookup_phy [ -n "$phy" -a -d "/sys/class/ieee80211/$phy" ] || { echo "PHY for wifi device $1 not found" return 1 } + config_set "$device" phy "$phy" + + config_get macaddr "$device" macaddr [ -z "$macaddr" ] && { config_set "$device" macaddr "$(cat /sys/class/ieee80211/${phy}/macaddress)" } + return 0 } @@ -593,12 +590,20 @@ detect_mac80211() { } iw phy "$dev" info | grep -q '2412 MHz' || { mode_band="a"; channel="36"; } + if [ -x /usr/bin/readlink ]; then + path="$(readlink -f /sys/class/ieee80211/${dev}/device)" + path="${path##/sys/devices/}" + dev_id=" option path '$path'" + else + dev_id=" option macaddr $(cat /sys/class/ieee80211/${dev}/macaddress)" + fi + cat <<EOF config wifi-device radio$devidx option type mac80211 option channel ${channel} - option macaddr $(cat /sys/class/ieee80211/${dev}/macaddress) option hwmode 11${mode_11n}${mode_band} +$dev_id $ht_capab # REMOVE THIS LINE TO ENABLE WIFI: option disabled 1 |