Hi
    I have a working implementation of LRO, it builds a b_cont list of 
incoming
packets during the Interrupt service routine, using the LRO rules. Then 
passes
it up to the stack, once in the Stack IP checks if a the b_cont chain is 
more than
2 elements long and if so send it up a 'slow' path which re-calculates the
checksum. The Packet checksum will be wrong for the LRO chain since the
checksum is only for the first packet. The stack should be able to 
accept the
LRO packet based on hardware checksum rules.
    I have limited the LRO chain to 2 elements and with that the stack 
accepts
the LRO messages in the non fast path, with an improvement in 
performance for
a simple netperf run of 300Mb/s. I expect if the chain is allowed to be much
larger the performance will also be much larger, based on Linux 
experience with
the same algorithm.
    Is there plans to remove this check? and enable hardware checksumming
for all paths through the tcp/ip stack? That change will enable the software
implementation LRO?
    If I alter the disassembly to avoid the check is there gotcha's that 
will make
it fail?

    Frank

   


_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to