Hi Brian,

Brian E Carpenter wrote:
I may have not quite understood the comments about ECMP
and the flow label in 6man today. But here goes:

The flow label spec in RFC3697 says, very carefully and
precisely:

   IPv6 nodes MUST NOT assume any mathematical or other properties of
   the Flow Label values assigned by source nodes.  Router performance
   SHOULD NOT be dependent on the distribution of the Flow Label values.
   Especially, the Flow Label bits alone make poor material for a hash
   key.

This seems to be frightening people. The point is that, although we'd
like the flow labels to be widely scattered across the 2^20 possible
values, we can't be certain that arbitrary sources will generate that
with adequate randomness. Since we didn't know when we wrote RFC3697,
and don't know today, which end-to-end use cases for the flow label
will emerge, we can't make any mathematical assumptions about the
actual randomness. In fact, today, the average value of the flow label
is essentially indistinguishable from zero.

The key word in the above extract is "alone". If you want use a hash
to drive ECMP, don't just hash the flow label, because you'll very
likely always get the same answer.

Completely agree.


If you currently use a 5-tuple for an ECMP hash, expand it to a
6-tuple by adding the flow label.

In a previous gig, I spent some time looking at the use of the flow label for ECMP and came to a slightly different conclusion. *If* the source node set the flow label using some heuristic, the ECMP hash could be changed to a 4-tuple of DA, SA, Proto, and Flow Label. This would allow efficient ECMP hashing in situations where the port numbers were hidden via encryption.

Of course, that is predicated on the source node setting the flow label...

Regards,
Brian
--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

Reply via email to