PCE Working Group | D. Dhody |
Internet-Draft | U. Palle |
Intended status: Experimental | Huawei Technologies India Pvt Ltd |
Expires: January 31, 2013 | August 2012 |
Supporting explicit-path per destination in Path Computation Element Communication Protocol (PCEP) P2MP Path Request Message.
draft-dhody-pce-pcep-p2mp-per-destination-02
The ability to determine paths of point-to-multipoint (P2MP) Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering Label Switched Paths (TE LSPs) is one the key requirements for Path Computation Element (PCE). [RFC6006] and [PCE-P2MP-PROCEDURES] describes these mechanisms for intra and inter domain environment.
Explicit Path in this document refers to the configured list of network elements that MUST be traversed or MUST be excluded in the final path computation. This should not be confused with the RSVP terminology. Network elements can further be strict or loose hop.
This document describes extensions to the PCE communication Protocol (PCEP) to define explicit-path per destination in P2MP context.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http:/⁠/⁠datatracker.ietf.org/⁠drafts/⁠current/⁠.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 31, 2013.
Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http:/⁠/⁠trustee.ietf.org/⁠license-⁠info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
The Path Computation Element (PCE) architecture is defined in [RFC4655]. [RFC5862] mentions a P2MP PCE MUST be able to provide to the path computation a limiting set of nodes that can be used as branches for a P2MP path computation, or to provide a list of nodes that must not be used as branch points. This document mention the need to specify the branch points (or explict path) per destination.
[RFC6006] describe a PCE-based path computation procedure to compute optimal constrained (G)MPLS P2MP TE LSPs. It also defines the format of path request message used in P2MP, which limits explicit path in form of IRO/XRO; to be applied to full P2MP tunnel and thus to only the common path to all leaves.
This document describes the need for supporting explicit-path per destination in intra and inter-domain P2MP scenario. It further lists the path request format and mode of operations
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
The following terminology is used in this document.
In the Figure 1 below, D1 is the root domain; D5 and D6 are the destination domains.
| | +-------------+ +----------------+ | |D 3 | |D 6 | | | +--+| | +--+ | | | | || | | | | | | +--+ +--+| | +--+ +--+ | | | | | | | | | | | | *--+ | | +--+ | | | / +--+ | | +--+ | | |/ | | | | | | | | / +--+ | | +--+ +--+ | | /| +--+ |+--------------+| | | | |/ | | | ++-+ +-++ +--+ | +-------------+/ | +--+ || | | || | | /| | ++-+ +-++ | | +--*|| +-------------+| |+----------------+ | | ||| | +--+ | | +--+|| | | | | | +--+ || | +--+ | | | | || | | | +--+ || | | | || | +--+ | |+--+ || | | | | || | || | +--+ | |+--+ || | | | || | +--+ | | +--+ || +------------+ | | | |+----------------+ | | | || |D 2 +-++ +--+ +-++ D 5 | | +--+ || | | || | || | | || | +-++ +-++ | | +--+|| | +--+ | | D 4 || +--+ | | | ||| | | | | +--------------+| | | | | +--*|| | +--+ | | +--+ | | \| | | | +--+ | |D 1 |\ | +--+ | | +--+ | | | +-------------+|\ | | | | | | | +--+ | | \| +--+ +--+ | +--+ | | \ | | | | | |\ +--+ | +--+ | | | \ +--+ | | | | | | | \| | | | +--+ | | | *--+ | | | | | | | | | +------------+ +----------------+ | | As 100 | AS 200 |
Figure 1: Domain Topology Example
[PCE-P2MP-PROCEDURES] defines inter-domain P2MP path computation procedure and assumes that the sequence of domains for a path (the path domain tree) will be known in advance due to deployment and commercial limitations (e.g., inter-AS peering agreements). In the Figure 2 below, the P2MP tree spans 5 domains. Destination in D6 would use the domain-sequence: D1-D3-D4-D6; and destination in D5 would use the domain-sequence: D1-D3-D4-D5.
D3 D6 / \ / D1 D4 \ D5
Figure 2: Domain Sequence Tree
Since different destinations will have different domain sequence within the domain tree, it requires domain-sequence to be encoded in form of IRO to be attached per destination. It cannot be encoded for all destinations.
Thus domain-sequence encoded in form IRO (as per [DOMAIN-SEQ]) should be attached to destinations and not attached to full P2MP tree.
Administrator at the source can exert stronger control by providing explicit path (include, exclude, loose etc) per destination.
In Figure 3 shows the common path over which a common explicit path in form of IRO and/or XRO can be set.
+---+ | F | /*---+ // // // // +---+ +---+ +---+ +---* +---+ | A +--+ B +--+ C +--+ D +---------+ E | +---+ +---+ +---+ +---*\ +---+ | | \\ | | \\ | | \\ | | \\ |<-----common path------>| *---+ | | | G | | | +---+ Explicit Path Here
Figure 3: Example
But as shown in Figure 4, once new destinations are added and branch points are much nearer to ingress causing common path to reduce, the administrator would not be able to apply the explicit path as before.
+---+ +---+ | H | | F | *---+ /*---+ // // // // / // // // +---+ +---* +---+ +---* +---+ | A +--+ B +--+ C +--+ D +---------+ E | +---+ +---+ +---* +---*\ +---+ | | \\ \\ | | \\ \\ |<-------->| \\ \\ | Common | \\ \\ | path | *---+ *---+ | | | I | | G | | | +---+ +---+ | | | |
Figure 4: Example
Basic MPLS TE P2MP Tunnel configurations for various operators support the configuration of explicit-path per destination. In some operators where preconfigured path must be setup, during configurations the path to each destination is configured as an explicit path and attached to each destination.
It makes sense to apply explict path per destination instead of the full P2MP tree.
[RFC6006] defines Request Message Format and Objects, along with <end-point-rro-pair-list>. This section introduce the concept of <iro-list>, <xro-list> and <metric-list> which are added to the <end-point-rro-pair-list> to support ‘per destination’.
Use of <iro-list>, <xro-list> to carry explicit-path per destination in intra-domain scenario.
Use of <iro-list> to carry domain-sequence per destination in inter-domain scenario.
Use of <metric-list> to carry metric value of each calculated path encoded in <rro-list>. In case of reoptimization of a P2MP tree, each calculated S2L path MUST be accompanied by metric value.
To carry explicit path for each destination, <END-POINTS> objects need to be ordered and grouped in a way such that IRO object, XRO object, RRO object and METRIC object can be associated with each destination.
The format of PCReq message is modified as follows: <PCReq Message>::= <Common Header> <request> where: <request>::= <RP> <end-point-iro-xro-rro-metric-list> [<OF>] [<LSPA>] [<BANDWIDTH>] [<metric-list>] [<IRO>] [<LOAD-BALANCING>] where: <end-point-iro-xro-rro-metric-list> ::= <END-POINTS> [<IRO-List>] [<XRO-List>] [<RRO-List>] [<metric-list>] [<end-point-iro-xro-rro-metric-list >] <RRO-List>::=<RRO>[<BANDWIDTH>][<RRO-List>] <metric-list>::=<METRIC>[<metric-list>] <IRO-List>::=<IRO>[<IRO-List>] <XRO-List>::=<XRO>[<XRO-List>]
From [RFC6006] usage of <end-point-rro-pair-list> is changed to <end-point-iro-xro-rro-metric-list> in this document.
Note that the new format is backward compatible to [RFC6006] format.
Multiple destinations are encoded into a single ENDPOINTS object, Each Endpoint maybe followed by multiple lists of IROs, XROs, RROs or METRICs. The first <IRO> object would belong to the first destination, the second <IRO> object to the second destination and hence forth. The first <XRO> object would belong to the first destination, the second <XRO> object to the second destination and hence forth…
Note that a destination (P2MP tree leaf) MAY have
To maintain the ordering between the destination and objects in the list, there MAYBE a need to divide a set of destinations into multiple ENDPOINTS, this explained in below example.
Destination 1 has include IRO1 and exclude XRO1
Destination 2 has only include IRO2
Destination 3 has only exclude XRO3
Destination 4 has only exclude XRO4
Destination 5 has none
Here if we try to encode all destinations in one <ENDPOINT> and objects in list, we will not map XRO3 to destination 3, the rule is to map sequentially and thus XRO3 will belong to destination 2.
To avoid this we must break the set of destinations into two sets as shown below
+-----------------------------+ | Leaf Type | +-----------------------------+ | Source IP | +-----------------------------+ +------> | Destination 1 | <ENDPOINT> | +-----------------------------+ | +-> | Destination 2 | | * +-----------------------------+ | * | Destination 5 | | * +-----------------------------+ | * | * +-----------------------------+ +----*-> | IRO1 | | * +-----------------------------+ | * | HOPI 1-1 | | * +-----------------------------+ | * | .... | <IRO-List> | * +-----------------------------+ with 2 IRO1, IRO2 | +-> | IRO2 | | +-----------------------------+ | | HOPI 2-1 | | +-----------------------------+ | | .... | | +-----------------------------+ | | +-----------------------------+ +-----> | XRO1 | +-----------------------------+ <XRO-List> | HOPX 1-1 | with 1 XRO1 +-----------------------------+ | .... | +-----------------------------+
ENDPOINT1 carries destination 1, 2 and 5 and corresponding <iro-list> and <xro-list>. Here Destination 1 has IRO1 and XRO1; Destination 2 has IRO2; and Destination 5 has none.
+-----------------------------+ | Leaf Type | +-----------------------------+ | Source IP | +-----------------------------+ +------> | Destination 3 | <ENDPOINT> | +-----------------------------+ | +-> | Destination 4 | | * +-----------------------------+ | * | * +-----------------------------+ +----*-> | XRO3 | * +-----------------------------+ * | HOPX 3-1 | * +-----------------------------+ * | .... | <XRO-List> * +-----------------------------+ with 2 XRO3, XRO4 +-> | XRO4 | +-----------------------------+ | HOPX 4-1 | +-----------------------------+ | .... | +-----------------------------+
ENDPOINT2 carries destination 3 and 4 and corresponding <xro-list> only. Here destination 3 maps to XRO3 and Destination 4 to XRO4.
TBD
PCEP security mechanisms as described in [RFC6006] and [PCE-P2MP-PROCEDURES] are applicable for this document. This document does not add any new security threat.
Mechanisms defined in this document do not add any new control function/policy requirements in addition to those already listed in [RFC6006].
Mechanisms defined in this document do not imply any new MIB requirements in addition to those already listed in [PCE-P2MP-MIB].
Mechanisms defined in this document do not imply any new liveness detection and monitoring requirements in addition to those already listed in [RFC6006].
Mechanisms defined in this document do not imply any new operation verification requirements in addition to those already listed in [RFC6006].
Mechanisms defined in this document do not imply any requirements on other protocols in addition to those already listed in [RFC6006].
Mechanisms defined in this document do not have any impact on network operations in addition to those already listed in [RFC6006].
We would like to thank Pradeep Shastry, Suresh babu, Quintin Zhao, Daniel King and Chen Huaimo for their useful comments and suggestions.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |