Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Jul 2014 18:41:34 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        "Pieper, Jeffrey E" <jeffrey.e.pieper@intel.com>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>, Hooman Fazaeli <hoomanfazaeli@gmail.com>, "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org>
Subject:   Re: UDP/TCP versus IP frames - subtle out of order packets with hardware hashing
Message-ID:  <CAJ-Vmok0LGgcbqhv1NN6Y72qdcZYkp%2BTt3hCe=a_vxaL1ceFYQ@mail.gmail.com>
In-Reply-To: <2A35EA60C3C77D438915767F458D65687E8FC789@ORSMSX111.amr.corp.intel.com>
References:  <CAJ-VmomUNJ23CHLLX2qryAuE2XQyBmo30du3MuRnobs%2BwEkguA@mail.gmail.com> <53C4EE00.5090705@gmail.com> <2A35EA60C3C77D438915767F458D65687E8FC789@ORSMSX111.amr.corp.intel.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 15 July 2014 18:01, Pieper, Jeffrey E <jeffrey.e.pieper@intel.com> wrote:
> I believe the Linux driver DOES however support UDP RSS port hash. It is used for environments where you can ensure there is no fragmentation. In such use cases, this allows for a significant performance benefit.
>

Right.

For my RSS hacking, I've added a new in_rss.c function that returns
the currently supported hashes, so it'll be possible for an
administrator to define whether to support UDP hashing on 4-tuple or
2-tuple.

I plan on adding a software hash calculation function to optionally
calculate the 2-tuple or 4-tuple RSS hash as appropriately required so
it can be run after IP reassembly if it's required. So, if the admin
wants a 4-tuple UDP hash and it receives fragmented UDP, then it will
re-assemble, calculate 4-tuple and kick it up. If they want 2-tuple,
then it'll only calculate a software hash if it wasn't given one by
the driver.

Argh, so many weird corner cases to handle and I haven't even started
hacking on the memcached/varnish stuff :(

Thanks!



-a



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmok0LGgcbqhv1NN6Y72qdcZYkp%2BTt3hCe=a_vxaL1ceFYQ>