This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] ip/udp checksum offload from minios guest

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] ip/udp checksum offload from minios guest
From: Anil Madhavapeddy <anil@xxxxxxxxxx>
Date: Tue, 29 Mar 2011 12:17:48 -0400
Delivery-date: Tue, 29 Mar 2011 09:18:29 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
I'm just adding checksum offload support into a custom guest, and wanted to 
clarify a few things.

In netfront, I can mark outgoing frames with:
- NETTXF_csum_blank
- NETTXF_data_validated

These refer to UDP or TCP checksums, and not the IP checksum, right? Linux 
seems to never offload IP header checksumming, so it must be offloading the 
UDP/TCP calculation and then adjusting the IPv4 checksum based on that 

For outgoing UDP, my guest is setting the checksum to 0 (as it's optional in 
the protocol), and calculating the full IPv4 checksum in software, and all 
works (slowly).  However, setting NETTXF_csum_blank in the outgoing frame and 
leaving the IPv4 checksum at 0 doesn't seem to result in any adjustment by 
netback, and the packet gets dropped. 

How am I supposed to entirely offload the IPv4 checksum calculation for UDP?  
Setting the flag unconditionally for non-TCP/UDP traffic (e.g. ARP/ICMP) 
results in lots of dropped frames, so I am only setting it in the outgoing UDP 


Xen-devel mailing list