Search Linux Wireless

Re: Question on flushing and deauth frames

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

 



> ath10k is a bit weird about flushing frames, and at least my variant of the wave-2
> firmware does not always put the deauth frame on the air when deleting stations.
>
> It will likely not be much fun to fix this.  I was wondering if the code below
> from ieee80211_set_disassoc() could (easily?) be made to wait for a tx-status of the deauth frame
> instead of trying to force a flush?

That's exactly what it does:

>
>        /*
>          * drop any frame before deauth/disassoc, this can be data or
>          * management frame. Since we are disconnecting, we should not
>          * insist sending these frames which can take time and delay
>          * the disconnection and possible the roaming.
>          */
>         if (tx)
>                 ieee80211_flush_queues(local, sdata, true);

Remove all the pending data frames from the queues to clear the way
for the deauth.
Note the drop=true

>
>         /* deauthenticate/disassociate now */
>         if (tx || frame_buf)
>                 ieee80211_send_deauth_disassoc(sdata, ifmgd->bssid, stype,
>                                                reason, tx, frame_buf);
>

Send the deauth.

>         /* flush out frame - make sure the deauth was actually sent */
>         if (tx)
>                 ieee80211_flush_queues(local, sdata, false);
>

Wait for the deauth (drop=false).
The question here is how ath10k implements the flush(, drop=false)



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux