Flow ID, LACP, and igb

Barney Cordoba barney_cordoba at yahoo.com
Sun Sep 1 02:18:29 UTC 2013


No, no. The entire point of the hash is to separate the "connections". But when testing you should
use realistic assumptions. You're not splitting packets, so the big packets will mess up your distribution
if you don't get it right. 

Of course there's nothing really wrong with OOO packets. We had this discussion before; lots of people
have round robin dual homing without any ill effects. It's just not an issue.


BC

________________________________
 From: T.C. Gubatayao <tgubatayao at barracuda.com>
To: Barney Cordoba <barney_cordoba at yahoo.com>; Luigi Rizzo <rizzo at iet.unipi.it>; Alan Somers <asomers at freebsd.org> 
Cc: Jack F Vogel <jfv at freebsd.org>; Justin T. Gibbs <gibbs at freebsd.org>; Andre Oppermann <andre at freebsd.org>; "net at freebsd.org" <net at freebsd.org> 
Sent: Saturday, August 31, 2013 9:38 PM
Subject: RE: Flow ID, LACP, and igb
 

On Sat, Aug 31, 2013 at 8:41 AM, Barney Cordoba <barney_cordoba at yahoo.com> wrote:

> Also, the *most* important thing is distribution with realistic data. The goal
> should be to use the most trivial function that gives the most balanced
> distribution with real numbers. Faster is not better if the result is an
> unbalanced distribution.

Agreed, with a caveat.  It's critical that this distribution be by "flow", so
that out of order packet delivery is minimized.

> Many of your ports will be 80 and 53, and if you're going through a router
> your ethernets may not be very unique, so why even bother to include them?
> Does getting a good distribution require that you hash every element
> individually, or can you get the same distribution with a faster, simpler way
> of creating the seed?
>
> There's also the other consideration of packet size. Packets on port 53 are
> likely to be smaller than packets on port 80. What you want is equal
> distribution PER PORT on the ports that will carry that vast majority of your
> traffic.

Unfortunately, trying to evenly distribute traffic per port based on packet
size will likely result in the reordering of packets, and bandwidth wasted on
TCP retransmissions.

> Or better yet, use the same number of queues on igb as you have LAGG ports,
> and use the queue id (or RSS) as the hash, so that your traffic is sync'd
> between the ethernet adapter queues and the LAGG ports. The card has already
> done the work for you.

Isn't this hash for selecting an outbound link?  The ingress adapter hash (RSS)
won't help for packets originating from the host, or for packets that may have
been translated or otherwise modified while traversing the stack.

T.C.
_______________________________________________
freebsd-net at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"


More information about the freebsd-net mailing list