idnits 2.17.1 draft-ietf-mpls-rsvp-te-p2mp-05.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 22. -- Found old boilerplate from RFC 3978, Section 5.5 on line 2303. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 2276. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 2283. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 2289. ** 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. 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 53 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == 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 an 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 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 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 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. Therefore the combination is network-wide unique. Also, a router that changes the Sub-Group 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 particular 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. Another case is when the Sub-Group Originator ID of a received Path message may be changed in the outgoing Path message and set to that of the LSR originating the Path message based on a local policy. For instance a LSR may decide to always change the Sub-Group Originator ID while performing 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 LSPs 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 then 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: If link protection is desired, a bypass tunnel MUST be used to 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 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 object. == 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: After detecting failure of the protected node the PLR MUST send a Path message for each protected S2L sub-LSP to the MP of the protected S2L sub-LSP. 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 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 object. -- 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 (May 2006) is 6555 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) == Unused Reference: 'RFC3471' is defined on line 2066, but no explicit reference was found in the text == Unused Reference: 'IPR-1' is defined on line 2102, but no explicit reference was found in the text == Unused Reference: 'IPR-2' is defined on line 2105, but no explicit reference was found in the text == Unused Reference: 'RFC2209' is defined on line 2114, but no explicit reference was found in the text ** Downref: Normative reference to an Informational RFC: RFC 4461 == Outdated reference: A later version (-03) exists of draft-ietf-ccamp-gmpls-segment-recovery-02 -- No information found for draft-ietf-bfd - is the name correct? == Outdated reference: A later version (-07) exists of draft-ietf-bfd-mpls-01 -- 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-inter-domain-framework-04 == 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: 4 errors (**), 0 flaws (~~), 17 warnings (==), 10 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group R. Aggarwal (Editor) 3 Internet Draft Juniper Networks 4 Expiration Date: November 2006 5 D. Papadimitriou (Editor) 6 Alcatel 8 S. Yasukawa (Editor) 9 NTT 11 May 2006 13 Extensions to RSVP-TE for Point to Multipoint TE LSPs 15 draft-ietf-mpls-rsvp-te-p2mp-05.txt 17 Status of this Memo 19 By submitting this Internet-Draft, each author represents that any 20 applicable patent or other IPR claims of which he or she is aware 21 have been or will be disclosed, and any of which he or she becomes 22 aware will be disclosed, in accordance with Section 6 of BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF), its areas, and its working groups. Note that 26 other groups may also distribute working documents as Internet- 27 Drafts. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 The list of current Internet-Drafts can be accessed at 35 http://www.ietf.org/ietf/1id-abstracts.txt. 37 The list of Internet-Draft Shadow Directories can be accessed at 38 http://www.ietf.org/shadow.html. 40 Abstract 42 This document describes extensions to Resource Reservation Protocol - 43 Traffic Engineering (RSVP-TE) for the setup of Traffic Engineered 44 (TE) point-to-multipoint (P2MP) Label Switched Paths (LSPs) in Multi- 45 Protocol Label Switching (MPLS) and Generalized MPLS (GMPLS) 46 networks. The solution relies on RSVP-TE without requiring a 47 multicast routing protocol in the Service Provider core. Protocol 48 elements and procedures for this solution are described. There can be 49 various applications for P2MP TE LSPs such as IP multicast. 50 Specification of how such applications will use a P2MP TE LSP is 51 outside the scope of this document. 53 Table of Contents 55 1 Conventions used in this document ..................... 5 56 2 Terminology ........................................... 5 57 3 Introduction .......................................... 5 58 4 Mechanism ............................................. 5 59 4.1 P2MP Tunnels .......................................... 6 60 4.2 P2MP LSP ............................................. 6 61 4.3 Sub-Groups ............................................ 6 62 4.4 S2L Sub-LSPs .......................................... 7 63 4.4.1 Representation of a S2L Sub-LSP ....................... 7 64 4.4.2 S2L Sub-LSPs and Path Messages ........................ 7 65 4.5 Explicit Routing ...................................... 8 66 5 Path Message .......................................... 10 67 5.1 Path Message Format ................................... 10 68 5.2 Path Message Processing ............................... 11 69 5.2.1 Multiple Path Messages ................................ 12 70 5.2.2 Multiple S2L Sub-LSPs in one Path message ............. 13 71 5.2.3 Transit Fragmentation ................................. 15 72 5.2.4 Control of Branch Fate Sharing ........................ 15 73 5.3 Grafting .............................................. 16 74 6 Resv Message .......................................... 16 75 6.1 Resv Message Format ................................... 16 76 6.2 Resv Message Processing ............................... 18 77 6.2.1 Resv Message Throttling ............................... 19 78 6.3 Record Routing ........................................ 19 79 6.3.1 RRO Processing ........................................ 19 80 6.4 Reservation Style ..................................... 19 81 7 PathTear Message ...................................... 20 82 7.1 PathTear Message Format ............................... 20 83 7.2 Pruning ............................................... 20 84 7.2.1 Implicit S2L Sub-LSP Teardown ......................... 20 85 7.2.2 Explicit S2L Sub-LSP Teardown ........................ 21 86 8 Notify and ResvConf Messages .......................... 21 87 8.1 Notify Messages ....................................... 21 88 8.2 ResvConf Messages ..................................... 23 89 9 Refresh Reduction ..................................... 24 90 10 State Management ...................................... 24 91 10.1 Incremental State Update .............................. 24 92 10.2 Combining Multiple Path Messages ...................... 25 93 11 Error Processing ...................................... 26 94 11.1 PathErr Messages ...................................... 26 95 11.2 ResvErr Messages ...................................... 27 96 11.3 Branch Failure Handling ............................... 27 97 12 Admin Status Change ................................... 28 98 13 Label Allocation on LANs with Multiple Downstream Nodes ..28 99 14 P2MP LSP and Sub-LSP Re-optimization .................. 29 100 14.1 Make-before-break ..................................... 29 101 14.2 Sub-Group Based Re-optimization ....................... 29 102 15 Fast Reroute .......................................... 30 103 15.1 Facility Backup ....................................... 30 104 15.1.1 Link Protection ....................................... 30 105 15.1.2 Node Protection ....................................... 31 106 15.2 One to One Backup ..................................... 31 107 16 Support for LSRs that are not P2MP Capable ............ 32 108 17 Reduction in Control Plane Processing with LSP Hierarchy..34 109 18 P2MP LSP Remerging and Cross-Over ..................... 34 110 18.1 Procedures ............................................ 35 111 18.1.1 Re-Merge Procedures ................................... 36 112 19 New and Updated Message Objects ....................... 38 113 19.1 SESSION Object ........................................ 38 114 19.1.1 P2MP LSP Tunnel IPv4 SESSION Object ................... 38 115 19.1.2 P2MP LSP Tunnel IPv6 SESSION Object ................... 39 116 19.2 SENDER_TEMPLATE object ................................ 39 117 19.2.1 P2MP LSP Tunnel IPv4 SENDER_TEMPLATE Object ........... 40 118 19.2.2 P2MP LSP Tunnel IPv6 SENDER_TEMPLATE Object ........... 40 119 19.3 Object .................................. 41 120 19.3.1 IPv4 Object ............................. 41 121 19.3.2 IPv6 Object ............................. 42 122 19.4 FILTER_SPEC Object .................................... 42 123 19.4.1 P2MP LSP_IPv4 FILTER_SPEC Object ...................... 42 124 19.4.2 P2MP LSP_IPv4 FILTER_SPEC Object ...................... 42 125 19.5 P2MP SECONDARY_EXPLICIT_ROUTE Object (SERO) ........... 43 126 19.6 P2MP SECONDARY_RECORD_ROUTE Object (SRRO) ............. 43 127 20 IANA Considerations ................................... 43 128 20.1 New Class Numbers ..................................... 43 129 20.2 New Class Types ....................................... 43 130 20.3 New Error Values ...................................... 44 131 20.4 LSP Attributes Flags .................................. 45 132 21 Security Considerations ............................... 45 133 22 Acknowledgements ...................................... 45 134 23 Appendix .............................................. 45 135 23.1 Example ............................................... 45 136 24 References ............................................ 47 137 24.1 Normative References .................................. 47 138 24.2 Informative References ................................ 48 139 25 Author Information .................................... 49 140 25.1 Editor Information .................................... 49 141 25.2 Contributor Information ............................... 49 142 26 Intellectual Property ................................. 52 143 27 Full Copyright Statement .............................. 52 144 28 Acknowledgement ....................................... 53 145 1. Conventions used in this document 147 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 148 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 149 document are to be interpreted as described in RFC-2119 [RFC2119]. 151 2. Terminology 153 This document uses terminologies defined in [RFC3031], [RFC2205], 154 [RFC3209], [RFC3473] and [RFC4461]. 156 3. Introduction 158 [RFC3209] defines a mechanism for setting up P2P TE LSPs in MPLS 159 networks. [RFC3473] defines extensions to [RFC3209] for setting up 160 P2P TE LSPs in GMPLS networks. However these specifications do not 161 provide a mechanism for building P2MP TE LSPs. 163 This document defines extensions to the RSVP-TE protocol [RFC3209], 164 [RFC3473] to support P2MP TE LSPs satisfying the set of requirements 165 described in [RFC4461]. 167 This document relies on the semantics of RSVP that RSVP-TE inherits 168 for building P2MP LSPs. A P2MP LSP is comprised of multiple S2L sub- 169 LSPs. These S2L sub-LSPs are set up between the ingress and egress 170 LSRs and are appropriately combined by the branch LSRs using RSVP 171 semantics to result in a P2MP TE LSP. One Path message may signal one 172 or multiple S2L sub-LSPs. Hence the S2L sub-LSPs belonging to a P2MP 173 LSP can be signaled using one Path message or split across multiple 174 Path messages. 176 Path computation and P2MP application specific aspects are outside 177 the scope of this document. 179 4. Mechanism 181 This document describes a solution that optimizes data replication by 182 allowing non-ingress nodes in the network to be replication/branch 183 nodes. A branch node is an LSR that is capable of replicating the 184 incoming data on two or more outgoing interfaces. The solution relies 185 on RSVP-TE in the network for setting up a P2MP TE LSP. 187 The P2MP TE LSP is set up by associating multiple S2L sub-LSPs and 188 relying on data replication at branch nodes. This is described 189 further in the following sub-sections by describing P2MP Tunnels and 190 how they relate to S2L sub-LSPs. 192 4.1. P2MP Tunnels 194 The specific aspect related to a P2MP TE LSP is the action required 195 at a branch node, where data replication occurs. Incoming MPLS 196 labeled data is appropriately replicated to several outgoing 197 interfaces which may have different labels. 199 A P2MP TE Tunnel comprises one or more P2MP LSPs. A P2MP TE Tunnel is 200 identified by a P2MP SESSION object. This object contains the 201 identifier of the P2MP Session which includes the P2MP ID, a tunnel 202 ID and an extended tunnel ID. 204 The fields of a P2MP SESSION object are identical to those of the 205 SESSION object defined in [RFC3209] except that the Tunnel Endpoint 206 Address field is replaced by the P2MP Identifier (P2MP ID) field. 208 The P2MP ID provides an identifier for the set of destinations of the 209 P2MP TE Tunnel. 211 4.2. P2MP LSP 213 A P2MP LSP is identified by the combination of the P2MP ID, Tunnel 214 ID, and Extended Tunnel ID that are part of the P2MP SESSION object, 215 and the tunnel sender address and LSP ID fields of the P2MP 216 SENDER_TEMPLATE object. The new P2MP SENDER_TEMPLATE object is 217 defined in section 20.2. 219 4.3. Sub-Groups 221 As with all other RSVP controlled LSPs, P2MP LSP state is managed 222 using RSVP messages. While use of RSVP messages is the same, P2MP LSP 223 state differs from P2P LSP state in a number of ways. The two most 224 notable differences are that a P2MP LSP comprises multiple S2L Sub- 225 LSPs and that, as a result of this, it may not be possible to 226 represent full state in a single IP packet and even more likely that 227 it can't fit into a single IP packet. It must also be possible to 228 efficiently add and remove endpoints to and from P2MP TE LSPs. An 229 additional issue is that the P2MP LSP must also handle the state 230 "remerge" problem, see [RFC4461]. 232 These differences in P2MP state are addressed through the addition of 233 a sub-group identifier (Sub-Group ID) and sub-group originator (Sub- 234 Group Originator ID) to the SENDER_TEMPLATE and FILTER_SPEC objects. 236 Taken together the Sub-Group ID and Sub-Group Originator ID are 237 referred to as the Sub-Group fields. 239 The Sub-Group fields, together with rest of the SENDER_TEMPLATE and 240 SESSION objects, are used to represent a portion of a P2MP LSP's 241 state. This portion of a P2MP LSP's state refers only to signaling 242 state and not data plane replication or branching. For example, it is 243 possible for a node to "branch" signaling state for a P2MP LSP, but 244 to not branch the data associated with the P2MP LSP. Typical 245 applications for generation and use of multiple subgroups are adding 246 an egress and semantic fragmentation to ensure that a Path message 247 remains within a single IP packet. 249 4.4. S2L Sub-LSPs 251 A P2MP LSP is constituted of one or more S2L sub-LSPs. 253 4.4.1. Representation of a S2L Sub-LSP 255 An S2L sub-LSP exists within the context of a P2MP LSP. Thus it is 256 identified by the P2MP ID, Tunnel ID, and Extended Tunnel ID that are 257 part of the P2MP SESSION, the tunnel sender address and LSP ID fields 258 of the P2MP SENDER_TEMPLATE object, and the S2L sub-LSP destination 259 address that is part of the object. The 260 object is defined in section 20.3. 262 An EXPLICIT_ROUTE Object (ERO) or P2MP SECONDARY_EXPLICIT_ROUTE 263 Object (SERO) is used to optionally specify the explicit route of a 264 S2L sub-LSP. Each ERO or SERO that is signaled corresponds to a 265 particular object. Details of explicit route encoding 266 are specified in section 4.5. The SECONDARY_EXPLICIT_ROUTE Object is 267 defined in [RECOVERY], a new P2MP SECONDARY_EXPLICIT_ROUTE Object C- 268 type is defined in Section 20.5 and a matching P2MP 269 SECONDARY_RECORD_ROUTE Object C-type is defined in Section 20.6. 271 4.4.2. S2L Sub-LSPs and Path Messages 273 The mechanism in this document allows a P2MP LSP to be signaled using 274 one or more Path messages. Each Path message may signal one or more 275 S2L sub-LSPs. Support for multiple Path messages is desirable as one 276 Path message may not be large enough to contain all the S2L sub-LSPs; 277 and they also allow separate manipulation of sub-trees of the P2MP 278 LSP. The reason for allowing a single Path message, to signal 279 multiple S2L sub-LSPs, is to optimize the number of control messages 280 needed to setup a P2MP LSP. 282 4.5. Explicit Routing 284 When a Path message signals a single S2L sub-LSP (that is, the Path 285 message is only targeting a single leaf in the P2MP tree), the 286 EXPLICIT_ROUTE object encodes the path from the ingress LSR to the 287 egress LSR. The Path message also includes the object 288 for the S2L sub-LSP being signaled. The < [], 289 > tuple represents the S2L sub-LSP and is referred to 290 as the sub-LSP descriptor. The absence of the ERO should be 291 interpreted as requiring hop-by-hop routing for the sub-LSP based on 292 the S2L sub-LSP destination address field of the 293 object. 295 When a Path message signals multiple S2L sub-LSPs the path of the 296 first S2L sub-LSP, from the ingress LSR to the egress LSR, is encoded 297 in the ERO. The first S2L sub-LSP is the one that corresponds to the 298 first object in the Path message. The S2L sub-LSPs 299 corresponding to the objects that follow are termed as 300 subsequent S2L sub-LSPs. 302 The path of each subsequent S2L sub-LSP is encoded in a P2MP 303 SECONDARY_EXPLICIT_ROUTE object (SERO). The format of the SERO is the 304 same as an ERO (as defined in [RFC3209]). Each subsequent S2L sub-LSP 305 is represented by tuples of the form < [] >. An SERO for a particular 307 S2L sub-LSP includes only the path from a certain branch LSR to the 308 egress LSR if the path to that branch LSR can be derived from the ERO 309 or other SEROs. The absence of an SERO should be interpreted as 310 requiring hop-by-hop routing for that S2L sub-LSP. Note that the 311 destination address is carried in the S2L sub-LSP object. The 312 encoding of the SERO and object are described in detail 313 in section 20. 315 In order to avoid the potential repetition of path information for 316 the parts of S2L sub-LSPs that share hops, this information is 317 deduced from the explicit routes of other S2L sub-LSPs using explicit 318 route compression in SEROs. 320 Explicit route compression is illustrated using the following figure. 322 A 323 | 324 | 325 B 326 | 327 | 328 C----D----E 329 | | | 330 | | | 331 F G H-------I 332 | |\ | 333 | | \ | 334 J K L M 335 | | | | 336 | | | | 337 N O P Q--R 339 Figure 1. Explicit Route Compression 341 Figure 1. shows a P2MP LSP with LSR A as the ingress LSR and six 342 egress LSRs: (F, N, O, P, Q and R). When all the six S2L sub-LSPs are 343 signaled in one Path message let us assume that the S2L sub-LSP to 344 LSR F is the first S2L sub-LSP and the rest are subsequent S2L sub- 345 LSPs. Following is one way for the ingress LSR A to encode the S2L 346 sub-LSP explicit routes using compression: 348 S2L sub-LSP-F: ERO = {B, E, D, C, F}, object-F 349 S2L sub-LSP-N: SERO = {D, G, J, N}, object-N 350 S2L sub-LSP-O: SERO = {E, H, K, O}, object-O 351 S2L sub-LSP-P: SERO = {H, L, P}, object-P, 352 S2L sub-LSP-Q: SERO = {H, I, M, Q}, object-Q, 353 S2L sub-LSP-R: SERO = {Q, R}, object-R, 355 After LSR E processes the incoming Path message from LSR B it sends a 356 Path message to LSR D with the S2L sub-LSP explicit routes encoded as 357 follows: 359 S2L sub-LSP-F: ERO = {D, C, F}, object-F 360 S2L sub-LSP-N: SERO = {D, G, J, N}, object-N 362 LSR E also sends a Path message to LSR H and following is one way to 363 encode the S2L sub-LSP explicit routes using compression: 365 S2L sub-LSP-O: ERO = {H, K, O}, object-O 366 S2L sub-LSP-P: SERO = {H, L, P}, S2L_SUB_LSP object-P, 367 S2L sub-LSP-Q: SERO = {H, I, M, Q}, object-Q, 368 S2L sub-LSP-R: SERO = {Q, R}, object-R, 370 After LSR H processes the incoming Path message from E it sends a 371 Path message to LSR K, LSR L and LSR I. The encoding for the Path 372 message to LSR K is as follows: 374 S2L sub-LSP-O: ERO = {K, O}, object-O 376 The encoding of the Path message sent by LSR H to LSR L is as 377 follows: 379 S2L sub-LSP-P: ERO = {L, P}, object-P, 381 Following is one way for LSR H to encode the S2L sub-LSP explicit 382 routes in the Path message sent to LSR I: 384 S2L sub-LSP-Q: ERO = {I, M, Q}, object-Q, 385 S2L sub-LSP-R: SERO = {Q, R}, object-R, 387 The explicit route encodings in the Path messages sent by LSRs D and 388 Q are left as an exercise to the reader. 390 This compression mechanism reduces the Path message size. It also 391 reduces extra processing that can result if explicit routes are 392 encoded from ingress to egress for each S2L sub-LSP. No assumptions 393 are placed on the ordering of the subsequent S2L sub-LSPs and hence 394 on the ordering of the SEROs in the Path message. All LSRs need to 395 process the ERO corresponding to the first S2L sub-LSP. A LSR needs 396 to process a S2L sub-LSP descriptor for a subsequent S2L sub-LSP only 397 if the first hop in the corresponding SERO is a local address of that 398 LSR. The branch LSR that is the first hop of a SERO propagates the 399 corresponding S2L sub-LSP downstream. 401 5. Path Message 403 5.1. Path Message Format 405 This section describes modifications made to the Path message format 406 as specified in [RFC3209] and [RFC3473]. The Path message is enhanced 407 to signal one or more S2L sub-LSPs. This is done by including the S2L 408 sub-LSP descriptor list in the Path message as shown below. 410 ::= [ ] 411 [ [ | ] ...] 412 [ ] 413 414 415 [ ] 416 417 [ ] 418 [ ... ] 419 [ ] 420 [ ] 421 [ ] 422 [ ... ] 423 424 [] 426 Following is the format of the S2L sub-LSP descriptor list. 428 ::= 429 [ ] 431 ::= [ ] 434 Each LSR MUST use the common objects in the Path message and the S2L 435 sub-LSP descriptors to process each S2L sub-LSP represented by the 436 object and the SECONDARY-/EXPLICIT_ROUTE object 437 combination. 439 The first object's explicit route is specified by the 440 ERO. Explicit routes of subsequent S2L sub-LSPs are specified by the 441 corresponding SERO. A SERO corresponds to the following 442 object. 444 The RRO in the sender descriptor contains the hops traversed by the 445 Path message and applies to all the S2L sub-LSPs signaled in the Path 446 message. 448 Path message processing is described in the next section. 450 5.2. Path Message Processing 452 The ingress-LSR initiates the set up of an S2L sub-LSP to each 453 egress-LSR that is the destination of the P2MP LSP. Each S2L sub-LSP 454 is associated with the same P2MP LSP using common P2MP SESSION object 455 and fields in the P2MP SENDER_TEMPLATE 456 object. Hence it can be combined with other S2L sub-LSPs to form a 457 P2MP LSP. Another S2L sub-LSP belonging to the same instance of this 458 S2L sub-LSP (i.e. the same P2MP LSP) shares resources with this S2L 459 sub-LSP. The session corresponding to the P2MP TE tunnel is 460 determined based on the P2MP SESSION object. Each S2L sub-LSP is 461 identified using the object. Explicit routing for the 462 S2L sub-LSPs is achieved using the ERO and SEROs. 464 As mentioned earlier, it is possible to signal S2L sub-LSPs for a 465 given P2MP LSP in one or more Path messages and a given Path message 466 can contain one or more S2L sub-LSPs. A LSR that supports RSVP-TE 467 signaled P2MP LSPs MUST be able to receive and process multiple Path 468 messages for the same P2MP LSP and multiple S2L sub-LSPs in one Path 469 message. This implies that such an LSR MUST be able to receive and 470 process all objects listed in section 20. 472 5.2.1. Multiple Path Messages 474 As described in section 3, either the 475 or the tuple is used to 476 specify a S2L sub-LSP. Multiple Path messages can be used to signal a 477 P2MP LSP. Each Path message can signal one or more S2L sub-LSPs. If a 478 Path message contains only one S2L sub-LSP, each LSR along the S2L 479 sub-LSP follows [RFC3209] procedures for processing the Path message 480 besides the object processing described in this 481 document. 483 Processing of Path messages containing more than one S2L sub-LSP is 484 described in Section 5.2.2. 486 An ingress LSR may use multiple Path messages for signaling a P2MP 487 LSP. This may be because a single Path message may not be large 488 enough to signal the P2MP LSP. Or it may be while adding leaves to 489 the P2MP LSP the new leaves are signaled in a new Path message. Or an 490 ingress LSR MAY choose to break the P2MP tree into separate 491 manageable P2MP trees. These trees share the same root and may share 492 the trunk and certain branches. The scope of this management 493 decomposition of P2MP trees is bounded by a single tree (the P2MP 494 Tree) and multiple trees with a single leaf each (S2L sub-LSPs). Per 495 [RFC4461], a P2MP LSP MUST have consistent attributes across all 496 portions of a tree. This implies that each Path message that is used 497 to signal a P2MP LSP is signaled using the same signaling attributes 498 with the exception of the S2L sub-LSP information and Sub-Group 499 identifiers. 501 The resulting sub-LSPs from the different Path messages belonging to 502 the same P2MP LSP SHOULD share labels and resources where they share 503 hops to prevent multiple copies of the data being sent. 505 In certain cases a transit LSR may need to generate multiple Path 506 messages to signal state corresponding to a single received Path 507 message. For instance ERO expansion may result in an overflow of the 508 resultant Path message. In this case the message can be decomposed 509 into multiple Path messages such that each of the messages carry a 510 subset of the X2L sub-tree carried by the incoming message. 512 Multiple Path messages generated by an LSR that signal state for the 513 same P2MP LSP are signaled with the same SESSION object and have the 514 same in the SENDER_TEMPLATE object. In order 515 to disambiguate these Path messages a tuple is introduced (also referred to as the Sub-Group 517 field) and encoded in the SENDER_TEMPLATE object. Multiple Path 518 messages generated by a LSR to signal state for the same P2MP LSP 519 have the same Sub-Group Originator ID and have a different sub-Group 520 ID. The Sub-Group Originator ID MUST be set to the TE Router ID of 521 the LSR that originates the Path message. This is either the ingress 522 LSR or a LSR which re-originates the Path message with its own Sub- 523 Group Originator ID. Cases when a transit LSR may change the Sub- 524 Group Originator ID of an incoming Path message are described below. 525 The tuple is globally unique. 526 The sub-Group ID space is specific to the Sub-Group Originator ID. 527 Therefore the combination is 528 network-wide unique. Also, a router that changes the Sub-Group 529 originator ID of an incoming Path message MUST use the same value of 530 the Sub-Group Originator ID for all outgoing Path messages, for a 531 particular P2MP LSP, and SHOULD not vary it during the life of the 532 P2MP LSP. 534 5.2.2. Multiple S2L Sub-LSPs in one Path message 536 The S2L sub-LSP descriptor list allows the signaling of one or more 537 S2L sub-LSPs in one Path message. It is possible to signal multiple 538 object and ERO/SERO combinations in a single Path 539 message. Note that these two objects differentiate a S2L sub-LSP. 541 All LSRs MUST process the ERO corresponding to the first S2L sub-LSP 542 if the ERO is present. If one or more SEROs are present an ERO MUST 543 be present. The first S2L sub-LSP MUST be propagated in a Path 544 message by each LSR along the explicit route specified by the ERO, if 545 the ERO is present. Else it MUST be propagated using hop-by-hop 546 routing towards the destination identified by the 547 object. 549 A LSR MUST process a S2L sub-LSP descriptor for a subsequent S2L sub- 550 LSP as follows: 552 If the object is followed by an SERO, the LSR MUST 553 check the first hop in the SERO: 554 - If the first hop of the SERO identifies a local address of the 555 LSR, and the LSR is also the egress identified by the 556 object, the descriptor MUST NOT be propagated 557 downstream, but the SERO may be used for egress control per 558 [RFC4003]. 559 - If the first hop of the SERO identifies a local address of the 560 LSR, and the LSR is not the egress as identified by the 561 object the S2L sub-LSP descriptor MUST be 562 included in a Path message sent to the next-hop determined 563 from the SERO. 564 - If the first hop of the SERO is not a local address of the LSR 565 the S2L sub-LSP descriptor MUST be included in the Path message 566 sent to LSR that is the next hop to reach the first hop in the 567 SERO. This next hop is determined by using the ERO or other 568 SEROs that encode the path to the SERO's first hop. 570 If the object is not followed by an SERO, the LSR MUST 571 examine the object: 572 - If this LSR is the egress as identified by the 573 object, the S2L sub-LSP descriptor MUST 574 NOT be propagated downstream. 575 - If this LSR is not the egress as identified by the 576 object, the LSR MUST make a routing decision 577 to determine the next hop towards the egress, and MUST 578 include the S2L sub-LSP descriptor in a Path message sent 579 to the next-hop towards the egress. In this case, the LSR 580 MAY insert an SERO into the S2L sub-LSP descriptor. 582 Hence a branch LSR MUST only propagate the relevant S2L sub-LSP 583 descriptors on each downstream link. A S2L sub-LSP descriptor list 584 that is propagated on a downstream link MUST only contain those S2L 585 sub-LSPs that are routed using that link. This processing MAY result 586 in a subsequent S2L sub-LSP in an incoming Path message to become the 587 first S2L sub-LSP in an outgoing Path message. 589 Note that if one or more SEROs contain loose hops, expansion of such 590 loose hops MAY result in overflowing the Path message size. Section 591 5.2.3 describes how signaling of the set of S2L sub-LSPs can be split 592 in more than one Path message. 594 The RECORD_ROUTE Object (RRO) contains the hops traversed by the Path 595 message and applies to all the S2L sub-LSPs signaled in the Path 596 message. A transit LSR MUST append its address in an incoming RRO and 597 propagate it downstream. A branch LSR MUST form a new RRO for each of 598 the outgoing Path messages by copying the RRO from the incoming Path 599 message and appending its address. Each such updated RRO MUST be 600 formed using the rules in [RFC3209]. 602 If a LSR is unable to support a S2L sub-LSP in a Path message, a 603 PathErr message MUST be sent for the impacted S2L sub-LSP, and normal 604 processing of the rest of the P2MP LSP SHOULD continue. The default 605 behavior is that the remainder of the LSP is not impacted (that is, 606 all other branches are allowed to set up) and the failed branches are 607 reported in PathErr messages in which the Path_State_Removed flag 608 MUST NOT be set. However, the ingress LSR may set a LSP Integrity 609 flag to request that if there is a setup failure on any branch the 610 entire LSP should fail to set up. This is described further in 611 section 12. 613 5.2.3. Transit Fragmentation 615 In certain cases a transit LSR may need to generate multiple Path 616 messages to signal state corresponding to a single received Path 617 message. For instance ERO expansion may result in an overflow of the 618 resultant Path message. It is desirable not to rely on IP 619 fragmentation in this case. In order to achieve this, the multiple 620 Path messages generated by the transit LSR, are signaled with the 621 Sub-Group Originator ID set to the TE Router ID of the transit LSR 622 and a distinct sub-Group ID for each Path message. Thus each distinct 623 Path message that is generated by the transit LSR for the P2MP LSP 624 carries a distinct tuple. 626 When multiple Path messages are used by an ingress or transit node, 627 each Path message SHOULD be identical with the exception of the S2L 628 sub-LSP related information (e.g., SERO), message and hop information 629 (e.g., INTEGRITY, MESSAGE_ID and RSVP_HOP), and the sub-group fields 630 of the SENDER_TEMPLATE objects. Except when performing a make- 631 before-break operation as specified in section 14.1, the tunnel 632 sender address and LSP ID fields MUST be the same in each message, 633 and for transit nodes, the same as the values in the received Path 634 message. 636 As described above one case in which the Sub-Group Originator ID of a 637 received Path message is changed is that of transit fragmentation. 638 Another case is when the Sub-Group Originator ID of a received Path 639 message may be changed in the outgoing Path message and set to that 640 of the LSR originating the Path message based on a local policy. For 641 instance a LSR may decide to always change the Sub-Group Originator 642 ID while performing ERO expansion. The Sub-Group ID MUST not be 643 changed if the Sub-Group Originator ID is not being changed. 645 5.2.4. Control of Branch Fate Sharing 647 An ingress LSR can control the behavior of an LSP if there is a 648 failure during LSP setup or after an LSP has been established. The 649 default behavior is that only the branches downstream of the failure 650 are not established, but the ingress may request 'LSP integrity' such 651 that any failure anywhere within the LSP tree causes the entire P2MP 652 LSP to fail. 654 The ingress LSP may request 'LSP integrity' by setting bit (TBA) of 655 the Attributes Flags TLV. The bit is set if LSP integrity is 656 required. 658 It is RECOMMENDED to use the LSP_REQUIRED_ATTRIBUTES Object. 660 A branch LSR that supports the Attributes Flags TLV and recognizes 661 this bit MUST support LSP integrity or reject the LSP setup with a 662 PathErr message carrying the error "Routing Error"/"Unsupported LSP 663 Integrity" 665 5.3. Grafting 667 The operation of adding egress LSR(s) to an existing P2MP LSP is 668 termed as grafting. This operation allows egress nodes to join a P2MP 669 LSP at different points in time. 671 There are two methods to add S2L sub-LSPs to a P2MP LSP. The first 672 is to add new S2L sub-LSPs to the P2MP LSP by adding them to an 673 existing Path message and refreshing the entire Path message. Path 674 message processing described in section 4 results in adding these S2L 675 sub-LSPs to the P2MP LSP. Note that as a result of adding one or more 676 S2L sub-LSPs to a Path message the ERO compression encoding may have 677 to be recomputed. 679 The second is to use incremental updates described in section 10.1. 680 The egress LSRs can be added by signaling only the impacted S2L sub- 681 LSPs in a new Path message. Hence other S2L sub-LSPs do not have to 682 be re-signaled. 684 6. Resv Message 686 6.1. Resv Message Format 688 The Resv message follows the [RFC3209] and [RFC3473] format: 690 ::= [ ] 691 [ [ | ] ... ] 692 [ ] 693 694 695 [ ] [ ] 696 [ ] 697 [ ] 698 [ ... ] 699