Search Linux Wireless

Re: Question about IEEE80211_TX_CTL_NO_ACK in ath_9k

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

 



Hi!

On 12/19/2011 6:38 AM, 李刚 wrote:
> Hi everybody!
>
> My wireless card is AR9280. I set the IEEE80211_TX_CTL_NO_ACK flag before
> send a packet, but found it no use. It still wait for an ACK. Then I read
> the code,
> in ath9k_htc_tx_data(htc_drv_txrx.c) , it seems there is only two flags:
>
> #define ATH9K_HTC_TX_CTSONLY      0x1
> #define ATH9K_HTC_TX_RTSCTS       0x2
>
> None is about ack.
>
> Does anyone know how to make this flag work properly?
>

As an FYI if your card is a AR9280, then you should be looking in xmit.c
and not at the HTC related code.

I am also working on this issue to enable per-frame no-ack and have
already tracked it down to the following snippet in the function
ieee80211_tx_prepare (mac80211/tx.c).

if (is_multicast_ether_addr(hdr->addr1)) {
tx->flags &= ~IEEE80211_TX_UNICAST;
info->flags |= IEEE80211_TX_CTL_NO_ACK;
} else {
tx->flags |= IEEE80211_TX_UNICAST;
if (unlikely(local->wifi_wme_noack_test))
info->flags |= IEEE80211_TX_CTL_NO_ACK;
else
info->flags &= ~IEEE80211_TX_CTL_NO_ACK;
}

So if you send a unicast frame without this wifi_wme_noack_test flag set
then mac80211 will force the frame to require an ACK. To set the flag,

# sudo -s "echo 1> /sys/kernel/debug/ieee80211/phy0/noack"

Assuming phy0 is the wireless card with which you are wanting to do the
frame injection. The downside to this is that now every frame is passed
to ath9k with the no ack flag set.

Daniel

--
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