draft-ietf-mpls-rsvp-te-p2mp-03.txt | draft-ietf-mpls-rsvp-te-p2mp-04.txt | |||
---|---|---|---|---|
Network Working Group R. Aggarwal (Editor) | Network Working Group R. Aggarwal (Editor) | |||
Internet Draft Juniper Networks | Internet Draft Juniper Networks | |||
Expiration Date: April 2006 | Expiration Date: October 2006 | |||
D. Papadimitriou (Editor) | D. Papadimitriou (Editor) | |||
Alcatel | Alcatel | |||
S. Yasukawa (Editor) | S. Yasukawa (Editor) | |||
NTT | NTT | |||
October 2005 | April 2006 | |||
Extensions to RSVP-TE for Point to Multipoint TE LSPs | Extensions to RSVP-TE for Point to Multipoint TE LSPs | |||
draft-ietf-mpls-rsvp-te-p2mp-03.txt | draft-ietf-mpls-rsvp-te-p2mp-04.txt | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
skipping to change at page 3, line 23 | skipping to change at page 3, line 23 | |||
4.3 Sub-Groups ............................................ 6 | 4.3 Sub-Groups ............................................ 6 | |||
4.4 S2L Sub-LSPs .......................................... 7 | 4.4 S2L Sub-LSPs .......................................... 7 | |||
4.4.1 Representation of a S2L Sub-LSP ....................... 7 | 4.4.1 Representation of a S2L Sub-LSP ....................... 7 | |||
4.4.2 S2L Sub-LSPs and Path Messages ........................ 7 | 4.4.2 S2L Sub-LSPs and Path Messages ........................ 7 | |||
4.5 Explicit Routing ...................................... 8 | 4.5 Explicit Routing ...................................... 8 | |||
5 Path Message .......................................... 10 | 5 Path Message .......................................... 10 | |||
5.1 Path Message Format ................................... 10 | 5.1 Path Message Format ................................... 10 | |||
5.2 Path Message Processing ............................... 11 | 5.2 Path Message Processing ............................... 11 | |||
5.2.1 Multiple Path Messages ................................ 12 | 5.2.1 Multiple Path Messages ................................ 12 | |||
5.2.2 Multiple S2L Sub-LSPs in one Path message ............. 13 | 5.2.2 Multiple S2L Sub-LSPs in one Path message ............. 13 | |||
5.2.3 Transit Fragmentation ................................. 14 | 5.2.3 Transit Fragmentation ................................. 15 | |||
5.2.4 Control of Branch Fate Sharing ........................ 15 | 5.2.4 Control of Branch Fate Sharing ........................ 15 | |||
5.3 Grafting .............................................. 15 | 5.3 Grafting .............................................. 16 | |||
6 Resv Message .......................................... 16 | 6 Resv Message .......................................... 16 | |||
6.1 Resv Message Format ................................... 16 | 6.1 Resv Message Format ................................... 16 | |||
6.2 Resv Message Processing ............................... 17 | 6.2 Resv Message Processing ............................... 18 | |||
6.2.1 Resv Message Throttling ............................... 18 | 6.2.1 Resv Message Throttling ............................... 19 | |||
6.3 Record Routing ........................................ 18 | 6.3 Record Routing ........................................ 19 | |||
6.3.1 RRO Processing ........................................ 18 | 6.3.1 RRO Processing ........................................ 19 | |||
6.4 Reservation Style ..................................... 19 | 6.4 Reservation Style ..................................... 19 | |||
7 PathTear Message ...................................... 19 | 7 PathTear Message ...................................... 20 | |||
7.1 PathTear Message Format ............................... 19 | 7.1 PathTear Message Format ............................... 20 | |||
7.2 Pruning ............................................... 20 | 7.2 Pruning ............................................... 20 | |||
7.2.1 Implicit S2L Sub-LSP Teardown ......................... 20 | 7.2.1 Implicit S2L Sub-LSP Teardown ......................... 20 | |||
7.2.2 Explicit S2L Sub-LSP Teardown ........................ 20 | 7.2.2 Explicit S2L Sub-LSP Teardown ........................ 21 | |||
8 Notify and ResvConf Messages .......................... 21 | 8 Notify and ResvConf Messages .......................... 21 | |||
8.1 Notify Messages ....................................... 21 | 8.1 Notify Messages ....................................... 21 | |||
8.2 ResvConf Messages ..................................... 22 | 8.2 ResvConf Messages ..................................... 23 | |||
9 Refresh Reduction ..................................... 23 | 9 Refresh Reduction ..................................... 24 | |||
10 State Management ...................................... 23 | 10 State Management ...................................... 24 | |||
10.1 Incremental State Update .............................. 23 | 10.1 Incremental State Update .............................. 24 | |||
10.2 Combining Multiple Path Messages ...................... 24 | 10.2 Combining Multiple Path Messages ...................... 25 | |||
11 Error Processing ...................................... 25 | 11 Error Processing ...................................... 26 | |||
11.1 PathErr Messages ...................................... 25 | 11.1 PathErr Messages ...................................... 26 | |||
11.2 ResvErr Messages ...................................... 26 | 11.2 ResvErr Messages ...................................... 27 | |||
11.3 Branch Failure Handling ............................... 26 | 11.3 Branch Failure Handling ............................... 27 | |||
12 Admin Status Change ................................... 27 | 12 Admin Status Change ................................... 28 | |||
13 Label Allocation on LANs with Multiple Downstream Nodes. 28 | 13 Label Allocation on LANs with Multiple Downstream Nodes ..28 | |||
14 P2MP LSP and Sub-LSP Re-optimization .................. 28 | 14 P2MP LSP and Sub-LSP Re-optimization .................. 29 | |||
14.1 Make-before-break ..................................... 28 | 14.1 Make-before-break ..................................... 29 | |||
14.2 Sub-Group Based Re-optimization ....................... 28 | 14.2 Sub-Group Based Re-optimization ....................... 29 | |||
15 Fast Reroute .......................................... 29 | 15 Fast Reroute .......................................... 30 | |||
15.1 Facility Backup ....................................... 29 | 15.1 Facility Backup ....................................... 30 | |||
15.2 One to One Backup ..................................... 30 | 15.1.1 Link Protection ....................................... 30 | |||
16 Support for LSRs that are not P2MP Capable ............ 30 | 15.1.2 Node Protection ....................................... 31 | |||
17 Reduction in Control Plane Processing with LSP Hierarchy. 32 | 15.2 One to One Backup ..................................... 31 | |||
18 P2MP LSP Remerging and Cross-Over ..................... 32 | 16 Support for LSRs that are not P2MP Capable ............ 32 | |||
18.1 Procedures ............................................ 33 | 17 Reduction in Control Plane Processing with LSP Hierarchy..34 | |||
18.1.1 Re-Merge Procedures ................................... 34 | 18 P2MP LSP Remerging and Cross-Over ..................... 34 | |||
19 New and Updated Message Objects ....................... 36 | 18.1 Procedures ............................................ 35 | |||
19.1 SESSION Object ........................................ 36 | 18.1.1 Re-Merge Procedures ................................... 36 | |||
19.1.1 P2MP LSP Tunnel IPv4 SESSION Object ................... 36 | 19 New and Updated Message Objects ....................... 38 | |||
19.1.2 P2MP LSP Tunnel IPv6 SESSION Object ................... 37 | 19.1 SESSION Object ........................................ 38 | |||
19.2 SENDER_TEMPLATE object ................................ 37 | 19.1.1 P2MP LSP Tunnel IPv4 SESSION Object ................... 38 | |||
19.2.1 P2MP LSP Tunnel IPv4 SENDER_TEMPLATE Object ........... 38 | 19.1.2 P2MP LSP Tunnel IPv6 SESSION Object ................... 39 | |||
19.2.2 P2MP LSP Tunnel IPv6 SENDER_TEMPLATE Object ........... 39 | 19.2 SENDER_TEMPLATE object ................................ 39 | |||
19.3 <S2L_SUB_LSP> Object .................................. 40 | 19.2.1 P2MP LSP Tunnel IPv4 SENDER_TEMPLATE Object ........... 40 | |||
19.3.1 <S2L_SUB_LSP> IPv4 Object ............................. 40 | 19.2.2 P2MP LSP Tunnel IPv6 SENDER_TEMPLATE Object ........... 40 | |||
19.3.2 <S2L_SUB_LSP> IPv6 Object ............................. 40 | 19.3 <S2L_SUB_LSP> Object .................................. 41 | |||
19.4 FILTER_SPEC Object .................................... 40 | 19.3.1 <S2L_SUB_LSP> IPv4 Object ............................. 41 | |||
19.4.1 P2MP LSP_IPv4 FILTER_SPEC Object ...................... 41 | 19.3.2 <S2L_SUB_LSP> IPv6 Object ............................. 42 | |||
19.4.2 P2MP LSP_IPv4 FILTER_SPEC Object ...................... 41 | 19.4 FILTER_SPEC Object .................................... 42 | |||
19.5 P2MP SECONDARY_EXPLICIT_ROUTE Object (SERO) ........... 41 | 19.4.1 P2MP LSP_IPv4 FILTER_SPEC Object ...................... 42 | |||
19.6 P2MP SECONDARY_RECORD_ROUTE Object (SRRO) ............. 41 | 19.4.2 P2MP LSP_IPv4 FILTER_SPEC Object ...................... 42 | |||
20 IANA Considerations ................................... 41 | 19.5 P2MP SECONDARY_EXPLICIT_ROUTE Object (SERO) ........... 43 | |||
20.1 New Class Numbers ..................................... 41 | 19.6 P2MP SECONDARY_RECORD_ROUTE Object (SRRO) ............. 43 | |||
20.2 New Class Types ....................................... 42 | 20 IANA Considerations ................................... 43 | |||
20.3 New Error Codes ....................................... 42 | 20.1 New Class Numbers ..................................... 43 | |||
20.4 LSP Attributes Flags .................................. 43 | 20.2 New Class Types ....................................... 43 | |||
21 Security Considerations ............................... 43 | 20.3 New Error Values ...................................... 44 | |||
22 Acknowledgements ...................................... 43 | 20.4 LSP Attributes Flags .................................. 45 | |||
23 Appendix .............................................. 43 | 21 Security Considerations ............................... 45 | |||
23.1 Example ............................................... 43 | 22 Acknowledgements ...................................... 45 | |||
24 References ............................................ 45 | 23 Appendix .............................................. 45 | |||
24.1 Normative References .................................. 45 | 23.1 Example ............................................... 45 | |||
24.2 Informative References ................................ 46 | 24 References ............................................ 47 | |||
25 Author Information .................................... 47 | 24.1 Normative References .................................. 47 | |||
25.1 Editor Information .................................... 47 | 24.2 Informative References ................................ 48 | |||
25.2 Contributor Information ............................... 47 | 25 Author Information .................................... 49 | |||
26 Intellectual Property ................................. 50 | 25.1 Editor Information .................................... 49 | |||
27 Full Copyright Statement .............................. 50 | 25.2 Contributor Information ............................... 49 | |||
28 Acknowledgement ....................................... 51 | 26 Intellectual Property ................................. 52 | |||
27 Full Copyright Statement .............................. 52 | ||||
28 Acknowledgement ....................................... 53 | ||||
1. Conventions used in this document | 1. Conventions used in this document | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC-2119 [KEYWORDS]. | document are to be interpreted as described in RFC-2119 [KEYWORDS]. | |||
2. Terminology | 2. Terminology | |||
This document uses terminologies defined in [RFC3031], [RFC2205], | This document uses terminologies defined in [RFC3031], [RFC2205], | |||
[RFC3209], [RFC3473] and [P2MP-REQ]. | [RFC3209], [RFC3473] and [RFC4461]. | |||
3. Introduction | 3. Introduction | |||
[RFC3209] defines a mechanism for setting up P2P TE LSPs in MPLS | [RFC3209] defines a mechanism for setting up P2P TE LSPs in MPLS | |||
networks. [RFC3473] defines extensions to [RFC3209] for setting up P2P | networks. [RFC3473] defines extensions to [RFC3209] for setting up | |||
TE LSPs in GMPLS networks. However these specifications do not | P2P TE LSPs in GMPLS networks. However these specifications do not | |||
provide a mechanism for building P2MP TE LSPs. | provide a mechanism for building P2MP TE LSPs. | |||
This document defines extensions to RSVP-TE protocol [RFC3209, | This document defines extensions to the RSVP-TE protocol [RFC3209, | |||
RFC3473] to support P2MP TE LSPs satisfying the set of requirements | RFC3473 to support P2MP TE LSPs satisfying the set of requirements | |||
described in [P2MP-REQ]. | described in [RFC4461]. | |||
This document relies on the semantics of RSVP that RSVP-TE inherits | This document relies on the semantics of RSVP that RSVP-TE inherits | |||
for building P2MP LSPs. A P2MP LSP is comprised of multiple S2L | for building P2MP LSPs. A P2MP LSP is comprised of multiple S2L sub- | |||
sub-LSPs. These S2L sub-LSPs are set up between the ingress and egress | LSPs. These S2L sub-LSPs are set up between the ingress and egress | |||
LSRs and are appropriately combined by the branch LSRs using RSVP | LSRs and are appropriately combined by the branch LSRs using RSVP | |||
semantics to result in a P2MP TE LSP. One Path message may signal one | semantics to result in a P2MP TE LSP. One Path message may signal one | |||
or multiple S2L sub-LSPs. Hence the S2L sub-LSPs belonging to a P2MP | or multiple S2L sub-LSPs. Hence the S2L sub-LSPs belonging to a P2MP | |||
LSP can be signaled using one Path message or split across multiple | LSP can be signaled using one Path message or split across multiple | |||
Path messages. | Path messages. | |||
Path computation and P2MP application specific aspects are outside of | Path computation and P2MP application specific aspects are outside | |||
the scope of this document. | the scope of this document. | |||
4. Mechanism | 4. Mechanism | |||
This document describes a solution that optimizes data replication by | This document describes a solution that optimizes data replication by | |||
allowing non-ingress nodes in the network to be replication/branch | allowing non-ingress nodes in the network to be replication/branch | |||
nodes. A branch node is a LSR that is capable of replicating the | nodes. A branch node is an LSR that is capable of replicating the | |||
incoming data on two or more outgoing interfaces. The solution relies | incoming data on two or more outgoing interfaces. The solution relies | |||
on RSVP-TE in the network for setting up a P2MP TE LSP. | on RSVP-TE in the network for setting up a P2MP TE LSP. | |||
The P2MP TE LSP is set up by associating multiple S2L TE sub-LSPs and | The P2MP TE LSP is set up by associating multiple S2L sub-LSPs and | |||
relying on data replication at branch nodes. This is described | relying on data replication at branch nodes. This is described | |||
further in the following sub-sections by describing P2MP Tunnels and | further in the following sub-sections by describing P2MP Tunnels and | |||
how they relate to S2L sub-LSPs. | how they relate to S2L sub-LSPs. | |||
4.1. P2MP Tunnels | 4.1. P2MP Tunnels | |||
The specific aspect related to P2MP TE LSP is the action required at | The specific aspect related to a P2MP TE LSP is the action required | |||
a branch node, where data replication occurs. Incoming MPLS labeled | at a branch node, where data replication occurs. Incoming MPLS | |||
data is appropriately replicated to several outgoing interfaces which | labeled data is appropriately replicated to several outgoing | |||
may have different labels. | interfaces which may have different labels. | |||
A P2MP TE Tunnel comprises of one or more P2MP LSPs. A P2MP TE Tunnel | A P2MP TE Tunnel comprises one or more P2MP LSPs. A P2MP TE Tunnel is | |||
is identified by a P2MP SESSION object. This object contains the | identified by a P2MP SESSION object. This object contains the | |||
identifier of the P2MP Session which includes the P2MP ID, a tunnel | identifier of the P2MP Session which includes the P2MP ID, a tunnel | |||
ID and an extended tunnel ID. | ID and an extended tunnel ID. | |||
The fields of a P2MP SESSION object are identical to those of the | The fields of a P2MP SESSION object are identical to those of the | |||
SESSION object defined in [RFC3209] except that the Tunnel Endpoint | SESSION object defined in [RFC3209] except that the Tunnel Endpoint | |||
Address field is replaced by the P2MP Identifier (P2MP ID) field. | Address field is replaced by the P2MP Identifier (P2MP ID) field. | |||
The P2MP ID provides an identifier for the set of destinations of the | The P2MP ID provides an identifier for the set of destinations of the | |||
P2MP TE Tunnel. | P2MP TE Tunnel. | |||
skipping to change at page 6, line 38 | skipping to change at page 6, line 38 | |||
ID, and Extended Tunnel ID that are part of the P2MP SESSION object, | ID, and Extended Tunnel ID that are part of the P2MP SESSION object, | |||
and the tunnel sender address and LSP ID fields of the P2MP | and the tunnel sender address and LSP ID fields of the P2MP | |||
SENDER_TEMPLATE object. The new P2MP SENDER_TEMPLATE object is | SENDER_TEMPLATE object. The new P2MP SENDER_TEMPLATE object is | |||
defined in section 20.2. | defined in section 20.2. | |||
4.3. Sub-Groups | 4.3. Sub-Groups | |||
As with all other RSVP controlled LSPs, P2MP LSP state is managed | As with all other RSVP controlled LSPs, P2MP LSP state is managed | |||
using RSVP messages. While use of RSVP messages is the same, P2MP LSP | using RSVP messages. While use of RSVP messages is the same, P2MP LSP | |||
state differs from P2P LSP state in a number of ways. The two most | state differs from P2P LSP state in a number of ways. The two most | |||
notable differences are that a P2MP LSP comprises multiple S2L | notable differences are that a P2MP LSP comprises multiple S2L Sub- | |||
Sub-LSPs and that, as a result of this, it may not be possible to | LSPs and that, as a result of this, it may not be possible to | |||
represent full state in a single IP packet and even more likely that it | represent full state in a single IP packet and even more likely that | |||
can't fit into a single IP packet. It must also be possible to | it can't fit into a single IP packet. It must also be possible to | |||
efficiently add and remove endpoints to and from P2MP TE LSPs. An | efficiently add and remove endpoints to and from P2MP TE LSPs. An | |||
additional issue is that P2MP LSP must also handle the state "remerge" | additional issue is that the P2MP LSP must also handle the state | |||
problem, see [P2MP-REQ]. | "remerge" problem, see [RFC4461]. | |||
These differences in P2MP state are addressed through the addition of | These differences in P2MP state are addressed through the addition of | |||
a sub-group identifier (Sub-Group ID) and sub-group originator | a sub-group identifier (Sub-Group ID) and sub-group originator (Sub- | |||
(Sub-Group Originator ID) to the SENDER_TEMPLATE and FILTER_SPEC | Group Originator ID) to the SENDER_TEMPLATE and FILTER_SPEC objects. | |||
objects. Taken together the Sub-Group ID and Sub-Group Originator ID | ||||
are referred to as the Sub-Group fields. | Taken together the Sub-Group ID and Sub-Group Originator ID are | |||
referred to as the Sub-Group fields. | ||||
The Sub-Group fields, together with rest of the SENDER_TEMPLATE and | The Sub-Group fields, together with rest of the SENDER_TEMPLATE and | |||
SESSION objects, are used to represent a portion of a P2MP LSP's | SESSION objects, are used to represent a portion of a P2MP LSP's | |||
state. This portion of a P2MP LSP's state refers only to signaling | state. This portion of a P2MP LSP's state refers only to signaling | |||
state and not data plane replication or branching. For example, it is | state and not data plane replication or branching. For example, it is | |||
possible for a node to "branch" signaling state for a P2MP LSP, but | possible for a node to "branch" signaling state for a P2MP LSP, but | |||
to not branch the data associated with the P2MP LSP. Typical | to not branch the data associated with the P2MP LSP. Typical | |||
applications for generation and use of multiple subgroups are adding | applications for generation and use of multiple subgroups are adding | |||
an egress and semantic fragmentation to ensure that a Path message | an egress and semantic fragmentation to ensure that a Path message | |||
remains within a single IP packet. | remains within a single IP packet. | |||
4.4. S2L Sub-LSPs | 4.4. S2L Sub-LSPs | |||
A P2MP LSP is constituted of one or more S2L sub-LSPs. | A P2MP LSP is constituted of one or more S2L sub-LSPs. | |||
4.4.1. Representation of a S2L Sub-LSP | 4.4.1. Representation of a S2L Sub-LSP | |||
A S2L sub-LSP exists within the context of a P2MP LSP. Thus it is | An S2L sub-LSP exists within the context of a P2MP LSP. Thus it is | |||
identified by the P2MP ID, Tunnel ID, and Extended Tunnel ID that are | identified by the P2MP ID, Tunnel ID, and Extended Tunnel ID that are | |||
part of the P2MP SESSION, the tunnel sender address and LSP ID fields | part of the P2MP SESSION, the tunnel sender address and LSP ID fields | |||
of the P2MP SENDER_TEMPLATE object, and the S2L sub-LSP destination | of the P2MP SENDER_TEMPLATE object, and the S2L sub-LSP destination | |||
address that is part of the <S2L_SUB_LSP> object. The <S2L_SUB_LSP> | address that is part of the <S2L_SUB_LSP> object. The <S2L_SUB_LSP> | |||
object is defined in section 20.3. | object is defined in section 20.3. | |||
An EXPLICIT_ROUTE Object (ERO) or P2MP SECONDARY_EXPLICIT_ROUTE | An EXPLICIT_ROUTE Object (ERO) or P2MP SECONDARY_EXPLICIT_ROUTE | |||
Object (SERO) is used to optionally specify the explicit route of a | Object (SERO) is used to optionally specify the explicit route of a | |||
S2L sub-LSP. Each ERO or a SERO that is signaled corresponds to a | S2L sub-LSP. Each ERO or SERO that is signaled corresponds to a | |||
particular <S2L_SUB_LSP> object. Details of explicit route encoding | particular <S2L_SUB_LSP> object. Details of explicit route encoding | |||
are specified in section 4.5. The SECONDARY_EXPLICIT_ROUTE Object is | are specified in section 4.5. The SECONDARY_EXPLICIT_ROUTE Object is | |||
defined in [RECOVERY], a new P2MP SECONDARY_EXPLICIT_ROUTE Object C- | defined in [RECOVERY], a new P2MP SECONDARY_EXPLICIT_ROUTE Object C- | |||
C-type is defined in Section 20.5 and a matching P2MP | type is defined in Section 20.5 and a matching P2MP | |||
SECONDARY_RECORD_ROUTE Object C-type is defined in Section 20.6. | SECONDARY_RECORD_ROUTE Object C-type is defined in Section 20.6. | |||
4.4.2. S2L Sub-LSPs and Path Messages | 4.4.2. S2L Sub-LSPs and Path Messages | |||
The mechanism in this document allows a P2MP LSP to be signaled using | The mechanism in this document allows a P2MP LSP to be signaled using | |||
one or more Path messages. Each Path message may signal one or more | one or more Path messages. Each Path message may signal one or more | |||
S2L sub-LSPs. Support for multiple Path messages is desirable as one | S2L sub-LSPs. Support for multiple Path messages is desirable as one | |||
Path message may not be large enough to fit all the S2L sub-LSPs; and | Path message may not be large enough to contain all the S2L sub-LSPs; | |||
they also allow separate manipulation of sub-trees of the P2MP LSP. | and they also allow separate manipulation of sub-trees of the P2MP | |||
The reason for allowing a single Path message, to signal multiple S2L | LSP. The reason for allowing a single Path message, to signal | |||
sub-LSPs, is to optimize the number of control messages needed to | multiple S2L sub-LSPs, is to optimize the number of control messages | |||
setup a P2MP LSP. | needed to setup a P2MP LSP. | |||
4.5. Explicit Routing | 4.5. Explicit Routing | |||
When a Path message signals a single S2L sub-LSP (that is, the Path | When a Path message signals a single S2L sub-LSP (that is, the Path | |||
message is only targeting a single leaf in the P2MP tree), the | message is only targeting a single leaf in the P2MP tree), the | |||
EXPLICIT_ROUTE object encodes the path from the ingress LSR to the | EXPLICIT_ROUTE object encodes the path from the ingress LSR to the | |||
egress LSR. The Path message also includes the <S2L_SUB_LSP> object | egress LSR. The Path message also includes the <S2L_SUB_LSP> object | |||
for the S2L sub-LSP being signaled. The < [<EXPLICIT_ROUTE>], | for the S2L sub-LSP being signaled. The < [<EXPLICIT_ROUTE>], | |||
<S2L_SUB_LSP> > tuple represents the S2L sub-LSP and is referred to | <S2L_SUB_LSP> > tuple represents the S2L sub-LSP and is referred to | |||
as the sub-LSP descriptor. The absence of the ERO should be | as the sub-LSP descriptor. The absence of the ERO should be | |||
interpreted as requiring hop-by-hop routing for the sub-LSP based on | interpreted as requiring hop-by-hop routing for the sub-LSP based on | |||
the S2L sub-LSP destination address field of the <S2L_SUB_LSP> object. | the S2L sub-LSP destination address field of the <S2L_SUB_LSP> | |||
object. | ||||
When a Path message signals multiple S2L sub-LSPs the path of the | When a Path message signals multiple S2L sub-LSPs the path of the | |||
first S2L sub-LSP, from the ingress LSR to the egress LSR, is encoded | first S2L sub-LSP, from the ingress LSR to the egress LSR, is encoded | |||
in the ERO. The first S2L sub-LSP is the one that corresponds to the | in the ERO. The first S2L sub-LSP is the one that corresponds to the | |||
first <S2L_SUB_LSP> object in the Path message. The S2L sub-LSPs | first <S2L_SUB_LSP> object in the Path message. The S2L sub-LSPs | |||
coresponding to the <S2L_SUB_LSP> objects that follow are termed as | corresponding to the <S2L_SUB_LSP> objects that follow are termed as | |||
subsequent S2L sub-LSPs. In order to avoid the potential repetition | subsequent S2L sub-LSPs. | |||
of path information for the parts of S2L sub-LSPs that share hops, | ||||
this information is deduced from the explicit routes of other S2L | ||||
sub-LSPs using explicit route compression in SEROs. | ||||
The path of each subsequent S2L sub-LSP is encoded in a P2MP | The path of each subsequent S2L sub-LSP is encoded in a P2MP | |||
SECONDARY_EXPLICIT_ROUTE object (SERO). The format of the SERO is the | SECONDARY_EXPLICIT_ROUTE object (SERO). The format of the SERO is the | |||
same as an ERO (as defined in [RFC3209]). Each subsequent S2L sub-LSP | same as an ERO (as defined in [RFC3209]). Each subsequent S2L sub-LSP | |||
is represented by tuples of the form < [<P2MP SEC- | is represented by tuples of the form < [<P2MP | |||
ONDARY_EXPLICIT_ROUTE>] <S2L_SUB_LSP> >. There is a one to one | SECONDARY_EXPLICIT_ROUTE>] <S2L_SUB_LSP> >. An SERO for a particular | |||
correspondence between a <S2L_SUB_LSP> object and a SERO. A SERO for a | S2L sub-LSP includes only the path from a certain branch LSR to the | |||
particular S2L sub-LSP includes only the path from a certain branch | egress LSR if the path to that branch LSR can be derived from the ERO | |||
LSR to the egress LSR if the path to that branch LSR can be derived | or other SEROs. The absence of an SERO should be interpreted as | |||
from the ERO or other SEROs. The absence of a SERO should be | requiring hop-by-hop routing for that S2L sub-LSP. Note that the | |||
interpreted as requiring hop-by-hop routing for that S2L sub-LSP. Note | destination address is carried in the S2L sub-LSP object. The | |||
that the destination address is carried in the S2L sub-LSP object. | encoding of the SERO and <S2L_SUB_LSP> object are described in detail | |||
The encoding of the SERO and <S2L_SUB_LSP> object are described in | in section 20. | |||
detail in section 20. | ||||
In order to avoid the potential repetition of path information for | ||||
the parts of S2L sub-LSPs that share hops, this information is | ||||
deduced from the explicit routes of other S2L sub-LSPs using explicit | ||||
route compression in SEROs. | ||||
Explicit route compression is illustrated using the following figure. | Explicit route compression is illustrated using the following figure. | |||
A | A | |||
| | | | |||
| | | | |||
B | B | |||
| | | | |||
| | | | |||
C----D----E | C----D----E | |||
skipping to change at page 9, line 17 | skipping to change at page 9, line 19 | |||
J K L M | J K L M | |||
| | | | | | | | | | |||
| | | | | | | | | | |||
N O P Q--R | N O P Q--R | |||
Figure 1. Explicit Route Compression | Figure 1. Explicit Route Compression | |||
Figure 1. shows a P2MP LSP with LSR A as the ingress LSR and six | Figure 1. shows a P2MP LSP with LSR A as the ingress LSR and six | |||
egress LSRs: (F, N, O, P, Q and R). When all the six S2L sub-LSPs are | egress LSRs: (F, N, O, P, Q and R). When all the six S2L sub-LSPs are | |||
signaled in one Path message let us assume that the S2L sub-LSP to | signaled in one Path message let us assume that the S2L sub-LSP to | |||
LSR F is the first S2L sub-LSP and the rest are subsequent S2L | LSR F is the first S2L sub-LSP and the rest are subsequent S2L sub- | |||
sub-LSPs. Following is one way for the ingress LSR A to encode the S2L | LSPs. Following is one way for the ingress LSR A to encode the S2L | |||
sub-LSP explicit routes using compression: | sub-LSP explicit routes using compression: | |||
S2L sub-LSP-F: ERO = {B, E, D, C, F}, <S2L_SUB_LSP> object-F | S2L sub-LSP-F: ERO = {B, E, D, C, F}, <S2L_SUB_LSP> object-F | |||
S2L sub-LSP-N: SERO = {D, G, J, N}, <S2L_SUB_LSP> object-N | S2L sub-LSP-N: SERO = {D, G, J, N}, <S2L_SUB_LSP> object-N | |||
S2L sub-LSP-O: SERO = {E, H, K, O}, <S2L_SUB_LSP> object-O | S2L sub-LSP-O: SERO = {E, H, K, O}, <S2L_SUB_LSP> object-O | |||
S2L sub-LSP-P: SERO = {H, L, P}, <S2L_SUB_LSP> object-P, | S2L sub-LSP-P: SERO = {H, L, P}, <S2L_SUB_LSP> object-P, | |||
S2L sub-LSP-Q: SERO = {H, I, M, Q}, <S2L_SUB_LSP> object-Q, | S2L sub-LSP-Q: SERO = {H, I, M, Q}, <S2L_SUB_LSP> object-Q, | |||
S2L sub-LSP-R: SERO = {Q, R}, <S2L_SUB_LSP> object-R, | S2L sub-LSP-R: SERO = {Q, R}, <S2L_SUB_LSP> object-R, | |||
After LSR E processes the incoming Path message from LSR B it sends a | After LSR E processes the incoming Path message from LSR B it sends a | |||
skipping to change at page 11, line 4 | skipping to change at page 11, line 6 | |||
[ <EXPLICIT_ROUTE> ] | [ <EXPLICIT_ROUTE> ] | |||
<LABEL_REQUEST> | <LABEL_REQUEST> | |||
[ <PROTECTION> ] | [ <PROTECTION> ] | |||
[ <LABEL_SET> ... ] | [ <LABEL_SET> ... ] | |||
[ <SESSION_ATTRIBUTE> ] | [ <SESSION_ATTRIBUTE> ] | |||
[ <NOTIFY_REQUEST> ] | [ <NOTIFY_REQUEST> ] | |||
[ <ADMIN_STATUS> ] | [ <ADMIN_STATUS> ] | |||
[ <POLICY_DATA> ... ] | [ <POLICY_DATA> ... ] | |||
<sender descriptor> | <sender descriptor> | |||
[<S2L sub-LSP descriptor list>] | [<S2L sub-LSP descriptor list>] | |||
Following is the format of the S2L sub-LSP descriptor list. | Following is the format of the S2L sub-LSP descriptor list. | |||
<S2L sub-LSP descriptor list> ::= <S2L sub-LSP descriptor> | <S2L sub-LSP descriptor list> ::= <S2L sub-LSP descriptor> | |||
[ <S2L sub-LSP descriptor list> ] | [ <S2L sub-LSP descriptor list> ] | |||
<S2L sub-LSP descriptor> ::= <S2L_SUB_LSP> [ <P2MP SEC- | <S2L sub-LSP descriptor> ::= <S2L_SUB_LSP> [ <P2MP | |||
ONDARY_EXPLICIT_ROUTE> ] | SECONDARY_EXPLICIT_ROUTE> ] | |||
Each LSR MUST use the common objects in the Path message and the S2L | Each LSR MUST use the common objects in the Path message and the S2L | |||
sub-LSP descriptors to process each S2L sub-LSP represented by the | sub-LSP descriptors to process each S2L sub-LSP represented by the | |||
<S2L_SUB_LSP> object and the SECONDARY-/EXPLICIT_ROUTE object | <S2L_SUB_LSP> object and the SECONDARY-/EXPLICIT_ROUTE object | |||
combination. | combination. | |||
The first <S2L_SUB_LSP> object's explicit route is specified by the | The first <S2L_SUB_LSP> object's explicit route is specified by the | |||
ERO. Explicit routes of subsequent S2L sub-LSPs are specified by the | ERO. Explicit routes of subsequent S2L sub-LSPs are specified by the | |||
corresponding SERO. A SERO corresponds to the following <S2L_SUB_LSP> | corresponding SERO. A SERO corresponds to the following <S2L_SUB_LSP> | |||
object. | object. | |||
The RRO in the sender descriptor contains the hops traversed by the | The RRO in the sender descriptor contains the hops traversed by the | |||
Path message and applies to all the S2L sub-LSPs signaled in the Path | Path message and applies to all the S2L sub-LSPs signaled in the Path | |||
message. | message. | |||
Path message processing is described in the next section. | Path message processing is described in the next section. | |||
5.2. Path Message Processing | 5.2. Path Message Processing | |||
The ingress-LSR initiates the set up of a S2L sub-LSP to each egress | The ingress-LSR initiates the set up of an S2L sub-LSP to each | |||
LSR that is the destination of the P2MP LSP. Each S2L sub-LSP is | egress-LSR that is the destination of the P2MP LSP. Each S2L sub-LSP | |||
associated with the same P2MP LSP using common P2MP SESSION object | is associated with the same P2MP LSP using common P2MP SESSION object | |||
and <Sender Address, LSP-ID> fields in the P2MP SENDER_TEMPLATE | and <Sender Address, LSP-ID> fields in the P2MP SENDER_TEMPLATE | |||
object. Hence it can be combined with other S2L sub-LSPs to form a | object. Hence it can be combined with other S2L sub-LSPs to form a | |||
P2MP LSP. Another S2L sub-LSP belonging to the same instance of this | P2MP LSP. Another S2L sub-LSP belonging to the same instance of this | |||
S2L sub-LSP (i.e. the same P2MP LSP) shares resources with this S2L | S2L sub-LSP (i.e. the same P2MP LSP) shares resources with this S2L | |||
sub-LSP. The session corresponding to the P2MP TE tunnel is | sub-LSP. The session corresponding to the P2MP TE tunnel is | |||
determined based on the P2MP SESSION object. Each S2L sub-LSP is | determined based on the P2MP SESSION object. Each S2L sub-LSP is | |||
identified using the <S2L_SUB_LSP> object. Explicit routing for the S2L | identified using the <S2L_SUB_LSP> object. Explicit routing for the | |||
sub-LSPs is achieved using the ERO and SEROs. | S2L sub-LSPs is achieved using the ERO and SEROs. | |||
As mentioned earlier, it is possible to signal S2L sub-LSPs for a | As mentioned earlier, it is possible to signal S2L sub-LSPs for a | |||
given P2MP LSP in one or more Path messages. And a given Path message | given P2MP LSP in one or more Path messages and a given Path message | |||
can contain one or more S2L sub-LSPs. A LSR that supports RSVP-TE | can contain one or more S2L sub-LSPs. A LSR that supports RSVP-TE | |||
signaled P2MP LSPs MUST be able to receive and process multiple Path | signaled P2MP LSPs MUST be able to receive and process multiple Path | |||
messages for the same P2MP LSP and multiple S2L sub-LSPs in one Path | messages for the same P2MP LSP and multiple S2L sub-LSPs in one Path | |||
message. This implies that a LSR MUST be able to receive and process | message. This implies that such an LSR MUST be able to receive and | |||
all objects listed in section 20. | process all objects listed in section 20. | |||
5.2.1. Multiple Path Messages | 5.2.1. Multiple Path Messages | |||
As described in section 3, either the <EXPLICIT_ROUTE> <S2L_SUB_LSP> | As described in section 3, either the <EXPLICIT_ROUTE> <S2L_SUB_LSP> | |||
or the <P2MP SECONDARY_EXPLICIT_ROUTE> <S2L_SUB_LSP> tuple is used to | or the <P2MP SECONDARY_EXPLICIT_ROUTE> <S2L_SUB_LSP> tuple is used to | |||
specify a S2L sub-LSP. Multiple Path messages can be used to signal a | specify a S2L sub-LSP. Multiple Path messages can be used to signal a | |||
P2MP LSP. Each Path message can signal one or more S2L sub-LSPs. If a | P2MP LSP. Each Path message can signal one or more S2L sub-LSPs. If a | |||
Path message contains only one S2L sub-LSP, each LSR along the S2L | Path message contains only one S2L sub-LSP, each LSR along the S2L | |||
sub-LSP follows [RFC3209] procedures for processing the Path message | sub-LSP follows [RFC3209] procedures for processing the Path message | |||
besides the <S2L_SUB_LSP> object processing described in this docu- | besides the <S2L_SUB_LSP> object processing described in this | |||
ment. | document. | |||
Processing of Path messages containing more than one S2L sub-LSP is | Processing of Path messages containing more than one S2L sub-LSP is | |||
described in Section 5.2.2. | described in Section 5.2.2. | |||
An ingress LSR may use multiple Path messages for signaling a P2MP | An ingress LSR may use multiple Path messages for signaling a P2MP | |||
LSP. This may be because a single Path message may not be large | LSP. This may be because a single Path message may not be large | |||
enough to signal the P2MP LSP. Or it may be while adding leaves to | enough to signal the P2MP LSP. Or it may be while adding leaves to | |||
the P2MP LSP the new leaves are signaled in a new Path message. Or an | the P2MP LSP the new leaves are signaled in a new Path message. Or an | |||
ingress LSR MAY choose to break the P2MP tree into separate | ingress LSR MAY choose to break the P2MP tree into separate | |||
manageable P2MP trees. These trees share the same root and may share the | manageable P2MP trees. These trees share the same root and may share | |||
trunk and certain branches. The scope of this management | the trunk and certain branches. The scope of this management | |||
decomposition of P2MP trees is bounded by a single tree (the P2MP Tree) | decomposition of P2MP trees is bounded by a single tree (the P2MP | |||
and multiple trees with a single leaf each (S2L sub-LSPs). Per | Tree) and multiple trees with a single leaf each (S2L sub-LSPs). Per | |||
[P2MP-REQ], a P2MP LSP MUST have consistent attributes across all | [RFC4461], a P2MP LSP MUST have consistent attributes across all | |||
portions of a tree. This implies that each Path message that is used | portions of a tree. This implies that each Path message that is used | |||
to signal a P2MP LSP is signaled using the same signaling attributes | to signal a P2MP LSP is signaled using the same signaling attributes | |||
with the exception of the S2L sub-LSP information. | with the exception of the S2L sub-LSP information and Sub-Group | |||
identifiers. | ||||
The resulting sub-LSPs from the different Path messages belonging to | The resulting sub-LSPs from the different Path messages belonging to | |||
the same P2MP LSP SHOULD share labels and resources where they share | the same P2MP LSP SHOULD share labels and resources where they share | |||
hops to prevent multiple copies of the data being sent. | hops to prevent multiple copies of the data being sent. | |||
In certain cases a transit LSR may need to generate multiple Path | In certain cases a transit LSR may need to generate multiple Path | |||
messages to signal state corresponding to a single received Path | messages to signal state corresponding to a single received Path | |||
message. For instance ERO expansion may result in an overflow of the | message. For instance ERO expansion may result in an overflow of the | |||
resultant Path message. In this case the message can be decomposed | resultant Path message. In this case the message can be decomposed | |||
into multiple Path messages such that each of the messages carry a | into multiple Path messages such that each of the messages carry a | |||
subset of the X2L sub-tree carried by the incoming message. | subset of the X2L sub-tree carried by the incoming message. | |||
Multiple Path messages generated by a LSR that signal state for the | Multiple Path messages generated by an LSR that signal state for the | |||
same P2MP LSP are signaled with the same SESSION object and have the | same P2MP LSP are signaled with the same SESSION object and have the | |||
same <Source address, LSP-ID> in the SENDER_TEMPLATE object. In order | same <Source address, LSP-ID> in the SENDER_TEMPLATE object. In order | |||
to disambiguate these Path messages a <Sub-Group Originator ID, | to disambiguate these Path messages a <Sub-Group Originator ID, sub- | |||
sub-Group ID> tuple is introduced (also referred to as the Sub-Group | Group ID> tuple is introduced (also referred to as the Sub-Group | |||
field) and encoded in the SENDER_TEMPLATE object. Multiple Path | field) and encoded in the SENDER_TEMPLATE object. Multiple Path | |||
messages generated by a LSR to signal state for the same P2MP LSP | messages generated by a LSR to signal state for the same P2MP LSP | |||
have the same Sub-Group Originator ID and have a different sub-Group | have the same Sub-Group Originator ID and have a different sub-Group | |||
ID. The Sub-Group Originator ID SHOULD be set to the TE Router ID of | ID. The Sub-Group Originator ID MUST be set to the TE Router ID of | |||
the LSR that originates the Path message. This is either the ingress | the LSR that originates the Path message. This is either the ingress | |||
LSR or a LSR which re-originates the Path message with its own Sub-Group | LSR or a LSR which re-originates the Path message with its own Sub- | |||
Originator ID. Cases when a transit LSR may change the Sub-Group | Group Originator ID. Cases when a transit LSR may change the Sub- | |||
Originator ID of an incoming Path message are described below. The | Group Originator ID of an incoming Path message are described below. | |||
<Sub-Group Originator ID, sub-Group ID> tuple is globally unique. The | The <Sub-Group Originator ID, sub-Group ID> tuple is globally unique. | |||
sub-Group ID space is specific to the Sub-Group Originator ID. | The sub-Group ID space is specific to the Sub-Group Originator ID. | |||
Therefore the combination <Sub-Group Originator ID, sub-Group ID> is | Therefore the combination <Sub-Group Originator ID, sub-Group ID> is | |||
network-wide unique. Also, a router that changes the Sub-Group | network-wide unique. Also, a router that changes the Sub-Group | |||
originator ID of an incoming Path message MUST use the same value of | originator ID of an incoming Path message MUST use the same value of | |||
the Sub-Group Originator ID for all outgoing Path messages, for a | the Sub-Group Originator ID for all outgoing Path messages, for a | |||
particular P2MP LSP, and SHOULD not vary it during the life of the | particular P2MP LSP, and SHOULD not vary it during the life of the | |||
P2MP LSP. | P2MP LSP. | |||
5.2.2. Multiple S2L Sub-LSPs in one Path message | 5.2.2. Multiple S2L Sub-LSPs in one Path message | |||
The S2L sub-LSP descriptor list allows the signaling of one or more | The S2L sub-LSP descriptor list allows the signaling of one or more | |||
S2L sub-LSPs in one Path message. It is possible to signal multiple | S2L sub-LSPs in one Path message. It is possible to signal multiple | |||
<S2L_SUB_LSP> object and ERO/SERO combinations in a single Path mes- | <S2L_SUB_LSP> object and ERO/SERO combinations in a single Path | |||
sage. Note that these two objects are the ones that differentiate a | message. Note that these two objects differentiate a S2L sub-LSP. | |||
S2L sub-LSP. | ||||
All LSRs MUST process the ERO corresponding to the first S2L sub-LSP | All LSRs MUST process the ERO corresponding to the first S2L sub-LSP | |||
when the ERO is present. If one or more SEROs are present an ERO MUST | if the ERO is present. If one or more SEROs are present an ERO MUST | |||
be present. The first S2L sub-LSP MUST be propagated in a Path | be present. The first S2L sub-LSP MUST be propagated in a Path | |||
message by each LSR along the explicit route specified by the ERO. A | message by each LSR along the explicit route specified by the ERO, if | |||
LSR MUST process a S2L sub-LSP descriptor for a subsequent S2L sub-LSP | the ERO is present. Else it MUST be propagated using hop-by-hop | |||
only if the first hop in the corresponding SERO is a local address of | routing towards the destination identified by the <S2L_SUB_LSP> | |||
that LSR. If this is not the case the S2L sub-LSP descriptor MUST be | object. | |||
included in the Path message sent to LSR that is the next hop to | ||||
reach the first hop in the SERO. This next hop is determined by using | A LSR MUST process a S2L sub-LSP descriptor for a subsequent S2L sub- | |||
the ERO or other SEROs that encode the path to the SERO's first hop. | LSP as follows: | |||
If this is the case and the LSR is also the egress, the S2L sub-LSP | ||||
descriptor MUST NOT be propagated downstream. If this is the case and | If the <S2L_SUB_LSP> object is followed by an SERO, the LSR MUST check | |||
the LSR is not the egress the S2L sub-LSP descriptor MUST be included | the first hop in the SERO: | |||
in a Path message sent to the next-hop determined from the SERO. | - If the first hop of the SERO identifies a local address of the | |||
LSR, and the LSR is also the egress identified by the | ||||
<S2L_SUB_LSP> object, the descriptor MUST NOT be propagated | ||||
downstream, but the SERO may be used for egress control per | ||||
[RFC4003]. | ||||
- If the first hop of the SERO identifies a local address of the | ||||
LSR, and the LSR is not the egress as identified by the | ||||
<S2L_SUB_LSP> object the S2L sub-LSP descriptor MUST be | ||||
included in a Path message sent to the next-hop determined | ||||
from the SERO. | ||||
- If the first hop of the SERO is not a local address of the LSR | ||||
the S2L sub-LSP descriptor MUST be included in the Path message | ||||
sent to LSR that is the next hop to reach the first hop in the | ||||
SERO. This next hop is determined by using the ERO or other | ||||
SEROs that encode the path to the SERO's first hop. | ||||
If the <S2L_SUB_LSP> object is not followed by an SERO, the LSR MUST | ||||
examine the <S2L_SUB_LSP> object: | ||||
- If this LSR is the egress as identified by the <S2L_SUB_LSP> | ||||
object, the S2L sub-LSP descriptor MUST NOT be propagated | ||||
downstream. | ||||
- If this LSR is not the egress as identified by the <S2L_SUB_LSP> | ||||
object, the LSR MUST make a routing decision to determine the | ||||
next hop towards the egress, and MUST include the S2L sub-LSP | ||||
descriptor in a Path message sent to the next-hop towards the | ||||
egress. In this case, the LSR MAY insert an SERO into the | ||||
S2L sub-LSP descriptor. | ||||
Hence a branch LSR MUST only propagate the relevant S2L sub-LSP | Hence a branch LSR MUST only propagate the relevant S2L sub-LSP | |||
descriptors on each downstream link. A S2L sub-LSP descriptor list | descriptors on each downstream link. A S2L sub-LSP descriptor list | |||
that is propagated on a downstream link MUST only contain those S2L | that is propagated on a downstream link MUST only contain those S2L | |||
sub-LSPs that are routed using that link. This processing MAY result | sub-LSPs that are routed using that link. This processing MAY result | |||
in a subsequent S2L sub-LSP in an incoming Path message to become the | in a subsequent S2L sub-LSP in an incoming Path message to become the | |||
first S2L sub-LSP in an outgoing Path message. | first S2L sub-LSP in an outgoing Path message. | |||
Note that if one or more SEROs contain loose hops, expansion of such | Note that if one or more SEROs contain loose hops, expansion of such | |||
loose hops MAY result in overflowing the Path message size. Section | loose hops MAY result in overflowing the Path message size. Section | |||
5.2.3 describes how signaling of the set of S2L sub-LSPs can be split | 5.2.3 describes how signaling of the set of S2L sub-LSPs can be split | |||
in more than one Path message. | in more than one Path message. | |||
The RECORD_ROUTE Object (RRO) contains the hops traversed by the Path | The RECORD_ROUTE Object (RRO) contains the hops traversed by the Path | |||
message and applies to all the S2L sub-LSPs signaled in the path | message and applies to all the S2L sub-LSPs signaled in the Path | |||
message. A transit LSR MUST append its address in an incoming RRO and | message. A transit LSR MUST append its address in an incoming RRO and | |||
propagate it downstream. A branch LSR MUST form a new RRO for each of | propagate it downstream. A branch LSR MUST form a new RRO for each of | |||
the outgoing Path messages. Each such updated RRO MUST be formed | the outgoing Path messages by copying the RRO from the incoming Path | |||
using the rules in [RFC3209]. | message and appending its address. Each such updated RRO MUST be | |||
formed using the rules in [RFC3209]. | ||||
If a LSR is unable to support a S2L sub-LSP in a Path message, a | If a LSR is unable to support a S2L sub-LSP in a Path message, a | |||
PathErr message MUST be sent for the impacted S2L sub-LSP, and normal | PathErr message MUST be sent for the impacted S2L sub-LSP, and normal | |||
processing of the rest of the P2MP LSP SHOULD continue. The default | processing of the rest of the P2MP LSP SHOULD continue. The default | |||
behavior is that the remainder of the LSP is not impacted (that is, | behavior is that the remainder of the LSP is not impacted (that is, | |||
all other branches are allowed to set up) and the failed branches are | all other branches are allowed to set up) and the failed branches are | |||
reported in PathErr messages in which the Path_State_Removed flag | reported in PathErr messages in which the Path_State_Removed flag | |||
MUST NOT be set. However, the ingress LSR may set a LSP Integrity | MUST NOT be set. However, the ingress LSR may set a LSP Integrity | |||
flag to request that if there is a setup failure on any branch the | flag to request that if there is a setup failure on any branch the | |||
entire LSP should fail to set up. This is described further in | entire LSP should fail to set up. This is described further in | |||
section 12. | section 12. | |||
5.2.3. Transit Fragmentation | 5.2.3. Transit Fragmentation | |||
In certain cases a transit LSR may need to generate multiple Path | In certain cases a transit LSR may need to generate multiple Path | |||
messages to signal state corresponding to a single received Path | messages to signal state corresponding to a single received Path | |||
message. For instance ERO expansion may result in an overflow of the | message. For instance ERO expansion may result in an overflow of the | |||
resultant Path message. It is desirable not to rely on IP | resultant Path message. It is desirable not to rely on IP | |||
fragmentation in this case. In order to achieve this, the multiple Path | fragmentation in this case. In order to achieve this, the multiple | |||
messages generated by the transit LSR, are signaled with the Sub-Group | Path messages generated by the transit LSR, are signaled with the | |||
Originator ID set to the TE Router ID of the transit LSR and a dis- | Sub-Group Originator ID set to the TE Router ID of the transit LSR | |||
tinct sub-Group ID. Thus each distinct Path message that is generated | and a distinct sub-Group ID for each Path message. Thus each distinct | |||
by the transit LSR for the P2MP LSP carries a distinct <Sub-Group | Path message that is generated by the transit LSR for the P2MP LSP | |||
Originator ID, Sub-Group ID> tuple. | carries a distinct <Sub-Group Originator ID, Sub-Group ID> tuple. | |||
When multiple Path messages are used by an ingress or transit node, | When multiple Path messages are used by an ingress or transit node, | |||
each Path message SHOULD be identical with the exception of the S2L | each Path message SHOULD be identical with the exception of the S2L | |||
sub-LSP related information (e.g., SERO), message and hop information | sub-LSP related information (e.g., SERO), message and hop information | |||
(e.g., INTEGRITY, MESSAGE_ID and RSVP_HOP), and the sub-group fields | (e.g., INTEGRITY, MESSAGE_ID and RSVP_HOP), and the sub-group fields | |||
of the SENDER_TEMPLATE objects. Except when performing a make- | of the SENDER_TEMPLATE objects. Except when performing a make- | |||
before-break operation as specified in section 14.1, the tunnel | before-break operation as specified in section 14.1, the tunnel | |||
sender address and LSP ID fields MUST be the same in each message, | sender address and LSP ID fields MUST be the same in each message, | |||
and for transit nodes, the same as the values in the received Path | and for transit nodes, the same as the values in the received Path | |||
message. | message. | |||
skipping to change at page 15, line 20 | skipping to change at page 16, line 6 | |||
failure during LSP setup or after an LSP has been established. The | failure during LSP setup or after an LSP has been established. The | |||
default behavior is that only the branches downstream of the failure | default behavior is that only the branches downstream of the failure | |||
are not established, but the ingress may request 'LSP integrity' such | are not established, but the ingress may request 'LSP integrity' such | |||
that any failure anywhere within the LSP tree causes the entire P2MP | that any failure anywhere within the LSP tree causes the entire P2MP | |||
LSP to fail. | LSP to fail. | |||
The ingress LSP may request 'LSP integrity' by setting bit [TBA] of | The ingress LSP may request 'LSP integrity' by setting bit [TBA] of | |||
the Attributes Flags TLV. The bit is set if LSP integrity is | the Attributes Flags TLV. The bit is set if LSP integrity is | |||
required. | required. | |||
It is RECOMMENDED to use the LSP_ATTRIBUTES Object for this flag and | It is RECOMMENDED to use the LSP_REQUIRED_ATTRIBUTES Object. | |||
not the LSP_REQUIRED_ATTRIBUTES Object. | ||||
A branch LSR that supports the Attributes Flags TLV and recognizes | A branch LSR that supports the Attributes Flags TLV and recognizes | |||
this bit MUST support LSP integrity or reject the LSP setup with a | this bit MUST support LSP integrity or reject the LSP setup with a | |||
PathErr message carrying the error "Routing Error"/"Unsupported LSP | PathErr message carrying the error "Routing Error"/"Unsupported LSP | |||
Integrity" | Integrity" | |||
5.3. Grafting | 5.3. Grafting | |||
The operation of adding egress LSR(s) to an existing P2MP LSP is | The operation of adding egress LSR(s) to an existing P2MP LSP is | |||
termed as grafting. This operation allows egress nodes to join a P2MP | termed as grafting. This operation allows egress nodes to join a P2MP | |||
skipping to change at page 15, line 43 | skipping to change at page 16, line 28 | |||
There are two methods to add S2L sub-LSPs to a P2MP LSP. The first | There are two methods to add S2L sub-LSPs to a P2MP LSP. The first | |||
is to add new S2L sub-LSPs to the P2MP LSP by adding them to an | is to add new S2L sub-LSPs to the P2MP LSP by adding them to an | |||
existing Path message and refreshing the entire Path message. Path | existing Path message and refreshing the entire Path message. Path | |||
message processing described in section 4 results in adding these S2L | message processing described in section 4 results in adding these S2L | |||
sub-LSPs to the P2MP LSP. Note that as a result of adding one or more | sub-LSPs to the P2MP LSP. Note that as a result of adding one or more | |||
S2L sub-LSPs to a Path message the ERO compression encoding may have | S2L sub-LSPs to a Path message the ERO compression encoding may have | |||
to be recomputed. | to be recomputed. | |||
The second is to use incremental updates described in section 10.1. | The second is to use incremental updates described in section 10.1. | |||
The egress LSRs can be added by signaling only the impacted S2L | The egress LSRs can be added by signaling only the impacted S2L sub- | |||
sub-LSPs in a new Path message. Hence other S2L sub-LSPs do not have | LSPs in a new Path message. Hence other S2L sub-LSPs do not have to | |||
to be re-signaled. | be re-signaled. | |||
6. Resv Message | 6. Resv Message | |||
6.1. Resv Message Format | 6.1. Resv Message Format | |||
The Resv message follows the [RFC3209] and [RFC3473] format: | The Resv message follows the [RFC3209] and [RFC3473] format: | |||
<Resv Message> ::= <Common Header> [ <INTEGRITY> ] | <Resv Message> ::= <Common Header> [ <INTEGRITY> ] | |||
[ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ] | [ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ] | |||
[ <MESSAGE_ID> ] | [ <MESSAGE_ID> ] | |||
skipping to change at page 17, line 4 | skipping to change at page 17, line 31 | |||
list> ] | list> ] | |||
<SE filter spec> ::= <FILTER_SPEC> <LABEL> [ <RECORD_ROUTE> ] | <SE filter spec> ::= <FILTER_SPEC> <LABEL> [ <RECORD_ROUTE> ] | |||
[ <S2L sub-LSP descriptor list> ] | [ <S2L sub-LSP descriptor list> ] | |||
<S2L sub-LSP descriptor list> ::= <S2L sub-LSP descriptor> | <S2L sub-LSP descriptor list> ::= <S2L sub-LSP descriptor> | |||
[ <S2L sub-LSP descriptor list> ] | [ <S2L sub-LSP descriptor list> ] | |||
<S2L sub-LSP descriptor> ::= <S2L_SUB_LSP> [ <P2MP | <S2L sub-LSP descriptor> ::= <S2L_SUB_LSP> [ <P2MP | |||
SECONDARY_EXPLICIT_ROUTE> ] | SECONDARY_EXPLICIT_ROUTE> ] | |||
FILTER_SPEC is defined in section 20.4. | FILTER_SPEC is defined in section 20.4. | |||
The S2L sub-LSP descriptor has the same format as in section 4.1 with | The S2L sub-LSP descriptor has the same format as in section 4.1 with | |||
the difference that a P2MP_SECONDARY_RECORD_ROUTE object is used in | the difference that a P2MP_SECONDARY_RECORD_ROUTE object is used in | |||
place of a P2MP SECONDARY_EXPLICIT_ROUTE object. The P2MP_SEC- | place of a P2MP SECONDARY_EXPLICIT_ROUTE object. The | |||
ONDARY_RECORD_ROUTE objects follow the same compression mechanism as | P2MP_SECONDARY_RECORD_ROUTE objects follow the same compression | |||
the P2MP SECONDARY_EXPLICIT_ROUTE objects. Note that that a Resv | mechanism as the P2MP SECONDARY_EXPLICIT_ROUTE objects. Note that | |||
message can signal multiple S2L sub-LSPs that may belong to the same | that a Resv message can signal multiple S2L sub-LSPs that may belong | |||
FILTER_SPEC object or different FILTER_SPEC objects. The same label | to the same FILTER_SPEC object or different FILTER_SPEC objects. The | |||
SHOULD be allocated if the <Sender Address, LSP-ID> fields of the | same label SHOULD be allocated if the <Sender Address, LSP-ID> fields | |||
FILTER_SPEC object are the same. | of the FILTER_SPEC object are the same. | |||
However different upstream labels are allocated if the <Sender | However different upstream labels are allocated if the <Sender | |||
Address, LSP-ID> of the FILTER_SPEC object is different as that | Address, LSP-ID> of the FILTER_SPEC object is different as that | |||
implies different P2MP LSP. | implies different P2MP LSP. | |||
6.2. Resv Message Processing | 6.2. Resv Message Processing | |||
The egress LSR MUST follow normal RSVP procedures while originating a | The egress LSR MUST follow normal RSVP procedures while originating a | |||
Resv message. The Resv message carries the label allocated by the | Resv message. The Resv message carries the label allocated by the | |||
egress LSR. | egress LSR. | |||
A subsequent node MUST allocates its own label and pass it in the | A node upstream of the egress node MUST allocate its own label and | |||
Resv message upstream. The node MAY combine multiple flow descrip- | pass it in the Resv message upstream. The node MAY combine multiple | |||
tors, from different Resv messages received from downstream, in one | flow descriptors, from different Resv messages received from | |||
Resv message sent upstream. A Resv message MUST NOT be sent upstream | downstream, in one Resv message sent upstream. A Resv message MUST | |||
until at least one Resv message has been received from a downstream | NOT be sent upstream until at least one Resv message has been | |||
neighbor. When the integrity bit is set in the LSP_ATTRIBUTE object, | received from a downstream neighbor. When the integrity bit is set in | |||
no Resv message MUST be sent upstream until all Resv messages have | the LSP_REQUIRED_ATTRIBUTE object, no Resv message MUST be sent | |||
been received from the downstream neighbors. | upstream until all Resv messages have been received from the | |||
downstream neighbors. | ||||
Each FF flow descriptor or SE filter spec sent upstream in a Resv | Each FF flow descriptor or SE filter spec sent upstream in a Resv | |||
message includes a S2L sub-LSP descriptor list. Each such FF flow | message includes a S2L sub-LSP descriptor list. Each such FF flow | |||
descriptor or SE filter spec for the same P2MP LSP (whether on one or | descriptor or SE filter spec for the same P2MP LSP (whether on one or | |||
multiple Resv messages) MUST be allocated the same label. | multiple Resv messages) on the same Resv MUST be allocated the same | |||
label, and FF flow descriptors or SE filter specs SHOULD use the same | ||||
label across multiple Resv messages. | ||||
This label is associated by that node with all the labels received | This label is associated by that node with all the labels received | |||
from downstream Resv messages for that P2MP LSP. Note that a transit | from downstream Resv messages for that P2MP LSP. Note that a transit | |||
node may become a replication point in the future when a branch is | node may become a replication point in the future when a branch is | |||
attached to it. Hence this results in the setup of a P2MP LSP from | attached to it. Hence this results in the setup of a P2MP LSP from | |||
the ingress-LSR to the egress LSRs. | the ingress-LSR to the egress LSRs. | |||
The ingress LSR may need to understand when all desired egresses have | The ingress LSR may need to understand when all desired egresses have | |||
been reached. This is achieved using <S2L_SUB_LSP> objects. | been reached. This is achieved using <S2L_SUB_LSP> objects. | |||
Each branch node can potentially send one Resv message upstream for | Each branch node can potentially send one Resv message upstream for | |||
each of the downstream receivers. This MAY result in overflowing the | each of the downstream receivers. This MAY result in overflowing the | |||
Resv message, particularly when considering that the number of | Resv message, particularly when considering that the number of | |||
messages increases the closer the branch node is to the ingress of | messages increases the closer the branch node is to the ingress of | |||
the P2MP LSP. | the P2MP LSP. | |||
Transit nodes MUST replace the Sub-Group ID fields received in the | Transit nodes MUST replace the Sub-Group ID fields received in the | |||
FILTER_SPEC objects with the value that was received in the Sub-Group | FILTER_SPEC objects with the value that was received in the Sub-Group | |||
ID field of the Path message from the upstream neighbor, when the | ID field of the Path message from the upstream neighbor, when the | |||
node set the Sub-Group Originator field in the associated Path mes- | node set the Sub-Group Originator field in the associated Path | |||
sage. ResvErr messages generation is unmodified. Nodes propagating | message. ResvErr messages generation is unmodified. Nodes | |||
a received ResvErr message MUST use the Sub-Group field values | propagating a received ResvErr message MUST use the Sub-Group field | |||
carried in the corresponding Resv message. | values carried in the corresponding Resv message. | |||
6.2.1. Resv Message Throttling | 6.2.1. Resv Message Throttling | |||
A branch node may have to send the Resv message being sent upstream | A branch node may have to send the Resv message being sent upstream | |||
whenever there is a change in a Resv message for a S2L sub-LSP | whenever there is a change in a Resv message for a S2L sub-LSP | |||
received from one of the downstream neighbors. This can result in | received from one of the downstream neighbors. This can result in | |||
excessive Resv messages sent upstream,particularly when the S2L | excessive Resv messages sent upstream,particularly when the S2L sub- | |||
sub-LSPs are established for the first time. In order to mitigate | LSPs are established for the first time. In order to mitigate this | |||
this situation, branch nodes can limit their transmission of Resv mes- | situation, branch nodes can limit their transmission of Resv | |||
sages. Specifically, in the case where the only change being sent in | messages. Specifically, in the case where the only change being sent | |||
a Resv message is in one or more SRRO objects, the branch node SHOULD | in a Resv message is in one or more SRRO objects, the branch node | |||
transmit the Resv message only after a delay time has passed since | SHOULD transmit the Resv message only after a delay time has passed | |||
the transmission of the previous Resv message for the same session. | since the transmission of the previous Resv message for the same | |||
This delayed Resv message SHOULD include SRROs for all branches. | session. This delayed Resv message SHOULD include SRROs for all | |||
Specific mechanisms for Resv message throttling are implementation | branches. Specific mechanisms for Resv message throttling are | |||
dependent and are outside the scope of this document. | implementation dependent and are outside the scope of this document. | |||
6.3. Record Routing | 6.3. Record Routing | |||
6.3.1. RRO Processing | 6.3.1. RRO Processing | |||
A Resv message contains a record route per S2L sub-LSP that is being | A Resv message contains a record route per S2L sub-LSP that is being | |||
signaled by the Resv message if the sender node requests route | signaled by the Resv message if the sender node requests route | |||
recording by including a RRO in the Path message. The same rule is | recording by including a RRO in the Path message. The same rule is | |||
used during signaling of P2MP LSP i.e. insertion of the RRO in the | used during signaling of P2MP LSP i.e. insertion of the RRO in the | |||
Path message used to signal one or more S2L sub-LSP triggers the | Path message used to signal one or more S2L sub-LSP triggers the | |||
inclusion of an RRO for each sub-LSP. | inclusion of an RRO for each sub-LSP. | |||
The record route of the first S2L sub-LSP is encoded in the RRO. | The record route of the first S2L sub-LSP is encoded in the RRO. | |||
Additional RROs for the subsequent S2L sub-LSPs are referred to as | Additional RROs for the subsequent S2L sub-LSPs are referred to as | |||
P2MP_SECONDARY_RECORD_ROUTE objects (SRROs). Their format is speci- | P2MP_SECONDARY_RECORD_ROUTE objects (SRROs). Their format is | |||
fied in section 20.5. The ingress node then receives the RRO and | specified in section 20.5. The ingress node then receives the RRO and | |||
possibly the SRRO corresponding to each subsequent S2L sub-LSP. Each | possibly the SRRO corresponding to each subsequent S2L sub-LSP. Each | |||
<S2L_SUB_LSP> object is followed by the RRO/SRRO. The ingress node | <S2L_SUB_LSP> object is followed by the RRO/SRRO. The ingress node | |||
can then determine the record route corresponding to a particular S2L | can then determine the record route corresponding to a particular S2L | |||
sub-LSP. The RRO and SRROs can be used to construct the end to end | sub-LSP. The RRO and SRROs can be used to construct the end to end | |||
Path for each S2L sub-LSP. | Path for each S2L sub-LSP. | |||
6.4. Reservation Style | 6.4. Reservation Style | |||
Considerations about the reservation style in a Resv message apply as | Considerations about the reservation style in a Resv message apply as | |||
described in [RFC3209]. The reservation style in the Resv messages | described in [RFC3209]. The reservation style in the Resv messages | |||
can either be FF or SE. All P2MP LSP that belong to the same P2MP | can either be FF or SE. All P2MP LSPs that belong to the same P2MP | |||
Tunnel MUST be signaled with the same reservation style. Irrespective | Tunnel MUST be signaled with the same reservation style. Irrespective | |||
of whether the reservation style is FF or SE, the S2L sub-LSPs that | of whether the reservation style is FF or SE, the S2L sub-LSPs that | |||
belong to the same P2MP LSP SHOULD share labels where they share | belong to the same P2MP LSP SHOULD share labels where they share | |||
hops. If the S2L sub-LSPs that belong to the same P2MP LSP share | hops. If the S2L sub-LSPs that belong to the same P2MP LSP share | |||
labels then they MUST share resources. The S2L sub-LSPs that belong | labels then they MUST share resources. The S2L sub-LSPs that belong | |||
to different P2MP LSP MUST NOT share labels. If the reservation style | to different P2MP LSP MUST NOT share labels. If the reservation style | |||
is FF than S2L sub-LSPs that belong to different P2MP LSP MUST NOT | is FF then S2L sub-LSPs that belong to different P2MP LSP MUST NOT | |||
share resources. If the reservation style is SE than S2L sub-LSPs | share resources. If the reservation style is SE than S2L sub-LSPs | |||
that belong to different P2MP LSP and the same P2MP Tunnel SHOULD | that belong to different P2MP LSP and the same P2MP Tunnel SHOULD | |||
share resources where they share hops, but MUST not share labels. | share resources where they share hops, but MUST not share labels. | |||
7. PathTear Message | 7. PathTear Message | |||
7.1. PathTear Message Format | 7.1. PathTear Message Format | |||
The format of the PathTear message is as follows: | The format of the PathTear message is as follows: | |||
<PathTear Message> ::= <Common Header> [ <INTEGRITY> ] | <PathTear Message> ::= <Common Header> [ <INTEGRITY> ] | |||
[ [ <MESSAGE_ID_ACK> | | [ [ <MESSAGE_ID_ACK> | | |||
<MESSAGE_ID_NACK> ... ] | <MESSAGE_ID_NACK> ... ] | |||
[ <MESSAGE_ID> ] | [ <MESSAGE_ID> ] | |||
<SESSION> <RSVP_HOP> | <SESSION> <RSVP_HOP> | |||
[ <sender descriptor> ] | [ <sender descriptor> ] | |||
[ <S2L sub-LSP list> ] | [ <S2L sub-LSP list> ] | |||
<S2L sub-LSP list> ::= <S2L_SUB_LSP> [ <S2L sub-LSP list> ] | <S2L sub-LSP list> ::= <S2L_SUB_LSP> [ <S2L sub-LSP list> ] | |||
The definition of <sender descriptor> is not changed by this docu- | The definition of <sender descriptor> is not changed by this | |||
ment. | document. | |||
Note: it is assumed that the S2L sub-LSP descriptor will not include | ||||
the P2MP SECONDARY_EXPLICIT_ROUTE object associated with each S2L | ||||
sub-LSP being deleted. | ||||
7.2. Pruning | 7.2. Pruning | |||
The operation of removing egress LSR(s) from an existing P2MP LSP is | The operation of removing egress LSR(s) from an existing P2MP LSP is | |||
termed as pruning. This operation allows egress nodes to be removed | termed as pruning. This operation allows egress nodes to be removed | |||
from a P2MP LSP at different points in time. This section describes | from a P2MP LSP at different points in time. This section describes | |||
the mechanisms to perform pruning. | the mechanisms to perform pruning. | |||
7.2.1. Implicit S2L Sub-LSP Teardown | 7.2.1. Implicit S2L Sub-LSP Teardown | |||
Implicit teardown uses standard RSVP message processing. Per standard | Implicit teardown uses standard RSVP message processing. Per standard | |||
RSVP processing, a S2L sub-LSP may be removed from a P2MP TE LSP by | RSVP processing, a S2L sub-LSP may be removed from a P2MP TE LSP by | |||
sending a modified message for the Path or Resv message that previ- | sending a modified message for the Path or Resv message that | |||
ously advertised the S2L sub-LSP. This message MUST list all S2L | previously advertised the S2L sub-LSP. This message MUST list all S2L | |||
sub-LSPs that are not being removed. When using this approach, a node | sub-LSPs that are not being removed. When using this approach, a node | |||
processing a message that removes a S2L sub-LSP from a P2MP TE LSP | processing a message that removes a S2L sub-LSP from a P2MP TE LSP | |||
MUST ensure that the S2L sub-LSP is not included in any other Path | MUST ensure that the S2L sub-LSP is not included in any other Path | |||
state associated with session before interrupting the data path to | state associated with session before interrupting the data path to | |||
that egress. All other message processing remains unchanged. | that egress. All other message processing remains unchanged. | |||
When implicit teardown is used to delete one or more S2L sub-LSPs, by | When implicit teardown is used to delete one or more S2L sub-LSPs, by | |||
modifying a Path message, a transit LSR may have to generate a | modifying a Path message, a transit LSR may have to generate a | |||
PathTear message downstream to delete one or more of these S2L sub- | PathTear message downstream to delete one or more of these S2L sub- | |||
LSPs. This can happen if as a result of the implicit deletion of S2L | LSPs. This can happen if as a result of the implicit deletion of S2L | |||
sub-LSP(s) there are no remaining S2L sub-LSPs to send in the corre- | sub-LSP(s) there are no remaining S2L sub-LSPs to send in the | |||
sponding Path message downstream. | corresponding Path message downstream. | |||
7.2.2. Explicit S2L Sub-LSP Teardown | 7.2.2. Explicit S2L Sub-LSP Teardown | |||
Explicit S2L Sub-LSP teardown relies on generating a PathTear message | Explicit S2L Sub-LSP teardown relies on generating a PathTear message | |||
for the corresponding Path message. The PathTear message is signaled | for the corresponding Path message. The PathTear message is signaled | |||
with the SESSION and SENDER_TEMPLATE objects corresponding to the | with the SESSION and SENDER_TEMPLATE objects corresponding to the | |||
P2MP LSP and the <Sub-Group Originator ID, Sub-Group ID> tuple corre- | P2MP LSP and the <Sub-Group Originator ID, Sub-Group ID> tuple | |||
sponding to the Path message. This approach SHOULD be used when all | corresponding to the Path message. This approach SHOULD be used when | |||
the egresses signaled by a Path message need to be removed from the | all the egresses signaled by a Path message need to be removed from | |||
P2MP LSP. Other S2L sub-LSPs, from other sub-groups signaled using | the P2MP LSP. Other S2L sub-LSPs, from other sub-groups signaled | |||
other Path messages, are not affected by the PathTear. | using other Path messages, are not affected by the PathTear. | |||
A transit LSR that propagates the PathTear message downstream MUST | A transit LSR that propagates the PathTear message downstream MUST | |||
ensure that it sets the <Sub-Group Originator ID, Sub-Group ID> tuple | ensure that it sets the <Sub-Group Originator ID, Sub-Group ID> tuple | |||
in the PathTear message to the values used to generate the previous | in the PathTear message to the values used to generate the previous | |||
Path message that corresponds to the S2L sub-LSPs being deleted by it | Path message that corresponds to the S2L sub-LSPs being deleted by it | |||
in the PathTear message. The transit LSR may need to generate multi- | in the PathTear message. The transit LSR may need to generate | |||
ple PathTear messages for an incoming PathTear message if it had per- | multiple PathTear messages for an incoming PathTear message if it had | |||
formed transit fragmentation for the corresponding incoming Path mes- | performed transit fragmentation for the corresponding incoming Path | |||
sage. | message. | |||
When a P2MP LSP is removed by the ingress, a PathTear message MUST be | When a P2MP LSP is removed by the ingress, a PathTear message MUST be | |||
generated for each Path message used to signal the P2MP LSP. | generated for each Path message used to signal the P2MP LSP. | |||
8. Notify and ResvConf Messages | 8. Notify and ResvConf Messages | |||
8.1. Notify Messages | 8.1. Notify Messages | |||
The Notify Request object and Notify messages are described in | The Notify Request object and Notify messages are described in | |||
[RFC3473]. Both object and messages SHALL be supported for delivery | [RFC3473]. Both object and messages SHALL be supported for delivery | |||
skipping to change at page 21, line 25 | skipping to change at page 22, line 5 | |||
this section MUST comply to [RFC3473]. | this section MUST comply to [RFC3473]. | |||
1. Upstream Notification | 1. Upstream Notification | |||
If a transit LSR sets the Sub-Group Originator ID in the | If a transit LSR sets the Sub-Group Originator ID in the | |||
SENDER_TEMPLATE object of a Path message to its own address and the | SENDER_TEMPLATE object of a Path message to its own address and the | |||
incoming Path message carries a Notify Request object then this LSR | incoming Path message carries a Notify Request object then this LSR | |||
MUST change the Notify node address in the Notify Request object to | MUST change the Notify node address in the Notify Request object to | |||
its own address in the Path message that it sends. | its own address in the Path message that it sends. | |||
If this router subsequently receives a corresponding Notify message | If this LSR subsequently receives a corresponding Notify message from | |||
from a downstream LSR than it MUST: | a downstream LSR than it MUST: | |||
- send a Notify message upstream toward the Notify | - send a Notify message upstream toward the Notify | |||
node address that the LSR received in the Path message. | node address that the LSR received in the Path message. | |||
- process the sub-group fields of the SENDER_TEMPLATE | - process the sub-group fields of the SENDER_TEMPLATE | |||
object on the received Notify message, and modify their values | object on the received Notify message, and modify their values | |||
in the Notify message that is forwarded to match the sub-group | in the Notify message that is forwarded to match the sub-group | |||
field values in the original Path message received from upstream. | field values in the original Path message received from upstream. | |||
The receiver of an (upstream) Notify message MUST identify the state | The receiver of an (upstream) Notify message MUST identify the state | |||
referenced in this message based on the SESSION and SENDER_TEMPLATE. | referenced in this message based on the SESSION and SENDER_TEMPLATE. | |||
skipping to change at page 21, line 48 | skipping to change at page 22, line 28 | |||
2. Downstream Notification | 2. Downstream Notification | |||
A transit LSR sets the Sub-Group Originator ID in the FILTER_SPEC | A transit LSR sets the Sub-Group Originator ID in the FILTER_SPEC | |||
object(s) of a Resv message to the value, that was received in the | object(s) of a Resv message to the value, that was received in the | |||
corresponding Path message. If the incoming Resv message carries a | corresponding Path message. If the incoming Resv message carries a | |||
Notify Request object then the LSR MUST set the Notify node address | Notify Request object then the LSR MUST set the Notify node address | |||
in the Notify Request object to the value, that was received in the | in the Notify Request object to the value, that was received in the | |||
corresponding Path message, in the Resv message that it sends | corresponding Path message, in the Resv message that it sends | |||
upstream. | upstream. | |||
If this router subsequently receives a corresponding Notify message | If this LSR subsequently receives a corresponding Notify message from | |||
from upstream LSR than it MUST: | an upstream LSR than it MUST: | |||
- send a Notify message downstream toward the Notify | - send a Notify message downstream toward the Notify | |||
node address that the LSR received in the Resv message. | node address that the LSR received in the Resv message. | |||
- process the sub-group fields of the FILTER_SPEC object in the | - process the sub-group fields of the FILTER_SPEC object in the | |||
received Notify message, and modify their values in the Notify | received Notify message, and modify their values in the Notify | |||
message that is forwarded to match the sub-group field values | message that is forwarded to match the sub-group field values | |||
in the original Path message sent downstream by this LSR. | in the original Path message sent downstream by this LSR. | |||
The receiver of a (downstream) Notify message MUST identify the state | The receiver of a (downstream) Notify message MUST identify the state | |||
referenced in this message based on the SESSION and FILTER_SPEC | referenced in the message based on the SESSION and FILTER_SPEC | |||
objects. | objects. | |||
The consequence of these rules for a P2MP LSP is that an upstream | The consequence of these rules for a P2MP LSP is that an upstream | |||
Notify message generated on a branch will result in a Notify being | Notify message generated on a branch will result in a Notify being | |||
delivered to the upstream Notify node address. The receiver of the | delivered to the upstream Notify node address. The receiver of the | |||
Notify message MUST NOT assume that the Notify message applies to all | Notify message MUST NOT assume that the Notify message applies to all | |||
downstream egresses, but MUST examine the information in the message | downstream egresses, but MUST examine the information in the message | |||
to determine to which egresses the message applies. | to determine to which egresses the message applies. | |||
Downstream Notify messages MUST be replicated at branch LSRs accord- | Downstream Notify messages MUST be replicated at branch LSRs | |||
ing to the Notify Request objects received on Resv messages. Some | according to the Notify Request objects received on Resv messages. | |||
downstream branches might not request Notify messages, but all that | Some downstream branches might not request Notify messages, but all | |||
have requested Notify messages MUST receive them | that have requested Notify messages MUST receive them | |||
8.2. ResvConf Messages | 8.2. ResvConf Messages | |||
ResvConf messages are described in [RFC2205]. ResvConf processing in | ResvConf messages are described in [RFC2205]. ResvConf processing in | |||
[RFC3473] and [RFC3209] is taken directly from [RFC2205]. An egress | [RFC3473] and [RFC3209] is taken directly from [RFC2205]. An egress | |||
LSR may include a RESV_CONFIRM object that contains the egress LSR's | LSR may include a RESV_CONFIRM object that contains the egress LSR's | |||
address. The object and message SHALL be supported for the confirma- | address. The object and message SHALL be supported for the | |||
tion of receipt of the Resv message in P2MP TE LSPs. Processing not | confirmation of receipt of the Resv message in P2MP TE LSPs. | |||
detailed in this section MUST comply to [RFC2205]. | Processing not detailed in this section MUST comply to [RFC2205]. | |||
A transit LSR sets the Sub-Group Originator ID in the FILTER_SPEC | A transit LSR sets the Sub-Group Originator ID in the FILTER_SPEC | |||
object(s) of a Resv message to the value, that was received in the | object(s) of a Resv message to the value, that was received in the | |||
corresponding Path message. If the incoming Resv message carries a | corresponding Path message. If any of the incoming Resv messages | |||
RESV_CONFIRM object then the LSR MUST include a RESV_CONFIRM object | corresponding to a single Path message carry a RESV_CONFIRM object | |||
in the corresponding Resv message that it sends upstream and MUST set | then the LSR MUST include a RESV_CONFIRM object in the corresponding | |||
the receiver address in the RESV_CONFIRM object to the value that was | Resv message that it sends upstream and MUST set the receiver address | |||
received in the corresponding Path message. | in the RESV_CONFIRM object to the value that was received in the | |||
corresponding Resv message. | ||||
If this router subsequently receives a corresponding ResvConf message | If this LSR subsequently receives a corresponding ResvConf message | |||
from an upstream LSR than it MUST: | from an upstream LSR than it MUST: | |||
- send a ResvConf message downstream toward the receiver address that | - send a ResvConf message downstream toward the receiver address that | |||
the LSR received in the RESV_CONFIRM object in the Resv message. | the LSR received in the RESV_CONFIRM object in the Resv message. | |||
- process the sub-group fields of the FILTER_SPEC object in the | - process the sub-group fields of the FILTER_SPEC object in the | |||
received ResvConf message, and modify their values in the ResvConf | received ResvConf message, and modify their values in the ResvConf | |||
message that is forwarded to match the sub-group field values | message that is forwarded to match the sub-group field values | |||
in the original Path message sent downstream by this LSR. | in the original Path message sent downstream by this LSR. | |||
The receiver of a ResvConf message MUST identify the state referenced | The receiver of a ResvConf message MUST identify the state referenced | |||
in this message based on the SESSION and FILTER_SPEC objects. | in this message based on the SESSION and FILTER_SPEC objects. | |||
The consequence of these rules for a P2MP LSP is that a ResvConf mes- | The consequence of these rules for a P2MP LSP is that a ResvConf | |||
sage generated at the ingress will result in a ResvConf message being | message generated at the ingress will result in a ResvConf message | |||
delivered to the branch and then to the receiver address in the orig- | being delivered to the branch and then to the receiver address in the | |||
inal RESV_CONFIRM object. The receiver of a ResvConf message MUST NOT | original RESV_CONFIRM object. The receiver of a ResvConf message MUST | |||
assume that the ResvConf message should be sent to all downstream | NOT assume that the ResvConf message should be sent to all downstream | |||
egresses, but MUST replicate the message according to the | egresses, but MUST replicate the message according to the | |||
RESV_CONFIRM objects received in Resv messages. Some downstream branches | RESV_CONFIRM objects received in Resv messages. Some downstream | |||
branches might not request ResvConf messages, and ResvConf messages | branches might not request ResvConf messages, and ResvConf messages | |||
SHOULD NOT be on these branches. All downstream branches that do | SHOULD NOT be sent on these branches. All downstream branches that do | |||
requested ResvConf messages MUST be sent such a message. | requested ResvConf messages MUST be sent such a message. | |||
9. Refresh Reduction | 9. Refresh Reduction | |||
The refresh reduction procedures described in [RFC2961] are equally | The refresh reduction procedures described in [RFC2961] are equally | |||
applicable to P2MP LSP described in this document. Refresh reduction | applicable to P2MP LSP described in this document. Refresh reduction | |||
applies to individual messages and the state they install/maintain, | applies to individual messages and the state they install/maintain, | |||
and that continues to be the case for P2MP LSP. | and that continues to be the case for P2MP LSP. | |||
10. State Management | 10. State Management | |||
State signaled by a P2MP Path message is managed by a local implemen- | State signaled by a P2MP Path message is managed by a local | |||
tation using the <P2MP ID, Tunnel ID, Extended Tunnel ID> as part of | implementation using the <P2MP ID, Tunnel ID, Extended Tunnel ID> as | |||
the SESSION object and <Tunnel Sender Address, LSP ID, Sub-Group | part of the SESSION object and <Tunnel Sender Address, LSP ID, Sub- | |||
Originator ID, Sub-Group ID> as part of the SENDER_TEMPLATE object. | Group Originator ID, Sub-Group ID> as part of the SENDER_TEMPLATE | |||
object. | ||||
Additional information signaled in the Path/Resv message is part of | Additional information signaled in the Path/Resv message is part of | |||
the state created by a local implementation. This mandatorily | the state created by a local implementation. This includes PHOP/NHOP | |||
includes PHOP/NHOP and SENDER_TSPEC/FILTER_SPEC object. | and SENDER_TSPEC/FILTER_SPEC object. | |||
10.1. Incremental State Update | 10.1. Incremental State Update | |||
RSVP as defined in [RFC2205] and as extended by RSVP-TE [RFC3209] and | RSVP as defined in [RFC2205] and as extended by RSVP-TE [RFC3209] and | |||
GMPLS [RFC3473] uses the same basic approach to state communication | GMPLS [RFC3473] uses the same basic approach to state communication | |||
and synchronization, namely full state is sent in each state adver- | and synchronization, namely full state is sent in each state | |||
tisement message. Per [RFC2205] Path and Resv messages are idempo- | advertisement message. Per [RFC2205] Path and Resv messages are | |||
tent. Also, [RFC2961] categorizes RSVP messages into two types: trig- | idempotent. Also, [RFC2961] categorizes RSVP messages into two types: | |||
ger and refresh messages and improves RSVP message handling and scal- | trigger and refresh messages and improves RSVP message handling and | |||
ing of state refreshes but does not modify the full state advertise- | scaling of state refreshes but does not modify the full state | |||
ment nature of Path and Resv messages. The full state advertisement | advertisement nature of Path and Resv messages. The full state | |||
nature of Path and Resv messages has many benefits, but also has some | advertisement nature of Path and Resv messages has many benefits, but | |||
drawbacks. One notable drawback is when an incremental modification | also has some drawbacks. One notable drawback is when an incremental | |||
is being made to a previously advertised state. In this case, there | modification is being made to a previously advertised state. In this | |||
is the message overhead of sending the full state and the cost of | case, there is the message overhead of sending the full state and the | |||
processing it. It is desirable to overcome this drawback and | cost of processing it. It is desirable to overcome this drawback and | |||
add/delete S2L sub-LSPs to a P2MP LSP by incrementally updating the | add/delete S2L sub-LSPs to a P2MP LSP by incrementally updating the | |||
existing state. | existing state. | |||
It is possible to use the procedures described in this document to | It is possible to use the procedures described in this document to | |||
allow S2L sub-LSPs to be incrementally added or deleted from the P2MP | allow S2L sub-LSPs to be incrementally added or deleted from the P2MP | |||
LSP by allowing a Path or a PathTear message to incrementally change | LSP by allowing a Path or a PathTear message to incrementally change | |||
the existing P2MP LSP Path state. | the existing P2MP LSP Path state. | |||
As described in section 4.2, multiple Path messages can be used to | As described in section 4.2, multiple Path messages can be used to | |||
signal a P2MP LSP. The Path messages are distinguished by different | signal a P2MP LSP. The Path messages are distinguished by different | |||
skipping to change at page 24, line 32 | skipping to change at page 25, line 18 | |||
This maintains the idempotent nature of RSVP Path messages; avoids | This maintains the idempotent nature of RSVP Path messages; avoids | |||
keeping track of individual S2L sub-LSP state expiration and provides | keeping track of individual S2L sub-LSP state expiration and provides | |||
the ability to perform incremental P2MP LSP state updates. | the ability to perform incremental P2MP LSP state updates. | |||
10.2. Combining Multiple Path Messages | 10.2. Combining Multiple Path Messages | |||
There is a tradeoff between the number of Path messages used by the | There is a tradeoff between the number of Path messages used by the | |||
ingress to maintain the P2MP LSP and the processing imposed by full | ingress to maintain the P2MP LSP and the processing imposed by full | |||
state messages when adding S2L sub-LSPs to an existing Path message. | state messages when adding S2L sub-LSPs to an existing Path message. | |||
It is possible to combine S2L sub-LSPs previously advertised in dif- | It is possible to combine S2L sub-LSPs previously advertised in | |||
ferent Path messages in a single Path message in order to reduce the | different Path messages in a single Path message in order to reduce | |||
number of Path messages needed to maintain the P2MP LSP. This can | the number of Path messages needed to maintain the P2MP LSP. This can | |||
also be done by a transit node that performed fragmentation and at a | also be done by a transit node that performed fragmentation and at a | |||
later point is able to combine multiple Path messages that it gener- | later point is able to combine multiple Path messages that it | |||
ated into a single Path message. This may happen when one or more S2L | generated into a single Path message. This may happen when one or | |||
sub-LSPs are pruned from the existing Path states. | more S2L sub-LSPs are pruned from the existing Path states. | |||
The new Path message is signaled by the node that is combining multi- | The new Path message is signaled by the node that is combining | |||
ple Path messages with all the S2L sub-LSPs that are being combined | multiple Path messages with all the S2L sub-LSPs that are being | |||
in a single Path message. This Path message MAY contain a new Sub- | combined in a single Path message. This Path message MAY contain a | |||
Sub-Group ID field value. When a new Path and Resv message that is | new Sub-Group ID field value. When a new Path and Resv message that | |||
signaled for an existing S2L sub-LSP is received by a transit LSR, | is signaled for an existing S2L sub-LSP is received by a transit LSR, | |||
state including the new instance of the S2L sub-LSP is created. | state including the new instance of the S2L sub-LSP is created. | |||
The S2L sub-LSP SHOULD continue to be advertised in both the old and | The S2L sub-LSP SHOULD continue to be advertised in both the old and | |||
new Path messages until a Resv message listing the S2L sub-LSP and | new Path messages until a Resv message listing the S2L sub-LSP and | |||
corresponding to the new Path message is received by the combining | corresponding to the new Path message is received by the combining | |||
node. Hence until this point state for the S2L sub-LSP SHOULD be | node. Hence until this point state for the S2L sub-LSP SHOULD be | |||
maintained as part of the Path state for both the old and the new | maintained as part of the Path state for both the old and the new | |||
Path message [Section 3.1.3, RFC2205]. At that point the S2L sub-LSP | Path message [Section 3.1.3, RFC2205]. At that point the S2L sub-LSP | |||
SHOULD be deleted from the old Path state using the procedures of | SHOULD be deleted from the old Path state using the procedures of | |||
section 7. | section 7. | |||
A Path message with a sub-Group_ID(n) may signal a set of S2L | A Path message with a sub-Group_ID(n) may signal a set of S2L sub- | |||
sub-LSPs that belong partially or entirely to an already existing | LSPs that belong partially or entirely to an already existing Sub- | |||
Sub-Group_ID(i), the SESSION object and <Sender Tunnel Address, | Group_ID(i), the SESSION object and <Sender Tunnel Address, LSP-ID, | |||
LSP-ID, Sub-Group Originator ID> being the same. Or it may signal a | Sub-Group Originator ID> being the same. Or it may signal a strictly | |||
strictly non-overlapping new set of S2L sub-LSPs with a strictly higher | non-overlapping new set of S2L sub-LSPs with a strictly higher sub- | |||
sub-Group_ID value. | Group_ID value. | |||
1) If sub-Group_ID(i) = sub-Group_ID(n), then either a full refresh | 1) If sub-Group_ID(i) = sub-Group_ID(n), then either a full refresh | |||
is indicated by the Path message or a S2L Sub-LSP is added to/deleted | is indicated by the Path message or a S2L Sub-LSP is added to/deleted | |||
from the group signaled by sub-Group_ID(n) | from the group signaled by sub-Group_ID(n) | |||
2) If sub-Group_ID(i) != sub-Group_ID(n), then the Path message is | 2) If sub-Group_ID(i) != sub-Group_ID(n), then the Path message is | |||
signaling a set of S2L sub-LSPs that belong partially or entirely to | signaling a set of S2L sub-LSPs that belong partially or entirely to | |||
an already existing Sub-Group_ID(i) or a strictly non-overlapping set | an already existing Sub-Group_ID(i) or a strictly non-overlapping set | |||
of S2L sub-LSPs. | of S2L sub-LSPs. | |||
11. Error Processing | 11. Error Processing | |||
PathErr and ResvErr messages are processed as per RSVP-TE procedures. | PathErr and ResvErr messages are processed as per RSVP-TE procedures. | |||
Note that a LSR on receiving a PathErr/ResvErr message for a particu- | Note that an LSR on receiving a PathErr/ResvErr message for a | |||
lar S2L sub-LSP changes the state only for that S2L sub-LSP. Hence | particular S2L sub-LSP changes the state only for that S2L sub-LSP. | |||
other S2L sub-LSPs are not impacted. In case the ingress node | Hence other S2L sub-LSPs are not impacted. If the ingress node | |||
requests the maintenance of the 'LSP integrity', any error reported | requests the maintenance of the 'LSP integrity', any error reported | |||
within the P2MP TE LSP must be reported at (least at) any other | within the P2MP TE LSP must be reported to (at least) any other | |||
branching nodes belonging to this LSP. Therefore, reception of an | branching nodes belonging to this LSP. Therefore, reception of an | |||
error message for a particular S2L sub-LSP MAY change the state of | error message for a particular S2L sub-LSP MAY change the state of | |||
any other S2L sub- LSP of the same P2MP TE LSP. | any other S2L sub- LSP of the same P2MP TE LSP. | |||
11.1. PathErr Messages | 11.1. PathErr Messages | |||
The PathErr message will include one or more <S2L_SUB_LSP> objects. | The PathErr message will include one or more <S2L_SUB_LSP> objects. | |||
The resulting modified format for a PathErr message is: | The resulting modified format for a PathErr message is: | |||
<PathErr Message> ::= <Common Header> [ <INTEGRITY> ] | <PathErr Message> ::= <Common Header> [ <INTEGRITY> ] | |||
skipping to change at page 26, line 11 | skipping to change at page 26, line 43 | |||
[ <ACCEPTABLE_LABEL_SET> ... ] | [ <ACCEPTABLE_LABEL_SET> ... ] | |||
[ <POLICY_DATA> ... ] | [ <POLICY_DATA> ... ] | |||
<sender descriptor> | <sender descriptor> | |||
[ <S2L sub-LSP descriptor list> ] | [ <S2L sub-LSP descriptor list> ] | |||
PathErr messages generation is unmodified, but nodes that set the | PathErr messages generation is unmodified, but nodes that set the | |||
Sub-Group Originator field and propagate a received PathErr message | Sub-Group Originator field and propagate a received PathErr message | |||
upstream MUST replace the Sub-Group fields received in the PathErr | upstream MUST replace the Sub-Group fields received in the PathErr | |||
message with the value that was received in the Sub-Group fields of | message with the value that was received in the Sub-Group fields of | |||
the Path message from the upstream neighbor. Note the receiver of a | the Path message from the upstream neighbor. Note the receiver of a | |||
PathErr message is able to identify the errored outgoing Path mes- | PathErr message is able to identify the errored outgoing Path | |||
sage, and outgoing interface, based on the Sub-Group fields received | message, and outgoing interface, based on the Sub-Group fields | |||
in the PathErr message. | received in the PathErr message. | |||
11.2. ResvErr Messages | 11.2. ResvErr Messages | |||
The ResvErr message will include one or more <S2L_SUB_LSP> objects. | The ResvErr message will include one or more <S2L_SUB_LSP> objects. | |||
The resulting modified format for a ResvErr Message is: | The resulting modified format for a ResvErr Message is: | |||
<ResvErr Message> ::= <Common Header> [ <INTEGRITY> ] | <ResvErr Message> ::= <Common Header> [ <INTEGRITY> ] | |||
[ [<MESSAGE_ID_ACK> | | [ [<MESSAGE_ID_ACK> | | |||
<MESSAGE_ID_NACK>] ... ] | <MESSAGE_ID_NACK>] ... ] | |||
[ <MESSAGE_ID> ] | [ <MESSAGE_ID> ] | |||
skipping to change at page 26, line 35 | skipping to change at page 27, line 25 | |||
<ERROR_SPEC> [ <SCOPE> ] | <ERROR_SPEC> [ <SCOPE> ] | |||
[ <ACCEPTABLE_LABEL_SET> ... ] | [ <ACCEPTABLE_LABEL_SET> ... ] | |||
[ <POLICY_DATA> ... ] | [ <POLICY_DATA> ... ] | |||
<STYLE> <flow descriptor list> | <STYLE> <flow descriptor list> | |||
ResvErr messages generation is unmodified, but nodes that set the | ResvErr messages generation is unmodified, but nodes that set the | |||
Sub-Group Originator field and propagate a received ResvErr message | Sub-Group Originator field and propagate a received ResvErr message | |||
downstream MUST replace the Sub-Group fields received in the ResvErr | downstream MUST replace the Sub-Group fields received in the ResvErr | |||
message with the value that was set in the Sub-Group fields of the | message with the value that was set in the Sub-Group fields of the | |||
Path message sent to the downstream neighbor. Note the receiver of a | Path message sent to the downstream neighbor. Note the receiver of a | |||
ResvErr message is able to identify the errored outgoing Path mes- | ResvErr message is able to identify the errored outgoing Path | |||
sage, and outgoing interface, based on the Sub-Group fields received | message, and outgoing interface, based on the Sub-Group fields | |||
in the ResvErr message. | received in the ResvErr message. | |||
11.3. Branch Failure Handling | 11.3. Branch Failure Handling | |||
During setup and during normal operation, PathErr messages may be | During setup and during normal operation, PathErr messages may be | |||
received at a branch node. In all cases, a received PathErr message | received at a branch node. In all cases, a received PathErr message | |||
is first processed per standard processing rules. That is: the | is first processed per standard processing rules. That is: the | |||
PathErr message is sent hop-by-hop to the ingress/branch LSR for that | PathErr message is sent hop-by-hop to the ingress/branch LSR for that | |||
Path message. Intermediate nodes until this ingress/branch LSR MAY | Path message. Intermediate nodes until this ingress/branch LSR MAY | |||
inspect this message but take no action upon it. The behavior of a | inspect this message but take no action upon it. The behavior of a | |||
branch LSR that generates a PathErr message is under the control of | branch LSR that generates a PathErr message is under the control of | |||
the ingress LSR. | the ingress LSR. | |||
The default behavior is that the PathErr message does not have the | The default behavior is that the PathErr message does not have the | |||
Path_State_Removed flag set. However, if the ingress LSR has set the | Path_State_Removed flag set. However, if the ingress LSR has set the | |||
LSP integrity flag on the Path message (see LSP_ATTRIBUTE object in | LSP integrity flag on the Path message (see LSP_REQUIRED_ATTRIBUTEs | |||
section 20) and if the Path_State_Removed flag is supported, the LSR | object in section 5.2.4) and if the Path_State_Removed flag is | |||
generating a PathErr to report the failure of a branch of the P2MP | supported, the LSR generating a PathErr to report the failure of a | |||
LSP SHOULD set the Path_State_Removed flag. | branch of the P2MP LSP SHOULD set the Path_State_Removed flag. | |||
A branch LSR that receives a PathErr message with the | A branch LSR that receives a PathErr message with the | |||
Path_State_Removed flag set MUST act according to the wishes of the | Path_State_Removed flag set MUST act according to the wishes of the | |||
ingress LSR. The default behavior is that the branch LSR clears the | ingress LSR. The default behavior is that the branch LSR clears the | |||
Path_State_Removed flag on the PathErr and sends it further upstream. | Path_State_Removed flag on the PathErr and sends it further upstream. | |||
It does not tear any other branches of the LSP. However, if the LSP | It does not tear any other branches of the LSP. However, if the LSP | |||
integrity flag is set on the Path message, the branch LSR MUST send | integrity flag is set on the Path message, the branch LSR MUST send | |||
PathTear on all other downstream branches and send the PathErr mes- | PathTear on all other downstream branches and send the PathErr | |||
sage upstream with the Path_State_Removed flag set. | message upstream with the Path_State_Removed flag set. | |||
A branch LSR that receives a PathErr message with the | A branch LSR that receives a PathErr message with the | |||
Path_State_Removed flag clear MUST act according to the wishes of the | Path_State_Removed flag clear MUST act according to the wishes of the | |||
ingress LSR. The default behavior is that the branch LSR forwards the | ingress LSR. The default behavior is that the branch LSR forwards the | |||
PathErr upstream and takes no further action. However, if the LSP | PathErr upstream and takes no further action. However, if the LSP | |||
integrity flag is set on the Path message, the branch LSR MUST send | integrity flag is set on the Path message, the branch LSR MUST send | |||
PathTear on all downstream branches and send the PathErr upstream | PathTear on all downstream branches and send the PathErr upstream | |||
with the Path_State_Removed flag set (per [RFC3473]). | with the Path_State_Removed flag set (per [RFC3473]). | |||
In all cases, the PathErr message forwarded by a branch LSR MUST con- | In all cases, the PathErr message forwarded by a branch LSR MUST | |||
tain the S2L sub-LSP identification and explicit routes of all | contain the S2L sub-LSP identification and explicit routes of all | |||
branches that are reported by received PathErr messages and all | branches that are reported by received PathErr messages and all | |||
branches that are explicitly torn by the branch LSR. | branches that are explicitly torn by the branch LSR. | |||
12. Admin Status Change | 12. Admin Status Change | |||
A branch node that receives an ADMIN_STATUS object processes it nor- | A branch node that receives an ADMIN_STATUS object processes it | |||
mally and also relays the ADMIN_STATUS object in a Path on every | normally and also relays the ADMIN_STATUS object in a Path on every | |||
branch. All Path messages may be concurrently sent to the downstream | branch. All Path messages may be concurrently sent to the downstream | |||
neighbors. | neighbors. | |||
Downstream nodes process the change in the status object per | Downstream nodes process the change in the ADMIN_STATUS object per | |||
[RFC3473], including generation of Resv messages. When the last | [RFC3473], including generation of Resv messages. When the last | |||
received upstream ADMIN_STATUS object had the R bit set, branch nodes | received upstream ADMIN_STATUS object had the R bit set, branch nodes | |||
wait for a Resv message with a matching ADMIN_STATUS object to be | wait for a Resv message with a matching ADMIN_STATUS object to be | |||
received (or a corresponding PathErr or ResvTear messsage) on all | received (or a corresponding PathErr or ResvTear messsage) on all | |||
branches before relaying a corresponding Resv message upstream. | branches before relaying a corresponding Resv message upstream. | |||
13. Label Allocation on LANs with Multiple Downstream Nodes | 13. Label Allocation on LANs with Multiple Downstream Nodes | |||
A sender on a LAN uses a different label for sending traffic to each | A sender on a LAN uses a different label for sending traffic to each | |||
node on the LAN that belongs to the P2MP LSP. Thus the sender per- | node on the LAN that belongs to the P2MP LSP. Thus the sender | |||
forms replication. It may be considered desirable on a LAN to use the | performs replication. It may be considered desirable on a LAN to use | |||
same label for sending traffic to multiple nodes belonging to the | the same label for sending traffic to multiple nodes belonging to the | |||
same P2MP LSP, to avoid replication. Procedures for doing this are | same P2MP LSP, to avoid replication. Procedures for doing this are | |||
for further study. | for further study. | |||
14. P2MP LSP and Sub-LSP Re-optimization | 14. P2MP LSP and Sub-LSP Re-optimization | |||
It is possible to change the path used by P2MP LSPs to reach the des- | It is possible to change the path used by P2MP LSPs to reach the | |||
tinations of the P2MP Tunnel. There are two methods that can be used | destinations of the P2MP Tunnel. There are two methods that can be | |||
to accomplish this. The first is make-before-break, defined in | used to accomplish this. The first is make-before-break, defined in | |||
[RFC3209], and the second uses the sub-groups defined above. | [RFC3209], and the second uses the sub-groups defined above. | |||
14.1. Make-before-break | 14.1. Make-before-break | |||
In this case all the S2L sub-LSPs are signaled with a different LSP | In this case all the S2L sub-LSPs are signaled with a different LSP | |||
ID by the ingress-LSR and follow make-before-break procedure defined | ID by the ingress-LSR and follow make-before-break procedure defined | |||
in [RFC3209]. Thus a new P2MP LSP is established. Each S2L sub-LSP is | in [RFC3209]. Thus a new P2MP LSP is established. Each S2L sub-LSP is | |||
signaled with a different LSP ID, corresponding to the new P2MP LSP. | signaled with a different LSP ID, corresponding to the new P2MP LSP. | |||
After moving traffic to the new P2MP LSP, the ingress can tear down | After moving traffic to the new P2MP LSP, the ingress can tear down | |||
the old P2MP LSP. This procedure can be used to re-optimize the path | the old P2MP LSP. This procedure can be used to re-optimize the path | |||
skipping to change at page 28, line 40 | skipping to change at page 29, line 31 | |||
the P2MP LSP. When modifying just a portion of the P2MP LSP this | the P2MP LSP. When modifying just a portion of the P2MP LSP this | |||
approach requires the entire P2MP LSP to be resignaled. | approach requires the entire P2MP LSP to be resignaled. | |||
14.2. Sub-Group Based Re-optimization | 14.2. Sub-Group Based Re-optimization | |||
Any node may initiate re-optimization of a set of S2L sub-LSPs by | Any node may initiate re-optimization of a set of S2L sub-LSPs by | |||
using the incremental state update and then, optionally, combining | using the incremental state update and then, optionally, combining | |||
multiple path messages. | multiple path messages. | |||
To alter the path taken by a particular set of S2L sub-LSPs the node | To alter the path taken by a particular set of S2L sub-LSPs the node | |||
initiating the path change initiates one or more separate Path mes- | initiating the path change initiates one or more separate Path | |||
sages, for the same P2MP LSP, each with a new sub-Group ID. The gen- | messages, for the same P2MP LSP, each with a new sub-Group ID. The | |||
eration of these Path messages, each with one or more S2L sub-LSPs, | generation of these Path messages, each with one or more S2L sub- | |||
follows procedures in section 5.2. As is the case in Section 10.2, a | LSPs, follows procedures in section 5.2. As is the case in Section | |||
particular egress continues to be advertised in both the old and new | 10.2, a particular egress continues to be advertised in both the old | |||
Path messages until a Resv message listing the egress and correspond- | and new Path messages until a Resv message listing the egress and | |||
ing to the new Path message is received by the re-optimizing node. At | corresponding to the new Path message is received by the re- | |||
that point the egress SHOULD be deleted from the old Path state using | optimizing node. At that point the egress SHOULD be deleted from the | |||
the procedures of section 7. Sub-tree re-optimization is then com- | old Path state using the procedures of section 7. Sub-tree re- | |||
pleted. | optimization is then completed. | |||
As is always the case, a node may choose to combine multiple path | As is always the case, a node may choose to combine multiple path | |||
messages as described in section 10.2. | messages as described in section 10.2. | |||
15. Fast Reroute | 15. Fast Reroute | |||
[RFC4090] extensions can be used to perform fast reroute for the | [RFC4090] extensions can be used to perform fast reroute for the | |||
mechanism described in this document. | mechanism described in this document. This section uses terminology | |||
defined in [RFC4090] and fast reroute procedures defined in [RFC4090] | ||||
MUST be followed unless specified below. The head-end and transit | ||||
LSRs MUST follow the SESSION_ATTRIBUTE and FAST_REROUTE object | ||||
processing as specified in [RFC4090] for each Path message and S2L | ||||
sub-LSP of a P2MP LSP. Each S2L sub-LSP of a P2MP LSP MUST have the | ||||
same protection characteristics. The RRO processing MUST apply to | ||||
SRRO as well unless modified below. | ||||
15.1. Facility Backup | 15.1. Facility Backup | |||
Facility backup as described in [RFC4090] can be used to protect P2MP | Facility backup can be used for link or node protection of LSRs on | |||
LSPs. | the path of a P2MP LSP. The downstream labels MUST be learned by the | |||
PLR as specified in [RFC4090] from the label corresponding to the S2L | ||||
sub-LSP in the RESV message. SERO processing for SEROs signaled in a | ||||
backup tunnel MUST follow backup tunnel ERO processing described in | ||||
[RFC4090]. | ||||
If link protection is desired, a bypass tunnel is used to protect the | 15.1.1. Link Protection | |||
link between the PLR and next-hop. Thus all S2L sub-LSPs that use the | ||||
link can be protected in the event of link failure. Note that all | ||||
such S2L sub-LSPs belonging to a particular instance of a P2MP tunnel | ||||
will share the same outgoing label on the link between the PLR and | ||||
the next-hop. This is the P2MP LSP label on the link. Label stacking | ||||
is used to send data for each P2MP LSP in the bypass tunnel. The | ||||
inner label is the P2MP LSP label allocated by the nhop. During fail- | ||||
ure Path messages for each S2L sub-LSP, that is effected, will be | ||||
sent to the MP, by the PLR. It is recommended that the PLR use the | ||||
sender template specific method to identify these Path messages. | ||||
Hence the PLR will set the source address in the sender template to a | ||||
local PLR address. The MP will use the LSP-ID to identify the corre- | ||||
sponding S2L sub-LSPs. | ||||
The MP MUST not use the <sub-group originator ID, sub-group ID> while | If link protection is desired, a bypass tunnel MUST be used to | |||
identifying the corresponding S2L sub-LSPs. | protect the link between the PLR and next-hop. Thus all S2L sub-LSPs | |||
that use the link MUST be protected in the event of link failure. | ||||
Note that all such S2L sub-LSPs belonging to a particular instance of | ||||
a P2MP tunnel will share the same outgoing label on the link between | ||||
the PLR and the next-hop. This is the P2MP LSP label on the link. | ||||
Label stacking is used to send data for each P2MP LSP into the bypass | ||||
tunnel. The inner label is the P2MP LSP label allocated by the next- | ||||
hop. During failure Path messages for each S2L sub-LSP, that are | ||||
effected, MUST be sent to the MP, by the PLR. It is recommended that | ||||
the PLR use the sender template specific method to identify these | ||||
Path messages. Hence the PLR will set the source address in the | ||||
sender template to a local PLR address. The MP MUST use the LSP-ID to | ||||
identify the corresponding S2L sub-LSPs. The MP MUST not use the | ||||
<sub-group originator ID, sub-group ID> while identifying the | ||||
corresponding S2L sub-LSPs. In order to further process a S2L sub-LSP | ||||
the MP MUST determine the protected S2L sub-LSP using the LSP-id and | ||||
the <S2L_SUB_LSP> object. | ||||
In order to further process a S2L sub-LSP it will determine the pro- | 15.1.2. Node Protection | |||
tected S2L sub-LSP using the LSP-id and the <S2L_SUB_LSP> object. | ||||
If node protection is desired, the bypass P2P tunnel must intersect | If node protection is desired the PLR MUST use one or more P2P bypass | |||
the path of the protected S2L sub-LSPs on a LSR that is downstream | tunnels to protect the set of S2L sub-LSPs that transit the protected | |||
from the PLR. This constrains the set of S2L sub-LSPs being backed-up | node. Each of these P2P bypass tunnels MUST intersect the path of the | |||
via that bypass tunnel to those S2L sub-LSPs that pass through a com- | S2L sub-LSPs that they protect on a LSR that is downstream from the | |||
mon downstream MP. This MP is the destination of the bypass tunnel. | protected node. This constrains the set of S2L sub-LSPs being backed | |||
The MP will allocate the same label to all such S2L sub-LSPs belong- | up via that bypass tunnel to those S2L sub-LSPs that pass through a | |||
ing to a particular instance of a P2MP tunnel. This will be the inner | common downstream MP. This MP is the destination of the bypass | |||
label used during label stacking by the PLR when it sends data for | tunnel. The MP MUST allocate the same label to all such S2L sub-LSPs | |||
each P2MP LSP in the bypass tunnel. The outer label is the bypass | belonging to a particular P2MP LSP. This is the inner label used | |||
tunnel label. During failure of the protected node the PLR will send | during label stacking by the PLR when it sends data for each P2MP LSP | |||
Path messages for the protected S2L sub-LSPs to the MP using | into the bypass tunnel. The outer label is the bypass tunnel label. | |||
procedures that are same as the link protection procedures described | ||||
above. Node protection may require the PLR to be branch capable as | After detecting failure of the protected node the PLR MUST send a | |||
multiple bypass tunnels may be required to backup the set of S2L sub- | Path message for each protected S2L sub-LSP to the MP of the | |||
LSPs passing through the protected node. Else all the S2L sub-LSPs | protected S2L sub-LSP. It is recommended that the PLR use the sender | |||
passing through the protected node must also pass through a MP that | template specific method to identify these Path messages. Hence the | |||
is downstream from the protected node. | PLR will set the source address in the sender template to a local PLR | |||
address. The MP MUST use the LSP-ID to identify the corresponding S2L | ||||
sub-LSPs. The MP MUST not use the <sub-group originator ID, sub-group | ||||
ID> while identifying the corresponding S2L sub-LSPs. In order to | ||||
further process a S2L sub-LSP the MP MUST determine the protected S2L | ||||
sub-LSP using the LSP-id and the <S2L_SUB_LSP> object. | ||||
Note that node protection MAY require the PLR to be branch capable in | ||||
the data plane as multiple bypass tunnels may be required to backup | ||||
the set of S2L sub-LSPs passing through the protected node. If the | ||||
PLR is not branch capable, the node protection mechanism described | ||||
here is applicable to only those cases where all the S2L sub-LSPs | ||||
passing through the protected node also pass through a single MP that | ||||
is downstream from the protected node. Procedures for node protection | ||||
when a PLR is not branch capable and all the protected S2L sub-LSPs | ||||
do not pass through a single MP that is downstream from the protected | ||||
node are for further study. It is also to be noted that procedures in | ||||
this section require P2P bypass tunnels. Procedures for using P2MP | ||||
bypass tunnels are for further study. | ||||
15.2. One to One Backup | 15.2. One to One Backup | |||
One to one backup as described in [RFC4090] can be used to protect a | One to one backup as described in [RFC4090] can be used to protect a | |||
particular S2L sub-LSP against link and next-hop failure. Protection | particular S2L sub-LSP against link and next-hop failure. Protection | |||
may be used for one or more S2L sub-LSPs between the PLR and the | may be used for one or more S2L sub-LSPs between the PLR and the | |||
next-hop. All the S2L sub-LSPs corresponding to the same instance of | next-hop. All the S2L sub-LSPs corresponding to the same instance of | |||
the P2MP tunnel, between the PLR and the next-hop share the same P2MP | the P2MP tunnel, between the PLR and the next-hop share the same P2MP | |||
LSP label. | LSP label. | |||
All or some of these S2L sub-LSPs may be protected. | All or some of these S2L sub-LSPs may be protected. | |||
The detour S2L sub-LSPs may or may not share labels, depending on the | The detour S2L sub-LSPs may or may not share labels, depending on the | |||
detour path. Thus the set of outgoing labels and next-hops for a P2MP | detour path. Thus the set of outgoing labels and next-hops for a P2MP | |||
LSP that was using a single next-hop and label between the PLR and | LSP that was using a single next-hop and label between the PLR and | |||
next-hop before protection, may change once protection is triggerred. | next-hop before protection, may change once protection is triggerred. | |||
Its is recommended that the path specific method be used to identify | Its is recommended that the path specific method be used to identify | |||
a backup S2L sub-LSP. Hence the DETOUR object will be inserted in the | a backup S2L sub-LSP. Hence the DETOUR object SHOULD be inserted in | |||
backup Path message. A backup S2L sub-LSP MUST be treated as belong- | the backup Path message. A backup S2L sub-LSP MUST be treated as | |||
ing to a different P2MP tunnel instance than the one specified by the | belonging to a different P2MP tunnel instance than the one specified | |||
LSP-id. Furthermore multiple backup S2L sub-LSPs MUST be treated as | by the LSP-id. Furthermore multiple backup S2L sub-LSPs MUST be | |||
part of the same P2MP tunnel instance if they have the same LSP-id | treated as part of the same P2MP tunnel instance if they have the | |||
and the same DETOUR objects. Note that as specified in section 4 S2L | same LSP-id and the same DETOUR objects. Note that as specified in | |||
sub-LSPs between different P2MP tunnel instances use different | section 4 S2L sub-LSPs between different P2MP tunnel instances use | |||
labels. | different labels. | |||
If there is only one S2L sub-LSP in the Path message, the DETOUR | If there is only one S2L sub-LSP in the Path message, the DETOUR | |||
object applies to that sub-LSP. If there are multiple S2L sub-LSPs in | object applies to that sub-LSP. If there are multiple S2L sub-LSPs in | |||
the Path message the DETOUR applies to all the S2L sub-LSPs. | the Path message the DETOUR applies to all the S2L sub-LSPs. | |||
16. Support for LSRs that are not P2MP Capable | 16. Support for LSRs that are not P2MP Capable | |||
It may be that some LSRs in a network are capable of processing the | It may be that some LSRs in a network are capable of processing the | |||
P2MP extensions described in this document, but do not support P2MP | P2MP extensions described in this document, but do not support P2MP | |||
branching in the data plane. If such an LSR is requested to become a | branching in the data plane. If such an LSR is requested to become a | |||
branch LSR by a received Path message, it MUST respond with a PathErr | branch LSR by a received Path message, it MUST respond with a PathErr | |||
message carrying the Error Value "Routing Error" and Error Code | message carrying the Error Code "Routing Error" and Error Value | |||
"Unable to Branch". | "Unable to Branch". | |||
Its also conceivable that some LSRs, in a network deploying P2MP | Its also conceivable that some LSRs, in a network deploying P2MP | |||
capability, may not support the extensions described in this docu- | capability, may not support the extensions described in this | |||
ment. If a Path message for the establishment of a P2MP LSP reaches | document. If a Path message for the establishment of a P2MP LSP | |||
such an LSR it will reject it with a PathErr because it will not rec- | reaches such an LSR it will reject it with a PathErr because it will | |||
ognize the C-Type of the P2MP SESSION object. | not recognize the C-Type of the P2MP SESSION object. | |||
LSRs that do not support the P2MP extensions in this document may be | LSRs that do not support the P2MP extensions in this document may be | |||
included as transit LSRs by the use of LSP-stitching [LSP-STITCH] and | included as transit LSRs by the use of LSP-stitching [LSP-STITCH] and | |||
LSP-hierarchy [LSP-HIER]. Note that LSRs that are required to play | LSP-hierarchy [RFC4206]. Note that LSRs that are required to play any | |||
any other role in the network (ingress, branch or egress) MUST sup- | other role in the network (ingress, branch or egress) MUST support | |||
port the extensions defined in this document. | the extensions defined in this document. | |||
The use of LSP-stitching and LSP-hierarchy [LSP-HIER] allows to build | The use of LSP-stitching and LSP-hierarchy [RFC4206] allows P2MP LSPs | |||
P2MP LSPs in such an environment. A P2P LSP segment is signaled from | to be built in such an environment. A P2P LSP segment is signaled | |||
the previous P2MP capable hop of a legacy LSR to the next P2MP capa- | from the last P2MP capable hop upstream of a legacy LSR to the first | |||
ble hop. Of course this assumes that intermediate legacy LSRs are | P2MP capable hop downstream of it. This assumes that intermediate | |||
transit LSRs and cannot act as P2MP branch points. Transit LSRs along | legacy LSRs are transit LSRs: they cannot act as P2MP branch points. | |||
this LSP segment do not process control plane messages associated | ||||
with a P2MP LSP. Furthermore these LSRs also do not need to have P2MP | Transit LSRs along this LSP segment do not process control plane | |||
data plane capability as they only need to process data belonging to | messages associated with the P2MP LSP. Furthermore, these transit | |||
the P2P LSP segment. Hence these LSRs do not need to support P2MP | LSRs also do not need to have P2MP data plane capabilities as they | |||
MPLS. This P2P LSP segment is stitched to the incoming P2MP LSP. | only need to process data belonging to the P2P LSP segment. Hence | |||
After the P2P LSP segment is established the P2MP Path message is | these transit LSRs do not need to support P2MP MPLS. This P2P LSP | |||
sent to the next P2MP capable LSR as a directed Path message. The | segment is stitched to the incoming P2MP LSP. After the P2P LSP | |||
next P2MP capable LSR stitches the P2P LSP segment to the outgoing | segment is established the P2MP Path message is sent to the next P2MP | |||
P2MP LSP. | capable LSR as a directed Path message. The next P2MP capable LSR | |||
stitches the P2P LSP segment to the outgoing P2MP LSP. | ||||
In packet networks, the S2L sub-LSPs may be nested inside the outer | In packet networks, the S2L sub-LSPs may be nested inside the outer | |||
P2P LSP. Hence label stacking can be used to enable use of the same | P2P LSP. Hence label stacking can be used to enable use of the same | |||
LSP segment for multiple P2MP LSP. Stitching and nesting considera- | LSP segment for multiple P2MP LSP. Stitching and nesting | |||
tions and procedures are described further in [INT-REG]. | considerations and procedures are described further in [INT-REG]. | |||
It may be an overhead for an operator to configure the P2P LSP seg- | It may be an overhead for an operator to configure the P2P LSP | |||
ments in advance, when it is desired to support legacy LSRs. It may | segments in advance, when it is desired to support legacy LSRs. It | |||
be desirable to do this dynamically. The ingress can use IGP exten- | may be desirable to do this dynamically. The ingress can use IGP | |||
sions to determine non P2MP capable LSRs [TE-NODE-CAP]. It can use | extensions to determine non P2MP capable LSRs [TE-NODE-CAP]. It can | |||
this information to compute S2L sub-LSP paths such that they avoid | use this information to compute S2L sub-LSP paths such that they | |||
these legacy LSRs. The explicit route object of a S2L sub-LSP path | avoid these legacy LSRs. The explicit route object of a S2L sub-LSP | |||
may contain loose hops if there are legacy LSRs along the path. The | path may contain loose hops if there are legacy LSRs along the path. | |||
corresponding explicit route contains a list of objects upto the P2MP | The corresponding explicit route contains a list of objects upto the | |||
capable LSR that is adjacent to a legacy LSR followed by a loose | P2MP capable LSR that is adjacent to a legacy LSR followed by a loose | |||
object with the address of the next P2MP capable LSR. The P2MP capa- | object with the address of the next P2MP capable LSR. The P2MP | |||
ble LSR expands the loose hop using its TED. When doing this it | capable LSR expands the loose hop using its TED. When doing this it | |||
determines that the loose hop expansion requires a P2P LSP to tunnel | determines that the loose hop expansion requires a P2P LSP to tunnel | |||
through the legacy LSR. If such a P2P LSP exists, it uses that P2P | through the legacy LSR. If such a P2P LSP exists, it uses that P2P | |||
LSP. Else it establishes the P2P LSP. The P2MP Path message is sent | LSP. Else it establishes the P2P LSP. The P2MP Path message is sent | |||
to the next P2MP capable LSR using non-adjacent signaling. The P2MP | to the next P2MP capable LSR using non-adjacent signaling. The P2MP | |||
capable LSR that initiates the non-adjacent signaling message to the | capable LSR that initiates the non-adjacent signaling message to the | |||
next P2MP capable LSR may have to employ a fast detection mechanism | next P2MP capable LSR may have to employ a fast detection mechanism | |||
such as [BFD] to the next P2MP capable LSR. | such as [BFD] to the next P2MP capable LSR. | |||
This may be needed for the directed Path message Head-End to use node | This may be needed for the directed Path message Head-End to use node | |||
protection FRR when the protected node is the directed Path message | protection FRR when the protected node is the directed Path message | |||
tail. | tail. | |||
Note that legacy LSRs along a P2P LSP segment cannot perform node | Note that legacy LSRs along a P2P LSP segment cannot perform node | |||
protection of the tail of the P2P LSP segment. | protection of the tail of the P2P LSP segment. | |||
17. Reduction in Control Plane Processing with LSP Hierarchy | 17. Reduction in Control Plane Processing with LSP Hierarchy | |||
It is possible to take advantage of LSP hierarchy [LSP-HIER] while | It is possible to take advantage of LSP hierarchy [RFC4206] while | |||
setting up P2MP LSP, as described in the previous section, to reduce | setting up P2MP LSP, as described in the previous section, to reduce | |||
control plane processing along transit LSRs that are P2MP capable. | control plane processing along transit LSRs that are P2MP capable. | |||
This is applicable only in environments where LSP hierarchy can be | This is applicable only in environments where LSP hierarchy can be | |||
used. Transit LSRs along a P2P LSP segment, being used by a P2MP LSP, | used. Transit LSRs along a P2P LSP segment, being used by a P2MP LSP, | |||
do not process control plane messages associated with the P2MP LSP. | do not process control plane messages associated with the P2MP LSP. | |||
Infact they are not aware of these messages as they are tunneled over | Infact they are not aware of these messages as they are tunneled over | |||
the P2P LSP segment. This reduces the amount of control plane pro- | the P2P LSP segment. This reduces the amount of control plane | |||
cessing required on these transit LSRs. | processing required on these transit LSRs. | |||
Note that the P2P LSP segments can be dynamically setup as described | Note that the P2P LSPs be dynamically setup as described in the | |||
in the previous section or preconfigured. For example in Figure 2, | previous section or preconfigured. For example in Figure 2, PE1 can | |||
PE1 can setup a P2P LSP to P1 and use that as a LSP segment. The Path | setup a P2P LSP to P1 and use that as a LSP segment. The Path | |||
messages for PE3 and PE4 can now be tunneled over the LSP segment. | messages for PE3 and PE4 can now be tunneled over the LSP segment. | |||
Thus P3 is not aware of the P2MP LSP and does not process the P2MP | Thus P3 is not aware of the P2MP LSP and does not process the P2MP | |||
control messages. | control messages. | |||
18. P2MP LSP Remerging and Cross-Over | 18. P2MP LSP Remerging and Cross-Over | |||
This section is currently under discussion between the authors and | This section is currently under discussion between the authors and | |||
will be updated in the next revision. | will be updated in the next revision. | |||
This section details the procedures for detecting and dealing with | This section details the procedures for detecting and dealing with | |||
skipping to change at page 33, line 34 | skipping to change at page 35, line 23 | |||
(Make-before-break represents yet another similar but different case, | (Make-before-break represents yet another similar but different case, | |||
in that the incoming interface associated with the make-before-break | in that the incoming interface associated with the make-before-break | |||
P2MP LSP may be different than that associated with the original P2MP | P2MP LSP may be different than that associated with the original P2MP | |||
LSP. However, the two P2MP LSPs will be treated as distinct, but | LSP. However, the two P2MP LSPs will be treated as distinct, but | |||
related, LSPs because they will have different LSP ID field values in | related, LSPs because they will have different LSP ID field values in | |||
their SENDER_TEMPLATE objects.) | their SENDER_TEMPLATE objects.) | |||
18.1. Procedures | 18.1. Procedures | |||
When a node receives a Path message, it MUST check whether it has | When a node receives a Path message, it MUST check whether it has | |||
matching state for the P2MP LSP. Matching state is identified by com- | matching state for the P2MP LSP. Matching state is identified by | |||
paring the SESSION and SENDER_TEMPLATE objects in the received Path | comparing the SESSION and SENDER_TEMPLATE objects in the received | |||
message with the SESSION and SENDER_TEMPLATE objects of each locally | Path message with the SESSION and SENDER_TEMPLATE objects of each | |||
maintained P2MP LSP Path state. The P2MP ID, Tunnel ID, and Extended | locally maintained P2MP LSP Path state. The P2MP ID, Tunnel ID, and | |||
Tunnel ID in the SESSION Object and the sender address and LSP ID in | Extended Tunnel ID in the SESSION Object and the sender address and | |||
the SENDER_TEMPLATE object are used for the comparison. If the node | LSP ID in the SENDER_TEMPLATE object are used for the comparison. If | |||
has matching state and the incoming interface for the received Path | the node has matching state and the incoming interface for the | |||
message is different than the incoming interface of the matching P2MP | received Path message is different than the incoming interface of the | |||
LSP Path state, then the node MUST determine whether it is dealing | matching P2MP LSP Path state, then the node MUST determine whether it | |||
with dynamic LSP rerouting or re-merge/cross-over. | is dealing with dynamic LSP rerouting or re-merge/cross-over. | |||
Dynamic LSP rerouting is identified by checking whether there is any | Dynamic LSP rerouting is identified by checking whether there is any | |||
intersection between the set of SUB-LSP objects associated with the | intersection between the set of SUB-LSP objects associated with the | |||
matching P2MP LSP Path state and the set of SUB-LSP objects in the | matching P2MP LSP Path state and the set of SUB-LSP objects in the | |||
received Path message. If there is any intersection, then dynamic | received Path message. If there is any intersection, then dynamic | |||
re-routing has occurred. If there is no intersection between the two | re-routing has occurred. If there is no intersection between the two | |||
sets of SUB-LSP objects, then either re-merge or cross-over has | sets of SUB-LSP objects, then either re-merge or cross-over has | |||
occurred. (Note that in the case of dynamic LSP rerouting, Path mes- | occurred. (Note that in the case of dynamic LSP rerouting, Path | |||
sages for the non-intersecting members of set of SUB-LSPs associated | messages for the non-intersecting members of set of SUB-LSPs | |||
with the matching P2MP LSP Path state will be received subsequently | associated with the matching P2MP LSP Path state will be received | |||
on the new incoming interface.) | subsequently on the new incoming interface.) | |||
In order to identify the re-merge case, the node processing the | In order to identify the re-merge case, the node processing the | |||
received Path message MUST identify the outgoing interfaces associ- | received Path message MUST identify the outgoing interfaces | |||
ated with the matching P2MP Path state. Re-merge has occurred if | associated with the matching P2MP Path state. Re-merge has occurred | |||
there is any intersection between the set of outgoing interfaces | if there is any intersection between the set of outgoing interfaces | |||
associated with the matching P2MP LSP Path state and the set of out- | associated with the matching P2MP LSP Path state and the set of | |||
going interfaces in the received Path message. | outgoing interfaces in the received Path message. | |||
18.1.1. Re-Merge Procedures | 18.1.1. Re-Merge Procedures | |||
There are two approaches to dealing with re-merge case. In the | There are two approaches to dealing with re-merge case. In the | |||
first, the node detecting the re-merge case, i.e., the re-merge node, | first, the node detecting the re-merge case, i.e., the re-merge node, | |||
allows the re-merge case to persist but data from all but one incom- | allows the re-merge case to persist but data from all but one | |||
ing interface is dropped at the re-merge node. In the second, the | incoming interface is dropped at the re-merge node. In the second, | |||
re-merge node initiates the removal of the re-merge branch(es) via | the re-merge node initiates the removal of the re-merge branch(es) | |||
signaling. Which approach is used is a matter of local policy. A | via signaling. Which approach is used is a matter of local policy. | |||
node MUST support both approaches and MUST allow user configuration | A node MUST support both approaches and MUST allow user configuration | |||
of which approach is to be used. | of which approach is to be used. | |||
When configured to allow a re-merge case to persist, the re-merge | When configured to allow a re-merge case to persist, the re-merge | |||
node MUST validate consistency between the objects included the | node MUST validate consistency between the objects included the | |||
received Path message and the matching P2MP LSP Path state. Any | received Path message and the matching P2MP LSP Path state. Any | |||
inconsistencies MUST result in an appropriate PathErr message sent to | inconsistencies MUST result in an appropriate PathErr message sent to | |||
the previous hop of the received Path message. The error code is set | the previous hop of the received Path message. The Error Code is set | |||
to "Routing Problem" and the error value is set to "P2MP Re-Merge | to "Routing Problem" and the Error Value is set to "P2MP Re-Merge | |||
Parameter Mistmatch". | Parameter Mistmatch". | |||
If there are no inconsistencies, the node logically merges, from the | If there are no inconsistencies, the node logically merges, from the | |||
downstream perspective, the control state of incoming Path message | downstream perspective, the control state of incoming Path message | |||
with the matching P2MP LSP Path state. Specifically, procedures | with the matching P2MP LSP Path state. Specifically, procedures | |||
related to processing of messages received from upstream MUST NOT be | related to processing of messages received from upstream MUST NOT be | |||
modified from the upstream perspective; this includes refresh and | modified from the upstream perspective; this includes refresh and | |||
state timeout related processing. In addition to the standard | state timeout related processing. In addition to the standard | |||
upstream related procedures, the node MUST ensure that each object | upstream related procedures, the node MUST ensure that each object | |||
received from upstream is appropriately represented within the set of | received from upstream is appropriately represented within the set of | |||
Path messages sent downstream. For example, the received <S2L sub-LSP | Path messages sent downstream. For example, the received <S2L sub-LSP | |||
descriptor list> MUST be included in the set of outgoing Path mes- | descriptor list> MUST be included in the set of outgoing Path | |||
sages. If there are any NOTIFY_REQUEST request objects present, then | messages. If there are any NOTIFY_REQUEST request objects present, | |||
the procedures defined in Section 8 MUST be followed for both Path | then the procedures defined in Section 8 MUST be followed for both | |||
and Resv messages. Special processing is also required for Resv pro- | Path and Resv messages. Special processing is also required for Resv | |||
cessing. Specifically, any Resv message received from downstream | processing. Specifically, any Resv message received from downstream | |||
MUST be mapped into an outgoing Resv message that is sent to the pre- | MUST be mapped into an outgoing Resv message that is sent to the | |||
vious hop of the received Path message. In practice, this translates | previous hop of the received Path message. In practice, this | |||
to decomposing the complete <S2L sub-LSP descriptor list> into sub- | translates to decomposing the complete <S2L sub-LSP descriptor list> | |||
sets that match the incoming Path messages and then constructing an | into sub-sets that match the incoming Path messages and then | |||
outgoing Resv message for each incoming Path message. | constructing an outgoing Resv message for each incoming Path message. | |||
When configured to allow a re-merge case to persist, the re-merge | When configured to allow a re-merge case to persist, the re-merge | |||
node receives data associated with the P2MP LSP on multiple incoming | node receives data associated with the P2MP LSP on multiple incoming | |||
interfaces, but it may only send the data from one of these inter- | interfaces, but it may only send the data from one of these | |||
faces to its outgoing interfaces, i.e., the node MUST drop data from | interfaces to its outgoing interfaces, i.e., the node MUST drop data | |||
all but one incoming interface. This ensures that duplicate data is | from all but one incoming interface. This ensures that duplicate | |||
not sent on any outgoing interface. The mechanism used to select the | data is not sent on any outgoing interface. The mechanism used to | |||
incoming interface to use is implementation specific and is outside | select the incoming interface to use is implementation specific and | |||
the scope of this document. | is outside the scope of this document. | |||
When configured to correct the re-merge branch via signaling, the re- | When configured to correct the re-merge branch via signaling, the re- | |||
merge node MUST send a PathErr message corresponding to the received | merge node MUST send a PathErr message corresponding to the received | |||
Path message. The PathErr message MUST include all of the objects | Path message. The PathErr message MUST include all of the objects | |||
normally included in a PathErr message, as well as one or more SUB- | normally included in a PathErr message, as well as one or more SUB- | |||
LSP objects from the set of sub-LSPs associated with the matching | LSP objects from the set of sub-LSPs associated with the matching | |||
P2MP LSP Path state. A minimum of three SUB-LSP objects is RECOM- | P2MP LSP Path state. A minimum of three SUB-LSP objects is | |||
MENDED. This will allow the node that caused the re-merge to identify | RECOMMENDED. This will allow the node that caused the re-merge to | |||
the outgoing Path state associated with the valid portion of the P2MP | identify the outgoing Path state associated with the valid portion of | |||
LSP. The PathErr message MUST include the error code "Routing Prob- | the P2MP LSP. The set of SUB-LSP objects in the received Path message | |||
lem" and error value of "P2MP Remerge Detected". The node MAY set the | MUST also be included. The PathErr message MUST include the Error | |||
Path_State_Removed flag [RFC3473]. As is always the case, the | Code "Routing Problem" and Error Value of "P2MP Remerge Detected". | |||
PathErr message is sent to the previous hop of the received Path mes- | The node MAY set the Path_State_Removed flag [RFC3473]. As is always | |||
sage. | the case, the PathErr message is sent to the previous hop of the | |||
received Path message. | ||||
A node that receives a PathErr message that contains the error "Rout- | A node that receives a PathErr message that contains the Error Value | |||
ing Problem/P2MP Remerge Detected" MUST determine if it is the node | "Routing Problem/P2MP Remerge Detected" MUST determine if it is the | |||
that created the re-merge case. This is done by checking whether | node that created the re-merge case. This is done by checking | |||
there is any intersection between the set of SUB-LSP objects associ- | whether there is any intersection between the set of SUB-LSP objects | |||
ated with the matching P2MP LSP Path state and the set of SUB-LSP | associated with the matching P2MP LSP Path state and the set of SUB- | |||
objects in the received PathErr message. If there is, then the node | LSP objects in the received PathErr message. If there is, then the | |||
created the re-merge case. | node created the re-merge case. | |||
The node SHOULD remove the re-merge case by moving the SUB-LSP | The node SHOULD remove the re-merge case by moving the SUB-LSP | |||
objects included in the Path message associated with the received | objects included in the Path message associated with the received | |||
PathErr message to the outgoing interface associated with the match- | PathErr message to the outgoing interface associated with the | |||
ing P2MP LSP Path state. A trigger Path message for the moved SUB- | matching P2MP LSP Path state. A trigger Path message for the moved | |||
LSP objects is then sent via that outgoing interface. If the | SUB-LSP objects is then sent via that outgoing interface. If the | |||
received PathErr message did not have the Path_State_Removed flag | received PathErr message did not have the Path_State_Removed flag | |||
set, the node SHOULD send a PathTear via the outgoing interface asso- | set, the node SHOULD send a PathTear via the outgoing interface | |||
ciated with the re-merge branch. | associated with the re-merge branch. | |||
If use of a new outgoing interface violates one or more SERO con- | If use of a new outgoing interface violates one or more SERO | |||
straint, then a PathErr message containing the associated egresses | constraint, then a PathErr message containing the associated egresses | |||
and any identified SUB-LSP objects SHOULD be generated with the error | and any identified SUB-LSP objects SHOULD be generated with the Error | |||
code "Routing Problem" and error value of "ERO Resulted in Remerge". | Code "Routing Problem" and Error Value of "ERO Resulted in Remerge". | |||
The only case where this process will fail is when all the listed | The only case where this process will fail is when all the listed | |||
SUB-LSP objects are deleted prior to the PathErr message propagating | SUB-LSP objects are deleted prior to the PathErr message propagating | |||
to the ingress. In this case, the whole process will be corrected on | to the ingress. In this case, the whole process will be corrected on | |||
the next (refresh or trigger) transmission of the offending Path mes- | the next (refresh or trigger) transmission of the offending Path | |||
sage. | message. | |||
19. New and Updated Message Objects | 19. New and Updated Message Objects | |||
This section presents the RSVP object formats as modified by this | This section presents the RSVP object formats as modified by this | |||
document. | document. | |||
19.1. SESSION Object | 19.1. SESSION Object | |||
A P2MP LSP SESSION object is used. This object uses the existing | A P2MP LSP SESSION object is used. This object uses the existing | |||
SESSION C-Num. New C-Types are defined to accommodate a logical P2MP | SESSION C-Num. New C-Types are defined to accommodate a logical P2MP | |||
destination identifier of the P2MP Tunnel. This SESSION object has a | destination identifier of the P2MP Tunnel. This SESSION object has a | |||
similar structure as the existing point to point RSVP-TE SESSION | similar structure as the existing point to point RSVP-TE SESSION | |||
object. However the destination address is set to the P2MP ID | object. However the destination address is set to the P2MP ID | |||
instead of the unicast Tunnel Endpoint address. All S2L sub-LSPs part | instead of the unicast Tunnel Endpoint address. All S2L sub-LSPs that | |||
of the same P2MP LSP share the same SESSION object. This SESSION | are part of the same P2MP LSP share the same SESSION object. This | |||
object identifies the P2MP Tunnel. | SESSION object identifies the P2MP Tunnel. | |||
The combination of the SESSION object, the SENDER_TEMPLATE object and | The combination of the SESSION object, the SENDER_TEMPLATE object and | |||
the <S2L_SUB_LSP> object, identifies each S2L sub-LSP. This follows | the <S2L_SUB_LSP> object, identifies each S2L sub-LSP. This follows | |||
the existing P2P RSVP-TE notion of using the SESSION object for iden- | the existing P2P RSVP-TE notion of using the SESSION object for | |||
tifying a P2P Tunnel which in turn can contain multiple LSPs, each | identifying a P2P Tunnel which in turn can contain multiple LSPs, | |||
distinguished by a unique SENDER_TEMPLATE object. | each distinguished by a unique SENDER_TEMPLATE object. | |||
19.1.1. P2MP LSP Tunnel IPv4 SESSION Object | 19.1.1. P2MP LSP Tunnel IPv4 SESSION Object | |||
Class = SESSION, P2MP_LSP_TUNNEL_IPv4 C-Type = TBA | Class = SESSION, P2MP_LSP_TUNNEL_IPv4 C-Type = 13 | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| P2MP ID | | | P2MP ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MUST be zero | Tunnel ID | | | MUST be zero | Tunnel ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Tunnel ID | | | Extended Tunnel ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 37, line 28 | skipping to change at page 39, line 21 | |||
all zeros. Ingress nodes that wish to narrow the scope of a | all zeros. Ingress nodes that wish to narrow the scope of a | |||
SESSION to the ingress-PID pair may place their IPv4 address | SESSION to the ingress-PID pair may place their IPv4 address | |||
here as a globally unique identifier [RFC3209]. | here as a globally unique identifier [RFC3209]. | |||
19.1.2. P2MP LSP Tunnel IPv6 SESSION Object | 19.1.2. P2MP LSP Tunnel IPv6 SESSION Object | |||
This is same as the P2MP IPv4 LSP SESSION Object with the difference | This is same as the P2MP IPv4 LSP SESSION Object with the difference | |||
that the extended tunnel ID may be set to a 16 byte identifier | that the extended tunnel ID may be set to a 16 byte identifier | |||
[RFC3209]. | [RFC3209]. | |||
Class = SESSION, P2MP_LSP_TUNNEL_IPv4 C-Type = 14 | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| P2MP ID | | | P2MP ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MUST be zero | Tunnel ID | | | MUST be zero | Tunnel ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Extended Tunnel ID (16 bytes) | | | Extended Tunnel ID (16 bytes) | | |||
| | | | | | |||
| ....... | | | ....... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
19.2. SENDER_TEMPLATE object | 19.2. SENDER_TEMPLATE object | |||
The SENDER_TEMPLATE object contains the ingress-LSR source address. | The SENDER_TEMPLATE object contains the ingress-LSR source address. | |||
LSP ID can be can be changed to allow a sender to share resources | LSP ID can be can be changed to allow a sender to share resources | |||
with itself. Thus multiple instances of the P2MP tunnel can be cre- | with itself. Thus multiple instances of the P2MP tunnel can be | |||
ated, each with a different LSP ID. The instances can share resources | created, each with a different LSP ID. The instances can share | |||
with each other, but use different labels. The S2L sub-LSPs corre- | resources with each other, but use different labels. The S2L sub-LSPs | |||
sponding to a particular instance use the same LSP ID. | corresponding to a particular instance use the same LSP ID. | |||
As described in section 4.2 it is necessary to distinguish different | As described in section 4.2 it is necessary to distinguish different | |||
Path messages that are used to signal state for the same P2MP LSP by | Path messages that are used to signal state for the same P2MP LSP by | |||
using a <Sub-Group ID Originator ID, Sub-Group ID> tuple. The | using a <Sub-Group ID Originator ID, Sub-Group ID> tuple. The | |||
SENDER_TEMPLATE object is modified to carry this information as shown | SENDER_TEMPLATE object is modified to carry this information as shown | |||
below. | below. | |||
19.2.1. P2MP LSP Tunnel IPv4 SENDER_TEMPLATE Object | 19.2.1. P2MP LSP Tunnel IPv4 SENDER_TEMPLATE Object | |||
Class = SENDER_TEMPLATE, P2MP_LSP_TUNNEL_IPv4 C-Type = TBA | Class = SENDER_TEMPLATE, P2MP_LSP_TUNNEL_IPv4 C-Type = 12 | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IPv4 tunnel sender address | | | IPv4 tunnel sender address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reserved | LSP ID | | | Reserved | LSP ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-Group Originator ID | | | Sub-Group Originator ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 39, line 7 | skipping to change at page 40, line 41 | |||
An identifier of a Path message used to differentiate | An identifier of a Path message used to differentiate | |||
multiple Path messages that signal state for the same P2MP | multiple Path messages that signal state for the same P2MP | |||
LSP. This may be seen as identifying a group of one or more | LSP. This may be seen as identifying a group of one or more | |||
egress nodes targeted by this Path message. | egress nodes targeted by this Path message. | |||
LSP ID | LSP ID | |||
See [RFC3209] | See [RFC3209] | |||
19.2.2. P2MP LSP Tunnel IPv6 SENDER_TEMPLATE Object | 19.2.2. P2MP LSP Tunnel IPv6 SENDER_TEMPLATE Object | |||
Class = SENDER_TEMPLATE, P2MP_LSP_TUNNEL_IPv6 C-Type = TBA | Class = SENDER_TEMPLATE, P2MP_LSP_TUNNEL_IPv6 C-Type = 13 | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+ + | + + | |||
| IPv6 tunnel sender address | | | IPv6 tunnel sender address | | |||
+ + | + + | |||
| (16 bytes) | | | (16 bytes) | | |||
+ + | + + | |||
skipping to change at page 39, line 43 | skipping to change at page 41, line 31 | |||
IPv6 tunnel sender address | IPv6 tunnel sender address | |||
See [RFC3209] | See [RFC3209] | |||
Sub-Group Originator ID | Sub-Group Originator ID | |||
The Sub-Group Originator ID is set to the IPv6 TE Router ID | The Sub-Group Originator ID is set to the IPv6 TE Router ID | |||
of the LSR that originates the Path message. This is either | of the LSR that originates the Path message. This is either | |||
the ingress LSR or a LSR which re-originates the Path | the ingress LSR or a LSR which re-originates the Path | |||
message with its own Sub-Group Originator ID. | message with its own Sub-Group Originator ID. | |||
Sub-Group ID | Sub-Group ID | |||
As above in section 19.2.2. | As above in section 19.2.1. | |||
LSP ID | LSP ID | |||
See [RFC3209] | See [RFC3209] | |||
19.3. <S2L_SUB_LSP> Object | 19.3. <S2L_SUB_LSP> Object | |||
A new <S2L_SUB_LSP> object identifies a particular S2L sub-LSP | A new <S2L_SUB_LSP> object identifies a particular S2L sub-LSP | |||
belonging to the P2MP LSP. | belonging to the P2MP LSP. | |||
19.3.1. <S2L_SUB_LSP> IPv4 Object | 19.3.1. <S2L_SUB_LSP> IPv4 Object | |||
SUB_LSP Class = 50, S2L_SUB_LSP_IPv4 C-Type = TBA | SUB_LSP Class = 50, S2L_SUB_LSP_IPv4 C-Type = 1 | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IPv4 S2L Sub-LSP destination address | | | IPv4 S2L Sub-LSP destination address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
IPv4 Sub-LSP destination address | IPv4 Sub-LSP destination address | |||
IPv4 address of the S2L sub-LSP destination. | IPv4 address of the S2L sub-LSP destination. | |||
19.3.2. <S2L_SUB_LSP> IPv6 Object | 19.3.2. <S2L_SUB_LSP> IPv6 Object | |||
SUB_LSP Class = 50, S2L_SUB_LSP_IPv6 C-Type = TBA | SUB_LSP Class = 50, S2L_SUB_LSP_IPv6 C-Type = 2 | |||
This is same as the S2L IPv4 Sub-LSP object, with the difference that | This is same as the S2L IPv4 Sub-LSP object, with the difference that | |||
the destination address is a 16 byte IPv6 address. | the destination address is a 16 byte IPv6 address. | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IPv6 S2L Sub-LSP destination address (16 bytes) | | | IPv6 S2L Sub-LSP destination address (16 bytes) | | |||
| .... | | | .... | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
19.4. FILTER_SPEC Object | 19.4. FILTER_SPEC Object | |||
The FILTER_SPEC object is canonical to the P2MP SENDER_TEMPLATE | The FILTER_SPEC object is canonical to the P2MP SENDER_TEMPLATE | |||
object. | object. | |||
19.4.1. P2MP LSP_IPv4 FILTER_SPEC Object | 19.4.1. P2MP LSP_IPv4 FILTER_SPEC Object | |||
Class = FILTER SPEC, P2MP LSP_IPv4 C-Type = TBA | Class = FILTER SPEC, P2MP LSP_IPv4 C-Type = 12 | |||
The format of the P2MP LSP_IPv4 FILTER_SPEC object is identical to | The format of the P2MP LSP_IPv4 FILTER_SPEC object is identical to | |||
the P2MP LSP_IPv4 SENDER_TEMPLATE object. | the P2MP LSP_IPv4 SENDER_TEMPLATE object. | |||
19.4.2. P2MP LSP_IPv4 FILTER_SPEC Object | 19.4.2. P2MP LSP_IPv4 FILTER_SPEC Object | |||
Class = FILTER SPEC, P2MP LSP_IPv6 C-Type = TBA | Class = FILTER SPEC, P2MP LSP_IPv6 C-Type = 13 | |||
The format of the P2MP LSP_IPv6 FILTER_SPEC object is identical to | The format of the P2MP LSP_IPv6 FILTER_SPEC object is identical to | |||
the P2MP LSP_IPv6 SENDER_TEMPLATE object. | the P2MP LSP_IPv6 SENDER_TEMPLATE object. | |||
19.5. P2MP SECONDARY_EXPLICIT_ROUTE Object (SERO) | 19.5. P2MP SECONDARY_EXPLICIT_ROUTE Object (SERO) | |||
The P2MP Secondary Explicit Route Object (SERO) is defined as identi- | The P2MP SECONDARY_EXPLICIT_ROUTE Object (SERO) is defined as | |||
cal to the ERO. The class of the P2MP SERO is the same as the SERO | identical to the ERO. The class of the P2MP SERO is the same as the | |||
defined in [RECOVERY]. The P2MP SERO uses a new C-Type = 2. The sub- | SERO defined in [RECOVERY]. The P2MP SERO uses a new C-Type = 2. The | |||
objects are identical to those defined for the ERO. | sub-objects are identical to those defined for the ERO. | |||
19.6. P2MP SECONDARY_RECORD_ROUTE Object (SRRO) | 19.6. P2MP SECONDARY_RECORD_ROUTE Object (SRRO) | |||
The P2MP SECONDARY_RECORD_ROUTE Object (SRRO) is defined as identical | The P2MP SECONDARY_RECORD_ROUTE Object (SRRO) is defined as identical | |||
to the ERO. The class of the P2MP SRRO is the same as the SRRO | to the ERO. The class of the P2MP SRRO is the same as the SRRO | |||
defined in [RECOVERY]. The P2MP SRRO uses a new C-Type = 2. The sub- | defined in [RECOVERY]. The P2MP SRRO uses a new C-Type = 2. The sub- | |||
objects are identical to those defined for the RRO. | objects are identical to those defined for the RRO. | |||
20. IANA Considerations | 20. IANA Considerations | |||
skipping to change at page 42, line 37 | skipping to change at page 44, line 20 | |||
Class Name = SECONDARY_EXPLICIT_ROUTE | Class Name = SECONDARY_EXPLICIT_ROUTE | |||
C-Type | C-Type | |||
2 P2MP SECONDARY_EXPLICIT_ROUTE C-Type | 2 P2MP SECONDARY_EXPLICIT_ROUTE C-Type | |||
Class Name = SECONDARY_RECORD_ROUTE | Class Name = SECONDARY_RECORD_ROUTE | |||
C-Type | C-Type | |||
2 P2MP_SECONDARY_RECORD_ROUTE C-Type | 2 P2MP_SECONDARY_RECORD_ROUTE C-Type | |||
20.3. New Error Codes | 20.3. New Error Values | |||
Four new Error Codes are defined for use with the Error Value "Rout- | Four new Error Values are defined for use with the Error Code | |||
ing Problem". IANA is requested to assign values. | "Routing Problem". IANA is requested to assign values. | |||
The Error Code "Unable to Branch" indicates that a P2MP branch cannot | The Error Value "Unable to Branch" indicates that a P2MP branch | |||
be formed by the reporting LSR. IANA is requested to assign value 23 | cannot be formed by the reporting LSR. IANA is requested to assign | |||
to this Error Code. | value 23 to this Error Value. | |||
The Error Code "Unsupported LSP Integrity" indicates that a P2MP | The Error Value "Unsupported LSP Integrity" indicates that a P2MP | |||
branch does not support the requested LSP integrity function. IANA is | branch does not support the requested LSP integrity function. IANA is | |||
requested to assign value 24 to this Error Code. | requested to assign value 24 to this Error Value. | |||
The Error Code "P2MP Remerge Detected" indicates that a node has | The Error Value "P2MP Remerge Detected" indicates that a node has | |||
detected remerge. IANA is requested to assign value 25 to this Error | detected remerge. IANA is requested to assign value 25 to this Error | |||
Code. | Value. | |||
The Error Value "P2MP Re-Merge Parameter Mismatch" is described in | ||||
section 18. IANA is requested to assign value 26 to this Error Value. | ||||
The Error Value "ERO Resulted in Remerge" is described in section 18. | ||||
IANA is requested to assign value 27 to this Error Value. | ||||
20.4. LSP Attributes Flags | 20.4. LSP Attributes Flags | |||
IANA has been asked to manage the space of flags in the Attibutes | IANA has been asked to manage the space of flags in the Attibutes | |||
Flags TLV carried in the LSP_ATTRIBUTES Object [LSP-ATTRIB]. This | Flags TLV carried in the LSP_REQUIRED_ATTRIBUTES Object [LSP-ATTRIB]. | |||
document defines two new flags as follows: | This document defines a new flag as follows: | |||
Suggested Bit Number: 3 | Suggested Bit Number: 3 | |||
Meaning: LSP Integrity Required | Meaning: LSP Integrity Required | |||
Used in Attributes Flags on Path: Yes | Used in Attributes Flags on Path: Yes | |||
Used in Attributes Flags on Resv: No | Used in Attributes Flags on Resv: No | |||
Used in Attributes Flags on RRO: No | Used in Attributes Flags on RRO: No | |||
Referenced Section of this Doc: 10 | Referenced Section of this Doc: 10 | |||
21. Security Considerations | 21. Security Considerations | |||
This document does not introduce any new security issues. The secu- | This document does not introduce any new security issues. The | |||
rity issues identified in [RFC3209] and [RFC3473] are still relevant. | security issues identified in [RFC3209] and [RFC3473] are still | |||
relevant. | ||||
22. Acknowledgements | 22. Acknowledgements | |||
This document is the product of many people. The contributors are | This document is the product of many people. The contributors are | |||
listed in Section 27.2. | listed in Section 27.2. | |||
Thanks to Yakov Rekhter, Der-Hwa Gan, Arthi Ayyanger and Nischal | Thanks to Yakov Rekhter, Der-Hwa Gan, Arthi Ayyanger and Nischal | |||
Sheth for their suggestions and comments. Thanks also to Dino Farni- | Sheth for their suggestions and comments. Thanks also to Dino | |||
nacci for his comments. | Farninacci for his comments. | |||
23. Appendix | 23. Appendix | |||
23.1. Example | 23.1. Example | |||
Following is one example of setting up a P2MP LSP using the proce- | Following is one example of setting up a P2MP LSP using the | |||
dures described in this document. | procedures described in this document. | |||
Source 1 (S1) | Source 1 (S1) | |||
| | | | |||
PE1 | PE1 | |||
| | | | | | |||
|L5 | | |L5 | | |||
P3 | | P3 | | |||
| | | | | | |||
L3 |L1 |L2 | L3 |L1 |L2 | |||
R2----PE3--P1 P2---PE2--Receiver 1 (R1) | R2----PE3--P1 P2---PE2--Receiver 1 (R1) | |||
skipping to change at page 44, line 40 | skipping to change at page 46, line 38 | |||
e) PE1 establishes the S2L sub-LSP to PE3 along <PE1, P3, P1, PE3> | e) PE1 establishes the S2L sub-LSP to PE3 along <PE1, P3, P1, PE3> | |||
f) PE1 computes the P2P path to reach PE4 when it discovers PE4. This | f) PE1 computes the P2P path to reach PE4 when it discovers PE4. This | |||
path is computed to share the same links where possible with the sub- | path is computed to share the same links where possible with the sub- | |||
LSPs to PE2 and PE3 as they belong to the same P2MP session. | LSPs to PE2 and PE3 as they belong to the same P2MP session. | |||
g) PE1 signals the Path message for PE4 sub-LSP along <PE1, P3, P1, | g) PE1 signals the Path message for PE4 sub-LSP along <PE1, P3, P1, | |||
PE4> | PE4> | |||
e) P1 receives a Resv message from PE4 with label L4. It had previ- | e) P1 receives a Resv message from PE4 with label L4. It had | |||
ously received a Resv message from PE3 with label L3. It had allo- | previously received a Resv message from PE3 with label L3. It had | |||
cated a label L1 for the sub-LSP to PE3. It uses the same label and | allocated a label L1 for the sub-LSP to PE3. It uses the same label | |||
sends the Resv messages to P3. Note that it may send only one Resv | and sends the Resv messages to P3. Note that it may send only one | |||
message with multiple flow descriptors in the flow descriptor list. | Resv message with multiple flow descriptors in the flow descriptor | |||
If this is the case and FF style is used, the FF flow descriptor will | list. If this is the case and FF style is used, the FF flow | |||
contain the S2L sub-LSP descriptor list with two entries: one for PE4 | descriptor will contain the S2L sub-LSP descriptor list with two | |||
and the other for PE3. For SE style, the SE filter spec will contain | entries: one for PE4 and the other for PE3. For SE style, the SE | |||
this S2L sub-LSP descriptor list. P1 also creates a label mapping of | filter spec will contain this S2L sub-LSP descriptor list. P1 also | |||
(L1 -> {L3, L4}). P3 uses the existing label L5 and sends the Resv | creates a label mapping of (L1 -> {L3, L4}). P3 uses the existing | |||
message to PE1, with label L5. It reuses the label mapping of {L5 -> | label L5 and sends the Resv message to PE1, with label L5. It reuses | |||
L1}. | the label mapping of {L5 -> L1}. | |||
24. References | 24. References | |||
24.1. Normative References | 24.1. Normative References | |||
[LSP-HIER] K. Kompella, Y. Rekhter, "LSP Hierarchy with Generalized | [RFC4206] K. Kompella, Y. Rekhter, "LSP Hierarchy with Generalized | |||
MPLS TE", draft-ietf-mpls-lsp-hierarchy-08.txt, work in | MPLS TE" [RFC4206] | |||
progress. | ||||
[LSP-ATTR] A. Farrel, et. al. , "Encoding of | [LSP-ATTR] A. Farrel, et. al. , "Encoding of | |||
Attributes for Multiprotocol Label Switching (MPLS) | Attributes for Multiprotocol Label Switching (MPLS) | |||
Label Switched Path (LSP) Establishment Using RSVP-TE", | Label Switched Path (LSP) Establishment Using RSVP-TE", | |||
draft-ietf-mpls-rsvpte-attributes-05.txt, March 2004, | draft-ietf-mpls-rsvpte-attributes-05.txt, March 2004, | |||
work in progress. | work in progress. | |||
[RFC3209] D. Awduche, L. Berger, D. Gan, T. Li, V. Srinivasan, | [RFC3209] D. Awduche, L. Berger, D. Gan, T. Li, V. Srinivasan, | |||
G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", | G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", | |||
RFC3209, December 2001, work in progress. | RFC3209, December 2001, work in progress. | |||
skipping to change at page 46, line 7 | skipping to change at page 47, line 52 | |||
Label Switching Architecture", RFC 3031, January 2001, work in | Label Switching Architecture", RFC 3031, January 2001, work in | |||
progress. | progress. | |||
[RFC4090] P. Pan, G. Swallow, A. Atlas (Editors), "Fast Reroute Extensions | [RFC4090] P. Pan, G. Swallow, A. Atlas (Editors), "Fast Reroute Extensions | |||
to RSVP-TE for LSP Tunnels", work in progress. | to RSVP-TE for LSP Tunnels", work in progress. | |||
[RFC3477] K. Kompella, Y. Rekther, "Signalling Unnumbered Links in | [RFC3477] K. Kompella, Y. Rekther, "Signalling Unnumbered Links in | |||
Resource ReSerVation Protocol - Traffic Engineering (RSVP-TE)", | Resource ReSerVation Protocol - Traffic Engineering (RSVP-TE)", | |||
work in progress . | work in progress . | |||
[P2MP-REQ] S. Yasukawa, Editor "Signaling Requirements for | [RFC4461] S. Yasukawa, Editor "Signaling Requirements for | |||
Point-to-Multipoint Traffic Engineered MPLS LSPs", | Point-to-Multipoint Traffic Engineered MPLS LSPs", RFC4461. | |||
draft-ietf-mpls-p2mp-sig-requirement-02.txt, work in progress. | ||||
[RECOVERY] "GMPLS Based Segment Recovery", | [RECOVERY] "GMPLS Based Segment Recovery", | |||
draft-ietf-ccamp-gmpls-segment-recovery-02.txt | draft-ietf-ccamp-gmpls-segment-recovery-02.txt | |||
24.2. Informative References | 24.2. Informative References | |||
[BFD] D. Katz, D. Ward, "Bidirectional Forwarding Detection", | [BFD] D. Katz, D. Ward, "Bidirectional Forwarding Detection", | |||
draft-katz-ward-bfd-01.txt, work in progress. | draft-ietf-bfd-02.txt, work in progress. | |||
[BFD-MPLS] R. Aggarwal, K. Kompella, T. Nadeau, G. Swallow, "BFD for MPLS | [BFD-MPLS] R. Aggarwal, K. Kompella, T. Nadeau, G. Swallow, "BFD for MPLS | |||
LSPs", draft-ietf-bfd-mpls-00.txt, work in progress. | LSPs", draft-ietf-bfd-mpls-01.txt, work in progress. | |||
[IPR-1] Bradner, S., "IETF Rights in Contributions", BCP 78, | [IPR-1] Bradner, S., "IETF Rights in Contributions", BCP 78, | |||
RFC 3667, February 2004, work in progress. | RFC 3667, February 2004, work in progress. | |||
[IPR-2] Bradner, S., Ed., "Intellectual Property Rights in IETF | [IPR-2] Bradner, S., Ed., "Intellectual Property Rights in IETF | |||
Technology", BCP 79, RFC 3668, February 2004, work in progress. | Technology", BCP 79, RFC 3668, February 2004, work in progress. | |||
[INT-REG] JP Vasseur, A. Ayyangar, "Inter-area and Inter-AS MPLS Traffic | [INT-REG] A. Farrel, J.P. Vasseur, and A. Ayyangar, "A Framework for | |||
Engineering", draft-vasseur-ccamp-inter-area-as-te-00.txt, | Inter-Domain MPLS Traffic Engineering", | |||
work in progress. | draft-ietf-ccamp-inter-domain-framework-04.txt, work in | |||
progress. | ||||
[RFC2209] R. Braden, L. Zhang, "Resource Reservation Protocol (RSVP) | [RFC2209] R. Braden, L. Zhang, "Resource Reservation Protocol (RSVP) | |||
Version 1 Message Processing Rules", RFC 2209, work in progress. | Version 1 Message Processing Rules", RFC 2209, work in progress. | |||
[LSP-STITCH] A. Ayyanger, J.P. Vasseur, "Label Switched Path Stitching | [LSP-STITCH] A. Ayyanger, J.P. Vasseur, "Label Switched Path Stitching | |||
with Generalized MPLS Traffic Engineering", | with Generalized MPLS Traffic Engineering", | |||
draft-ietf-ccamp-lsp-stitching-00.txt, April 2005 | draft-ietf-ccamp-lsp-stitching-00.txt, April 2005 | |||
work in progress | work in progress | |||
[TE-NODE-CAP] JP Vasseur, JL Le Roux, et al. "Routing extensions for | [TE-NODE-CAP] JP Vasseur, JL Le Roux, et al. "Routing extensions for | |||
skipping to change at page 47, line 32 | skipping to change at page 49, line 32 | |||
Dimitri Papadimitriou | Dimitri Papadimitriou | |||
Alcatel | Alcatel | |||
Francis Wellesplein 1, | Francis Wellesplein 1, | |||
B-2018 Antwerpen, Belgium | B-2018 Antwerpen, Belgium | |||
Phone: +32 3 240-8491 | Phone: +32 3 240-8491 | |||
Email: Dimitri.Papadimitriou@alcatel.be | Email: Dimitri.Papadimitriou@alcatel.be | |||
25.2. Contributor Information | 25.2. Contributor Information | |||
John Drake | John Drake | |||
Calient Networks | Boeing | |||
Email: jdrake@calient.net | Email: john.E.Drake2@boeing.com | |||
Alan Kullberg | Alan Kullberg | |||
Motorola Computer Group | Motorola Computer Group | |||
120 Turnpike Road 1st Floor | 120 Turnpike Road 1st Floor | |||
Southborough, MA 01772 | Southborough, MA 01772 | |||
EMail: alan.kullberg@motorola.com | EMail: alan.kullberg@motorola.com | |||
Lou Berger | Lou Berger | |||
Movaz Networks, Inc. | Movaz Networks, Inc. | |||
7926 Jones Branch Drive | 7926 Jones Branch Drive | |||
skipping to change at page 50, line 16 | skipping to change at page 52, line 16 | |||
The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |||
might or might not be available; nor does it represent that it has | might or might not be available; nor does it represent that it has | |||
made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |||
on the procedures with respect to rights in RFC documents can be | on the procedures with respect to rights in RFC documents can be | |||
found in BCP 78 and BCP 79. | found in BCP 78 and BCP 79. | |||
Copies of IPR disclosures made to the IETF Secretariat and any assur- | Copies of IPR disclosures made to the IETF Secretariat and any | |||
ances of licenses to be made available, or the result of an attempt | assurances of licenses to be made available, or the result of an | |||
made to obtain a general license or permission for the use of such | attempt made to obtain a general license or permission for the use of | |||
proprietary rights by implementers or users of this specification can | such proprietary rights by implementers or users of this | |||
be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
this standard. Please address the information to the IETF at ietf- | this standard. Please address the information to the IETF at ietf- | |||
ipr@ietf.org. | ipr@ietf.org. | |||
27. Full Copyright Statement | 27. Full Copyright Statement | |||
Copyright (C) The Internet Society (2005). This document is subject | Copyright (C) The Internet Society (2006). This document is subject | |||
to the rights, licenses and restrictions contained in BCP 78, and | to the rights, licenses and restrictions contained in BCP 78, and | |||
except as set forth therein, the authors retain all their rights. | except as set forth therein, the authors retain all their rights. | |||
This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | |||
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | |||
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFOR- | INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | |||
MATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES | INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | |||
OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
28. Acknowledgement | 28. Acknowledgement | |||
Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is currently provided by the | |||
Internet Society. | Internet Society. | |||
End of changes. 158 change blocks. | ||||
555 lines changed or deleted | 630 lines changed or added | |||
This html diff was produced by rfcdiff 1.29, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |