Kireeti Kompella Juniper Networks ECMP with RSVP-TE Kireeti Kompella Juniper Networks
Outline Current situation LDP vs. TE ECMP NxTE LSPs vs. TE ECMP MLSP Signaling Next steps
Current Situation An MPLS network relies on an underlying LSP mesh connecting all edge devices In principle, this could be IP tunnels This may be based on LDP or RSVP-TE, or sometimes a combination of LDP on the edge and RSVP-TE in the core There are a number of attributes that dictate the design
LSP Design Attributes Attribute RSVP-TE LDP Ease of configuration ✖ ✔ FRR TE, CAC, BW guarantees ECMP
Either/or … Why Not Both? Can one create an underlying mesh of tunnels that has both TE and ECMP? Yes! Introduce the notion of a “multi-path” TE LSP signaled using RSVP Several “sub-LSPs” under one container tunnel Note that the state required for RSVP-TE is still higher (O(N^2)) than that for LDP (O(N))
Illustration (LDP vs. TE ECMP) 200 Mbps LSP from A to B 100 25 160 40 A B
NxTE LSPs vs. TE ECMP MLSP 200 Mbps MLSP from A to B vs. 5 40Mbps TE LSPs A B
Discussion NxLSPs requires N things to provision and manage; an MLSP is a single object with N sub-objects An MLSP with N sub-LSPs may (depending on the topology) have significantly less state than N LSPs The use of equi-bandwidth sub-LSPs can also significantly reduce state
Discussion Computing the NxLSPs is done pretty much independent The number and placement of the LSPs may not be optimized for the purpose of ECMP Failure of one of the N LSPs means that the overall bandwidth drops (e.g., by 40Mbps) Failure of one sub-LSP can be compensated by the head end bumping up the bandwidths of the rest
Signaling The current draft talks a little bit about signaling Basic idea: signal N sub-LSPs, and tie them together via a Session object to form an MLSP Introduce the idea of “equi-bandwidth” sub-LSPs If this draft is of interest, the signaling piece would probably need more work Have to work out how FRR and DiffServ-awareness work in the context of MLSPs
Next Steps Get a sense of how useful this is