xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* ip/udp checksum offload from minios guest
@ 2011-03-29 16:17 Anil Madhavapeddy
  2011-03-29 16:37 ` Ian Campbell
  0 siblings, 1 reply; 11+ messages in thread
From: Anil Madhavapeddy @ 2011-03-29 16:17 UTC (permalink / raw)
  To: xen-devel

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 calculation.

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 frames.

-anil

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2011-03-30 11:11 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-29 16:17 ip/udp checksum offload from minios guest Anil Madhavapeddy
2011-03-29 16:37 ` Ian Campbell
2011-03-29 17:15   ` Anil Madhavapeddy
2011-03-29 17:37     ` Ian Campbell
2011-03-29 19:19     ` Paul Durrant
2011-03-29 22:26       ` Anil Madhavapeddy
2011-03-30  8:54         ` Ian Campbell
2011-03-30 10:23           ` James Harper
2011-03-30 10:31             ` Ian Campbell
2011-03-30 10:37               ` James Harper
2011-03-30 11:11                 ` Ian Campbell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).