From: Stephen Hemminger <shemminger@osdl.org>
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\)" <leonid.grossman@neterion.com>
Subject: Re: H/W requirements for NETIF_F_HW_CSUM
Date: Wed, 26 Jul 2006 12:16:27 -0700 [thread overview]
Message-ID: <20060726121627.724c6652@localhost.localdomain> (raw)
In-Reply-To: <006201c6b0d8$d831ba80$4510100a@pc.s2io.com>
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.
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.
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.
next prev parent reply other threads:[~2006-07-26 19:16 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 [this message]
2006-07-26 19:34 ` Ravinandan Arakali
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=20060726121627.724c6652@localhost.localdomain \
--to=shemminger@osdl.org \
--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=ravinandan.arakali@neterion.com \
/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).