Search Linux Wireless

Re: [RFC PATCH 0/3] mac80211 dissasociation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 8, 2008 at 11:58 AM, Johannes Berg
<johannes@xxxxxxxxxxxxxxxx> wrote:
> On Mon, 2008-09-08 at 11:46 +0300, Tomas Winkler wrote:
>> On Mon, Sep 8, 2008 at 11:38 AM, Johannes Berg
>> <johannes@xxxxxxxxxxxxxxxx> wrote:
>> > On Mon, 2008-09-08 at 02:14 +0300, Tomas Winkler wrote:
>> >
>> >> Shouldn't carrier_off(stada->dev) stop the queue?  I haven't seen this
>> >> before.
>> >
>> > The other question is whether we should be doing netif_carrier_off() at
>> > all since that throws away frames from the queue and attaches a noop
>> > qdisc. When we're roaming quickly between two APs, we don't necessarily
>> > want that, but we don't actually know whether or not we'll be able to
>> > get back to an AP quickly when we disassociate for whatever reason.
>> >
>> we should stop the wlan0 not the master device. Only data frames
>> should be stopped.
>
> That's what we're doing of course, but should we really drop all the
> frames that might still be in the queue? If we're just roaming we could
> send them out via the next AP, but it's hard to know, and since it's
> working let's not touch it for now.

In current situation we are dropping the frames anyway.
How do you know you are roaming and not moving to another network?

> How exactly are you triggering that "unauthorized port" message? I can't
> seem to reproduce to see if stopping the queue helps, but I'm fairly
> sure, try the patch below that fixes this.

Powering off AP, I think I've seen only Cisco AP that are able to send
deauth packet on power off. So this was without.

> johannes
>
> --- everything.orig/net/mac80211/mlme.c 2008-09-08 10:54:28.000000000 +0200
> +++ everything/net/mac80211/mlme.c      2008-09-08 10:57:30.000000000 +0200
> @@ -574,6 +574,7 @@ static void ieee80211_set_associated(str
>        sdata->bss_conf.assoc = 1;
>        ieee80211_bss_info_change_notify(sdata, changed);
>
> +       netif_tx_start_all_queues(sdata->dev);
>        netif_carrier_on(sdata->dev);
>
>        ieee80211_sta_send_apinfo(sdata, ifsta);
> @@ -995,6 +996,7 @@ static void ieee80211_set_disassoc(struc
>        ifsta->assoc_scan_tries = 0;
>        ifsta->assoc_tries = 0;
>
> +       netif_tx_stop_all_queues(sdata->dev);
>        netif_carrier_off(sdata->dev);
>
>        ieee80211_sta_tear_down_BA_sessions(sdata, sta->addr);
> @@ -3413,6 +3415,7 @@ static void ieee80211_sta_reset_auth(str
>        ifsta->direct_probe_tries = 0;
>        ifsta->auth_tries = 0;
>        ifsta->assoc_tries = 0;
> +       netif_tx_stop_all_queues(sdata->dev);
>        netif_carrier_off(sdata->dev);
>  }
>
Will be able to test only at night.
Tomas
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux