On 01/19/2012 04:08 PM, Thomas Eichhorn wrote:
Dear all,

I just had some discussions with our SE about the
hashing algorithms used in different devices for
packet distribution on LAG.

This seems to be a horrible complexe topic, with
much sensible information behind - the exact algorithm
seems to be much of a secret.

I just wonder why, maybe my idea ist just a little
bit naive, but I hope somebody here can bring some clarification
into it:

If I were to implement such a distribution algorithm,
I would just define a range of bits of the headers,
and do a modulo (number of member links) with it.

The range of bits could say: Only from Byte 9 to 20 for
using the mac-adresses, or a longer part of the header
if including MPLS-labels.

Am I completely wrong and there is much more magic
behind? Has somebody here an deep insight and might
share it with us?

What are you asking here?

How does it work?

To which the answer is "much as you described". However, it normally is "range of bits, pushed through a hash function to generate an N-bit output, which is used as an index into an N-bucket output interface list"

E.g. if N==3 you can have a max of 8 links in a channel; but if you have 3 links in the channel, the output buckets will look like

11122233

...so link 3 will never have >25% of the traffic. Obviously larger N is better but more expensive to implement.

Or:

Why don't they tell you how it works?

The answer to the latter is usually "because they did the cheapest thing they could get away with, and don't want to tell you the product has poor functionality in this area".
_______________________________________________
juniper-nsp mailing list juniper-nsp@puck.nether.net
https://puck.nether.net/mailman/listinfo/juniper-nsp

Reply via email to