All of lore.kernel.org
 help / color / mirror / Atom feed
From: Olivier MATZ <olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
To: Stephen Hemminger
	<stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [RFC 00/16] enhance checksum offload API
Date: Fri, 23 Jan 2015 10:52:06 +0100	[thread overview]
Message-ID: <54C219C6.8080304@6wind.com> (raw)
In-Reply-To: <20150121170149.157da6ed@urahara>

Hi Stephen,

On 01/22/2015 02:01 AM, Stephen Hemminger wrote:
> On Thu, 22 Jan 2015 00:36:19 +0100
> Olivier Matz <olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> wrote:
> 
>> The goal of this series is to clarify and simplify the mbuf offload API.
>> Several issues are solved:
> 
> If you are doing this could you invert the meaning of the checksum
> flags? Right now the flags are fine for Intel hardware but are useless
> for devices that have less checksum support.
> 
> It would work better if instead of two states:
>   * Checksum known bad    =>  PKT_RX_L4_CKSUM_BAD == 1
>   * Checksum (maybe) good =>  PKT_RX_L4_CKSUM_BAD == 0
> The bit was changed to only flag good checksum:
>   * Checksum known good	    => PKT_RX_L4_CKSUM_GOOD == 1
>   * Checksum status unknown => PKT_RX_L4_CKSUM_GOOD == 0
> 
> That way code code fallback to software checksum if hardware was incapable
> of handling the packet. It does mean packets with bad checksums get checked
> twice, but thats ok.

I agree that current rx checksum flags in dpdk could be enhanced.
Your proposition is indeed already much better that what we currently
have. I'm ok to submit a patch for this before the 2.0 release.

However, I think we could do even better with 2 flags. The first
idea is to have one bit saying "the hw verified the checksum" and
a second one saying "it is good or bad".

The second idea is to use flags like PKT_RX_L4_TCP or PKT_RX_L4_UDP
to replace the first bit of the first idea, like it's done for IPv4.
Therefore, the value of the flag PKT_RX_L4_CKSUM_GOOD should only
be checked if the L4 protocol is recognized.

Another thing that could be also useful for virtual driver is a
way to say: "the packet integrity is correct but the checksum field
in the packet may be wrong". This can happen for instance in this
case:
- a guest transmits on a vdev without calculating the checksums
  (gaining cpu time)
- the host receives it, it does not check the rx checksums (because
  it knows the packet integrity is correct, the packet comes from
  memory not from a network)
- then if the host wants to forward it, it has to schedule a tx
  checksum on a real hw.

Let me know if you have any comment.

However, I think this will conflicts with the packet_type feature that
is proposed by Helin:
http://dpdk.org/ml/archives/dev/2015-January/011156.html


Regards,
Olivier

  reply	other threads:[~2015-01-23  9:52 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-21 23:36 [RFC 00/16] enhance checksum offload API Olivier Matz
     [not found] ` <1421883395-27235-1-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-01-21 23:36   ` [RFC 01/16] mbuf: remove PKT_TX_IPV4_CSUM Olivier Matz
2015-01-21 23:36   ` [RFC 02/16] mbuf: enhance the API documentation of offload flags Olivier Matz
2015-01-21 23:36   ` [RFC 03/16] i40e: call i40e_txd_enable_checksum only for offloaded packets Olivier Matz
2015-01-21 23:36   ` [RFC 04/16] i40e: remove the use of PKT_TX_UDP_TUNNEL_PKT flag Olivier Matz
     [not found]     ` <1421883395-27235-5-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-01-23  8:06       ` Liu, Jijiang
     [not found]         ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01DB631A-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-23  8:47           ` Zhang, Helin
     [not found]             ` <F35DEAC7BCE34641BA9FAC6BCA4A12E70A7ECFC1-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-23  9:06               ` Olivier MATZ
2015-01-21 23:36   ` [RFC 05/16] mbuf: remove " Olivier Matz
2015-01-21 23:36   ` [RFC 06/16] ethdev: add outer IP offload capability flag Olivier Matz
2015-01-21 23:36   ` [RFC 07/16] i40e: advertise outer IPv4 checksum capability Olivier Matz
2015-01-21 23:36   ` [RFC 08/16] testpmd: replace tx_checksum command by csum Olivier Matz
2015-01-21 23:36   ` [RFC 09/16] testpmd: move csum_show in a function Olivier Matz
     [not found]     ` <1421883395-27235-10-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-01-23 11:03       ` Liu, Jijiang
     [not found]         ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01DB63D6-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-23 17:53           ` Olivier MATZ
2015-01-21 23:36   ` [RFC 10/16] testpmd: add csum parse_tunnel command Olivier Matz
2015-01-21 23:36   ` [RFC 11/16] testpmd: rename vxlan in outer_ip in csum commands Olivier Matz
     [not found]     ` <1421883395-27235-12-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-01-23 11:21       ` Liu, Jijiang
     [not found]         ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01DB6402-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-01-23 17:49           ` Olivier MATZ
2015-01-21 23:36   ` [RFC 12/16] testpmd: introduce parse_ipv* in csum fwd engine Olivier Matz
2015-01-21 23:36   ` [RFC 13/16] testpmd: use a structure to store offload info " Olivier Matz
2015-01-21 23:36   ` [RFC 14/16] testpmd: introduce parse_vxlan " Olivier Matz
2015-01-21 23:36   ` [RFC 15/16] testpmd: support gre tunnels " Olivier Matz
2015-01-21 23:36   ` [RFC 16/16] testpmd: support ipip tunnel in csum forward engine Olivier Matz
2015-01-21 23:41   ` [RFC 00/16] enhance checksum offload API Olivier MATZ
     [not found]     ` <54C0390F.3040004-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-01-22 10:00       ` Thomas Monjalon
2015-01-22  1:01   ` Stephen Hemminger
2015-01-23  9:52     ` Olivier MATZ [this message]
2015-01-23  7:54   ` Liu, Jijiang
2015-01-30 13:15   ` [PATCH 00/20] enhance tx " Olivier Matz
     [not found]     ` <1422623775-8050-1-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-01-30 13:15       ` [PATCH 01/20] mbuf: remove PKT_TX_IPV4_CSUM Olivier Matz
2015-01-30 13:15       ` [PATCH 02/20] mbuf: enhance the API documentation of offload flags Olivier Matz
2015-01-30 13:15       ` [PATCH 03/20] i40e: call i40e_txd_enable_checksum only for offloaded packets Olivier Matz
2015-01-30 13:15       ` [PATCH 04/20] i40e: remove the use of PKT_TX_UDP_TUNNEL_PKT flag Olivier Matz
2015-01-30 13:16       ` [PATCH 05/20] mbuf: remove " Olivier Matz
2015-01-30 13:16       ` [PATCH 06/20] testpmd: replace tx_checksum command by csum Olivier Matz
2015-01-30 13:16       ` [PATCH 07/20] testpmd: move csum_show in a function Olivier Matz
2015-01-30 13:16       ` [PATCH 08/20] testpmd: add csum parse_tunnel command Olivier Matz
2015-01-30 13:16       ` [PATCH 09/20] testpmd: rename vxlan in outer_ip in csum commands Olivier Matz
2015-01-30 13:16       ` [PATCH 10/20] testpmd: introduce parse_ipv* in csum fwd engine Olivier Matz
2015-01-30 13:16       ` [PATCH 11/20] testpmd: use a structure to store offload info " Olivier Matz
2015-01-30 13:16       ` [PATCH 12/20] testpmd: introduce parse_vxlan " Olivier Matz
     [not found]         ` <1422623775-8050-13-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-02-02  1:49           ` Liu, Jijiang
     [not found]             ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01DC963B-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-02 12:42               ` Olivier MATZ
2015-01-30 13:16       ` [PATCH 13/20] testpmd: support gre tunnels " Olivier Matz
     [not found]         ` <1422623775-8050-14-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-02-02  3:04           ` Liu, Jijiang
     [not found]             ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01DC9728-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-02 12:55               ` Olivier MATZ
     [not found]                 ` <54CF73B7.1020104-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-02-02 13:16                   ` Liu, Jijiang
     [not found]                     ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01DCAA13-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-02 13:30                       ` Olivier MATZ
2015-01-30 13:16       ` [PATCH 14/20] testpmd: support ipip tunnel in csum forward engine Olivier Matz
2015-01-30 13:16       ` [PATCH 15/20] ethdev: add outer IP offload capability flag Olivier Matz
2015-01-30 13:16       ` [PATCH 16/20] i40e: advertise outer IPv4 checksum capability Olivier Matz
2015-01-30 13:16       ` [PATCH 17/20] testpmd: add a warning if outer ip cksum requested but not supported Olivier Matz
2015-01-30 13:16       ` [PATCH 18/20] testpmd: fix TSO when using outer checksum offloads Olivier Matz
2015-01-30 13:16       ` [PATCH 19/20] i40e: fix offloading of outer checksum for ip in ip tunnels Olivier Matz
2015-01-30 13:16       ` [PATCH 20/20] i40e: add debug logs for tx context descriptors Olivier Matz
2015-02-04  9:25       ` [PATCH v2 00/20] enhance tx checksum offload API Olivier Matz
     [not found]         ` <1423041925-26956-1-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-02-04  9:25           ` [PATCH v2 01/20] mbuf: remove PKT_TX_IPV4_CSUM Olivier Matz
2015-02-04  9:25           ` [PATCH v2 02/20] mbuf: enhance the API documentation of offload flags Olivier Matz
     [not found]             ` <1423041925-26956-3-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-02-10  5:38               ` Zhang, Helin
     [not found]                 ` <F35DEAC7BCE34641BA9FAC6BCA4A12E70A806563-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-10 16:54                   ` Olivier MATZ
2015-02-11  7:15                   ` Liu, Jijiang
     [not found]                     ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01DDA2CF-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-11 15:15                       ` Olivier MATZ
2015-02-04  9:25           ` [PATCH v2 03/20] i40e: call i40e_txd_enable_checksum only for offloaded packets Olivier Matz
     [not found]             ` <1423041925-26956-4-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-02-10  6:03               ` Zhang, Helin
     [not found]                 ` <F35DEAC7BCE34641BA9FAC6BCA4A12E70A8065D4-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-10 17:06                   ` Olivier MATZ
     [not found]                     ` <54DA3AB0.3040500-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-02-11  5:32                       ` Zhang, Helin
     [not found]                         ` <F35DEAC7BCE34641BA9FAC6BCA4A12E70A806F1F-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-11 17:13                           ` Olivier MATZ
     [not found]                             ` <54DB8DC0.500-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-02-13  2:25                               ` Zhang, Helin
     [not found]                                 ` <F35DEAC7BCE34641BA9FAC6BCA4A12E70A807E67-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-13  8:41                                   ` Olivier MATZ
2015-02-04  9:25           ` [PATCH v2 04/20] i40e: remove the use of PKT_TX_UDP_TUNNEL_PKT flag Olivier Matz
     [not found]             ` <1423041925-26956-5-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-02-10  6:40               ` Zhang, Helin
     [not found]                 ` <F35DEAC7BCE34641BA9FAC6BCA4A12E70A806631-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-10 17:08                   ` Olivier MATZ
2015-02-04  9:25           ` [PATCH v2 05/20] mbuf: remove " Olivier Matz
2015-02-04  9:25           ` [PATCH v2 06/20] testpmd: replace tx_checksum command by csum Olivier Matz
2015-02-04  9:25           ` [PATCH v2 07/20] testpmd: move csum_show in a function Olivier Matz
2015-02-04  9:25           ` [PATCH v2 08/20] testpmd: add csum parse_tunnel command Olivier Matz
2015-02-04  9:25           ` [PATCH v2 09/20] testpmd: rename vxlan in outer_ip in csum commands Olivier Matz
2015-02-04  9:25           ` [PATCH v2 10/20] testpmd: introduce parse_ipv* in csum fwd engine Olivier Matz
2015-02-04  9:25           ` [PATCH v2 11/20] testpmd: use a structure to store offload info " Olivier Matz
2015-02-04  9:25           ` [PATCH v2 12/20] testpmd: introduce parse_vxlan " Olivier Matz
2015-02-04  9:25           ` [PATCH v2 13/20] testpmd: support gre tunnels " Olivier Matz
2015-02-04  9:25           ` [PATCH v2 14/20] testpmd: support ipip tunnel in csum forward engine Olivier Matz
2015-02-04  9:25           ` [PATCH v2 15/20] ethdev: add outer IP offload capability flag Olivier Matz
2015-02-04  9:25           ` [PATCH v2 16/20] i40e: advertise outer IPv4 checksum capability Olivier Matz
2015-02-04  9:25           ` [PATCH v2 17/20] testpmd: add a warning if outer ip cksum requested but not supported Olivier Matz
2015-02-04  9:25           ` [PATCH v2 18/20] testpmd: fix TSO when using outer checksum offloads Olivier Matz
2015-02-04  9:25           ` [PATCH v2 19/20] i40e: fix offloading of outer checksum for ip in ip tunnels Olivier Matz
2015-02-04  9:25           ` [PATCH v2 20/20] i40e: add debug logs for tx context descriptors Olivier Matz
2015-02-09  1:10           ` [PATCH v2 00/20] enhance tx checksum offload API Liu, Jijiang
2015-02-13  9:22           ` [PATCH v3 " Olivier Matz
     [not found]             ` <1423819371-24222-1-git-send-email-olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-02-13  9:22               ` [PATCH v3 01/20] mbuf: remove PKT_TX_IPV4_CSUM Olivier Matz
2015-02-13  9:22               ` [PATCH v3 02/20] mbuf: enhance the API documentation of offload flags Olivier Matz
2015-02-13  9:22               ` [PATCH v3 03/20] i40e: call i40e_txd_enable_checksum only for offloaded packets Olivier Matz
2015-02-13  9:22               ` [PATCH v3 04/20] i40e: remove the use of PKT_TX_UDP_TUNNEL_PKT flag Olivier Matz
2015-02-13  9:22               ` [PATCH v3 05/20] mbuf: remove " Olivier Matz
2015-02-13  9:22               ` [PATCH v3 06/20] testpmd: replace tx_checksum command by csum Olivier Matz
2015-02-13  9:22               ` [PATCH v3 07/20] testpmd: move csum_show in a function Olivier Matz
2015-02-13  9:22               ` [PATCH v3 08/20] testpmd: add csum parse_tunnel command Olivier Matz
2015-02-13  9:22               ` [PATCH v3 09/20] testpmd: rename vxlan in outer_ip in csum commands Olivier Matz
2015-02-13  9:22               ` [PATCH v3 10/20] testpmd: introduce parse_ipv* in csum fwd engine Olivier Matz
2015-02-13  9:22               ` [PATCH v3 11/20] testpmd: use a structure to store offload info " Olivier Matz
2015-02-13  9:22               ` [PATCH v3 12/20] testpmd: introduce parse_vxlan " Olivier Matz
2015-02-13  9:22               ` [PATCH v3 13/20] testpmd: support gre tunnels " Olivier Matz
2015-02-13  9:22               ` [PATCH v3 14/20] testpmd: support ipip tunnel in csum forward engine Olivier Matz
2015-02-13  9:22               ` [PATCH v3 15/20] ethdev: add outer IP offload capability flag Olivier Matz
2015-02-13  9:22               ` [PATCH v3 16/20] i40e: advertise outer IPv4 checksum capability Olivier Matz
2015-02-13  9:22               ` [PATCH v3 17/20] testpmd: add a warning if outer ip cksum requested but not supported Olivier Matz
2015-02-13  9:22               ` [PATCH v3 18/20] testpmd: fix TSO when using outer checksum offloads Olivier Matz
2015-02-13  9:22               ` [PATCH v3 19/20] i40e: fix offloading of outer checksum for ip in ip tunnels Olivier Matz
2015-02-13  9:22               ` [PATCH v3 20/20] i40e: add debug logs for tx context descriptors Olivier Matz
2015-02-15  6:22               ` [PATCH v3 00/20] enhance tx checksum offload API Liu, Jijiang
     [not found]                 ` <1ED644BD7E0A5F4091CF203DAFB8E4CC01DDC8F1-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-16 18:23                   ` Thomas Monjalon

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=54C219C6.8080304@6wind.com \
    --to=olivier.matz-pdr9zngts4eavxtiumwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    --cc=stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.