Search Linux Wireless

Re: [PATCH 1/2]: mac80211: set tx rate and retries when injecting

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

 



2011/5/20 Roberto Riggio <roberto.riggio@xxxxxxxxxxxxxx>:
> Shouldn't the patch bypass the rate control algo and specifically
> this piece of code in tx.c:
>
> Â Âif (!(tx->local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL))
> Â Â Â ÂCALL_TXH(ieee80211_tx_h_rate_ctrl);
>
> Thanks
>
> Il 20/05/2011 01:13, Matteo Croce ha scritto:
>>
>> Allow to set the tx rate and retries when injecting:
>> read the information from the radiotap header and populate the retry chain
>>
>> Signed-off-by: Matteo Croce<matteo@xxxxxxxxxxx>
>>
>> --- a/net/mac80211/tx.c 2011-05-20 00:22:56.250640264 +0200
>> +++ b/net/mac80211/tx.c 2011-05-20 00:24:14.010640270 +0200
>> @@ -1092,6 +1092,44 @@
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Âtx->flags |= IEEE80211_TX_FRAGMENTED;
>> Â Â Â Â Â Â Â Â Â Â Â Âbreak;
>>
>> + Â Â Â Â Â Â Â case IEEE80211_RADIOTAP_RATE: {
>> + Â Â Â Â Â Â Â Â Â Â Â info->control.rates[0].idx = 0;
>> + Â Â Â Â Â Â Â Â Â Â Â if (*iterator.this_arg) {
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â int i;
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â for (i = 0; i< Âsband->n_bitrates; i++)
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (sband->bitrates[i].bitrate ==
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â *iterator.this_arg * 5) {
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â info->control.rates[0].idx
>> = i;
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â break;
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â }
>> + Â Â Â Â Â Â Â Â Â Â Â }
>> + Â Â Â Â Â Â Â Â Â Â Â info->control.rates[0].flags = 0;
>> + Â Â Â Â Â Â Â Â Â Â Â info->control.rates[1].idx = -1;
>> + Â Â Â Â Â Â Â Â Â Â Â info->control.rates[2].idx = -1;
>> + Â Â Â Â Â Â Â Â Â Â Â info->control.rates[3].idx = -1;
>> + Â Â Â Â Â Â Â Â Â Â Â info->control.rates[4].idx = -1;
>> + Â Â Â Â Â Â Â Â Â Â Â break;
>> + Â Â Â Â Â Â Â }
>> +
>> + Â Â Â Â Â Â Â case IEEE80211_RADIOTAP_DATA_RETRIES:
>> + Â Â Â Â Â Â Â Â Â Â Â info->control.rates[0].count = *iterator.this_arg;
>> + Â Â Â Â Â Â Â Â Â Â Â break;
>> +
>> + Â Â Â Â Â Â Â case IEEE80211_RADIOTAP_MCS: {
>> + Â Â Â Â Â Â Â Â Â Â Â u8 flags = iterator.this_arg[1];
>> + Â Â Â Â Â Â Â Â Â Â Â u8 mcs = iterator.this_arg[2];
>> + Â Â Â Â Â Â Â Â Â Â Â info->control.rates[0].idx = mcs;
>> + Â Â Â Â Â Â Â Â Â Â Â info->control.rates[0].flags |=
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â IEEE80211_TX_RC_MCS;
>> + Â Â Â Â Â Â Â Â Â Â Â if (flags& ÂIEEE80211_RADIOTAP_MCS_BW_40)
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â info->control.rates[0].flags |=
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â IEEE80211_TX_RC_40_MHZ_WIDTH;
>> + Â Â Â Â Â Â Â Â Â Â Â if (flags& ÂIEEE80211_RADIOTAP_MCS_SGI)
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â info->control.rates[0].flags |=
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â IEEE80211_TX_RC_SHORT_GI;
>> + Â Â Â Â Â Â Â Â Â Â Â break;
>> + Â Â Â Â Â Â Â }
>> +
>> Â Â Â Â Â Â Â Â/*
>> Â Â Â Â Â Â Â Â * Please update the file
>> Â Â Â Â Â Â Â Â * Documentation/networking/mac80211-injection.txt
>> --- a/net/mac80211/ieee80211_i.h    Â2011-05-20 00:22:56.240640264
>> +0200
>> +++ b/net/mac80211/ieee80211_i.h    Â2011-05-20 00:24:14.010640270
>> +0200
>> @@ -1217,6 +1217,10 @@
>> Â Â Â Âu8 padding_for_rate;
>> Â Â Â Â__le16 tx_flags;
>> Â Â Â Âu8 data_retries;
>> + Â Â Â /*HT info*/
>> + Â Â Â u8 ht_known;
>> + Â Â Â u8 ht_flag;
>> + Â Â Â u8 ht_mcs;
>> Â} __packed;
>>
>>
>> --- a/net/wireless/radiotap.c  2011-05-20 00:22:56.270640264 +0200
>> +++ b/net/wireless/radiotap.c  2011-05-20 00:24:14.010640270 +0200
>> @@ -40,6 +40,7 @@
>> Â Â Â Â[IEEE80211_RADIOTAP_TX_FLAGS] = { .align = 2, .size = 2, },
>> Â Â Â Â[IEEE80211_RADIOTAP_RTS_RETRIES] = { .align = 1, .size = 1, },
>> Â Â Â Â[IEEE80211_RADIOTAP_DATA_RETRIES] = { .align = 1, .size = 1, },
>> + Â Â Â [IEEE80211_RADIOTAP_MCS] = { .align = 1, .size = 3, },
>> Â Â Â Â/*
>> Â Â Â Â * add more here as they are defined in radiotap.h
>> Â Â Â Â */
>> --- a/include/net/mac80211.h  Â2011-05-20 00:22:56.210640264 +0200
>> +++ b/include/net/mac80211.h  Â2011-05-20 00:24:14.020640270 +0200
>> @@ -2278,7 +2278,7 @@
>> Â * The TX headroom reserved by mac80211 for its own tx_status functions.
>> Â * This is enough for the radiotap header.
>> Â */
>> -#define IEEE80211_TX_STATUS_HEADROOM Â 13
>> +#define IEEE80211_TX_STATUS_HEADROOM Â 16
>>
>> Â/**
>> Â * ieee80211_sta_set_tim - set the TIM bit for a sleeping station
>> --
>> 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
>
>
> --
> --------------------------------------------------------
> Roberto Riggio, Ph.D.
> CREATE-NET
> Network& ÂSecurity Solutions for Pervasive Computing Systems (iNSPIRE)
> Senior Researcher
> Via alla Cascata 56/D - 38123 Povo Trento (Italy)
> e-mail: roberto.riggio@xxxxxxxxxxxxxx
> Tel: (+39) 0461 408400 - interno/extension 708
> Fax: (+39) 0461 421157
> www.create-net.org/~rriggio
> --------------------------------------------------------
>
> The information transmitted is intended only for the person or entity to
> which it is addressed and may contain confidential and/or privileged
> material. Any review, retransmission, dissemination or other use of, or
> taking of any action in reliance upon, this information by persons or
> entities other than the intended recipient is prohibited according to
> the Italian Law 196/2003 of the Legislature. If you received this in
> error, please contact the sender and delete the material from any
> computer.
>
> Le informazioni contenute in questo messaggio di posta elettronica e nei
> file allegati sono da considerarsi strettamente riservate. Il loro
> utilizzo e' consentito esclusivamente al destinatario del messaggio, per
> le finalita' indicate nel messaggio stesso. Qualora riceveste questo
> messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
> darcene notizia via e-mail e di procedere alla cancellazione del
> messaggio stesso dal Vostro sistema. Trattenere il messaggio stesso,
> divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo,
> od utilizzarlo per finalita' diverse, costituisce comportamento
> contrario ai principi dettati dal D. Lgs. 196/2003.
>
>

I'm not sure that the rate control is used in monitor mode

-- 
Matteo Croce
OpenWrt Developer
Â_______ Â Â Â Â Â Â Â Â Â Â ________ Â Â Â Â__
| Â Â Â |.-----.-----.-----.| Â| Â| Â|.----.| Â|_
| Â - Â || Â_ Â| Â-__| Â Â || Â| Â| Â|| Â _|| Â _|
|_______|| Â __|_____|__|__||________||__| Â|____|
    Â|__| W I R E L E S S  F R E E D O M
ATTITUDE ADJUSTMENT (bleeding edge) --------------
Â* 1/4 oz Vodka   ÂPour all ingredents into mixing
Â* 1/4 oz Gin    Âtin with ice, strain into glass.
Â* 1/4 oz Amaretto
Â* 1/4 oz Triple sec
Â* 1/4 oz Peach schnapps
Â* 1/4 oz Sour mix
Â* 1 splash Cranberry juice
-----------------------------------------------------
--
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