aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/files/lib
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-04-28 12:37:09 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-04-28 12:37:09 +0000
commitd520c048d8eda9083b3fffb4e4e0a82a8a8b0c6b (patch)
tree55111555c00d21d4857262bd9ca3ee0bc2bcf222 /package/mac80211/files/lib
parentacd03cf8d8c3a047108b7983944b0c8d0228f812 (diff)
downloadupstream-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.sh71
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