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< a2ab...@uwaterloo.ca >
To : ath9k-devel< ath9k-de...@venema.h4ckr.net >
CC : Kamran Nishat< kamran.nis...@gmail.com >,Shinnazar< seytnazarov...@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 <seytnazarov...@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< a2ab...@uwaterloo.ca >
To : ath9k-de...@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@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 <a2ab...@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
                                                
                                              


On Tue, Jan 21, 2014 at 11:49 PM, Ali Abedi <a2ab...@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@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel






_______________________________________________
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel







_______________________________________________
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel








_______________________________________________
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel

Reply via email to