Re: [NET]: Allow forwarding of ip_summed except CHECKSUM_COMPLETE

2007-03-27 Thread Patrick McHardy
Herbert Xu wrote:
 Hi Dave:
 
 [NET]: Allow forwarding of ip_summed except CHECKSUM_COMPLETE
 
 Right now Xen has a horrible hack that lets it forward packets with
 partial checksums.  One of the reasons that CHECKSUM_PARTIAL and
 CHECKSUM_COMPLETE were added is so that we can get rid of this hack
 (where it creates two extra bits in the skbuff to essentially mirror
 ip_summed without being destroyed by the forwarding code).
 
 I had forgotten that I've already gone through all the deivce drivers
 last time around to make sure that they're looking at ip_summed ==
 CHECKSUM_PARTIAL rather than ip_summed != 0 on transmit.  In any case,
 I've now done that again so it should definitely be safe.
 
 Unfortunately nobody has yet added any code to update CHECKSUM_COMPLETE
 values on forward so we I'm setting that to CHECKSUM_NONE.  This should
 be safe to remove for bridging but I'd like to check that code path
 first.
 
 So here is the patch that lets us get rid of the hack by preserving
 ip_summed (mostly) on forwarded packets.


Just wondering, how does Xen know whether a packet will be forwarded?
The input path doesn't seem to deal with CHECKSUM_PARTIAL correctly,
ip_defrag for example resets them to CHECKSUM_NONE, so further checks
will fail, others seem to either ignore them or handle them together
with CHECKSUM_NONE.

-
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


Re: [NET]: Allow forwarding of ip_summed except CHECKSUM_COMPLETE

2007-03-27 Thread Herbert Xu
On Tue, Mar 27, 2007 at 10:51:53PM +0200, Patrick McHardy wrote:
 
 Just wondering, how does Xen know whether a packet will be forwarded?

It's up to Linux to handle it correctly.

 The input path doesn't seem to deal with CHECKSUM_PARTIAL correctly,
 ip_defrag for example resets them to CHECKSUM_NONE, so further checks
 will fail, others seem to either ignore them or handle them together
 with CHECKSUM_NONE.

That's OK, Linux/Xen never generates any CHECKSUM_PARTIAL fragments.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmVHI~} [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


Re: [NET]: Allow forwarding of ip_summed except CHECKSUM_COMPLETE

2007-03-26 Thread David Miller
From: Herbert Xu [EMAIL PROTECTED]
Date: Tue, 27 Mar 2007 15:38:21 +1000

 [NET]: Allow forwarding of ip_summed except CHECKSUM_COMPLETE
 
 Right now Xen has a horrible hack that lets it forward packets with
 partial checksums.  One of the reasons that CHECKSUM_PARTIAL and
 CHECKSUM_COMPLETE were added is so that we can get rid of this hack
 (where it creates two extra bits in the skbuff to essentially mirror
 ip_summed without being destroyed by the forwarding code).
 
 I had forgotten that I've already gone through all the deivce drivers
 last time around to make sure that they're looking at ip_summed ==
 CHECKSUM_PARTIAL rather than ip_summed != 0 on transmit.  In any case,
 I've now done that again so it should definitely be safe.
 
 Unfortunately nobody has yet added any code to update CHECKSUM_COMPLETE
 values on forward so we I'm setting that to CHECKSUM_NONE.  This should
 be safe to remove for bridging but I'd like to check that code path
 first.
 
 So here is the patch that lets us get rid of the hack by preserving
 ip_summed (mostly) on forwarded packets.
 
 Signed-off-by: Herbert Xu [EMAIL PROTECTED]

Applied to net-2.6.22, thanks Herbert.
-
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