idnits 2.17.1 draft-peng-lsr-flex-algo-deterministic-routing-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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (January 13, 2022) is 834 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) == Outdated reference: A later version (-26) exists of draft-ietf-lsr-flex-algo-18 == Outdated reference: A later version (-17) exists of draft-ietf-lsr-ip-flexalgo-04 == Outdated reference: A later version (-09) exists of draft-peng-detnet-deadline-based-forwarding-00 Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group Shaofu. Peng 3 Internet-Draft Bin. Tan 4 Intended status: Standards Track Quan. Xiong 5 Expires: July 17, 2022 ZTE Corporation 6 January 13, 2022 8 IGP Flexible Algorithm with Deterministic Routing 9 draft-peng-lsr-flex-algo-deterministic-routing-00 11 Abstract 13 IGP Flex Algorithm proposes a solution that allows IGPs themselves to 14 compute constraint based paths over the network, and it also 15 specifies a way of using Segment Routing (SR) Prefix-SIDs and SRv6 16 locators, or pure IP prefix to steer packets along the constraint- 17 based paths. This document describes how to compute deterministic 18 paths within Flex-algo plane. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at https://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on July 17, 2022. 37 Copyright Notice 39 Copyright (c) 2022 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (https://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 56 3. Determinisitc Links . . . . . . . . . . . . . . . . . . . . . 3 57 3.1. Deterministic Link Bound with CQF . . . . . . . . . . . . 4 58 3.1.1. ISIS Advertisement of Deterministic Link Bound with 59 CQF . . . . . . . . . . . . . . . . . . . . . . . . . 5 60 3.1.2. OSPF Advertisement of Deterministic Link Bound with 61 CQF . . . . . . . . . . . . . . . . . . . . . . . . . 7 62 3.2. Deterministic Link Bound with Deadline . . . . . . . . . 7 63 4. Deterministic Routes Computation . . . . . . . . . . . . . . 7 64 4.1. Bind CQF parameters with Flex-Algo . . . . . . . . . . . 7 65 4.1.1. ISIS Advertisement of Flex-algo Binding CQF . . . . . 8 66 4.1.2. FAD Flags Extensions . . . . . . . . . . . . . . . . 8 67 4.1.3. OSPF Advertisement of Flex-algo Binding CQF . . . . . 9 68 4.1.4. CQF based Deterministic Routes Computation . . . . . 9 69 4.2. Bind Deadline parameters with Flex-Algo . . . . . . . . . 10 70 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 71 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 72 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 73 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 74 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 75 8.2. Informative References . . . . . . . . . . . . . . . . . 11 76 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 78 1. Introduction 80 IGP Flex Algorithm [I-D.ietf-lsr-flex-algo] proposes a solution that 81 allows IGPs themselves to compute constraint based paths over the 82 network, and it also specifies a way of using Segment Routing 83 [RFC8402] Prefix-SIDs and SRv6 locators, or pure IP prefix 84 [I-D.ietf-lsr-ip-flexalgo] to steer packets along the constraint- 85 based paths. It specifies a set of extensions to ISIS, OSPFv2 and 86 OSPFv3 that enable a router to send TLVs that identify (a) 87 calculation-type, (b) specify a metric-type, and (c )describe a set 88 of constraints on the topology, that are to be used to compute the 89 best paths along the constrained topology. A given combination of 90 calculation-type, metric-type, and constraints is known as an FAD 91 (Flexible Algorithm Definition). 93 [RFC8655] describes the architecture of deterministic network and 94 defines the QoS goals of deterministic forwarding: Minimum and 95 maximum end-to-end latency from source to destination, timely 96 delivery, and bounded jitter (packet delay variation); packet loss 97 ratio under various assumptions as to the operational states of the 98 nodes and links; an upper bound on out-of-order packet delivery. In 99 order to achieve these goals, deterministic networks use resource 100 reservation, explicit routing, service protection and other means. A 101 deterministic path is typically (but not necessarily) explicit routes 102 so that it does not normally suffer temporary interruptions caused by 103 the convergence of routing or bridging protocols. 105 IGP Flex-algo has the characteristic mentioned in [RFC8655]: under a 106 single administrative control or within a closed group of 107 administrative control. IGP Flex-algo supports Min Unidirectional 108 Link Delay (defined in [RFC8570]) metric type to compute shortest 109 paths with minimum delay, however, the cumulative delay is 110 essentially the accumulation of transmission delay of all links, 111 excluding node delay. In order to make up for this gap, it is 112 necessary to enhance IGP flex-algo to compute the path with 113 deterministic delay, i.e., including deterministic node delay and 114 link transmission delay. 116 This document describes how to compute distributed shortest paths 117 with deterministic delay metric within Flex-algo plane, as the basis 118 of the whole distributed deterministic scheme. It should be noted 119 that relying on this enhancement alone does not guarantee complete 120 determinacy, it needs to be used in conjunction with other tools, 121 such as creating additional backup explicit path with consistent 122 delay metric for PREOF (Packet Replication, Elimination, and Ordering 123 Functions), turning off local repair, smoothing the delay jitter 124 during route convergence, providing deterministic forwarding 125 mechanism, etc. 127 2. Requirements Language 129 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 130 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 131 "OPTIONAL" in this document are to be interpreted as described in BCP 132 14 [RFC2119] [RFC8174] when, and only when, they appear in all 133 capitals, as shown here. 135 3. Determinisitc Links 137 When a packet is forwarded to a link, the delay produced includes two 138 parts: the first part is the dwell delay of the packet in the node, 139 and the second part is the transmission delay of the packet on the 140 link. In packet switching networks, priority based queuing scheme is 141 generally used. It may give better average latency, but may have 142 worst case latency. We call those links bound with a queue mechanism 143 that can not guarantee node delay are non-determinisitc links. 145 On the contrary, those links bound with a queue mechanism that can 146 provide deterministic node delay are called deterministic links. 147 Typical queue mechanisms are: 149 o IEEE 802.1 WG has specified IEEE802.1Qch [CQF] which uses cyclic 150 queuing and forwarding (CQF) mechanism and relies on time 151 synchronization. According to CQF, the maximum delay experienced 152 by a given packet is (H+1)*D, the minimum delay experienced by a 153 given packet is (H-1)*D, and the delay jitter is 2*D, where H is 154 the number of hops and D is cycle duration. Other variants based 155 on CQF can avoid relying on time synchronization, but only the 156 same cycle duration for all nodes. Basically, the packet received 157 in the current sending window (i.e., cycle) will ensure that it 158 can be sent in the next sending window, then the deterministic 159 node delay, on average, is one cycle duration, or seveval cycle 160 durations if the forwarding delay (from incoming port to outgoing 161 port) inside the node can't be ignored. 163 o [I-D.peng-detnet-deadline-based-forwarding] introduced a deadline 164 based forwarding mechanism that allow packet to control its 165 expected dwell time in the node according to the planned deadline. 166 There are two policies for deadline queue to schedule packets. 167 For early sending policy, the end-to-end delay is H*(P~D), jitter 168 is H*Q, where, H is the number of hops, P is the forwarding delay 169 inside the node, D is the planned deadline; For punctual sending 170 policy, the end-to-end delay is H*D, jitter is a single 171 authorization time. That is, the packet received at any time will 172 ensure that it can be sent in offset time P~D or D respectively 173 for these two policies. 175 3.1. Deterministic Link Bound with CQF 177 A node may configure the CQF based packet scheduling parameter 178 information for its local link, including CQF scheduling enable/ 179 disable, one or more cycle durations. Accordingly, for each cycle 180 duration, the node delay/jitter attributes of the link will be 181 obtained. The meanings of these parameters or attributes of the link 182 are as follows: 184 o CQF scheduling enable/disable: the CQF scheduling algorithm can be 185 enabled for a link, then the packets sent to that link will be 186 scheduled by the CQF scheduling algorithm. 188 o Cycle duration: the duration of the cycle of CQF, which is also 189 called cycle_size. One or more cycle_size with different lengths 190 can be configured for a link, such as 10us, 20us, 30us, and so on. 192 o Node delay/jitter: 194 * According to classical TSN CQF, for a given cycle_size, it can 195 be deduced that the minimum delay in the node of the packet is 196 0, the maximum delay in the node is 2*cycle_size, the average 197 delay in the node is cycle_size, and the delay jitter in the 198 node is 2*cycle_size. The detailed reasons for these data are 199 as follows: if a node receives a packet at the tail end of 200 cycle i and sends that packet at the head end of cycle i+1, the 201 resulting node delay, i.e., the minimum node delay, is 0; if a 202 node receives a packet at the head end of cycle i and sends 203 that packet at the tail end of cycle i+1, the resulting node 204 delay, i.e., the maximum node delay, is 2*cycle_ size; the 205 average node delay is one cycle_size, and the node delay jitter 206 is 2*cycle_size. Each cycle_size corresponds to a different 207 set of delay/jitter attributes. 209 * However, for some variants based on TSN CQF, if the forwarding 210 delay inside the node can't be ignored, e.g, wasting 2 cycle 211 duration, then the minimum node delay, the maximum node delay, 212 and the average node delay need to add 2 cycle_size 213 respectively, but the node delay jitter is still 2*cycle_size. 215 3.1.1. ISIS Advertisement of Deterministic Link Bound with CQF 217 3.1.1.1. Advertisement of Forwarding Delay in Node 219 The forwarding delay is related to the chip implementation and is 220 generally constant. 222 A new IS-IS sub-TLV is defined: the Forwarding Delay sub-TLV, which 223 is advertised within TLV-22, 222, 23, 223, 141, 25. At most only one 224 Forwarding Delay sub-TLV can be included. 226 The following format is defined for the Forwarding Delay sub-TLV: 228 0 1 2 3 229 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 230 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 231 | Type | Length | Forwarding Delay | 232 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 234 Figure 1 236 where: 238 Type: TBD 240 Length: 2 241 Forwarding Delay: The latency of packet from the incoming port (or 242 generated from control plane) to the outgoing port, in units of 243 microseconds. If the forwarding delay can be ignored, it is set 244 to 0. If this sub-TLV is not advertised, the forwarding delay can 245 be regarded as 0. 247 NOTE: for all links of a specific node, it may be possible that 248 they have the same forwarding delay, therefore the forwarding 249 delay can also be advertised by a unified node attribute. This 250 would be considered in future versions. 252 3.1.1.2. Advertisement of CQF Parameters 254 A new IS-IS sub-TLV is defined: the Cycle Durations sub-TLV, which is 255 advertised within TLV-22, 222, 23, 223, 141, 25. At most only one 256 Cycle Durations sub-TLV can be included. 258 The following format is defined for the Cycle Durations sub-TLV: 260 0 1 2 3 261 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 262 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 263 | Type | Length | Cycle_size 1 | 264 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 265 | Cycle_size 2 | ... ... | 266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 267 | Cycle_size N | 268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 270 Figure 2 272 where: 274 Type: TBD 276 Length: 2*N, depending on the count of the cycle_size. 278 Cycle_size: The length of cycle duration, in units of 279 microseconds. A link can support multiple cycle durations, for 280 example, 10us, 20us, 30us, etc, each for a specific service 281 requirement. 283 Only those links that enable CQF scheduling algorithm need to 284 advertise the Cycle Durations sub-TLV, otherwise there is no need to 285 advertise. 287 Note that the advertised cycle_size must be consistent with the CQF 288 queue scheduling mechanism actually instantiated by the link in the 289 forwarding plane. If the forwarding plane does not instantiate a CQF 290 queue scheduling supporting a certain cycle_size, which is however 291 advertised in the Cycle Durations sub-TLV, the subsequent route 292 computation may get wrong results. 294 For a given cycle_size, it can deduce the corresponding node delay 295 and jitter attributes, so these attributes can no longer be 296 explicitly included in the Cycle Durations sub-TLV. As mentioned 297 earlier, if the forwarding delay (assuming P) is not 0, the minimum 298 node delay, the maximum node delay, and the average node delay need 299 to take P into account respectively. P is replaced by ((P/ 300 cycle_size)+1)*cycle_size for deducing. That is: 302 o If P is 0, for a given cycle_size, the minimum node delay is 0, 303 the maximum node delay is 2*cycle_size, the average node delay is 304 cycle_size, and the node delay jitter is 2*cycle_size. 306 o If P is not 0, for a given cycle_size, the minimum node delay is 307 ((P/cycle_size)+1)*cycle_size, the maximum node delay is ((P/ 308 cycle_size)+3)*cycle_size, the average node delay is ((P/ 309 cycle_size)+2)*cycle_size, and the node delay jitter is 310 2*cycle_size. 312 3.1.2. OSPF Advertisement of Deterministic Link Bound with CQF 314 To be defined in next version. 316 3.2. Deterministic Link Bound with Deadline 318 To be described in next version. 320 4. Deterministic Routes Computation 322 4.1. Bind CQF parameters with Flex-Algo 324 The binding relationship can be configured on 325 one or more nodes participating in the same IGP Flex-algo plane, and 326 then advertised in the IGP domain. If there are multiple binding 327 relationship advertised for the same algorithm, it should choose to 328 use the binding cycle_size contained in the FAD with the highest 329 priority. 331 If a Flex-algo plane eventually uses a binding cycle_size, all links 332 participated to the Flex-algo plane must be configured with CQF 333 scheduling enabled and corresponding cycle_size, otherwise, links 334 that do not meet the conditions must be excluded from the Flex-algo 335 plane. 337 4.1.1. ISIS Advertisement of Flex-algo Binding CQF 339 The Flexible Algorithm definition can specify the binding cycle_size 340 that are used to determine the deterministic delay metric for the 341 computed path within the Flex-algo plane. 343 A new IS-IS sub-TLV is defined: the FAD Binding Cycle-size Sub-TLV, 344 which is advertised within IS-IS Flexible Algorithm Definition Sub- 345 TLV. At most only one FAD Binding Cycle-size Sub-TLV can be 346 included. 348 The following format is defined for the FAD Binding Cycle-size Sub- 349 TLV: 351 0 1 2 3 352 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 353 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 354 | Type | Length | Binding Cycle_size | 355 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 357 Figure 3 359 where: 361 Type: TBD 363 Length: 2 365 Binding Cycle_size: Cycle_size of CQF scheduling bound by Flex- 366 algo, in units of microseconds. 368 The binding cycle_size contained in the FAD with the highest priority 369 will take effect. If the FAD with the highest priority does not 370 contain the FAD Binding Cycle-size Sub-TLV, assuming the Metric-Type 371 is Min Unidirectional Link Delay, the traditional path considering 372 only link transmission delay will be calculated, otherwise, the path 373 will consider both node delay and link delay. 375 4.1.2. FAD Flags Extensions 377 A new flag (C-flag) is introduced to ISIS Flexible Algorithm 378 Definition Flags Sub-TLV, to indicate to compute CQF based SPF path 379 when Metric-Type is Min Unidirectional Link Delay. In other words, 380 it will compute shortest path with minimum deterministic end-to-end 381 delay, which contains accumulated node delay provided by CQF and 382 accumulated link transmission delay. 384 0 1 2 3 4 5 6 7... 385 +-+-+-+-+-+-+-+-+... 386 |M|C| | ... 387 +-+-+-+-+-+-+-+-+... 389 Figure 4 391 where: 393 C-flag: introduced by this document. When set, CQF based SPF path is 394 computed. 396 4.1.3. OSPF Advertisement of Flex-algo Binding CQF 398 To be defined in next version. 400 4.1.4. CQF based Deterministic Routes Computation 402 This document reuse the existing Metric-Type, Min Unidirectional Link 403 Delay, combined with the C-flag, to compute CQF based shortest path 404 with minimum deterministic end-to-end delay, which contains 405 accumulated node delay provided by CQF and accumulated link 406 transmission delay. 408 NOTE: Whether new metric type need to be introduced needs to be 409 discussed in the WG. 411 For a Flex-algo plane that bound to a specific cycle_size, the delay 412 metric of a candidate path within the Flex-algo plane equals: 414 H * node delay, where H is the number of hops, and node delay can 415 be deduced by the cycle_size and forwarding delay as above; plus 417 Accumulated link transmission delay; 419 From the source node to the destination node, the candidate path with 420 minimum deterministic delay metric is the best one. This calculation 421 result may be different from the traditional calculation result 422 considering only link transmission delay, depending on the proportion 423 of node delay. 425 The deterministic delay jitter of a candidate path within the Flex- 426 algo plane equals: 428 node delay jitter, which is 2*cycle_size; plus 430 Accumulated link delay jitter, which is almost 0; 432 4.2. Bind Deadline parameters with Flex-Algo 434 To be described in next version. 436 5. IANA Considerations 438 TBD 440 6. Security Considerations 442 TBD. 444 7. Acknowledgements 446 TBD 448 8. References 450 8.1. Normative References 452 [I-D.ietf-lsr-flex-algo] 453 Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and 454 A. Gulko, "IGP Flexible Algorithm", draft-ietf-lsr-flex- 455 algo-18 (work in progress), October 2021. 457 [I-D.ietf-lsr-ip-flexalgo] 458 Britto, W., Hegde, S., Kaneriya, P., Shetty, R., Bonica, 459 R., and P. Psenak, "IGP Flexible Algorithms (Flex- 460 Algorithm) In IP Networks", draft-ietf-lsr-ip-flexalgo-04 461 (work in progress), December 2021. 463 [I-D.peng-detnet-deadline-based-forwarding] 464 Peng, S. and B. Tan, "Deadline Based Deterministic 465 Forwarding", draft-peng-detnet-deadline-based- 466 forwarding-00 (work in progress), January 2022. 468 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 469 Requirement Levels", BCP 14, RFC 2119, 470 DOI 10.17487/RFC2119, March 1997, 471 . 473 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 474 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 475 May 2017, . 477 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 478 Decraene, B., Litkowski, S., and R. Shakir, "Segment 479 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 480 July 2018, . 482 [RFC8570] Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward, 483 D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) 484 Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March 485 2019, . 487 [RFC8655] Finn, N., Thubert, P., Varga, B., and J. Farkas, 488 "Deterministic Networking Architecture", RFC 8655, 489 DOI 10.17487/RFC8655, October 2019, 490 . 492 8.2. Informative References 494 [CQF] "IEEE802.1Qch", 2017, 495 . 497 Authors' Addresses 499 Shaofu Peng 500 ZTE Corporation 501 China 503 Email: peng.shaofu@zte.com.cn 505 Bin Tan 506 ZTE Corporation 507 China 509 Email: tan.bin@zte.com.cn 511 Quan Xiong 512 ZTE Corporation 513 China 515 Email: xiong.quan@zte.com.cn