[ovs-dev] [PATCH 1/2] datapath: Copy Xen's checksumming fields when doing skb_copy.

Jesse Gross jesse at nicira.com
Wed Nov 18 21:57:32 UTC 2009



Ben Pfaff wrote:
> Jesse Gross <jesse at nicira.com> writes:
>
>   
>> Two fields that control checksumming were added to sk_buff in
>> Xen: proto_data_valid and proto_csum_blank.  These fields are copied
>> when doing a skb_clone but not in other functions such as skb_copy,
>> which can lead to checksum errors in TCP and UDP when offloading is
>> enabled in the guest.  To fix this we manually copy these fields,
>> though ideally this should be fixed upstream in Xen.
>>     
>
> Great catch!
>
> Did you try building this against 2.6.27 Citrix Xen kernel?
> Based on Ian's comments, I guess that adding "&&
> LINUX_VERSION_CODE == KERNEL_VERSION(2,6,18)" to the #if test is
> the right thing to do.
>   

I think I just checked the comments for sk_buff on the 2.6.27 XenServer 
kernel.  These fields exist in the comments but Ian is right, the actual 
fields are gone.  I added the kernel version ifdef and everything is 
happy on both kernels.

> I guess you must be starting to hate TSO and checksum offloading
> as much as I do now :-(  Good for performance, horrible for
> maintainability.
>   

Yeah, at this point I think I would rather my packets be corrupt than 
have to deal with offloading.

Thanks, I pushed this.




More information about the dev mailing list