[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