Search Linux Wireless

IP header alignment vs. A-MSDU packets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux