2009-04-01 20:55:31

by Charles Gordon

[permalink] [raw]
Subject: Fragmentation

Hi,

I'm working on a driver which will use mac80211. My hardware cannot
transmit a frame larger than 1792 bytes, or receive frames larger than
2048 bytes. Right now I am relying on the fragmentation routines
built into mac80211. Is there a way for my driver to tell mac80211
what the maximum transmit and receive frame sizes are? Do I need to
implement my own fragmentation code to handle this?

Thanks for you help.


2009-04-02 01:56:03

by Johannes Berg

[permalink] [raw]
Subject: Re: Fragmentation

Charles,

> I'm working on a driver which will use mac80211. My hardware cannot
> transmit a frame larger than 1792 bytes, or receive frames larger than
> 2048 bytes. Right now I am relying on the fragmentation routines
> built into mac80211. Is there a way for my driver to tell mac80211
> what the maximum transmit and receive frame sizes are? Do I need to
> implement my own fragmentation code to handle this?

Using fragmentation for this is not a good plan -- better adjust the
maximum MTU. We currently cannot do that because mac80211 assumes that
all devices actually conform to the 802.11 standard wrt. this... Clearly
your device does not -- 2048 bytes is much too small, and you cannot
force the remote peer to send smaller frames than that (though in
practise it they will be smaller most of the time).

I would suggest that for now you don't worry about it at all -- the
default MTU is 1500 matching ethernet, so the largest frame that
mac80211 will give you by default is much smaller than 1792 bytes. Then,
once you release your driver under GPL and post it for inclusion into
our tree we can think about adding a new hardware capability to mac80211
that restricts users from increasing the MTU above 1792-30-2-8-4 (or
something like that).

johannes


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part