On Tue, 2009-04-14 at 14:37 +0100, Mark Cave-Ayland wrote:
> Hi there,
> 
> I'm in the process of migrating a server from madwifi drivers to ath5k 
> drivers, and I am experiencing problems setting up VAPs. I'm using a 
> 2.6.29 kernel, with a customised ath5.ko module to enable use as an AP, 
> with iw-0.9.12.
> 
> When I modprobe the ath5k driver, I get a wlan0 interface show up in the 
> output of iwconfig which seems fine. But now I want to add 2 interfaces 
> to wlan0 like this:
> 
> iw dev wlan0 interface add ath0 type __ap
> iw dev wlan0 interface add ath1 type __ap
> 
> This then gives the following output in iwconfig:
> 
> wmaster0  no wireless extensions.
> 
> wlan0     IEEE 802.11bg  ESSID:""
>            Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
>            Tx-Power=0 dBm
>            Retry min limit:7   RTS thr:off   Fragment thr=2352 B
>            Encryption key:off
>            Power Management:off
>            Link Quality:0  Signal level:0  Noise level:0
>            Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
>            Tx excessive retries:0  Invalid misc:0   Missed beacon:0
> 
> ath0      IEEE 802.11bg  Mode:Master  Frequency:2.412 GHz  Tx-Power=0 dBm
>            Retry min limit:7   RTS thr:off   Fragment thr=2352 B
>            Encryption key:off
>            Power Management:off
>            Link Quality:0  Signal level:0  Noise level:0
>            Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
>            Tx excessive retries:0  Invalid misc:0   Missed beacon:0
> 
> ath1      IEEE 802.11bg  Mode:Master  Frequency:2.412 GHz  Tx-Power=0 dBm
>            Retry min limit:7   RTS thr:off   Fragment thr=2352 B
>            Encryption key:off
>            Power Management:off
>            Link Quality:0  Signal level:0  Noise level:0
>            Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
>            Tx excessive retries:0  Invalid misc:0   Missed beacon:0
> 
> 
> Unfortunately when I try and set the SSID for each of the interfaces, iw 
> fails with the following error:
> 
> foo:/usr/sbin# iwconfig ath0 essid "sirius1"
> Error for wireless request "Set ESSID" (8B1A) :
>      SET failed on device ath0 ; Operation not supported.
> foo:/usr/sbin# iwconfig ath1 essid "sirius2"
> Error for wireless request "Set ESSID" (8B1A) :
>      SET failed on device ath1 ; Operation not supported.
> 
> Can anyone point me in the right direction at all?

This is very simple. Ath5k and many other drivers just don't support
several VAPs.

The only exception is monitor + anything else, because this is supported
transparently by mac8012.

For code see:



static int ath5k_add_interface(struct ieee80211_hw *hw,
                struct ieee80211_if_init_conf *conf)
{
        struct ath5k_softc *sc = hw->priv;
        int ret;

        mutex_lock(&sc->lock);
        if (sc->vif) {          <<<<<<<<<
                ret = 0;
                goto end;
        }

        sc->vif = conf->vif;
}


This function is called each time an interface is brought up, but ath5k
and many others will just bring up first one and save its structure in
sc->vif, others are just ignored.

It isn't trivial to fix, as we need to make driver virtual interace
aware.

Iwlwifi does the same sadly, but I think ath9k not.

Best regards,
        Maxim Levitsky



_______________________________________________
ath5k-devel mailing list
ath5k-devel@lists.ath5k.org
https://lists.ath5k.org/mailman/listinfo/ath5k-devel

Reply via email to