[OpenWrt-Devel] [openwrt/openwrt] mac80211: do not try to setup hostapd-managed interfaces.
John Crispin
john at phrozen.org
Tue Mar 24 07:10:04 EDT 2020
Hi
below commit breaks wifi reconf feature and to be honest it looks like
the wrong fix to me.
John
> dangole pushed a commit to openwrt/openwrt.git, branch master:
> https://git.openwrt.org/23a885bf89a204f91e4f17ed96f1a9fc7f50ea34
>
> commit 23a885bf89a204f91e4f17ed96f1a9fc7f50ea34
> Author: Oldřich Jedlička <oldium.pro at gmail.com>
> AuthorDate: Mon Mar 16 21:00:51 2020 +0100
>
> mac80211: do not try to setup hostapd-managed interfaces.
>
> For virtual access points (when multiple SSIDs are used for one
> physical AP), there exist one physical network interface and
> multiple virtual interfaces, which are fully under control of
> hostapd. When networking is setup, the script
> `/lib/netifd/wireless/mac80211.sh` is called, which tries to bring
> the interface up by a call to `ip link set dev <iface> up`. This
> call might fail for virtual APs, because the virtual interface
> might not have been created by hostapd yet. There are some artifical
> delays in the script most probably to handle this, but when DFS
> channel availability check on 5GHz band is issued, hostapd can
> delay creating virtual interfaces by a minute.
>
> In order to fix this (or work around it), do not try to bring the
> interface up (this is responsibility of hostapd anyway) and
> do not try to set txpower on the virtual interface.
>
> Fixes FS#2698.
>
> Signed-off-by: Oldřich Jedlička <oldium.pro at gmail.com>
> ---
> .../mac80211/files/lib/netifd/wireless/mac80211.sh | 18 +++++++++++-------
> 1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
> index f22730c9fc..f59c498215 100644
> --- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
> +++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
> @@ -533,6 +533,7 @@ mac80211_prepare_vif() {
>
> NEWAPLIST="${NEWAPLIST}$ifname "
> [ -n "$hostapd_ctrl" ] || {
> + ap_ifname="${ifname}"
> hostapd_ctrl="${hostapd_ctrl:-/var/run/hostapd/$ifname}"
> }
> ;;
> @@ -753,13 +754,15 @@ mac80211_setup_vif() {
> json_get_var vif_enable enable 1
>
> [ "$vif_enable" = 1 ] || action=down
> - logger ip link set dev "$ifname" $action
> - ip link set dev "$ifname" "$action" || {
> - wireless_setup_vif_failed IFUP_ERROR
> - json_select ..
> - return
> - }
> - [ -z "$vif_txpower" ] || iw dev "$ifname" set txpower fixed "${vif_txpower%%.*}00"
> + if [ "$mode" != "ap" ] || [ "$ifname" = "$ap_ifname" ]; then
> + logger ip link set dev "$ifname" $action
> + ip link set dev "$ifname" "$action" || {
> + wireless_setup_vif_failed IFUP_ERROR
> + json_select ..
> + return
> + }
> + [ -z "$vif_txpower" ] || iw dev "$ifname" set txpower fixed "${vif_txpower%%.*}00"
> + fi
>
> case "$mode" in
> mesh)
> @@ -924,6 +927,7 @@ drv_mac80211_setup() {
>
> has_ap=
> hostapd_ctrl=
> + ap_ifname=
> hostapd_noscan=
> for_each_interface "ap" mac80211_check_ap
>
>
> _______________________________________________
> lede-commits mailing list
> lede-commits at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-commits
>
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list