From d3abc2c9f5dc2d238c17bd8764f780b38cf58491 Mon Sep 17 00:00:00 2001 From: nbd Date: Sun, 25 Jun 2006 15:42:53 +0000 Subject: add a simple /sbin/wifi script with support for the new broadcom driver (incomplete, but works) git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4072 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/broadcom-wl/files/lib/wifi/broadcom.sh | 161 +++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 package/broadcom-wl/files/lib/wifi/broadcom.sh (limited to 'package/broadcom-wl/files/lib/wifi') diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh new file mode 100644 index 000000000..33a3ebb8f --- /dev/null +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -0,0 +1,161 @@ +scan_broadcom() { + local device="$1" + + config_get vifs "$device" vifs + for vif in $vifs; do + config_get mode "$vif" mode + case "$mode" in + adhoc) + adhoc=1 + adhoc_if="$vif" + ;; + sta) + sta=1 + sta_if="$vif" + ;; + ap) + ap=1 + ap_if="${ap_if:+$ap_if }$vif" + ;; + *) echo "$device($vif): Invalid mode";; + esac + done + + local _c= + for vif in ${adhoc_if:-$sta_if $ap_if}; do + config_set "$vif" ifname "wl0${_c:+.$_c}" + _c=$((${_c:-0} + 1)) + done + + ifdown="down" + for vif in 0 1 2 3; do + append ifdown "vif $vif" "$N" + append ifdown "enabled 0" "$N" + done + + ap=1 + infra=1 + mssid=1 + apsta=0 + radio=1 + case "$adhoc:$sta:$ap" in + 1*) + ap=0 + mssid=0 + infra=0 + ;; + :1:1) + apsta=1 + wet=1 + ;; + :1:) + wet=1 + ap=0 + mssid=0 + ;; + ::) + radio=0 + ;; + esac +} + + +setup_broadcom() { + local _c + config_get channel "$device" channel + config_get country "$device" country + config_get maxassoc "$device" maxassoc + + _c=0 + nas="$(which nas)" + nas_cmd= + for vif in ${adhoc_if:-$sta_if $ap_if}; do + append vif_pre_up "vif $_c" "$N" + append vif_post_up "vif $_c" "$N" + + [ "$vif" = "$sta_if" ] || { + config_get_bool hidden "$vif" hidden 1 + append vif_pre_up "closed $hidden" "$N" + config_get_bool isolate "$vif" isolate + append vif_pre_up "ap_isolate $hidden" "$N" + } + + wsec_r=0 + eap_r=0 + wsec=0 + auth=0 + nasopts= + config_get enc "$vif" encryption + case "$enc" in + WEP|wep) + wsec_r=1 + ;; + *psk*|*PSK*) + wsec_r=1 + config_get key "$vif" key + case "$enc" in + wpa2*|WPA2*|PSK2*|psk2*) auth=128; wsec=4;; + *) auth=4; crypto=2;; + esac + eval "${vif}_key=\"\$key\"" + nasopts="-k \"\$${vif}_key\"" + ;; + *wpa*|*WPA*) + wsec_r=1 + eap_r=1 + config_get key "$vif" key + config_get server "$vif" server + config_get port "$vif" port + case "$enc" in + wpa2*|WPA2*) auth=64; wsec=4;; + *) auth=2; crypto=2;; + esac + eval "${vif}_key=\"\$key\"" + nasopts="-r \"\$${vif}_key\" -h $server -p $port" + ;; + esac + append vif_post_up "wsec $wsec" "$N" + append vif_post_up "wpa_auth $auth" "$N" + append vif_post_up "wsec_restrict $wsec_r" "$N" + append vif_post_up "eap_restrict $eap_r" "$N" + + config_get ssid "$vif" ssid + append vif_post_up "ssid $ssid" "$N" + append vif_post_up "enabled 1" "$N" + + [ -z "$nasopts" ] || { + config_get ifname "$vif" ifname + config_get bridge "$vif" bridge # XXX: integrate with /etc/config/network later + eval "${vif}_ssid=\"\$ssid\"" + mode="-A" + [ "$vif" = "$sta_if" ] && mode="-S" + [ -z "$nas" ] || nas_cmd="${nas_cmd:+$nas_cmd$N}$nas -P /var/run/nas.$ifname.pid -H 34954 -i $ifname${bridge:+ -l $bridge} $mode -m $auth -w $crypto -s \"\$${vif}_ssid\" -g 3600 $nasopts &" + } + _c=$(($_c + 1)) + done + killall -KILL nas >&- 2>&- + cat < Date: Sun, 25 Jun 2006 16:20:13 +0000 Subject: small bugfixes for wifi (broadcom) git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4074 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/broadcom-wl/files/lib/wifi/broadcom.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'package/broadcom-wl/files/lib/wifi') diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index 33a3ebb8f..f5c1ccb02 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -69,6 +69,7 @@ setup_broadcom() { _c=0 nas="$(which nas)" nas_cmd= + if_up= for vif in ${adhoc_if:-$sta_if $ap_if}; do append vif_pre_up "vif $_c" "$N" append vif_post_up "vif $_c" "$N" @@ -123,8 +124,9 @@ setup_broadcom() { append vif_post_up "ssid $ssid" "$N" append vif_post_up "enabled 1" "$N" + config_get ifname "$vif" ifname + append if_up "ifconfig $ifname up" ";$N" [ -z "$nasopts" ] || { - config_get ifname "$vif" ifname config_get bridge "$vif" bridge # XXX: integrate with /etc/config/network later eval "${vif}_ssid=\"\$ssid\"" mode="-A" @@ -134,7 +136,7 @@ setup_broadcom() { _c=$(($_c + 1)) done killall -KILL nas >&- 2>&- - cat < Date: Sun, 25 Jun 2006 16:32:13 +0000 Subject: reorder nas command line parameters (required for bridge operation) git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4077 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/broadcom-wl/files/lib/wifi/broadcom.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'package/broadcom-wl/files/lib/wifi') diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index f5c1ccb02..6cac60c0b 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -131,7 +131,7 @@ setup_broadcom() { eval "${vif}_ssid=\"\$ssid\"" mode="-A" [ "$vif" = "$sta_if" ] && mode="-S" - [ -z "$nas" ] || nas_cmd="${nas_cmd:+$nas_cmd$N}$nas -P /var/run/nas.$ifname.pid -H 34954 -i $ifname${bridge:+ -l $bridge} $mode -m $auth -w $crypto -s \"\$${vif}_ssid\" -g 3600 $nasopts &" + [ -z "$nas" ] || nas_cmd="${nas_cmd:+$nas_cmd$N}$nas -P /var/run/nas.$ifname.pid -H 34954 ${bridge:+ -l $bridge} -i $ifname $mode -m $auth -w $crypto -s \"\$${vif}_ssid\" -g 3600 $nasopts &" } _c=$(($_c + 1)) done -- cgit v1.2.3 From c4f3575368c5aeef4134d82125df2814d688cc2a Mon Sep 17 00:00:00 2001 From: nbd Date: Sun, 30 Jul 2006 03:09:09 +0000 Subject: rewrite of the network scripts and configuration git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4323 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/broadcom-wl/files/lib/wifi/broadcom.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'package/broadcom-wl/files/lib/wifi') diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index 6cac60c0b..53d1cf792 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -1,3 +1,15 @@ +bridge_interface() { + ( + . /etc/functions.sh + include network + scan_interfaces + cfg="$(find_config "$1")" + [ -z "$cfg" ] && return 0 + config_get type "$cfg" type + [ "$type" = bridge ] && config_get "$type" bridge + ) +} + scan_broadcom() { local device="$1" @@ -127,7 +139,7 @@ setup_broadcom() { config_get ifname "$vif" ifname append if_up "ifconfig $ifname up" ";$N" [ -z "$nasopts" ] || { - config_get bridge "$vif" bridge # XXX: integrate with /etc/config/network later + bridge="$(bridge_interface "$ifname")" eval "${vif}_ssid=\"\$ssid\"" mode="-A" [ "$vif" = "$sta_if" ] && mode="-S" -- cgit v1.2.3 From fd40fb97f848901b4d3c197d0e83e95b01312f9a Mon Sep 17 00:00:00 2001 From: nbd Date: Sun, 30 Jul 2006 13:21:18 +0000 Subject: fix more instances of '' abuse git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4326 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/broadcom-wl/files/lib/wifi/broadcom.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'package/broadcom-wl/files/lib/wifi') diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index 53d1cf792..7852ae962 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -5,8 +5,8 @@ bridge_interface() { scan_interfaces cfg="$(find_config "$1")" [ -z "$cfg" ] && return 0 - config_get type "$cfg" type - [ "$type" = bridge ] && config_get "$type" bridge + config_get iftype "$cfg" type + [ "$iftype" = bridge ] && config_get "$iftype" bridge ) } -- cgit v1.2.3 From 24aaeb5b330da13f1426c5289c9475ffa5dc5021 Mon Sep 17 00:00:00 2001 From: nbd Date: Thu, 24 Aug 2006 13:14:18 +0000 Subject: add vlan_mode 0 command to fix the weird google issue in broadcom-wl git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4651 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/broadcom-wl/files/lib/wifi/broadcom.sh | 1 + 1 file changed, 1 insertion(+) (limited to 'package/broadcom-wl/files/lib/wifi') diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index 7852ae962..2c951020f 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -158,6 +158,7 @@ infra $infra ${wet:+wet 1} radio ${radio:-1} +vlan_mode 0 macfilter 0 maclist none wds none -- cgit v1.2.3 From 93910ace66076a8e3ea53ad70ad9ae961fbf99d0 Mon Sep 17 00:00:00 2001 From: nbd Date: Sun, 27 Aug 2006 11:22:19 +0000 Subject: broadcom-wl: set vlan_mode for every enabled interface git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4684 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/broadcom-wl/files/lib/wifi/broadcom.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'package/broadcom-wl/files/lib/wifi') diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index 2c951020f..435c440e2 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -133,6 +133,7 @@ setup_broadcom() { append vif_post_up "eap_restrict $eap_r" "$N" config_get ssid "$vif" ssid + append vif_post_up "vlan_mode 0" append vif_post_up "ssid $ssid" "$N" append vif_post_up "enabled 1" "$N" @@ -158,7 +159,6 @@ infra $infra ${wet:+wet 1} radio ${radio:-1} -vlan_mode 0 macfilter 0 maclist none wds none -- cgit v1.2.3