Hi Patrick:

On Wed, Jul 26, 2006 at 05:38:07AM +0200, Patrick McHardy wrote:
> 
> I have a patch which changes netfilter to do incremental checksumming.
> The hook number is passed to all functions doing this so they know
> how to update the checksum. Could you explain how
> CHECKSUM_COMPLETE/CHECKSUM_PARTIAL are going to be used? I assume
> they're meant to avoid passing hook numbers around everywhere?

Yes the hook number is another way to solve the same problem.  However,
it can only be used within netfilter.  CHECKSUM_COMPLETE/CHECKSUM_PARTIAL
on the other hand are valid throughout the stack.  With Xen feeding Linux
packets into the stack the netfilter hook is also no longer sufficient to
distinguish between these two cases as partial checksum packets can now
appear on receive.

The problem is that you need to do different incremental updates depending
on whether the checksum is complete (i.e., CHECKSUM_HW on receive), or
partial (i.e., CHECKSUM_HW on transmit).

With complete checksums the current update code in netfilter can be used
as is.  With partial checksums you need to exclude bits which weren't
used when computing the partial checksums (e.g., TCP port numbers need
to be excluded, but the IP address needs to be included for NAT).

I have a patch that adds CHECKSUM_COMPLETE/CHECKSUM_PARTIAL if you want
something to work from.  Let me know if you want this and I'll bounce it
to you.

Thanks,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to