Subject: Re: softmac mtu

From: Johannes Berg <[email-masked]>
Date: Thu, 28 Sep 2006 17:47:12 +0200

On Thu, 2006-09-28 at 17:35 +0200, Michael Buesch wrote:

> I am pretty sure this is the maximum _fragment_ size.

But then why does it talk of MPDU and MSDU?

from 802.11:

synonym sMaxMsduLng Integer = 2304; /* max octets in an MSDU */

synonym sMaxMpduLng Integer =         /* max octets in an MPDU */
  (sMaxMsduLng + sMacHdrLng + sWdsAddLng + sWepAddLng + sCrcLng);

synonym sMinFragLng Integer = 256; /* min value for aMpduMaxLength */
synonym sMaxFragNum Integer =        /* maximum fragment number */
  (sMaxMsduLng / (sMinFragLng - sMacHdrLng - sCrcLng));

The last calculation implies that each frame can only be up to
sMaxMsduLng octets long even when fragmented.

also cf. 9.1.4:

   9.1.4 Fragmentation/defragmentation overview

   The process of partitioning a MAC service data unit (MSDU) or a MAC
   management protocol data unit (MMPDU) into smaller MAC level frames,
   MAC protocol data units (MPDUs), is called fragmentation.
   Fragmentation creates MPDUs smaller than the original MSDU or MMPDU
   length to increase reliability, by increasing the probability of
   successful transmission of the MSDU or MMPDU in cases where channel
   characteristics limit reception reliability for longer frames.

IOW, I read it as an MSDU is the data that is supposed to be transmitted
over the link and that can be at most 2304 bytes long, and then it may
be fragmented or not and is then copied into (an) MPDU(s).

> But each packet (which max size is defined by the MTU) can
> be fragmented. I don't know if there's a limit on the max
> number of frags.

There's only a 4 bit fragment counter ;) However, see above.

johannes