From: Alexander Duyck <alexander.duyck@gmail.com>
To: Saeed Mahameed <saeedm@dev.mellanox.co.il>
Cc: Matthew Finlay <Matt@mellanox.com>,
Alexander Duyck <aduyck@mirantis.com>,
Eugenia Emantayev <eugenia@mellanox.com>,
Bruce W Allan <bruce.w.allan@intel.com>,
Saeed Mahameed <saeedm@mellanox.com>,
Linux Netdev List <netdev@vger.kernel.org>,
intel-wired-lan <intel-wired-lan@lists.osuosl.org>,
Ariel Elior <ariel.elior@qlogic.com>,
Michael Chan <mchan@broadcom.com>
Subject: Re: [RFC PATCH 2/5] mlx5: Add support for UDP tunnel segmentation with outer checksum offload
Date: Fri, 29 Apr 2016 12:36:23 -0700 [thread overview]
Message-ID: <CAKgT0UemjkzHNHvsp5wb4-OcJB0r3tksKKOVpx5tkRAOB2=ipw@mail.gmail.com> (raw)
In-Reply-To: <CALzJLG8yme_8a+aH+2VT8atq0wrEK208K1HB-iSQUtDipAyPXA@mail.gmail.com>
On Fri, Apr 29, 2016 at 12:27 PM, Saeed Mahameed
<saeedm@dev.mellanox.co.il> wrote:
> On Fri, Apr 29, 2016 at 4:59 AM, Alexander Duyck
> <alexander.duyck@gmail.com> wrote:
>> On Thu, Apr 28, 2016 at 6:18 PM, Matthew Finlay <Matt@mellanox.com> wrote:
>>>
>>>
>>>
>>>
>>>
>>>>>
>>>>> The mlx5 hardware requires the outer UDP checksum is not set when offloading encapsulated packets.
>>>>
>>>>The Intel documentation said the same thing. That was due to the fact
>>>>that the hardware didn't computer the outer UDP header checksum. I
>>>>suspect the Mellanox hardware has the same issue. Also I have tested
>>>>on a ConnectX-4 board with the latest firmware and what I am seeing is
>>>>that with my patches applied the outer checksum is being correctly
>>>>applied for segmentation offloads.
>>>>
>>>>My thought is that that the hardware appears to ignore the UDP
>>>>checksum so if it is non-zero you cannot guarantee the checksum would
>>>>be correct on the last frame if it is a different size than the rest
>>>>of the segments. In the case of these patches that issue has been
>>>>resolved as I have precomputed the UDP checksum for the outer UDP
>>>>header and all of the segments will be the same length so there should
>>>>be no variation in the UDP checksum of the outer header. Unless you
>>>>can tell my exactly the reason why we cannot provide the outer UDP
>>>>checksum I would assume that the reason is due to the fact that the
>>>>hardware doesn't compute it so you cannot handle a fragment on the end
>>>>which is resolved already via GSO_PARTIAL.
>>>
>>> I will check internally and verify there are no unforeseen issues with setting the outer UDP checksum in this scenario.
>>
>> Thanks. Any idea how long it should be. I know I was getting a
>> auto-reply about people being out until May 1st due to a holiday so I
>> am just wondering if we should have Dave drop this patch set and I
>> submit a v2 when you can get me the feedback next week, or if we run
>> with the patches as-is for now and be prepared to revert if anything
>> should come up.
>>
>
> Alex,
>
> I reviewed your patches and other than the claim about mlx4,
> everything seems to be ok.
> I took the liberty to apply your patches and play around with them
> only on mlx5 for now,
> It seems that it works and HW do correctly calculate the IPv6 outer
> UDP sum as illustrated in the log from the tcpdump on the receiver
> [1], I also noticed that the GSO also works on the xmitter and the HW
> ignores the outer sum as expected.
>
> Matt, I think you still need to do the homework and see if we didn't
> miss anything here, but theoretically and practically what Alex did
> here should work.
> Tariq will also check what went wrong with mlx4 outer ipv6 support,
> but this shouldn't block this series.
>
> Side notes:
> - Alex, you will need to rebase the series, it didn't apply smoothly.
> - BTW mlx5 on RX side will provide csum complete and not csum unnecessary.
>
> Saeed.
>
> [1]
> 21:28:15.474287 e4:1d:2d:5c:f2:e8 > e4:1d:2d:5c:f2:d4, ethertype IPv6
> (0x86dd), length 1514: (hlim 64, next-header UDP (17) payload length:
> 1460) 2001::37:4.58006 > 2001::36:4.4789: [udp sum ok] VXLAN, flags
> [I] (0x08), vni 46
> 66:cb:6e:a4:31:4e > b6:bf:9b:61:31:62, ethertype IPv4 (0x0800), length
> 1444: (tos 0x0, ttl 64, id 64920, offset 0, flags [DF], proto TCP (6),
> length 1430)
> 56.0.37.4.53614 > 56.0.36.4.commplex-link: Flags [.], cksum 0xd6cc
> (correct), seq 1911713070:1911714448, ack 1, win 218, options
> [nop,nop,TS val 183853011 ecr 183840106], length 1378
Thanks. I'll probably resubmit next week after your latest set of 12
patches gets applied.
- Alex
next prev parent reply other threads:[~2016-04-29 19:36 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-19 19:05 [RFC PATCH 0/5] Add GSO Partial support for devices with existing tunnel offloads Alexander Duyck
2016-04-19 19:05 ` [RFC PATCH 1/5] mlx4: Add support for UDP tunnel segmentation with outer checksum offload Alexander Duyck
2016-04-19 19:06 ` [RFC PATCH 2/5] mlx5: " Alexander Duyck
2016-04-20 17:40 ` Saeed Mahameed
2016-04-20 18:06 ` Alexander Duyck
2016-04-28 21:43 ` Matthew Finlay
2016-04-28 22:04 ` Alexander Duyck
2016-04-29 1:18 ` Matthew Finlay
2016-04-29 1:59 ` Alexander Duyck
2016-04-29 19:27 ` Saeed Mahameed
2016-04-29 19:36 ` Alexander Duyck [this message]
2016-04-19 19:06 ` [RFC PATCH 3/5] bnx2x: Add support for segmentation of tunnels with outer checksums Alexander Duyck
2016-08-24 12:33 ` Yuval Mintz
2016-08-24 15:39 ` Alexander Duyck
2016-08-25 5:06 ` Yuval Mintz
2016-08-25 18:26 ` Alexander Duyck
2016-08-31 11:31 ` Yuval Mintz
2016-08-31 16:13 ` Alexander Duyck
2016-04-19 19:06 ` [RFC PATCH 4/5] bnxt: " Alexander Duyck
2016-04-27 5:55 ` Michael Chan
2016-04-27 15:21 ` Alexander Duyck
2016-04-28 4:32 ` Michael Chan
2016-04-29 21:17 ` Alexander Duyck
2016-04-29 21:29 ` Michael Chan
2016-04-29 21:31 ` Alexander Duyck
2016-04-29 23:29 ` Michael Chan
2016-04-29 23:39 ` Alexander Duyck
2016-04-19 19:06 ` [RFC PATCH 5/5] fm10k: Add support for UDP tunnel segmentation with outer checksum offload Alexander Duyck
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='CAKgT0UemjkzHNHvsp5wb4-OcJB0r3tksKKOVpx5tkRAOB2=ipw@mail.gmail.com' \
--to=alexander.duyck@gmail.com \
--cc=Matt@mellanox.com \
--cc=aduyck@mirantis.com \
--cc=ariel.elior@qlogic.com \
--cc=bruce.w.allan@intel.com \
--cc=eugenia@mellanox.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=mchan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=saeedm@dev.mellanox.co.il \
--cc=saeedm@mellanox.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).