idnits 2.17.1 draft-ietf-mpls-rsvp-te-p2mp-01.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 3979, Section 5, paragraph 1 on line 1978. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 1985. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 1991. ** The document seems to lack an RFC 3978 Section 5.1 IPR Disclosure Acknowledgement -- however, there's a paragraph with a matching beginning. Boilerplate error? ** This document has an original RFC 3978 Section 5.4 Copyright Line, instead of the newer IETF Trust Copyright according to RFC 4748. ** The document seems to lack an RFC 3978 Section 5.4 Reference to BCP 78 -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack an RFC 3978 Section 5.5 (updated by RFC 4748) Disclaimer -- however, there's a paragraph with a matching beginning. Boilerplate error? Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 103 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 758 has weird spacing: '...RRO and possi...' == Line 793 has weird spacing: '... leave a P2M...' == Line 1254 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). 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 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 network-wide 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 MUST use the same Sub-Group Originator ID on all Path messages for the same P2MP LSP Tunnel and SHOULD not vary the value during the life of the P2MP LSP Tunnel. == 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 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: 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.) -- Couldn't find a document date in the document -- date freshness check skipped. 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 52, but not defined == Missing Reference: 'RSVP-FR' is mentioned on line 1192, but not defined == Missing Reference: 'LSP-ATTRIB' is mentioned on line 1674, but not defined == Unused Reference: 'LSP-ATTR' is defined on line 1772, but no explicit reference was found in the text == Unused Reference: 'RFC2119' is defined on line 1782, but no explicit reference was found in the text == Unused Reference: 'RFC3471' is defined on line 1789, but no explicit reference was found in the text == Unused Reference: 'RSVP-FRR' is defined on line 1802, but no explicit reference was found in the text == Unused Reference: 'BFD-MPLS' is defined on line 1815, but no explicit reference was found in the text == Unused Reference: 'IPR-1' is defined on line 1818, but no explicit reference was found in the text == Unused Reference: 'IPR-2' is defined on line 1821, but no explicit reference was found in the text == Unused Reference: 'RFC2209' is defined on line 1827, but no explicit reference was found in the text == Outdated reference: A later version (-05) exists of draft-ietf-mpls-rsvpte-attributes-03 == Outdated reference: A later version (-04) exists of draft-ietf-mpls-p2mp-sig-requirement-00 ** Downref: Normative reference to an Informational draft: draft-ietf-mpls-p2mp-sig-requirement (ref. 'P2MP-REQ') == Outdated reference: A later version (-02) exists of draft-katz-ward-bfd-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) Summary: 8 errors (**), 0 flaws (~~), 22 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group R. Aggarwal (Juniper) 3 Internet Draft D. Papadimitriou (Alcatel) 4 Expiration Date: June 2005 S. Yasukawa (NTT) 5 Editors 7 Extensions to RSVP-TE for Point to Multipoint TE LSPs 9 draft-ietf-mpls-rsvp-te-p2mp-01.txt 11 Status of this Memo 13 By submitting this Internet-Draft, we certify that any applicable 14 patent or IPR claims of which we are aware have been disclosed, and 15 any of which we become aware will be disclosed, in accordance with 16 RFC 3668. 18 Internet-Drafts are working documents of the Internet Engineering 19 Task Force (IETF), its areas, and its working groups. Note that 20 other groups may also distribute working documents as Internet- 21 Drafts. 23 Internet-Drafts are draft documents valid for a maximum of six months 24 and may be updated, replaced, or obsoleted by other documents at any 25 time. It is inappropriate to use Internet-Drafts as reference 26 material or to cite them other than as ``work in progress.'' 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html. 34 Abstract 36 This document describes extensions to Resource Reservation Protocol - 37 Traffic Engineering (RSVP-TE) for the setup of Traffic Engineered 38 (TE) point-to-multipoint (P2MP) Label Switched Paths (LSPs) in Multi- 39 Protocol Label Switching (MPLS) and Generalized MPLS (GMPLS) 40 networks. The solution relies on RSVP-TE without requiring a 41 multicast routing protocol in the Service Provider core. Protocol 42 elements and procedures for this solution are described. There can be 43 various applications for P2MP TE LSPs such as IP multicast. 44 Specification of how such applications will use a P2MP TE LSP is 45 outside the scope of this document. 47 Conventions used in this document 49 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 50 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 51 document are to be interpreted as described in RFC-2119 [KEYWORDS]. 53 Authors' Note 55 Some of the text in the document needs further discussion between 56 authors and feedback from MPLS WG. This has been pointed out when 57 applicable. A change log and reviewed/updated text will be made 58 available online. 60 Table of Contents 62 1 Terminology............................................. 4 63 2 Introduction.............................................4 64 3 Mechanisms.............................................. 4 65 3.1 P2MP Tunnels............................................ 5 66 3.2 P2MP LSP Tunnels........................................ 5 67 3.3 Sub-Groups.............................................. 5 68 3.4 S2L Sub-LSPs............................................ 6 69 3.4.1 Representation of a S2L sub-LSP......................... 6 70 3.4.2 S2L Sub-LSPs and Path Messages.......................... 6 71 3.5 Explicit Routing........................................ 7 72 4 Path Message............................................ 9 73 4.1 Path Message Format..................................... 9 74 4.2 Path Message Processing................................. 10 75 4.2.1 Multiple Path Messages.................................. 11 76 4.2.2 Multiple S2L Sub-LSPs in One Path Message............... 12 77 4.2.3 Transit Fragmentation................................... 13 78 4.3 Grafting................................................ 14 79 4.3.1 Addition of S2L Sub-LSP................................. 14 80 5 Resv Message............................................ 14 81 5.1 Resv Message Format..................................... 14 82 5.2 Resv Message Processing................................. 15 83 5.2.1 Resv Message Throttling................................. 16 84 5.3 Record Routing.......................................... 17 85 5.3.1 RRO Processing.......................................... 17 86 6 Reservation Style....................................... 17 87 7 Path Tear Message....................................... 17 88 7.1 Path Tear Message Format................................ 17 89 7.2 Pruning................................................. 17 90 7.2.1 Explicit S2L Sub-LSP Teardown........................... 17 91 7.2.2 Implicit S2L Sub-LSP Teardown........................... 18 92 7.2.1 P2MP TE LSP Teardown.................................... 19 93 8 Notify and ResvConf Messages............................ 20 94 9 Error Processing........................................ 20 95 9.1 PathErr Message Format.................................. 20 96 9.2 Handling of Failures at Branch LSRs..................... 21 97 10 Refresh Reduction....................................... 22 98 11 State Management........................................ 22 99 11.1 Incremental State Update................................ 22 100 11.2 Combining Multiple Path Messages........................ 23 101 12 Control of Branch Fate Sharing.......................... 24 102 13 Admin Status Change..................................... 24 103 14 Label Allocation on LANs with Multiple Downstream Nodes. 25 104 15 Make-Before-Break....................................... 25 105 15.1 P2MP Tree re-optimization............................... 25 106 15.2 Re-optimization of a subset of S2L sub-LSPs ............ 25 107 16 Fast Reroute............................................ 26 108 16.1 Facility Backpup........................................ 26 109 16.2 One to One Backup....................................... 26 110 17 Support for LSRs that are not P2MP Capable.............. 27 111 18 Reduction in Control Plane Processing with LSP Hierarchy 29 112 19 P2MP LSP Tunnel Remerging and Cross-Over................ 29 113 20 New and Updated Message Objects......................... 31 114 20.1 P2MP SESSION Object..................................... 31 115 20.2 P2MP LSP Tunnel SENDER_TEMPLATE Object.................. 32 116 20.2.1 P2MP LSP Tunnel IPv4 SENDER_TEMPLATE Object............. 33 117 20.2.2 P2MP LSP Tunnel IPv6 SENDER_TEMPLATE Object............. 33 118 20.3 S2L SUB-LSP Object...................................... 34 119 20.3.1 S2L IPv4 SUB-LSP Object................................. 34 120 20.3.2 S2L IPv6 SUB-LSP Object................................. 35 121 20.4 FILTER_SPEC Object...................................... 35 122 20.5 SUB EXPLICIT ROUTE Object (SERO)........................ 36 123 20.6 SUB RECORD ROUTE Object (SRRO).......................... 36 124 21 IANA Considerations..................................... 37 125 22 Security Considerations................................. 37 126 23 Acknowledgements........................................ 37 127 24 Example P2MP LSP Establishment ......................... 37 128 25 References.............................................. 39 129 26 Authors................................................. 40 130 27 Intellectual Property................................... 43 131 28 Full Copyright Statement................................ 43 132 29 Acknowledgement......................................... 44 134 1. Terminology 136 This document uses terminologies defined in [RFC3031], [RFC2205], 137 [RFC3209], [RFC3473] and [P2MP-REQ]. In particular, this document 138 uses the notation defined in [P2MP-REQ] for describing the components 139 on a P2MP LSP between root, branches and leaves. 141 2. Introduction 143 [RFC3209] defines a mechanism for setting up point-to-point (P2P) 144 Traffic Engineered (TE) LSPs in MPLS networks. [RFC3473] defines 145 extensions to [RFC3209] for setting up P2P TE LSPs in GMPLS networks. 146 However these specifications do not provide a mechanism for building 147 point-to-multipoint P2MP TE LSPs. 149 This document defines extensions to RSVP-TE [RFC3209] and [RFC3473] 150 protocol to support P2MP TE LSPs satisfying the set of requirements 151 described in [P2MP-REQ]. 153 This document relies on the semantics of RSVP that RSVP-TE inherits 154 for building P2MP LSP Tunnels. A P2MP LSP Tunnel is comprised of 155 multiple S2L sub-LSPs. These S2L sub-LSPs are set up between the 156 ingress and egress LSRs and are appropriately combined by the branch 157 LSRs using RSVP semantics to result in a P2MP TE LSP. One Path 158 message may signal one or multiple S2L sub-LSPs. Hence the S2L sub- 159 LSPs belonging to a P2MP LSP Tunnel can be signaled using one Path 160 message or split across multiple Path messages. 162 Path computation and P2MP application specific aspects are outside of 163 the scope of this document. 165 3. Mechanism 167 This document describes a solution that optimizes data replication by 168 allowing non-ingress nodes in the network to be replication/branch 169 nodes. A branch node is a LSR that is capable of replicating the 170 incoming data on two or more outgoing interfaces. The solution uses 171 RSVP-TE in the core of the network for setting up a P2MP TE LSP. 173 The P2MP TE LSP is set up by associating multiple S2L TE sub-LSPs and 174 relying on data replication at branch nodes. This is described 175 further in the following sub-sections by describing P2MP tunnels and 176 how they relate to S2L sub-LSPs. 178 3.1. P2MP Tunnels 180 The specific aspect related to P2MP TE LSP is the action required at 181 a branch node, where data replication occurs. Incoming labeled data 182 is appropriately replicated to several outgoing interfaces which may 183 have different labels. 185 A P2MP TE tunnel comprises of one or more P2MP LSPs referred to as 186 P2MP LSP tunnels. A P2MP TE Tunnel is identified by a P2MP SESSION 187 object. This object contains an identifier of the P2MP session 188 defined as a P2MP ID, a tunnel ID and an extended tunnel ID. 190 The fields of a P2MP SESSION object are identical to those of the 191 SESSION object defined in [RFC3209] except that the Tunnel Endpoint 192 Address field is replaced by the P2MP Identifier (P2MP ID) field. 193 The P2MP ID provides an identifier for the set of destinations of the 194 P2MP TE Tunnel. The P2MP SESSION object is defined in section 20.1. 196 3.2. P2MP LSP Tunnel 198 A P2MP LSP Tunnel is identified by the combination of the P2MP ID, 199 Tunnel ID, and Extended Tunnel ID that are part of the P2MP SESSION 200 object, and the tunnel sender address and LSP ID fields of the P2MP 201 SENDER_TEMPLATE object. The new P2MP SENDER_TEMPLATE object is 202 defined in section 20.2. 204 3.3. Sub-Groups 206 As with all other RSVP controlled LSP Tunnels, P2MP LSP Tunnel state 207 is managed using RSVP messages. While use of RSVP messages is the 208 same, P2MP LSP Tunnel state differs from P2P LSP state in a number of 209 ways. A notable difference is that a P2MP LSP Tunnel is comprised of 210 multiple S2L Sub-LSPs As a result of this, it may not be possible to 211 signal a P2MP LSP Tunnel in a single RSVP-TE Path/Resv message. It is 212 also possible that such a signaling message can not fit into a single 213 IP packet. It must also be possible to efficiently add and remove 214 endpoints to and from P2MP TE LSPs. An additional issue is that P2MP 215 LSP Tunnels must also handle the state "remerge" problem [P2MP-REQ]. 217 These differences in P2MP state are addressed through the addition of 218 a sub-group identifier (Sub-Group ID) and sub-group originator (Sub- 219 Group Originator ID) to the SENDER_TEMPLATE and FILTER_SPEC objects. 220 Taken together the Sub-Group ID and Sub-Group Originator ID are 221 referred to as the Sub-Group fields. 223 The Sub-Group fields, together with rest of the SENDER_TEMPLATE and 224 SESSION objects, are used to represent a portion of a P2MP LSP 225 Tunnel's state. The portion of P2MP LSP Tunnel state identified by 226 specific subgroup field values is referred to as a signaling sub- 227 tree. It is important to note that the term "signaling sub-tree" 228 refers only to signaling state and not data plane replication or 229 branching. For example, it is possible for a node to "split" 230 signaling state for a P2MP LSP Tunnel, but to not branch the data 231 associated with the P2MP LSP Tunnel. Typical applications for 232 generation and use of multiple subgroups are adding an egress and 233 semantic fragmentation to ensure that a Path message remains within a 234 single IP packet. 236 3.4. S2L Sub-LSPs 238 A P2MP LSP Tunnel is constituted of one or more S2L sub-LSPs. 240 3.4.1. Representation of a S2L Sub-LSP 242 A S2L sub-LSP exists within the context of a P2MP LSP Tunnel. Thus it 243 is identified by the P2MP ID, Tunnel ID, and Extended Tunnel ID that 244 are part of the P2MP SESSION, the tunnel sender address and LSP ID 245 fields of the P2MP SENDER_TEMPLATE object, and the S2L sub-LSP 246 destination address that is part of the S2L_SUB_LSP object. The 247 S2L_SUB_LSP object is defined in section 20.3. 249 Additionally, a sub-LSP ID contained in the S2L_SUB_LSP object may be 250 used depending on further discussions about the make-before-break 251 procedures described in section 14. 253 An EXPLICIT_ROUTE Object (ERO) or SUB_EXPLICIT_ROUTE Object (SERO) is 254 used to optionally specify the explicit route of a S2L sub-LSP. Each 255 ERO or a SERO that is signaled corresponds to a particular 256 S2L_SUB_LSP object. Details of explicit route encoding are specified 257 in section 3.5. 259 3.4.2. S2L Sub-LSPs and Path Messages 261 The mechanism in this document allows a P2MP LSP Tunnel to be 262 signaled using one or more Path messages. Each Path message may 263 signal one or more S2L sub-LSPs. Support for multiple Path messages 264 is desirable as one Path message may not be large enough to fit all 265 the S2L sub-LSPs; and they also allow separate manipulation of sub- 266 trees of the P2MP LSP Tunnel. The reason for allowing a single Path 267 message, to signal multiple S2L sub-LSPs, is to optimize the number 268 of control messages needed to setup a P2MP LSP Tunnel. 270 3.5. Explicit Routing 272 When a Path message signals a single S2L sub-LSP (that is, the Path 273 message is only targeting a single leaf in the P2MP tree), the 274 EXPLICIT_ROUTE object may encode the path to the egress LSR. The Path 275 message also includes the S2L_SUB_LSP object for the S2L sub-LSP 276 being signaled. The < [], > tuple 277 represents the S2L sub-LSP. The absence of the ERO should be 278 interpreted as requiring hop-by-hop routing for the sub-LSP based on 279 the S2L sub-LSP destination address field of the S2L_SUB_LSP object. 281 When a Path message signals multiple S2L sub-LSPs the path of the 282 first S2L sub-LSP, to the egress LSR, is encoded in the ERO. The 283 first S2L sub-LSP is the one that corresponds to the first 284 S2L_SUB_LSP object in the Path message. The S2L sub-LSPs 285 corresponding to the S2L_SUB_LSP objects that follow are termed as 286 subsequent S2L sub-LSPs. One approach to encode the explicit route 287 of a subsequent S2L sub-LSP is to include the path from the ingress 288 to the egress of the S2L sub-LSP. However this implies potential 289 repetition of hops that could be learned from the ERO or explicit 290 routes of other S2L sub-LSPs. Explicit route compression using SEROs 291 attempts to minimize such repetition and is described below. 293 The path of each subsequent S2L sub-LSP is encoded in a 294 SUB_EXPLICIT_ROUTE object (SERO). The format of the SERO is the same 295 as an ERO (as defined in [RFC3209]). Each subsequent S2L sub-LSP is 296 represented by tuples of the form [] 297 . There is a one to one correspondence between a 298 S2L_SUB_LSP object and a SERO. A SERO for a particular S2L sub-LSP 299 includes only the path from a certain branch LSR to the egress LSR if 300 the path to that branch LSR can be derived from the ERO or other 301 SEROs. The absence of a SERO should be interpreted as requiring hop- 302 by-hop routing for that S2L sub-LSP. Note that the destination 303 address is carried in the S2L sub-LSP object. The encoding of the 304 SERO and S2L sub-LSP object are described in detail in section 20. 306 Explicit route compression is illustrated using the following figure. 308 A 309 | 310 | 311 B 312 | 313 | 314 C----D----E 315 | | | 316 | | | 317 F G H-------I 318 | |\ | 319 | | \ | 320 J K L M 321 | | | | 322 | | | | 323 N O P Q--R 325 Figure 1. Explicit Route Compression 327 Figure 1. shows a P2MP LSP Tunnel with LSR A as the ingress LSR and 328 six egress LSRs: (F, N, O, P, Q and R). When all the six S2L sub-LSPs 329 are signaled in one Path message let us assume that the S2L sub-LSP 330 to LSR F is the first S2L sub-LSP and the rest are subsequent S2L 331 sub-LSPs. Following is one way for the ingress LSR A to encode the 332 S2L sub-LSP explicit routes using compression: 334 S2L sub-LSP-F: ERO = {B, E, D, C, F}, S2L_SUB_LSP Object-F 335 S2L sub-LSP-N: SERO = {D, G, J, N}, S2L_SUB_LSP Object-N 336 S2L sub-LSP-O: SERO = {E, H, K, O}, S2L_SUB_LSP Object-O 337 S2L sub-LSP-P: SERO = {H, L, P}, S2L_SUB_LSP Object-P, 338 S2L sub-LSP-Q: SERO = {H, I, M, Q}, S2L_SUB_LSP Object-Q, 339 S2L sub-LSP-R: SERO = {Q, R}, S2L_SUB_LSP Object-R, 341 After LSR E processes the incoming Path message from LSR B it sends a 342 Path message to LSR D with the S2L sub-LSP explicit routes encoded as 343 follows: 345 S2L sub-LSP-F: ERO = {D, C, F}, S2L_SUB_LSP Object-F 346 S2L sub-LSP-N: SERO = {D, G, J, N}, S2L_SUB_LSP Object-N 348 LSR E also sends a Path message to LSR H and following is one way to 349 encode the S2L sub-LSP explicit routes using compression: 351 S2L sub-LSP-O: ERO = {H, K, O}, S2L_SUB_LSP Object-O 352 S2L sub-LSP-P: SERO = {H, L, P}, S2L_SUB_LSP Object-P, 353 S2L sub-LSP-Q: SERO = {H, I, M, Q}, S2L_SUB_LSP Object-Q, 354 S2L sub-LSP-R: SERO = {Q, R}, S2L_SUB_LSP Object-R, 356 After LSR H processes the incoming Path message from E it sends a 357 Path message to LSR K, LSR L and LSR I. The encoding for the Path 358 message to LSR K is as follows: 360 S2L sub-LSP-O: ERO = {K, O}, S2L_SUB_LSP Object-O 362 The encoding of the Path message sent by LSR H to LSR L is as 363 follows: 365 S2L sub-LSP-P: ERO = {L, P}, S2L_SUB_LSP Object-P, 367 Following is one way for LSR H to encode the S2L sub-LSP explicit 368 routes in the Path message sent to LSR I: 370 S2L sub-LSP-Q: ERO = {I, M, Q}, S2L_SUB_LSP Object-Q, 371 S2L sub-LSP-R: SERO = {Q, R}, S2L_SUB_LSP Object-R, 373 The explicit route encodings in the Path messages sent by LSRs D and 374 Q are left as an exercise to the reader. 376 This compression mechanism reduces the Path message size. It also 377 reduces the processing that can result if explicit routes are encoded 378 from ingress to egress for each S2L sub-LSP. No assumptions are 379 placed on the ordering of the subsequent S2L sub-LSPs and hence on 380 the ordering of the SEROs in the Path message. All LSRs need to 381 process the ERO corresponding to the first S2L sub-LSP. A LSR needs 382 to process a SERO for a subsequent S2L sub-LSP only if the first hop 383 in the corresponding SERO is a local address of that LSR. The branch 384 LSR that is the first hop of a SERO propagates the corresponding S2L 385 sub-LSP downstream. 387 4. Path Message 389 4.1. Path Message Format 391 This section describes modifications made to the Path message format 392 as specified in [RFC3209] and [RFC3473]. The Path message is enhanced 393 to signal one or more S2L sub-LSPs. This is done by including the S2L 394 sub-LSP descriptor list in the Path message as shown below. 396 ::= [ ] 397 [ [ | ] ...] 398 [ ] 399 400 401 [ ] 402 403 [ ] 404 [ ... ] 405 [ ] 406 [ ] 407 [ ] 408 [ ... ] 409 410 [S2L sub-LSP descriptor list] 412 Following is the format of the S2L sub-LSP descriptor list. 414 ::= 415 [ ] 417 ::= [ ] 419 Each LSR MUST use the common objects in the Path message and the S2L 420 sub-LSP descriptors to process each S2L sub-LSP represented by the 421 S2L sub-LSP object and the SUB-/EXPLICIT_ROUTE object combination. 423 The first S2L_SUB_LSP object's explicit route is specified by the 424 ERO. Explicit routes of subsequent S2L sub-LSPs are specified by the 425 corresponding SERO. A SERO corresponds to the following S2L_SUB_LSP 426 object. 428 The RRO in the sender descriptor contains the hops traversed by the 429 Path message and applies to all the S2L sub-LSPs signaled in the Path 430 message. 432 Path message processing is described in the next section. 434 4.2. Path Message Processing 436 The ingress-LSR initiates the set up of a S2L sub-LSP to each egress- 437 LSR that is the destination of the P2MP LSP Tunnel. Each S2L sub-LSP 438 is associated with the same P2MP LSP Tunnel using common P2MP SESSION 439 object and fields in the SENDER_TEMPLATE 440 object. Hence it can be combined with other S2L sub-LSPs to form a 441 P2MP LSP Tunnel. Another S2L sub-LSP belonging to the same instance 442 of this S2L sub-LSP (i.e. the same P2MP LSP Tunnel) can share 443 resources with this LSP. The session corresponding to the P2MP TE 444 tunnel is determined based on the P2MP SESSION object. Each S2L sub- 445 LSP is identified using the S2L_SUB_LSP object. Explicit routing for 446 the S2L sub-LSPs is achieved using the ERO and SEROs. 448 As mentioned earlier, it is possible to signal S2L sub-LSPs for a 449 given P2MP LSP Tunnel in one or more Path messages. And a given Path 450 message can contain one or more S2L sub-LSPs. 452 4.2.1. Multiple Path messages 454 As described in section 3, {, } or 455 {, } tuple is used to specify a S2L 456 sub-LSP. Multiple Path messages can be used to signal a P2MP LSP 457 Tunnel. Each Path message can signal one or more S2L sub-LSPs. If a 458 Path message contains only one S2L sub-LSP, each LSR along the S2L 459 sub-LSP follows [RFC3209] procedures for processing the Path message 460 besides the S2L SUB-LSP object processing described in this document. 462 Processing of Path messages containing more than one S2L sub-LSP is 463 described in Section 4.3. 465 An ingress LSR may use multiple Path messages for signaling a P2MP 466 LSP. This may be because a single Path message may not be large 467 enough to signal the P2MP LSP Tunnel. Or it may be while adding 468 leaves to the P2MP LSP Tunnel the new leaves are signaled in a new 469 Path message. Or an ingress LSR MAY choose to break the P2MP tree 470 into separate manageable S2L sub-trees. These trees share the same 471 root and may share the trunk and certain branches. The scope of this 472 management decomposition of P2MP trees is bounded by a single tree 473 and multiple S2L sub-trees with a single leaf each. As defined in 474 [P2MP-REQ], a P2MP LSP Tunnel must have consistent attributes across 475 all portions of a tree. This implies that each Path message that is 476 used to signal a P2MP LSP Tunnel is signaled using the same signaling 477 attributes with the exception of the S2L sub-LSP information. 479 The resulting S2L sub-LSPs from the different Path messages belonging 480 to the same P2MP LSP Tunnel SHOULD share labels and resources where 481 they share hops to prevent multiple copies of the data being sent. 483 In certain cases a transit LSR may need to generate multiple Path 484 messages to signal state corresponding to a single received Path 485 message. For instance ERO expansion may result in an overflow of the 486 resultant Path message. There are two cases occurring in such 487 circumstances, either the message can be decomposed into multiple 488 Path messages such that each of the message carries a subset of the 489 incoming S2L sub-LSPs carried by the incoming message, or the message 490 can not be decomposed such that each of the outgoing Path message 491 fits its maximum size value. 493 Multiple Path messages generated by a LSR that signal state for the 494 same P2MP LSP are signaled with the same SESSION object and have the 495 same in the SENDER_TEMPLATE object. In order 496 to disambiguate these Path messages a tuple is introduced (also referred to as the Sub-Group 498 field). Multiple Path messages generated by a LSR to signal state 499 for the same P2MP LSP have the same Sub-Group Originator ID and have 500 a different sub-Group ID. The Sub-Group Originator ID SHOULD be set 501 to the TE Router ID of the LSR that originates the Path message. This 502 is either the ingress LSR or a LSR which re-originates the Path 503 message with its own Sub-Group Originator ID. Cases when a transit 504 LSR may change the Sub-Group Originator ID of an incoming Path 505 message are described below. The tuple is network-wide unique. The sub-Group ID space is specific 507 to the Sub-Group Originator ID. Therefore the combination is network-wide unique. Also, a router 509 that changes the Sub-Group Originator ID MUST use the same Sub-Group 510 Originator ID on all Path messages for the same P2MP LSP Tunnel and 511 SHOULD not vary the value during the life of the P2MP LSP Tunnel. 513 Note: This version of the document assumes that these additional 514 fields, i.e. , are part of the 515 SENDER_TEMPLATE object. 517 4.2.2. Multiple S2L Sub-LSPs in one Path message 519 The S2L sub-LSP descriptor list allows the signaling of one or more 520 S2L sub-LSPs in one Path message. It is possible to signal multiple 521 S2L sub-LSP objects and ERO/SERO combinations in a single Path 522 message. Note that these objects are the ones that differentiate a 523 S2L sub-LSP. Each LSR can use the common objects in the Path message 524 and the S2L sub-LSP descriptors to process each S2L sub-LSP. 526 All LSRs need to process the ERO corresponding to the first S2L sub- 527 LSP when the ERO is present. If one or more SEROs are present an ERO 528 MUST be present. The signaling information for the first S2L sub-LSP 529 is propagated in a Path message by each LSR along the explicit route 530 specified by the ERO. A LSR needs to process a S2L sub-LSP descriptor 531 for a subsequent S2L sub-LSP only if the first hop in the 532 corresponding SERO is a local address of that LSR. If this is not the 533 case the S2L sub-LSP descriptor is included in the Path message sent 534 to LSR that is the next hop to reach the first hop in the SERO. This 535 next hop is determined by using the ERO or other SEROs that encode 536 the path to the SERO's first hop. If this is the case and the LSR is 537 also the egress the S2L sub-LSP descriptor is not propagated 538 downstream. If this is the case and the LSR is not the egress the S2L 539 sub-LSP descriptor is included in a Path message sent to the next-hop 540 determined from the SERO. Hence a branch LSR only propagates the 541 relevant S2L sub-LSP descriptors on each downstream link. A S2L sub- 542 LSP descriptor that is propagated on a downstream link only contains 543 those S2L sub-LSPs that are routed using that link. This processing 544 may result in a subsequent S2L sub-LSP in an incoming Path message to 545 become the first S2L sub-LSP in an outgoing Path message. 547 Note that if one or more SEROs contains loose hops, expansion of such 548 loose hops may result in overflowing the Path message size. Section 549 4.2.3 describes how signaling of the set of S2L sub-LSPs can be split 550 in more than one Path message. 552 The Record Route Object (RRO) contains the hops traversed by the Path 553 message and applies to all the S2L sub-LSPs signaled in the Path 554 message. A transit LSR appends its address in an incoming RRO and 555 propagates it downstream. A branch LSR forms a new RRO for each of 556 the outgoing Path messages. Each such updated RRO is formed using the 557 rules in [RFC3209]. 559 If a LSR is unable to support a S2L sub-LSP setup, a PathErr message 560 MUST be sent for the impacted S2L sub-LSP, and normal processing of 561 the rest of the P2MP LSP Tunnel SHOULD continue. The default behavior 562 is that the remainder of the LSP is not impacted (that is, all other 563 branches are allowed to set up) and the failed branches are reported 564 in PathErr messages in which the Path_State_Reomved flag MUST NOT be 565 set. However, the ingress LSR may set a LSP Integrity flag (see 566 section 21.3) to request that if there is a setup failure on any 567 branch the entire LSP should fail to set up. 569 4.2.3. Transit Fragmentation 571 In certain cases a transit LSR may need to generate multiple Path 572 messages to signal state corresponding to a single received Path 573 message. For instance ERO expansion may result in an overflow of the 574 resultant Path message. It is desirable not to rely on IP 575 fragmentation in this case. In order to achieve this, the multiple 576 Path messages generated by the transit LSR, MUST be signaled with the 577 Sub-Group Originator ID set to the TE Router ID of the transit LSR 578 and a distinct sub-Group ID. Thus each distinct Path message that is 579 generated by the transit LSR for the P2MP LSP Tunnel carries a 580 distinct tuple. 582 When multiple Path messages are used by an ingress or transit node, 583 each Path message SHOULD be identical with the exception of the S2L 584 sub-LSP related information (e.g., SERO), message and hop information 585 (e.g., INTEGRITY, MESSAGE_ID and RSVP_HOP), and the SENDER_TEMPLATE 586 objects. Except when performing a make-before-break operation, the 587 tunnel sender address and LSP ID fields MUST be the same in each 588 message, and for transit nodes, the same as the values in the Path 589 message. 591 As described above one case in which the Sub-Group Originator ID of a 592 received Path message is changed is that of transit fragmentation. 593 The Sub-Group Originator ID of a received Path message may also be 594 changed in the outgoing Path message and set to that of the LSR 595 originating the Path message based on a local policy. For instance a 596 LSR may decide to always change the Sub-Group Originator ID while 597 performing ERO expansion. The Sub-Group ID MUST not be changed if the 598 Sub-Group Originator ID is not being changed. 600 4.3. Grafting 602 The operation of adding egress LSR(s) to an existing P2MP LSP Tunnel 603 is termed grafting. This operation allows egress nodes to join a P2MP 604 LSP Tunnel at different points in time. 606 4.3.1. Addition of S2L Sub-LSPs 608 There are two methods to add S2L sub-LSPs to a P2MP LSP Tunnel. The 609 first is to add new S2L sub-LSPs to the P2MP LSP Tunnel by adding 610 them to an existing Path message and refreshing the entire Path 611 message. Path message processing described in section 4 results in 612 adding these S2L sub-LSPs to the P2MP LSP Tunnel. Note that as a 613 result of adding one or more S2L sub-LSPs to a Path message the ERO 614 compression encoding may have to be recomputed. 616 The second is to use incremental updates described in section 11.1. 617 The egress LSRs can be added/removed by signaling only the impacted 618 S2L sub-LSPs in a new Path message. Hence other S2L sub-LSPs do not 619 have to be re-signaled. 621 5. Resv Message 623 5.1. Resv Message Format 625 The Resv message follows the [RFC3209] and [RFC3473] format: 627 ::= [ ] 628 [ [ | ] ... ] 629 [ ] 630 631 632 [ ] [ ] 633 [ ] 634 [ ] 635 [ ... ] 636