mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-24 15:56:49 +00:00
mac80211: properly setup mesh interface
Setup wpa_supplicant for encrypted mesh or when using DFS channels and adjust interface setup to pass fixed frequency for mesh mode. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
6e0fa4a76d
commit
574e4377fa
@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
|||||||
PKG_NAME:=mac80211
|
PKG_NAME:=mac80211
|
||||||
|
|
||||||
PKG_VERSION:=2017-11-01
|
PKG_VERSION:=2017-11-01
|
||||||
PKG_RELEASE:=5
|
PKG_RELEASE:=6
|
||||||
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
||||||
PKG_HASH:=8437ab7886b988c8152e7a4db30b7f41009e49a3b2cb863edd05da1ecd7eb05a
|
PKG_HASH:=8437ab7886b988c8152e7a4db30b7f41009e49a3b2cb863edd05da1ecd7eb05a
|
||||||
|
|
||||||
|
@ -518,7 +518,11 @@ mac80211_prepare_vif() {
|
|||||||
|
|
||||||
mac80211_setup_supplicant() {
|
mac80211_setup_supplicant() {
|
||||||
wpa_supplicant_prepare_interface "$ifname" nl80211 || return 1
|
wpa_supplicant_prepare_interface "$ifname" nl80211 || return 1
|
||||||
wpa_supplicant_add_network "$ifname"
|
if [ "$mode" = "sta" ]; then
|
||||||
|
wpa_supplicant_add_network "$ifname"
|
||||||
|
else
|
||||||
|
wpa_supplicant_add_network "$ifname" "$freq" "$htmode" "$noscan"
|
||||||
|
fi
|
||||||
wpa_supplicant_run "$ifname" ${hostapd_ctrl:+-H $hostapd_ctrl}
|
wpa_supplicant_run "$ifname" ${hostapd_ctrl:+-H $hostapd_ctrl}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -630,10 +634,10 @@ mac80211_setup_vif() {
|
|||||||
case "$mode" in
|
case "$mode" in
|
||||||
mesh)
|
mesh)
|
||||||
json_get_vars key
|
json_get_vars key
|
||||||
if [ -n "$key" ]; then
|
if [ "$wpa" -gt 0 -o "$auto_channel" -gt 0 ] || chan_is_dfs "$phy" "$channel"; then
|
||||||
wireless_vif_parse_encryption
|
wireless_vif_parse_encryption
|
||||||
freq="$(get_freq "$phy" "$channel")"
|
freq="$(get_freq "$phy" "$channel")"
|
||||||
mac80211_setup_supplicant_noctl || failed=1
|
mac80211_setup_supplicant || failed=1
|
||||||
else
|
else
|
||||||
json_get_vars mesh_id mcast_rate
|
json_get_vars mesh_id mcast_rate
|
||||||
|
|
||||||
@ -710,6 +714,13 @@ get_freq() {
|
|||||||
iw "$phy" info | grep -E -m1 "(\* ${chan:-....} MHz${chan:+|\\[$chan\\]})" | grep MHz | awk '{print $2}'
|
iw "$phy" info | grep -E -m1 "(\* ${chan:-....} MHz${chan:+|\\[$chan\\]})" | grep MHz | awk '{print $2}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
chan_is_dfs() {
|
||||||
|
local phy="$1"
|
||||||
|
local chan="$2"
|
||||||
|
iw "$phy" info | grep -E -m1 "(\* ${chan:-....} MHz${chan:+|\\[$chan\\]})" | grep -q "MHz.*radar detection"
|
||||||
|
return $!
|
||||||
|
}
|
||||||
|
|
||||||
mac80211_interface_cleanup() {
|
mac80211_interface_cleanup() {
|
||||||
local phy="$1"
|
local phy="$1"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user