idnits 2.17.1 draft-bestbar-lsr-slice-aware-te-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The abstract seems to contain references ([RFC3630], [RFC4124], [RFC5305]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (February 22, 2021) is 1152 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. 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: 'DST-TE REQ' is mentioned on line 212, but not defined == Missing Reference: 'IS-IS' is mentioned on line 844, but not defined == Missing Reference: 'RFC5304' is mentioned on line 907, but not defined == Missing Reference: 'RFC5310' is mentioned on line 907, but not defined == Unused Reference: 'ISO10589' is defined on line 984, but no explicit reference was found in the text == Unused Reference: 'RFC7981' is defined on line 990, but no explicit reference was found in the text == Unused Reference: 'RFC8200' is defined on line 995, but no explicit reference was found in the text == Unused Reference: 'RFC8202' is defined on line 1000, but no explicit reference was found in the text == Unused Reference: 'RFC8919' is defined on line 1004, but no explicit reference was found in the text == Outdated reference: A later version (-02) exists of draft-bestbar-spring-scalable-ns-00 == Outdated reference: A later version (-10) exists of draft-bestbar-teas-ns-packet-01 ** Downref: Normative reference to an Informational draft: draft-bestbar-teas-ns-packet (ref. 'I-D.bestbar-teas-ns-packet') == Outdated reference: A later version (-01) exists of draft-ietf-teas-ietf-network-slice-definition-00 ** Downref: Normative reference to an Informational draft: draft-ietf-teas-ietf-network-slice-definition (ref. 'I-D.ietf-teas-ietf-network-slice-definition') == Outdated reference: A later version (-05) exists of draft-nsdt-teas-ns-framework-04 ** Downref: Normative reference to an Informational draft: draft-nsdt-teas-ns-framework (ref. 'I-D.nsdt-teas-ns-framework') ** Downref: Normative reference to an Experimental RFC: RFC 4125 -- Obsolete informational reference (is this intentional?): RFC 8919 (Obsoleted by RFC 9479) Summary: 5 errors (**), 0 flaws (~~), 14 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 LSR Working Group W. Britto 3 Internet-Draft R. Shetty 4 Intended status: Standards Track C. Barth 5 Expires: August 26, 2021 Juniper Networks 6 B. Wen 7 Comcast 8 S. Peng 9 R. Chen 10 ZTE Corporation 11 February 22, 2021 13 IGP Extensions for Support of Slice Aggregate Aware Traffic Engineering 14 draft-bestbar-lsr-slice-aware-te-00 16 Abstract 18 A slice aggregate is a collection of packets that match a slice 19 policy selection criteria and are given the same forwarding 20 treatment. Slice Aggregate aware Traffic Engineering (SA-TE) is a 21 mechanism that facilitates Traffic Engineering (TE) path selection to 22 take into account the available network resources associated with a 23 specific slice aggregate. This document specifies the Interior 24 Gateway Protocol (IGP) extensions for support of SA-TE. This 25 includes the generalization of the semantics of a number of IGP 26 extensions already defined for existing MPLS Traffic Engineering in 27 [RFC3630], [RFC4124], [RFC5305] and additional IGP extensions beyond 28 those. 30 Status of This Memo 32 This Internet-Draft is submitted in full conformance with the 33 provisions of BCP 78 and BCP 79. 35 Internet-Drafts are working documents of the Internet Engineering 36 Task Force (IETF). Note that other groups may also distribute 37 working documents as Internet-Drafts. The list of current Internet- 38 Drafts is at https://datatracker.ietf.org/drafts/current/. 40 Internet-Drafts are draft documents valid for a maximum of six months 41 and may be updated, replaced, or obsoleted by other documents at any 42 time. It is inappropriate to use Internet-Drafts as reference 43 material or to cite them other than as "work in progress." 45 This Internet-Draft will expire on August 26, 2021. 47 Copyright Notice 49 Copyright (c) 2021 IETF Trust and the persons identified as the 50 document authors. All rights reserved. 52 This document is subject to BCP 78 and the IETF Trust's Legal 53 Provisions Relating to IETF Documents 54 (https://trustee.ietf.org/license-info) in effect on the date of 55 publication of this document. Please review these documents 56 carefully, as they describe your rights and restrictions with respect 57 to this document. Code Components extracted from this document must 58 include Simplified BSD License text as described in Section 4.e of 59 the Trust Legal Provisions and are provided without warranty as 60 described in the Simplified BSD License. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 65 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 66 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 67 4. Resource Allocation . . . . . . . . . . . . . . . . . . . . . 4 68 4.1. Resource Sharing and Resource Overbooking . . . . . . . . 5 69 4.2. SA-TE Resource Allocation Model . . . . . . . . . . . . . 5 70 5. Next-hop Filtering Capability . . . . . . . . . . . . . . . . 5 71 6. IS-IS Extensions for SA-TE . . . . . . . . . . . . . . . . . 7 72 6.1. Network Slicing GENINFO TLV . . . . . . . . . . . . . . . 7 73 6.2. Slice Aggregate Aware Traffic Engineering Capabilities 74 APPsub-TLV . . . . . . . . . . . . . . . . . . . . . . . 7 75 6.3. Slice Aggregate Aware Traffic Engineering Link APPsub-TLV 8 76 6.4. Slice Aggregate Aware Traffic Engineering Link Attributes 77 Sub-sub-TLV . . . . . . . . . . . . . . . . . . . . . . . 10 78 6.4.1. Slice Aggregate Aware Traffic Engineering Unreserved 79 Bandwidth Sub-sub-sub-TLV . . . . . . . . . . . . . . 10 80 6.4.2. Slice Aggregate Aware Traffic Engineering Residual 81 Bandwidth Sub-sub-sub-TLV . . . . . . . . . . . . . . 11 82 6.4.3. Slice Aggregate Aware Traffic Engineering Available 83 Bandwidth Sub-sub-sub-TLV . . . . . . . . . . . . . . 11 84 6.4.4. Slice Aggregate Aware Traffic Engineering Utilized 85 Bandwidth Sub-sub-sub-TLV . . . . . . . . . . . . . . 12 86 7. OSPF Extensions for SA-TE . . . . . . . . . . . . . . . . . . 12 87 8. Functional Example of Unreserved-Bandwidth Advertisements . . 12 88 8.1. Formula to Compute the Unreserved Bandwidth . . . . . . . 12 89 8.2. Examples . . . . . . . . . . . . . . . . . . . . . . . . 13 90 8.2.1. Example 1 Results . . . . . . . . . . . . . . . . . . 15 91 8.2.2. Example 2 Results . . . . . . . . . . . . . . . . . . 16 92 8.2.3. Example 3 Results . . . . . . . . . . . . . . . . . . 17 93 9. Scaling Considerations . . . . . . . . . . . . . . . . . . . 18 94 9.1. Link-State Update Frequency . . . . . . . . . . . . . . . 18 96 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 97 10.1. Network Slicing GENINFO TLV . . . . . . . . . . . . . . 18 98 10.2. Network Slicing GENINFO APPsub-TLVs . . . . . . . . . . 18 99 10.3. SA-TE Link Sub-sub-TLVs . . . . . . . . . . . . . . . . 19 100 10.4. SA-TE Link Attributes Sub-sub-sub-TLVs . . . . . . . . . 19 101 11. Security Considerations . . . . . . . . . . . . . . . . . . . 20 102 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 103 12.1. Normative References . . . . . . . . . . . . . . . . . . 20 104 12.2. Informative References . . . . . . . . . . . . . . . . . 22 105 Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 22 106 Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 23 107 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 109 1. Introduction 111 Network slicing allows a Service Provider to create independent and 112 logical networks on top of a common or shared physical network 113 infrastructure. Such network slices can be offered to customers or 114 used internally by the Service Provider to facilitate or enhance 115 their service offerings. A Service Provider can also use network 116 slicing to structure and organize the elements of its infrastructure. 117 [I-D.bestbar-teas-ns-packet] provides a path control technology 118 agnostic solution that a Service Provider can deploy to realize 119 network slicing in IP/MPLS networks. It introduces the notion of a 120 slice aggregate and describes how a slice policy can be used to 121 realize a slice aggregate by instantiating specific control and data 122 plane behaviors on select topological elements in IP/MPLS networks. 124 In the control plane slice policy mode described in Section 4.2 of 125 [I-D.bestbar-teas-ns-packet], the physical network resources in the 126 network can be logically partitioned by having a representation of 127 network resources appear in a virtual topology. The virtual topology 128 can contain all or a subset of the physical network resource(s). The 129 logical network resources that appear in the virtual topology can 130 reflect a part, whole, or in- excess of the physical network resource 131 capacity (when oversubscription is desirable).To perform network 132 state dependent path computation and placement (Slice Aggregate aware 133 TE) in this mode, the resource reservation on each link needs to be 134 slice aggregate aware. Multiple slice policies may be applied on the 135 same physical link. The slice aggregate network resource 136 availability on links is updated when new paths are placed in the 137 network. The slice aggregate resource reservation, in this case, can 138 be maintained on each device or be centralized on a resource 139 reservation manager that holds reservation states on links in the 140 network. 142 This document will describe the IGP extensions required to describe a 143 network slice aggregate's logical network resources. 145 2. Requirements Language 147 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 148 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 149 "OPTIONAL" in this document are to be interpreted as described in BCP 150 14 [RFC2119] [RFC8174] when, and only when, they appear in all 151 capitals, as shown here. 153 3. Terminology 155 The reader is expected to be familiar with the terminology specified 156 in [I-D.ietf-teas-ietf-network-slice-definition], 157 [I-D.nsdt-teas-ns-framework] and [I-D.bestbar-teas-ns-packet]. The 158 term "Network Slice" used in this document must be interpreted as 159 "IETF Network Slice" [I-D.ietf-teas-ietf-network-slice-definition]. 160 For readability, a few key terms from these documents are repeated 161 here: 163 IETF Network Slice: a well-defined composite of a set of endpoints, 164 the Connectivity requirements between subsets of these endpoints, and 165 Associated service requirements; the term 'network slice' in this 166 Document refers to 'IETF network slice' 167 [I-D.ietf-teas-ietf-network-slice-definition]. 169 Slice Policy: a policy construct that enables instantiation of 170 mechanisms in support of IETF network slice specific control and data 171 plane behaviors on select topological elements; the enforcement of a 172 slice policy results in the creation of a slice aggregate. 174 Slice Aggregate: a collection of packets that match a slice policy 175 selection criteria and are given the same forwarding treatment; a 176 slice aggregate comprises of one or more IETF network slice traffic 177 streams; the mapping of one or more IETF network slices to a slice 178 aggregate is maintained by the IETF Network Slice Controller. 180 Slice Aggregate aware TE (SA-TE): a mechanism for TE path selection 181 that takes into account the available network resources associated 182 with a specific slice aggregate. 184 4. Resource Allocation 186 For SA-TE, the existing "Maximum Reservable link bandwidth" MUST be 187 maintained, but it remains generalized and interpreted as the 188 aggregate usable bandwidth across all slice aggregates. 190 4.1. Resource Sharing and Resource Overbooking 192 [I-D.bestbar-teas-yang-ns-phd] allows a network administrator to 193 apply different overbooking (or underbooking) ratios for different 194 slice aggregates or groups of slice aggregates. The principal method 195 to achieve this is through the definition of per slice aggregate 196 maximum bandwidth value along with a Shared-Resource-Group identifier 197 (SRG). 199 When the SRG is included for a slice aggregate within the slice 200 policy, resources may be shared between slices of the same shared- 201 resource-group. Strict resources sharing is only enforced between 202 shared-resource-groups. 204 When there is resource contention, as a result of a reduction of 205 network capacity, slice aggregate specific paths may be preempted on 206 a priority basis to ensure continuous enforcement of the resource 207 allocation policy as defined by the slice policy. 209 4.2. SA-TE Resource Allocation Model 211 [RFC4125] defines the Maximum Allocation Model (MAM) in support of 212 [DST-TE REQ]. Resource guarantees, sharing and overbooking for slice 213 aggregates follow the MAM. 215 5. Next-hop Filtering Capability 217 Per Slice Aggregate Next Hop filtering is an important capability for 218 the path computing entity of a slice aggregate specific path. 219 Consider the figure below and the incongruent slice aggregate 220 membership outlined in Table 1. 222 +----+ 223 +------| r2 |-----+ 224 | +----+ | 225 | | 226 +----+ +----+ +----+ +----+ +----+ 227 | r0 |---| r1 |===| r3 |===| r5 |---| r6 | 228 +----+ +----+ +----+ +----+ +----+ 229 | | 230 | +----+ | 231 +------| r4 |-----+ 232 +----+ 234 Figure 1: Sample Topology 236 +-------------------+------------+------------------+ 237 | Link | IGP metric | Slice Aggregates | 238 +-------------------+------------+------------------+ 239 | (r0,if1)-(r1,if1) | 10 | SA2, SA1 | 240 | (r1,if2)-(r2,if1) | 10 | SA2 | 241 | (r2,if2)-(r5,if1) | 10 | SA2 | 242 | (r1,if3)-(r3,if1) | 10 | SA2 | 243 | (r3,if3)-(r5,if2) | 10 | SA2 | 244 | (r1,if4)-(r3,if2) | 10 | SA1 | 245 | (r3,if4)-(r5,if3) | 10 | SA1 | 246 | (r1,if5)-(r4,if1) | 10 | SA1 | 247 | (r4,if2)-(r5,if4) | 10 | SA1 | 248 | (r5,if5)-(r6,if1) | 10 | SA2, SA1 | 249 +-------------------+------------+------------------+ 251 Table 1: Incongruent Slice Aggregate membership 253 Consider if r0 is the path computing entity and requires a segment- 254 routing policy towards r6 via only links and nodes that are members 255 of the SA2 slice aggregate and maximizing link utilization via ECMP. 257 r1 has 4 equal cost Next Hops to r6 over if2 (via r2), if3 (via r3), 258 if4 (via r3), and if5 (via r4). However, the links from r1 over if4 259 (to r3) and over if5 (to r4) are not members of the SA2 slice. 261 Without any Per Slice Aggregate Next Hop filtering, r0 would need to 262 compute two segment-lists consisting of several segments and load- 263 balance equally between them to ensure traffic sent to r1 is 264 forwarded over SA2 links. The two segment-lists may look like: 266 segment-list1: [, ] 268 segment-list2: [, , ] 270 When r1 supports Per Slice Aggregate Next Hop filtering on SR 271 segments, it can advertise this capability in the SR network. r0 (or 272 a PCE) can build a Per Slice aggregate topology and compute Per Slice 273 aggregate ECMP paths for an SR node segment. Thus, for the same 274 earlier example, r0 would be able to use a single segment (r6's node- 275 SID) to steer over slice aggregate traffic over the SA2 slice. 277 As described in [I-D.bestbar-spring-scalable-ns], when a Global 278 Identifier as Slice Selector is carried in the packet to identify the 279 slice aggregate, r0 can use r6's node-SID to steer the packet over 280 the specific next-hops that belong to SA2 slice aggregate. 282 For example on transit router r1, the SS field in the packet is used 283 to identify the slice aggregate SA2, while r6.node-SID is used to 284 determine the subset of next-hops that are member of slice aggregate 285 SA2. 287 6. IS-IS Extensions for SA-TE 289 As discussed in [I-D.bestbar-teas-ns-packet], routing protocols need 290 to be extended to carry additional per slice link state and nodes 291 need to advertise a slice policy capability. 293 This information will not be used by the IS-IS decision process. 295 6.1. Network Slicing GENINFO TLV 297 [RFC6823] describes the use of GENINFO TLV to advertise application- 298 specific information that is not directly related to the operation of 299 the IS-IS protocol. The current document defines a new Network 300 Slicing Application Identifier under the Generic Information TLV 301 (#251). 303 Both V and I flags of the Network Slicing GENINFO TLV SHOULD be 304 unset. 306 The Network Slicing GENINFO TLV MAY be carried in the zero IS-IS 307 instance or a non-zero IS-IS instance. 309 6.2. Slice Aggregate Aware Traffic Engineering Capabilities APPsub-TLV 311 This document defines a new APPsub-TLV under Network Slicing GENINFO 312 TLV, to announce a node's SA-TE capability within a slice policy 313 domain. A node can also advertise its ability to install slice 314 aggregate specific Next Hops via this APPsub-TLV. 316 The Slice Aggregate Aware Traffic Engineering (SA-TE) Capabilities 317 APPsub-TLV may contain optional sub-sub-TLVs. No sub-sub-TLVs are 318 currently defined. 320 The SA-TE Capabilities APPsub-TLV has the following format: 322 0 1 2 3 323 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 324 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 325 | Type | Length | Flags | 326 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 327 | optional sub-sub-TLVs... 329 Figure 2: SA-TE Capabilities APPsub-TLV 331 o Type: (Value TBD by IANA) 332 o Length: 2 + length of sub-sub-TLVs 334 o Flags: 2 octets. The following flags are defined: 336 0 1 337 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 338 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 339 |N| | 340 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 342 Figure 3: Slicing Capability Flags 344 where: 346 N-flag: If set, the router supports Per Slice Next Hop filtering. 348 For purposes of extensibility, currently only one flag is defined. 349 The receipt of a SA-TE Capabilities APPsub-TLV without N flag set is 350 valid, but there is no semantic meaning defined at this time. 352 The SA-TE Capabilities APPsub-TLV MUST NOT appear more than once in a 353 Network Slicing GENINFO TLV. If it appears more than once, the 354 Network Slicing GENINFO TLV MUST be ignored by the receiver. 356 6.3. Slice Aggregate Aware Traffic Engineering Link APPsub-TLV 358 The SA-TE Link APPsub-TLV is an APPsub-TLV under the Network Slicing 359 GENINFO TLV. This APPsub-TLV is used to advertise link information 360 used by a SA-TE Application. It can carry link identification 361 information which can be used by a SA-TE Application to uniquely 362 identify a link. 364 The following illustrates encoding of the Value field of the IS-IS 365 SA-TE Link APPsub-TLV. 367 No. of octets 368 +-----------------------+ 369 | System ID | 6 370 +-----------------------+ 371 | Psuedonode Number | 1 372 +-----------------------+ 373 | Flags | 1 374 +-----------------------+ 375 | Link Identification | 376 | Information | 0 to 24 377 +-----------------------+ 378 | Sub-TLVs | Optional 379 +-----------------------+ 381 Flags 383 0 1 2 3 4 5 6 7 384 +-+-+-+-+-+-+-+-+ 385 |Reserved |S|F|I| 386 +-+-+-+-+-+-+-+-+ 388 Figure 4: SA-TE Link APPsub-TLV 390 The neighbor is identified by its System ID (6 octets), plus one 391 octet to indicate the pseudonode number if the neighbor is on a LAN 392 interface. 394 The following bit flags are defined 396 I bit (0x01): When the I bit is set, the 4-octet Link Local 397 Identifier associated with the link immediately follows the Flags. 399 F bit (0x02): When the F bit is set, the 4-octet IPv4 interface 400 address of the link immediately follows either the Flags (if I bit 401 is clear) or the Link Local Identifier (if I bit is set). 403 S bit (0x04): When the S bit is set, the 16-octet IPv6 interface 404 address of the link immediately follows the Flags (if both F and I 405 bits are clear) or the Link Local Identifier (if I flag is set but 406 F flag is not) or the IPv4 address (if F bit is set). 408 The Link Identification Information could have any or all of the Link 409 Local Identifier, IPv4 interface address and IPv6 interface address 410 of the link. 412 6.4. Slice Aggregate Aware Traffic Engineering Link Attributes Sub-sub- 413 TLV 415 The SA-TE Link Attributes Sub-sub-TLV is a sub-sub-TLV under the SA- 416 TE Link APPsub-TLV. This sub-sub-TLV advertises various bandwidth 417 attributes on a particular link for a specific network slice. 419 There MAY be a SA-TE Link Attributes Sub-sub-TLV for each network 420 slice the link participates in. 422 The "SA-TE Link Attributes" sub-sub-TLV format is illustrated below: 424 0 1 2 3 425 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 426 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 427 | Type | Length | Reserved | Flags | 428 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 429 | Slice Aggregate ID | 430 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 431 | Optional Sub-sub-sub-TLVs ... 433 Figure 5: SA-TE Link Attributes Sub-sub-TLV 435 Type: (Value TBD by IANA) 437 Length: 4 to 20 based on Flags 439 Slice Aggregate ID: 32-bit slice aggregate identifier. 441 Flags: 1-octet field for future use. 443 6.4.1. Slice Aggregate Aware Traffic Engineering Unreserved Bandwidth 444 Sub-sub-sub-TLV 446 The SA-TE Unreserved Bandwidth Sub-sub-sub-TLV is a Sub-sub-sub-TLV 447 under the SA-TE Link Attributes Sub-sub-TLV. This Sub-sub-sub-TLV 448 advertises the unreserved bandwidth on a particular link for a 449 specific network slice aggregate. 451 The SA-TE Unreserved Bandwidth Sub-sub-sub-TLV can carry up to eight 452 bandwidth values, one for each priority level. The units are bytes 453 (not bits!) per second. 455 The "SA-TE Unreserved Bandwidth" Sub-sub-sub-TLV format is 456 illustrated below: 458 0 1 2 3 459 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 461 | Type | Length | Reserved | Priority# | 462 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 463 | unreserved-bw for the lowest set priority bit | 464 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 465 // . . . // 466 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 467 | unreserved-bw for the highest set priority bit | 468 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 470 Figure 6: SA-TE Unreserved Bandwidth Sub-sub-sub-TLV 472 o Type: (Value TBD by IANA) 474 o Length: Variable. 476 o Priority#: Bit-map defining the priority values in use. Up to 8 477 priority values can be used. 479 o Unreserved-bw: Unreserved link bandwidth on the link where each 480 unreserved-bw entry corresponds to a non-zero bit in the Priority 481 field, starting at the least significant bit. 483 6.4.2. Slice Aggregate Aware Traffic Engineering Residual Bandwidth 484 Sub-sub-sub-TLV 486 The SA-TE Residual Bandwidth Sub-sub-sub-TLV is a Sub-sub-sub-TLV 487 under the SA-TE Link Attributes Sub-sub-TLV. This Sub-sub-sub-TLV 488 advertises the residual bandwidth on a particular link for a specific 489 Network slice aggregate. 491 The format of SA-TE Residual Bandwidth Sub-sub-sub-TLV matches the 492 format of Unidirectional Residual Bandwidth Sub-TLV defined in 493 [RFC8570]. 495 6.4.3. Slice Aggregate Aware Traffic Engineering Available Bandwidth 496 Sub-sub-sub-TLV 498 The SA-TE Available Bandwidth Sub-sub-sub-TLV is a Sub-sub-sub-TLV 499 under the SA-TE Link Attributes Sub-sub-TLV. This Sub-sub-sub-TLV 500 advertises the available bandwidth on a particular link for a 501 specific Network slice aggregate. 503 The format of SA-TE Available Bandwidth Sub-sub-sub-TLV matches the 504 format of Unidirectional Available Bandwidth Sub-TLV defined in 505 [RFC8570]. 507 6.4.4. Slice Aggregate Aware Traffic Engineering Utilized Bandwidth 508 Sub-sub-sub-TLV 510 The SA-TE Utilized Bandwidth Sub-sub-sub-TLV is a Sub-sub-sub-TLV 511 under the SA-TE Link Attributes Sub-sub-TLV. This Sub-sub-sub-TLV 512 advertises the utilized bandwidth on a particular link for a specific 513 Network slice aggregate. 515 The format of SA-TE Utilized Bandwidth Sub-sub-sub-TLV matches the 516 format of Unidirectional Utilized Bandwidth Sub-TLV defined in 517 [RFC8570]. 519 7. OSPF Extensions for SA-TE 521 A future version of this document will define OSPF extensions for SA- 522 TE. 524 8. Functional Example of Unreserved-Bandwidth Advertisements 526 For illustration purposes, we now present a few examples of how these 527 extensions may be used. 529 8.1. Formula to Compute the Unreserved Bandwidth 531 For a slice 's' at priority 'p' on a specific TE link, where: 533 s : Slice-name 535 p : reservation priority (0-7) 537 { S } : Set containing all slice names in the network 539 Unreserv-BW(s, p) = MIN ( 541 [ Max-resv-shared-BW(s) - Sum { Reserved-BW(s, q) } ] for all q <= 542 p, 544 [ Max-resv-BW(interface) - Sum { Reserved-BW(c, q) } ] for all c = 545 { S } & q <= p 547 ) 549 The formula above is generic and applies for all priority values 550 (0-7) 552 8.2. Examples 554 All these examples assume two slice aggregates, SA2 and SA1, with the 555 following configuration parameters: 557 Per TE link resource allocation: 559 Max-BW(interface): 10G (derived from the physical interface BW) 561 Max-resv-BW(interface): 10G (default: equal to Max-BW) 563 Slice Policy: 565 Max-resv-shared-BW(SA1): 10G 567 Max-resv-shared-BW(SA2): 7G 569 +------+ 570 | +-------------+ 571 | | . ( )--->ef (critical priority, p=0) 572 | | . SA1 ( )-->af1 (high priority, p=1) 573 | | . ( )-->af2 (normal priority, p=2) 574 | | . ( )--->be (low priority, p-3) 575 | +-------------+ 576 | | 577 | +-------------+ 578 | | . ( )--->ef (critical priority, p=0) 579 | | . SA2 ( )-->af1 (high priority, p=1) 580 | | . ( )-->af2 (normal priority, p=2) 581 | | . ( )--->be (low priority, p=3) 582 | +-------------+ 583 +------+ 585 Figure 7: Example 10G Interface with 2 Slice Aggregates 587 The reservation priority in the following examples will use the names 588 critical, high, normal and low corresponding to priority values 0-3. 589 The unreserved-BW for each slice, priority can be described with the 590 following formulas: 592 Unreserv-BW(SA1, critical) = MIN ( 594 [ Max-resv-shared-BW(SA1) - Sum { Reserved-BW(SA1, q) } ] for q = 595 { critical }, 597 [ Max-resv-BW(interface) - Sum { Reserved-BW(c, q) } ] for c = { 598 SA1, SA2 } & q = { critical } 600 ) 602 Unreserv-BW(SA1, high) = MIN ( 604 [ Max-resv-shared-BW(SA1) - Sum { Reserved-BW(SA1, q) } ] for q = 605 { critical, high }, 607 [ Max-resv-BW(interface) - Sum { Reserved-BW(c, q) } ] for c = { 608 SA1, SA2 } & q = { critical, high } 610 ) 612 Unreserv-BW(SA1, normal) = MIN ( 614 [ Max-resv-shared-BW(SA1) - Sum { Reserved-BW(SA1, q) } ] for q = 615 { critical, high, normal }, 617 [ Max-resv-BW(interface) - Sum { Reserved-BW(c, q) } ] for c = { 618 SA1, SA2 } & q = { critical, high, normal } 620 ) 622 Unreserv-BW(SA1, low) = MIN ( 624 [ Max-resv-shared-BW(SA1) - Sum { Reserved-BW(SA1, q) } ] for q = 625 { critical, high, normal, low }, 627 [ Max-resv-BW(interface) - Sum { Reserved-BW(c, q) } ] for c = { 628 SA1, SA2 } & q = { critical, high, normal, low } 630 ) 632 Unreserv-BW(SA2, critical) = MIN ( 634 [ Max-resv-shared-BW(SA2) - Sum { Reserved-BW(SA2, q) } ] for q = 635 { critical }, 637 [ Max-resv-BW(interface) - Sum { Reserved-BW(c, q) } ] for c = { 638 SA1, SA2 } & q = { critical } 640 ) 642 Unreserv-BW(SA2, high) = MIN ( 644 [ Max-resv-shared-BW(SA2) - Sum { Reserved-BW(SA2, q) } ] for q = 645 { critical, high }, 647 [ Max-resv-BW(interface) - Sum { Reserved-BW(c, q) ] for c = { 648 SA1, SA2 } & q = { critical, high } 650 ) 652 Unreserv-BW(SA2, normal) = MIN ( 654 [ Max-resv-shared-BW(SA2) - Sum { Reserved-BW(SA2, q) } ] for q = 655 { critical, high, normal }, 657 [ Max-resv-BW(interface) - Sum { Reserved-BW(c, q) ] for c = { 658 SA1, SA2 } & q = { critical, high, normal } 660 ) 662 Unreserv-BW(SA2, low) = MIN ( 664 [ Max-resv-shared-BW(SA2) - Sum { Reserved-BW(SA2, q) } ] for q = 665 { critical, high, normal, low }, 667 [ Max-resv-BW(interface) - Sum { Reserved-BW(c, q) ] for c = { 668 SA1, SA2 } & q = { critical, high, normal, low } 670 ) 672 8.2.1. Example 1 Results 674 Time0: no LSPs 676 Unreserv-BW(SA1, q) = 10G, for q = { critical, high, normal, low } 678 Unreserv-BW(SA2, q) = 10G, for q = { critical, high, normal, low } 680 Time1: new SA1, normal LSP 5G 682 Unreserv-BW(SA1, normal) = 5G 684 Unreserv-BW(SA1, low) = 5G 686 Unreserv-BW(SA2, normal) = 5G 688 Unreserv-BW(SA1, low) = 5G 690 No change to other Unreserv-BW values 692 Note: If a reservation is made at a priority p, then there will be no 693 change to unreserv-bw(s, q) for all q < p. 695 Time2: new SA1, critical LSP 5G 697 Unreserv-BW(SA1, critical) = 5G 699 Unreserv-BW(SA1, high) = 5G 701 Unreserv-BW(SA1, normal) = 0G 703 Unreserv-BW(SA1, low) = 0G 705 Unreserv-BW(SA2, critical) = 5G 707 Unreserv-BW(SA2, high) = 5G 709 Unreserv-BW(SA2, normal) = 0G 711 Unreserv-BW(SA2, low) = 0G 713 Time3: new SA2, critical LSP 5G 715 -> preempt LSP(SA1, normal) 717 Unreserv-BW(SA1, critical) = 0G 719 Unreserv-BW(SA1, high) = 0G 721 Unreserv-BW(SA2, critical) = 0G 723 Unreserv-BW(SA2, high) = 0G 725 No change to other Unreserv-BW values 727 8.2.2. Example 2 Results 729 Time0: no LSPs 731 Unreserv-BW(SA1, q) = 10G, for q = { critical, high, normal, low } 733 Unreserv-BW(SA2, q) = 10G, for q = { critical, high, normal, low } 735 Time1: new SA1, critical LSP 5G 737 Unreserv-BW(SA1, critical) = 5G 739 Unreserv-BW(SA1, high) = 5G 741 Unreserv-BW(SA1, normal) = 5G 742 Unreserv-BW(SA1, low) = 5G 744 Unreserv-BW(SA2, critical) = 5G 746 Unreserv-BW(SA2, high) = 5G 748 Unreserv-BW(SA2, normal) = 5G 750 Unreserv-BW(SA2, low) = 5G 752 Time2: new SA1, critical LSP 5G 754 Unreserv-BW(SA1, critical) = 0G 756 Unreserv-BW(SA1, high) = 0G 758 Unreserv-BW(SA1, normal) = 0G 760 Unreserv-BW(SA1, low) = 0G 762 Unreserv-BW(SA2, critical) = 0G 764 Unreserv-BW(SA2, high) = 0G 766 Unreserv-BW(SA2, normal) = 0G 768 Unreserv-BW(SA2, low) = 0G 770 8.2.3. Example 3 Results 772 Time0: no LSPs 774 Unreserv-BW(SA1, q) = 10G, for q = { critical, high, normal, low } 776 Unreserv-BW(SA2, q) = 10G, for q = { critical, high, normal, low } 778 Time1: new SA2, critical LSP 10G 780 Unreserv-BW(SA1, critical) = 0G 782 Unreserv-BW(SA1, high) = 0G 784 Unreserv-BW(SA1, normal) = 0G 786 Unreserv-BW(SA1, low) = 0G 788 Unreserv-BW(SA2, critical) = 0G 789 Unreserv-BW(SA2, high) = 0G 791 Unreserv-BW(SA2, normal) = 0G 793 Unreserv-BW(SA2, low) = 0G 795 Time2: new SA1, normal LSP 5G 797 -> not admitted 799 9. Scaling Considerations 801 9.1. Link-State Update Frequency 803 SA-TE applications SHOULD rate limit the link attribute updates 804 notified to IGPs. 806 10. IANA Considerations 808 10.1. Network Slicing GENINFO TLV 810 IANA is requested to allocate the IS-IS Application Identifier TBD [2 811 suggested] under the Generic Information TLV (#251) [RFC6823] for 812 Network Slicing. 814 This document defines APPSub-TLVs under Network Slicing GENINFO TLV, 815 for which IANA is requested to create a new registry entitled 816 "Network Slicing GENINFO Parameters". 818 10.2. Network Slicing GENINFO APPsub-TLVs 820 IANA is requested to create a subregistry in the Network Slicing 821 GENINFO Parameters Registry as follows: 823 Sub-Registry: Network Slicing APPsub-TLV Types under IS-IS TLV 824 #251 Application Identifier #TBD 826 Registration Procedures: IETF Review with additional requirements 827 on the documentation of the use being registered as specified in 828 Section 10.2 of this document. 830 Reference: this document 831 Type Name Reference 832 ---------- -------- ----------- 833 0 Reserved 834 1 SA-TE Capabilities 835 2 SA-TE Link 836 3-254 Unassigned 838 Network Slicing APPsub-TLV Types 3 through 254 are available for 839 assignment by IETF Review. The RFC causing such an assignment 840 will also include a discussion of security issues and of the rate 841 of change of the information being advertised. Network Slicing 842 APPsub-TLVs MUST NOT alter basic IS-IS protocol operation 843 including the establishment of adjacencies and the decision 844 process for IS-IS [IS-IS], [RFC1195]. 846 10.3. SA-TE Link Sub-sub-TLVs 848 IANA is requested to create a subregistry in the Network Slicing 849 GENINFO Parameters Registry as follows: 851 Sub-Registry: SA-TE Sub-sub-TLV Types under SA-TE Link APPsub-TLV 852 #TBD 854 Registration Procedures: IETF Review with additional requirements 855 on the documentation of the use being registered as specified in 856 Section 10.3 of this document. 858 Reference: this document 860 Type Name Reference 861 ---------- -------------- ----------- 862 0 Reserved 863 1 SA-TE Link Attributes 864 2-254 Unassigned 866 Types 2 through 254 are available for assignment by IETF Review. 867 The RFC causing such an assignment will also include a discussion 868 of security issues and of the rate of change of the information 869 being advertised. 871 10.4. SA-TE Link Attributes Sub-sub-sub-TLVs 873 IANA is requested to create a subregistry in the Network Slicing 874 GENINFO Parameters Registry as follows: 876 Sub-Registry: SA-TE Sub-sub-sub-TLV Types under SA-TE Link 877 Attributes Sub-sub-TLV #TBD 878 Registration Procedures: IETF Review with additional requirements 879 on the documentation of the use being registered as specified in 880 Section 10.4 of this document. 882 Reference: this document 884 Type Name Reference 885 ---------- -------------------- ----------- 886 0 Reserved 887 1 SA-TE Unreserved Bandwidth 888 2-36 Unassigned 889 37 SA-TE Residual Bandwidth 890 38 SA-TE Available Bandwidth 891 39 SA-TE Utilized Bandwidth 892 2-254 Unassigned 894 Types 2 through 36 and 40 through 254 are available for assignment 895 by IETF Review. The RFC causing such an assignment will also 896 include a discussion of security issues and of the rate of change 897 of the information being advertised. Type 37, 38 and 39 have been 898 suggested to match with the Sub-TLVs 37, 38 and 39 mentioned in 899 the IS-IS "Sub-TLVs for TLVs 22, 23, 25, 141, 222, and 223" 900 Registry. 902 11. Security Considerations 904 The advertisement of the Network Slicing GENINFO TLV and its APPsub- 905 TLVs raises no new security issues for IS-IS. This information will 906 not be used by the IS-IS decision process. Where appropriate, it is 907 recommended that either [RFC5304] or [RFC5310] be used. 909 12. References 911 12.1. Normative References 913 [I-D.bestbar-spring-scalable-ns] 914 Saad, T. and V. Beeram, "Scalable Network Slicing over SR 915 Networks", draft-bestbar-spring-scalable-ns-00 (work in 916 progress), December 2020. 918 [I-D.bestbar-teas-ns-packet] 919 Saad, T., Beeram, V., Wen, B., Ceccarelli, D., Halpern, 920 J., Peng, S., Chen, R., and X. Liu, "Realizing Network 921 Slices in IP/MPLS Networks", draft-bestbar-teas-ns- 922 packet-01 (work in progress), December 2020. 924 [I-D.bestbar-teas-yang-ns-phd] 925 Saad, T. and V. Beeram, "YANG Data Model for Network Slice 926 Per-Hop Definition", draft-bestbar-teas-yang-ns-phd-00 927 (work in progress), November 2020. 929 [I-D.ietf-teas-ietf-network-slice-definition] 930 Rokui, R., Homma, S., Makhijani, K., Contreras, L., and J. 931 Tantsura, "Definition of IETF Network Slices", draft-ietf- 932 teas-ietf-network-slice-definition-00 (work in progress), 933 January 2021. 935 [I-D.nsdt-teas-ns-framework] 936 Gray, E. and J. Drake, "Framework for Transport Network 937 Slices", draft-nsdt-teas-ns-framework-04 (work in 938 progress), July 2020. 940 [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and 941 dual environments", RFC 1195, DOI 10.17487/RFC1195, 942 December 1990, . 944 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 945 Requirement Levels", BCP 14, RFC 2119, 946 DOI 10.17487/RFC2119, March 1997, 947 . 949 [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering 950 (TE) Extensions to OSPF Version 2", RFC 3630, 951 DOI 10.17487/RFC3630, September 2003, 952 . 954 [RFC4124] Le Faucheur, F., Ed., "Protocol Extensions for Support of 955 Diffserv-aware MPLS Traffic Engineering", RFC 4124, 956 DOI 10.17487/RFC4124, June 2005, 957 . 959 [RFC4125] Le Faucheur, F. and W. Lai, "Maximum Allocation Bandwidth 960 Constraints Model for Diffserv-aware MPLS Traffic 961 Engineering", RFC 4125, DOI 10.17487/RFC4125, June 2005, 962 . 964 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic 965 Engineering", RFC 5305, DOI 10.17487/RFC5305, October 966 2008, . 968 [RFC6823] Ginsberg, L., Previdi, S., and M. Shand, "Advertising 969 Generic Information in IS-IS", RFC 6823, 970 DOI 10.17487/RFC6823, December 2012, 971 . 973 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 974 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 975 May 2017, . 977 [RFC8570] Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward, 978 D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) 979 Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March 980 2019, . 982 12.2. Informative References 984 [ISO10589] 985 IANA, "Intermediate system to Intermediate system routing 986 information exchange protocol for use in conjunction with 987 the Protocol for providing the Connectionless-mode Network 988 Service (ISO 8473)", August 1987, . 990 [RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions 991 for Advertising Router Information", RFC 7981, 992 DOI 10.17487/RFC7981, October 2016, 993 . 995 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 996 (IPv6) Specification", STD 86, RFC 8200, 997 DOI 10.17487/RFC8200, July 2017, 998 . 1000 [RFC8202] Ginsberg, L., Previdi, S., and W. Henderickx, "IS-IS 1001 Multi-Instance", RFC 8202, DOI 10.17487/RFC8202, June 1002 2017, . 1004 [RFC8919] Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and 1005 J. Drake, "IS-IS Application-Specific Link Attributes", 1006 RFC 8919, DOI 10.17487/RFC8919, October 2020, 1007 . 1009 Appendix A. Contributors 1010 Srihari Sangli 1011 Juniper Networks 1012 Email: ssangli@juniper.net 1014 Vishnu Pavan Beeram 1015 Juniper Networks 1016 Email: vbeeram@juniper.net 1018 Tarek Saad 1019 Juniper Networks 1020 Email: tsaad@juniper.net 1022 Chandra Ramachandran 1023 Juniper Networks 1024 Email: csekar@juniper.net 1026 Appendix B. Acknowledgements 1028 The authors would like to thank Chris Bowers and Shraddha Hegde for 1029 their valuable review and feedback. 1031 Authors' Addresses 1033 William Britto 1034 Juniper Networks 1036 Email: bwilliam@juniper.net 1038 Rajesh Shetty 1039 Juniper Networks 1041 Email: mrajesh@juniper.net 1043 Colby Barth 1044 Juniper Networks 1046 Email: cbarth@juniper.net 1048 Bin Wen 1049 Comcast 1051 Email: Bin_Wen@cable.comcast.com 1052 Shaofu Peng 1053 ZTE Corporation 1055 Email: peng.shaofu@zte.com.cn 1057 Ran Chen 1058 ZTE Corporation 1060 Email: chen.ran@zte.com.cn