idnits 2.17.1 draft-geng-detnet-dp-sol-srv6-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 date (March 11, 2019) is 1874 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- == Missing Reference: 'SL' is mentioned on line 522, but not defined -- Looks like a reference, but probably isn't: '2' on line 142 -- Looks like a reference, but probably isn't: '1' on line 142 -- Looks like a reference, but probably isn't: '0' on line 592 == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-16 == Outdated reference: A later version (-13) exists of draft-ietf-detnet-architecture-11 == Outdated reference: A later version (-02) exists of draft-ietf-detnet-dp-sol-mpls-01 Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group X. Geng 3 Internet-Draft M. Mach 4 Intended status: Experimental Huawei 5 Expires: September 12, 2019 March 11, 2019 7 DetNet SRv6 Data Plane Encapsulation 8 draft-geng-detnet-dp-sol-srv6-00 10 Abstract 12 This document specifies Deterministic Networking data plane operation 13 for SRv6 encapsulated user data. 15 Requirements Language 17 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 18 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 19 document are to be interpreted as described in RFC 2119 [RFC2119]. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on September 12, 2019. 38 Copyright Notice 40 Copyright (c) 2019 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (https://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 2. Terminology and Conventions . . . . . . . . . . . . . . . . . 3 57 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 58 2.2. Conventions . . . . . . . . . . . . . . . . . . . . . . . 3 59 3. SRv6 DetNet Data Plane Overview . . . . . . . . . . . . . . . 4 60 3.1. SRv6 DetNet Data Plane Layers . . . . . . . . . . . . . . 4 61 3.2. SRv6 DetNet Data Plane Scenarios . . . . . . . . . . . . 4 62 4. SRv6 DetNet Data Plane Solution Considerations . . . . . . . 6 63 5. SRv6 DetNet Data Plane Solution for Service Sub-layer . . . . 7 64 5.1. TLV Based SRv6 Data Plane Solution . . . . . . . . . . . 7 65 5.1.1. Encapsulation . . . . . . . . . . . . . . . . . . . . 7 66 5.1.2. Functions . . . . . . . . . . . . . . . . . . . . . . 9 67 5.2. SID Based SRv6 Data Plane Solution . . . . . . . . . . . 10 68 5.2.1. Encapsulation . . . . . . . . . . . . . . . . . . . . 10 69 5.2.2. Functions . . . . . . . . . . . . . . . . . . . . . . 11 70 5.3. DetNet SID Based SRv6 Data Plane Solution . . . . . . . . 12 71 5.3.1. Encapulation . . . . . . . . . . . . . . . . . . . . 12 72 5.3.2. Functions . . . . . . . . . . . . . . . . . . . . . . 13 73 5.4. DetNet SRH Based SRv6 Data Plane Solution . . . . . . . . 13 74 5.4.1. Encapsulation . . . . . . . . . . . . . . . . . . . . 13 75 5.4.2. Functions . . . . . . . . . . . . . . . . . . . . . . 14 76 5.5. MPLS Based SRv6 Data Plane Solution . . . . . . . . . . . 14 77 6. SRv6 DetNet Data Plane Solution for Transport Sub-layer . . . 15 78 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 79 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 80 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 81 10. Normative References . . . . . . . . . . . . . . . . . . . . 15 82 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 84 1. Introduction 86 Deterministic Networking(DetNet) provides a capability to carry 87 specified data flows with extremely low data loss rates and bounded 88 latency within a network domain. DetNet is enabled by a group of 89 technologies, such as resource allocation, service protection and 90 explicit routes.([I-D.ietf-detnet-architecture]) 92 Segment Routing(SR) leverages the source routing paradigm. A ingress 93 node steers a packet through an ordered list of instructions, called 94 "segments". SR can be applied over IPv6 data plane using Routing 95 Extension Header(SRH). Besides routing, the segment of SRv6 can 96 indicate functions which are executed locally in the node where they 97 are defined. SRv6 network programming makes it convenient to add 98 sophisticated operations in the network. ([RFC8402]) 100 This document describes how to implement DetNet with SRv6. It can 101 provide : 1. Source routing, which can steer the DetNet flows go 102 through the network according to an explicit route with allocated 103 resource; 2. Network programming, which can give packet instructions 104 in some special nodes(even all the nodes) along the path to guarantee 105 service protection and congestion protection. DetNet SRv6 106 encapsulation and new SRv6 functions for DetNet are defined in this 107 document. 109 Control plane and OAM are not in the scope of this document. 111 2. Terminology and Conventions 113 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 114 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 115 document are to be interpreted as described in [RFC2119]. 117 2.1. Terminology 119 Terminologies for DetNet go along with the definition in 120 [I-D.ietf-detnet-architecture]. Other terminologies are defined as 121 follows: 123 o NH: The IPv6 next-header field. 125 o SID: A Segment Identifier which represents a specific segment in a 126 segment routing domain([RFC8402]). 128 o SRH: The Segment Routing Header 129 ([I-D.ietf-6man-segment-routing-header]). 131 2.2. Conventions 133 Conventions in the document are defined as follows: 135 o NH=SRH means that NH is 43 with routing type 4. 137 o A SID list is represented as where S1 is the first 138 SID to visit, S2 is the second SID to visit and S3 is the last SID 139 to visit along the SR path. 141 o SRH[SL] represents the SID pointed by the SL field in the first 142 SRH. In our example, SRH[2] represents S1, SRH[1] represents S2 143 and SRH[0] represents S3. 145 o (SA,DA) (S3, S2, S1; SL) represents an IPv6 packet with: 147 IPv6 header with source and destination addresses SA and DA 148 respectively, and next-header SRH, with SID list 149 with SegmentsLeft = SL 151 The payload of the packet is not represented 153 (S3, S2, S1; SL) represents the same SID list as , 154 but encoded in the SRH format where the rightmost SID in the 155 SRH is the first SID and the leftmost SID in the SRH is the 156 last SID 158 3. SRv6 DetNet Data Plane Overview 160 3.1. SRv6 DetNet Data Plane Layers 162 [I-D.ietf-detnet-architecture]decomposes the DetNet data plane into 163 two sub-layers: service sub-layer and transport sub-layer. Different 164 from DetNet MPLS data plane solution, which uses DetNet Control 165 Word(d-CW) and S-Label to support service sub-layer and uses T-Label 166 to support transport sub-layer, no explicit sub-layer division can be 167 found in SRv6 data plane. A classical SRv6 DetNet data plane 168 solution is showed in the picture below: 170 +-------------------+ 171 | Outer Ipv6 Header | 172 +-------------------+ 173 | SRH | 174 +-------------------+ +-------------------+ 175 | Ipv6 Header | ----> | Ipv6 Header | 176 +-------------------+ +-------------------+ 178 The outer IPv6 Header with SRH is used for carrying DetNet flows. 179 Traffic Engineering is programmed in the segment list of SRH, and 180 other functions and arguments for service protection (packet 181 replication, elimination and ordering) and congestion control (packet 182 queuing and forwarding) are also defined in SRH. 184 3.2. SRv6 DetNet Data Plane Scenarios 185 | | 186 ----IPv6--->|<---------------SRv6 DetNet------------->|<----IPv6--- 187 | | 188 | +------+T2+----+ | 189 +---+ +---+ +-+-+ +-+-+ +---+ +---+ 190 | E1+----| In|--+T1+--+R1 | |R2 |--+T4+--| Eg+----+ E2| 191 +---+ +---+ +-+-+ +-+-+ +---+ +---+ 192 +-----+T3+-----+ 194 The figure above shows that an IPv6 flow is sent our from the end 195 station: E1. The packet of the flow is encapsulated as a DetNet SRv6 196 packet in the Ingress(In) and transported through an SRv6 DetNet 197 domain. In the Egress(Eg), the upper IPv6 header with SRH of the 198 packet is popped, and the packet is transmitted to the 199 destination(E2). 201 The DetNet packet processing is as follows: 203 Ingress: 205 Insert SRv6 Policy, which can steer the packet from Ingress to 206 Relay Node 1 208 Flow Identification and Sequence Number are carried in SRH 210 Relay Node 1(Replication Node): 212 Replicate the payload and IPv6 Header with SRH 214 Binding two different SRv6 Policy respectively to the original 215 packet and the replicated packet, which can steer the packet from 216 Relay Node 1 to Relay Node 2 through two tunnels 218 Relay Node 2(Elimination Node): 220 Eliminate the redundant packets 222 Binding a new SRv6 Policy to the survival packet, which can steer 223 the packet from Relay Node 2 to Egress. 225 Egress: 227 Decapsulate the upper Ipv6 header 229 Send the packet to the End Station 2 231 The DetNet packet encapsulation is as follows: 233 End Station1 out : (E1,E2) 235 Ingress out : (In, T1)(R1,T1,SL=2)(E1,E2) 237 Transit Node1 out : (In, R1)(R1,T1,SL=1)(E1,E2) 239 Relay Node1 out : (R2, R1)(R2,T2,SL=2)(E1,E2)/(R2, 240 R1)(R2,T3,SL=2)(E1,E2) 242 Transit Node2 out : (R2, R1)(R2,T2,SL=1)(E1,E2) 244 Transit Node3 out : (R2, R1)(R2,T3,SL=1)(E1,E2) 246 Relay Node2 out : (Eg, R2)(Eg,T4,SL=2)(E1,E2) 248 Transit Node4 out : (Eg, R2)(Eg,T4,SL=1)(E1,E2) 250 Egress out : (E1,E2) 252 4. SRv6 DetNet Data Plane Solution Considerations 254 To carry DetNet over SRv6, the following elements are required: 256 1. A method of identifying the SRv6 payload type; 258 2. A suitable explicit route to deliver the DetNet flow ; 260 3. A method of indicating packet processing, such as PREOF; 262 4. A method of identifying the DetNet flow; 264 5. A method of carrying DetNet sequence number; 266 6. A method of carrying queuing and forwarding indication to do 267 congestion protection; 269 In this design, DetNet flows are encapsulated with SRH in the Ingress 270 Node. The SR policy in the SRH steers the DetNet flow along a 271 selected path. The explicit route allocated to a DetNet flow, which 272 protect it from temporary interruptions caused by the convergence of 273 routing, is encoded within the SID list of a SR policy. The network 274 device inside the DetNet domain forwards the packet according to IPv6 275 Destination Address(DA), and the IPv6 DA is updated with the SID 276 list. 278 With SRv6 network programming, the SID list can also give instruments 279 representing a function to be called at the node in the DetNet 280 domain. Therefore DetNet specific functions defined in 282 [I-D.ietf-detnet-architecture], corresponding to local packet 283 processing in the network, can also be implemented by SRv6. New 284 functions associated with SIDs for DetNet are defined in this 285 document. 287 This document describes how DetNet flows are encapsulated/identified, 288 and how functions of Packet Replication/Elimination/Ordering are 289 implemented in an SRv6 domain. Congestion protection is also in the 290 scope of this document. 292 Editor: This version only covers the functions of service protection 293 and the congestion protection considerations will be added in the 294 following versions. 296 5. SRv6 DetNet Data Plane Solution for Service Sub-layer 298 This section defines options of SRv6 data plane solution to support 299 DetNet Service Sub-layer. 301 5.1. TLV Based SRv6 Data Plane Solution 303 5.1.1. Encapsulation 305 An SRv6 Segment is a 128-bit value. SID is used as a shorter 306 reference for "SRv6 Segment". SRv6 SID can also be represented as 307 LOC:FUNCT, where LOC, abbreviated for "LOCATION", directs the 308 explicit route, FUNCT, abbreviated for "FUNCTION", directs the packet 309 processing in the local node 310 ([I-D.filsfils-spring-srv6-network-programming]). 312 The SRH for DetNet in the outer IPv6 header is showed as follows: 314 0 1 2 3 315 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 316 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 317 | Next Header | Hdr Ext Len | Routing Type | Segment Left | 318 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 319 | Last Entry | Flags | Tag | 320 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 321 | | 322 | Location & Function | 323 | (Segment List[0] for relay node or edge node) | 324 | | 325 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 326 | ... | 327 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 328 | | 329 | Segment List[n] | 330 | | 331 | | 332 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 333 | Optional TLVs | 334 | ... | 335 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 337 Two new TLVs are defined to support DetNet service protection. 338 DetNet Flow Identification TLV is used to uniquely identify a DetNet 339 flow in an SRv6 DetNet node. DetNet sequence number is used to dis 340 crime packets in the same DetNet flow. They are defined as follows: 342 0 1 2 3 343 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 344 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 345 | Type | Length | RESERVED | 346 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 347 | RESERVED | Flow Identification | 348 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 350 where: 352 o Type: 8bits, to be assigned by IANA. 354 o Length: 8. 356 o RESERVED: 28 bits, MUST be 0 on transmission and ignored on 357 receipt. 359 o Flow Identification: 20 bits, which is used for identifying DetNet 360 flow. 362 0 1 2 3 363 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 364 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 365 | Type | Length | RESERVED | 366 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 367 |RESERVE| Sequence Number | 368 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 370 where: 372 o Type: 8 bits, to be assigned by IANA. 374 o Length: 8. 376 o RESERVED: 20 bits. MUST be 0 on transmission and ignored on 377 receipt. 379 o Sequence Number: 28 bits, which is used for indicating sequence 380 number of a DetNet flow. 382 5.1.2. Functions 384 New SID functions are defined as follows: 386 5.1.2.1. End. B.Replicatioreserve the value of argument field(Inherited 387 argument)of segment[0] of SRH n: Packet Replication Function 389 1. IF NH=SRH & SL>0 THEN 391 2. do not decrement SL nor update the IPv6 DA with SRH[SL] 393 3. reserve the value of DetNet TLVs of SRH 395 4. add the DetNet TLVs into SRH'1 and SRH'2 397 5. pop the SRH 399 6. replicate the packet into two packets: packet'1, packet'2 401 7. insert SRH'1 to packet'1 403 8. insert SRH'2 to packet'2 405 9. set the IPv6 DA of packet'1 to the first segment of the SRv6 406 Policy of SRH'1 408 10. set the IPv6 DA of packet'2 to the first segment of the SRv6 409 Policy of SRH'2 411 11. ELSE 413 12. drop the packet 415 5.1.2.2. End. B. Elimination: Packet Elimination Function 417 1. IF NH=SRH & SL>0 & "the packet is not a redundant packet" THEN 419 2. do not decrement SL nor update the IPv6 DA with SRH[SL] 421 3. reserve the value of DetNet TLVs of SRH 423 4. add the DetNet TLVs into SRH' 425 5. pop the SRH 427 6. insert SRH' 429 7. set the IPv6 DA to the first segment of the SRv6 Policy 431 8. ELSE 433 9. drop the packet 435 5.2. SID Based SRv6 Data Plane Solution 437 5.2.1. Encapsulation 439 SRv6 SID can be represented as LOC:FUNCT:ARG::, where LOC, 440 abbreviated for "LOCATION", directs the explicit route, FUNCT, 441 abbreviated for "FUNCTION", directs the packet processing in the 442 local node, and ARG, abbreviated for "ARGUMENTS", provides the 443 additional arguments for the functions. New SID functions for DetNet 444 is defined in section 5.2.2. 446 The SRH for DetNet in the outer IPv6 header is showed as follows: 448 0 1 2 3 449 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 450 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 451 | Next Header | Hdr Ext Len | Routing Type | Segment Left | 452 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 453 | Last Entry | Flags | Tag | 454 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 455 | Location & Function | 456 | (Segment List[0] for relay node or edge node) | 457 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 458 | Location & Function | Flow Identification | 459 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 460 |Flow ID| Sequence Number | 461 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 462 | ... | 463 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 464 | | 465 | Segment List[n] | 466 | | 467 | | 468 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 469 | Optional TLVS | 470 | ... | 471 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 473 where: 475 o LOCATION&FUNCTION: the 80 most significant bits that are used for 476 routing; 478 o FLOW IDENTIFICATION: 20 bits, which is used for DetNet flow 479 identification in the DetNet relay node; 481 o SEQUENCE NUMBER : 28 bits, which are used for dis crime packets in 482 the same DetNet flow; 484 5.2.2. Functions 486 New SID functions are defined as follows: 488 5.2.2.1. End. B.Replication: Packet Replication Function 490 1. IF NH=SRH & SL>0 THEN 492 2. do not decrement SL nor update the IPv6 DA with SRH[SL] 494 3. reserve the value of argument field(Inherited argument)of 495 segment[0] of SRH 497 4. write the inherited arguments into the argument field of 498 segment[0] of SRH'1 and SRH'2 500 5. pop the SRH 502 6. replicate the packet into two packets: packet'1, packet'2 504 7. insert SRH'1 to packet'1 506 8. insert SRH'2 to packet'2 508 9. set the IPv6 DA of packet'1 to the first segment of the SRv6 509 Policy of SRH'1 511 10. set the IPv6 DA of packet'2 to the first segment of the SRv6 512 Policy of SRH'2 514 11. ELSE 516 12. drop the packet 518 5.2.2.2. End. B. Elimination: Packet Elimination Function 520 1. IF NH=SRH & SL>0 & "the packet is not a redundant packet" THEN 522 2. do not decrement SL nor update the IPv6 DA with SRH[SL] 524 3. write the inherited arguments into the argument field of 525 segment[0] of SRH' 527 4. pop the SRH 529 5. insert SRH' 531 6. set the IPv6 DA to the first segment of the SRv6 Policy 533 7. ELSE 535 8. drop the packet 537 5.3. DetNet SID Based SRv6 Data Plane Solution 539 5.3.1. Encapulation 541 A non-forwarding DetNet SID is defined to carry Flow Identification 542 and Sequence Number. 544 0 1 2 3 545 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 546 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 547 | Next Header | Hdr Ext Len | Routing Type | Segment Left | 548 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 549 | Last Entry | Flags | Tag | 550 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 551 | | 552 | Location & Function | 553 | (Segment List[0] for relay node or edge node) | 554 | | 555 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 556 | ... | 557 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 558 | | 559 | Segment List[n] | 560 | | 561 | | 562 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 563 | | 564 | DetNet SID | 565 | | 566 | | 567 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 568 | Optional TLVs | 569 | ... | 570 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 572 5.3.2. Functions 574 TBD 576 5.4. DetNet SRH Based SRv6 Data Plane Solution 578 5.4.1. Encapsulation 580 A New SRH is defined to carry Flow Identification and Sequence 581 Number. 583 0 1 2 3 584 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 585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 586 | Next Header | Hdr Ext Len | Routing Type | Segment Left | 587 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 588 | Last Entry | Flags | Tag | 589 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 590 | | 591 | Location & Function | 592 | (Segment List[0] for relay node or edge node) | 593 | | 594 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 595 | ... | 596 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 597 | | 598 | Segment List[n] | 599 | | 600 | | 601 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 602 | Optional TLVs | 603 | ... | 604 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 605 | Next Header | Hdr Ext Len | Routing Type | Segment Left | 606 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 607 | Last Entry | Flags | Tag | 608 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 609 | | 610 | DetNet SID | 611 | | 612 | | 613 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 614 | Optional TLVs | 615 | ... | 616 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 618 5.4.2. Functions 620 TBD 622 5.5. MPLS Based SRv6 Data Plane Solution 624 SRH can be part of IPv6 Header in the picture below, and no protocol 625 extensions are needed in SRH. The structure keeps the same as the 626 definition in [I-D.ietf-detnet-dp-sol-mpls] : 628 +---------------------------------+ 629 | | 630 | DetNet Flow | 631 | Payload Packet | 632 | | 633 +---------------------------------+ <--\ 634 | DetNet Control Word | | 635 +---------------------------------+ +--> DetNet data plane 636 | S-Label | | MPLS encapsulation 637 +---------------------------------+ <--/ 638 | UDP Header | 639 +---------------------------------+ 640 | IPv6 Header |-------> SRH included 641 +---------------------------------+ 642 | Data-Link | 643 +---------------------------------+ 644 | Physical | 645 +---------------------------------+ 647 6. SRv6 DetNet Data Plane Solution for Transport Sub-layer 649 TBD 651 7. IANA Considerations 653 This document makes no request of IANA. 655 Note to RFC Editor: this section may be removed on publication as an 656 RFC. 658 8. Security Considerations 660 TBD 662 9. Acknowledgements 664 Thank you for valuable comments from James Guichard and Andrew Mails. 666 10. Normative References 668 [I-D.filsfils-spring-srv6-network-programming] 669 Filsfils, C., Camarillo, P., Leddy, J., 670 daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6 671 Network Programming", draft-filsfils-spring-srv6-network- 672 programming-07 (work in progress), February 2019. 674 [I-D.ietf-6man-segment-routing-header] 675 Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and 676 d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header 677 (SRH)", draft-ietf-6man-segment-routing-header-16 (work in 678 progress), February 2019. 680 [I-D.ietf-detnet-architecture] 681 Finn, N., Thubert, P., Varga, B., and J. Farkas, 682 "Deterministic Networking Architecture", draft-ietf- 683 detnet-architecture-11 (work in progress), February 2019. 685 [I-D.ietf-detnet-dp-sol-mpls] 686 Korhonen, J. and B. Varga, "DetNet MPLS Data Plane 687 Encapsulation", draft-ietf-detnet-dp-sol-mpls-01 (work in 688 progress), October 2018. 690 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 691 Requirement Levels", BCP 14, RFC 2119, 692 DOI 10.17487/RFC2119, March 1997, 693 . 695 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 696 Decraene, B., Litkowski, S., and R. Shakir, "Segment 697 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 698 July 2018, . 700 Authors' Addresses 702 Xuesong Geng 703 Huawei 705 Email: gengxuesong@huawei.com 707 Mach(Guoyi) Chen 708 Huawei 710 Email: mach.chen@huawei.com