Minimum MPDU Start Spacing in A-MPDU
STA与不同的AP的兼容性测试中,会概率性遇到特定型号AP没有回复BA的情况。其原因可能有多种,其中一种可能是STA发出的A-MPDU中Minimum MPDU Start Spcacing不满足该型号AP的要求。
doc.:IEEE 802.11-16/0645r0对于Minimum MPDU Start Spacing有以下描述:
- Minimum MPDU Start Spacing defines the minimum time between the start of adjacent MPDUs (MPDU density) within an A-MPDU.
- This restriction is because of the processing capacity of the receiver, not because of the channel/Nss/MCS capacity.
- If necessary, in order to satisfy this requirement, a STA shall add padding between MPDUs in an A-MPDU.
从上图可以看到,
- MPDU之间至少有一个Delimiter。
- MPDU之间可能会有多个Delimiters以满足Minimum MPDU Start Spacing的要求。
当Delimiter中的MPDU length=0时,该Delimiter就起到了Padding作用——扩展了MPDU之间的spacing,MAC会丢弃掉该Delimiter。
802.11 spec规定了Minimum MPDU Start Spacing有以下8种取值
- 3‘b000 = no restriction
- 3’b001 = 1/4 μs
- 3’b010 = 1/2 μs
- 3’b011 = 1 μs
- 3’b100 = 2 μs
- 3’b101 = 4 μs
- 3’b110 = 8 μs
- 3’b111 = 16 μs
在Beacon packet的HT Capability Info(Element ID=45)中包含了Minimum MPDU Start Spacing field,例如以下两个不同AP发出的beacon packet中的该field,一个为No Restriction,另一个为2 μs。
为了保证兼容性,STA的PHY层在生成A-MPDU时,需要考虑AP要求的Minimum MPDU Start Spacing,在MPDU之间插入合适数量的Delimiter(s)。