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]
