Hey, I was looking through the defragmentation code and noticed that we only allow four fragmented frames to be in flight at the same time. It seems that in a somewhat contended QoS network where fragmentation is enabled this is far from enough since as far as I can tell from the standard each source STA may be sending fragmented frames in the various access categories (think starting in background and then preempting by best effort etc.) We could easily increase this by using per-sta reassembly buffers at no CPU cost [1] but that has the obvious disadvantage of having much higher worst-case memory usage. Thoughts? johannes [1] the reassembly code can even be made faster then: instead of looking through all four reassembly buffers whether they match we already know that the source MAC matches, and by default we can hash into the four slots by the lowest two bits of the sequence number and only if no match continue to look in the other slots, this shouldn't really ever happen as far as I can tell.
Attachment:
signature.asc
Description: This is a digitally signed message part