From: Tom Herbert <tom@herbertland.com>
To: "Singhai, Anjali" <anjali.singhai@intel.com>
Cc: David Miller <davem@davemloft.net>,
"Brandeburg, Jesse" <jesse.brandeburg@intel.com>,
"jesse@kernel.org" <jesse@kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"Patil, Kiran" <kiran.patil@intel.com>
Subject: Re: [PATCH v1 1/6] net: Generalize udp based tunnel offload
Date: Mon, 30 Nov 2015 13:48:36 -0800 [thread overview]
Message-ID: <CALx6S34vso438+85ggvzkkCQBPRA7f6tHv1qtwVqq=tuxG=uJQ@mail.gmail.com> (raw)
In-Reply-To: <C40BE8378EF49C44B9184714DBC8EF2993A70447@ORSMSX115.amr.corp.intel.com>
On Mon, Nov 30, 2015 at 1:42 PM, Singhai, Anjali
<anjali.singhai@intel.com> wrote:
>
>
> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Sunday, November 29, 2015 7:23 PM
> To: tom@herbertland.com
> Cc: Brandeburg, Jesse <jesse.brandeburg@intel.com>; Singhai, Anjali <anjali.singhai@intel.com>; jesse@kernel.org; netdev@vger.kernel.org; Patil, Kiran <kiran.patil@intel.com>
> Subject: Re: [PATCH v1 1/6] net: Generalize udp based tunnel offload
>
> From: Tom Herbert <tom@herbertland.com>
> Date: Tue, 24 Nov 2015 09:32:11 -0800
>
>>>
>>> FWIW, I've brought the issue to the attention of the architects here,
>>> and we will likely be able to make changes in this space. Intel
>>> hardware (as demonstrated by your patches) already is able to deal
>>> with this de-ossification on transmit. Receive is a whole different beast.
>>>
>> Please provide the specifics on why "Receive is a whole different
>> beast.". Generic receive checksum is already a subset of the
>> functionality that you must have implement to support the protocol
>> specific offloads. All the hardware needs to do is calculate the 1's
>> complement checksum of the packet and return the value on the to the
>> host with that packet. That's it. No parsing of headers, no worrying
>> about the pseudo header, no dealing with any encapsulation. Just do
>> the calculation, return the result to the host and the driver converts
>> this to CHECKSUM_COMPLETE. I find it very hard to believe that this is
>> any harder than specific support the next protocol du jour.
>
> The reason for receive being different than transmit is, on TX side driver can provide the meta data for where the checksum field is and what is the length that needs to be check summed to the HW on a per packet basis. On Rx the HW parser has to parse the packet to identify the tunnel type and based on that figure out the checksum locations and length in the packet, so definitely HW has to parse the packet and it can parse only based on next header type information or in case of udp tunnels based on udp port mapping to a particular protocol. I am not sure why you say it doesn't need to parse the packet, maybe I am miss- understanding something. Although it's not difficult to reduce protocol ossification on the RX side but it is certainly different and particularly in case of udp-tunnels
it needs the port to protocol mapping.
>
Please look at how CHECKSUM_COMPLETE interface works. Description is
in sk_buff.h or
http://people.netfilter.org/pablo/netdev0.1/papers/UDP-Encapsulation-in-Linux.pdf.
Thanks,
Tom
next prev parent reply other threads:[~2015-11-30 21:48 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-23 21:02 [PATCH 0/6] Generalize udp based tunnels and add geneve offload Anjali Singhai Jain
2015-11-23 21:02 ` [PATCH v1 1/6] net: Generalize udp based tunnel offload Anjali Singhai Jain
2015-11-23 20:57 ` kbuild test robot
2015-11-23 20:58 ` kbuild test robot
2015-11-23 21:53 ` Tom Herbert
2015-11-23 22:49 ` Jesse Gross
2015-11-24 0:32 ` Singhai, Anjali
2015-11-24 0:38 ` Tom Herbert
2015-11-24 1:11 ` Jesse Brandeburg
2015-11-24 17:32 ` Tom Herbert
2015-11-24 17:43 ` Hannes Frederic Sowa
2015-11-24 17:52 ` Tom Herbert
2015-11-24 18:16 ` Hannes Frederic Sowa
2015-11-24 18:37 ` David Miller
2015-11-24 18:42 ` Hannes Frederic Sowa
2015-11-24 18:43 ` Tom Herbert
2015-11-30 3:22 ` David Miller
2015-11-30 21:42 ` Singhai, Anjali
2015-11-30 21:48 ` Tom Herbert [this message]
2015-12-01 3:51 ` David Miller
2015-12-01 3:48 ` David Miller
2015-12-01 6:33 ` Alexander Duyck
2015-11-30 3:21 ` David Miller
2015-11-30 21:33 ` Singhai, Anjali
2015-12-01 0:25 ` Jesse Gross
2015-12-01 1:02 ` Tom Herbert
2015-12-01 1:28 ` Jesse Gross
2015-12-01 5:26 ` Tom Herbert
2015-12-01 15:44 ` John W. Linville
2015-12-01 15:49 ` Hannes Frederic Sowa
2015-12-01 16:08 ` John W. Linville
2015-12-02 0:40 ` Singhai, Anjali
2015-12-02 3:50 ` Tom Herbert
2015-12-02 16:35 ` Hannes Frederic Sowa
2015-12-02 19:15 ` Tom Herbert
2015-12-02 23:35 ` John Fastabend
2015-12-03 0:15 ` Tom Herbert
2015-12-08 7:33 ` John Fastabend
2015-12-08 14:23 ` Jamal Hadi Salim
2015-12-08 15:10 ` Jamal Hadi Salim
2015-12-09 1:40 ` Thomas Graf
2015-12-09 5:45 ` Alexei Starovoitov
2015-12-09 12:58 ` Thomas Graf
2015-12-09 17:38 ` Alexei Starovoitov
2015-12-09 20:03 ` David Miller
2015-12-09 22:03 ` Thomas Graf
2015-12-09 22:21 ` David Miller
2015-12-09 22:25 ` Thomas Graf
2015-12-03 2:08 ` Alexei Starovoitov
2015-12-03 15:59 ` Hannes Frederic Sowa
2015-12-03 16:35 ` Andreas Schultz
2015-12-03 16:43 ` Hannes Frederic Sowa
2015-12-04 18:28 ` Tom Herbert
2015-12-04 19:54 ` John Fastabend
2015-12-04 19:59 ` Hannes Frederic Sowa
2015-12-04 20:02 ` Hannes Frederic Sowa
2015-12-04 20:06 ` David Miller
2015-12-04 20:13 ` Tom Herbert
2015-12-04 21:37 ` David Miller
2015-12-04 20:26 ` Hannes Frederic Sowa
2015-12-04 20:43 ` Tom Herbert
2015-12-04 21:11 ` Hannes Frederic Sowa
2015-12-04 20:44 ` Jesse Gross
2015-12-04 22:44 ` Alexander Duyck
2015-12-05 0:53 ` Tom Herbert
2015-12-05 5:45 ` Alexander Duyck
2015-12-05 6:49 ` David Miller
2015-12-05 8:24 ` Alexander Duyck
2015-12-05 17:53 ` Tom Herbert
2015-12-05 19:34 ` Alexander Duyck
2015-12-05 18:03 ` David Miller
2015-12-05 19:34 ` Alexander Duyck
2015-12-05 22:27 ` David Miller
2015-12-06 2:13 ` Alexander Duyck
2015-12-06 16:31 ` Tom Herbert
2015-12-06 18:44 ` Alexander Duyck
2015-12-06 21:30 ` Tom Herbert
2015-12-07 1:20 ` Alexander Duyck
2015-12-07 3:02 ` David Ahern
2015-12-07 16:20 ` Jesse Gross
2015-12-05 4:50 ` David Miller
2015-12-05 6:50 ` Alexander Duyck
2015-11-24 5:41 ` Alexander Duyck
2015-11-30 16:35 ` Tom Herbert
2015-11-30 21:53 ` Singhai, Anjali
2015-12-01 3:52 ` David Miller
2015-11-23 21:02 ` [PATCH v1 2/6] net: Add a generic udp_offload_get_port function Anjali Singhai Jain
2015-11-24 6:08 ` Alexander Duyck
2015-11-24 6:37 ` Alexander Duyck
2015-11-24 19:35 ` Singhai, Anjali
2015-11-23 21:02 ` [PATCH v1 3/6] i40e: Generalize the flow for udp based tunnels Anjali Singhai Jain
2015-11-23 21:02 ` [PATCH v1 4/6] i40e: Remove CONFIG_I40E_VXLAN Anjali Singhai Jain
2015-11-23 21:02 ` [PATCH v1 5/6] net: Refactor udp_offload and add Geneve port offload support Anjali Singhai Jain
2015-11-23 21:02 ` [PATCH v1 6/6] i40e:Add geneve tunnel " Anjali Singhai Jain
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='CALx6S34vso438+85ggvzkkCQBPRA7f6tHv1qtwVqq=tuxG=uJQ@mail.gmail.com' \
--to=tom@herbertland.com \
--cc=anjali.singhai@intel.com \
--cc=davem@davemloft.net \
--cc=jesse.brandeburg@intel.com \
--cc=jesse@kernel.org \
--cc=kiran.patil@intel.com \
--cc=netdev@vger.kernel.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).