idnits 2.17.1 draft-chen-detnet-sr-based-bounded-latency-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 (October 19, 2018) is 2015 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'I-D.geng-detnet-conf-yang' is defined on line 492, but no explicit reference was found in the text == Unused Reference: 'I-D.geng-detnet-info-distribution' is defined on line 497, but no explicit reference was found in the text == Outdated reference: A later version (-04) exists of draft-finn-detnet-bounded-latency-01 == Outdated reference: A later version (-06) exists of draft-geng-detnet-conf-yang-05 == Outdated reference: A later version (-04) exists of draft-geng-detnet-info-distribution-02 == Outdated reference: A later version (-13) exists of draft-ietf-detnet-architecture-08 Summary: 0 errors (**), 0 flaws (~~), 8 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group M. Chen 3 Internet-Draft X. Geng 4 Intended status: Informational Huawei 5 Expires: April 22, 2019 Z. Li 6 China Mobile 7 October 19, 2018 9 Segment Routing (SR) Based Bounded Latency 10 draft-chen-detnet-sr-based-bounded-latency-00 12 Abstract 14 One of the goals of DetNet is to provide bounded end-to-end latency 15 for critical flows. This document defines how to leverage Segment 16 Routing (SR) to implement bounded latency. Specifically, the SR 17 Identifier (SID) is used to specify transmission time (cycles) of a 18 packet. When forwarding devices along the path follow the 19 instructions carried in the packet, the bounded latency is achieved. 20 This is called Cycle Specified Queuing and Forwarding (CSQF) in this 21 document. 23 Since SR is a source routing technology, no per-flow state is 24 maintained at intermediate and egress nodes, SR-based CSQF naturally 25 supports flow aggregation that is deemed to be a key capability to 26 allow DetNet to scale to large networks. 28 Requirements Language 30 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 31 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 32 document are to be interpreted as described in RFC 2119 [RFC2119]. 34 Status of This Memo 36 This Internet-Draft is submitted in full conformance with the 37 provisions of BCP 78 and BCP 79. 39 Internet-Drafts are working documents of the Internet Engineering 40 Task Force (IETF). Note that other groups may also distribute 41 working documents as Internet-Drafts. The list of current Internet- 42 Drafts is at https://datatracker.ietf.org/drafts/current/. 44 Internet-Drafts are draft documents valid for a maximum of six months 45 and may be updated, replaced, or obsoleted by other documents at any 46 time. It is inappropriate to use Internet-Drafts as reference 47 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on April 22, 2019. 50 Copyright Notice 52 Copyright (c) 2018 IETF Trust and the persons identified as the 53 document authors. All rights reserved. 55 This document is subject to BCP 78 and the IETF Trust's Legal 56 Provisions Relating to IETF Documents 57 (https://trustee.ietf.org/license-info) in effect on the date of 58 publication of this document. Please review these documents 59 carefully, as they describe your rights and restrictions with respect 60 to this document. Code Components extracted from this document must 61 include Simplified BSD License text as described in Section 4.e of 62 the Trust Legal Provisions and are provided without warranty as 63 described in the Simplified BSD License. 65 Table of Contents 67 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 68 2. Cycle Specified Queuing and Forwarding . . . . . . . . . . . 3 69 2.1. CSQF Basic Concepts . . . . . . . . . . . . . . . . . . . 3 70 2.2. CSQF Queuing Model . . . . . . . . . . . . . . . . . . . 5 71 2.3. CSQF Timing Model . . . . . . . . . . . . . . . . . . . . 7 72 2.4. Congestion Protection and Resource Reservation . . . . . 8 73 2.5. An Example of CSQF . . . . . . . . . . . . . . . . . . . 9 74 3. Segment Routing Extensions for CSQF . . . . . . . . . . . . . 10 75 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 76 5. Security Considerations . . . . . . . . . . . . . . . . . . . 11 77 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 78 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 79 7.1. Normative References . . . . . . . . . . . . . . . . . . 11 80 7.2. Informative References . . . . . . . . . . . . . . . . . 11 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 83 1. Introduction 85 Deterministic Networking (DetNet) [I-D.ietf-detnet-architecture] is 86 defined to provide end-to-end bounded latency and extremely low 87 packet loss rates for critical flows. For a specific path, the end- 88 to-end latency consists of two parts: 1) the accumulated latency on 89 the wire, 2) the accumulated latency of nodes along the path. The 90 former can be considered as constant once the path has been 91 determined. The latter is contributed by the latency within each 92 node along the path. So, to guarantee the end-to-end bounded 93 latency, control the bounded latency within a node is the key. If 94 every node along the path can guarantee bounded latency, then end-to- 95 end bounded latency can be achieved. 97 [I-D.finn-detnet-bounded-latency] gives a framework that describes 98 how bounded latency and zero congestion loss are achieved. It 99 introduces a parameterized timing model that can be used by DetNet 100 solutions by selecting a corresponding Quality of Service (QoS) 101 algorithm and resource reservation algorithm to achieve the bounded 102 latency and zero congestion loss goal. 104 This document defines how to leverage Segment Routing (SR) [RFC8402] 105 to implement bounded latency. Specifically, the SR Identifier (SID) 106 is used to carry and specify the "sending time" (cycle) of a packet, 107 and ensure that the packet will be transmitted in that specified 108 sending cycle in order to achieve the bounded latency. This is 109 called Cycle Specified Queuing and Forwarding (CSQF) in this 110 document. 112 2. Cycle Specified Queuing and Forwarding 114 2.1. CSQF Basic Concepts 116 By specifying the sending cycle of a packet at a node and making sure 117 that the packet will be transmitted in that cycle, CSQF can achieve 118 bounded latency within the node. By specifying the sending cycle at 119 every node along a path, the end-to-end bounded latency can be 120 achieved. 122 To support CSQF, similar to Cyclic Queuing and Forwarding (CQF) 123 [IEEE802.1Qch], the sending time of an output interface of a node is 124 divided into a series of equal time intervals with the duration of T. 125 Each time interval is called a "cycle", and each cycle corresponds to 126 a queue. During a cycle, only the corresponding queue is open and 127 all the packets in that queue will be transmitted. CSQF can not only 128 control the bounded latency at every node along a path, but regulate 129 the traffic at each node as planned. Therefore, no congestion will 130 occur. 132 Figure 1 provides an overview of CSQF. 134 +---+ +---+ +---+ +---+ 135 | A |----------| B |----------| C |---------| D | 136 +-+-+ +---+ +-+-+ +---+ 138 A |---X---+-------+-------+-------+-------+-------+-------| 140 B |-------+-------+---X---+-------+-------+-------+-------| 142 C |-------+-------+-------+-------+---X---+-------+-------| 144 E |-------+-------+-------+-------+-------+-------+---X---| 146 cycle1 cycle2 cycle3 cycle4 cycle5 cycle6 cycle7 148 DetNet path: A->B->C->D 149 Specified cycle list of packet X: <1, 3, 5, 7> 151 Figure 1: CSQF Overview 153 +---+ +---+ +---+ +---+ 154 | A |---| B |---| C |---| D | 155 +-+-+ +---+ +---+ +---+ 157 A |---X---+-------+-------+-------+-------+-------+-------| 159 B |-------+-------+---X---+-------+-------+-------+-------| 161 C |-------+-------+-------+-------+---X---+-------+-------| 163 E |-------+-------+-------+-------+-------+-------+---X---| 165 cycle1 cycle2 cycle3 cycle4 cycle5 cycle6 cycle7 167 DetNet path: A->B->C->D 168 Specified cycle list of packet X: <1, 3, 5, 7> 170 Figure 1: CSQF Overview 172 CSQF has the following characteristics: 174 o The sending time (cycle) of a packet at each node along a path is 175 specified so that the packet will be transmitted in the specified 176 cycles, hence to guarantee the end-to-end bounded latency. 178 o The specified cycles are calculated by fully considering the link 179 delay, processing delay and the available cycle resources, 180 resulting in no bandwidth waste and no congestion (cycle-based 181 traffic regulation). 183 o Segment routing (SR) is used. Specifically, a SID is used to 184 indicate in which cycle and to which output interface that a 185 packet is specified to transmit, and an SR SID list is used to 186 carry the specified cycles along a path. With SR, there is no 187 per-flow states maintained at the intermediate and egress node. 188 As a result, scalability is greatly improved compared to a 189 solution that maintains flow state at each hop. 191 o Flow aggregation is naturally supported by introducing SR and 192 cycle-based scheduling. 194 2.2. CSQF Queuing Model 196 In Cyclic Queuing and Forwarding (CQF) [IEEE802.1Qch], time is 197 divided into numbered time intervals, and each time interval is 198 called a cycle; the critical traffic is then transmitted and queued 199 for transmission along a path in a cyclic manner. With CQF, the 200 delays experienced by a given packet are as follows: 202 o The maximum end-to-end delay = (N+1) * T; 204 o The minimum end-to-end delay = (N-1) * T; 206 o Where the N is the number of hops and T is the duration of the 207 cycle. 209 CQF assumes that a packet is transmitted from an upstream node in a 210 cycle and the packet must be received at the downstream node in the 211 same cycle, and it must be transmitted in the next cycle to the 212 nexthop node. This assumption leads to very low bandwidth 213 utilization when the link delay, processing delay, etc., factors 214 cannot be considered as trivial. To guarantee this assumption, more 215 bandwidth has to be reserved as a guard band for each cycle, and the 216 effective bandwidth for DetNet service will be greatly reduced. 218 CSQF improves on CQF by explicitly specifying the sending cycles at 219 every node along the path. This relieves the limitation that the 220 sending (at the upstream node) and receiving (at the downstream node) 221 have to be in the same cycle. For CSQF, the cycle to use depends on 222 traffic planning and path calculation. The path calculation will 223 consider the available cycle resources, bandwidth, and delay 224 constraints. 226 +--------+ +--------+ +--------+ 227 Queue1 | SQ --> --> TQ | --> RQ | 228 +--------+ +--------+ +--------+ 229 Queue2 --> RQ | | SQ --> --> TQ | 230 +--------+ +--------+ +--------+ 231 Queue3 --> TQ | --> RQ | | SQ --> 232 +--------+ +--------+ +--------+ 233 Cycle 1 Cycle2 Cycle3 235 +--->SQ---->RQ---->TQ----> 236 | | 237 +------------<-----------+ 239 Figure 2: CSQF Queuing Model 241 For CSQF, three queues (in theory, two or more queues work as well) 242 for each output interface are used. During a particular cycle, only 243 one queue is open and the packets in that queue will be transmitted. 244 This queue is called the sending queue (SQ). The other two queues 245 are closed and can enqueue packets. One of them is called the 246 receiving queue (RQ). The third queue is called the tolerating queue 247 (TQ). 249 The RQ is used for receiving the packets that are expected to be 250 transmitted in the next cycle. The TQ is used for tolerating the 251 packets that come a bit early due to processing delay variation 252 (processing jitter) or other reasons (e.g., packets are not 253 transmitted as required by the traffic specification). Both RQ and 254 TQ can have the capability to absorb a certain amount of processing 255 jitter and traffic bursts. The upper bound of the absorbing capacity 256 is 2T. In order to increase the jitter/burst absorbing capacity, a 257 four or more-queue model can be used. If the processing delay and 258 traffic bursts are small, two-queue model works as well. 260 The roles of the three queues are not fixed, and on the contrary, 261 they rotate with each cycle change. As showed in Figure 2, during 262 cycle 1, queue 1 is SQ, queue 2 is RG and queue 3 is TQ; during cycle 263 2, queue 1 is TQ, queue 2 is SQ and queue 3 is RQ, during cycle 3, 264 queue 1 is RQ, queue 2 is TQ and queue 3 is SQ. That means, for a 265 particular queue, its role will rotate as "...->SQ->RQ->TQ->SQ->...", 266 the starting role of a queue can be any one of the three roles. 268 In CSQF, a cycle corresponds to a queue. There are several ways to 269 do cycle to queue mapping. The simplest mapping between cycles and 270 queues is 1:1 mapping. There could be N:1 mapping, but that requires 271 more identifiers, which in the case of segment routing, would require 272 more SIDs. This document does not specify which mapping should be 273 used. The mapping choice is left to the operator. 275 2.3. CSQF Timing Model 277 DetNet relay node A DetNet relay node B 278 +-------------------+ +-------------------+ 279 | Reg. Queue | | Reg. Queue | 280 | +-+-+ +-+-+-+ | | +-+-+ +-+-+-+ | 281 -->+ | | | | | | + +------->+ | | | | | | + +--> 282 | +-+-+ +-+-+-+ | | +-+-+ +-+-+-+ | 283 | | | | 284 +-------------------+ +-------------------+ 285 -->|<->|<-->|<---->|<->|<------>|<->|<-->|<---->|<->|<-- 286 2,3 4 5 6 1 2,3 4 5 6 1 2,3 287 1: Output delay 3: Preemption delay 288 2: Link delay 4: Processing delay 289 5: Regulation delay 6: Queuing delay. 291 Figure 3: Timing model for DetNet 293 The DetNet timing model in Figure 3 is defined in 294 [I-D.finn-detnet-bounded-latency]. It details the delays that a 295 packet can experience from hop to hop. There are six delays, the 296 detailed explanation of which can be found in 297 [I-D.finn-detnet-bounded-latency]. This document simplifies the 298 above model as follows: 300 DetNet relay node A DetNet relay node B 301 +-------------------+ +-------------------+ 302 | Reg. Queue | | Reg. Queue | 303 | +-+-+ +-+-+-+ | | +-+-+ +-+-+-+ | 304 -->+ | | | | | | + +------->+ | | | | | | + +--> 305 | +-+-+ +-+-+-+ | | +-+-+ +-+-+-+ | 306 | | | | 307 +-------------------+ +-------------------+ 308 -->|<->|<------------->|<------>|<->|<------------->|<-- 309 2 3 1 2 3 1 2 310 1: Queuing delay 311 2: Link delay 312 3: Processing delay 314 Figure 4: Simplified Timing model for DetNet 316 In this simplified timing model, only three delays are defined. The 317 queuing delay in this new model includes the output delay, regulation 318 delay, and queuing delay that are defined in the DetNet timing model 319 (Figure 3). The link delay defined in this document includes the 320 link delay and the preemption delay defined in 321 [I-D.finn-detnet-bounded-latency]. The processing delay is the same 322 as defined in [I-D.finn-detnet-bounded-latency]. 324 To further simplify the model, it assumes that the link delay only 325 depends on the distance of the link. Once the DetNet path has been 326 determined, the link delay can be considered as constant. The 327 processing delay and queuing delay are variable but have their upper 328 bounds. 330 For the processing delay, there are two bounds: minimum processing 331 delay (Min-P-Delay) and maximum processing delay (Max-P-Delay). 333 o Thus, the maximum processing jitter (Max-P-Jitter) = Max-P-Delay - 334 Min-P-Delay. 336 As described in Section 2.2, both the RQ and TQ can be used for 337 absorbing processing jitter, and the upper bound of the absorbing 338 capacity is 2T. So, if the processing jitter is less than 2T, the 339 three-queue model can work. Otherwise, more buffer is needed to 340 absorb the jitter, through increasing the duration of the cycle or by 341 adding more queues. Increasing the duration of the cycles is 342 equivalent to increasing the depth of the queues (adding more buffer 343 for each queue). 345 With above, for CSQF, the delays experienced by a given packet are as 346 follows: 348 o The maximum end-to-end delay = Link delay + N * (Max-P-Delay + 349 2T); 351 o The maximum end-to-end jitter = 2T; 353 o Where N is the number of hops and T is the duration of a cycle. 355 2.4. Congestion Protection and Resource Reservation 357 Congestion protection is the key for bounded latency and zero 358 congestion loss. An essential component of DetNet is Traffic 359 Engineering (TE), so that dedicated resources can be reserved for the 360 exclusive use of DetNet flows. To avoid congestion, two or more 361 flows must be prevented from contending for the same resource. For 362 normal TE, the critical resource is bandwidth, but in the case of 363 CSQF, the critical resource is interface occupation time. Bandwidth 364 is an average value, which can generally guarantee the quality of 365 service generally, but bursts and congestion may still occur. By 366 comparison, the interface occupation time is an absolute value, which 367 can avoid packet packets conflicting for the same resource by 368 controller computation and time allocation for different flows. The 369 unit of time allocation is the cycle, and a Traffic Specification, 370 the flow transmission description, is necessary for the computation. 372 CSQF uses segment routing SIDs to carry the time allocation 373 information (the cycle), and it ensures that a node can schedule 374 different packets without conflict and forward the packets at the 375 proper time. The resource reservation is not explicitly implemented 376 by a control plane protocol, such as Resource Reservation Protocol - 377 Traffic Engineering (RSVP-TE) or Stream Reservation Protocol (SRP). 378 Rather, it is guaranteed by the SR controller, which maintains the 379 status of different flows and time occupation of all the network 380 devices in the domain. This is called the Virtual Resource 381 Reservation (VRR) in this document. 383 2.5. An Example of CSQF 385 +---+ +---+ +---+ +---+ 386 | A |----| B |----| C |----| E | 387 +-+-+ +---+ +-+-+ +---+ 388 | +---+ | 389 +------| D |------+ 390 +---+ 392 A |---X---+-------+-------+-------+-------+-------+-------| 394 B |-------+-------+---X---+-------+-------+-------+-------| 396 C |-------+-------+-------+-------+---X---+-------+-------| 398 E |-------+-------+-------+-------+-------+-------+---X---| 400 cycle1 cycle2 cycle3 cycle4 cycle5 cycle6 cycle7 402 DetNet path: A->B->C->E 403 Specified cycle list <1, 3, 5, 7> 405 Figure 5: CSQF Example 407 As showed in Figure 5, there is a DetNet path (A->B->C->E), and a 408 packet (X) is expected to be transmitted in cycle 1 at node A, in 409 cycle 3 at node B, in cycle 5 at node C and in cycle 7 at node E. A 410 cycle list <1, 3, 5, 7> is attached to the packet, and the packet 411 will be transmitted along the path as the specified cycles. 413 Given the topology as above, assume the duration of a cycle is 10us; 414 the link delays between nodes are the same (e.g., 100us); the minimum 415 processing delay at each node = 10us, the maximum processing delay at 416 each node is 20us, so the maximum processing jitter is 10us. 418 For a given packet that is transmitted along the path(A->B->C->D->E), 419 the experienced maximum end-to-end delay is: 421 (N-1) * link delay + N * (maximum processing delay + 2T) 423 = 3*100 + 4* 40 425 = 460 (us) 427 The maximum end-to-end jitter is always 2T (20us). 429 3. Segment Routing Extensions for CSQF 431 This document defines a new segment that is called a Cycle Segment, 432 which is used to identify a cycle. A Cycle Segment is a local 433 segment and is allocated from the Segment Routing Local Block 434 (SRLB)[RFC8402]. 436 A Cycle Segment has two meanings: 1) identify an interface/link, just 437 like the adjacency segment does; 2) identify a cycle of the 438 interface/link. To specify to which interface and in which cycle a 439 packet should be transmitted, it just needs to attach a Cycle Segment 440 to the packet. By attaching a list of Cycle Segments to a packet, it 441 can not only implement the explicit route of the packet that is 442 required by DetNet [I-D.ietf-detnet-architecture], but also specify 443 the sending cycle at each node along the path without maintaining 444 per-flow states at the intermediate and egress nodes. Hence, it 445 naturally supports flow aggregation, and that allows DetNet to 446 support large number of DetNet flows and scale to large networks. 448 Normally, several SR SIDs are required to be allocated for each CSQF 449 capable interface. How many SIDs are allocated depends on how many 450 cycles are used. Given a three-queue model and a 1:1 cycle to queue 451 mapping is used, three SIDs will be allocated for each CSQF capable 452 interface. For example, given node A, SR-MPLS SIDs 1001, 1002, and 453 1003 are allocated to one of its interfaces. SID 1001 identifies 454 cycle 1, SID 1002 identifies cycle 2, SID 1003 identifies cycle 3. 456 The SR [RFC8402] can be instantiated on various data planes. There 457 are two data-plane instantiations of SR: SR over MPLS (SR-MPLS) and 458 SR over IPv6 (SRv6). Both SR-MPLS and SRv6 SIDs can be used for CSQF 459 cycle identification. The mapping (IGP extensions) between a cycle 460 and a SID will be defined in a separate document. 462 4. IANA Considerations 464 This document makes no request of IANA. 466 Note to RFC Editor: this section may be removed on publication as an 467 RFC. 469 5. Security Considerations 471 6. Acknowledgements 473 The authors would like to thank Andrew G. Malis, Norman Finn for his 474 review, suggestion and comments to this document. 476 7. References 478 7.1. Normative References 480 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 481 Requirement Levels", BCP 14, RFC 2119, 482 DOI 10.17487/RFC2119, March 1997, 483 . 485 7.2. Informative References 487 [I-D.finn-detnet-bounded-latency] 488 Finn, N., Boudec, J., Mohammadpour, E., Varga, B., and J. 489 Farkas, "DetNet Bounded Latency", draft-finn-detnet- 490 bounded-latency-01 (work in progress), July 2018. 492 [I-D.geng-detnet-conf-yang] 493 Geng, X., Chen, M., Li, Z., and R. Rahman, "DetNet 494 Configuration YANG Model", draft-geng-detnet-conf-yang-05 495 (work in progress), October 2018. 497 [I-D.geng-detnet-info-distribution] 498 Geng, X., Chen, M., and Z. Li, "IGP-TE Extensions for 499 DetNet Information Distribution", draft-geng-detnet-info- 500 distribution-02 (work in progress), March 2018. 502 [I-D.ietf-detnet-architecture] 503 Finn, N., Thubert, P., Varga, B., and J. Farkas, 504 "Deterministic Networking Architecture", draft-ietf- 505 detnet-architecture-08 (work in progress), September 2018. 507 [IEEE802.1Qch] 508 "IEEE, "Cyclic Queuing and Forwarding (IEEE Draft 509 P802.1Qch)", 2017, 510 .", 511 2016. 513 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 514 Decraene, B., Litkowski, S., and R. Shakir, "Segment 515 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 516 July 2018, . 518 Authors' Addresses 520 Mach(Guoyi) Chen 521 Huawei 523 Email: mach.chen@huawei.com 525 Xuesong Geng 526 Huawei 528 Email: gengxuesong@huawei.com 530 Zhenqiang Li 531 China Mobile 533 Email: lizhenqiang@chinamobile.com