Jason King wrote:
> The driver I'm working on (cge) supports hw reassembly of recognized
> flows (I think this might be considered LRO, but I'm not sure -- I'm
> relatively new at this).  Directly from the driver, you get a buffer
> for each header of the packet, then the data portion for all those
> packets (of the same flow) assembled into a single contiguous buffer.
> The obvious thing is to create an mblk chain, with 2 fragments for
> each packet (1 for the header, 1 for the data), and then pass the
> entire chain up in a single mac_rx() call.  Since the data is
> contiguous, are the upper layers (i.e. tcp/ip) able to detect the
> condition and take advantage of the situation, or does the driver need
> to do more work (such as collapsing it down to a single mblk, possibly
> with 2 fragments), or does it require some sort of signal/flag to
> indicate such a condition?

No, you should be ok with 2 data blocks split between header and data. 
Be aware that if you split into more than 2 blocks then you'll need to 
patch the ip module to avoid hitting a slow path. (See the recent thread 
on LRO).

   Paul

_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to