idnits 2.17.1 draft-ietf-mpls-rsvp-te-p2mp-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 21. -- Found old boilerplate from RFC 3978, Section 5.5 on line 2083. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 2056. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 2069. ** This document has an original RFC 3978 Section 5.4 Copyright Line, instead of the newer IETF Trust Copyright according to RFC 4748. ** This document has an original RFC 3978 Section 5.5 Disclaimer, instead of the newer disclaimer which includes the IETF Trust according to RFC 4748. ** The document seems to lack an RFC 3979 Section 5, para. 2 IPR Disclosure Acknowledgement -- however, there's a paragraph with a matching beginning. Boilerplate error? Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard == It seems as if not all pages are separated by form feeds - found 0 form feeds but 48 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 55 instances of too long lines in the document, the longest one being 9 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 1130 has weird spacing: '...irst is make-...' == Line 1277 has weird spacing: '...ed Path messa...' == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHOULD not' in this paragraph: Multiple Path messages generated by a LSR that signal state for the same P2MP LSP are signaled with the same SESSION object and have the same in the SENDER_TEMPLATE object. In order to disambiguate these Path messages a tuple is introduced (also referred to as the Sub-Group field) and encoded in the SENDER_TEMPLATE object. Multiple Path mes-sages 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 ID. The Sub-Group Originator ID SHOULD be set to the TE Router ID of 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 Originator ID. Cases when a transit LSR may change the Sub-Group Originator ID of an incoming Path message are described below. The tuple is globally unique. The sub-Group ID space is specific to the Sub-Group Originator ID. There-fore the combination is net-work-wide unique. Also, a router that changes the Sub-Group origina-tor ID of an incoming Path message MUST use the same value of the Sub-Group Originator ID for all outgoing Path messages, for a partic-ular P2MP LSP, and SHOULD not vary it during the life of the P2MP LSP. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: As described above one case in which the Sub-Group Originator ID of a received Path message is changed is that of transit fragmentation. The Sub-Group Originator ID of a received Path message may also be changed in the outgoing Path message and set to that of the LSR orig-inating the Path message based on a local policy. For instance a LSR may decide to always change the Sub-Group Originator ID while per-forming ERO expansion. The Sub-Group ID MUST not be changed if the Sub-Group Originator ID is not being changed. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: Considerations about the reservation style in a Resv message apply as 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 Tunnel MUST be signaled with the same reservation style. Irrespective 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 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 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 share resources. If the reservation style is SE than S2L sub-LSPs that belong to different P2MP LSP and the same P2MP Tunnel SHOULD share resources where they share hops, but MUST not share labels. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: The MP MUST not use the while identifying the corresponding S2L sub-LSPs. -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (July 2005) is 6853 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'KEYWORDS' is mentioned on line 143, but not defined == Missing Reference: 'TBA' is mentioned on line 616, but not defined == Missing Reference: 'RSVP-FR' is mentioned on line 1217, but not defined == Missing Reference: 'LSP-ATTRIB' is mentioned on line 1739, but not defined == Unused Reference: 'LSP-ATTR' is defined on line 1832, but no explicit reference was found in the text == Unused Reference: 'RFC2119' is defined on line 1842, but no explicit reference was found in the text == Unused Reference: 'RFC3471' is defined on line 1851, but no explicit reference was found in the text == Unused Reference: 'RFC4090' is defined on line 1865, but no explicit reference was found in the text == Unused Reference: 'BFD-MPLS' is defined on line 1884, but no explicit reference was found in the text == Unused Reference: 'IPR-1' is defined on line 1887, but no explicit reference was found in the text == Unused Reference: 'IPR-2' is defined on line 1890, but no explicit reference was found in the text == Unused Reference: 'RFC2209' is defined on line 1897, but no explicit reference was found in the text == Outdated reference: A later version (-04) exists of draft-ietf-mpls-p2mp-sig-requirement-02 ** Downref: Normative reference to an Informational draft: draft-ietf-mpls-p2mp-sig-requirement (ref. 'P2MP-REQ') == Outdated reference: A later version (-03) exists of draft-ietf-ccamp-gmpls-segment-recovery-02 == Outdated reference: A later version (-02) exists of draft-katz-ward-bfd-01 == Outdated reference: A later version (-07) exists of draft-ietf-bfd-mpls-00 -- Obsolete informational reference (is this intentional?): RFC 3667 (ref. 'IPR-1') (Obsoleted by RFC 3978) -- Obsolete informational reference (is this intentional?): RFC 3668 (ref. 'IPR-2') (Obsoleted by RFC 3979) == Outdated reference: A later version (-06) exists of draft-ietf-ccamp-lsp-stitching-00 == Outdated reference: A later version (-01) exists of draft-vasseur-ccamp-te-node-cap-00 Summary: 6 errors (**), 0 flaws (~~), 27 warnings (==), 8 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group R. Aggarwal (Editor) 2 Internet Draft Juniper Networks 3 Expiration Date: January 2006 4 D. Papadimitriou (Editor) 5 Alcatel 7 S. Yasukawa (Editor) 8 NTT 10 July 2005 12 Extensions to RSVP-TE for Point to Multipoint TE LSPs 14 draft-ietf-mpls-rsvp-te-p2mp-02.txt 16 Status of this Memo 18 By submitting this Internet-Draft, each author represents that any 19 applicable patent or other IPR claims of which he or she is aware 20 have been or will be disclosed, and any of which he or she becomes 21 aware will be disclosed, in accordance with Section 6 of BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF), its areas, and its working groups. Note that 25 other groups may also distribute working documents as Internet- 26 Drafts. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 The list of current Internet-Drafts can be accessed at 34 http://www.ietf.org/ietf/1id-abstracts.txt. 36 The list of Internet-Draft Shadow Directories can be accessed at 37 http://www.ietf.org/shadow.html. 39 Abstract 41 This document describes extensions to Resource Reservation Protocol - 42 Traffic Engineering (RSVP-TE) for the setup of Traffic Engineered 43 (TE) point-to-multipoint (P2MP) Label Switched Paths (LSPs) in Multi- 44 Protocol Label Switching (MPLS) and Generalized MPLS (GMPLS) 45 networks. The solution relies on RSVP-TE without requiring a 46 multicast routing protocol in the Service Provider core. Protocol 47 elements and procedures for this solution are described. There can be 48 various applications for P2MP TE LSPs such as IP multicast. 49 Specification of how such applications will use a P2MP TE LSP is 50 outside the scope of this document. 52 Table of Contents 54 1 Conventions used in this document ..................... 5 55 2 Terminology ........................................... 5 56 3 Introduction .......................................... 5 57 4 Mechanism ............................................. 5 58 4.1 P2MP Tunnels .......................................... 6 59 4.2 P2MP LSP ............................................. 6 60 4.3 Sub-Groups ............................................ 6 61 4.4 S2L Sub-LSPs .......................................... 7 62 4.4.1 Representation of a S2L Sub-LSP ....................... 7 63 4.4.2 S2L Sub-LSPs and Path Messages ........................ 7 64 4.5 Explicit Routing ...................................... 8 65 5 Path Message .......................................... 10 66 5.1 Path Message Format ................................... 10 67 5.2 Path Message Processing ............................... 11 68 5.2.1 Multiple Path Messages ................................ 12 69 5.2.2 Multiple S2L Sub-LSPs in one Path message ............. 13 70 5.2.3 Transit Fragmentation ................................. 14 71 5.2.4 Control of Branch Fate Sharing ........................ 15 72 5.3 Grafting .............................................. 15 73 6 Resv Message .......................................... 16 74 6.1 Resv Message Format ................................... 16 75 6.2 Resv Message Processing ............................... 17 76 6.2.1 Resv Message Throttling ............................... 18 77 6.3 Record Routing ........................................ 18 78 6.3.1 RRO Processing ........................................ 18 79 6.4 Reservation Style ..................................... 19 80 7 PathTear Message ...................................... 19 81 7.1 PathTear Message Format ............................... 19 82 7.2 Pruning ............................................... 20 83 7.2.1 Implicit S2L Sub-LSP Teardown ......................... 20 84 7.2.2 Explicit S2L Sub-LSP Teardown ........................ 20 85 8 Notify and ResvConf Messages .......................... 21 86 9 Refresh Reduction ..................................... 21 87 10 State Management ...................................... 22 88 10.1 Incremental State Update .............................. 22 89 10.2 Combining Multiple Path Messages ...................... 23 90 11 Error Processing ...................................... 24 91 11.1 PathErr Messages ...................................... 24 92 11.2 ResvErr Messages ...................................... 24 93 11.3 Branch Failure Handling ............................... 25 94 12 Admin Status Change ................................... 26 95 13 Label Allocation on LANs with Multiple Downstream Nodes ...26 96 14 P2MP LSP and Sub-LSP Re-optimization .................. 26 97 14.1 Make-before-break ..................................... 27 98 14.2 Sub-Group Based Re-optimization ....................... 27 99 15 Fast Reroute .......................................... 27 100 15.1 Facility Backup ....................................... 28 101 15.2 One to One Backup ..................................... 29 102 16 Support for LSRs that are not P2MP Capable ............ 29 103 17 Reduction in Control Plane Processing with LSP Hierarchy ..31 104 18 P2MP LSP Remerging and Cross-Over ..................... 31 105 19 New and Updated Message Objects ....................... 34 106 19.1 SESSION Object ........................................ 34 107 19.1.1 P2MP LSP Tunnel IPv4 SESSION Object ................... 34 108 19.1.2 P2MP LSP Tunnel IPv6 SESSION Object ................... 35 109 19.2 SENDER_TEMPLATE object ................................ 35 110 19.2.1 P2MP LSP Tunnel IPv4 SENDER_TEMPLATE Object ........... 35 111 19.2.2 P2MP LSP Tunnel IPv6 SENDER_TEMPLATE Object ........... 36 112 19.3 S2L SUB-LSP Object .................................... 37 113 19.3.1 S2L SUB-LSP IPv4 Object ............................... 37 114 19.3.2 S2L SUB-LSP IPv6 Object ............................... 38 115 19.4 FILTER_SPEC Object .................................... 38 116 19.4.1 P2MP LSP_IPv4 FILTER_SPEC Object ...................... 38 117 19.4.2 P2MP LSP_IPv4 FILTER_SPEC Object ...................... 38 118 19.5 P2MP SECONDARY_EXPLICIT_ROUTE Object (SERO) ........... 38 119 19.6 P2MP_SECONDARY_RECORD_ROUTE Object (SRRO) ............. 39 120 20 IANA Considerations ................................... 39 121 20.1 New Class Numbers ..................................... 39 122 20.2 New Class Types ....................................... 39 123 20.3 New Error Codes ....................................... 40 124 20.4 LSP Attributes Flags .................................. 40 125 21 Security Considerations ............................... 41 126 22 Acknowledgements ...................................... 41 127 23 Appendix .............................................. 41 128 23.1 Example ............................................... 41 129 24 References ............................................ 42 130 24.1 Normative References .................................. 42 131 24.2 Informative References ................................ 43 132 25 Author Information .................................... 44 133 25.1 Editor Information .................................... 44 134 25.2 Contributor Information ............................... 45 135 26 Intellectual Property ................................. 47 136 27 Full Copyright Statement .............................. 48 137 28 Acknowledgement ....................................... 48 138 1. Conventions used in this document 140 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 141 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 142 document are to be interpreted as described in RFC-2119 [KEYWORDS]. 144 2. Terminology 146 This document uses terminologies defined in [RFC3031], [RFC2205], 147 [RFC3209], [RFC3473] and [P2MP-REQ]. 149 3. Introduction 151 [RFC3209] defines a mechanism for setting up P2P TE LSPs in MPLS net- 152 works. [RFC3473] defines extensions to [RFC3209] for setting up P2P 153 TE LSPs in GMPLS networks. However these specifications do not pro- 154 vide a mechanism for building P2MP TE LSPs. 156 This document defines extensions to RSVP-TE protocol [RFC3209, 157 RFC3473] to support P2MP TE LSPs satisfying the set of requirements 158 described in [P2MP-REQ]. 160 This document relies on the semantics of RSVP that RSVP-TE inherits 161 for building P2MP LSPs. A P2MP LSP is comprised of multiple S2L sub- 162 LSPs. These S2L sub-LSPs are set up between the ingress and egress 163 LSRs and are appropriately combined by the branch LSRs using RSVP 164 semantics to result in a P2MP TE LSP. One Path message may signal one 165 or multiple S2L sub-LSPs. Hence the S2L sub-LSPs belonging to a P2MP 166 LSP can be signaled using one Path message or split across multiple 167 Path messages. 169 Path computation and P2MP application specific aspects are outside of 170 the scope of this document. 172 4. Mechanism 174 This document describes a solution that optimizes data replication by 175 allowing non-ingress nodes in the network to be replication/branch 176 nodes. A branch node is a LSR that is capable of replicating the 177 incoming data on two or more outgoing interfaces. The solution uses 178 RSVP-TE in the core of the network for setting up a P2MP TE LSP. 180 The P2MP TE LSP is set up by associating multiple S2L TE sub-LSPs and 181 relying on data replication at branch nodes. This is described fur- 182 ther in the following sub-sections by describing P2MP Tunnels and how 183 they relate to S2L sub-LSPs. 185 4.1. P2MP Tunnels 187 The specific aspect related to P2MP TE LSP is the action required at 188 a branch node, where data replication occurs. For instance, in the 189 MPLS case, incoming labeled data is appropriately replicated to sev- 190 eral outgoing interfaces which may have different labels. 192 A P2MP TE Tunnel comprises of one or more P2MP LSPs. A P2MP TE Tunnel 193 is identified by a P2MP SESSION object. This object contains the 194 identifier of the P2MP Session which includes the P2MP ID, a tunnel 195 ID and an extended tunnel ID. 197 The fields of a P2MP SESSION object are identical to those of the 198 SESSION object defined in [RFC3209] except that the Tunnel Endpoint 199 Address field is replaced by the P2MP Identifier (P2MP ID) field. 201 The P2MP ID provides an identifier for the set of destinations of the 202 P2MP TE Tunnel. 204 4.2. P2MP LSP 206 A P2MP LSP is identified by the combination of the P2MP ID, Tunnel 207 ID, and Extended Tunnel ID that are part of the P2MP SESSION object, 208 and the tunnel sender address and LSP ID fields of the P2MP 209 SENDER_TEMPLATE object. The new P2MP SENDER_TEMPLATE object is 210 defined in section 20.2. 212 4.3. Sub-Groups 214 As with all other RSVP controlled LSPs, P2MP LSP state is managed 215 using RSVP messages. While use of RSVP messages is the same, P2MP LSP 216 state differs from P2P LSP state in a number of ways. The two most 217 notable differences are that a P2MP LSP comprises multiple S2L Sub- 218 LSPs and that, as a result of this, it may not be possible to repre- 219 sent full state in a single IP datagram and even more likely that it 220 can't fit into a single IP packet. It must also be possible to effi- 221 ciently add and remove endpoints to and from P2MP TE LSPs. An addi- 222 tional issue is that P2MP LSP must also handle the state "remerge" 223 problem, see [P2MP-REQ]. 225 These differences in P2MP state are addressed through the addition of 226 a sub-group identifier (Sub-Group ID) and sub-group originator (Sub- 227 Group Originator ID) to the SENDER_TEMPLATE and FILTER_SPEC objects. 229 Taken together the Sub-Group ID and Sub-Group Originator ID are 230 referred to as the Sub-Group fields. 232 The Sub-Group fields, together with rest of the SENDER_TEMPLATE and 233 SESSION objects, are used to represent a portion of a P2MP LSP's 234 state. This portion of a P2MP LSP's state refers only to signaling 235 state and not data plane replication or branching. For example, it is 236 possible for a node to "branch" signaling state for a P2MP LSP, but 237 to not branch the data associated with the P2MP LSP. Typical applica- 238 tions for generation and use of multiple subgroups are adding an 239 egress and semantic fragmentation to ensure that a Path message 240 remains within a single IP packet. 242 4.4. S2L Sub-LSPs 244 A P2MP LSP is constituted of one or more S2L sub-LSPs. 246 4.4.1. Representation of a S2L Sub-LSP 248 A S2L sub-LSP exists within the context of a P2MP LSP. Thus it is 249 identified by the P2MP ID, Tunnel ID, and Extended Tunnel ID that are 250 part of the P2MP SESSION, the tunnel sender address and LSP ID fields 251 of the P2MP SENDER_TEMPLATE object, and the S2L sub-LSP destination 252 address that is part of the S2L_SUB_LSP object. The S2L_SUB_LSP 253 object is defined in section 20.3. 255 An EXPLICIT_ROUTE Object (ERO) or P2MP SECONDARY_EXPLICIT_ROUTE 256 Object (SERO) is used to optionally specify the explicit route of a 257 S2L sub-LSP. Each ERO or a SERO that is signaled corresponds to a 258 particular S2L_SUB_LSP object. Details of explicit route encoding are 259 specified in section 4.5. The SECONDARY_EXPLICIT_ROUTE Object is 260 defined in [RECOVERY], a new P2MP SECONDARY_EXPLICIT_ROUTE Object C- 261 type is defined in Section 20.5 and a matching P2MP SEC- 262 ONDARY_RECORD_ROUTE Object C-type is defined in Section 20.6. 264 4.4.2. S2L Sub-LSPs and Path Messages 266 The mechanism in this document allows a P2MP LSP to be signaled using 267 one or more Path messages. Each Path message may signal one or more 268 S2L sub-LSPs. Support for multiple Path messages is desirable as one 269 Path message may not be large enough to fit all the S2L sub-LSPs; and 270 they also allow separate manipulation of sub-trees of the P2MP LSP. 271 The reason for allowing a single Path message, to signal multiple S2L 272 sub-LSPs, is to optimize the number of control messages needed to 273 setup a P2MP LSP. 275 4.5. Explicit Routing 277 When a Path message signals a single S2L sub-LSP (that is, the Path 278 message is only targeting a single leaf in the P2MP tree), the 279 EXPLICIT_ROUTE object encodes the path from the ingress LSR to the 280 egress LSR. The Path message also includes the S2L_SUB_LSP object for 281 the S2L sub-LSP being signaled. The < [], 282 > tuple represents the S2L sub-LSP and is referred to 283 as the sub-LSP descriptor. The absence of the ERO should be inter- 284 preted as requiring hop-by-hop routing for the sub-LSP based on the 285 S2L sub-LSP destination address field of the S2L_SUB_LSP object. 287 When a Path message signals multiple S2L sub-LSPs the path of the 288 first S2L sub-LSP, from the ingress LSR to the egress LSR, is encoded 289 in the ERO. The first S2L sub-LSP is the one that corresponds to the 290 first S2L_SUB_LSP object in the Path message. The S2L sub-LSPs corre- 291 sponding to the S2L_SUB_LSP objects that follow are termed as subse- 292 quent S2L sub-LSPs. One approach to encode the explicit route of a 293 subsequent S2L sub-LSP is to include all the hops from the ingress to 294 the egress of the S2L sub-LSP. However this implies potential repeti- 295 tion of hops that can be learned from the ERO or explicit routes of 296 other S2L sub-LSPs. Explicit route compression using SEROs attempts 297 to minimize such repetition. 299 The path of each subsequent S2L sub-LSP is encoded in a P2MP SEC- 300 ONDARY_EXPLICIT_ROUTE object (SERO). The format of the SERO is the 301 same as an ERO (as defined in [RFC3209]). Each subsequent S2L sub-LSP 302 is represented by tuples of the form < [] >. There is a one to one corre- 304 spondence between a S2L_SUB_LSP object and a SERO. A SERO for a par- 305 ticular S2L sub-LSP includes only the path from a certain branch LSR 306 to the egress LSR if the path to that branch LSR can be derived from 307 the ERO or other SEROs. The absence of a SERO should be interpreted 308 as requiring hop-by-hop routing for that S2L sub-LSP. Note that the 309 destination address is carried in the S2L sub-LSP object. The encod- 310 ing of the SERO and S2L sub-LSP object are described in detail in 311 section 20. 313 Explicit route compression is illustrated using the following figure. 315 A 316 | 317 | 318 B 319 | 320 | 321 C----D----E 322 | | | 323 | | | 324 F G H-------I 325 | |\ | 326 | | \ | 327 J K L M 328 | | | | 329 | | | | 330 N O P Q--R 332 Figure 1. Explicit Route Compression 334 Figure 1. shows a P2MP LSP with LSR A as the ingress LSR and six 335 egress LSRs: (F, N, O, P, Q and R). When all the six S2L sub-LSPs are 336 signaled in one Path message let us assume that the S2L sub-LSP to 337 LSR F is the first S2L sub-LSP and the rest are subsequent S2L sub- 338 LSPs. Following is one way for the ingress LSR A to encode the S2L 339 sub-LSP explicit routes using compression: 341 S2L sub-LSP-F: ERO = {B, E, D, C, F}, S2L_SUB_LSP Object-F 342 S2L sub-LSP-N: SERO = {D, G, J, N}, S2L_SUB_LSP Object-N 343 S2L sub-LSP-O: SERO = {E, H, K, O}, S2L_SUB_LSP Object-O 344 S2L sub-LSP-P: SERO = {H, L, P}, S2L_SUB_LSP Object-P, 345 S2L sub-LSP-Q: SERO = {H, I, M, Q}, S2L_SUB_LSP Object-Q, 346 S2L sub-LSP-R: SERO = {Q, R}, S2L_SUB_LSP Object-R, 348 After LSR E processes the incoming Path message from LSR B it sends a 349 Path message to LSR D with the S2L sub-LSP explicit routes encoded as 350 follows: 352 S2L sub-LSP-F: ERO = {D, C, F}, S2L_SUB_LSP Object-F 353 S2L sub-LSP-N: SERO = {D, G, J, N}, S2L_SUB_LSP Object-N 355 LSR E also sends a Path message to LSR H and following is one way to 356 encode the S2L sub-LSP explicit routes using compression: 358 S2L sub-LSP-O: ERO = {H, K, O}, S2L_SUB_LSP Object-O 359 S2L sub-LSP-P: SERO = {H, L, P}, S2L_SUB_LSP Object-P, 360 S2L sub-LSP-Q: SERO = {H, I, M, Q}, S2L_SUB_LSP Object-Q, 361 S2L sub-LSP-R: SERO = {Q, R}, S2L_SUB_LSP Object-R, 363 After LSR H processes the incoming Path message from E it sends a 364 Path message to LSR K, LSR L and LSR I. The encoding for the Path 365 message to LSR K is as follows: 367 S2L sub-LSP-O: ERO = {K, O}, S2L_SUB_LSP Object-O 369 The encoding of the Path message sent by LSR H to LSR L is as fol- 370 lows: 372 S2L sub-LSP-P: ERO = {L, P}, S2L_SUB_LSP Object-P, 374 Following is one way for LSR H to encode the S2L sub-LSP explicit 375 routes in the Path message sent to LSR I: 377 S2L sub-LSP-Q: ERO = {I, M, Q}, S2L_SUB_LSP Object-Q, 378 S2L sub-LSP-R: SERO = {Q, R}, S2L_SUB_LSP Object-R, 380 The explicit route encodings in the Path messages sent by LSRs D and 381 Q are left as an exercise to the reader. 383 This compression mechanism reduces the Path message size. It also 384 reduces extra processing that can result if explicit routes are 385 encoded from ingress to egress for each S2L sub-LSP. No assumptions 386 are placed on the ordering of the subsequent S2L sub-LSPs and hence 387 on the ordering of the SEROs in the Path message. All LSRs need to 388 process the ERO corresponding to the first S2L sub-LSP. A LSR needs 389 to process a S2L sub-LSP descriptor for a subsequent S2L sub-LSP only 390 if the first hop in the corresponding SERO is a local address of that 391 LSR. The branch LSR that is the first hop of a SERO propagates the 392 corresponding S2L sub-LSP downstream. 394 5. Path Message 396 5.1. Path Message Format 398 This section describes modifications made to the Path message format 399 as specified in [RFC3209] and [RFC3473]. The Path message is enhanced 400 to signal one or more S2L sub-LSPs. This is done by including the S2L 401 sub-LSP descriptor list in the Path message as shown below. 403 ::= [ ] 404 [ [ | ] ...] 405 [ ] 406 407 408 [ ] 409 410 [ ] 411 [ ... ] 412 [ ] 413 [ ] 414 [ ] 415 [ ... ] 416 417 [] 419 Following is the format of the S2L sub-LSP descriptor list. 421 ::= 422 [ ] 424 ::= [ ] 427 Each LSR MUST use the common objects in the Path message and the S2L 428 sub-LSP descriptors to process each S2L sub-LSP represented by the 429 S2L sub-LSP object and the SUB-/EXPLICIT_ROUTE object combination. 431 The first S2L_SUB_LSP object's explicit route is specified by the 432 ERO. Explicit routes of subsequent S2L sub-LSPs are specified by the 433 corresponding SERO. A SERO corresponds to the following S2L_SUB_LSP 434 object. 436 The RRO in the sender descriptor contains the hops traversed by the 437 Path message and applies to all the S2L sub-LSPs signaled in the Path 438 message. 440 Path message processing is described in the next section. 442 5.2. Path Message Processing 444 The ingress-LSR initiates the set up of a S2L sub-LSP to each egress- 445 LSR that is the destination of the P2MP LSP. Each S2L sub-LSP is 446 associated with the same P2MP LSP using common P2MP SESSION object 447 and fields in the P2MP SENDER_TEMPLATE 448 object. Hence it can be combined with other S2L sub-LSPs to form a 449 P2MP LSP. Another S2L sub-LSP belonging to the same instance of this 450 S2L sub-LSP (i.e. the same P2MP LSP) shares resources with this S2L 451 sub-LSP. The session corresponding to the P2MP TE tunnel is deter- 452 mined based on the P2MP SESSION object. Each S2L sub-LSP is identi- 453 fied using the S2L_SUB_LSP object. Explicit routing for the S2L sub- 454 LSPs is achieved using the ERO and SEROs. 456 As mentioned earlier, it is possible to signal S2L sub-LSPs for a 457 given P2MP LSP in one or more Path messages. And a given Path message 458 can contain one or more S2L sub-LSPs. A LSR that supports RSVP-TE 459 signaled P2MP LSPs MUST be able to receive and process multiple Path 460 messages for the same P2MP LSP and multiple S2L sub-LSPs in one Path 461 message. This implies that a LSR MUST be able to receive and process 462 all objects listed in section 20. 464 5.2.1. Multiple Path Messages 466 As described in section 3, either the 467 or the tuple is used to 468 specify a S2L sub-LSP. Multiple Path messages can be used to signal a 469 P2MP LSP. Each Path message can signal one or more S2L sub-LSPs. If a 470 Path message contains only one S2L sub-LSP, each LSR along the S2L 471 sub-LSP follows [RFC3209] procedures for processing the Path message 472 besides the S2L SUB-LSP object processing described in this document. 474 Processing of Path messages containing more than one S2L sub-LSP is 475 described in Section 5.2.2. 477 An ingress LSR may use multiple Path messages for signaling a P2MP 478 LSP. This may be because a single Path message may not be large 479 enough to signal the P2MP LSP. Or it may be while adding leaves to 480 the P2MP LSP the new leaves are signaled in a new Path message. Or an 481 ingress LSR MAY choose to break the P2MP tree into separate manage- 482 able P2MP trees. These trees share the same root and may share the 483 trunk and certain branches. The scope of this management decomposi- 484 tion of P2MP trees is bounded by a single tree (the P2MP Tree) and 485 multiple trees with a single leaf each (S2L sub-LSPs). Per [P2MP- 486 REQ], a P2MP LSP MUST have consistent attributes across all portions 487 of a tree. This implies that each Path message that is used to signal 488 a P2MP LSP is signaled using the same signaling attributes with the 489 exception of the S2L sub-LSP information. 491 The resulting sub-LSPs from the different Path messages belonging to 492 the same P2MP LSP SHOULD share labels and resources where they share 493 hops to prevent multiple copies of the data being sent. 495 In certain cases a transit LSR may need to generate multiple Path 496 messages to signal state corresponding to a single received Path mes- 497 sage. For instance ERO expansion may result in an overflow of the 498 resultant Path message. In this case the message can be decomposed 499 into multiple Path messages such that each of the messages carry a 500 subset of the X2L sub-tree carried by the incoming message. 502 Multiple Path messages generated by a LSR that signal state for the 503 same P2MP LSP are signaled with the same SESSION object and have the 504 same in the SENDER_TEMPLATE object. In order 505 to disambiguate these Path messages a tuple is introduced (also referred to as the Sub-Group 507 field) and encoded in the SENDER_TEMPLATE object. Multiple Path mes- 508 sages generated by a LSR to signal state for the same P2MP LSP have 509 the same Sub-Group Originator ID and have a different sub-Group ID. 510 The Sub-Group Originator ID SHOULD be set to the TE Router ID of the 511 LSR that originates the Path message. This is either the ingress LSR 512 or a LSR which re-originates the Path message with its own Sub-Group 513 Originator ID. Cases when a transit LSR may change the Sub-Group 514 Originator ID of an incoming Path message are described below. The 515 tuple is globally unique. The 516 sub-Group ID space is specific to the Sub-Group Originator ID. There- 517 fore the combination is net- 518 work-wide unique. Also, a router that changes the Sub-Group origina- 519 tor ID of an incoming Path message MUST use the same value of the 520 Sub-Group Originator ID for all outgoing Path messages, for a partic- 521 ular P2MP LSP, and SHOULD not vary it during the life of the P2MP 522 LSP. 524 5.2.2. Multiple S2L Sub-LSPs in one Path message 526 The S2L sub-LSP descriptor list allows the signaling of one or more 527 S2L sub-LSPs in one Path message. It is possible to signal multiple 528 S2L sub-LSP object and ERO/SERO combinations in a single Path mes- 529 sage. Note that these two objects are the ones that differentiate a 530 S2L sub-LSP. 532 All LSRs MUST process the ERO corresponding to the first S2L sub-LSP 533 when the ERO is present. If one or more SEROs are present an ERO MUST 534 be present. The first S2L sub-LSP MUST be propagated in a Path mes- 535 sage by each LSR along the explicit route specified by the ERO. A LSR 536 MUST process a S2L sub-LSP descriptor for a subsequent S2L sub-LSP 537 only if the first hop in the corresponding SERO is a local address of 538 that LSR. If this is not the case the S2L sub-LSP descriptor MUST be 539 included in the Path message sent to LSR that is the next hop to 540 reach the first hop in the SERO. This next hop is determined by using 541 the ERO or other SEROs that encode the path to the SERO's first hop. 542 If this is the case and the LSR is also the egress, the S2L sub-LSP 543 descriptor MUST NOT be propagated downstream. If this is the case and 544 the LSR is not the egress the S2L sub-LSP descriptor MUST be included 545 in a Path message sent to the next-hop determined from the SERO. 546 Hence a branch LSR MUST only propagate the relevant S2L sub-LSP 547 descriptors on each downstream link. A S2L sub-LSP descriptor list 548 that is propagated on a downstream link MUST only contain those S2L 549 sub-LSPs that are routed using that link. This processing MAY result 550 in a subsequent S2L sub-LSP in an incoming Path message to become the 551 first S2L sub-LSP in an outgoing Path message. 553 Note that if one or more SEROs contain loose hops, expansion of such 554 loose hops MAY result in overflowing the Path message size. Section 555 5.2.3 describes how signaling of the set of S2L sub-LSPs can be split 556 in more than one Path message. 558 The Record Route Object (RRO) contains the hops traversed by the Path 559 message and applies to all the S2L sub-LSPs signaled in the path mes- 560 sage. A transit LSR MUST append its address in an incoming RRO and 561 propagate it downstream. A branch LSR MUST form a new RRO for each of 562 the outgoing Path messages. Each such updated RRO MUST be formed 563 using the rules in [RFC3209]. 565 If a LSR is unable to support a S2L sub-LSP in a Path message, a 566 PathErr message MUST be sent for the impacted S2L sub-LSP, and normal 567 processing of the rest of the P2MP LSP SHOULD continue. The default 568 behavior is that the remainder of the LSP is not impacted (that is, 569 all other branches are allowed to set up) and the failed branches are 570 reported in PathErr messages in which the Path_State_Removed flag 571 MUST NOT be set. However, the ingress LSR may set a LSP Integrity 572 flag to request that if there is a setup failure on any branch the 573 entire LSP should fail to set up. This is described further in sec- 574 tion 12. 576 5.2.3. Transit Fragmentation 578 In certain cases a transit LSR may need to generate multiple Path 579 messages to signal state corresponding to a single received Path mes- 580 sage. For instance ERO expansion may result in an overflow of the 581 resultant Path message. It is desirable not to rely on IP fragmenta- 582 tion in this case. In order to achieve this, the multiple Path mes- 583 sages generated by the transit LSR, are signaled with the Sub-Group 584 Originator ID set to the TE Router ID of the transit LSR and a dis- 585 tinct sub-Group ID. Thus each distinct Path message that is generated 586 by the transit LSR for the P2MP LSP carries a distinct tuple. 589 When multiple Path messages are used by an ingress or transit node, 590 each Path message SHOULD be identical with the exception of the S2L 591 sub-LSP related information (e.g., SERO), message and hop information 592 (e.g., INTEGRITY, MESSAGE_ID and RSVP_HOP), and the sub-group fields 593 of the SENDER_TEMPLATE objects. Except when performing a make- 594 before-break operation, the tunnel sender address and LSP ID fields 595 MUST be the same in each message, and for transit nodes, the same as 596 the values in the received Path message. 598 As described above one case in which the Sub-Group Originator ID of a 599 received Path message is changed is that of transit fragmentation. 600 The Sub-Group Originator ID of a received Path message may also be 601 changed in the outgoing Path message and set to that of the LSR orig- 602 inating the Path message based on a local policy. For instance a LSR 603 may decide to always change the Sub-Group Originator ID while per- 604 forming ERO expansion. The Sub-Group ID MUST not be changed if the 605 Sub-Group Originator ID is not being changed. 607 5.2.4. Control of Branch Fate Sharing 609 An ingress LSR can control the behavior of an LSP if there is a fail- 610 ure during LSP setup or after an LSP has been established. The 611 default behavior is that only the branches downstream of the failure 612 are not established, but the ingress may request 'LSP integrity' such 613 that any failure anywhere within the LSP tree causes the entire P2MP 614 LSP to fail. 616 The ingress LSP may request 'LSP integrity' by setting bit [TBA] of 617 the Attributes Flags TLV. The bit is set if LSP integrity is 618 required. 620 It is RECOMMENDED to use the LSP_ATTRIBUTES Object for this flag and 621 not the LSP_REQUIRED_ATTRIBUTES Object. 623 A branch LSR that supports the Attributes Flags TLV and recognizes 624 this bit MUST support LSP integrity or reject the LSP setup with a 625 PathErr carrying the error "Routing Error"/"Unsupported LSP 626 Integrity" 628 5.3. Grafting 630 The operation of adding egress LSR(s) to an existing P2MP LSP is 631 termed as grafting. This operation allows egress nodes to join a P2MP 632 LSP at different points in time. 634 There are two methods to add S2L sub-LSPs to a P2MP LSP. The first 635 is to add new S2L sub-LSPs to the P2MP LSP by adding them to an 636 existing Path message and refreshing the entire Path message. Path 637 message processing described in section 4 results in adding these S2L 638 sub-LSPs to the P2MP LSP. Note that as a result of adding one or more 639 S2L sub-LSPs to a Path message the ERO compression encoding may have 640 to be recomputed. 642 The second is to use incremental updates described in section 10.1. 643 The egress LSRs can be added by signaling only the impacted S2L sub- 644 LSPs in a new Path message. Hence other S2L sub-LSPs do not have to 645 be re-signaled. 647 6. Resv Message 649 6.1. Resv Message Format 651 The Resv message follows the [RFC3209] and [RFC3473] format: 653 ::= [ ] 654 [ [ | ] ... ] 655 [ ] 656 657 658 [ ] [ ] 659 [ ] 660 [ ] 661 [ ... ] 662