Manually setting AMPDU on N mode?

I can see few questions in here without replies about this topic.
On TP-Link 1043ND for example we have:

Capabilities: 0x11ef
RX LDPC
HT20/HT40
SM Power Save disabled
RX HT20 SGI
RX HT40 SGI
TX STBC
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-23

In the openwrt docs we have info on AC only how to set AMPDU for fine tuning, but nothing regarding N routers or N mode in general.
For N mode there's hostapd setting for tuning AMSDU only.

After analyzing with WireShark, Indeed we have

A-MPDU flags: 0x0004
.... .... .... ...0 = Driver reports 0-length subframes in this A-MPDU: False
.... .... .... ..0. = This is a 0-length subframe: False
.... .... .... .1.. = Last subframe of this A-MPDU is known: True
.... .... .... 0... = This is the last subframe of this A-MPDU: False
.... .... ...0 .... = Delimiter CRC error on this subframe: False
.... .... .0.. .... = EOF on this subframe: False
.... .... 0... .... = EOF of this A-MPDU is known: False

, meaning AMPDU is used.

How to tune it for N mode ?

That's very important step for tuning / less frames overheads.

You manipulated spacing in your example
receive MPDU capability is wildly irrelevant for airtime tuning.

What do you mean?
If you're looking at Capabilities, that's capabilities not a setting AFAIK.
Basically it says the minimum time spacing you can set is 8 usec.

receive MPDU capability is wildly irrelevant for airtime tuning.
I would disagree on that.
Mostly because of this article -> https://www.cwnp.com/802-11n-line-rate-vs-data-rate-part-1-frame-aggregation/

No idea wha% are you trying to achieve using LIES

Capabilities: 0x11ef (popcnt= 9)
1 RX LDPC
2 HT20/HT40
3 SM Power Save disabled
4 RX HT20 SGI
5 RX HT40 SGI
6 TX STBC
7 RX STBC 1-stream
8 Max AMSDU length: 3839 bytes
9 DSSS/CCK HT40
LIAR Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
LIAR Minimum RX AMPDU time spacing: 8 usec (0x06)
LIAR HT TX/RX MCS rate indexes supported: 0-23

Ok, you are spamming from quite a while on important topics ,trying to avoid and ignore VALID points. All the data is screen scraped and I can make a short video just after the "info" command if you think somebody is lying in here.

Yo uare welcome to do it. Remember all fingers but pinkie - nine HT capabilities.

Ill save you time:
image
The hilit thing with wiped indents is not HT capablility.

First of all, you need to have absolutely the same router and hardware version. What makes you think you have the same ?
Secondly here's screenshot.
What makes me liar ??

The line with 65535 is not settable capability. You just left-aligned lines and claimed it is.

What is the settable capability then ?
Assuming we also have this:

So everything seems to be adjustable ? With openwrt - Seems to be not implemented.
Anyway none of this answered the topic how to do manual setting on AMPDU values.

N Protocol provides 2 possible MPDU sizes, ath9k can receive anything. I dont think anyone would implement facility to restrict receiving one or other packet if it is legitimately in the air.

Basically many other routers including mikrotik/routeros as i read about it.
Here's example from some other cheap router
https://svn.dd-wrt.com/attachment/ticket/6007/ampdu.png

Perfomancewise it should be adjustable to control the 802.11 packet size.

N Protocol provides 2 possible MPDU sizes

  • who says that officially ?
    In the article I sent earlier it was set at max 65535 and made huge gains.

https://w1.fi/cgit/hostap/tree/hostapd/hostapd.conf#n625

I've read these already.. hostapd cannot set officially MPDU at all on N protocol and that's the problem. It can only do MSDU.
Soo, somebody had set a hard value somewhere for MPDU in openwrt if the seen 802.11 packets are having MPDU instead of MSDU. I was just hoping there is still way to edit the MPDU values by some tool or something, or at least tell what we are dealing with.

image

I don't understand. What are you trying to tell ?

Not selectable, automatic feature.

Just to visualize your argumentation. I think too @Rick123 is missing some basic frame structure.

2 Likes

MSDU inside MPDU is an option, but this still doesn't tell MPDU size and not on the topic question.
If capability is 65535 for MPDU and we have A-MPDU exponent adjustable as in my case, what is the deciding factor of how many MSDUs you'll have aired at once ? Personally I don't see in wireshark 802.11 packets over 1605bytes with data packet inside of ~1500, so no win here.I've set MTU of 2304 at both sides as well with no avail (which is potentially yet another bug). Nor we have two or more packets sent at the same time (8us) to make me believe the MPDU/A-MPDU is actually working. If the A-MPDU value is small we effectively have it disabled,
same applies for the MPDU size.

Take a look what I have on upload (Speedtest)..

140-220 bytes all of them. That can't be Aggregation or atleast optimized one.

For download 1500-1605 bytes / 802packet.

What does cat /sys/kernel/debug/ieee80211/phy1/ath9k/xmit return? Assuming you have an ath9k device (adjust the phy)

Here is mine:

root@turris:~# cat /sys/kernel/debug/ieee80211/phy1/ath9k/xmit
                            BE         BK        VI        VO

MPDUs Queued:            15910         25       148    432285
MPDUs Completed:        177357         50       135    433322
MPDUs XRetried:           4800          0        74       537
Aggregates:           13191863        211      2039         0
AMPDUs Queued HW:            0          0         0         0
AMPDUs Completed:    137989145       2817     29186         0
AMPDUs Retried:       14155502         83      2064         0
AMPDUs XRetried:         23924          0        97         0
TXERR Filtered:           3787          0         1         3
FIFO Underrun:               0          0         0         0
TXOP Exceeded:               0          0         0         0
TXTIMER Expiry:              0          0         0         0
DESC CFG Error:              0          0         0         0
DATA Underrun:               0          0         0         0
DELIM Underrun:              0          0         0         0
TX-Pkts-All:         138195226       2867     29492    433859
TX-Bytes-All:       2544248308    2237144  29896222  89658046
HW-put-tx-buf:             532         25        57       322
HW-tx-start:          40724146       2084     19971    433859
HW-tx-proc-desc:      40730402       2084     19971    433834
TX-Failed:                   0          0         0         0

I read this as some AMPDUs encountered...

1 Like