idnits 2.17.1 draft-geng-detnet-conf-yang-02.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 38 instances of too long lines in the document, the longest one being 23 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 557 has weird spacing: '...ping-id uin...' == Line 582 has weird spacing: '...ping-id uin...' == Line 603 has weird spacing: '...ping-id uin...' == Line 634 has weird spacing: '...ping-id uin...' == Line 659 has weird spacing: '...ping-id uin...' == (4 more instances...) -- The document date (July 02, 2018) is 2124 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: 'I-D.ietf-teas-yang-te' is defined on line 1709, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-teas-yang-te-topo' is defined on line 1715, but no explicit reference was found in the text == Unused Reference: 'I-D.thubert-tsvwg-detnet-transport' is defined on line 1721, but no explicit reference was found in the text == Unused Reference: 'I-D.varga-detnet-service-model' is defined on line 1726, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1CB' is defined on line 1731, but no explicit reference was found in the text == Unused Reference: 'RFC4875' is defined on line 1774, but no explicit reference was found in the text == Outdated reference: A later version (-13) exists of draft-ietf-detnet-architecture-05 == 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-16 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-15 == Outdated reference: A later version (-22) exists of draft-ietf-teas-yang-te-topo-17 Summary: 2 errors (**), 0 flaws (~~), 19 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: January 3, 2019 Z. Li 6 China Mobile 7 R. Rehman 8 Cisco 9 July 02, 2018 11 DetNet Configuration YANG Model 12 draft-geng-detnet-conf-yang-02 14 Abstract 16 This document defines a YANG data model for Deterministic Networking 17 (DetNet). It covers the model of DetNet device, service layer and 18 transport layer. It also covers the DetNet topology YANG model. 20 Requirements Language 22 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 23 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 24 document are to be interpreted as described in RFC 2119 [RFC2119]. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at https://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on January 3, 2019. 43 Copyright Notice 45 Copyright (c) 2018 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (https://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 61 2. Terminologies . . . . . . . . . . . . . . . . . . . . . . . . 4 62 3. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 4 63 3.1. Modules Relationship . . . . . . . . . . . . . . . . . . 4 64 3.2. Design Considerations . . . . . . . . . . . . . . . . . . 5 65 4. DetNet Topology Attributes . . . . . . . . . . . . . . . . . 5 66 4.1. Node Type . . . . . . . . . . . . . . . . . . . . . . . . 5 67 4.2. PREOF Capability . . . . . . . . . . . . . . . . . . . . 6 68 4.3. Queuing Management Algorithm Capability . . . . . . . . . 6 69 4.4. Resource Reservation Base . . . . . . . . . . . . . . . . 6 70 4.5. Bandwidth Metric . . . . . . . . . . . . . . . . . . . . 6 71 4.6. Delay Metric . . . . . . . . . . . . . . . . . . . . . . 7 72 4.7. Synchronization Accuracy . . . . . . . . . . . . . . . . 8 73 5. DetNet Configuration Attributes . . . . . . . . . . . . . . . 8 74 5.1. DetNet Device Configuration Attribute . . . . . . . . . . 8 75 5.2. DetNet Flow Configuration Attributes . . . . . . . . . . 8 76 5.2.1. DetNet Service Proxy Instance . . . . . . . . . . . . 9 77 5.2.2. DetNet Service Instance . . . . . . . . . . . . . . . 10 78 5.2.3. DetNet Transport Instance . . . . . . . . . . . . . . 12 79 6. DetNet Yang Structure . . . . . . . . . . . . . . . . . . . . 12 80 6.1. DetNet Topology Model Tree Diagram . . . . . . . . . . . 12 81 6.2. DetNet Flow Configuration Model Tree Diagram . . . . . . 13 82 6.3. DetNet Device Configuration Model Tree Diagram . . . . . 16 83 7. DetNet YANG Model . . . . . . . . . . . . . . . . . . . . . . 16 84 7.1. DetNet Topology YANG Model . . . . . . . . . . . . . . . 16 85 7.2. DetNet Flow Configuration YANG Model . . . . . . . . . . 22 86 7.3. DetNet Device Configuration Yang Model . . . . . . . . . 32 87 8. DetNet Configuration Model Classification . . . . . . . . . . 33 88 8.1. Fully Distributed Configuration Model . . . . . . . . . . 34 89 8.2. Fully Centralized Configuration Model . . . . . . . . . . 34 90 8.3. Hybrid Configuration Model . . . . . . . . . . . . . . . 35 91 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 92 10. Security Considerations . . . . . . . . . . . . . . . . . . . 36 93 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 36 94 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 36 95 12.1. Normative References . . . . . . . . . . . . . . . . . . 36 96 12.2. Informative References . . . . . . . . . . . . . . . . . 37 97 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 38 99 1. Introduction 101 A lot of use cases in industry and other areas require the network to 102 provide service that can satisfy strict quality requirements, e.g., 103 extremely low packet loss rate, bounded low latency and jitter, 104 together with other best effort flows [I-D.ietf-detnet-use-cases]. 105 Deterministic Networking (DetNet) is able to provide high quality 106 deterministic service in layer 3 in an IP/MPLS network. 108 [I-D.ietf-detnet-architecture] defines the whole picture of DetNet; 109 [I-D.dt-detnet-dp-sol] defines DetNet flow encapsulation and 110 forwarding process; 112 As defined in the [I-D.ietf-detnet-flow-information-model] , DetNet 113 information model can be distinguished as: 115 o Flow models describe characteristics of data flows. These models 116 describe in detail all relevant aspects of a flow that are needed 117 to support the flow properly by the network between the source and 118 the destination(s). 120 o Service models describe characteristics of services being provided 121 for data flows over a network. These models can be treated as a 122 network operator independent information model. 124 o Configuration models describe in detail the settings required on 125 network nodes to serve a data flow properly. Service and flow 126 information models are used between the user and the network 127 operator. Configuration information models are used between the 128 management/control plane entity of the network and the network 129 nodes. 131 They are shown in the Figure 1. 133 User Network Operator 134 flow/service 135 /\ info model +---+ 136 / \ <---------------> | X | management/control 137 ---- +-+-+ plane entity 138 ^ 139 | configuration 140 | info model 141 +------------+ 142 v | | 143 +-+ | v Network 144 +-+ v +-+ nodes 145 +-+ +-+ 146 +-+ 148 Figure 1. Three Information Models 150 [I-D.ietf-detnet-flow-information-model] defines the user network 151 interface (UNI), including flow/service information model. 153 This document defines a YANG data model for Deterministic Networking 154 (DetNet). It covers the model of DetNet device, DetNet service layer 155 and DetNet transport layer. It also covers the DetNet topology. The 156 models defined in this document can be used for DetNet device 157 capability configuration, DetNet flow configuration, DetNet flow 158 status reporting and DetNet topology discovery. 160 2. Terminologies 162 This documents uses the terminologies defined in 163 [I-D.ietf-detnet-architecture]. 165 3. Model Overview 167 3.1. Modules Relationship 168 +--------------------+ 169 |ietf-detnet-topology| 170 +--------------------+ 172 +-------------------+ +--------------+ 173 |ietf-detnet-device | --------->|ietf-detnet-ip| 174 +-------------------+ / +--------------+ 175 / DetNet ip data plane solution 176 +------------------+ / 177 |ietf-detnet-static|o-----+ 178 +------------------+ \ DetNet mpls data plane solution 179 \ +----------------+ 180 ---------> |ietf-detnet-mpls| 181 +----------------+ 182 o 183 | 184 V 185 +--------------+ 186 |ietf-detnet-sr| 187 +--------------+ 188 Figure 1 : Relationship of DetNet configuration yang modules 190 3.2. Design Considerations 192 There are 6 yang models defined in this draft. The ietf-detnet- 193 topology model covers the DetNet topology that can be used for DetNet 194 topology discovery; the ietf-detnet-device model covers the DetNet 195 device configuration; the ietf-detnet-static covers the static DetNet 196 flow configuration. The ietf-detnet-ip and ietf-detnet-mpls are 197 augmentations to ietf-detnet-static, which covers the IP 198 encapsulation and MPLS encapsulation respectively. The ietf-detnet- 199 sr is an augmentation to ietf-detnet-mpls. The ietf-detnet-ip, ietf- 200 detnet-mpls and ietf-detnet-mpls will be defined in future once the 201 data plane encapsulations are stabilized. 203 4. DetNet Topology Attributes 205 This section introduces the topology related attributes for DetNet. 207 4.1. Node Type 209 [I-D.ietf-detnet-architecture] introduces three types of DetNet nodes 210 which play different roles with different functions. To 211 differentiate to which type a node belong, Node Type is introduced. 212 It also implies DetNet node capabilities, which is useful for path 213 computation. 215 4.2. PREOF Capability 217 Packet Replication, Elimination and Ordering Function (PREOF) are 218 defined in [I-D.ietf-detnet-architecture], a PREOF capable node 219 SHOULD advertise its capabilities that are necessary for the path 220 computation nodes when compute a DetNet flow path. PREOF capability 221 is actually consist of Packet Replication Function (PRF), Packet 222 Elimination Function (PEF), Packet Ordering Function (POF). 224 4.3. Queuing Management Algorithm Capability 226 Queuing Management Algorithms are for congestion protection, which 227 include scheduling, shaping and preemption. IEEE defines several 228 queuing management algorithms for Time Sensitive Networking (TSN), 229 most of them can be reused by DetNet. This document introduces the 230 following types to identify the corresponding Queuing Management 231 Algorithms: 233 o Credit-based shaper algorithm [IEEE802.1Q-2014] 235 o Frame Preemption[IEEE802.1Qbu] 237 o Scheduled Traffic [IEEE802.1Qbv] 239 o Per-Stream Filtering and Policing [IEEE802.1Qci] 241 o Cyclic Queuing and Forwarding [IEEE802.1Qch] 243 4.4. Resource Reservation Base 245 There is a set of parameters that influence reservation operation for 246 the entire device. Those parameters are contained in Reservation 247 Base attribute, including the following parameters: 249 o MaxFanInPorts: maximum number of fan-in ports in the device 251 o MaxPacketSize: maximum packet size that the node allows to 252 transmit 254 o MaxDetNetClasses: maximum number of traffic classes that can be 255 reserved for DetNet 257 4.5. Bandwidth Metric 259 [I-D.ietf-teas-yang-te-topo]defines the following parameters for 260 bandwidth reservation: 262 o Max-link-bandwidth: maximum link bandwidth 263 o Max-resv-link-bandwidth: maximum reservable link bandwidth 265 o Unreserved-bandwidth(N): unreserved bandwidth for priority N 267 Considering the features of DetNet, bandwidth reservation parameters 268 for DetNet are defined as follows to augment the te-topology: 270 o Maximum DetNet Reservable Bandwidth(N): is represented as a 271 percentage of port transmit rate, that can be used by DetNet of 272 traffic class N and it is also available for other DetNet traffic 273 classes that have lower latency requirements; 275 o DetNet Unreserved Bandwidth(N): is represented as a percentage of 276 maximum DetNet Reservable bandwidth that has not been reserved; 278 For example, there are three classes of DetNet service A, B, and C, 279 with A the lowest latency and C the highest. 'Maximum DetNet 280 Reservable Bandwidth(N)' can be presented as 'MaxBw(N)'; DetNet 281 Unreserved Bandwidth(N) can be presented as 'UnBw(N)'. MaxBw(A) can 282 be used by A; MaxBw(B) can by used by A&B, and MaxBw(C) can be used 283 by A&B&C. So, if MaxBw(A)=10, MaxBw(B)=25, MaxBw(C)=40, and we 284 allocate 15 to A, 30 to B and 10 to C, then UnBw(A)=0, UnBw(B)= 0, 285 UnBw(C)=20. 287 4.6. Delay Metric 289 Delay Metric is used to describe the delay of every hop, which 290 includes the following parameters: 292 o Link Delay 294 o Maximum Packet Processing Delay 296 o Minimum Packet Processing Delay 298 o Maximum Output Queuing Delay 300 o Minimum Output Queuing Delay 302 Link Delay specifies the delay along the network media for a packet 303 transmitted from the specified Port of this node to the neighboring 304 Port on a different node. 306 Operations causing Packet Processing Delay includes: Per-Stream 307 Filtering and Policing (PSFP) ([IEEE802.1Qci]), Flow Classification, 308 Forwarding Information Base (FIB) lookup, and etc. It covers the 309 processes from the packet being received by the node to the packet 310 being sent to the output queue. 312 Editor's Note: The delay metric is also discussed in IEEE with other 313 considerations, which can be found: 314 and . More discussions are needed 317 here. 319 4.7. Synchronization Accuracy 321 Most of the DetNet service requires clock synchronization. 322 Synchronization Accuracy is necessary for queuing algorithm 323 configuration and delay prediction. For example, Synchronization 324 Accuracy is an important parameter when calculating the guard band 325 for CQF[IEEE802.1Qch]. 327 Editor's Note: The method used to achieve time synchronization is not 328 specified in this draft. 330 5. DetNet Configuration Attributes 332 DetNet configuration attributes include two parts: DetNet device 333 related attributes (Section 5.1) and DetNet flow related attributes 334 (Section 5.2). 336 5.1. DetNet Device Configuration Attribute 338 DetNet device configuration is flow irrelevant, and it covers PREOF 339 and interfaces configurations. The interface configuration part is 340 defined in IEEE, which are mainly about how to configure the queuing 341 management algorithms and relevant parameters. 343 For DetNet device configuration, the following attributes are 344 included: 346 o PRF Enable 348 o PEF Enable 350 o POF Enable 352 o DetNet interface configuration 354 5.2. DetNet Flow Configuration Attributes 356 DetNet flow configuration attributes include three parts: DetNet 357 service proxy instance configuration, DetNet service instance 358 configuration and DetNet transport layer instance configuration. 360 |<---------- End to End DetNet Service ------>| 361 | Transit Transit | 362 (AC) | |<-Tunnel->| |<-Tnl->| | (AC) 363 End | V V 1 V V 2 V V | End 364 System | +--------+ +--------+ +--------+ | System 365 +---+ | | E1 |==========| R1 |=======| E2 | | +---+ 366 | |--|----|--------| | -------| |--------|---|---| | 367 |CE1| | | DSPI 1 | | | | DSPI 2 | | |CE2| 368 | | |+-------+ | | +-------+| | | 369 +---+ || DSI 1 | | DSI 2 | | DSI 3 || +---+ 370 || + | +------+ | || 371 || +-----+ | |DTI 2 |..DF2..| || 372 || |DTI 1|...DF1....| +------+ | || 373 || +-----+ | |DTI 3 |..DF3..| || 374 ^ |+-------+ | +------+ +-------+| 375 +--------+==========+--------+=======+--------+ ^ 376 Edge Node Relay Node Edge Node 377 | | 378 |<-------- DetNet Service --------->| 379 DF: DetNet Flow 380 DTI: DetNet Transport Instance 381 DSI: DetNet Service Instance 382 DSP: DetNet Service Proxy Instance 384 Figure 2: End to end DetNet Flow Configuration 386 5.2.1. DetNet Service Proxy Instance 388 DetNet Flow to Service Mapping covers the function of DetNet service 389 proxy defined in [I-D.ietf-detnet-architecture], as showed in the 390 picture below: 392 +-------------+--------------+--------------+ 393 | In-coming | |DetNet Service| 394 | Flow 1 | | Instance 1 | 395 +-------------+ Flow +--------------+ 396 | In-coming | |DetNet Service| 397 | Flow 2 | Service | Instance 2 | 398 +-------------+ +--------------+ 399 | In-coming | Mapping | | 400 | Flow 3 | |DetNet Service| 401 +-------------+ | Instance 3 | 402 | In-coming | | | 403 | Flow 4 | | | 404 +-------------+--------------+--------------+ 406 Figure 3: DetNet Service Proxy Instance in Ingress Node 407 At the ingress node, incoming DetNet flows outside the DetNet domain 408 will be mapped to a DetNet service instance. If flow aggregation is 409 allowed, multiple incoming flows can be mapped onto single DetNet 410 service instance. 412 +--------------+--------------+--------------+ 413 |DetNet Service| | Out-going | 414 | Instance 1 | | Flow 1 | 415 +--------------+ Flow +--------------+ 416 |DetNet Service| | Out-going | 417 | Instance 2 | Service | Flow 2 | 418 +--------------+ +--------------+ 419 | | Mapping | Out-going | 420 |DetNet Service| | Flow 3 | 421 | Instance 3 | +--------------+ 422 | | | Out-going | 423 | | | Flow 4 | 424 +--------------+--------------+--------------+ 426 Figure 4: DetNet Service Proxy Instance in Egress Node 428 At the egress node, a DetNet service instance will be mapped onto 429 out-going flow. If flow aggregation is allowed, a DetNet Service 430 Instance can be mapped onto multiple out-going flows. 432 DetNet service proxy instance includes: in-coming/out-going flow, 433 DetNet service instance, and the mapping relationship between in- 434 coming/out-going flow list and DetNet service instance list. 436 The in-coming/out-going flows are identified by the following 437 attributes: 439 o Flow Identification 441 o Traffic Specification 443 DetNet service instance attributes are specified in section 5.2.2. 445 5.2.2. DetNet Service Instance 447 DetNet Service Instance (DSI) covers the functions of DetNet service 448 layer, including flow PRF (Packet Replication Function), PEF(Packet 449 Elimination Function) and POF(Packet Ordering Function). 451 +--------------+--------------+--------------+ 452 | In-segment 1 | | | 453 | | | | 454 +--------------+ Segment | | 455 | In-segment 2 | | Out-segment | 456 | | Mapping | | 457 +--------------+ | +-----------+ 458 | In-segment 3 | Base | | | 459 | | | | DetNet | 460 +--------------+ | | Transport | 461 | In-segment 3 | | | Instance 1| 462 | | | +-----------+ 463 +--------------+--------------+--------------+ 465 Figure 5: DetNet Service Instance 467 DetNet Service Instance includes: in-segment list, out-segment list 468 and the mapping relationship between in-segment list and out-segment 469 list. When the DetNet service instance operates Packet Elimination 470 Function(PEF), multiple in-segments will be mapped onto single out- 471 segment (as showed in figure 4); when the DetNet service instance 472 operates Packet Replication Function(PRF) in the relay node, single 473 in-segment will be mapped onto multiple out-segments; When the DetNet 474 service instance operate both PEF and PRF in the relay node, multiple 475 in-segments will be mapped onto multiple out-segments. 477 In-segment attributes include: 479 o Flow Identification 481 o Function (PRF/PEF/POF) 483 Out-segment attributes include: 485 o Flow Identification 487 o DetNet Transport Instance 489 DetNet transport instance attributes are specified in section 5.2.3. 491 The Flow Identification are closely related to the data plane 492 encapsulations that are under developing. This part will be 493 augmented by the corresponding yang model(ietf-detnet-mpls/ietf- 494 detnet-ip). 496 5.2.3. DetNet Transport Instance 498 DetNet Transport Instance (DTI) covers the functions of DetNet 499 transport layer, it describes the DetNet tunnel that is used to 500 transmit DetNet flows between DetNet service instances. 502 DetNet Transport Instance attributes include: 504 The tunnel attributes are closely related to the data plane 505 encapsulations that are under developing. This part will be 506 augmented by the corresponding yang model(ietf-detnet-mpls/ietf- 507 detnet-ip). 509 6. DetNet Yang Structure 511 6.1. DetNet Topology Model Tree Diagram 513 module: ietf-te-detnet-topology 514 augment /nw:networks/nw:network/nw:node: 515 +--rw detnet-performance-metric-attributes 516 | +--rw maximum-detnet-reservable-bandwidth 517 | | +--rw te-bandwidth 518 | | +--rw (technology)? 519 | | +--:(generic) 520 | | +--rw generic? te-bandwidth 521 | +--rw reserved-detnet-bandwidth 522 | | +--rw te-bandwidth 523 | | +--rw (technology)? 524 | | +--:(generic) 525 | | +--rw generic? te-bandwidth 526 | +--rw available-detnet-bandwidth 527 | | +--rw te-bandwidth 528 | | +--rw (technology)? 529 | | +--:(generic) 530 | | +--rw generic? te-bandwidth 531 | +--rw minimum-detnet-device-delay? uint32 532 | +--rw maximum-detnet-device-delay? uint32 533 +--rw detnet-queuing-management-algorithm 534 +--rw queuing-management-algorithm? enumeration 535 augment /nw:networks/nw:network/nt:link: 536 +--rw detnet-node-type 537 | +--rw detnet-node-type? enumeration 538 +--rw detnet-resource-reservation-attributes 539 | +--rw MaxFanInPorts? uint32 540 | +--rw MaxPacketSize? uint32 541 | +--rw MaxDetNetClasses? uint32 542 +--rw detnet-elimination-capability? boolean 543 +--rw detnet-replication-capability? boolean 545 6.2. DetNet Flow Configuration Model Tree Diagram 547 module: ietf-detnet 548 +--rw detnet-config 549 | +--rw (detnet-node-type)? 550 | +--:(detnet-transit-node-type) 551 | | +--rw detnet-transport-instance 552 | +--:(detnet-relay-node-type) 553 | | +--rw control-plane-protocal 554 | | | +--rw name? string 555 | | +--rw segment-mapping-base 556 | | +--rw segment-mapping* [segment-mapping-id] 557 | | +--rw segment-mapping-id uint32 558 | | +--rw active? boolean 559 | | +--rw last-updated? yang:date-and-time 560 | | +--rw in-segment 561 | | | +--rw in-segment-list 562 | | | +--rw in-segment* [in-segment-id] 563 | | | +--rw in-segment-id uint32 564 | | | +--rw incoming-interface? if:interface-ref 565 | | | +--rw operation? segment-operation-type 566 | | | +--rw (in-segment-type)? 567 | | | +--:(non-detnet-in-segment) 568 | | | +--rw sequence-number-generation 569 | | | +--rw bit-number? uint32 570 | | | +--rw upper-bound? uint32 571 | | | +--rw lower-bound? uint32 572 | | +--rw out-segment 573 | | +--rw out-segment-list 574 | | +--rw out-segment* [out-segment-id] 575 | | +--rw out-segment-id uint32 576 | | +--rw outgoing-interface? if:interface-ref 577 | | +--rw detnet-transport-instance 578 | | +--rw detnet-transport-instance 579 | +--:(detnet-edge-node-type) 580 | +--rw flow-to-detnet-mapping-base 581 | +--rw flow-to-detnet-mappings* [flow-to-detnet-mapping-id] 582 | +--rw flow-to-detnet-mapping-id uint16 583 | +--rw client-flows 584 | | +--rw client-flows* [client-flow-id] 585 | | +--rw client-flow-id uint16 586 | | +--rw flow-id? uint16 587 | | +--rw flow-identification 588 | | | +--rw source-ip-address? inet:ip-address 589 | | | +--rw destination-ip-address? inet:ip-address 590 | | | +--rw source-mac-address? yang:mac-address 591 | | | +--rw destination-mac-address? yang:mac-address 592 | | | +--rw ipv6-flow-label? uint32 593 | | | +--rw mpls-label? rt-types:mpls-label 594 | | +--rw traffic-specification 595 | | +--rw max-packets-per-interval? uint16 596 | | +--rw max-packet-size? uint16 597 | | +--rw queuing-algorithm-selection? uint8 598 | +--rw detnet-service-instance 599 | +--rw control-plane-protocal 600 | | +--rw name? string 601 | +--rw segment-mapping-base 602 | +--rw segment-mapping* [segment-mapping-id] 603 | +--rw segment-mapping-id uint32 604 | +--rw active? boolean 605 | +--rw last-updated? yang:date-and-time 606 | +--rw in-segment 607 | | +--rw in-segment-list 608 | | +--rw in-segment* [in-segment-id] 609 | | +--rw in-segment-id uint32 610 | | +--rw incoming-interface? if:interface-ref 611 | | +--rw operation? segment-operation-type 612 | | +--rw (in-segment-type)? 613 | | +--:(non-detnet-in-segment) 614 | | +--rw sequence-number-generation 615 | | +--rw bit-number? uint32 616 | | +--rw upper-bound? uint32 617 | | +--rw lower-bound? uint32 618 | +--rw out-segment 619 | +--rw out-segment-list 620 | +--rw out-segment* [out-segment-id] 621 | +--rw out-segment-id uint32 622 | +--rw outgoing-interface? if:interface-ref 623 | +--rw detnet-transport-instance 624 | +--rw detnet-transport-instance 625 +--ro detnet-state 626 +--ro (detnet-node-type)? 627 +--:(detnet-transit-node-type) 628 | +--ro detnet-transport-instance 629 +--:(detnet-relay-node-type) 630 | +--ro control-plane-protocal 631 | | +--ro name? string 632 | +--ro segment-mapping-base 633 | +--ro segment-mapping* [segment-mapping-id] 634 | +--ro segment-mapping-id uint32 635 | +--ro active? boolean 636 | +--ro last-updated? yang:date-and-time 637 | +--ro in-segment 638 | | +--ro in-segment-list 639 | | +--ro in-segment* [in-segment-id] 640 | | +--ro in-segment-id uint32 641 | | +--ro incoming-interface? if:interface-ref 642 | | +--ro operation? segment-operation-type 643 | | +--ro (in-segment-type)? 644 | | +--:(non-detnet-in-segment) 645 | | +--ro sequence-number-generation 646 | | +--ro bit-number? uint32 647 | | +--ro upper-bound? uint32 648 | | +--ro lower-bound? uint32 649 | +--ro out-segment 650 | +--ro out-segment-list 651 | +--ro out-segment* [out-segment-id] 652 | +--ro out-segment-id uint32 653 | +--ro outgoing-interface? if:interface-ref 654 | +--ro detnet-transport-instance 655 | +--ro detnet-transport-instance 656 +--:(detnet-edge-node-type) 657 +--ro flow-to-detnet-mapping-base 658 +--ro flow-to-detnet-mappings* [flow-to-detnet-mapping-id] 659 +--ro flow-to-detnet-mapping-id uint16 660 +--ro client-flows 661 | +--ro client-flows* [client-flow-id] 662 | +--ro client-flow-id uint16 663 | +--ro flow-id? uint16 664 | +--ro flow-identification 665 | | +--ro source-ip-address? inet:ip-address 666 | | +--ro destination-ip-address? inet:ip-address 667 | | +--ro source-mac-address? yang:mac-address 668 | | +--ro destination-mac-address? yang:mac-address 669 | | +--ro ipv6-flow-label? uint32 670 | | +--ro mpls-label? rt-types:mpls-label 671 | +--ro traffic-specification 672 | +--ro max-packets-per-interval? uint16 673 | +--ro max-packet-size? uint16 674 | +--ro queuing-algorithm-selection? uint8 675 +--ro detnet-service-instance 676 +--ro control-plane-protocal 677 | +--ro name? string 678 +--ro segment-mapping-base 679 +--ro segment-mapping* [segment-mapping-id] 680 +--ro segment-mapping-id uint32 681 +--ro active? boolean 682 +--ro last-updated? yang:date-and-time 683 +--ro in-segment 684 | +--ro in-segment-list 685 | +--ro in-segment* [in-segment-id] 686 | +--ro in-segment-id uint32 687 | +--ro incoming-interface? if:interface-ref 688 | +--ro operation? segment-operation-type 689 | +--ro (in-segment-type)? 690 | +--:(non-detnet-in-segment) 691 | +--ro sequence-number-generation 692 | +--ro bit-number? uint32 693 | +--ro upper-bound? uint32 694 | +--ro lower-bound? uint32 695 +--ro out-segment 696 +--ro out-segment-list 697 +--ro out-segment* [out-segment-id] 698 +--ro out-segment-id uint32 699 +--ro outgoing-interface? if:interface-ref 700 +--ro detnet-transport-instance 701 +--ro detnet-transport-instance 703 6.3. DetNet Device Configuration Model Tree Diagram 705 module: ietf-detnet-device 706 +--rw detnet-device-config 707 | +--rw PEF-enabled? boolean 708 | +--rw PRF-enabled? boolean 709 | +--rw POF-enabled? boolean 710 | +--rw detnet-interfaces 711 +--ro detnet-device-states 712 +--ro PEF-enabled? boolean 713 +--ro PRF-enabled? boolean 714 +--ro POF-enabled? boolean 715 +--ro detnet-interfaces 717 7. DetNet YANG Model 719 7.1. DetNet Topology YANG Model 721 file "ietf-detnet-topology@2018-01-15.yang" 722 module ietf-detnet-topology { 723 namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-topology"; 724 prefix "detnet-topo"; 726 import ietf-te-types { 727 prefix "te-types"; 728 } 730 import ietf-routing-types { 731 prefix "rt-types"; 732 } 734 import ietf-te-topology { 735 prefix "tet"; 737 } 739 import ietf-network { 740 prefix "nw"; 741 } 743 import ietf-network-topology { 744 prefix "nt"; 745 } 747 organization 748 "IETF Deterministic Networking(detnet)Working Group"; 750 contact 751 "WG Web: 752 WG List: 754 WG Chair: Lou Berger 755 757 Editor: Xuesong Geng 758 760 Editor: Mach Chen 761 763 Eidtor: Reshad Rahman 764 "; 766 description 767 "This YAGN module augments the 'ietf-te-topology' 768 module with detnet capability data for detnet 769 configuration"; 771 revision "2018-01-15" { 772 description "Initial revision"; 773 reference "RFC XXXX: YANG Data Model for DetNet Topologies"; 774 //RFC Ed.: replace XXXX with actual RFC number and remove 775 // this note 776 } 778 grouping detnet-link-info-attributes{ 779 description 780 "DetNet capability attributes in a DetNet topology"; 781 container detnet-performance-metric-attributes{ 782 description 783 "Link performance information in real time."; 784 uses detnet-performance-metric-attributes; 786 } 787 container detnet-queuing-management-algorithm{ 788 description 789 "Detnet queuing management algorithm used in 790 output queue"; 791 uses detnet-queuing-management-algorithm; 792 } 793 } 795 grouping detnet-performance-metric-attributes{ 796 description 797 "Link performance information in real time."; 798 container maximum-detnet-reservable-bandwidth{ 799 uses te-types:te-bandwidth; 800 description 801 "This container specifies the maximum bandwidth 802 that is reserved for DetNet on this link."; 803 } 804 container reserved-detnet-bandwidth{ 805 uses te-types:te-bandwidth; 806 description 807 "This container specifies the bandwidth that has 808 been reserved for DetNet on this link."; 809 } 810 container available-detnet-bandwidth{ 811 uses te-types:te-bandwidth; 812 description 813 "This container specifies the bandwidth that can 814 be used for new DetNet flows on this link."; 815 } 816 leaf minimum-detnet-device-delay{ 817 type uint32; 818 description 819 "Minimum delay in the device for DetNet flows"; 820 } 821 leaf maximum-detnet-device-delay{ 822 type uint32; 823 description 824 "Maximum delay in the device for DetNet flows"; 825 } 826 } 828 grouping detnet-queuing-management-algorithm{ 829 description 830 "Detnet queuing management algorithm used in 831 output queue"; 832 leaf queuing-management-algorithm{ 833 type enumeration{ 834 enum credit-based-shaping{ 835 reference 836 "IEEE P802.1 Qav"; 837 } 838 enum time-aware-shaping{ 839 reference 840 "IEEE P802.1 Qbv"; 841 } 842 enum cyclic-queuing-and-forwarding{ 843 reference 844 "IEEE P802.1 Qch"; 845 } 846 enum asynchronous-traffic-shaping{ 847 reference 848 "IEEE P802.1 Qcr"; 849 } 850 } 851 description 852 "Detnet queuing management algorithm type"; 853 } 854 } 856 grouping detnet-node-info-attributes{ 857 description 858 "DetNet capability attributes in a DetNet node"; 859 container detnet-node-type{ 860 description 861 "Three types of DetNet nodes"; 862 reference 863 "draft-ietf-detnet-architecture-03: 864 Deterministic Networking Architecture"; 865 uses detnet-node-type; 866 } 867 container detnet-resource-reservation-attributes{ 868 description 869 "Attributes about resource reservation for 870 DetNet flows"; 871 uses detnet-resource-reservation-attributes; 872 } 873 leaf detnet-elimination-capability{ 874 type boolean; 875 description 876 "This node is able to do DetNet packet 877 elimination"; 878 } 879 leaf detnet-replication-capability{ 880 type boolean; 881 description 882 "This node is able to do DetNet packet 883 replication"; 884 } 885 } 887 grouping detnet-node-type{ 888 description 889 "This grouping defines three types of DetNet nodes"; 890 reference 891 "draft-ietf-detnet-architecture-03:Deterministic 892 Networking Architecture"; 893 leaf detnet-node-type{ 894 type enumeration{ 895 enum edge-node{ 896 description 897 "An instance of a DetNet relay node that 898 includes either a DetNet service layer proxy 899 function for DetNet service protection (e.g. 900 the addition or removal of packet sequencing 901 information) for one or more end systems, or 902 starts or terminate congestion protection at 903 the DetNet transport layer,analogous to a 904 Label Edge Router (LER)."; 905 } 906 enum relay-node{ 907 description 908 "A DetNet node including a service layer 909 function that interconnects different DetNet 910 transport layer paths to provide service 911 protection.A DetNet relay node can be a bridge, 912 a router, a firewall, or any other system that 913 participates in the DetNet service layer. It 914 typically incorporates DetNet transport layer 915 functions as well, in which case it is 916 collocated with a transit node."; 917 } 918 enum transit-node{ 919 description 920 "A node operating at the DetNet transport layer, 921 that utilizes link layer and/or network layer 922 switching across multiple links and/or 923 sub-networks to provide paths for DetNet 924 service layer functions.Optionally provides 925 congestion protection over those paths.An MPLS 926 LSR is an example of a DetNet transit node."; 927 } 928 } 929 description 930 "The type this node belongs to, which also determines 931 the role the node can play in DetNet "; 932 } 933 } 935 grouping detnet-resource-reservation-attributes{ 936 description 937 "This grouping describs reservation operation for 938 the entire device"; 939 leaf MaxFanInPorts{ 940 type uint32; 941 description 942 "maximum number of fan-in ports in the device"; 943 } 944 leaf MaxPacketSize{ 945 type uint32; 946 description 947 "maximum Packet size the device allows"; 948 } 949 leaf MaxDetNetClasses{ 950 type uint32; 951 description 952 "maximum number of traffic classes that can be 953 reserved for DetNet"; 954 } 955 } 957 augment "/nw:networks/nw:network/nw:node" { 958 when "../nw:network-types/tet:te-topology" 959 { 960 description 961 ""; 962 } 963 description 964 "Advertised DetNet link information attributes."; 965 uses detnet-link-info-attributes; 966 } 968 augment "/nw:networks/nw:network/nt:link" { 969 when "../nw:network-types/tet:te-topology" 970 { 971 description 972 ""; 973 } 974 description 975 "Advertised DetNet node information attributes."; 976 uses detnet-node-info-attributes; 978 } 979 } 980 982 7.2. DetNet Flow Configuration YANG Model 984 file "ietf-flow-detnet@2018-06-26.yang" 985 module ietf-flow-detnet { 986 namespace "urn:ietf:params:xml:ns:yang:ietf-flow-detnet"; 987 prefix "detnet"; 989 import ietf-yang-types { 990 prefix "yang"; 991 } 993 import ietf-interfaces { 994 prefix "if"; 995 } 997 import ietf-inet-types{ 998 prefix "inet"; 999 } 1001 import ietf-routing-types { 1002 prefix "rt-types"; 1003 } 1005 organization "IETF DetNet Working Group"; 1007 contact 1008 "WG Web: 1009 WG List: 1010 WG Chair: Lou Berger 1011 1012 Editor: Xuesong Geng 1013 1014 Editor: Mach Chen 1015 1016 Editor: Zhenqiang Li 1017 1018 Eidtor: Reshad Rahman 1019 "; 1020 description 1021 "This YAGN module describes the parameters needed 1022 for DetNet configuration"; 1024 revision "2018-06-26" { 1025 description "Latest revision for ietf-detnet"; 1026 reference 1027 "RFC XXXX: YANG Data Model for ietf-detnet"; 1028 } 1030 identity detnet-node-type { 1031 description 1032 "base detnet-node-type"; 1033 } 1035 identity detnet-edge-node-type { 1036 base detnet-node-type; 1037 description 1038 "An instance of a DetNet relay node that 1039 includes either a DetNet service layer proxy 1040 function for DetNet service protection (e.g. 1041 the addition or removal of packet sequencing 1042 information) for one or more end systems, or 1043 starts or terminate congestion protection at 1044 the DetNet transport layer,analogous to a 1045 Label Edge Router (LER)."; 1046 } 1048 identity detnet-relay-node-type { 1049 base detnet-node-type; 1050 description 1051 "A DetNet node including a service layer 1052 function that interconnects different DetNet 1053 transport layer paths to provide service 1054 protection.A DetNet relay node can be a bridge, 1055 a router, a firewall, or any other system that 1056 participates in the DetNet service layer. It 1057 typically incorporates DetNet transport layer 1058 functions as well, in which case it is 1059 collocated with a transit node."; 1060 } 1062 identity detnet-transit-node-type { 1063 base detnet-node-type; 1064 description 1065 "A node operating at the DetNet transport layer, 1066 that utilizes link layer and/or network layer 1067 switching across multiple links and/or 1068 sub-networks to provide paths for DetNet 1069 service layer functions.Optionally provides 1070 congestion protection over those paths.An MPLS 1071 LSR is an example of a DetNet transit node."; 1072 } 1073 identity detnet-transport-layer { 1074 description 1075 "The layer that optionally provides congestion 1076 protection for DetNet flows over paths provided 1077 by the underlying network."; 1078 } 1080 identity detnet-service-layer { 1081 description 1082 "The layer at which service protection is 1083 provided, either packet sequencing, replication, 1084 and elimination or packet encoding"; 1085 } 1087 typedef segment-operation-type { 1088 type enumeration { 1089 enum replication { 1090 description 1091 "One of the Packet Replication and 1092 Elimination Function (PREF), which does 1093 the packet elimination 1094 processing of DetNet flow packets in 1095 edge or relay nodes."; 1096 } 1097 enum elimination { 1098 description 1099 "One of the Packet Replication and 1100 Elimination Function (PREF), which does 1101 the packet replication processing of 1102 DetNet flow packets in 1103 edge or relay nodes."; 1104 } 1105 enum elimination-and-replication { 1106 description 1107 "One of the Packet Replication and 1108 Elimination Function (PREF), which does 1109 the packet elimination and replication 1110 processing of DetNet flow packets in 1111 edge or relay nodes."; 1112 } 1113 } 1114 description 1115 ""; 1116 } 1117 grouping detnet-transport-instance{ 1118 description 1119 ""; 1120 container detnet-transport-instance{ 1121 description 1122 "the contents of detnet transport instance 1123 depend on data plane solution of this detnet 1124 domain"; 1125 } 1126 } 1128 grouping sequence-number-generation { 1129 description 1130 ""; 1131 leaf bit-number{ 1132 type uint32; 1133 description 1134 ""; 1135 } 1136 leaf upper-bound { 1137 type uint32; 1138 description 1139 ""; 1140 } 1141 leaf lower-bound { 1142 type uint32; 1143 description 1144 ""; 1145 } 1146 } 1148 grouping in-segment-content { 1149 description 1150 "in-segment grouping in the detnet service 1151 layer"; 1152 container in-segment-list { 1153 description 1154 ""; 1155 list in-segment { 1156 key "in-segment-id"; 1157 description 1158 ""; 1159 leaf in-segment-id{ 1160 type uint32; 1161 description 1162 ""; 1163 } 1164 leaf incoming-interface { 1165 type if:interface-ref; 1166 description 1167 "Name of the incoming 1168 interface."; 1170 } 1171 leaf operation { 1172 type segment-operation-type; 1173 description 1174 ""; 1175 } 1176 choice in-segment-type{ 1177 description 1178 ""; 1179 case non-detnet-in-segment{ 1180 description 1181 ""; 1182 container sequence-number-generation{ 1183 description 1184 ""; 1185 uses sequence-number-generation; 1186 } 1187 } 1188 } 1189 } 1190 } 1191 } 1193 grouping out-segment-content{ 1194 description 1195 ""; 1196 container out-segment-list { 1197 description 1198 ""; 1199 list out-segment{ 1200 key "out-segment-id"; 1201 description 1202 ""; 1203 leaf out-segment-id{ 1204 type uint32; 1205 description 1206 ""; 1207 } 1208 leaf outgoing-interface { 1209 type if:interface-ref; 1210 description 1211 "Name of the outgoing interface."; 1212 } 1213 container detnet-transport-instance{ 1214 description 1215 ""; 1216 uses detnet-transport-instance; 1217 } 1219 } 1220 } 1221 } 1223 grouping segment-mapping-metadata{ 1224 description 1225 ""; 1226 leaf active { 1227 type boolean; 1228 description 1229 "Whether the segment mapping base is active 1230 or not"; 1231 } 1232 leaf last-updated { 1233 type yang:date-and-time; 1234 description 1235 "Time stamp of the last modification of the 1236 mapping. If the mapping was never modified, 1237 it is the time when the mapping was 1238 inserted into the RIB."; 1239 } 1240 } 1242 grouping detnet-service-instance{ 1243 description 1244 ""; 1245 container control-plane-protocal{ 1246 description 1247 ""; 1248 leaf name{ 1249 type string; 1250 description 1251 "the name of the control plane protocal"; 1252 } 1253 } 1254 container segment-mapping-base{ 1255 description 1256 ""; 1257 list segment-mapping{ 1258 key "segment-mapping-id"; 1259 description 1260 ""; 1261 leaf segment-mapping-id{ 1262 type uint32; 1263 description 1264 ""; 1265 } 1266 uses segment-mapping-metadata; 1267 container in-segment{ 1268 description 1269 ""; 1270 uses in-segment-content; 1271 } 1272 container out-segment{ 1273 description 1274 ""; 1275 uses out-segment-content; 1276 } 1277 } 1278 } 1279 } 1281 grouping flow-identfication { 1282 description 1283 "DetNet flow identification"; 1284 reference 1285 "draft-farkas-detnet-flow-information-model"; 1286 leaf source-ip-address { 1287 type inet:ip-address; 1288 description 1289 "Source IP address"; 1290 } 1291 leaf destination-ip-address { 1292 type inet:ip-address; 1293 description 1294 "Destination IP address"; 1295 } 1296 leaf source-mac-address { 1297 type yang:mac-address; 1298 description 1299 "Source MAC address"; 1300 } 1301 leaf destination-mac-address { 1302 type yang:mac-address; 1303 description 1304 "Destination MAC address"; 1305 } 1306 leaf ipv6-flow-label { 1307 type uint32; 1308 description 1309 "ipv6 flow label"; 1310 } 1311 leaf mpls-label { 1312 type rt-types:mpls-label; 1313 description 1314 "MPLS Label"; 1316 } 1317 } 1319 grouping traffic-specification{ 1320 description 1321 "traffic-specification specifies how the Source 1322 transmits packets for the flow. This is the 1323 promise/request of the Source to the network. 1324 The network uses this traffic specification 1325 to allocate resources and adjust queue 1326 parameters in network nodes."; 1327 reference 1328 "draft-farkas-detnet-flow-information-model"; 1329 leaf max-packets-per-interval{ 1330 type uint16; 1331 description 1332 "max-packets-per-interval specifies the maximum 1333 number of packets that the application shall 1334 transmit in one Interval."; 1335 } 1336 leaf max-packet-size{ 1337 type uint16; 1338 description 1339 "max-packet-size specifies maximum packet size 1340 that the Source will transmit"; 1341 } 1342 leaf queuing-algorithm-selection{ 1343 type uint8; 1344 description 1345 ""; 1346 } 1347 } 1349 grouping client-flow{ 1350 description 1351 ""; 1352 leaf flow-id{ 1353 type uint16; 1354 description 1355 ""; 1356 } 1357 container flow-identification{ 1358 description 1359 ""; 1360 uses flow-identfication; 1361 } 1362 container traffic-specification{ 1363 description 1364 ""; 1365 uses traffic-specification; 1366 } 1367 } 1369 grouping flow-to-detnet-mapping{ 1370 description 1371 ""; 1372 container flow-to-detnet-mapping-base{ 1373 description 1374 ""; 1375 list flow-to-detnet-mappings{ 1376 key "flow-to-detnet-mapping-id"; 1377 description 1378 ""; 1379 leaf flow-to-detnet-mapping-id{ 1380 type uint16; 1381 description 1382 ""; 1383 } 1384 container client-flows{ 1385 description 1386 ""; 1387 list client-flows{ 1388 key "client-flow-id"; 1389 description 1390 ""; 1391 leaf client-flow-id{ 1392 type uint16; 1393 description 1394 ""; 1395 } 1396 uses client-flow; 1397 } 1398 } 1399 container detnet-service-instance{ 1400 description 1401 ""; 1402 uses detnet-service-instance; 1403 } 1404 } 1405 } 1406 } 1408 /* Congfiguration Data */ 1410 container detnet-config{ 1411 description 1412 ""; 1413 choice detnet-node-type{ 1414 description 1415 ""; 1416 case detnet-transit-node-type{ 1417 description 1418 ""; 1419 uses detnet-transport-instance; 1420 } 1421 case detnet-relay-node-type{ 1422 description 1423 ""; 1424 uses detnet-service-instance; 1425 } 1426 case detnet-edge-node-type{ 1427 description 1428 ""; 1429 uses flow-to-detnet-mapping; 1430 } 1431 } 1432 } 1434 /* Status Data */ 1436 container detnet-state{ 1437 config "false"; 1438 description 1439 ""; 1440 choice detnet-node-type{ 1441 description 1442 ""; 1443 case detnet-transit-node-type{ 1444 description 1445 ""; 1446 uses detnet-transport-instance; 1447 } 1448 case detnet-relay-node-type{ 1449 description 1450 ""; 1451 uses detnet-service-instance; 1452 } 1453 case detnet-edge-node-type{ 1454 description 1455 ""; 1456 uses flow-to-detnet-mapping; 1457 } 1458 } 1459 } 1461 } 1462 1464 7.3. DetNet Device Configuration Yang Model 1466 file "ietf-detnet-device@2018-06-29.yang" 1467 module ietf-detnet-device { 1468 namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-device"; 1469 prefix "detnet-device"; 1471 organization "IETF DetNet Working Group"; 1472 contact 1473 "WG Web: 1474 WG List: 1475 WG Chair: Lou Berger 1476 1477 Editor: Xuesong Geng 1478 1479 Editor: Mach Chen 1480 1481 Editor: Zhenqiang Li 1482 1483 Eidtor: Reshad Rahman 1484 "; 1485 description 1486 "This YAGN module describes the parameters needed 1487 for DetNet configuration in device"; 1488 revision "2018-06-29" { 1489 description 1490 "Latest revision for ietf-detnet-device"; 1491 reference 1492 "RFC XXXX: YANG Data Model for ietf-detnet-device"; 1493 } 1495 grouping detnet-device-parameters { 1496 description 1497 "Parameters of queuing, bandwidth on device."; 1498 leaf PEF-enabled { 1499 type boolean; 1500 description 1501 "A Packet Elimination Function (PEF) eliminates duplicate 1502 copies of packets to prevent excess packets flooding the 1503 network or duplicate packets being sent out of the DetNet 1504 domain. PEF can be implemented by an edge node, a relay 1505 node, or an end system."; 1506 } 1507 leaf PRF-enabled { 1508 type boolean; 1509 description 1510 "A Packet Replication Function (PRF) replicates DetNet flow 1511 packets and forwards them to one or more next hops in the 1512 DetNet domain. The number of packet copies sent to each next 1513 hop is a DetNet flow specific parameter at the node doing the 1514 replication. PRF can be implemented by an edge node, a relay 1515 node, or an end system."; 1516 } 1517 leaf POF-enabled { 1518 type boolean; 1519 description 1520 "A Packet Ordering Function (POF) re-orders packets within a 1521 DetNet flow that are received out of order. This function 1522 can be implemented by an edge node, a relay node, or an end 1523 system."; 1524 } 1526 container detnet-interfaces { 1527 description 1528 "A list of interfaces that are DetNet enabled."; 1529 //Edior notes: This is heavily related to the YANG models 1530 //defined in IEEE Qcw project. 1531 } 1532 } 1534 container detnet-device-config { 1535 description 1536 "DetNet device configurations."; 1537 uses detnet-device-parameters; 1538 } 1540 container detnet-device-states { 1541 config false; 1542 description 1543 "DetNet device states."; 1544 uses detnet-device-parameters; 1545 } 1546 } 1547 1549 8. DetNet Configuration Model Classification 1551 This section defines three classes of DetNet configuration model: 1552 fully distributed configuration model, fully centralized 1553 configuration model, hybrid configuration model, based on different 1554 network architectures, showing how configuration information 1555 exchanges between various entities in the network. 1557 8.1. Fully Distributed Configuration Model 1559 In a fully distributed configuration model, UNI information is 1560 transmitted over DetNet UNI protocol from the user side to the 1561 network side; then UNI information and network configuration 1562 information propagate in the network over distributed control plane 1563 protocol. For example: 1565 1) IGP collects topology information and DetNet capabilities of 1566 network([I-D.geng-detnet-info-distribution]); 1568 2) Control Plane of the Edge Node(Ingress) receives a flow 1569 establishment request from UNI and calculates a/some valid path(s); 1571 3) Using RSVP-TE, Edge Node(Ingress) sends a PATH message with 1572 explicit route. After receiving the PATH message, the other Edge 1573 Node(Egress) sends a Resv message with distributed label and resource 1574 reservation request. 1576 Current distributed control plane protocol,e.g., RSVP-TE[RFC3209], 1577 SRP[IEEE802.1Qcc], can only reserve bandwidth along the path, while 1578 the configuration of a fine-grained schedule, e.g.,Time Aware 1579 Shaping(TAS) defined in [IEEE802.1Qbv], is not supported. 1581 The fully distributed configuration model is not covered by this 1582 draft. It should be discussed in the future DetNet control plane 1583 work. 1585 8.2. Fully Centralized Configuration Model 1587 In the fully centralized configuration model, UNI information is 1588 transmitted from Centralized User Configuration (CUC) to Centralized 1589 Network Configuration(CNC). Configurations of routers for DetNet 1590 flows are performed by CNC with network management protocol.For 1591 example: 1593 1) CNC collects topology information and DetNet capability of network 1594 through Netconf; 1596 2) CNC receives a flow establishment request from UNI and calculates 1597 a/some valid path(s); 1599 3) CNC configures the devices along the path for flow transmission. 1601 8.3. Hybrid Configuration Model 1603 In the hybrid configuration model, controller and control plane 1604 protocols work together to offer DetNet service, and there are a lot 1605 of possible combinations. For example: 1607 1) CNC collects topology information and DetNet capability of network 1608 through IGP/BGP-LS; 1610 2) CNC receives a flow establishment request from UNI and calculates 1611 a/some valid path(s); 1613 3) Based on the calculation result, CNC distributes flow path 1614 information to Edge Node(Ingress) and other information(e.g. 1615 replication/elimination) to the relevant nodes. 1617 4) Using RSVP-TE, Edge Node(Ingress) sends a PATH message with 1618 explicit route. After receiving the PATH message, the other Edge 1619 Node(Egress) sends a Resv message with distributed label and resource 1620 reservation request. 1622 or 1624 1) Controller collects topology information and DetNet capability of 1625 network through IGP/BGP-LS; 1627 2) Control Plane of Edge Node(Ingress) receives a flow establishment 1628 request from UNI; 1630 3) Edge Node(Ingress) sends the path establishment request to CNC 1631 through PCEP; 1633 4) After Calculation, CNC sends back the path information of the flow 1634 to the Edge Node(Ingress) through PCEP; 1636 5) Using RSVP-TE, Edge Node(Ingress) sends a PATH message with 1637 explicit route. After receiving the PATH message, the other Edge 1638 Node(Egress) sends a Resv message with distributed label and resource 1639 reservation request. 1641 There are also other variations that can be included in the hybrid 1642 model. This draft can not coverer all the control plane data needed 1643 in hybrid configuration models. Every solution has there own 1644 mechanism and corresponding parameters to make it work. 1646 Editor's Note: 1648 1. There are a lot of optional DetNet configuration models, and 1649 different scenario in different use case can choose one of them based 1650 on its conditions. Maybe next step of the work is to pick up one or 1651 more typical scenarios and give a practical solution. 1653 2. [IEEE802.1Qcc] also defines three TSN configuration models: 1654 fully-centralized model, fully-distributed model, centralized Network 1655 / distributed User Model. This section defines the configuration 1656 model roughly the same, to keep the design of L2 and L3 in the same 1657 structure. Hybrid configuration model is slightly different from the 1658 'centralized Network / distributed User Model'. The hybrid 1659 configuration model intends to contain more variations. 1661 9. IANA Considerations 1663 This document makes no request of IANA. 1665 Note to RFC Editor: this section may be removed on publication as an 1666 RFC. 1668 10. Security Considerations 1670 11. Acknowledgements 1672 12. References 1674 12.1. Normative References 1676 [I-D.dt-detnet-dp-sol] 1677 Korhonen, J., Andersson, L., Jiang, Y., Finn, N., Varga, 1678 B., Farkas, J., Bernardos, C., Mizrahi, T., and L. Berger, 1679 "DetNet Data Plane Encapsulation", draft-dt-detnet-dp- 1680 sol-02 (work in progress), September 2017. 1682 [I-D.ietf-detnet-architecture] 1683 Finn, N., Thubert, P., Varga, B., and J. Farkas, 1684 "Deterministic Networking Architecture", draft-ietf- 1685 detnet-architecture-05 (work in progress), May 2018. 1687 [I-D.ietf-detnet-flow-information-model] 1688 Farkas, J., Varga, B., rodney.cummings@ni.com, r., Jiang, 1689 Y., and Y. Zha, "DetNet Flow Information Model", draft- 1690 ietf-detnet-flow-information-model-01 (work in progress), 1691 March 2018. 1693 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1694 Requirement Levels", BCP 14, RFC 2119, 1695 DOI 10.17487/RFC2119, March 1997, 1696 . 1698 12.2. Informative References 1700 [I-D.geng-detnet-info-distribution] 1701 Geng, X., Chen, M., and Z. Li, "IGP-TE Extensions for 1702 DetNet Information Distribution", draft-geng-detnet-info- 1703 distribution-02 (work in progress), March 2018. 1705 [I-D.ietf-detnet-use-cases] 1706 Grossman, E., "Deterministic Networking Use Cases", draft- 1707 ietf-detnet-use-cases-16 (work in progress), May 2018. 1709 [I-D.ietf-teas-yang-te] 1710 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and 1711 I. Bryskin, "A YANG Data Model for Traffic Engineering 1712 Tunnels and Interfaces", draft-ietf-teas-yang-te-15 (work 1713 in progress), June 2018. 1715 [I-D.ietf-teas-yang-te-topo] 1716 Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and 1717 O. Dios, "YANG Data Model for Traffic Engineering (TE) 1718 Topologies", draft-ietf-teas-yang-te-topo-17 (work in 1719 progress), June 2018. 1721 [I-D.thubert-tsvwg-detnet-transport] 1722 Thubert, P., "A Transport Layer for Deterministic 1723 Networks", draft-thubert-tsvwg-detnet-transport-01 (work 1724 in progress), October 2017. 1726 [I-D.varga-detnet-service-model] 1727 Varga, B. and J. Farkas, "DetNet Service Model", draft- 1728 varga-detnet-service-model-02 (work in progress), May 1729 2017. 1731 [IEEE802.1CB] 1732 "IEEE, "Frame Replication and Elimination for Reliability 1733 (IEEE Draft P802.1CB)", 2017, 1734 .", 1735 2016. 1737 [IEEE802.1Q-2014] 1738 "IEEE, "IEEE Std 802.1Q Bridges and Bridged Networks", 1739 2014, .", 1740 2014. 1742 [IEEE802.1Qbu] 1743 "IEEE, "IEEEE Std 802.1Qbu Bridges and Bridged Networks - 1744 Amendment 26: Frame Preemption", 2016, 1745 .", 2016. 1747 [IEEE802.1Qbv] 1748 "IEEE, "IEEE Std 802.1Qbu Bridges and Bridged Networks - 1749 Amendment 25: Enhancements for Scheduled Traffic", 2015, 1750 .", 2016. 1752 [IEEE802.1Qcc] 1753 "IEEE, "Stream Reservation Protocol (SRP) Enhancements and 1754 Performance Improvements (IEEE Draft P802.1Qcc)", 2017, 1755 .". 1757 [IEEE802.1Qch] 1758 "IEEE, "Cyclic Queuing and Forwarding (IEEE Draft 1759 P802.1Qch)", 2017, 1760 .", 1761 2016. 1763 [IEEE802.1Qci] 1764 "IEEE, "Per-Stream Filtering and Policing (IEEE Draft 1765 P802.1Qci)", 2016, 1766 .", 1767 2016. 1769 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 1770 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 1771 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 1772 . 1774 [RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S. 1775 Yasukawa, Ed., "Extensions to Resource Reservation 1776 Protocol - Traffic Engineering (RSVP-TE) for Point-to- 1777 Multipoint TE Label Switched Paths (LSPs)", RFC 4875, 1778 DOI 10.17487/RFC4875, May 2007, 1779 . 1781 Authors' Addresses 1783 Xuesong Geng 1784 Huawei 1786 Email: gengxuesong@huawei.com 1787 Mach(Guoyi) Chen 1788 Huawei 1790 Email: mach.chen@huawei.com 1792 Zhenqiang 1793 China Mobile 1795 Email: lizhenqiang@chinamobile.com 1797 Reshad 1798 Cisco