All of lore.kernel.org
 help / color / mirror / Atom feed
* [ath9k-devel] How to adjust/know rate for acknowledgments?
@ 2013-08-04 16:00 Lars Kristian R Johansen
  2013-08-04 16:46 ` Sujith Manoharan
  0 siblings, 1 reply; 7+ messages in thread
From: Lars Kristian R Johansen @ 2013-08-04 16:00 UTC (permalink / raw)
  To: ath9k-devel

Hi everybody,

I am quite new to both mac80211 and ath9k, but I have written my own rate control algorithm (for testing purposes) and can't seem to figure out how to adjust the rate for the acknowledgments.

I would like to be able to at least know the rate for the acknowledgments (which I currently do not know), but even better to be able to adjust it as I want it to.

I am using ath9k, with AR9485 chipset.

Thank you,
Lars Johansen

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ath9k-devel] How to adjust/know rate for acknowledgments?
  2013-08-04 16:00 [ath9k-devel] How to adjust/know rate for acknowledgments? Lars Kristian R Johansen
@ 2013-08-04 16:46 ` Sujith Manoharan
  2013-08-04 18:12   ` Lars Kristian R Johansen
  0 siblings, 1 reply; 7+ messages in thread
From: Sujith Manoharan @ 2013-08-04 16:46 UTC (permalink / raw)
  To: ath9k-devel

Lars Kristian R Johansen wrote:
> I am quite new to both mac80211 and ath9k, but I have written my own rate
> control algorithm (for testing purposes) and can't seem to figure out how to
> adjust the rate for the acknowledgments.
> 
> I would like to be able to at least know the rate for the acknowledgments
> (which I currently do not know), but even better to be able to adjust it as I
> want it to.

Acknowledgments (both legacy and HT/BlockAck) are sent by the HW and is
not controlled by the driver. The rates for the ACK frames are defined in
the IEEE 802.11 specification.

Sujith

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ath9k-devel] How to adjust/know rate for acknowledgments?
  2013-08-04 16:46 ` Sujith Manoharan
@ 2013-08-04 18:12   ` Lars Kristian R Johansen
  2013-08-05  6:34     ` Sujith Manoharan
  0 siblings, 1 reply; 7+ messages in thread
From: Lars Kristian R Johansen @ 2013-08-04 18:12 UTC (permalink / raw)
  To: ath9k-devel

Thank you for the clarification. 

I've tried to read up on it in the specification, but as far as I know this is the following rule:

The ack should be sent with the highest possible rate restricted by these two conditions, whichever is lower:
- the rates in the stations basic rate set
- rate of the data frame that is being acked

I'm not sure whether I understand if this also applies for HT/BlockAcks for 802.11n, if so, what is the basic rate set?
Does the information given by "iw list" show the basic rate set? 
(this is my output):

	Band 1:
		Capabilities: 0x116e
			HT20/HT40
			SM Power Save disabled
			RX HT20 SGI
			RX HT40 SGI
			RX STBC 1-stream
			Max AMSDU length: 3839 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 8 usec (0x06)
		HT TX/RX MCS rate indexes supported: 0-7
		Frequencies:
			* 2412 MHz [1] (20.0 dBm)
			* 2417 MHz [2] (20.0 dBm)
			...
			* 2467 MHz [12] (20.0 dBm)
			* 2472 MHz [13] (20.0 dBm)
			* 2484 MHz [14] (disabled)
		Bitrates (non-HT):
			* 1.0 Mbps
			* 2.0 Mbps (short preamble supported)
			...
			* 48.0 Mbps
			* 54.0 Mbps

in the line that says HT TX/RX MCS rate indexes supported: 0-7?

If I am correct, does that mean that if I receive a data frame at MCS rate index 5 and I have 0-7 in my supported MCS rate index set, then I will send the ack with MCS rate index 5?

If this is incorrect, is there a way to verify what the specific rate I am sending an ack with?

Best,
Lars


4. aug. 2013 kl. 12:46 skrev Sujith Manoharan <sujith@msujith.org>:

> Lars Kristian R Johansen wrote:
>> I am quite new to both mac80211 and ath9k, but I have written my own rate
>> control algorithm (for testing purposes) and can't seem to figure out how to
>> adjust the rate for the acknowledgments.
>> 
>> I would like to be able to at least know the rate for the acknowledgments
>> (which I currently do not know), but even better to be able to adjust it as I
>> want it to.
> 
> Acknowledgments (both legacy and HT/BlockAck) are sent by the HW and is
> not controlled by the driver. The rates for the ACK frames are defined in
> the IEEE 802.11 specification.
> 
> Sujith

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ath9k-devel] How to adjust/know rate for acknowledgments?
  2013-08-04 18:12   ` Lars Kristian R Johansen
@ 2013-08-05  6:34     ` Sujith Manoharan
  2013-08-05  6:38       ` Sujith Manoharan
  2013-09-03  4:42       ` Janboe Ye
  0 siblings, 2 replies; 7+ messages in thread
From: Sujith Manoharan @ 2013-08-05  6:34 UTC (permalink / raw)
  To: ath9k-devel

Lars Kristian R Johansen wrote:
> The ack should be sent with the highest possible rate restricted by these two
> conditions, whichever is lower:
> - the rates in the stations basic rate set
> - rate of the data frame that is being acked

I believe the spec. is more complicated than that. :-)

> If I am correct, does that mean that if I receive a data frame at MCS rate
> index 5 and I have 0-7 in my supported MCS rate index set, then I will send
> the ack with MCS rate index 5?

An ACK can be sent either as a HT or a non-HT frame. If all the conditions that 
allow HT control frames to be sent are met, then MCS rate determination is done
according to the rules in 9.7.6.5.3

For non-HT control frames, the table 9.7.9 is used.

In the draft-11n days, I think there was a programmable ACK rate table in
the HW, which was removed once the spec. was finalized.

> If this is incorrect, is there a way to verify what the specific rate I am
> sending an ack with?

An external sniffer can be used to capture control frames, by setting the
required monitor interface flags:

iw help set monitor
Commands:
        dev <devname> set monitor <flag>*
                Set monitor flags. Valid flags are:
                none:     no special flags
                fcsfail:  show frames with FCS errors
                control:  show control frames
                otherbss: show frames from other BSSes
                cook:     use cooked mode
                active:   use active mode (ACK incoming unicast packets)


Sujith

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ath9k-devel] How to adjust/know rate for acknowledgments?
  2013-08-05  6:34     ` Sujith Manoharan
@ 2013-08-05  6:38       ` Sujith Manoharan
  2013-09-03  4:42       ` Janboe Ye
  1 sibling, 0 replies; 7+ messages in thread
From: Sujith Manoharan @ 2013-08-05  6:38 UTC (permalink / raw)
  To: ath9k-devel

CC'ing Jouni for some clarification...

Sujith Manoharan wrote:
> Lars Kristian R Johansen wrote:
> > The ack should be sent with the highest possible rate restricted by these two
> > conditions, whichever is lower:
> > - the rates in the stations basic rate set
> > - rate of the data frame that is being acked
> 
> I believe the spec. is more complicated than that. :-)
> 
> > If I am correct, does that mean that if I receive a data frame at MCS rate
> > index 5 and I have 0-7 in my supported MCS rate index set, then I will send
> > the ack with MCS rate index 5?
> 
> An ACK can be sent either as a HT or a non-HT frame. If all the conditions that 
> allow HT control frames to be sent are met, then MCS rate determination is done
> according to the rules in 9.7.6.5.3
> 
> For non-HT control frames, the table 9.7.9 is used.
> 
> In the draft-11n days, I think there was a programmable ACK rate table in
> the HW, which was removed once the spec. was finalized.
> 
> > If this is incorrect, is there a way to verify what the specific rate I am
> > sending an ack with?
> 
> An external sniffer can be used to capture control frames, by setting the
> required monitor interface flags:
> 
> iw help set monitor
> Commands:
>         dev <devname> set monitor <flag>*
>                 Set monitor flags. Valid flags are:
>                 none:     no special flags
>                 fcsfail:  show frames with FCS errors
>                 control:  show control frames
>                 otherbss: show frames from other BSSes
>                 cook:     use cooked mode
>                 active:   use active mode (ACK incoming unicast packets)
> 
> 
> Sujith
> _______________________________________________
> ath9k-devel mailing list
> ath9k-devel at lists.ath9k.org
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ath9k-devel] How to adjust/know rate for acknowledgments?
  2013-08-05  6:34     ` Sujith Manoharan
  2013-08-05  6:38       ` Sujith Manoharan
@ 2013-09-03  4:42       ` Janboe Ye
  2013-09-05  5:14         ` Sujith Manoharan
  1 sibling, 1 reply; 7+ messages in thread
From: Janboe Ye @ 2013-09-03  4:42 UTC (permalink / raw)
  To: ath9k-devel

Sujith

which specs you are referencing? Is it 802.11-2007?

Thanks

Janboe


On 13-8-5 ??2:34, Sujith Manoharan wrote:
> Lars Kristian R Johansen wrote:
>> The ack should be sent with the highest possible rate restricted by these two
>> conditions, whichever is lower:
>> - the rates in the stations basic rate set
>> - rate of the data frame that is being acked
> I believe the spec. is more complicated than that. :-)
>
>> If I am correct, does that mean that if I receive a data frame at MCS rate
>> index 5 and I have 0-7 in my supported MCS rate index set, then I will send
>> the ack with MCS rate index 5?
> An ACK can be sent either as a HT or a non-HT frame. If all the conditions that
> allow HT control frames to be sent are met, then MCS rate determination is done
> according to the rules in 9.7.6.5.3
>
> For non-HT control frames, the table 9.7.9 is used.
>
> In the draft-11n days, I think there was a programmable ACK rate table in
> the HW, which was removed once the spec. was finalized.
>
>> If this is incorrect, is there a way to verify what the specific rate I am
>> sending an ack with?
> An external sniffer can be used to capture control frames, by setting the
> required monitor interface flags:
>
> iw help set monitor
> Commands:
>          dev <devname> set monitor <flag>*
>                  Set monitor flags. Valid flags are:
>                  none:     no special flags
>                  fcsfail:  show frames with FCS errors
>                  control:  show control frames
>                  otherbss: show frames from other BSSes
>                  cook:     use cooked mode
>                  active:   use active mode (ACK incoming unicast packets)
>
>
> Sujith
> _______________________________________________
> ath9k-devel mailing list
> ath9k-devel at lists.ath9k.org
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ath9k-devel] How to adjust/know rate for acknowledgments?
  2013-09-03  4:42       ` Janboe Ye
@ 2013-09-05  5:14         ` Sujith Manoharan
  0 siblings, 0 replies; 7+ messages in thread
From: Sujith Manoharan @ 2013-09-05  5:14 UTC (permalink / raw)
  To: ath9k-devel

Janboe Ye wrote:
> which specs you are referencing? Is it 802.11-2007?

802.11-2012.

Sujith

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-09-05  5:14 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-04 16:00 [ath9k-devel] How to adjust/know rate for acknowledgments? Lars Kristian R Johansen
2013-08-04 16:46 ` Sujith Manoharan
2013-08-04 18:12   ` Lars Kristian R Johansen
2013-08-05  6:34     ` Sujith Manoharan
2013-08-05  6:38       ` Sujith Manoharan
2013-09-03  4:42       ` Janboe Ye
2013-09-05  5:14         ` Sujith Manoharan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.