idnits 2.17.1 draft-ietf-detnet-yang-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 : ---------------------------------------------------------------------------- ** There are 33 instances of too long lines in the document, the longest one being 14 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 500 has weird spacing: '...e-label uin...' == Line 507 has weird spacing: '...address ine...' == Line 514 has weird spacing: '...address ine...' == Line 522 has weird spacing: '...oper-id uin...' == Line 736 has weird spacing: '...e-label uin...' == (11 more instances...) -- The document date (October 22, 2018) is 1985 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) == Unused Reference: 'RFC6991' is defined on line 2226, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-detnet-use-cases' is defined on line 2241, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-teas-yang-te' is defined on line 2245, but no explicit reference was found in the text == Unused Reference: 'I-D.thubert-tsvwg-detnet-transport' is defined on line 2257, but no explicit reference was found in the text == Unused Reference: 'I-D.varga-detnet-service-model' is defined on line 2262, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1CB' is defined on line 2267, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Q-2014' is defined on line 2273, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qbu' is defined on line 2278, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qch' is defined on line 2293, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qci' is defined on line 2299, but no explicit reference was found in the text == Unused Reference: 'RFC4875' is defined on line 2310, but no explicit reference was found in the text == Unused Reference: 'RFC8342' is defined on line 2317, but no explicit reference was found in the text == Outdated reference: A later version (-04) exists of draft-finn-detnet-bounded-latency-01 ** Downref: Normative reference to an Informational draft: draft-finn-detnet-bounded-latency (ref. 'I-D.finn-detnet-bounded-latency') == Outdated reference: A later version (-13) exists of draft-ietf-detnet-architecture-08 == Outdated reference: A later version (-02) exists of draft-ietf-detnet-dp-sol-ip-00 == Outdated reference: A later version (-02) exists of draft-ietf-detnet-dp-sol-mpls-00 == Outdated reference: A later version (-14) exists of draft-ietf-detnet-flow-information-model-01 ** Downref: Normative reference to an Informational draft: draft-ietf-detnet-flow-information-model (ref. 'I-D.ietf-detnet-flow-information-model') == Outdated reference: A later version (-04) exists of draft-geng-detnet-info-distribution-02 == Outdated reference: A later version (-20) exists of draft-ietf-detnet-use-cases-19 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-16 == Outdated reference: A later version (-22) exists of draft-ietf-teas-yang-te-topo-18 Summary: 3 errors (**), 0 flaws (~~), 28 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group X. Geng 3 Internet-Draft M. Chen 4 Intended status: Standards Track Huawei 5 Expires: April 25, 2019 Z. Li 6 China Mobile 7 R. Rahman 8 Cisco Systems 9 October 22, 2018 11 DetNet Configuration YANG Model 12 draft-ietf-detnet-yang-00 14 Abstract 16 This document defines a YANG data model for Deterministic Networking 17 (DetNet), which includes the DetNet topology YANG module, DetNet flow 18 configuration YANG module and DetNet Transport QoS YANG Module. 20 The YANG modules in this document conform to the Network Management 21 Datastore Architecture (NMDA). 23 Requirements Language 25 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 26 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 27 document are to be interpreted as described in RFC 2119 [RFC2119]. 29 Status of This Memo 31 This Internet-Draft is submitted in full conformance with the 32 provisions of BCP 78 and BCP 79. 34 Internet-Drafts are working documents of the Internet Engineering 35 Task Force (IETF). Note that other groups may also distribute 36 working documents as Internet-Drafts. The list of current Internet- 37 Drafts is at https://datatracker.ietf.org/drafts/current/. 39 Internet-Drafts are draft documents valid for a maximum of six months 40 and may be updated, replaced, or obsoleted by other documents at any 41 time. It is inappropriate to use Internet-Drafts as reference 42 material or to cite them other than as "work in progress." 44 This Internet-Draft will expire on April 25, 2019. 46 Copyright Notice 48 Copyright (c) 2018 IETF Trust and the persons identified as the 49 document authors. All rights reserved. 51 This document is subject to BCP 78 and the IETF Trust's Legal 52 Provisions Relating to IETF Documents 53 (https://trustee.ietf.org/license-info) in effect on the date of 54 publication of this document. Please review these documents 55 carefully, as they describe your rights and restrictions with respect 56 to this document. Code Components extracted from this document must 57 include Simplified BSD License text as described in Section 4.e of 58 the Trust Legal Provisions and are provided without warranty as 59 described in the Simplified BSD License. 61 Table of Contents 63 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 64 2. Terminologies . . . . . . . . . . . . . . . . . . . . . . . . 4 65 3. DetNet Topology Model . . . . . . . . . . . . . . . . . . . . 4 66 3.1. DetNet Node Attributes . . . . . . . . . . . . . . . . . 5 67 3.2. DetNet Link Attributes . . . . . . . . . . . . . . . . . 6 68 3.3. DetNet Link Terminate Point Attributes . . . . . . . . . 7 69 4. DetNet Flow Configuration Model . . . . . . . . . . . . . . . 9 70 4.1. DetNet Service Proxy Configuration Attributes . . . . . . 9 71 4.2. DetNet Service Layer Configuration Attributes . . . . . . 10 72 4.3. DetNet Transport Layer Configuration Attributes . . . . . 12 73 4.4. DetNet Flow Configuration Example . . . . . . . . . . . . 13 74 5. DetNet Transport QoS Model . . . . . . . . . . . . . . . . . 14 75 6. DetNet Yang Structure . . . . . . . . . . . . . . . . . . . . 15 76 6.1. DetNet Topology Model Tree Diagram . . . . . . . . . . . 15 77 6.2. DetNet Flow Configuration Model Tree Diagram . . . . . . 17 78 7. DetNet YANG Model . . . . . . . . . . . . . . . . . . . . . . 22 79 7.1. DetNet Topology YANG Model . . . . . . . . . . . . . . . 22 80 7.2. DetNet Flow Configuration YANG Model . . . . . . . . . . 28 81 8. DetNet Configuration Model Classification . . . . . . . . . . 45 82 8.1. Fully Distributed Configuration Model . . . . . . . . . . 45 83 8.2. Fully Centralized Configuration Model . . . . . . . . . . 46 84 8.3. Hybrid Configuration Model . . . . . . . . . . . . . . . 46 85 9. Open issues . . . . . . . . . . . . . . . . . . . . . . . . . 47 86 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 48 87 11. Security Considerations . . . . . . . . . . . . . . . . . . . 48 88 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 48 89 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 48 90 13.1. Normative References . . . . . . . . . . . . . . . . . . 48 91 13.2. Informative References . . . . . . . . . . . . . . . . . 49 92 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 51 94 1. Introduction 96 Deterministic Networking (DetNet) [I-D.ietf-detnet-architecture] is 97 defined to provide high-quality network service with extremely low 98 packet loss rate, bounded low latency and jitter. 100 DetNet flow information is defined 101 in[I-D.ietf-detnet-flow-information-model], and the DetNet models are 102 categorized as: 104 o Flow models: describe characteristics of data flows. These models 105 describe in detail all relevant aspects of a flow that are needed 106 to support the flow properly by the network between the source and 107 the destination(s). 109 o Service models: describe characteristics of services being 110 provided for data flows over a network. These models can be 111 treated as a network operator independent information model. 113 o Configuration models: describe in detail the settings required on 114 network nodes to serve a data flow properly. Service and flow 115 information models are used between the user and the network 116 operator. Configuration information models are used between the 117 management/control plane entity of the network and the network 118 nodes. 120 They are shown in the Figure 1. 122 User Network Operator 123 flow/service 124 +---+ model +---+ 125 | | <---------------> | X | management/control 126 +---+ +-+-+ plane entity 127 ^ 128 | configuration 129 | model 130 +------------+ 131 v | | 132 +-+ | v network 133 +-+ v +-+ nodes 134 +-+ +-+ 135 +-+ 137 Figure 1. Three Information Models 139 This document defines DetNet configuration YANG [RFC7950] 140 [RFC6991]data models, which include: 142 o DetNet topology model 144 DetNet topology model is designed for DetNet topology/ 145 capability discovery and device configuration, it is an 146 augmentation of the ietf-te-toplogy model 147 [I-D.ietf-teas-yang-te-topo]. The detail of DetNet topology 148 model is defined in Section 3. 150 o DetNet flow configuration model 152 DetNet flow model is designed for DetNet flow path 153 configuration and flow status reporting. The detail of DetNet 154 flow configuration model is defined in Section 4. 156 o DetNet transport QoS model 158 DetNet transport QoS model is designed for QoS attributes 159 configuration of transport tunnels to achieve end-to-end 160 bounded latency and zero congestion loss. The detail of DetNet 161 transport QoS model is defined in Section 5. 163 2. Terminologies 165 This documents uses the terminologies defined in 166 [I-D.ietf-detnet-architecture]. 168 3. DetNet Topology Model 170 A DetNet topology is composed of a set of DetNet nodes and DetNet 171 links. DetNet nodes represent the network devices that can transport 172 DetNet services, which are connected by DetNet links. A DetNet Link 173 Terminate Point(LTP) is the connection point between a DetNet node 174 and a DetNet link, which represents the port or interface of a 175 network node. The concept of DetNet node/link/LTP are similar as TE 176 node/link/LTP that are defined in [I-D.ietf-teas-yang-te-topo]. 178 Figure 2 shows a simple DetNet topology: A is a DetNet node, B is 179 DetNet a LTP, and C is a DetNet link. 181 +---+ +---+ 182 | A |o(B)--(C)--| | 183 +---+ +---+ 185 Figure 2. An example of DetNet Topology 187 DetNet topology model (ietf-detnet-topology) augments ietf-te- 188 topology model [I-D.ietf-teas-yang-te-topo] to cover the following 189 attributes, which are necessary for supporting DetNet congestion 190 protection and service protection functions: 192 o Bandwidth related attributes (e.g., bandwidth reserved for 193 DetNet); 195 o Buffer/queue management related attributes (e.g., queue management 196 algorithm, etc.); 198 o PREOF (Packet Replication, Ordering and Elimination Function) 199 capabilities and parameters (e.g., maximum out-of-order packets, 200 etc.); 202 o Delay related attributes (e.g., node processing delay, queuing 203 delay, link delay, etc.); 205 The above attributes are categorized into three types: node 206 attributes, link attributes and LTP attributes. The detailed 207 descriptions and model definitions are specified in section 4.1, 4.2 208 and 4.3, respectively. 210 3.1. DetNet Node Attributes 212 Section 4.3 of [I-D.finn-detnet-bounded-latency] gives a DetNet time 213 model, which defines that the delay within a node includes five 214 parts: processing delay, regulation delay, queuing delay, output 215 delay and preemption delay. The processing delay, queuing delay and 216 regulation delay are variable in general, but for DetNet, these 217 delays should be bounded, which is the basic assumption of 218 deterministic networking. These bounded delay parameters are 219 necessary to perform DetNet path computation. Among this delay 220 attributes, processing delay and regulation delay are node relevant, 221 and the queuing delay is LTP relevant. In addition, in order to 222 simplify the model and implementation, the processing delay and 223 regulation delay are combined as processing delay, and the preemption 224 delay is included in queuing delay. [Editor notes: more comments and 225 inputs need here]. 227 For the DetNet node attributes, the following variables are 228 introduced: 230 o Maximum DetNet packet processing delay 232 o Minimum DetNet packet processing delay 234 o Maximum DetNet packet processing delay variation 236 The modeling structure is shown below: 238 augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes: 239 +--rw detnet-node-attributes 240 +--rw minimum-packet-processing-delay? uint32 241 +--rw maximum-packet-processing-delay? uint32 242 +--rw maximum-packet-processing-delay-variation? uint32 244 3.2. DetNet Link Attributes 246 DetNet link attributes include link delay and link bandwidth for 247 DetNet. This document introduces the following link related 248 attributes: 250 o Link delay: link delay is a constant that only depends on the 251 physical connection. It has been defined in ietf-te-topology 252 [I-D.ietf-teas-yang-te-topo], and DetNet can reuse it directly. 254 o Maximum DetNet reservable bandwidth: the maximum reservable 255 bandwidth that is allocated to DetNet. For a 10G link, if 50% of 256 the bandwidth is allocated to DetNet, then the maximum DetNet 257 reservable bandwidth is 5G. That means there are 5G bandwidth 258 that can be used by DetNet flows. 260 o Reserved DetNet bandwidth: the bandwidth that has been reserved 261 for DetNet flows. 263 o Available DetNet bandwidth: the bandwidth that is available for 264 new DetNet flows. 266 The DetNet link attributes are modeled within a link, and the YANG 267 module structure is shown below: 269 augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes: 270 +--rw detnet-link-attributes 271 +--rw maximum-reservable-bandwidth 272 | +--rw te-bandwidth 273 | +--rw (technology)? 274 | +--:(generic) 275 | +--rw generic? te-bandwidth 276 +--rw reserved-detnet-bandwidth 277 | +--rw te-bandwidth 278 | +--rw (technology)? 279 | +--:(generic) 280 | +--rw generic? te-bandwidth 281 +--rw available-detnet-bandwidth 282 +--rw te-bandwidth 283 +--rw (technology)? 284 +--:(generic) 285 +--rw generic? te-bandwidth 287 3.3. DetNet Link Terminate Point Attributes 289 The concept of LTP is introduced in [I-D.ietf-teas-yang-te-topo], and 290 this section introduces attributes for DetNet LTP. 292 PREOF (Packet Replication/Elimination/Ordering Function) is for 293 DetNet service protection, which includes : 295 o In-order delivery function: defined in Section 3.2.2.1 of 296 [I-D.ietf-detnet-architecture] 298 o Packet replication function: defined in Section 3.2.2.2 of 299 [I-D.ietf-detnet-architecture] 301 o Packet elimination function: defined in Section 3.2.2.3 of 302 [I-D.ietf-detnet-architecture] 304 The above functions are modeled as a set of capabilities and relevant 305 parameters, which are listed below: 307 o in-order-capability: indicates whether a LTP has the in-order 308 delivery capability. 310 o maximum-number-of-out-of-order-packets: indicates the maximum 311 number of out-of-order packets that an LTP can support, it depends 312 on the reserved buffer size for packet reordering. 314 o replication-capability: indicates whether a LTP has the packet 315 replication capability. 317 o elimination-capability: indicates whether a LTP has the packet 318 elimination capability. 320 In addition, DetNet LTP also includes queuing management algorithms 321 and queuing delay attributes. In the context of DetNet, the delay of 322 queuing is bounded, and the bound depends on what queuing management 323 method is used and how many buffers are allocated. More information 324 can be found in [I-D.finn-detnet-bounded-latency]. Queuing related 325 attributes are listed below: 327 o queuing-algorithm-capabilities: it is modeled as a list that 328 includes all queuing algorithms that a LTP supports. 330 o detnet-queues: it's modeled as a list that includes all queues of 331 a DetNet LTP. For each queue, it has the following attributes: 333 o queue-identifier: an identifier of a queue. It could be an 334 internal identifier that is only used within a node. Or it could 335 be used by a centralized controller to specify in which specific 336 queue a flow/packet is required to enter. 338 o queue-buffer-size: the size of a queue with unit of bytes. 340 o enabled-queuing-algorithm: indicates what queuing management 341 algorithm is enabled. 343 o maximum-queuing-delay: the maximum queuing delay that a packet 344 will undergo when transmitted through the queue. 346 o minimum-queuing-delay: the minimum queuing delay that a packet 347 will undergo when transmitted through the queue. 349 o maximum-queuing-delay-variation: the maximum queuing delay 350 variation that a packet will undergo when transmitted the queue. 352 The DetNet LTP attributes are modeled with a LTP, the YANG module 353 structure is shown below: 355 augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te: 356 +--rw detnet-terminate-point-attributes 357 +--rw elimination-capability? boolean 358 +--rw replication-capability? boolean 359 +--rw in-ordering-capability 360 | +--rw in-ordering-capability? boolean 361 | +--rw maximum-out-of-order-packets? uint32 362 +--rw queuing-algorithm-capabilities 363 | +--rw credit-based-shaping? boolean 364 | +--rw time-aware-shaping? boolean 365 | +--rw cyclic-queuing-and-forwarding? boolean 366 | +--rw asynchronous-traffic-shaping? boolean 367 +--rw queues* [queue-identifier] 368 +--rw queue-identifier uint32 369 +--rw queue-buffer-size? uint32 370 +--rw enabled-queuing-algorithm 371 | +--rw credit-based-shaping? boolean 372 | +--rw time-aware-shaping? boolean 373 | +--rw cyclic-queuing-and-forwarding? boolean 374 | +--rw asynchronous-traffic-shaping? boolean 375 +--rw minimum-queuing-delay? uint32 376 +--rw maximum-queuing-delay? uint32 377 +--rw maximum-queuing-delay-variation? uint32 379 4. DetNet Flow Configuration Model 381 DetNet flow configuration includes DetNet Service Proxy 382 configuration, DetNet Service Layer configuration and DetNet 383 Transport Layer configuration. The corresponding attributes used in 384 different layers are defined in Section 4.1, 4.2, 4.3, respectively. 385 Section 4.4 gives a simple example on how to use these attributes for 386 DetNet flow configuration. 388 4.1. DetNet Service Proxy Configuration Attributes 390 DetNet service proxy is responsible for mapping between application 391 flows and DetNet flows at the edge node(egress/ingress node). Where 392 the application flows can be either layer 2 or layer 3 flows. To 393 identify a flow at the User Network Interface (UNI), as defined in 394 [I-D.ietf-detnet-flow-information-model], the following flow 395 attributes are introduced: 397 o DetNet L3 Flow Identification, refers to Section 7.1.1 of 398 [I-D.ietf-detnet-flow-information-model] 400 o DetNet L2 Flow Identification, refers to Section 7.1.2 of 401 [I-D.ietf-detnet-flow-information-model] 403 DetNet service proxy can also do flow filtering and policing at the 404 ingress to prevent the misbehaviored flows from going into the 405 network, which needs: 407 o Traffic Specification, refers to Section 7.2 of 408 [I-D.ietf-detnet-flow-information-model] 410 The YANG module structure is shown below: 412 +--rw client-flow* [flow-id] 413 | +--rw flow-id uint32 414 | +--rw (flow-type)? 415 | | +--:(l2-flow-identfication) 416 | | | +--rw source-mac-address? yang:mac-address 417 | | | +--rw destination-mac-address? yang:mac-address 418 | | | +--rw ethertype? eth:ethertype 419 | | | +--rw vlan-id? uint16 420 | | | +--rw pcp 421 | | +--:(l3-flow-identification) 422 | | +--rw (ip-flow-type)? 423 | | | +--:(ipv4) 424 | | | | +--rw src-ipv4-address? inet:ipv4-address 425 | | | | +--rw dest-ipv4-address? inet:ipv4-address 426 | | | | +--rw dscp? uint8 427 | | | +--:(ipv6) 428 | | | +--rw src-ipv6-address? inet:ipv6-address 429 | | | +--rw dest-ipv6-address? inet:ipv6-address 430 | | | +--rw traffic-class? uint8 431 | | | +--rw flow-label? inet:ipv6-flow-label 432 | | +--rw source-port? inet:port-number 433 | | +--rw destination-port? inet:port-number 434 | | +--rw protocol? uint8 435 | +--rw traffic-specification 436 | +--rw interval? uint32 437 | +--rw max-packets-per-interval? uint32 438 | +--rw max-payload-size? uint32 439 | +--rw average-packets-per-interval? uint32 440 | +--rw average-payload-size? uint32 442 4.2. DetNet Service Layer Configuration Attributes 444 DetNet service functions, e.g., DetNet tunnel initialization/ 445 termination and service protection, are provided in DetNet service 446 layer. To support these functions, the following service attributes 447 need to be configured: 449 o DetNetwork flow identification, refers to Section 7.1.3 of 450 [I-D.ietf-detnet-flow-information-model]. 452 o Service function indication, indicates which service function will 453 be invoked at a DetNet edge, relay node or end station. (DetNet 454 tunnel initialization or termination are default functions in 455 DetNet service layer, so there is no need for explicit 456 indication.) 458 o Flow Rank, refers to Section 7.3 of 459 [I-D.ietf-detnet-flow-information-model]. 461 o Service Rank, refers to Section 7.4 of 462 [I-D.ietf-detnet-flow-information-model]. 464 o Service encapsulation, refers to Section 6.2 of 465 [I-D.ietf-detnet-dp-sol-mpls] 467 o Transport encapsulation, refers to Section 6.2 of 468 [I-D.ietf-detnet-dp-sol-mpls]and Section 3 of 469 [I-D.ietf-detnet-dp-sol-ip] 471 The YANG module structure is shown below: 473 | +--rw relay-node 474 | +--rw name? string 475 | +--rw flow-rank 476 | +--rw service-rank 477 | +--rw in-segment* [in-segment-id] 478 | | +--rw in-segment-id uint32 479 | | +--rw (flow-type)? 480 | | | +--:(IP) 481 | | | | +--rw (ip-flow-type)? 482 | | | | | +--:(ipv4) 483 | | | | | | +--rw src-ipv4-address? inet:ipv4-address 484 | | | | | | +--rw dest-ipv4-address? inet:ipv4-address 485 | | | | | | +--rw dscp? uint8 486 | | | | | +--:(ipv6) 487 | | | | | +--rw src-ipv6-address? inet:ipv6-address 488 | | | | | +--rw dest-ipv6-address? inet:ipv6-address 489 | | | | | +--rw traffic-class? uint8 490 | | | | | +--rw flow-label? inet:ipv6-flow-label 491 | | | | +--rw source-port? inet:port-number 492 | | | | +--rw destination-port? inet:port-number 493 | | | | +--rw protocol? uint8 494 | | | +--:(MPLS) 495 | | | +--rw service-label uint32 496 | | +--rw service-function? service-function-type 497 | +--rw out-segment* [out-segment-id] 498 | +--rw out-segment-id uint32 499 | +--rw detnet-service-encapsulation 500 | | +--rw service-label uint32 501 | | +--rw control-word uint32 502 | +--rw detnet-transport-encapsulation 503 | +--rw (tunnel-type)? 504 | | +--:(IPv4) 505 | | | +--rw ipv4-encaplustion 506 | | | +--rw src-ipv4-address inet:ipv4-address 507 | | | +--rw dest-ipv4-address inet:ipv4-address 508 | | | +--rw protocol uint8 509 | | | +--rw ttl? uint8 510 | | | +--rw dscp? uint8 511 | | +--:(IPv6) 512 | | | +--rw ipv6-encaplustion 513 | | | +--rw src-ipv6-address inet:ipv6-address 514 | | | +--rw dest-ipv6-address inet:ipv6-address 515 | | | +--rw next-header uint8 516 | | | +--rw traffic-class? uint8 517 | | | +--rw flow-label? inet:ipv6-flow-label 518 | | | +--rw hop-limit? uint8 519 | | +--:(MPLS) 520 | | +--rw mpls-encaplustion 521 | | +--rw label-operations* [label-oper-id] 522 | | +--rw label-oper-id uint32 523 | | +--rw (label-actions)? 524 | | +--:(label-push) 525 | | | +--rw label-push 526 | | | +--rw label uint32 527 | | | +--rw s-bit? boolean 528 | | | +--rw tc-value? uint8 529 | | | +--rw ttl-value? uint8 530 | | +--:(label-swap) 531 | | +--rw label-swap 532 | | +--rw out-label uint32 533 | | +--rw ttl-action? ttl-action-definition 534 | +--rw interval? uint32 535 | +--rw max-packets-per-interval? uint32 536 | +--rw max-payload-size? uint32 537 | +--rw average-packets-per-interval? uint32 538 | +--rw average-payload-size? uint32 540 4.3. DetNet Transport Layer Configuration Attributes 542 As defined in [I-D.ietf-detnet-architecture], DetNet transport layer 543 optionally provides congestion protection for DetNet flows over paths 544 provided by the underlying network. Explicit route is another 545 mechanism that is used by DetNet to avoid temporary interruptions 546 caused by the convergence of routing or bridging protocols, and it is 547 also implemented at the DetNet transport layer. 549 To support congestion protection and explicit route, the following 550 transport layer related attributes are necessary: 552 o Traffic Specification, refers to Section 7.2 of 553 [I-D.ietf-detnet-flow-information-model]. It may used for 554 bandwidth reservation, flow shaping, filtering and policing. 556 o Explicit path, existing explicit route mechanisms can be reused. 557 For example, if Segment Routing (SR) tunnel is used as the 558 transport tunnel, the configuration is mainly at the ingress node 559 of the transport layer; if the static MPLS tunnel is used as the 560 transport tunnel, the configurations need to be at every transit 561 node along the path; for pure IP based transport tunnel, it's 562 similar to the static MPLS case. 564 The YANG module structure is shown below: 566 | +--rw transit-node 567 | +--rw interval? uint32 568 | +--rw max-packets-per-interval? uint32 569 | +--rw max-payload-size? uint32 570 | +--rw average-packets-per-interval? uint32 571 | +--rw average-payload-size? uint32 573 The parameters for DetNet transport QoS are defined in Section 5. 575 4.4. DetNet Flow Configuration Example 577 This section gives an example about how to implement an end-2-end 578 DetNet service with the collaboration of DetNet proxy, service and 579 transport layers. 581 To simplify the explanation, several terms are introduced. This 582 document defines DetNet Service Proxy Instance (DSPI), DetNet Service 583 Instance (DSI) and DetNet Transport Instance for end-to-end DetNet 584 flow configuration as showed in Figure 4. DSPI 1 at Edge Node 1 (E1) 585 maps an application flow to a DetNet Flow (DF1), which is transmitted 586 over a DetNet tunnel (Tn1). In DSI 2 of Relay Node 1 (R1), DetNet 587 Flow 1(DF1) was replicated into two member flows: DetNet Flow 2 (DF2) 588 transmitted by DetNet Tunnel 2 (Tnl2) and DetNet Flow 3 (DF3) by 589 DetNet Tunnel 3(Tnl3). In DSPI 3 of Edge Node 2 (E2), DetNet Flow 2 590 (DF2) and DetNet Flow 3(DF3) were merged and mapped to application 591 flow used by CE2. 593 DF: DetNet Flow 594 DSPI: DetNet Service Proxy Instance 595 DSI: DetNet Service Instance 596 DTI: DetNet Transport Instance 597 Tnl: Tunnel 599 |<------- End to End DetNet Service ------>| 600 | DetNet DetNet | 601 (AC) | |<-Tnl->| |<-Tnl->| | (AC) 602 End | V V 1 V V 2/3 V V | End 603 System | +--------+ +--------+ +--------+ | System 604 +---+ | | E1 |=======| R1 |=======| E2 | | +---+ 605 | |--|----|--------| |--------| |--------|---|---| | 606 |CE1| | | DSPI 1 | | | | DSPI 2 | | |CE2| 607 | | |+-------+ | | +-------+| | | 608 +---+ || DSI 1 | | DSI 2 | | DSI 3 || +---+ 609 || + | +------+ | || 610 || +-----+ | |DTI 2 |..DF2..| || 611 || |DTI 1|..DF1..| +------+ | || 612 || +-----+ | |DTI 3 |..DF3..| || 613 |+-------+ | +------+ +-------+| 614 +--------+=======+--------+=======+--------+ 615 Edge Node Relay Node Edge Node 616 | | 617 |<-------- DetNet Service --------->| 619 Figure 3. End-to-end DetNet Flow Configuration 621 5. DetNet Transport QoS Model 623 The YANG data model of transport QoS is very important to achieve 624 end-to-end bounded latency and zero congestion loss. There are three 625 possible methods to deal with the DetNet transport QoS YANG: 627 1. DetNet service is not aware of any QoS/queuing/bounded-latency 628 information, and all relative parameters are defined in separate YANG 629 models; 631 2. DetNet service is not aware of any of Qos/queuing/bounded-latency 632 information, but it should maintain an interface to the corresponding 633 YANG models; 635 3. DetNet service should be aware of the Qos/queuing/bounded-latency 636 information, because some Qos/queuing/bounded-latency mechanisms are 637 required to be configured with flow information; 638 How to define transport QoS YANG is still under discussion and the 639 transport QoS YANG model is not included in the current version of 640 the draft. 642 [Editor notes: more comments and inputs need here]. 644 6. DetNet Yang Structure 646 6.1. DetNet Topology Model Tree Diagram 647 module: ietf-detnet-topology 648 augment /nw:networks/nw:network/nw:network-types/tet:te-topology: 649 +--rw detnet-topology! 650 augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes: 651 +--rw detnet-node-attributes 652 +--rw minimum-packet-processing-delay? uint32 653 +--rw maximum-packet-processing-delay? uint32 654 +--rw maximum-packet-processing-delay-variation? uint32 655 augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes: 656 +--rw detnet-link-attributes 657 +--rw maximum-reservable-bandwidth 658 | +--rw te-bandwidth 659 | +--rw (technology)? 660 | +--:(generic) 661 | +--rw generic? te-bandwidth 662 +--rw reserved-detnet-bandwidth 663 | +--rw te-bandwidth 664 | +--rw (technology)? 665 | +--:(generic) 666 | +--rw generic? te-bandwidth 667 +--rw available-detnet-bandwidth 668 +--rw te-bandwidth 669 +--rw (technology)? 670 +--:(generic) 671 +--rw generic? te-bandwidth 672 augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te: 673 +--rw detnet-terminate-point-attributes 674 +--rw elimination-capability? boolean 675 +--rw replication-capability? boolean 676 +--rw in-ordering-capability 677 | +--rw in-ordering-capability? boolean 678 | +--rw maximum-out-of-order-packets? uint32 679 +--rw queuing-algorithm-capabilities 680 | +--rw credit-based-shaping? boolean 681 | +--rw time-aware-shaping? boolean 682 | +--rw cyclic-queuing-and-forwarding? boolean 683 | +--rw asynchronous-traffic-shaping? boolean 684 +--rw queues* [queue-identifier] 685 +--rw queue-identifier uint32 686 +--rw queue-buffer-size? uint32 687 +--rw enabled-queuing-algorithm 688 | +--rw credit-based-shaping? boolean 689 | +--rw time-aware-shaping? boolean 690 | +--rw cyclic-queuing-and-forwarding? boolean 691 | +--rw asynchronous-traffic-shaping? boolean 692 +--rw minimum-queuing-delay? uint32 693 +--rw maximum-queuing-delay? uint32 694 +--rw maximum-queuing-delay-variation? uint32 696 6.2. DetNet Flow Configuration Model Tree Diagram 698 module: ietf-detnet-flow-config 699 +--rw detnet-flow 700 +--rw (detnet-node-role)? 701 +--:(transit-node) 702 | +--rw transit-node 703 | +--rw interval? uint32 704 | +--rw max-packets-per-interval? uint32 705 | +--rw max-payload-size? uint32 706 | +--rw average-packets-per-interval? uint32 707 | +--rw average-payload-size? uint32 708 +--:(relay-node) 709 | +--rw relay-node 710 | +--rw name? string 711 | +--rw flow-rank 712 | +--rw service-rank 713 | +--rw in-segment* [in-segment-id] 714 | | +--rw in-segment-id uint32 715 | | +--rw (flow-type)? 716 | | | +--:(IP) 717 | | | | +--rw (ip-flow-type)? 718 | | | | | +--:(ipv4) 719 | | | | | | +--rw src-ipv4-address? inet:ipv4-address 720 | | | | | | +--rw dest-ipv4-address? inet:ipv4-address 721 | | | | | | +--rw dscp? uint8 722 | | | | | +--:(ipv6) 723 | | | | | +--rw src-ipv6-address? inet:ipv6-address 724 | | | | | +--rw dest-ipv6-address? inet:ipv6-address 725 | | | | | +--rw traffic-class? uint8 726 | | | | | +--rw flow-label? inet:ipv6-flow-label 727 | | | | +--rw source-port? inet:port-number 728 | | | | +--rw destination-port? inet:port-number 729 | | | | +--rw protocol? uint8 730 | | | +--:(MPLS) 731 | | | +--rw service-label uint32 732 | | +--rw service-function? service-function-type 733 | +--rw out-segment* [out-segment-id] 734 | +--rw out-segment-id uint32 735 | +--rw detnet-service-encapsulation 736 | | +--rw service-label uint32 737 | | +--rw control-word uint32 738 | +--rw detnet-transport-encapsulation 739 | +--rw (tunnel-type)? 740 | | +--:(IPv4) 741 | | | +--rw ipv4-encaplustion 742 | | | +--rw src-ipv4-address inet:ipv4-address 743 | | | +--rw dest-ipv4-address inet:ipv4-address 744 | | | +--rw protocol uint8 745 | | | +--rw ttl? uint8 746 | | | +--rw dscp? uint8 747 | | +--:(IPv6) 748 | | | +--rw ipv6-encaplustion 749 | | | +--rw src-ipv6-address inet:ipv6-address 750 | | | +--rw dest-ipv6-address inet:ipv6-address 751 | | | +--rw next-header uint8 752 | | | +--rw traffic-class? uint8 753 | | | +--rw flow-label? inet:ipv6-flow-label 754 | | | +--rw hop-limit? uint8 755 | | +--:(MPLS) 756 | | +--rw mpls-encaplustion 757 | | +--rw label-operations* [label-oper-id] 758 | | +--rw label-oper-id uint32 759 | | +--rw (label-actions)? 760 | | +--:(label-push) 761 | | | +--rw label-push 762 | | | +--rw label uint32 763 | | | +--rw s-bit? boolean 764 | | | +--rw tc-value? uint8 765 | | | +--rw ttl-value? uint8 766 | | +--:(label-swap) 767 | | +--rw label-swap 768 | | +--rw out-label uint32 769 | | +--rw ttl-action? ttl-action-definition 770 | +--rw interval? uint32 771 | +--rw max-packets-per-interval? uint32 772 | +--rw max-payload-size? uint32 773 | +--rw average-packets-per-interval? uint32 774 | +--rw average-payload-size? uint32 775 +--:(edge-node) 776 | +--rw edge-node 777 | +--rw client-flow* [flow-id] 778 | | +--rw flow-id uint32 779 | | +--rw (flow-type)? 780 | | | +--:(l2-flow-identfication) 781 | | | | +--rw source-mac-address? yang:mac-address 782 | | | | +--rw destination-mac-address? yang:mac-address 783 | | | | +--rw ethertype? eth:ethertype 784 | | | | +--rw vlan-id? uint16 785 | | | | +--rw pcp 786 | | | +--:(l3-flow-identification) 787 | | | +--rw (ip-flow-type)? 788 | | | | +--:(ipv4) 789 | | | | | +--rw src-ipv4-address? inet:ipv4-address 790 | | | | | +--rw dest-ipv4-address? inet:ipv4-address 791 | | | | | +--rw dscp? uint8 792 | | | | +--:(ipv6) 793 | | | | +--rw src-ipv6-address? inet:ipv6-address 794 | | | | +--rw dest-ipv6-address? inet:ipv6-address 795 | | | | +--rw traffic-class? uint8 796 | | | | +--rw flow-label? inet:ipv6-flow-label 797 | | | +--rw source-port? inet:port-number 798 | | | +--rw destination-port? inet:port-number 799 | | | +--rw protocol? uint8 800 | | +--rw traffic-specification 801 | | +--rw interval? uint32 802 | | +--rw max-packets-per-interval? uint32 803 | | +--rw max-payload-size? uint32 804 | | +--rw average-packets-per-interval? uint32 805 | | +--rw average-payload-size? uint32 806 | +--rw detnet-service-instance 807 | +--rw name? string 808 | +--rw flow-rank 809 | +--rw service-rank 810 | +--rw in-segment* [in-segment-id] 811 | | +--rw in-segment-id uint32 812 | | +--rw (flow-type)? 813 | | | +--:(IP) 814 | | | | +--rw (ip-flow-type)? 815 | | | | | +--:(ipv4) 816 | | | | | | +--rw src-ipv4-address? inet:ipv4-address 817 | | | | | | +--rw dest-ipv4-address? inet:ipv4-address 818 | | | | | | +--rw dscp? uint8 819 | | | | | +--:(ipv6) 820 | | | | | +--rw src-ipv6-address? inet:ipv6-address 821 | | | | | +--rw dest-ipv6-address? inet:ipv6-address 822 | | | | | +--rw traffic-class? uint8 823 | | | | | +--rw flow-label? inet:ipv6-flow-label 824 | | | | +--rw source-port? inet:port-number 825 | | | | +--rw destination-port? inet:port-number 826 | | | | +--rw protocol? uint8 827 | | | +--:(MPLS) 828 | | | +--rw service-label uint32 829 | | +--rw service-function? service-function-type 830 | +--rw out-segment* [out-segment-id] 831 | +--rw out-segment-id uint32 832 | +--rw detnet-service-encapsulation 833 | | +--rw service-label uint32 834 | | +--rw control-word uint32 835 | +--rw detnet-transport-encapsulation 836 | +--rw (tunnel-type)? 837 | | +--:(IPv4) 838 | | | +--rw ipv4-encaplustion 839 | | | +--rw src-ipv4-address inet:ipv4-address 840 | | | +--rw dest-ipv4-address inet:ipv4-address 841 | | | +--rw protocol uint8 842 | | | +--rw ttl? uint8 843 | | | +--rw dscp? uint8 844 | | +--:(IPv6) 845 | | | +--rw ipv6-encaplustion 846 | | | +--rw src-ipv6-address inet:ipv6-address 847 | | | +--rw dest-ipv6-address inet:ipv6-address 848 | | | +--rw next-header uint8 849 | | | +--rw traffic-class? uint8 850 | | | +--rw flow-label? inet:ipv6-flow-label 851 | | | +--rw hop-limit? uint8 852 | | +--:(MPLS) 853 | | +--rw mpls-encaplustion 854 | | +--rw label-operations* [label-oper-id] 855 | | +--rw label-oper-id uint32 856 | | +--rw (label-actions)? 857 | | +--:(label-push) 858 | | | +--rw label-push 859 | | | +--rw label uint32 860 | | | +--rw s-bit? boolean 861 | | | +--rw tc-value? uint8 862 | | | +--rw ttl-value? uint8 863 | | +--:(label-swap) 864 | | +--rw label-swap 865 | | +--rw out-label uint32 866 | | +--rw ttl-action? ttl-action-definition 867 | +--rw interval? uint32 868 | +--rw max-packets-per-interval? uint32 869 | +--rw max-payload-size? uint32 870 | +--rw average-packets-per-interval? uint32 871 | +--rw average-payload-size? uint32 872 +--:(end-station) 873 +--rw end-station 874 +--rw client-flow* [flow-id] 875 | +--rw flow-id uint32 876 | +--rw (flow-type)? 877 | | +--:(l2-flow-identfication) 878 | | | +--rw source-mac-address? yang:mac-address 879 | | | +--rw destination-mac-address? yang:mac-address 880 | | | +--rw ethertype? eth:ethertype 881 | | | +--rw vlan-id? uint16 882 | | | +--rw pcp 883 | | +--:(l3-flow-identification) 884 | | +--rw (ip-flow-type)? 885 | | | +--:(ipv4) 886 | | | | +--rw src-ipv4-address? inet:ipv4-address 887 | | | | +--rw dest-ipv4-address? inet:ipv4-address 888 | | | | +--rw dscp? uint8 889 | | | +--:(ipv6) 890 | | | +--rw src-ipv6-address? inet:ipv6-address 891 | | | +--rw dest-ipv6-address? inet:ipv6-address 892 | | | +--rw traffic-class? uint8 893 | | | +--rw flow-label? inet:ipv6-flow-label 894 | | +--rw source-port? inet:port-number 895 | | +--rw destination-port? inet:port-number 896 | | +--rw protocol? uint8 897 | +--rw traffic-specification 898 | +--rw interval? uint32 899 | +--rw max-packets-per-interval? uint32 900 | +--rw max-payload-size? uint32 901 | +--rw average-packets-per-interval? uint32 902 | +--rw average-payload-size? uint32 903 +--rw detnet-service-instance 904 +--rw name? string 905 +--rw flow-rank 906 +--rw service-rank 907 +--rw in-segment* [in-segment-id] 908 | +--rw in-segment-id uint32 909 | +--rw (flow-type)? 910 | | +--:(IP) 911 | | | +--rw (ip-flow-type)? 912 | | | | +--:(ipv4) 913 | | | | | +--rw src-ipv4-address? inet:ipv4-address 914 | | | | | +--rw dest-ipv4-address? inet:ipv4-address 915 | | | | | +--rw dscp? uint8 916 | | | | +--:(ipv6) 917 | | | | +--rw src-ipv6-address? inet:ipv6-address 918 | | | | +--rw dest-ipv6-address? inet:ipv6-address 919 | | | | +--rw traffic-class? uint8 920 | | | | +--rw flow-label? inet:ipv6-flow-label 921 | | | +--rw source-port? inet:port-number 922 | | | +--rw destination-port? inet:port-number 923 | | | +--rw protocol? uint8 924 | | +--:(MPLS) 925 | | +--rw service-label uint32 926 | +--rw service-function? service-function-type 927 +--rw out-segment* [out-segment-id] 928 +--rw out-segment-id uint32 929 +--rw detnet-service-encapsulation 930 | +--rw service-label uint32 931 | +--rw control-word uint32 932 +--rw detnet-transport-encapsulation 933 +--rw (tunnel-type)? 934 | +--:(IPv4) 935 | | +--rw ipv4-encaplustion 936 | | +--rw src-ipv4-address inet:ipv4-address 937 | | +--rw dest-ipv4-address inet:ipv4-address 938 | | +--rw protocol uint8 939 | | +--rw ttl? uint8 940 | | +--rw dscp? uint8 941 | +--:(IPv6) 942 | | +--rw ipv6-encaplustion 943 | | +--rw src-ipv6-address inet:ipv6-address 944 | | +--rw dest-ipv6-address inet:ipv6-address 945 | | +--rw next-header uint8 946 | | +--rw traffic-class? uint8 947 | | +--rw flow-label? inet:ipv6-flow-label 948 | | +--rw hop-limit? uint8 949 | +--:(MPLS) 950 | +--rw mpls-encaplustion 951 | +--rw label-operations* [label-oper-id] 952 | +--rw label-oper-id uint32 953 | +--rw (label-actions)? 954 | +--:(label-push) 955 | | +--rw label-push 956 | | +--rw label uint32 957 | | +--rw s-bit? boolean 958 | | +--rw tc-value? uint8 959 | | +--rw ttl-value? uint8 960 | +--:(label-swap) 961 | +--rw label-swap 962 | +--rw out-label uint32 963 | +--rw ttl-action? ttl-action-definition 964 +--rw interval? uint32 965 +--rw max-packets-per-interval? uint32 966 +--rw max-payload-size? uint32 967 +--rw average-packets-per-interval? uint32 968 +--rw average-payload-size? uint32 970 7. DetNet YANG Model 972 7.1. DetNet Topology YANG Model 974 file "ietf-detnet-topology@20180910.yang" 975 module ietf-detnet-topology { 976 yang-version 1.1; 977 namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-topology"; 978 prefix "detnet-topology"; 980 import ietf-te-types { 981 prefix "te-types"; 982 } 983 import ietf-te-topology { 984 prefix "tet"; 985 } 987 import ietf-network { 988 prefix "nw"; 989 } 991 import ietf-network-topology { 992 prefix "nt"; 993 } 995 organization 996 "IETF Deterministic Networking(DetNet)Working Group"; 998 contact 999 "WG Web: 1000 WG List: 1002 WG Chair: Lou Berger 1003 1005 Janos Farkas 1006 1008 Editor: Xuesong Geng 1009 1011 Editor: Mach Chen 1012 1014 Editor: Zhenqiang Li 1015 1017 Editor: Reshad Rahman 1018 "; 1020 description 1021 "This YANG module augments the 'ietf-te-topology' 1022 module with DetNet related capabilities and 1023 parameters."; 1025 revision "2018-09-10" { 1026 description "Initial revision"; 1027 reference "RFC XXXX: draft-geng-detnet-config-yang-05"; 1028 } 1030 grouping detnet-queuing-algorithms { 1031 description 1032 "Relationship with IEEE 802.1 TSN YANG models is TBD."; 1033 } 1035 grouping detnet-node-attributes{ 1036 description 1037 "DetNet node related attributes."; 1038 leaf minimum-packet-processing-delay{ 1039 type uint32; 1040 description 1041 "Minimum packet processing delay 1042 in a node. The unit of the delay 1043 is microsecond(us)"; 1044 } 1045 leaf maximum-packet-processing-delay{ 1046 type uint32; 1047 description 1048 "Maximum packet processing delay 1049 in a node. The unit of the delay 1050 is microsecond(us)"; 1051 } 1052 leaf maximum-packet-processing-delay-variation{ 1053 type uint32; 1054 description 1055 "Maximum packet processing delay 1056 variation in a node. The unit of 1057 the delay variation is microsecond(us)"; 1058 } 1059 } 1061 grouping detnet-link-attributes{ 1062 description 1063 "DetNet link related attributes."; 1065 container maximum-reservable-bandwidth{ 1066 uses te-types:te-bandwidth; 1067 description 1068 "This container specifies the maximum bandwidth 1069 that is reserved for DetNet on this link."; 1070 } 1072 container reserved-detnet-bandwidth{ 1073 uses te-types:te-bandwidth; 1074 description 1075 "This container specifies the bandwidth that has 1076 been reserved for DetNet on this link."; 1077 } 1078 container available-detnet-bandwidth{ 1079 uses te-types:te-bandwidth; 1080 description 1081 "This container specifies the bandwidth that is 1082 available for new DetNet flows on this link."; 1083 } 1084 } 1086 grouping detnet-terminate-point-attributes{ 1087 description 1088 "DetNet terminate point related attributes."; 1090 leaf elimination-capability{ 1091 type boolean; 1092 description 1093 "Indicates whether a node is able to do packet 1094 elimination."; 1095 reference 1096 "Section 3.2.2.3 of 1097 draft-ietf-detnet-architecture"; 1099 } 1100 leaf replication-capability{ 1101 type boolean; 1102 description 1103 "Indicates whether a node is able to do packet 1104 replication."; 1105 reference 1106 "Section 3.2.2.2 of 1107 draft-ietf-detnet-architecture"; 1108 } 1109 container in-ordering-capability { 1110 description 1111 "Indicates the parameters needed for 1112 packet in-ordering."; 1113 reference 1114 "Section 3.2.2.1 of 1115 draft-ietf-detnet-architecture"; 1117 leaf in-ordering-capability { 1118 type boolean; 1119 description 1120 "Indicates whether a node is able to do packet 1121 in-ordering."; 1122 } 1123 leaf maximum-out-of-order-packets { 1124 type uint32; 1125 description 1126 "The maximum number of out-of-order packets."; 1127 } 1128 } 1130 container queuing-algorithm-capabilities { 1131 description 1132 "All queuing algorithms that a LTP supports."; 1133 uses detnet-queuing-algorithms; 1134 } 1136 list queues { 1137 key "queue-identifier"; 1138 description 1139 "A list of DetNet queues."; 1140 leaf queue-identifier { 1141 type uint32; 1142 description 1143 "The identifier of the queue."; 1144 } 1145 leaf queue-buffer-size { 1146 type uint32; 1147 description 1148 "The size of the queue with unit of bytes."; 1149 } 1151 container enabled-queuing-algorithm { 1152 description 1153 "The queuing algorithms that are enabled on the queue."; 1154 uses detnet-queuing-algorithms; 1155 } 1157 leaf minimum-queuing-delay{ 1158 type uint32; 1159 description 1160 "The minimum queuing delay of the queue. 1161 The unit of the delay is microsecond(us)"; 1162 } 1163 leaf maximum-queuing-delay{ 1164 type uint32; 1165 description 1166 "The maximum queuing delay of the queue. 1167 The unit of the delay is microsecond(us)"; 1168 } 1169 leaf maximum-queuing-delay-variation{ 1170 type uint32; 1171 description 1172 "The maximum queuing delay variation of the queue. 1173 The unit of the delay variation is microsecond(us)"; 1175 } 1176 } 1177 } 1179 augment "/nw:networks/nw:network/nw:network-types/tet:te-topology"{ 1180 description 1181 "Introduce new network type for TE topology."; 1182 container detnet-topology { 1183 presence "Indicates DetNet topology."; 1184 description 1185 "Its presence identifies the DetNet topology type"; 1186 } 1187 } 1189 augment "/nw:networks/nw:network/nw:node/tet:te/" 1190 + "tet:te-node-attributes" { 1191 when "../../../nw:network-types/tet:te-topology/" 1192 + "detnet-topology:detnet-topology" { 1193 description 1194 "Augmentation parameters apply only for networks with 1195 DetNet topology type."; 1196 } 1197 description 1198 "Augmentation parameters apply for DetNet node attributes."; 1199 container detnet-node-attributes { 1200 description 1201 "Attributes for DetNet node."; 1202 uses detnet-node-attributes; 1203 } 1204 } 1206 augment "/nw:networks/nw:network/nt:link/tet:te/" 1207 + "tet:te-link-attributes" { 1208 when "../../../nw:network-types/tet:te-topology/" 1209 + "detnet-topology:detnet-topology" { 1210 description 1211 "Augmentation parameters apply only for networks with 1212 DetNet topology type."; 1213 } 1214 description 1215 "Augmentation parameters apply for DetNet link attributes."; 1216 container detnet-link-attributes { 1217 description 1218 "Attributes for DetNet link."; 1219 uses detnet-link-attributes; 1220 } 1221 } 1222 augment "/nw:networks/nw:network/nw:node/nt:termination-point/" 1223 + "tet:te" { 1224 when "../../../nw:network-types/tet:te-topology/" 1225 + "detnet-topology:detnet-topology" { 1226 description 1227 "Augmentation parameters apply only for networks with 1228 DetNet topology type."; 1229 } 1230 description 1231 "Augmentation parameters apply for DetNet 1232 link termination point."; 1233 container detnet-terminate-point-attributes { 1234 description 1235 "Attributes for DetNet link terminate point."; 1236 uses detnet-terminate-point-attributes; 1237 } 1238 } 1239 } //topology module 1241 1243 7.2. DetNet Flow Configuration YANG Model 1245 file "ietf-detnet-flow@20180910.yang" 1246 module ietf-detnet-flow-config { 1247 yang-version 1.1; 1248 namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-flow-config"; 1249 prefix "detnet-flow"; 1251 import ietf-yang-types { 1252 prefix "yang"; 1253 } 1255 import ietf-inet-types{ 1256 prefix "inet"; 1257 } 1259 import ietf-ethertypes { 1260 prefix "eth"; 1261 } 1263 organization "IETF DetNet Working Group"; 1265 contact 1266 "WG Web: 1267 WG List: 1268 WG Chair: Lou Berger 1269 1271 Janos Farkas 1272 1274 Editor: Xuesong Geng 1275 1277 Editor: Mach Chen 1278 1280 Editor: Zhenqiang Li 1281 1283 Editor: Reshad Rahman 1284 "; 1285 description 1286 "This YANG module describes the parameters needed 1287 for DetNet flow configuration and flow status 1288 reporting."; 1290 revision "2018-09-10" { 1291 description "initial revision"; 1292 reference "RFC XXXX: draft-geng-detnet-config-yang-05"; 1293 } 1295 identity detnet-node-role { 1296 description 1297 "base detnet-node-role"; 1298 } 1300 identity end-station { 1301 base detnet-node-role; 1302 description 1303 "Commonly called a 'host' in IETF documents, 1304 and an 'end station' is IEEE 802 documents. 1305 End systems of interest to this document 1306 are either sources or destinations of DetNet 1307 flows. And end system may or may not be 1308 DetNet transport layer aware or DetNet 1309 service layer aware."; 1310 } 1312 identity edge-node { 1313 base detnet-node-role; 1314 description 1315 "An instance of a DetNet relay node that 1316 includes either a DetNet service layer proxy 1317 function for DetNet service protection (e.g. 1318 the addition or removal of packet sequencing 1319 information) for one or more end systems, or 1320 starts or terminate congestion protection at 1321 the DetNet transport layer,analogous to a 1322 Label Edge Router (LER)."; 1323 } 1325 identity relay-node { 1326 base detnet-node-role; 1327 description 1328 "A DetNet node including a service layer 1329 function that interconnects different DetNet 1330 transport layer paths to provide service 1331 protection. A DetNet relay node can be a bridge, 1332 a router, a firewall, or any other system that 1333 participates in the DetNet service layer. It 1334 typically incorporates DetNet transport layer 1335 functions as well, in which case it is 1336 collocated with a transit node."; 1337 } 1339 identity transit-node { 1340 base detnet-node-role; 1341 description 1342 "A node operating at the DetNet transport layer, 1343 that utilizes link layer and/or network layer 1344 switching across multiple links and/or 1345 sub-networks to provide paths for DetNet 1346 service layer functions. Optionally provides 1347 congestion protection over those paths. An MPLS 1348 LSR is an example of a DetNet transit node."; 1349 } 1351 identity ttl-action { 1352 description 1353 "Base identity from which all TTL 1354 actions are derived."; 1355 } 1357 identity no-action { 1358 base "ttl-action"; 1359 description 1360 "Do nothing regarding the TTL."; 1361 } 1363 identity copy-to-inner { 1364 base "ttl-action"; 1365 description 1366 "Copy the TTL of the outer header 1367 to the inner header."; 1368 } 1370 identity decrease-and-copy-to-inner { 1371 base "ttl-action"; 1372 description 1373 "Decrease TTL by one and copy the TTL 1374 to the inner header."; 1375 } 1377 typedef ttl-action-definition { 1378 type identityref { 1379 base "ttl-action"; 1380 } 1381 description 1382 "TTL action definition."; 1383 } 1385 identity detnet-transport-layer { 1386 description 1387 "The layer that optionally provides congestion 1388 protection for DetNet flows over paths provided 1389 by the underlying network."; 1390 } 1392 identity detnet-service-layer { 1393 description 1394 "The layer at which service protection is 1395 provided, either packet sequencing, replication, 1396 and elimination or packet encoding"; 1397 } 1399 typedef service-function-type { 1400 type enumeration { 1401 enum replication { 1402 description 1403 "A Packet Replication Function (PRF) replicates 1404 DetNet flow packets and forwards them to one or 1405 more next hops in the DetNet domain. The number 1406 of packet copies sent to each next hop is a 1407 DetNet flow specific parameter at the node doing 1408 the replication. PRF can be implemented by an 1409 edge node, a relay node, or an end system"; 1410 } 1411 enum elimination { 1412 description 1413 "A Packet Elimination Function (PEF) eliminates 1414 duplicate copies of packets to prevent excess 1415 packets flooding the network or duplicate 1416 packets being sent out of the DetNet domain. 1417 PEF can be implemented by an edge node, a relay 1418 node, or an end system."; 1419 } 1420 enum ordering { 1421 description 1422 "A Packet Ordering Function (POF) re-orders 1423 packets within a DetNet flow that are received 1424 out of order. This function can be implemented 1425 by an edge node, a relay node, or an end system."; 1426 } 1427 enum elimination-ordering { 1428 description 1429 "A combination of PEF and POF that can be 1430 implemented by an edge node, a relay node, or 1431 an end system."; 1432 } 1433 enum elimination-replication { 1434 description 1435 "A combination of PEF and PRF that can be 1436 implemented by an edge node, a relay node, or 1437 an end system"; 1438 } 1439 enum elimination-ordering-replicaiton { 1440 description 1441 "A combination of PEF, POF and PRF that can be 1442 implemented by an edge node, a relay node, or 1443 an end system"; 1444 } 1445 } 1446 description 1447 "DetNet service function and function combination 1448 types."; 1449 } 1451 grouping detnet-transport-qos { 1452 description 1453 "DetNet transport tunnel QoS attributes."; 1454 uses traffic-specification; 1455 } 1457 grouping ipv4-header { 1458 description 1459 "The IPv4 header encapsulation information."; 1460 leaf src-ipv4-address { 1461 type inet:ipv4-address; 1462 mandatory true; 1463 description 1464 "The source IP address of the header."; 1465 } 1466 leaf dest-ipv4-address { 1467 type inet:ipv4-address; 1468 mandatory true; 1469 description 1470 "The destination IP address of the header."; 1471 } 1472 leaf protocol { 1473 type uint8; 1474 mandatory true; 1475 description 1476 "The protocol id of the header."; 1477 } 1478 leaf ttl { 1479 type uint8; 1480 description 1481 "The TTL of the header."; 1482 } 1483 leaf dscp { 1484 type uint8; 1485 description 1486 "The DSCP field of the header."; 1487 } 1488 } 1490 grouping ipv6-header { 1491 description 1492 "The IPv6 header encapsulation information."; 1493 leaf src-ipv6-address { 1494 type inet:ipv6-address; 1495 mandatory true; 1496 description 1497 "The source IP address of the header."; 1498 } 1499 leaf dest-ipv6-address { 1500 type inet:ipv6-address; 1501 mandatory true; 1502 description 1503 "The destination IP address of the header."; 1504 } 1505 leaf next-header { 1506 type uint8; 1507 mandatory true; 1508 description 1509 "The next header of the IPv6 header."; 1510 } 1511 leaf traffic-class { 1512 type uint8; 1513 description 1514 "The traffic class value of the header."; 1515 } 1516 leaf flow-label { 1517 type inet:ipv6-flow-label; 1518 description 1519 "The flow label of the header."; 1520 } 1521 leaf hop-limit { 1522 type uint8 { 1523 range "1..255"; 1524 } 1525 description 1526 "The hop limit of the header."; 1527 } 1528 } 1530 grouping mpls-header { 1531 description 1532 "The MPLS encapsulation header information."; 1533 list label-operations { 1534 key "label-oper-id"; 1535 description 1536 "Label operations."; 1537 leaf label-oper-id { 1538 type uint32; 1539 description 1540 "An optional identifier that points 1541 to a label operation."; 1542 } 1543 choice label-actions { 1544 description 1545 "Label action options."; 1546 case label-push { 1547 container label-push { 1548 description 1549 "Label push operation."; 1550 leaf label { 1551 type uint32; 1552 mandatory true; 1553 description 1554 "The label to be pushed."; 1555 } 1556 leaf s-bit { 1557 type boolean; 1558 description 1559 "The s-bit of the label to be pushed."; 1560 } 1561 leaf tc-value { 1562 type uint8; 1563 description 1564 "The traffic class value of the label 1565 to be pushed."; 1566 } 1567 leaf ttl-value { 1568 type uint8; 1569 description 1570 "The TTL value of the label to be 1571 pushed."; 1572 } 1573 } 1574 } 1575 case label-swap { 1576 container label-swap { 1577 description 1578 "Label swap operation."; 1579 leaf out-label { 1580 type uint32; 1581 mandatory true; 1582 description 1583 "The out MPLS label."; 1584 } 1585 leaf ttl-action { 1586 type ttl-action-definition; 1587 description 1588 "The label ttl actions: 1589 - No-action, or 1590 - Copy to inner label,or 1591 - Decrease (the in label) by 1 and 1592 copy to the out label."; 1593 } 1594 } 1595 } 1596 } 1597 } 1598 } 1600 grouping mpls-detnet-header { 1601 description 1602 "The MPLS DetNet encapsulation header information."; 1603 leaf service-label { 1604 type uint32; 1605 mandatory true; 1606 description 1607 "The service label."; 1608 } 1609 leaf control-word { 1610 type uint32; 1611 mandatory true; 1612 description 1613 "The control word of the DetNet header."; 1614 } 1615 } 1617 grouping transport-tunnel-encap{ 1618 description 1619 "Defines the transport tunnel encapsulation 1620 header."; 1621 choice tunnel-type { 1622 description 1623 "Tunnel type includes: IPv4, IPv6, MPLS."; 1624 case IPv4 { 1625 description 1626 "IPv4 tunnel."; 1627 container ipv4-encapsulation { 1628 description 1629 "IPv4 encapsulation."; 1630 uses ipv4-header; 1631 } 1632 } 1633 case IPv6 { 1634 description 1635 "IPv6 tunnel."; 1636 container ipv6-encapsulation { 1637 description 1638 "IPv6 encapsulation."; 1639 uses ipv6-header; 1640 } 1641 } 1642 case MPLS { 1643 description 1644 "MPLS tunnel."; 1645 container mpls-encapsulation { 1646 description 1647 "MPLS encapsulation."; 1648 uses mpls-header; 1649 } 1650 } 1651 } 1652 } 1653 grouping detnet-transport-instance { 1654 description 1655 "An instance of the DetNet transport layer, which 1656 depends on the specific data plane that is used 1657 as the underlay tunnel."; 1658 uses transport-tunnel-encap; 1659 uses detnet-transport-qos; 1660 } 1662 grouping ip-flow-identification { 1663 description 1664 "IP flow identification."; 1665 choice ip-flow-type { 1666 description 1667 "IP flow types: IPv4, IPv6."; 1668 case ipv4 { 1669 description 1670 "IPv4 flow identification."; 1671 leaf src-ipv4-address { 1672 type inet:ipv4-address; 1673 description 1674 "The source IP address of the header."; 1675 } 1676 leaf dest-ipv4-address { 1677 type inet:ipv4-address; 1678 description 1679 "The destination IP address of the header."; 1680 } 1681 leaf dscp { 1682 type uint8; 1683 description 1684 "The DSCP field of the header."; 1685 } 1686 } 1687 case ipv6 { 1688 description 1689 "IPv6 flow identification."; 1690 leaf src-ipv6-address { 1691 type inet:ipv6-address; 1692 description 1693 "The source IP address of the header."; 1694 } 1695 leaf dest-ipv6-address { 1696 type inet:ipv6-address; 1697 description 1698 "The destination IP address of the header."; 1699 } 1700 leaf traffic-class { 1701 type uint8; 1702 description 1703 "The traffic class value of the header."; 1704 } 1705 leaf flow-label { 1706 type inet:ipv6-flow-label; 1707 description 1708 "The flow label of the header."; 1709 } 1710 } 1711 } 1712 leaf source-port { 1713 type inet:port-number; 1714 description 1715 "The source port number."; 1716 } 1717 leaf destination-port { 1718 type inet:port-number; 1719 description 1720 "The destination port number."; 1721 } 1722 leaf protocol { 1723 type uint8; 1724 description 1725 "The protocol id of the header."; 1726 } 1727 } 1729 grouping l3-flow-identification { 1730 description 1731 "Layer 3 flow identification in the DetNet 1732 domain."; 1733 choice flow-type { 1734 description 1735 "L3 DetNet flow types: IP and MPLS."; 1736 case IP { 1737 description 1738 "IP (IPv4 or IPv6) flow identification."; 1739 uses ip-flow-identification; 1740 } 1741 case MPLS { 1742 description 1743 "MPLS flow identification."; 1744 leaf service-label { 1745 type uint32; 1746 mandatory true; 1747 description 1748 "The service label."; 1750 } 1751 } 1752 } 1753 } //l3-flow-identification 1755 grouping in-segments { 1756 description 1757 "From a receiving node point of view, In-segments 1758 are a set of instances of a DetNet flow at the 1759 receiving node. This occurs when Packet Replication 1760 Function (PRF) is enabled at an upstream node or 1761 multiple flows map/aggregate to a single DetNet 1762 flow."; 1763 list in-segment { 1764 key "in-segment-id"; 1766 description 1767 "A list of in segments, there will be 1768 multiple in-segments for a DetNet flow 1769 when PRF and PEF enabled."; 1771 leaf in-segment-id { 1772 type uint32; 1773 description 1774 "in-segment identifier."; 1775 } 1777 uses l3-flow-identification; 1779 leaf service-function { 1780 type service-function-type; 1781 description 1782 "DetNet service function indication."; 1783 } 1784 } 1785 } 1787 grouping out-segments { 1788 description 1789 "Out-segments are a set of instances of 1790 a DetNet flow, this occurs when implement 1791 packet replication function, where an 1792 in-segment of a DetNet flow is replicated 1793 to multiple out-segments."; 1795 list out-segment { 1796 key "out-segment-id"; 1797 description 1798 "A list of segments, there will be multiple 1799 out-segments when perform PRF."; 1800 leaf out-segment-id { 1801 type uint32; 1802 description 1803 "The out-segment identifier"; 1804 } 1806 container detnet-service-encapsulation { 1807 description 1808 "Only MPLS based DetNet defines DetNet 1809 service layer. The service encapsulation 1810 includes service label and control word."; 1811 uses mpls-detnet-header; 1812 } 1814 container detnet-transport-encapsulation { 1815 description 1816 "Each out-segment corresponds to a 1817 transport instance."; 1818 uses detnet-transport-instance; 1819 } 1820 } 1821 } 1823 grouping detnet-service-instance{ 1824 description 1825 "An end-2-end DetNet service is consisted of 1826 multiple segments. The concept of segment is 1827 similar to PW segment. For DetNet, since the 1828 existing of PREOF, there could be three cases: 1829 1 - One in-segment maps to multiple 1830 out-segments, when implement PRF; 1831 2 - Multiple in-segments map to one 1832 out-segment, when implement PEF; 1833 3 - Multiple in-segments map to multiple 1834 out-segments, when implement a combination 1835 of PEF and PRF."; 1837 leaf name { 1838 type string; 1839 description 1840 "The name of the service instance. This MUST 1841 be unique across all service instances in 1842 a given network device."; 1843 } 1844 container flow-rank{ 1845 description 1846 "TBD based on the data plane solution."; 1847 } 1848 container service-rank{ 1849 description 1850 "TBD based on the data plane solution."; 1851 } 1852 uses in-segments; 1853 uses out-segments; 1854 } 1856 grouping l2-flow-identification-at-uni { 1857 description 1858 "Layer 2 flow identification at UNI."; 1859 leaf source-mac-address { 1860 type yang:mac-address; 1861 description 1862 "The source MAC address used for 1863 flow identification."; 1864 } 1865 leaf destination-mac-address { 1866 type yang:mac-address; 1867 description 1868 "The destination MAC address used for 1869 flow identification."; 1870 } 1872 leaf ethertype { 1873 type eth:ethertype; 1874 description 1875 "The Ethernet Type (or Length) value represented 1876 in the canonical order defined by IEEE 802. 1877 The canonical representation uses lowercase 1878 characters."; 1879 reference 1880 "IEEE 802-2014 Clause 9.2"; 1881 } 1883 leaf vlan-id { 1884 type uint16 { 1885 range "1..4094"; 1886 } 1887 description 1888 "Vlan Identifier used for L2 flow identification."; 1889 } 1890 container pcp { 1891 //Todo 1892 description 1893 "PCP used for L2 flow identification."; 1895 } 1896 } 1898 grouping l3-flow-identification-at-uni { 1899 description 1900 "Layer 3 flow identification at UNI."; 1901 uses ip-flow-identification; 1902 } 1904 grouping traffic-specification { 1905 description 1906 "traffic-specification specifies how the Source 1907 transmits packets for the flow. This is the 1908 promise/request of the Source to the network. 1909 The network uses this traffic specification 1910 to allocate resources and adjust queue 1911 parameters in network nodes."; 1912 reference 1913 "draft-ietf-detnet-flow-information-model"; 1915 leaf interval { 1916 type uint32; 1917 description 1918 "The period of time in which the traffic 1919 specification cannot be exceeded"; 1920 } 1921 leaf max-packets-per-interval{ 1922 type uint32; 1923 description 1924 "The maximum number of packets that the 1925 source will transmit in one Interval."; 1926 } 1927 leaf max-payload-size{ 1928 type uint32; 1929 description 1930 "The maximum payload size that the source 1931 will transmit."; 1932 } 1933 leaf average-packets-per-interval { 1934 type uint32; 1935 description 1936 "The average number of packets that the 1937 source will transmit in one Interval"; 1938 } 1939 leaf average-payload-size { 1940 type uint32; 1941 description 1942 "The average payload size that the 1943 source will transmit."; 1944 } 1945 } 1947 grouping client-flows-at-uni { 1948 description 1949 "The attributes of the client flow at UNI. When 1950 flow aggregation is enabled at ingress, multiple 1951 client flows map to a DetNet service instance."; 1952 list client-flow { 1953 key "flow-id"; 1954 description 1955 "A list of client flows."; 1956 leaf flow-id { 1957 type uint32; 1958 description 1959 "Flow identifier that is unique in a network 1960 device for client flow identification"; 1961 } 1962 choice flow-type{ 1963 description 1964 "Client flow type: layer 2 flow, layer 3 1965 flow."; 1966 case l2-flow-identfication { 1967 description 1968 "Ethernet flow identification."; 1969 uses l2-flow-identification-at-uni; 1970 } 1971 case l3-flow-identification { 1972 description 1973 "layer 3 flow identification, including 1974 IPv4,IPv6 and MPLS."; 1975 uses l3-flow-identification-at-uni; 1976 } 1977 } 1978 container traffic-specification { 1979 description 1980 "The traffic specification of the client flow."; 1981 uses traffic-specification; 1982 } 1983 } 1984 } 1986 grouping detnet-service-proxy-instance { 1987 description 1988 "Maps between App-flows and DetNet flows"; 1989 uses client-flows-at-uni; 1990 container detnet-service-instance { 1991 description 1992 "A DetNet service instance."; 1993 uses detnet-service-instance; 1994 } 1995 } 1997 container detnet-flow{ 1998 description 1999 "DetNet flow configuration and status reporting."; 2000 choice detnet-node-role{ 2001 description 2002 "Depends on the role of a node to configure 2003 corresponding flow parameters."; 2005 case transit-node{ 2006 description 2007 "DetNet flow configuration parameters for 2008 transit nodes."; 2009 container transit-node { 2010 description 2011 "transit node container."; 2012 uses detnet-transport-qos; 2013 } 2014 } 2015 case relay-node{ 2016 description 2017 "DetNet flow configuration parameters for 2018 relay nodes."; 2019 container relay-node { 2020 description 2021 "Relay node container."; 2022 uses detnet-service-instance; 2023 } 2024 } 2025 case edge-node{ 2026 description 2027 "DetNet flow configuration parameters for 2028 edge nodes."; 2029 container edge-node { 2030 description 2031 "Edge node container."; 2032 uses detnet-service-proxy-instance; 2033 } 2034 } 2035 case end-station { 2036 description 2037 "DetNet flow configuration parameters for 2038 end stations."; 2040 container end-station { 2041 description 2042 "End station container."; 2043 uses detnet-service-proxy-instance; 2044 } 2045 } 2046 } 2047 } 2048 } 2049 2051 8. DetNet Configuration Model Classification 2053 This section defines three classes of DetNet configuration model: 2054 fully distributed configuration model, fully centralized 2055 configuration model, hybrid configuration model, based on different 2056 network architectures, showing how configuration information 2057 exchanges between various entities in the network. 2059 8.1. Fully Distributed Configuration Model 2061 In a fully distributed configuration model, UNI information is 2062 transmitted over DetNet UNI protocol from the user side to the 2063 network side; then UNI information and network configuration 2064 information propagate in the network over distributed control plane 2065 protocol. For example: 2067 1) IGP collects topology information and DetNet capabilities of 2068 network([I-D.geng-detnet-info-distribution]); 2070 2) Control Plane of the Edge Node(Ingress) receives a flow 2071 establishment request from UNI and calculates a/some valid path(s); 2073 3) Using RSVP-TE, Edge Node(Ingress) sends a PATH message with 2074 explicit route. After receiving the PATH message, the other Edge 2075 Node(Egress) sends a Resv message with distributed label and resource 2076 reservation request. 2078 Current distributed control plane protocol,e.g., RSVP-TE[RFC3209], 2079 SRP[IEEE802.1Qcc], can only reserve bandwidth along the path, while 2080 the configuration of a fine-grained schedule, e.g.,Time Aware 2081 Shaping(TAS) defined in [IEEE802.1Qbv], is not supported. 2083 The fully distributed configuration model is not covered by this 2084 draft. It should be discussed in the future DetNet control plane 2085 work. 2087 8.2. Fully Centralized Configuration Model 2089 In the fully centralized configuration model, UNI information is 2090 transmitted from Centralized User Configuration (CUC) to Centralized 2091 Network Configuration(CNC). Configurations of routers for DetNet 2092 flows are performed by CNC with network management protocol. For 2093 example: 2095 1) CNC collects topology information and DetNet capability of network 2096 through Netconf; 2098 2) CNC receives a flow establishment request from UNI and calculates 2099 a/some valid path(s); 2101 3) CNC configures the devices along the path for flow transmission. 2103 8.3. Hybrid Configuration Model 2105 In the hybrid configuration model, controller and control plane 2106 protocols work together to offer DetNet service, and there are a lot 2107 of possible combinations. For example: 2109 1) CNC collects topology information and DetNet capability of network 2110 through IGP/BGP-LS; 2112 2) CNC receives a flow establishment request from UNI and calculates 2113 a/some valid path(s); 2115 3) Based on the calculation result, CNC distributes flow path 2116 information to Edge Node(Ingress) and other information(e.g. 2117 replication/elimination) to the relevant nodes. 2119 4) Using RSVP-TE, Edge Node(Ingress) sends a PATH message with 2120 explicit route. After receiving the PATH message, the other Edge 2121 Node(Egress) sends a Resv message with distributed label and resource 2122 reservation request. 2124 or 2126 1) Controller collects topology information and DetNet capability of 2127 network through IGP/BGP-LS; 2129 2) Control Plane of Edge Node(Ingress) receives a flow establishment 2130 request from UNI; 2132 3) Edge Node(Ingress) sends the path establishment request to CNC 2133 through PCEP; 2134 4) After Calculation, CNC sends back the path information of the flow 2135 to the Edge Node(Ingress) through PCEP; 2137 5) Using RSVP-TE, Edge Node(Ingress) sends a PATH message with 2138 explicit route. After receiving the PATH message, the other Edge 2139 Node(Egress) sends a Resv message with distributed label and resource 2140 reservation request. 2142 There are also other variations that can be included in the hybrid 2143 model. This draft can not coverer all the control plane data needed 2144 in hybrid configuration models. Every solution has there own 2145 mechanism and corresponding parameters to make it work. 2147 Editor's Note: 2149 1. There are a lot of optional DetNet configuration models, and 2150 different scenario in different use case can choose one of them based 2151 on its conditions. Maybe next step of the work is to pick up one or 2152 more typical scenarios and give a practical solution. 2154 2. [IEEE802.1Qcc] also defines three TSN configuration models: 2155 fully-centralized model, fully-distributed model, centralized Network 2156 / distributed User Model. This section defines the configuration 2157 model roughly the same, to keep the design of L2 and L3 in the same 2158 structure. Hybrid configuration model is slightly different from the 2159 'centralized Network / distributed User Model'. The hybrid 2160 configuration model intends to contain more variations. 2162 9. Open issues 2164 There are some open issues that are still under disccusion: 2166 o The Relationship with 802.1 TSN YANG models is TBD. TSN YANG 2167 models include: P802.1Qcw, which defines TSN YANG for Qbv, Qbu, 2168 and Qci, and P802.1CBcv, which defines YANG for 802.1CB. The 2169 possible problem here is how to avoid possible overlap among yang 2170 models defined in IETF and IEEE. A common YANG model may be 2171 defined in the future to shared by both TSN and DetNet. More 2172 discussion are needed here. 2174 o How to suppport DetNet OAM is TBD. 2176 These issues will be resolved in the following versions of the draft. 2178 10. IANA Considerations 2180 This document makes no request of IANA. 2182 Note to RFC Editor: this section may be removed on publication as an 2183 RFC. 2185 11. Security Considerations 2187 2189 12. Acknowledgements 2191 13. References 2193 13.1. Normative References 2195 [I-D.finn-detnet-bounded-latency] 2196 Finn, N., Boudec, J., Mohammadpour, E., Varga, B., and J. 2197 Farkas, "DetNet Bounded Latency", draft-finn-detnet- 2198 bounded-latency-01 (work in progress), July 2018. 2200 [I-D.ietf-detnet-architecture] 2201 Finn, N., Thubert, P., Varga, B., and J. Farkas, 2202 "Deterministic Networking Architecture", draft-ietf- 2203 detnet-architecture-08 (work in progress), September 2018. 2205 [I-D.ietf-detnet-dp-sol-ip] 2206 Korhonen, J. and B. Varga, "DetNet IP Data Plane 2207 Encapsulation", draft-ietf-detnet-dp-sol-ip-00 (work in 2208 progress), July 2018. 2210 [I-D.ietf-detnet-dp-sol-mpls] 2211 Korhonen, J. and B. Varga, "DetNet MPLS Data Plane 2212 Encapsulation", draft-ietf-detnet-dp-sol-mpls-00 (work in 2213 progress), July 2018. 2215 [I-D.ietf-detnet-flow-information-model] 2216 Farkas, J., Varga, B., rodney.cummings@ni.com, r., Jiang, 2217 Y., and Y. Zha, "DetNet Flow Information Model", draft- 2218 ietf-detnet-flow-information-model-01 (work in progress), 2219 March 2018. 2221 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2222 Requirement Levels", BCP 14, RFC 2119, 2223 DOI 10.17487/RFC2119, March 1997, 2224 . 2226 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 2227 RFC 6991, DOI 10.17487/RFC6991, July 2013, 2228 . 2230 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 2231 RFC 7950, DOI 10.17487/RFC7950, August 2016, 2232 . 2234 13.2. Informative References 2236 [I-D.geng-detnet-info-distribution] 2237 Geng, X., Chen, M., and Z. Li, "IGP-TE Extensions for 2238 DetNet Information Distribution", draft-geng-detnet-info- 2239 distribution-02 (work in progress), March 2018. 2241 [I-D.ietf-detnet-use-cases] 2242 Grossman, E., "Deterministic Networking Use Cases", draft- 2243 ietf-detnet-use-cases-19 (work in progress), October 2018. 2245 [I-D.ietf-teas-yang-te] 2246 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and 2247 I. Bryskin, "A YANG Data Model for Traffic Engineering 2248 Tunnels and Interfaces", draft-ietf-teas-yang-te-16 (work 2249 in progress), July 2018. 2251 [I-D.ietf-teas-yang-te-topo] 2252 Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and 2253 O. Dios, "YANG Data Model for Traffic Engineering (TE) 2254 Topologies", draft-ietf-teas-yang-te-topo-18 (work in 2255 progress), June 2018. 2257 [I-D.thubert-tsvwg-detnet-transport] 2258 Thubert, P., "A Transport Layer for Deterministic 2259 Networks", draft-thubert-tsvwg-detnet-transport-01 (work 2260 in progress), October 2017. 2262 [I-D.varga-detnet-service-model] 2263 Varga, B. and J. Farkas, "DetNet Service Model", draft- 2264 varga-detnet-service-model-02 (work in progress), May 2265 2017. 2267 [IEEE802.1CB] 2268 "IEEE, "Frame Replication and Elimination for Reliability 2269 (IEEE Draft P802.1CB)", 2017, 2270 .", 2271 2016. 2273 [IEEE802.1Q-2014] 2274 "IEEE, "IEEE Std 802.1Q Bridges and Bridged Networks", 2275 2014, .", 2276 2014. 2278 [IEEE802.1Qbu] 2279 "IEEE, "IEEE Std 802.1Qbu Bridges and Bridged Networks - 2280 Amendment 26: Frame Preemption", 2016, 2281 .", 2016. 2283 [IEEE802.1Qbv] 2284 "IEEE, "IEEE Std 802.1Qbu Bridges and Bridged Networks - 2285 Amendment 25: Enhancements for Scheduled Traffic", 2015, 2286 .", 2016. 2288 [IEEE802.1Qcc] 2289 "IEEE, "Stream Reservation Protocol (SRP) Enhancements and 2290 Performance Improvements (IEEE Draft P802.1Qcc)", 2017, 2291 .". 2293 [IEEE802.1Qch] 2294 "IEEE, "Cyclic Queuing and Forwarding (IEEE Draft 2295 P802.1Qch)", 2017, 2296 .", 2297 2016. 2299 [IEEE802.1Qci] 2300 "IEEE, "Per-Stream Filtering and Policing (IEEE Draft 2301 P802.1Qci)", 2016, 2302 .", 2303 2016. 2305 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 2306 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 2307 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 2308 . 2310 [RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S. 2311 Yasukawa, Ed., "Extensions to Resource Reservation 2312 Protocol - Traffic Engineering (RSVP-TE) for Point-to- 2313 Multipoint TE Label Switched Paths (LSPs)", RFC 4875, 2314 DOI 10.17487/RFC4875, May 2007, 2315 . 2317 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 2318 and R. Wilton, "Network Management Datastore Architecture 2319 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 2320 . 2322 Authors' Addresses 2324 Xuesong Geng 2325 Huawei 2327 Email: gengxuesong@huawei.com 2329 Mach(Guoyi) Chen 2330 Huawei 2332 Email: mach.chen@huawei.com 2334 Zhenqiang Li 2335 China Mobile 2337 Email: lizhenqiang@chinamobile.com 2339 Reshad Rahman 2340 Cisco Systems 2342 Email: rrahman@cisco.com