Hi, Writing about NET_IP_ALIGN made me think of the A-MSDU case. Tomas, if you're looking into getting firmware changed, please consider this. When we receive an A-MSDU packet, it will consist of an 802.11 header followed by subframes. Thankfully, the 802.11 specs require that each subframe is padded to a length that is a multiple of four bytes. However, the alignment requirements are different! Each subframe contains its own 802.3 header, which means that the IP header starts on +14 from the 802.11 data payload. This means, that in the case of A-MSDUs, my WARN_ON_ONCE is incorrect! Let me explain: Currently, I require that the 802.11 payload and with it the IP header starts at an address that is divisible by four. However, adding the 14 bytes 802.3 header the IP header now starts at an address that modulo 4 gives two, not zero as required. Hence, when the frame is an A-MSDU frame, it needs to be aligned differently and have no padding in the QoS case. I think all those frames are required to be QoS frames, so only legacy-QoS frames would require the padding. I'll send a patch. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part