Checksum forwarding issue on XEN

Larry Baird lab at gta.com
Thu Nov 5 17:53:30 UTC 2015


Alan,

> Though it looks weird, I think it's actually correct.  th->th_sum lies 
> within the packet that it inspected by in_cksum_skip. in_cksum_skip 
> skips the ethernet and IP headers, but not the TCP header.  So it 
> consumes whatever value was previously set in th_sum.  In any case, it 
> will be easy to check this code by running the builtin unit tests.  Just 
> build the kernel with XNB_DEBUG defined, instantiate an xnb interface, 
> and do "sysctl dev.xnb.0.unit_test_results".

I agress the code looks strange but is probably correct as far as it goes.
The code assumes that there aren't any IP options. I am not sure if this
is a valid assumption or not. The code also assumes packet is IPv4.

> FWIW, there is a performance problem with Xen and checksums. Whenever 
> FreeBSD is used as a dom0, checksum offloading should be disabled on the 
> netfronts.  I don't know if the same problem exists on other OSes, but 
> it might.  See xnb(4) for more details about this problem.
Ok I read the CAVEATS on xnb(4).  Let me play with that for a bit. I have
an ugly code patch, that works for me with out disabling checksum offloading.
Before I share, let me do a few more tests.

Larry


-- 
------------------------------------------------------------------------
Larry Baird
Global Technology Associates, Inc. 1992-2012 	| http://www.gta.com
Celebrating Twenty Years of Software Innovation | Orlando, FL
Email: lab at gta.com                 		| TEL 407-380-0220


More information about the freebsd-xen mailing list