Hi Margaret,

Apologies for the delay, but it took some time to follow-up with some vendors. See below.

On Aug 5, 2009, at 12:33 MDT, Margaret Wasserman wrote:
Hi Shane,

On Aug 5, 2009, at 12:50 PM, Shane Amante wrote:

To bring this back up a level, while it's /possible/ to encourage vendors to adopt the IPv6 flow-label as input-keys to their hash- calculations for LAG/ECMP, it takes [a lot] of time to see that materialize in the field. Practically, you're probably looking at somewhere between, at best, a 3 - 5 year window, before it will actually appear in live, production networks, given that it has to be prioritized for development at the vendor, tested, released in software, then re-tested by the SP and, finally, deployed. That's not an "easy" process that happens in the blink-of-an-eye. That's not to say that we (SP's) should not "encourage" vendors to do this, anyway, (we are/will) however if LISP (or other protocols like it that depend on tunneling) quickly gain traction, we need a way to deal with these traffic flows in our networks today, without telling customers: "turn off protocol <FOO>, because we can't deliver your packets".

ECMP of LISP flows is an optimization that only matters when there is a large amount of LISP traffic, right?

ECMP _and_ LAG. But, in short, you're correct. However, given the dominant link speed deployed in today's networks is 10G, (which are then lashed together in N x 10G LAG and/or ECMP paths), then we clearly don't want anything near that size of single flows on these links otherwise this will have a detrimental effect on the performance of other "well-behaved" traffic that is being evenly spread over parallel links.


Do you think there is a reasonable chance that LISP would be widely- enough to deployed to require this optimization in less than 3-to-5 years?

My crystal ball is out-of-service. In other words, that's difficult to say, given that LISP is currently pursuing a "Experimental" track. However, assuming the experiment is successful, then it's pretty safe to assume folks would want to quickly turnaround (with the methods & protocols already developed and tested during the Experiment) and turn that straight into a production service. So, IMO, it's best if we try to get this "good enough" from the beginning and not hamper its deployment by requiring networks to adapt before LISP, for example, could really take off (at least, in the short-term).

Furthermore, given the LISP folks believe this is the first "iteration" of LISP, there may be 'natural' points in the LISP evolution path (for example, to support better mapping functions) where it makes sense to consider evolving the encapsulation (for example, to support flow-labels instead of UDP encaps), as well. I would argue, though, to get to those 'natural' points people will need to experiment with LISP to find out what works, and doesn't work, and bring that back to the IETF community to figure when & how to evolve LISP.


Perhaps one way to satisfy the parties in this conversation would be something along the following lines: - LISP, and other protocols that wish to use tunneling, adopt UDP- lite (or UDP w/ 0 checksums) as a MUST for near-term deployment; - LISP, and other protocols that wish to use tunneling, adopt IP-in- IPv6 tunneling with a flow-label required in the outer IPv6 header as a "SHOULD" for medium- to long-term deployments. ... assuming vendors successfully adopt the IPv6 flow-label as input-keys in their hash calculations at some point in the future, we come back and deprecate the UDP/IPv6 tunnel method and elevate IP-in-IPv6 w/ flow-labels to a MUST.

I would agree to this statement if one of two things were to happen: (1) we were to remove "(or UDP w/0 checksums) -- making UDP- Lite a MUST in the near term", or (2) we were to satisfy ourselves that using zero checksums will not represent an operational problem for LISP, or for other applications that need to co-habitate with LISP, and we were to add a normative dependency on a document (like Marshall's, with edits) that would allow the use of UDP w/0 checksums over IPv6 in some cases, with LISP being an example of a case where this was appropriate.

Based on my conservations with several vendors, flow-based load- balancing over LAG/ECMP paths is currently NOT accounting for the following in their input-keys to LAG/ECMP hash algorithms:
1)  IPv6 flow-label; or,
2) UDP-lite (since, UDP-lite uses a different protocol ID [137] compared to standard UDP [17]). In other words, if routers see UDP- lite (Protocol ID: 137), the router will revert back to just using Src/ Dst IPv6 Addresses and will not have the benefit of being exposed to the finer granularity of micro-flows that are denoted by varying the Src/Dst Layer-4 (UDP-lite) ports.

Therefore, I'll have to revise my original recommendation in the first bullet above that we only consider UDP with 0 checksums as the preferred short-term solution when IPv6 is being used as the outer encapsulation, (unless someone has a better idea that haven't been brought forth, yet).

-shane
--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email protected]
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

Reply via email to