mac80211: make netifd script create AP interface directly
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 30 May 2015 23:08:57 +0000 (23:08 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 30 May 2015 23:08:57 +0000 (23:08 +0000)
Before starting hostapd we create interface for it. The problem is we
try to create STA interface just to let hostapd change it to AP later.

It may fail if device doesn't support STA interfaces or if we already
hit a limit. Consider following phy (it's from BCM43602 and brcmfmac):
$ iw phy phy0 info | tail
        valid interface combinations:
                 * #{ IBSS, managed } <= 1, #{ AP } <= 4, #{ P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1,
                   total <= 3, #channels <= 1

Trying to setup 2 interfaces: STA + AP results in:
radio0 (1101): command failed: Operation not supported (-95)
radio0 (1101): command failed: Operation not supported (-95)
radio0 (1101): command failed: Operation not supported (-95)
radio0 (1101): command failed: Operation not supported (-95)
radio0 (1101): Configuration file: /var/run/hostapd-phy0.conf
radio0 (1101): Could not read interface wlan0-1 flags: No such device

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45856 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh

index 824c87a..4f680a4 100644 (file)
@@ -447,7 +447,7 @@ mac80211_prepare_vif() {
                        mac80211_hostapd_setup_bss "$phy" "$ifname" "$macaddr" "$type" || return
 
                        [ -n "$hostapd_ctrl" ] || {
-                               iw phy "$phy" interface add "$ifname" type managed
+                               iw phy "$phy" interface add "$ifname" type __ap
                                hostapd_ctrl="${hostapd_ctrl:-/var/run/hostapd/$ifname}"
                        }
                ;;