All of lore.kernel.org
 help / color / mirror / Atom feed
* [ath9k-devel] How to lock AMPDU length at a specific value?
@ 2014-01-21 18:49 Ali Abedi
  2014-01-21 20:07 ` Kamran Nishat
  0 siblings, 1 reply; 15+ messages in thread
From: Ali Abedi @ 2014-01-21 18:49 UTC (permalink / raw)
  To: ath9k-devel

Hello,

I have seen questions regarding the length of an AMPDU and how to change 
the maximum AMPDU length.
However, I require to lock the AMPDU length at a specific value. 
Changing the max length does not guarantee
that all AMPDUs have a fixed length, it can be anything between 1 to max 
based on the rate of arrival of new frames.
Is there a mechanism to force the card to wait to have enough frames so 
that all AMPDUs have a fixed length that we specify? In other words, I 
need all AMPDUs to aggregate X full length frames.

Thank you,
Ali

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
  2014-01-21 18:49 [ath9k-devel] How to lock AMPDU length at a specific value? Ali Abedi
@ 2014-01-21 20:07 ` Kamran Nishat
  2014-01-21 20:54   ` Ali Abedi
  0 siblings, 1 reply; 15+ messages in thread
From: Kamran Nishat @ 2014-01-21 20:07 UTC (permalink / raw)
  To: ath9k-devel

As far as i know AMPDU length is determined by 3 constraints. Firs maximum
AMPDU length. second blockAck window (if there were losses then this will
play a role).  Third is Max air time of the AMPDU which is 4ms for some
domain constraints. this comes into play MCS is low and packet duration
gets more than 4ms. See following function in xmit.c for details

ath_tx_form_aggr <http://lxr.free-electrons.com/ident?i=ath_tx_form_aggr>



On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi <a2abedi@uwaterloo.ca> wrote:

> Hello,
>
> I have seen questions regarding the length of an AMPDU and how to change
> the maximum AMPDU length.
> However, I require to lock the AMPDU length at a specific value.
> Changing the max length does not guarantee
> that all AMPDUs have a fixed length, it can be anything between 1 to max
> based on the rate of arrival of new frames.
> Is there a mechanism to force the card to wait to have enough frames so
> that all AMPDUs have a fixed length that we specify? In other words, I
> need all AMPDUs to aggregate X full length frames.
>
> Thank you,
> Ali
>
> _______________________________________________
> ath9k-devel mailing list
> ath9k-devel at lists.ath9k.org
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140122/78970f47/attachment.htm 

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
  2014-01-21 20:07 ` Kamran Nishat
@ 2014-01-21 20:54   ` Ali Abedi
       [not found]     ` <CADxDmp6_7T2x6bxD95ZLnK-9RZaAzNUXLu6wqdFbJBiP-cECUQ@mail.gmail.com>
  0 siblings, 1 reply; 15+ messages in thread
From: Ali Abedi @ 2014-01-21 20:54 UTC (permalink / raw)
  To: ath9k-devel

These mostly determine the MAX AMPDU length. I also want to determine 
the minimum length, so
that I can set min=max and lock the AMPDU length.

Thank you,
Ali
On 21/01/2014 15:07, Kamran Nishat wrote:
> As far as i know AMPDU length is determined by 3 constraints. Firs 
> maximum AMPDU length. second blockAck window (if there were losses 
> then this will play a role).  Third is Max air time of the AMPDU which 
> is 4ms for some domain constraints. this comes into play MCS is low 
> and packet duration gets more than 4ms. See following function in 
> xmit.c for details
> ath_tx_form_aggr  <http://lxr.free-electrons.com/ident?i=ath_tx_form_aggr>  
>
>
> On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi <a2abedi@uwaterloo.ca 
> <mailto:a2abedi@uwaterloo.ca>> wrote:
>
>     Hello,
>
>     I have seen questions regarding the length of an AMPDU and how to
>     change
>     the maximum AMPDU length.
>     However, I require to lock the AMPDU length at a specific value.
>     Changing the max length does not guarantee
>     that all AMPDUs have a fixed length, it can be anything between 1
>     to max
>     based on the rate of arrival of new frames.
>     Is there a mechanism to force the card to wait to have enough
>     frames so
>     that all AMPDUs have a fixed length that we specify? In other words, I
>     need all AMPDUs to aggregate X full length frames.
>
>     Thank you,
>     Ali
>
>     _______________________________________________
>     ath9k-devel mailing list
>     ath9k-devel at lists.ath9k.org <mailto:ath9k-devel@lists.ath9k.org>
>     https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140121/e4153d00/attachment.htm 

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

* [ath9k-devel] Fwd:  How to lock AMPDU length at a specific value?
       [not found]     ` <CADxDmp6_7T2x6bxD95ZLnK-9RZaAzNUXLu6wqdFbJBiP-cECUQ@mail.gmail.com>
@ 2014-01-21 20:59       ` Kamran Nishat
  2014-01-21 21:40         ` Ali Abedi
  0 siblings, 1 reply; 15+ messages in thread
From: Kamran Nishat @ 2014-01-21 20:59 UTC (permalink / raw)
  To: ath9k-devel

do it at a fix rate  (1st check if duration of packet is less tahn 4ms for
ur MCS) and with nearly zero noise losses.

Kamran


On Wed, Jan 22, 2014 at 1:54 AM, Ali Abedi <a2abedi@uwaterloo.ca> wrote:

>  These mostly determine the MAX AMPDU length. I also want to determine
> the minimum length, so
> that I can set min=max and lock the AMPDU length.
>
> Thank you,
> Ali
>
> On 21/01/2014 15:07, Kamran Nishat wrote:
>
> As far as i know AMPDU length is determined by 3 constraints. Firs maximum
> AMPDU length. second blockAck window (if there were losses then this will
> play a role).  Third is Max air time of the AMPDU which is 4ms for some
> domain constraints. this comes into play MCS is low and packet duration
> gets more than 4ms. See following function in xmit.c for details
>
> ath_tx_form_aggr <http://lxr.free-electrons.com/ident?i=ath_tx_form_aggr>
>
>
>
> On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi <a2abedi@uwaterloo.ca> wrote:
>
>> Hello,
>>
>> I have seen questions regarding the length of an AMPDU and how to change
>> the maximum AMPDU length.
>> However, I require to lock the AMPDU length at a specific value.
>> Changing the max length does not guarantee
>> that all AMPDUs have a fixed length, it can be anything between 1 to max
>> based on the rate of arrival of new frames.
>> Is there a mechanism to force the card to wait to have enough frames so
>> that all AMPDUs have a fixed length that we specify? In other words, I
>> need all AMPDUs to aggregate X full length frames.
>>
>> Thank you,
>> Ali
>>
>> _______________________________________________
>> ath9k-devel mailing list
>> ath9k-devel at lists.ath9k.org
>> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140122/8fbfa22e/attachment.htm 

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

* [ath9k-devel] Fwd: How to lock AMPDU length at a specific value?
  2014-01-21 20:59       ` [ath9k-devel] Fwd: " Kamran Nishat
@ 2014-01-21 21:40         ` Ali Abedi
  0 siblings, 0 replies; 15+ messages in thread
From: Ali Abedi @ 2014-01-21 21:40 UTC (permalink / raw)
  To: ath9k-devel

Using a constant rate does not help (I am already doing this). When I 
set the limit to 20 for example, I get any number between
1 to 20 for the number of aggregated frames. This is probably because 
when we want to start the transmission
we don't always have 20 frames to aggregate so the card aggregates all 
it already has
in the queue ready for transmission. So how can we wait to have 20 
frames ready for transmission so that
all aggregate frames carry exactly 20 frames (constant rate)?

Thank you,
Ali


On 21/01/2014 15:59, Kamran Nishat wrote:
>
>
>
>
> do it at a fix rate  (1st check if duration of packet is less tahn 4ms 
> for ur MCS) and with nearly zero noise losses.
>
> Kamran
>
>
> On Wed, Jan 22, 2014 at 1:54 AM, Ali Abedi <a2abedi@uwaterloo.ca 
> <mailto:a2abedi@uwaterloo.ca>> wrote:
>
>     These mostly determine the MAX AMPDU length. I also want to
>     determine the minimum length, so
>     that I can set min=max and lock the AMPDU length.
>
>     Thank you,
>     Ali
>
>     On 21/01/2014 15:07, Kamran Nishat wrote:
>>     As far as i know AMPDU length is determined by 3 constraints.
>>     Firs maximum AMPDU length. second blockAck window (if there were
>>     losses then this will play a role).  Third is Max air time of the
>>     AMPDU which is 4ms for some domain constraints. this comes into
>>     play MCS is low and packet duration gets more than 4ms. See
>>     following function in xmit.c for details
>>     ath_tx_form_aggr  <http://lxr.free-electrons.com/ident?i=ath_tx_form_aggr>  
>>
>>
>>     On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi <a2abedi@uwaterloo.ca
>>     <mailto:a2abedi@uwaterloo.ca>> wrote:
>>
>>         Hello,
>>
>>         I have seen questions regarding the length of an AMPDU and
>>         how to change
>>         the maximum AMPDU length.
>>         However, I require to lock the AMPDU length at a specific value.
>>         Changing the max length does not guarantee
>>         that all AMPDUs have a fixed length, it can be anything
>>         between 1 to max
>>         based on the rate of arrival of new frames.
>>         Is there a mechanism to force the card to wait to have enough
>>         frames so
>>         that all AMPDUs have a fixed length that we specify? In other
>>         words, I
>>         need all AMPDUs to aggregate X full length frames.
>>
>>         Thank you,
>>         Ali
>>
>>         _______________________________________________
>>         ath9k-devel mailing list
>>         ath9k-devel at lists.ath9k.org <mailto:ath9k-devel@lists.ath9k.org>
>>         https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>>
>
>
>
>
>
> _______________________________________________
> ath9k-devel mailing list
> ath9k-devel at lists.ath9k.org
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140121/b0b80ce2/attachment-0001.htm 

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
  2014-01-26 16:25       ` Ali Abedi
@ 2014-01-26 18:55         ` Kamran Nishat
  0 siblings, 0 replies; 15+ messages in thread
From: Kamran Nishat @ 2014-01-26 18:55 UTC (permalink / raw)
  To: ath9k-devel

Thank you. I checked  ath_tx_form_aggr() and the condition that checks:
do not step over block-ack window
causes the A-MPDU length limitation. So is there anything to do to force
max A-MPDU length?
*YES! we told you earlier if link is lossy then this limit will not let
AMPDU to increase.*
Does setting retry to 1 solves this problem? My understanding is that if
retry is 1 then we move the BA window
anyway (regardless of frame error) by 32 each time. Is this right?

*As far as we know HW does the AMPDU retries. while SW retries are
done if **ATH_MAX_SW_RETRIES
is not achieved( ath_tx_complete_aggr in xmit.c**)  *


On Sun, Jan 26, 2014 at 9:25 PM, Ali Abedi <a2abedi@uwaterloo.ca> wrote:

>  Thank you. I checked  ath_tx_form_aggr() and the condition that checks:
> do not step over block-ack window
> causes the A-MPDU length limitation. So is there anything to do to force
> max A-MPDU length?
> Does setting retry to 1 solves this problem? My understanding is that if
> retry is 1 then we move the BA window
> anyway (regardless of frame error) by 32 each time. Is this right?
>
> Thanks,
> Ali
>
>
> On 22/01/2014 11:02, Kamran Nishat wrote:
>
>  Check if they are probe or not. Probes can have different size. other
> thing but prints in  ath_tx_form_aggr() as i mentioned before check which
> condition is stopping the loop.
> One more thing there are some losses. In case of losses BlockAck window
> BAW will stop aggregate from growing.
> kamran
>
>
> On Wed, Jan 22, 2014 at 8:51 PM, Ali Abedi <a2abedi@uwaterloo.ca> wrote:
>
>>  Thanks for all the replies.
>> Sorry for not mentioning that I actually saturate the link. I use iperf
>> and I set the application data rate
>> to something way more that the mac throughput. The strange thing is that
>> not all A-MPDUs are at the maximum size.
>>
>> Here is some results I got from the driver for different max A-MPDU sizes
>> (High app data rate).
>>
>> left column is #frames and the column is #bad-frames
>> Mac data rate = 65 Mbps fixed.
>> App data rate = 100 Mbps
>>
>> I directly print these stats from xmit.c in ath_tx_complete_agg(), after
>> the call to function ath_tx_count_frames().
>> I print nframes and nbad variables.
>>
>> max A-mpdu size = 10 * 1550 B
>> 10    0
>> 10    0
>> 10    0
>> 10    0
>> 10    0
>> 10    0
>> 10    0
>> 10    0
>> 10    0
>>
>> Everything is fine all A-MPDUs have 10 frames
>> -----------------------
>> max A-mpdu size = 20 * 1550 B
>> 20    0
>> 20    0
>> 20    0
>> 9    0
>> 20    0
>> 20    0
>> 1    0
>> 20    0
>> 20    0
>> 8    0
>> 20    0
>>
>> Sometimes a-mpdus with fewer frames than 20
>> -----------------------
>> Max A-mpdu size = 32 * 1550 B
>> 8    0
>> 32    0
>> 2    0
>> 32    32
>> 3    0
>> 32    0
>> 1    0
>> 32    0
>> 4    4
>> 1    0
>> 32    32
>>
>> It happens even more frequently.
>>
>> Is there a solution to this problem?
>>
>> Thank you,
>> Ali
>>
>>
>>
>> On 14-01-22 02:08 AM, Kamran Nishat wrote:
>>
>> Yeah,
>> My initial  premise was  that u have saturated traffic from upper layers.
>> But now I think u have some application level requirements (data rate is
>> less than max PHY rate).
>> In this case I would advise you to add wait in mac80211. Because as far
>> as I know ath9k driven by its calls and calls by driver.
>>
>>  Regards,
>> kamran
>>
>>
>> On Wed, Jan 22, 2014 at 10:19 AM, Shinnazar <seytnazarovsho@ynu.ac.kr>wrote:
>>
>>> Hi Ali,
>>>
>>> If I were you, I would try to make the Software queue always full of
>>> frames and then specify ampdu lenfth in ath_tx_form_aggr().
>>>
>>>  BR,
>>> Shinnazar
>>>
>>>  --- Original Message ---
>>>  *From : *Ali Abedi< a2abedi@uwaterloo.ca >
>>> *To : *ath9k-devel at venema.h4ckr.net
>>> *CC : *
>>> *Sent : *2014-01-22 06:40:18
>>> *Subject : *Re: [ath9k-devel] Fwd: How to lock AMPDU length at a
>>> specific value?
>>>
>>>
>>> _______________________________________________
>>> ath9k-devel mailing listath9k-devel at lists.ath9k.orghttps://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>
>>> Using a constant rate does not help (I am already doing this). When I
>>> set the limit to 20 for example, I get any number between
>>> 1 to 20 for the number of aggregated frames. This is probably because
>>> when we want to start the transmission
>>> we don't always have 20 frames to aggregate so the card aggregates all
>>> it already has
>>> in the queue ready for transmission. So how can we wait to have 20
>>> frames ready for transmission so that
>>> all aggregate frames carry exactly 20 frames (constant rate)?
>>>
>>> Thank you,
>>> Ali
>>>
>>>
>>> On 21/01/2014 15:59, Kamran Nishat wrote:
>>>
>>>
>>>
>>>
>>>
>>> do it at a fix rate  (1st check if duration of packet is less tahn 4ms
>>> for ur MCS) and with nearly zero noise losses.
>>>
>>>  Kamran
>>>
>>>
>>>  On Wed, Jan 22, 2014 at 1:54 AM, Ali Abedi <a2abedi@uwaterloo.ca>wrote:
>>>
>>>>  These mostly determine the MAX AMPDU length. I also want to determine
>>>> the minimum length, so
>>>> that I can set min=max and lock the AMPDU length.
>>>>
>>>> Thank you,
>>>> Ali
>>>>
>>>> On 21/01/2014 15:07, Kamran Nishat wrote:
>>>>
>>>> As far as i know AMPDU length is determined by 3 constraints. Firs maximum
>>>> AMPDU length. second blockAck window (if there were losses then this will
>>>> play a role).  Third is Max air time of the AMPDU which is 4ms for some
>>>> domain constraints. this comes into play MCS is low and packet duration
>>>> gets more than 4ms. See following function in xmit.c for details
>>>>
>>>> ath_tx_form_aggr <http://lxr.free-electrons.com/ident?i=ath_tx_form_aggr>
>>>>
>>>>
>>>>
>>>> On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi <a2abedi@uwaterloo.ca>wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> I have seen questions regarding the length of an AMPDU and how to
>>>>> change
>>>>> the maximum AMPDU length.
>>>>> However, I require to lock the AMPDU length at a specific value.
>>>>> Changing the max length does not guarantee
>>>>> that all AMPDUs have a fixed length, it can be anything between 1 to
>>>>> max
>>>>> based on the rate of arrival of new frames.
>>>>> Is there a mechanism to force the card to wait to have enough frames so
>>>>> that all AMPDUs have a fixed length that we specify? In other words, I
>>>>> need all AMPDUs to aggregate X full length frames.
>>>>>
>>>>> Thank you,
>>>>> Ali
>>>>>
>>>>> _______________________________________________
>>>>> ath9k-devel mailing list
>>>>> ath9k-devel at lists.ath9k.org
>>>>> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> ath9k-devel mailing listath9k-devel at lists.ath9k.orghttps://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> ath9k-devel mailing list
>>> ath9k-devel at lists.ath9k.org
>>> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>
>>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140126/94f3d57f/attachment-0001.htm 

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
  2014-01-22 16:02     ` Kamran Nishat
  2014-01-22 16:35       ` Ruwaifa Anwar
@ 2014-01-26 16:25       ` Ali Abedi
  2014-01-26 18:55         ` Kamran Nishat
  1 sibling, 1 reply; 15+ messages in thread
From: Ali Abedi @ 2014-01-26 16:25 UTC (permalink / raw)
  To: ath9k-devel

Thank you. I checked ath_tx_form_aggr() and the condition that checks:
do not step over block-ack window
causes the A-MPDU length limitation. So is there anything to do to force 
max A-MPDU length?
Does setting retry to 1 solves this problem? My understanding is that if 
retry is 1 then we move the BA window
anyway (regardless of frame error) by 32 each time. Is this right?

Thanks,
Ali

On 22/01/2014 11:02, Kamran Nishat wrote:
> Check if they are probe or not. Probes can have different size. other 
> thing but prints in  ath_tx_form_aggr() as i mentioned before check 
> which condition is stopping the loop.
> One more thing there are some losses. In case of losses BlockAck 
> window BAW will stop aggregate from growing.
> kamran
>
>
> On Wed, Jan 22, 2014 at 8:51 PM, Ali Abedi <a2abedi@uwaterloo.ca 
> <mailto:a2abedi@uwaterloo.ca>> wrote:
>
>     Thanks for all the replies.
>     Sorry for not mentioning that I actually saturate the link. I use
>     iperf and I set the application data rate
>     to something way more that the mac throughput. The strange thing
>     is that not all A-MPDUs are at the maximum size.
>
>     Here is some results I got from the driver for different max
>     A-MPDU sizes (High app data rate).
>
>     left column is #frames and the column is #bad-frames
>     Mac data rate = 65 Mbps fixed.
>     App data rate = 100 Mbps
>
>     I directly print these stats from xmit.c in ath_tx_complete_agg(),
>     after the call to function ath_tx_count_frames().
>     I print nframes and nbad variables.
>
>     max A-mpdu size = 10 * 1550 B
>     10    0
>     10    0
>     10    0
>     10    0
>     10    0
>     10    0
>     10    0
>     10    0
>     10    0
>
>     Everything is fine all A-MPDUs have 10 frames
>     -----------------------
>     max A-mpdu size = 20 * 1550 B
>     20    0
>     20    0
>     20    0
>     9    0
>     20    0
>     20    0
>     1    0
>     20    0
>     20    0
>     8    0
>     20    0
>
>     Sometimes a-mpdus with fewer frames than 20
>     -----------------------
>     Max A-mpdu size = 32 * 1550 B
>     8    0
>     32    0
>     2    0
>     32    32
>     3    0
>     32    0
>     1    0
>     32    0
>     4    4
>     1    0
>     32    32
>
>     It happens even more frequently.
>
>     Is there a solution to this problem?
>
>     Thank you,
>     Ali
>
>
>
>     On 14-01-22 02:08 AM, Kamran Nishat wrote:
>>     Yeah,
>>     My initial  premise was  that u have saturated traffic from upper
>>     layers. But now I think u have some application level
>>     requirements (data rate is less than max PHY rate).
>>     In this case I would advise you to add wait in mac80211. Because
>>     as far as I know ath9k driven by its calls and calls by driver.
>>
>>     Regards,
>>     kamran
>>
>>
>>     On Wed, Jan 22, 2014 at 10:19 AM, Shinnazar
>>     <seytnazarovsho at ynu.ac.kr <mailto:seytnazarovsho@ynu.ac.kr>> wrote:
>>
>>         Hi Ali,
>>
>>         If I were you, I would try to make the Software queue always
>>         full of frames and then specify ampdu lenfth in
>>         ath_tx_form_aggr().
>>
>>         BR,
>>         Shinnazar
>>
>>             --- Original Message ---
>>             *From : *Ali Abedi< a2abedi@uwaterloo.ca
>>             <mailto:a2abedi@uwaterloo.ca> >
>>             *To : *ath9k-devel at venema.h4ckr.net
>>             <mailto:ath9k-devel@venema.h4ckr.net>
>>             *CC : *
>>             *Sent : *2014-01-22 06:40:18
>>             *Subject : *Re: [ath9k-devel] Fwd: How to lock AMPDU
>>             length at a specific value?
>>
>>
>>             _______________________________________________
>>             ath9k-devel mailing list
>>             ath9k-devel at lists.ath9k.org  <mailto:ath9k-devel@lists.ath9k.org>
>>             https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>>             Using a constant rate does not help (I am already doing
>>             this). When I set the limit to 20 for example, I get any
>>             number between
>>             1 to 20 for the number of aggregated frames. This is
>>             probably because when we want to start the transmission
>>             we don't always have 20 frames to aggregate so the card
>>             aggregates all it already has
>>             in the queue ready for transmission. So how can we wait
>>             to have 20 frames ready for transmission so that
>>             all aggregate frames carry exactly 20 frames (constant rate)?
>>
>>             Thank you,
>>             Ali
>>
>>
>>             On 21/01/2014 15:59, Kamran Nishat wrote:
>>>
>>>
>>>
>>>
>>>             do it at a fix rate  (1st check if duration of packet is
>>>             less tahn 4ms for ur MCS) and with nearly zero noise losses.
>>>
>>>             Kamran
>>>
>>>
>>>             On Wed, Jan 22, 2014 at 1:54 AM, Ali Abedi
>>>             <a2abedi at uwaterloo.ca <mailto:a2abedi@uwaterloo.ca>> wrote:
>>>
>>>                 These mostly determine the MAX AMPDU length. I also
>>>                 want to determine the minimum length, so
>>>                 that I can set min=max and lock the AMPDU length.
>>>
>>>                 Thank you,
>>>                 Ali
>>>
>>>                 On 21/01/2014 15:07, Kamran Nishat wrote:
>>>>                 As far as i know AMPDU length is determined by 3
>>>>                 constraints. Firs maximum AMPDU length. second
>>>>                 blockAck window (if there were losses then this
>>>>                 will play a role).  Third is Max air time of the
>>>>                 AMPDU which is 4ms for some domain constraints.
>>>>                 this comes into play MCS is low and packet duration
>>>>                 gets more than 4ms. See following function in
>>>>                 xmit.c for details
>>>>                 ath_tx_form_aggr  <http://lxr.free-electrons.com/ident?i=ath_tx_form_aggr>  
>>>>
>>>>
>>>>                 On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi
>>>>                 <a2abedi@uwaterloo.ca
>>>>                 <mailto:a2abedi@uwaterloo.ca>> wrote:
>>>>
>>>>                     Hello,
>>>>
>>>>                     I have seen questions regarding the length of
>>>>                     an AMPDU and how to change
>>>>                     the maximum AMPDU length.
>>>>                     However, I require to lock the AMPDU length at
>>>>                     a specific value.
>>>>                     Changing the max length does not guarantee
>>>>                     that all AMPDUs have a fixed length, it can be
>>>>                     anything between 1 to max
>>>>                     based on the rate of arrival of new frames.
>>>>                     Is there a mechanism to force the card to wait
>>>>                     to have enough frames so
>>>>                     that all AMPDUs have a fixed length that we
>>>>                     specify? In other words, I
>>>>                     need all AMPDUs to aggregate X full length frames.
>>>>
>>>>                     Thank you,
>>>>                     Ali
>>>>
>>>>                     _______________________________________________
>>>>                     ath9k-devel mailing list
>>>>                     ath9k-devel at lists.ath9k.org
>>>>                     <mailto:ath9k-devel@lists.ath9k.org>
>>>>                     https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>>             _______________________________________________
>>>             ath9k-devel mailing list
>>>             ath9k-devel at lists.ath9k.org  <mailto:ath9k-devel@lists.ath9k.org>
>>>             https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>>
>>
>>
>>
>>
>>
>>         _______________________________________________
>>         ath9k-devel mailing list
>>         ath9k-devel at lists.ath9k.org <mailto:ath9k-devel@lists.ath9k.org>
>>         https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140126/879ea50c/attachment-0001.htm 

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
  2014-01-23  5:06 Shinnazar
@ 2014-01-26 15:12 ` Ali Abedi
  0 siblings, 0 replies; 15+ messages in thread
From: Ali Abedi @ 2014-01-26 15:12 UTC (permalink / raw)
  To: ath9k-devel

Hi,

Thank you for your reply. This fixed half of the problem. If the link
quality is good all A-MPDUs are
at the maximum length, however if the link quality is not good (high
error) many A-MPDUs are smaller than
the maximum A-MPDU length. As mentioned before it has something to do
with the block ack window.
If I set retry limit to 1 shouldn't this fix the problem? This way we
don't care what happens to the frame, as we wont retransmit anyways.

I have modified the minstrel_ht to lock the retry at 1 (i.e.,
ar[0].count = 1, and ar[1].idx=-1 ar[1].count=0).
However the printk in tx_status sometimes shows attempts higher than 1.
Why is that?

Thank you,
Ali

On 23/01/2014 00:06, Shinnazar wrote:
> Hi Ali,
>
> Iperf has some strange behavior like this. Now you try to run 2 or 3
> parallel iperf threads, for example smth like this: iperf -c "Receiver
> address" -u -t 10 -i 1 -b 50m -p 2. Hope this will help.
>
> BE,
> Shinnazar
>
>     --- Original Message ---
>     *From : *Ali Abedi< a2abedi@uwaterloo.ca >
>     *To : *ath9k-devel< ath9k-devel@venema.h4ckr.net >
>     *CC : *Kamran Nishat< kamran.nishat@gmail.com >,Shinnazar<
>     seytnazarovsho at ynu.ac.kr >
>     *Sent : *2014-01-23 00:51:23
>     *Subject : *Re: [ath9k-devel] How to lock AMPDU length at a
>     specific value?
>
>     Thanks for all the replies.
>     Sorry for not mentioning that I actually saturate the link. I use
>     iperf and I set the application data rate
>     to something way more that the mac throughput. The strange thing
>     is that not all A-MPDUs are at the maximum size.
>
>     Here is some results I got from the driver for different max
>     A-MPDU sizes (High app data rate).
>
>     left column is #frames and the column is #bad-frames
>     Mac data rate = 65 Mbps fixed.
>     App data rate = 100 Mbps
>
>     I directly print these stats from xmit.c in ath_tx_complete_agg(),
>     after the call to function ath_tx_count_frames().
>     I print nframes and nbad variables.
>
>     max A-mpdu size = 10 * 1550 B
>     10 0
>     10 0
>     10 0
>     10 0
>     10 0
>     10 0
>     10 0
>     10 0
>     10 0
>
>     Everything is fine all A-MPDUs have 10 frames
>     -----------------------
>     max A-mpdu size = 20 * 1550 B
>     20 0
>     20 0
>     20 0
>     9 0
>     20 0
>     20 0
>     1 0
>     20 0
>     20 0
>     8 0
>     20 0
>
>     Sometimes a-mpdus with fewer frames than 20
>     -----------------------
>     Max A-mpdu size = 32 * 1550 B
>     8 0
>     32 0
>     2 0
>     32 32
>     3 0
>     32 0
>     1 0
>     32 0
>     4 4
>     1 0
>     32 32
>
>     It happens even more frequently.
>
>     Is there a solution to this problem?
>
>     Thank you,
>     Ali
>
>
>     On 14-01-22 02:08 AM, Kamran Nishat wrote:
>>     Yeah,
>>     My initial premise was that u have saturated traffic from upper
>>     layers. But now I think u have some application level
>>     requirements (data rate is less than max PHY rate).
>>     In this case I would advise you to add wait in mac80211. Because
>>     as far as I know ath9k driven by its calls and calls by driver.
>>
>>     Regards,
>>     kamran
>>
>>
>>     On Wed, Jan 22, 2014 at 10:19 AM, Shinnazar
>>     <seytnazarovsho at ynu.ac.kr <mailto:seytnazarovsho@ynu.ac.kr>> wrote:
>>
>>         Hi Ali,
>>
>>         If I were you, I would try to make the Software queue always
>>         full of frames and then specify ampdu lenfth in
>>         ath_tx_form_aggr().
>>
>>         BR,
>>         Shinnazar
>>
>>             --- Original Message ---
>>             *From : *Ali Abedi< a2abedi@uwaterloo.ca
>>             <mailto:a2abedi@uwaterloo.ca> >
>>             *To : *ath9k-devel at venema.h4ckr.net
>>             <mailto:ath9k-devel@venema.h4ckr.net>
>>             *CC : *
>>             *Sent : *2014-01-22 06:40:18
>>             *Subject : *Re: [ath9k-devel] Fwd: How to lock AMPDU
>>             length at a specific value?
>>
>>
>>             _______________________________________________
>>             ath9k-devel mailing list
>>             ath9k-devel at lists.ath9k.org <mailto:ath9k-devel@lists.ath9k.org>
>>             https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>>             Using a constant rate does not help (I am already doing
>>             this). When I set the limit to 20 for example, I get any
>>             number between
>>             1 to 20 for the number of aggregated frames. This is
>>             probably because when we want to start the transmission
>>             we don't always have 20 frames to aggregate so the card
>>             aggregates all it already has
>>             in the queue ready for transmission. So how can we wait
>>             to have 20 frames ready for transmission so that
>>             all aggregate frames carry exactly 20 frames (constant rate)?
>>
>>             Thank you,
>>             Ali
>>
>>
>>             On 21/01/2014 15:59, Kamran Nishat wrote:
>>>
>>>
>>>
>>>
>>>             do it at a fix rate (1st check if duration of packet is
>>>             less tahn 4ms for ur MCS) and with nearly zero noise losses.
>>>
>>>             Kamran
>>>
>>>
>>>             On Wed, Jan 22, 2014 at 1:54 AM, Ali Abedi
>>>             <a2abedi at uwaterloo.ca <mailto:a2abedi@uwaterloo.ca>> wrote:
>>>
>>>                 These mostly determine the MAX AMPDU length. I also
>>>                 want to determine the minimum length, so
>>>                 that I can set min=max and lock the AMPDU length.
>>>
>>>                 Thank you,
>>>                 Ali
>>>
>>>                 On 21/01/2014 15:07, Kamran Nishat wrote:
>>>>                 As far as i know AMPDU length is determined by 3
>>>>                 constraints. Firs maximum AMPDU length. second
>>>>                 blockAck window (if there were losses then this
>>>>                 will play a role). Third is Max air time of the
>>>>                 AMPDU which is 4ms for some domain constraints.
>>>>                 this comes into play MCS is low and packet duration
>>>>                 gets more than 4ms. See following function in
>>>>                 xmit.c for details
>>>>                 ath_tx_form_aggr <http://lxr.free-electrons.com/ident?i=ath_tx_form_aggr> 
>>>>
>>>>
>>>>                 On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi
>>>>                 <a2abedi@uwaterloo.ca
>>>>                 <mailto:a2abedi@uwaterloo.ca>> wrote:
>>>>
>>>>                     Hello,
>>>>
>>>>                     I have seen questions regarding the length of
>>>>                     an AMPDU and how to change
>>>>                     the maximum AMPDU length.
>>>>                     However, I require to lock the AMPDU length at
>>>>                     a specific value.
>>>>                     Changing the max length does not guarantee
>>>>                     that all AMPDUs have a fixed length, it can be
>>>>                     anything between 1 to max
>>>>                     based on the rate of arrival of new frames.
>>>>                     Is there a mechanism to force the card to wait
>>>>                     to have enough frames so
>>>>                     that all AMPDUs have a fixed length that we
>>>>                     specify? In other words, I
>>>>                     need all AMPDUs to aggregate X full length frames.
>>>>
>>>>                     Thank you,
>>>>                     Ali
>>>>
>>>>                     _______________________________________________
>>>>                     ath9k-devel mailing list
>>>>                     ath9k-devel at lists.ath9k.org
>>>>                     <mailto:ath9k-devel@lists.ath9k.org>
>>>>                     https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>>             _______________________________________________
>>>             ath9k-devel mailing list
>>>             ath9k-devel at lists.ath9k.org <mailto:ath9k-devel@lists.ath9k.org>
>>>             https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>>
>>
>>
>>
>>
>>
>>         _______________________________________________
>>         ath9k-devel mailing list
>>         ath9k-devel at lists.ath9k.org <mailto:ath9k-devel@lists.ath9k.org>
>>         https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>>
>
>
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140126/08a61217/attachment-0001.htm 

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
@ 2014-01-23  5:19 Shinnazar
  0 siblings, 0 replies; 15+ messages in thread
From: Shinnazar @ 2014-01-23  5:19 UTC (permalink / raw)
  To: ath9k-devel

An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140123/3ce3c180/attachment-0001.htm 

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
@ 2014-01-23  5:06 Shinnazar
  2014-01-26 15:12 ` Ali Abedi
  0 siblings, 1 reply; 15+ messages in thread
From: Shinnazar @ 2014-01-23  5:06 UTC (permalink / raw)
  To: ath9k-devel

An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140123/261381a5/attachment.htm 

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
  2014-01-22 16:02     ` Kamran Nishat
@ 2014-01-22 16:35       ` Ruwaifa Anwar
  2014-01-26 16:25       ` Ali Abedi
  1 sibling, 0 replies; 15+ messages in thread
From: Ruwaifa Anwar @ 2014-01-22 16:35 UTC (permalink / raw)
  To: ath9k-devel

yup, block-ack window limit appears to be the main culprit behind your 
reduced 
ampdu lengths. Check ath_tx_form_aggr, there is an if-condition specifically 
checking whether your are exceeding block-ack window or not. If your sending 
rate is quite high then increased lossess might trigger this condition quite 
frequently

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
  2014-01-22 15:51   ` Ali Abedi
@ 2014-01-22 16:02     ` Kamran Nishat
  2014-01-22 16:35       ` Ruwaifa Anwar
  2014-01-26 16:25       ` Ali Abedi
  0 siblings, 2 replies; 15+ messages in thread
From: Kamran Nishat @ 2014-01-22 16:02 UTC (permalink / raw)
  To: ath9k-devel

Check if they are probe or not. Probes can have different size. other thing
but prints in  ath_tx_form_aggr() as i mentioned before check which
condition is stopping the loop.
One more thing there are some losses. In case of losses BlockAck window BAW
will stop aggregate from growing.
kamran


On Wed, Jan 22, 2014 at 8:51 PM, Ali Abedi <a2abedi@uwaterloo.ca> wrote:

>  Thanks for all the replies.
> Sorry for not mentioning that I actually saturate the link. I use iperf
> and I set the application data rate
> to something way more that the mac throughput. The strange thing is that
> not all A-MPDUs are at the maximum size.
>
> Here is some results I got from the driver for different max A-MPDU sizes
> (High app data rate).
>
> left column is #frames and the column is #bad-frames
> Mac data rate = 65 Mbps fixed.
> App data rate = 100 Mbps
>
> I directly print these stats from xmit.c in ath_tx_complete_agg(), after
> the call to function ath_tx_count_frames().
> I print nframes and nbad variables.
>
> max A-mpdu size = 10 * 1550 B
> 10    0
> 10    0
> 10    0
> 10    0
> 10    0
> 10    0
> 10    0
> 10    0
> 10    0
>
> Everything is fine all A-MPDUs have 10 frames
> -----------------------
> max A-mpdu size = 20 * 1550 B
> 20    0
> 20    0
> 20    0
> 9    0
> 20    0
> 20    0
> 1    0
> 20    0
> 20    0
> 8    0
> 20    0
>
> Sometimes a-mpdus with fewer frames than 20
> -----------------------
> Max A-mpdu size = 32 * 1550 B
> 8    0
> 32    0
> 2    0
> 32    32
> 3    0
> 32    0
> 1    0
> 32    0
> 4    4
> 1    0
> 32    32
>
> It happens even more frequently.
>
> Is there a solution to this problem?
>
> Thank you,
> Ali
>
>
>
> On 14-01-22 02:08 AM, Kamran Nishat wrote:
>
> Yeah,
> My initial  premise was  that u have saturated traffic from upper layers.
> But now I think u have some application level requirements (data rate is
> less than max PHY rate).
> In this case I would advise you to add wait in mac80211. Because as far as
> I know ath9k driven by its calls and calls by driver.
>
>  Regards,
> kamran
>
>
> On Wed, Jan 22, 2014 at 10:19 AM, Shinnazar <seytnazarovsho@ynu.ac.kr>wrote:
>
>> Hi Ali,
>>
>> If I were you, I would try to make the Software queue always full of
>> frames and then specify ampdu lenfth in ath_tx_form_aggr().
>>
>>  BR,
>> Shinnazar
>>
>>  --- Original Message ---
>>  *From : *Ali Abedi< a2abedi@uwaterloo.ca >
>> *To : *ath9k-devel at venema.h4ckr.net
>> *CC : *
>> *Sent : *2014-01-22 06:40:18
>> *Subject : *Re: [ath9k-devel] Fwd: How to lock AMPDU length at a
>> specific value?
>>
>>
>> _______________________________________________
>> ath9k-devel mailing listath9k-devel at lists.ath9k.orghttps://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>> Using a constant rate does not help (I am already doing this). When I set
>> the limit to 20 for example, I get any number between
>> 1 to 20 for the number of aggregated frames. This is probably because
>> when we want to start the transmission
>> we don't always have 20 frames to aggregate so the card aggregates all it
>> already has
>> in the queue ready for transmission. So how can we wait to have 20 frames
>> ready for transmission so that
>> all aggregate frames carry exactly 20 frames (constant rate)?
>>
>> Thank you,
>> Ali
>>
>>
>> On 21/01/2014 15:59, Kamran Nishat wrote:
>>
>>
>>
>>
>>
>> do it at a fix rate  (1st check if duration of packet is less tahn 4ms
>> for ur MCS) and with nearly zero noise losses.
>>
>>  Kamran
>>
>>
>>  On Wed, Jan 22, 2014 at 1:54 AM, Ali Abedi <a2abedi@uwaterloo.ca> wrote:
>>
>>>  These mostly determine the MAX AMPDU length. I also want to determine
>>> the minimum length, so
>>> that I can set min=max and lock the AMPDU length.
>>>
>>> Thank you,
>>> Ali
>>>
>>> On 21/01/2014 15:07, Kamran Nishat wrote:
>>>
>>> As far as i know AMPDU length is determined by 3 constraints. Firs maximum
>>> AMPDU length. second blockAck window (if there were losses then this will
>>> play a role).  Third is Max air time of the AMPDU which is 4ms for some
>>> domain constraints. this comes into play MCS is low and packet duration
>>> gets more than 4ms. See following function in xmit.c for details
>>>
>>> ath_tx_form_aggr <http://lxr.free-electrons.com/ident?i=ath_tx_form_aggr>
>>>
>>>
>>>
>>> On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi <a2abedi@uwaterloo.ca>wrote:
>>>
>>>> Hello,
>>>>
>>>> I have seen questions regarding the length of an AMPDU and how to change
>>>> the maximum AMPDU length.
>>>> However, I require to lock the AMPDU length at a specific value.
>>>> Changing the max length does not guarantee
>>>> that all AMPDUs have a fixed length, it can be anything between 1 to max
>>>> based on the rate of arrival of new frames.
>>>> Is there a mechanism to force the card to wait to have enough frames so
>>>> that all AMPDUs have a fixed length that we specify? In other words, I
>>>> need all AMPDUs to aggregate X full length frames.
>>>>
>>>> Thank you,
>>>> Ali
>>>>
>>>> _______________________________________________
>>>> ath9k-devel mailing list
>>>> ath9k-devel at lists.ath9k.org
>>>> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>>
>>>
>>>
>>>
>>
>>
>>
>> _______________________________________________
>> ath9k-devel mailing listath9k-devel at lists.ath9k.orghttps://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> ath9k-devel mailing list
>> ath9k-devel at lists.ath9k.org
>> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140122/8bbca2af/attachment-0001.htm 

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
  2014-01-22  7:08 ` Kamran Nishat
@ 2014-01-22 15:51   ` Ali Abedi
  2014-01-22 16:02     ` Kamran Nishat
  0 siblings, 1 reply; 15+ messages in thread
From: Ali Abedi @ 2014-01-22 15:51 UTC (permalink / raw)
  To: ath9k-devel

Thanks for all the replies.
Sorry for not mentioning that I actually saturate the link. I use iperf 
and I set the application data rate
to something way more that the mac throughput. The strange thing is that 
not all A-MPDUs are at the maximum size.

Here is some results I got from the driver for different max A-MPDU 
sizes (High app data rate).

left column is #frames and the column is #bad-frames
Mac data rate = 65 Mbps fixed.
App data rate = 100 Mbps

I directly print these stats from xmit.c in ath_tx_complete_agg(), after 
the call to function ath_tx_count_frames().
I print nframes and nbad variables.

max A-mpdu size = 10 * 1550 B
10    0
10    0
10    0
10    0
10    0
10    0
10    0
10    0
10    0

Everything is fine all A-MPDUs have 10 frames
-----------------------
max A-mpdu size = 20 * 1550 B
20    0
20    0
20    0
9    0
20    0
20    0
1    0
20    0
20    0
8    0
20    0

Sometimes a-mpdus with fewer frames than 20
-----------------------
Max A-mpdu size = 32 * 1550 B
8    0
32    0
2    0
32    32
3    0
32    0
1    0
32    0
4    4
1    0
32    32

It happens even more frequently.

Is there a solution to this problem?

Thank you,
Ali


On 14-01-22 02:08 AM, Kamran Nishat wrote:
> Yeah,
> My initial  premise was  that u have saturated traffic from upper 
> layers. But now I think u have some application level requirements 
> (data rate is less than max PHY rate).
> In this case I would advise you to add wait in mac80211. Because as 
> far as I know ath9k driven by its calls and calls by driver.
>
> Regards,
> kamran
>
>
> On Wed, Jan 22, 2014 at 10:19 AM, Shinnazar <seytnazarovsho@ynu.ac.kr 
> <mailto:seytnazarovsho@ynu.ac.kr>> wrote:
>
>     Hi Ali,
>
>     If I were you, I would try to make the Software queue always full
>     of frames and then specify ampdu lenfth in ath_tx_form_aggr().
>
>     BR,
>     Shinnazar
>
>         --- Original Message ---
>         *From : *Ali Abedi< a2abedi@uwaterloo.ca
>         <mailto:a2abedi@uwaterloo.ca> >
>         *To : *ath9k-devel at venema.h4ckr.net
>         <mailto:ath9k-devel@venema.h4ckr.net>
>         *CC : *
>         *Sent : *2014-01-22 06:40:18
>         *Subject : *Re: [ath9k-devel] Fwd: How to lock AMPDU length at
>         a specific value?
>
>
>         _______________________________________________
>         ath9k-devel mailing list
>         ath9k-devel at lists.ath9k.org  <mailto:ath9k-devel@lists.ath9k.org>
>         https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>
>         Using a constant rate does not help (I am already doing this).
>         When I set the limit to 20 for example, I get any number between
>         1 to 20 for the number of aggregated frames. This is probably
>         because when we want to start the transmission
>         we don't always have 20 frames to aggregate so the card
>         aggregates all it already has
>         in the queue ready for transmission. So how can we wait to
>         have 20 frames ready for transmission so that
>         all aggregate frames carry exactly 20 frames (constant rate)?
>
>         Thank you,
>         Ali
>
>
>         On 21/01/2014 15:59, Kamran Nishat wrote:
>>
>>
>>
>>
>>         do it at a fix rate  (1st check if duration of packet is less
>>         tahn 4ms for ur MCS) and with nearly zero noise losses.
>>
>>         Kamran
>>
>>
>>         On Wed, Jan 22, 2014 at 1:54 AM, Ali Abedi
>>         <a2abedi at uwaterloo.ca <mailto:a2abedi@uwaterloo.ca>> wrote:
>>
>>             These mostly determine the MAX AMPDU length. I also want
>>             to determine the minimum length, so
>>             that I can set min=max and lock the AMPDU length.
>>
>>             Thank you,
>>             Ali
>>
>>             On 21/01/2014 15:07, Kamran Nishat wrote:
>>>             As far as i know AMPDU length is determined by 3
>>>             constraints. Firs maximum AMPDU length. second blockAck
>>>             window (if there were losses then this will play a
>>>             role).  Third is Max air time of the AMPDU which is 4ms
>>>             for some domain constraints. this comes into play MCS is
>>>             low and packet duration gets more than 4ms. See
>>>             following function in xmit.c for details
>>>             ath_tx_form_aggr  <http://lxr.free-electrons.com/ident?i=ath_tx_form_aggr>  
>>>
>>>
>>>             On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi
>>>             <a2abedi at uwaterloo.ca <mailto:a2abedi@uwaterloo.ca>> wrote:
>>>
>>>                 Hello,
>>>
>>>                 I have seen questions regarding the length of an
>>>                 AMPDU and how to change
>>>                 the maximum AMPDU length.
>>>                 However, I require to lock the AMPDU length at a
>>>                 specific value.
>>>                 Changing the max length does not guarantee
>>>                 that all AMPDUs have a fixed length, it can be
>>>                 anything between 1 to max
>>>                 based on the rate of arrival of new frames.
>>>                 Is there a mechanism to force the card to wait to
>>>                 have enough frames so
>>>                 that all AMPDUs have a fixed length that we specify?
>>>                 In other words, I
>>>                 need all AMPDUs to aggregate X full length frames.
>>>
>>>                 Thank you,
>>>                 Ali
>>>
>>>                 _______________________________________________
>>>                 ath9k-devel mailing list
>>>                 ath9k-devel at lists.ath9k.org
>>>                 <mailto:ath9k-devel@lists.ath9k.org>
>>>                 https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>
>>>
>>
>>
>>
>>
>>
>>         _______________________________________________
>>         ath9k-devel mailing list
>>         ath9k-devel at lists.ath9k.org  <mailto:ath9k-devel@lists.ath9k.org>
>>         https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>
>
>
>
>
>
>
>     _______________________________________________
>     ath9k-devel mailing list
>     ath9k-devel at lists.ath9k.org <mailto:ath9k-devel@lists.ath9k.org>
>     https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140122/e9b7b211/attachment.htm 

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
  2014-01-22  5:19 [ath9k-devel] " Shinnazar
@ 2014-01-22  7:08 ` Kamran Nishat
  2014-01-22 15:51   ` Ali Abedi
  0 siblings, 1 reply; 15+ messages in thread
From: Kamran Nishat @ 2014-01-22  7:08 UTC (permalink / raw)
  To: ath9k-devel

Yeah,
My initial  premise was  that u have saturated traffic from upper layers.
But now I think u have some application level requirements (data rate is
less than max PHY rate).
In this case I would advise you to add wait in mac80211. Because as far as
I know ath9k driven by its calls and calls by driver.

Regards,
kamran


On Wed, Jan 22, 2014 at 10:19 AM, Shinnazar <seytnazarovsho@ynu.ac.kr>wrote:

> Hi Ali,
>
> If I were you, I would try to make the Software queue always full of
> frames and then specify ampdu lenfth in ath_tx_form_aggr().
>
> BR,
> Shinnazar
>
>  --- Original Message ---
>  *From : *Ali Abedi< a2abedi@uwaterloo.ca >
> *To : *ath9k-devel at venema.h4ckr.net
> *CC : *
> *Sent : *2014-01-22 06:40:18
> *Subject : *Re: [ath9k-devel] Fwd: How to lock AMPDU length at a specific
> value?
>
>
> _______________________________________________
> ath9k-devel mailing listath9k-devel at lists.ath9k.orghttps://lists.ath9k.org/mailman/listinfo/ath9k-devel
>
> Using a constant rate does not help (I am already doing this). When I set
> the limit to 20 for example, I get any number between
> 1 to 20 for the number of aggregated frames. This is probably because when
> we want to start the transmission
> we don't always have 20 frames to aggregate so the card aggregates all it
> already has
> in the queue ready for transmission. So how can we wait to have 20 frames
> ready for transmission so that
> all aggregate frames carry exactly 20 frames (constant rate)?
>
> Thank you,
> Ali
>
>
> On 21/01/2014 15:59, Kamran Nishat wrote:
>
>
>
>
>
> do it at a fix rate  (1st check if duration of packet is less tahn 4ms for
> ur MCS) and with nearly zero noise losses.
>
>  Kamran
>
>
>  On Wed, Jan 22, 2014 at 1:54 AM, Ali Abedi <a2abedi@uwaterloo.ca> wrote:
>
>>  These mostly determine the MAX AMPDU length. I also want to determine
>> the minimum length, so
>> that I can set min=max and lock the AMPDU length.
>>
>> Thank you,
>> Ali
>>
>> On 21/01/2014 15:07, Kamran Nishat wrote:
>>
>> As far as i know AMPDU length is determined by 3 constraints. Firs maximum
>> AMPDU length. second blockAck window (if there were losses then this will
>> play a role).  Third is Max air time of the AMPDU which is 4ms for some
>> domain constraints. this comes into play MCS is low and packet duration
>> gets more than 4ms. See following function in xmit.c for details
>>
>> ath_tx_form_aggr <http://lxr.free-electrons.com/ident?i=ath_tx_form_aggr>
>>
>>
>>
>> On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi <a2abedi@uwaterloo.ca> wrote:
>>
>>> Hello,
>>>
>>> I have seen questions regarding the length of an AMPDU and how to change
>>> the maximum AMPDU length.
>>> However, I require to lock the AMPDU length at a specific value.
>>> Changing the max length does not guarantee
>>> that all AMPDUs have a fixed length, it can be anything between 1 to max
>>> based on the rate of arrival of new frames.
>>> Is there a mechanism to force the card to wait to have enough frames so
>>> that all AMPDUs have a fixed length that we specify? In other words, I
>>> need all AMPDUs to aggregate X full length frames.
>>>
>>> Thank you,
>>> Ali
>>>
>>> _______________________________________________
>>> ath9k-devel mailing list
>>> ath9k-devel at lists.ath9k.org
>>> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>>>
>>
>>
>>
>
>
>
> _______________________________________________
> ath9k-devel mailing listath9k-devel at lists.ath9k.orghttps://lists.ath9k.org/mailman/listinfo/ath9k-devel
>
>
>
>
>
>
>
>
> _______________________________________________
> ath9k-devel mailing list
> ath9k-devel at lists.ath9k.org
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140122/e8417ceb/attachment.htm 

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

* [ath9k-devel] How to lock AMPDU length at a specific value?
@ 2014-01-22  5:19 Shinnazar
  2014-01-22  7:08 ` Kamran Nishat
  0 siblings, 1 reply; 15+ messages in thread
From: Shinnazar @ 2014-01-22  5:19 UTC (permalink / raw)
  To: ath9k-devel

An HTML attachment was scrubbed...
URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20140122/1a0cbe6d/attachment.htm 

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

end of thread, other threads:[~2014-01-26 18:55 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-21 18:49 [ath9k-devel] How to lock AMPDU length at a specific value? Ali Abedi
2014-01-21 20:07 ` Kamran Nishat
2014-01-21 20:54   ` Ali Abedi
     [not found]     ` <CADxDmp6_7T2x6bxD95ZLnK-9RZaAzNUXLu6wqdFbJBiP-cECUQ@mail.gmail.com>
2014-01-21 20:59       ` [ath9k-devel] Fwd: " Kamran Nishat
2014-01-21 21:40         ` Ali Abedi
2014-01-22  5:19 [ath9k-devel] " Shinnazar
2014-01-22  7:08 ` Kamran Nishat
2014-01-22 15:51   ` Ali Abedi
2014-01-22 16:02     ` Kamran Nishat
2014-01-22 16:35       ` Ruwaifa Anwar
2014-01-26 16:25       ` Ali Abedi
2014-01-26 18:55         ` Kamran Nishat
2014-01-23  5:06 Shinnazar
2014-01-26 15:12 ` Ali Abedi
2014-01-23  5:19 Shinnazar

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.