netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Ravinandan Arakali" <ravinandan.arakali@neterion.com>
To: "'Stephen Hemminger'" <shemminger@osdl.org>
Cc: <netdev@vger.kernel.org>, <Steve.Whitaker@neterion.com>,
	<Mike.Doyle@neterion.com>, <Andrew.LaCroix@neterion.com>,
	<Ananda.Raju@neterion.com>, <dave.fenton@neterion.com>,
	"'Leonid. Grossman \(E-mail\)'" <leonid.grossman@neterion.com>
Subject: RE: H/W requirements for NETIF_F_HW_CSUM
Date: Wed, 26 Jul 2006 12:34:28 -0700	[thread overview]
Message-ID: <006b01c6b0ea$82ed3f60$4510100a@pc.s2io.com> (raw)
In-Reply-To: <20060726121627.724c6652@localhost.localdomain>

Steve,
Thanks for the response.
Pls see my comments below.

> -----Original Message-----
> From: Stephen Hemminger [mailto:shemminger@osdl.org]
> Sent: Wednesday, July 26, 2006 12:16 PM
> To: ravinandan.arakali@neterion.com
> Cc: netdev@vger.kernel.org; Steve.Whitaker@neterion.com;
> Mike.Doyle@neterion.com; Andrew.LaCroix@neterion.com;
> Ananda.Raju@neterion.com; dave.fenton@neterion.com; Leonid. Grossman
> (E-mail)
> Subject: Re: H/W requirements for NETIF_F_HW_CSUM
> 
> 
> On Wed, 26 Jul 2006 10:28:00 -0700
> "Ravinandan Arakali" <ravinandan.arakali@neterion.com> wrote:
> 
> > Hello,
> > Our current NIC does not provide the actual checksum value 
> on receive path.
> > Hence we only claim NETIF_F_IP_CSUM instead of the more general
> > NETIF_F_HW_CSUM.
> > 
> > To support this in a future adapter, we would like to know 
> what exactly are
> > the requirements (on both Rx and Tx )to claim NETIF_F_HW_CSUM ?
> 
> If you set NETIF_F_HW_CSUM, on transmit the adapter if 
> ip_summed is set
> will be handed an unchecksummed frame with the offset to 
> stuff the checksum at.
> Only difference between NETIF_F_HW_CSUM and NETIF_F_IP_CSUM 
> is that IP_CSUM
> means the device can handle IPV4 only.

Since our adapter does IPv4 and IPv6 checksum, do we then satisfy
the requirements to claim NETIF_F_HW_CSUM on Tx side ?
Also, for non-TSO, we can stuff the checksum at specified offset
in skb. What about TSO frames ?

> 
> NETIF_F_HW_CSUM has no impact on receive. The form of receive 
> checksumming format
> is up to the device. It can either put one's complement in 
> skb->csum and
> set ip_summed to CHECKSUM_HW or if device only reports 
> checksum good then
> set CHECKSUM_UNNECESSARY.

The reason for thinking that NETIF_F_HW_CSUM and CHECKSUM_UNNECESSARY
don't go together was a comment from Jeff way back in '04 when our 
driver was initially submitted. Quoting from that mail:

"You CANNOT use NETIF_F_HW_CSUM, when your hardware does not provide the 
checksum value.  You must use NETIF_F_IP_CSUM.  Your use of 
NETIF_F_HW_CSUM + CHECKSUM_UNNECESSARY is flat out incorrect."

> 
> Several are a couple of subtleties to the receive processing:
> * Meaning of ip_summed changes from tx to rx path and that 
> has to be handled
>   in code that does forwarding like bridges.
> * If device only reports checksum okay vs bad. The packets 
> marked bad might
>   be another protocol, so should be passed up with 
> CHECKSUM_NONE and let any
>   checksum errors get detected in software.
> * Checksum HW on receive should work better since then IPV6 
> and nested protocols like
>   VLAN's can be handled.
> 
> > Following are some specific questions:
> > 1. On Tx, our adapter supports checksumming of TCP/UDP over 
> IPv4 and IPv6.
> > This computation is TCP/UDP specific. Does the checksum 
> calculation need to
> > be more generic ? Also, skbuff.h says that the checksum 
> needs to be placed
> > at a specific location(skb->h.raw+skb->csum). I guess this 
> means the adapter
> > needs to pass back the checksum to host driver after 
> transmission. What
> > happens in case of TSO ?
> > 2. On Rx, is it suffficient if we place the L4 checksum in 
> skb->csum ? What
> > about L3 checksum ?
> > 
> 
> The L3 checksum (IP) is always computed. Since the header is 
> in CPU cache anyway
> it is faster that way.

  reply	other threads:[~2006-07-26 19:35 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-26 17:28 H/W requirements for NETIF_F_HW_CSUM Ravinandan Arakali
2006-07-26 19:16 ` Stephen Hemminger
2006-07-26 19:34   ` Ravinandan Arakali [this message]
2006-07-26 21:07     ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='006b01c6b0ea$82ed3f60$4510100a@pc.s2io.com' \
    --to=ravinandan.arakali@neterion.com \
    --cc=Ananda.Raju@neterion.com \
    --cc=Andrew.LaCroix@neterion.com \
    --cc=Mike.Doyle@neterion.com \
    --cc=Steve.Whitaker@neterion.com \
    --cc=dave.fenton@neterion.com \
    --cc=leonid.grossman@neterion.com \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).