[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Question about TCP checksum offload in Xen
On Thu, 2013-12-05 at 11:45 +0000, Richard Mortier wrote: > On 5 Dec 2013, at 11:39, Ian Campbell wrote: > > > On Thu, 2013-12-05 at 11:29 +0000, Anil Madhavapeddy wrote: > >> On Tue, Dec 03, 2013 at 01:00:23PM +0000, Balraj Singh wrote: > >>> Hi, > >>> > >>> I'm working on verifying TCP checksums on incoming packets in Mirage, but > >>> I've run into a bit of a problem. > >>> > >>> If TCP checksum offload is turned on on a virtual interface (this is the > >>> default), and if the TCP connection is local to the machine, it looks like > >>> Xen does not calculate the checksum at all. This may be valid because Xen > >>> may be providing a stronger guarantee, but it means that incoming packets > >>> don't have a valid checksum in the header. This then means that in Mirage > >>> we can't just have checksum verification turned on all the time. This > >>> would have been the safe fall back option and detecting that checksum > >>> offload is on, and then not duplicating the verification in Mirage would > >>> have been an optimisation. But it looks like this is not an option. Now > >>> I > >>> need to know for every incoming packet whether checksum verification > >>> should > >>> be done or not. It should ideally be for every packet since chksum > >>> offload > >>> can be turned off and on on the VIF and existing tcp connections should > >>> continue. If not every packet, I need to get a notification or > >>> efficiently > >>> detect right away that the setting is changed on the VIF. > >> > >> This is a question that seems to keep coming up even for Linux and > >> Windows, as the combination of local<->local VMs vs local<->off-host and > >> the checksum offload is quite confusing. > >> > >> CCing xen-devel: is the appropriate behaviour for a guest VM that wants to > >> use checksum offloading in all situations documented anywhere? > > > > I don't understand the question/concern. If you have enabled checksum > > offload then of course you don't recalculate the checksum, that's the > > whole point of offloading it. > > i think balraj's question arises because the status of checksum > offload can change mid-tcp-flow. how does he know whether it's on or > off for a given packet? It's a property of the NIC configuration. In Linux for example a received skb gets a field set which indicates the offload state at the time it was received. Ian.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |