idnits 2.17.1 draft-ietf-detnet-yang-03.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 30 instances of too long lines in the document, the longest one being 18 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 314 has weird spacing: '...w index uin...' == Line 328 has weird spacing: '...address ine...' == Line 333 has weird spacing: '...address ine...' == Line 385 has weird spacing: '...w index uin...' == Line 402 has weird spacing: '...address ine...' == (2 more instances...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (July 08, 2019) is 1753 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.finn-detnet-bounded-latency' is defined on line 1619, but no explicit reference was found in the text == Unused Reference: 'I-D.geng-detnet-info-distribution' is defined on line 1664, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-detnet-use-cases' is defined on line 1669, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-teas-yang-te' is defined on line 1674, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-teas-yang-te-topo' is defined on line 1680, but no explicit reference was found in the text == Unused Reference: 'I-D.thubert-tsvwg-detnet-transport' is defined on line 1686, but no explicit reference was found in the text == Unused Reference: 'I-D.varga-detnet-service-model' is defined on line 1691, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1CB' is defined on line 1696, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Q-2014' is defined on line 1702, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qbu' is defined on line 1707, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qbv' is defined on line 1712, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qcc' is defined on line 1717, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qch' is defined on line 1723, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qci' is defined on line 1729, but no explicit reference was found in the text == Unused Reference: 'RFC3209' is defined on line 1735, but no explicit reference was found in the text == Unused Reference: 'RFC4875' is defined on line 1740, but no explicit reference was found in the text == Unused Reference: 'RFC8342' is defined on line 1747, but no explicit reference was found in the text ** Downref: Normative reference to an Informational draft: draft-finn-detnet-bounded-latency (ref. 'I-D.finn-detnet-bounded-latency') == Outdated reference: A later version (-14) exists of draft-ietf-detnet-flow-information-model-03 ** 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 (-07) exists of draft-ietf-detnet-ip-01 == Outdated reference: A later version (-13) exists of draft-ietf-detnet-mpls-00 == Outdated reference: A later version (-01) exists of draft-ietf-detnet-topology-yang-00 == Outdated reference: A later version (-04) exists of draft-geng-detnet-info-distribution-03 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-21 Summary: 3 errors (**), 0 flaws (~~), 31 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 Technologies 5 Expires: January 9, 2020 Y. Ryoo 6 ETRI 7 Z. Li 8 China Mobile 9 R. Rahman 10 Cisco Systems 11 July 08, 2019 13 Deterministic Networking (DetNet) Configuration YANG Model 14 draft-ietf-detnet-yang-03 16 Abstract 18 This document contains the specification for Deterministic Networking 19 flow configuration YANG Model. The model allows for provisioning of 20 end-to-end DetNet service along the path without dependency on any 21 signaling protocol. 23 The YANG module defined in this document conforms to the Network 24 Management Datastore Architecture (NMDA). 26 Requirements Language 28 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 29 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 30 document are to be interpreted as described in RFC 2119 [RFC2119]. 32 Status of This Memo 34 This Internet-Draft is submitted in full conformance with the 35 provisions of BCP 78 and BCP 79. 37 Internet-Drafts are working documents of the Internet Engineering 38 Task Force (IETF). Note that other groups may also distribute 39 working documents as Internet-Drafts. The list of current Internet- 40 Drafts is at https://datatracker.ietf.org/drafts/current/. 42 Internet-Drafts are draft documents valid for a maximum of six months 43 and may be updated, replaced, or obsoleted by other documents at any 44 time. It is inappropriate to use Internet-Drafts as reference 45 material or to cite them other than as "work in progress." 47 This Internet-Draft will expire on January 9, 2020. 49 Copyright Notice 51 Copyright (c) 2019 IETF Trust and the persons identified as the 52 document authors. All rights reserved. 54 This document is subject to BCP 78 and the IETF Trust's Legal 55 Provisions Relating to IETF Documents 56 (https://trustee.ietf.org/license-info) in effect on the date of 57 publication of this document. Please review these documents 58 carefully, as they describe your rights and restrictions with respect 59 to this document. Code Components extracted from this document must 60 include Simplified BSD License text as described in Section 4.e of 61 the Trust Legal Provisions and are provided without warranty as 62 described in the Simplified BSD License. 64 Table of Contents 66 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 67 2. Terminologies . . . . . . . . . . . . . . . . . . . . . . . . 3 68 3. DetNet Configuration Model . . . . . . . . . . . . . . . . . 3 69 3.1. DetNet Appliction Flow Configuration Attributes . . . . . 3 70 3.2. DetNet Service Sub-layer Configuration Attributes . . . . 4 71 3.3. DetNet Forwarding Sub-layer Configuration Attributes . . 4 72 3.4. DetNet Sub-network Configurations Attributes . . . . . . 5 73 4. Overview of DetNet YANG Structure . . . . . . . . . . . . . . 5 74 4.1. DetNet YANG Structure Considerations . . . . . . . . . . 5 75 4.2. DetNet YANG Structure . . . . . . . . . . . . . . . . . . 6 76 4.2.1. YANG Structure of Application Flow . . . . . . . . . 6 77 4.2.2. YANG Structure of DetNet Service Sub-layer . . . . . 6 78 4.2.3. YANG Structure of DetNet Forwarding Sub-layer . . . . 8 79 4.2.4. YANG Structure of DetNet sub-network . . . . . . . . 9 80 5. DetNet Configuration YANG Model . . . . . . . . . . . . . . . 10 81 6. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 34 82 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 83 8. Security Considerations . . . . . . . . . . . . . . . . . . . 34 84 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 34 85 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 86 10.1. Normative References . . . . . . . . . . . . . . . . . . 34 87 10.2. Informative References . . . . . . . . . . . . . . . . . 35 88 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37 90 1. Introduction 92 Deterministic Networking (DetNet) [I-D.ietf-detnet-architecture] is 93 defined to provide high-quality network service with extremely low 94 packet loss rate, bounded low latency and jitter. 96 Information models for DetNet are categorized as flow models, service 97 models and configuration models, which is defined in 98 [I-D.ietf-detnet-flow-information-model]. 100 Configuration models are used for DetNet topology discovery and 101 DetNet flow configuration . This document defines a YANG model for 102 DetNet flow configurations based on YANG data types and modeling 103 language defined in [RFC6991] and [RFC7950]. A YANG model for 104 topology discovery is defined in [I-D.ietf-detnet-topology-yang]. 105 The DetNet configuration YANG model is designed for DetNet flow path 106 establishment, flow status reporting, and DetNet functions 107 configuration in order to achieve end-to-end bounded latency and zero 108 congestion loss. 110 2. Terminologies 112 This documents uses the terminologies defined in 113 [I-D.ietf-detnet-architecture]. 115 3. DetNet Configuration Model 117 DetNet flow configuration includes DetNet App-flow configuration, 118 DetNet Service Sub-layer configuration, and DetNet Forwarding Sub- 119 layer configuration and DetNet sub-network. The corresponding 120 attributes used in different sub-layers are defined in Section 3.1, 121 3.2, 3.3, 3.4 respectively. 123 3.1. DetNet Appliction Flow Configuration Attributes 125 DetNet application flow is responsible for mapping between 126 application flows and DetNet flows at the edge node(egress/ingress 127 node). Where the application flows can be either layer 2 or layer 3 128 flows. To identify a flow at the User Network Interface (UNI), as 129 defined in [I-D.ietf-detnet-flow-information-model], the following 130 flow attributes are introduced: 132 o DetNet L3 Flow Identification, refers to Section 7.1.1 of 133 [I-D.ietf-detnet-flow-information-model] 135 o DetNet L2 Flow Identification, refers to Section 7.1.2 of 136 [I-D.ietf-detnet-flow-information-model] 138 Application flow can also do flow filtering and policing at the 139 ingress to prevent the misbehaviored flows from going into the 140 network, which needs: 142 o Traffic Specification, refers to Section 7.2 of 143 [I-D.ietf-detnet-flow-information-model] 145 3.2. DetNet Service Sub-layer Configuration Attributes 147 DetNet service functions, e.g., DetNet tunnel initialization/ 148 termination and service protection, are provided in DetNet service 149 sub-layer. To support these functions, the following service 150 attributes need to be configured: 152 o DetNet flow identification, refers to Section 8.1.3 of 153 [I-D.ietf-detnet-flow-information-model]. 155 o Service function indication, indicates which service function will 156 be invoked at a DetNet edge, relay node or end station. (DetNet 157 tunnel initialization or termination are default functions in 158 DetNet service layer, so there is no need for explicit 159 indication.) 161 o Flow Rank, refers to Section 8.3 of 162 [I-D.ietf-detnet-flow-information-model]. 164 o Service Rank, refers to Section 16 of 165 [I-D.ietf-detnet-flow-information-model]. 167 o Service Sub-layer, refers to Section 4.5 and Section 4.6 of 168 [I-D.ietf-detnet-mpls] 170 o Forwarding Sub-layer, refers to Section 4.3 of 171 [I-D.ietf-detnet-ip] and Section 4.5 and Section 4.6 of 172 [I-D.ietf-detnet-mpls] 174 3.3. DetNet Forwarding Sub-layer Configuration Attributes 176 As defined in [I-D.ietf-detnet-architecture], DetNet forwarding sub- 177 layer optionally provides congestion protection for DetNet flows over 178 paths provided by the underlying network. Explicit route is another 179 mechanism that is used by DetNet to avoid temporary interruptions 180 caused by the convergence of routing or bridging protocols, and it is 181 also implemented at the DetNet forwarding sub-layer. 183 To support congestion protection and explicit route, the following 184 transport layer related attributes are necessary: 186 o Traffic Specification, refers to Section 7.2 of 187 [I-D.ietf-detnet-flow-information-model]. It may used for 188 bandwidth reservation, flow shaping, filtering and policing. 190 o Explicit path, existing explicit route mechanisms can be reused. 191 For example, if Segment Routing (SR) tunnel is used as the 192 transport tunnel, the configuration is mainly at the ingress node 193 of the transport layer; if the static MPLS tunnel is used as the 194 transport tunnel, the configurations need to be at every transit 195 node along the path; for pure IP based transport tunnel, it's 196 similar to the static MPLS case. 198 3.4. DetNet Sub-network Configurations Attributes 200 TBD 202 4. Overview of DetNet YANG Structure 204 4.1. DetNet YANG Structure Considerations 206 The picture shows that the general structure of the DetNet YANG 207 Model: 209 +-----------+ 210 |ietf-detnet| 211 +-----+-----+ 212 | 213 +-------------+------+--------+--------------+ 214 | | | | 215 +-----+-----+ +-----+-----+ +-------+------+ +-----+-----+ 216 | App Flows | |service s-l| |forwarding s-l| |sub-network| 217 +-----------+ +-----------+ +--------------+ +-----------+ 219 There are four instances in DetNet YANG Model: App-flow instance, 220 service sub-layer instance, forwarding sub-layer instance and sub- 221 network instance, respectively corresponding to four parts of DetNet 222 functions defined in section 3. In each instance, there are four 223 elements: name, in-segments, out-segments and operations, which 224 means: 226 o Name: indicates the key value of the instance identification. 228 o In-segments: indicates the key value of identification, e.g., 229 Layer 2 App flow identification, Layer 3 App flow identification 230 and DetNet flow identification. 232 o Out-segments: indicates the information of DetNet processing(e.g., 233 DetNet forwarding, DetNet header Encapsulation) and the mapping 234 relationship to the lower sub-layer/sub-network. 236 o Operations: indicates DetNet functions, e.g., DetNet forwarding 237 functions, DetNet Service functions, DetNet Resource Reservation. 239 These elements are different when the technologies used for the 240 specific instance is different. So this structure is abstract, which 241 allows for different technology specifics as defined in different 242 data plane drafts. 244 4.2. DetNet YANG Structure 246 4.2.1. YANG Structure of Application Flow 248 The picture below shows that the general YANG structure of DetNet 249 App-flow: 251 +--rw app-flow 252 | +--rw operations 253 | | +--rw sequence-number 254 | | +--rw sequence-number-generation-type? sequence-number-generation-type 255 | | +--rw sequence-number-length? uint8 256 | +--rw in-segments 257 | | +--rw app-flow-type? flow-type-ref 258 | | +--rw source-mac-address? yang:mac-address 259 | | +--rw destination-mac-address? yang:mac-address 260 | | +--rw ethertype? eth:ethertype 261 | | +--rw vlan-id? uint16 262 | | +--rw pcp? uint8 263 | | +--rw src-ipv4-prefix inet:ipv4-prefix 264 | | +--rw dest-ipv4-prefix inet:ipv4-prefix 265 | | +--rw protocol uint8 266 | | +--rw dscp? uint8 267 | | +--rw dscp-bitmask? uint8 268 | | +--rw src-ipv6-prefix inet:ipv6-prefix 269 | | +--rw dest-ipv6-prefix inet:ipv6-prefix 270 | | +--rw next-header uint8 271 | | +--rw traffic-class? uint8 272 | | +--rw traffic-class-bitmask? uint8 273 | | +--rw flow-label? inet:ipv6-flow-label 274 | | +--rw flow-label-flag? boolean 275 | | +--rw lower-source-port? inet:port-number 276 | | +--rw upper-source-port? inet:port-number 277 | | +--rw lower-destination-port? inet:port-number 278 | | +--rw upper-destination-port? inet:port-number 279 | +--rw out-segments 280 | +--rw detnet-service-sub-layer? lower-layer-ref 282 4.2.2. YANG Structure of DetNet Service Sub-layer 284 The picture shows that the general YANG structure of DetNet Service 285 Sub-layer: 287 +--rw service-sub-layer 288 | +--rw operations 289 | | +--rw service-operation 290 | | | +--rw service-operation-type? service-operation-ref 291 | | +--rw service-protection 292 | | +--rw service-protection-type? service-protection-type 293 | +--rw in-segments 294 | | +--rw detnet-service-type? flow-type-ref 295 | | +--rw detnet-service-list* [detnet-service-index] 296 | | +--rw detnet-service-index uint8 297 | | +--rw src-ipv4-prefix inet:ipv4-prefix 298 | | +--rw dest-ipv4-prefix inet:ipv4-prefix 299 | | +--rw protocol uint8 300 | | +--rw dscp? uint8 301 | | +--rw dscp-bitmask? uint8 302 | | +--rw src-ipv6-prefix inet:ipv6-prefix 303 | | +--rw dest-ipv6-prefix inet:ipv6-prefix 304 | | +--rw next-header uint8 305 | | +--rw traffic-class? uint8 306 | | +--rw traffic-class-bitmask? uint8 307 | | +--rw flow-label? inet:ipv6-flow-label 308 | | +--rw flow-label-flag? boolean 309 | | +--rw mpls-flow-identification 310 | | +--rw platform-label-flag? boolean 311 | | +--rw non-platform-label-space 312 | | | +--rw incoming-interface? if:interface-ref 313 | | | +--rw non-platform-label-stack* [index] 314 | | | +--rw index uint8 315 | | | +--rw label? rt-type:mpls-label 316 | | | +--rw tc? uint8 317 | | +--rw platform-label-space 318 | | +--rw label? rt-type:mpls-label 319 | | +--rw tc? uint8 320 | +--rw out-segments 321 | +--rw detnet-service-processing-type? flow-type-ref 322 | +--rw detnet-service-encapsulation 323 | +--rw detnet-service-processing-list* [detnet-service-processing-index] 324 | +--rw detnet-service-processing-index uint32 325 | +--rw ip-flow 326 | | +--rw ipv4-flow 327 | | | +--rw src-ipv4-address inet:ipv4-address 328 | | | +--rw dest-ipv4-address inet:ipv4-address 329 | | | +--rw protocol uint8 330 | | | +--rw dscp? uint8 331 | | +--rw ipv6-flow 332 | | | +--rw src-ipv6-address inet:ipv6-address 333 | | | +--rw dest-ipv6-address inet:ipv6-address 334 | | | +--rw next-header uint8 335 | | | +--rw traffic-class? uint8 336 | | | +--rw flow-label? inet:ipv6-flow-label 337 | | +--rw l4-port-header 338 | | +--rw source-port? inet:port-number 339 | | +--rw destination-port? inet:port-number 340 | +--rw mpls-flow 341 | | +--rw detnet-mpls-label-stack* [index] 342 | | +--rw index uint8 343 | | +--rw label? rt-type:mpls-label 344 | | +--rw tc? uint8 345 | | +--rw s-bit? boolean 346 | | +--rw d-cw-encapsulate-flag? boolean 347 | +--rw detnet-forwarding-sub-layer-info 348 | +--rw detnet-forwarding-sub-layer? lower-layer-ref 350 4.2.3. YANG Structure of DetNet Forwarding Sub-layer 352 The picture shows that the general YANG structure of DetNet 353 Forwarding Sub-layer: 355 +--rw forwarding-sub-layer 356 | +--rw operations 357 | | +--rw forwarding-operation 358 | | | +--rw forwarding-operation-type? forwarding-operation-ref 359 | | +--rw resource-allocate 360 | | | +--rw interval? uint32 361 | | | +--rw max-packets-per-interval? uint32 362 | | | +--rw max-payload-size? uint32 363 | | | +--rw average-packets-per-interval? uint32 364 | | | +--rw average-payload-size? uint32 365 | | +--rw qos 366 | +--rw in-segments 367 | | +--rw detnet-forwarding-type? flow-type-ref 368 | | +--rw src-ipv4-prefix inet:ipv4-prefix 369 | | +--rw dest-ipv4-prefix inet:ipv4-prefix 370 | | +--rw protocol uint8 371 | | +--rw dscp? uint8 372 | | +--rw dscp-bitmask? uint8 373 | | +--rw src-ipv6-prefix inet:ipv6-prefix 374 | | +--rw dest-ipv6-prefix inet:ipv6-prefix 375 | | +--rw next-header uint8 376 | | +--rw traffic-class? uint8 377 | | +--rw traffic-class-bitmask? uint8 378 | | +--rw flow-label? inet:ipv6-flow-label 379 | | +--rw flow-label-flag? boolean 380 | | +--rw mpls-flow-identification 381 | | +--rw platform-label-flag? boolean 382 | | +--rw non-platform-label-space 383 | | | +--rw incoming-interface? if:interface-ref 384 | | | +--rw non-platform-label-stack* [index] 385 | | | +--rw index uint8 386 | | | +--rw label? rt-type:mpls-label 387 | | | +--rw tc? uint8 388 | | +--rw platform-label-space 389 | | +--rw label? rt-type:mpls-label 390 | | +--rw tc? uint8 391 | +--rw out-segments 392 | +--rw detnet-forwarding-processing-type? flow-type-ref 393 | +--rw natively-detnet-forwarding 394 | | +--rw ipv4-flow 395 | | | +--rw ipv4-next-hop-address? inet:ipv4-address 396 | | +--rw ipv6-flow 397 | | +--rw ipv6-next-hop-address? inet:ipv6-address 398 | +--rw detnet-forwarding-encapsulation 399 | +--rw ip-flow 400 | | +--rw ipv4-flow 401 | | | +--rw src-ipv4-address inet:ipv4-address 402 | | | +--rw dest-ipv4-address inet:ipv4-address 403 | | | +--rw protocol uint8 404 | | | +--rw dscp? uint8 405 | | +--rw ipv6-flow 406 | | | +--rw src-ipv6-address inet:ipv6-address 407 | | | +--rw dest-ipv6-address inet:ipv6-address 408 | | | +--rw next-header uint8 409 | | | +--rw traffic-class? uint8 410 | | | +--rw flow-label? inet:ipv6-flow-label 411 | | +--rw l4-port-header 412 | | +--rw source-port? inet:port-number 413 | | +--rw destination-port? inet:port-number 414 | +--rw mpls-flow 415 | | +--rw detnet-mpls-label-stack* [index] 416 | | +--rw index uint8 417 | | +--rw label? rt-type:mpls-label 418 | | +--rw tc? uint8 419 | | +--rw s-bit? boolean 420 | | +--rw d-cw-encapsulate-flag? boolean 421 | +--rw lower-layer-info 422 | +--rw lower-layer-type? flow-type-ref 423 | +--rw interface 424 | | +--rw outgoing-interface? if:interface-ref 425 | +--rw sub-layer 426 | +--rw sub-layer? lower-layer-ref 428 4.2.4. YANG Structure of DetNet sub-network 430 TBD 432 5. DetNet Configuration YANG Model 434 file ietf-detnet-config@20190324.yang 435 module ietf-detnet-config { 436 namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-config"; 437 prefix "ietf-detnet"; 439 import ietf-yang-types { 440 prefix "yang"; 441 } 443 import ietf-inet-types{ 444 prefix "inet"; 445 } 447 import ietf-ethertypes { 448 prefix "eth"; 449 } 451 import ietf-routing-types { 452 prefix "rt-type"; 453 } 455 import ietf-interfaces { 456 prefix "if"; 457 } 459 organization "IETF DetNet Working Group"; 461 contact 462 "WG Web: 463 WG List: 464 WG Chair: Lou Berger 465 467 Janos Farkas 468 470 Editor: Xuesong Geng 471 473 Editor: Mach Chen 474 476 Editor: Zhenqiang Li 477 479 Editor: Reshad Rahman 480 482 Editor: Yeoncheol Ryoo 483 "; 485 description 486 "This YANG module describes the parameters needed 487 for DetNet flow configuration and flow status reporting"; 489 revision 2019-03-24 { 490 description "initial revision"; 491 reference "RFC XXXX: draft-ietf-detnet-yang-02"; 492 } 494 identity ttl-action { 495 description 496 "Base identity from which all TTL 497 actions are derived"; 498 } 500 identity no-action { 501 base "ttl-action"; 502 description 503 "Do nothing regarding the TTL"; 504 } 506 identity copy-to-inner { 507 base "ttl-action"; 508 description 509 "Copy the TTL of the outer header 510 to the inner header"; 511 } 513 identity decrease-and-copy-to-inner { 514 base "ttl-action"; 515 description 516 "Decrease TTL by one and copy the TTL 517 to the inner header"; 518 } 520 identity config-type { 521 description 522 "Base identity from which all configuration instances are derived"; 523 } 525 identity App-flow { 526 base "config-type"; 527 description 528 "App-flow configuration"; 529 } 531 identity service-sub-layer { 532 base "config-type"; 533 description 534 "A DetNet MPLS or IP service sub-layer configuration"; 535 } 537 identity forwarding-sub-layer { 538 base "config-type"; 539 description 540 "A DetNet MPLS or IP forwarding sub-layer configuration"; 541 } 543 identity tsn-sub-network { 544 base "config-type"; 545 description 546 "A TSN sub-net configuration"; 547 } 549 identity flow-type { 550 description 551 "Base identity from which all flow type are derived"; 552 } 554 identity ipv4 { 555 base "flow-type"; 556 description 557 "An IPv4 flow"; 558 } 560 identity ipv6 { 561 base "flow-type"; 562 description 563 "An IPv6 flow"; 564 } 566 identity mpls { 567 base "flow-type"; 568 description 569 "An MPLS flow"; 570 } 572 identity l2 { 573 base "flow-type"; 574 description 575 "An MPLS flow"; 577 } 579 identity tsn { 580 base "flow-type"; 581 description 582 "An MPLS flow"; 583 } 585 identity service-operation { 586 description 587 "Base identity from which all service operation are derived"; 588 } 590 identity service-initiation { 591 base "service-operation"; 592 description 593 "A DetNet service encapsulates"; 594 } 596 identity service-termination { 597 base "service-operation"; 598 description 599 "A DetNet service decapsulates"; 600 } 602 identity service-relay { 603 base "service-operation"; 604 description 605 "A DetNet service swap"; 606 } 608 identity forwarding-operation { 609 description 610 "Base identity from which all data plane operation are derived"; 611 } 613 identity natively-forward { 614 base "forwarding-operation"; 615 description 616 "A packet natively forward to lower-layer"; 617 } 619 identity impose-and-forward { 620 base "forwarding-operation"; 621 description 622 "Impose a header(MPLS/IP) and forward to lower-layer"; 623 } 624 identity pop-and-forward { 625 base "forwarding-operation"; 626 description 627 "Pop an identified packet header and forward to lower-layer"; 628 } 630 identity pop-impose-and-forward { 631 base "forwarding-operation"; 632 description 633 "Pop an identified packet header, impose a one or more outgoing 634 header and forward to lower-layer "; 635 } 637 identity swap-and-forward { 638 base "forwarding-operation"; 639 description 640 "Swap an identified packet header with outgoing header and forward 641 to lower-layer "; 642 } 644 identity pop-and-lookup { 645 base "forwarding-operation"; 646 description 647 "Pop an identified packet header and perform a lookup"; 648 } 649 identity label-space { 650 description 651 "Base identity from which all label space are derived"; 652 } 654 identity platform-label { 655 base "label-space"; 656 description 657 "label allocated from the platform label space"; 658 } 660 identity non-platform-label { 661 base "label-space"; 662 description 663 "label allocated from the non-platform label space"; 664 } 666 typedef ttl-action-definition { 667 type identityref { 668 base "ttl-action"; 669 } 670 description 671 "TTL action definition"; 673 } 675 typedef config-type-ref { 676 type identityref { 677 base "config-type"; 678 } 679 description 680 "config-type-ref"; 681 } 683 typedef flow-type-ref { 684 type identityref { 685 base "flow-type"; 686 } 687 description 688 "flow-type-ref"; 689 } 691 typedef service-operation-ref{ 692 type identityref { 693 base "service-operation"; 694 } 695 description 696 "service-operation-ref"; 697 } 699 typedef forwarding-operation-ref { 700 type identityref { 701 base "forwarding-operation"; 702 } 703 description 704 "forwarding-operation-ref"; 705 } 707 typedef label-space-ref { 708 type identityref { 709 base "label-space"; 710 } 711 description 712 "label-space-ref"; 713 } 715 typedef lower-layer-ref { 716 type leafref { 717 path "/ietf-detnet:detnet-config/ietf-detnet:detnet-config-list" 718 + "/ietf-detnet:name"; 719 } 720 description 721 "lower-layer-ref"; 722 } 724 typedef service-protection-type { 725 type enumeration { 726 enum none { 727 description 728 "no service protection provide"; 729 } 730 enum replication { 731 description 732 "A Packet Replication Function (PRF) replicates 733 DetNet flow packets and forwards them to one or 734 more next hops in the DetNet domain. The number 735 of packet copies sent to each next hop is a 736 DetNet flow specific parameter at the node doing 737 the replication. PRF can be implemented by an 738 edge node, a relay node, or an end system"; 739 } 740 enum elimination { 741 description 742 "A Packet Elimination Function (PEF) eliminates 743 duplicate copies of packets to prevent excess 744 packets flooding the network or duplicate 745 packets being sent out of the DetNet domain. 746 PEF can be implemented by an edge node, a relay 747 node, or an end system."; 748 } 749 enum ordering { 750 description 751 "A Packet Ordering Function (POF) re-orders 752 packets within a DetNet flow that are received 753 out of order. This function can be implemented 754 by an edge node, a relay node, or an end system."; 755 } 756 enum elimination-ordering { 757 description 758 "A combination of PEF and POF that can be 759 implemented by an edge node, a relay node, or 760 an end system."; 761 } 762 enum elimination-replication { 763 description 764 "A combination of PEF and PRF that can be 765 implemented by an edge node, a relay node, or 766 an end system"; 767 } 768 enum elimination-ordering-replicaiton { 769 description 770 "A combination of PEF, POF and PRF that can be 771 implemented by an edge node, a relay node, or 772 an end system"; 773 } 774 } 775 description 776 "service-protection-type"; 777 } 779 typedef sequence-number-generation-type { 780 type enumeration { 781 enum none { 782 description 783 "No sequence number generation function provide"; 784 } 785 enum copy-from-app-flow { 786 description 787 "Copy the app-flow sequence number to the DetNet-flow"; 788 } 789 enum generate-by-detnet-flow { 790 description 791 "Generate the sequence number by DetNet flow"; 792 } 793 } 794 description 795 "sequence-number-generation-type"; 796 } 798 grouping l4-port-header { 799 description 800 "The TCP/UDP port(source/destination) information"; 801 leaf source-port { 802 type inet:port-number; 803 description 804 "The source port number"; 805 } 806 leaf destination-port { 807 type inet:port-number; 808 description 809 "The destination port number"; 810 } 811 } 813 grouping ipv4-header { 814 description 815 "The IPv4 packet header information"; 817 leaf src-ipv4-address { 818 type inet:ipv4-address; 819 mandatory true; 820 description 821 "The source IP address of the header"; 822 } 823 leaf dest-ipv4-address { 824 type inet:ipv4-address; 825 mandatory true; 826 description 827 "The destination IP address of the header"; 828 } 829 leaf protocol { 830 type uint8; 831 mandatory true; 832 description 833 "The protocol of the header"; 834 } 835 leaf dscp { 836 type uint8; 837 description 838 "The DSCP field of the header"; 839 } 840 } 842 grouping ipv6-header { 843 description 844 "The IPv6 packet header information"; 845 leaf src-ipv6-address { 846 type inet:ipv6-address; 847 mandatory true; 848 description 849 "The source IP address of the header"; 850 } 851 leaf dest-ipv6-address { 852 type inet:ipv6-address; 853 mandatory true; 854 description 855 "The destination IP address of the header"; 856 } 857 leaf next-header { 858 type uint8; 859 mandatory true; 860 description 861 "The next header of the IPv6 header"; 862 } 863 leaf traffic-class { 864 type uint8; 865 description 866 "The traffic class value of the header"; 867 } 868 leaf flow-label { 869 type inet:ipv6-flow-label; 870 description 871 "The flow label value of the header"; 872 } 873 } 875 grouping mpls-header { 876 description 877 "The MPLS packet header information"; 878 leaf label { 879 type rt-type:mpls-label; 880 description 881 "The label value of the MPLS header"; 882 } 883 leaf tc { 884 type uint8; 885 description 886 "The traffic class value of the MPLS header"; 887 } 888 leaf s-bit { 889 type boolean; 890 description 891 "The s-bit value of the MPLS header, 892 which indicates the bottom of the label shack"; 893 } 894 leaf d-cw-encapsulate-flag { 895 type boolean; 896 description 897 "the indication of whether D-CW is encapsulated or not, 898 when the D-CW is encapsulated, the sequence number is 899 determined by sequence generation type"; 900 } 901 } 903 grouping l2-header { 904 description 905 "The Ethernet or TSN packet header information"; 906 leaf source-mac-address { 907 type yang:mac-address; 908 description 909 "The source MAC address value of the ethernet header"; 910 } 911 leaf destination-mac-address { 912 type yang:mac-address; 913 description 914 "The destination MAC address value of the ethernet header"; 915 } 916 leaf ethertype { 917 type eth:ethertype; 918 description 919 "The ethernet packet type value of the ethernet header"; 920 } 921 leaf vlan-id { 922 type uint16; 923 description 924 "The Vlan value of the ethernet header"; 925 } 926 leaf pcp { 927 type uint8; 928 description 929 "The priority value of the ethernet header"; 930 } 931 } 933 grouping l4-port-identification { 934 description 935 "The TCP/UDP port(source/destination) identification information"; 936 leaf lower-source-port { 937 type inet:port-number; 938 description 939 "The lower source port number of the source port range"; 940 } 941 leaf upper-source-port { 942 type inet:port-number; 943 description 944 "The upper source port number of the source port range"; 945 } 946 leaf lower-destination-port { 947 type inet:port-number; 948 description 949 "The lower destination port number or the destination port range"; 950 } 951 leaf upper-destination-port { 952 type inet:port-number; 953 description 954 "The upper destination port number of the destination port range"; 955 } 956 } 958 grouping ipv4-flow-identification { 959 description 960 "The IPv4 packet header identification information"; 962 leaf src-ipv4-prefix { 963 type inet:ipv4-prefix; 964 mandatory true; 965 description 966 "The source IP address of the header"; 967 } 968 leaf dest-ipv4-prefix { 969 type inet:ipv4-prefix; 970 mandatory true; 971 description 972 "The destination IP address of the header"; 973 } 974 leaf protocol { 975 type uint8; 976 mandatory true; 977 description 978 "The protocol of the header"; 979 } 980 leaf dscp { 981 type uint8; 982 description 983 "The DSCP field of the header"; 984 } 985 leaf dscp-bitmask { 986 type uint8; 987 description 988 "The bitmask value that determines whether to use 989 the DSCP(IPv4) value for flow identification or not"; 990 } 991 } 993 grouping ipv6-flow-identification { 994 description 995 "The IPv6 packet header identification information"; 996 leaf src-ipv6-prefix { 997 type inet:ipv6-prefix; 998 mandatory true; 999 description 1000 "The source IP address of the header"; 1001 } 1002 leaf dest-ipv6-prefix { 1003 type inet:ipv6-prefix; 1004 mandatory true; 1005 description 1006 "The destination IP address of the header"; 1007 } 1008 leaf next-header { 1009 type uint8; 1010 mandatory true; 1011 description 1012 "The next header of the IPv6 header"; 1013 } 1014 leaf traffic-class { 1015 type uint8; 1016 description 1017 "The traffic class value of the header"; 1018 } 1019 leaf traffic-class-bitmask { 1020 type uint8; 1021 description 1022 "The bitmask value that determines whether to use 1023 the Traffic class(IPv6) value for flow identification or not"; 1024 } 1025 leaf flow-label { 1026 type inet:ipv6-flow-label; 1027 description 1028 "The flow label value of the header"; 1029 } 1030 leaf flow-label-flag { 1031 type boolean; 1032 description 1033 "The flag that determines whether to use 1034 the Flow Label value for flow identification or not"; 1035 } 1036 } 1038 grouping mpls-flow-identification { 1039 description 1040 "The MPLS packet header identification information"; 1041 leaf label { 1042 type rt-type:mpls-label; 1043 description 1044 "The label value of the MPLS header"; 1045 } 1046 leaf tc { 1047 type uint8; 1048 description 1049 "The traffic class value of the MPLS header"; 1050 } 1051 } 1053 grouping l2-flow-identification { 1054 description 1055 "The Ethernet or TSN packet header identification information"; 1056 leaf source-mac-address { 1057 type yang:mac-address; 1058 description 1059 "The source MAC address value of the ethernet header"; 1060 } 1061 leaf destination-mac-address { 1062 type yang:mac-address; 1063 description 1064 "The destination MAC address value of the ethernet header"; 1065 } 1066 leaf ethertype { 1067 type eth:ethertype; 1068 description 1069 "The ethernet packet type value of the ethernet header"; 1070 } 1071 leaf vlan-id { 1072 type uint16; 1073 description 1074 "The Vlan value of the ethernet header"; 1075 } 1076 leaf pcp { 1077 type uint8; 1078 description 1079 "The priority value of the ethernet header"; 1080 } 1081 } 1083 grouping traffic-specification { 1084 description 1085 "traffic-specification specifies how the Source 1086 transmits packets for the flow. This is the 1087 promise/request of the Source to the network. 1088 The network uses this traffic specification 1089 to allocate resources and adjust queue 1090 parameters in network nodes."; 1091 reference 1092 "draft-ietf-detnet-flow-information-model"; 1093 leaf interval { 1094 type uint32; 1095 description 1096 "The period of time in which the traffic 1097 specification cannot be exceeded"; 1098 } 1099 leaf max-packets-per-interval{ 1100 type uint32; 1101 description 1102 "The maximum number of packets that the 1103 source will transmit in one Interval."; 1104 } 1105 leaf max-payload-size{ 1106 type uint32; 1107 description 1108 "The maximum payload size that the source 1109 will transmit."; 1110 } 1111 leaf average-packets-per-interval { 1112 type uint32; 1113 description 1114 "The average number of packets that the 1115 source will transmit in one Interval"; 1116 } 1117 leaf average-payload-size { 1118 type uint32; 1119 description 1120 "The average payload size that the 1121 source will transmit."; 1122 } 1123 } 1125 container detnet-config { 1126 description 1127 "DetNet configurations"; 1128 leaf node-id { 1129 type yang:dotted-quad; 1130 description 1131 "A 32-bit number in the form of a dotted quad that is used by 1132 identifying a DetNet node"; 1133 } 1134 list detnet-config-list { 1135 key "name"; 1136 description 1137 "list of the DetNet configurations"; 1138 leaf name { 1139 type string; 1140 description 1141 "The name to identify the DetNet configuration"; 1142 } 1143 leaf config-type { 1144 type config-type-ref; 1145 description 1146 "The DetNet configuration type such as a App-flow, service 1147 sub-layer, forwarding sub-layer, and TSN sub-network"; 1148 } 1149 container App-flow { 1150 when "../config-type = 'ietf-detnet:App-flow'"; 1151 description 1152 "The DetNet App-flow configuration"; 1153 container operations { 1154 description "operations"; 1155 container sequence-number { 1156 description "The DetNet sequence number operations grouping"; 1157 leaf sequence-number-generation-type { 1158 type sequence-number-generation-type; 1159 description "The DetNet sequence number generation type"; 1160 } 1161 leaf sequence-number-length { 1162 type uint8; 1163 description 1164 "The DetNet sequence number length"; 1165 } 1166 } 1167 } 1168 container in-segments { 1169 description "The App-flow identification information"; 1170 leaf app-flow-type { 1171 type flow-type-ref; 1172 description 1173 "The App-flow type such as a L2, IPv4, and IPv6"; 1174 } 1175 uses l2-flow-identification { 1176 when "app-flow-type = 'ietf-detnet:tsn' or 'ietf-detnet:l2'"; 1177 } 1178 uses ipv4-flow-identification { 1179 when "app-flow-type = 'ietf-detnet:ipv4'"; 1180 } 1181 uses ipv6-flow-identification { 1182 when "app-flow-type = 'ietf-detnet:ipv6'"; 1183 } 1184 uses l4-port-identification { 1185 when "app-flow-type = 'ietf-detnet:ipv6' or 'ietf-detnet:ipv4'"; 1186 or 'ietf-detnet:ipv4'"; 1187 } 1188 } 1189 container out-segments { 1190 description 1191 "The DetNet service information associated with this App-flow"; 1192 leaf detnet-service-sub-layer { 1193 type lower-layer-ref; 1194 description "Specify associated service sub-layer"; 1195 } 1196 } 1197 } 1198 container service-sub-layer { 1199 when "../config-type = 'ietf-detnet:service-sub-layer'"; 1200 description "The DetNet service sub-layer configuration"; 1201 container operations { 1202 description 1203 "The DetNet service sub-layer operations grouping"; 1204 container service-operation { 1205 description "The DetNet service operations grouping"; 1206 leaf service-operation-type { 1207 type service-operation-ref; 1208 description 1209 "The DetNet service operations type such as DetNet 1210 service initiation, termination, and relay"; 1211 } 1212 } 1213 container service-protection { 1214 description 1215 "The DetNet service protection operations grouping"; 1216 leaf service-protection-type { 1217 type service-protection-type; 1218 description 1219 "The DetNet service protection type such as PRF, PEF, PEOF, 1220 PERF, and PEORF"; 1221 } 1222 } 1223 } 1224 container in-segments { 1225 when "../operations/service-operation" 1226 + "/service-operation-type != 'service-initation'"; 1227 description 1228 "DetNet service identification information"; 1229 leaf detnet-service-type { 1230 type flow-type-ref; 1231 description 1232 "incoming DetNet service flow type"; 1233 } 1234 list detnet-service-list { 1235 key "detnet-service-index"; 1236 description 1237 "Incoming DetNet member flows or a compound flow"; 1238 leaf detnet-service-index { 1239 type uint8; 1240 description 1241 "Incoming DetNet service index"; 1242 } 1243 uses ipv4-flow-identification { 1244 when "../detnet-service-type = 'ietf-detnet:ipv4'"; 1245 } 1246 uses ipv6-flow-identification { 1247 when "../detnet-service-type = 'ietf-detnet:ipv6'"; 1248 } 1249 container mpls-flow-identification { 1250 when "../../detnet-service-type = 'ietf-detnet:mpls'"; 1251 description 1252 "MPLS type DetNet service identification"; 1253 leaf label-space { 1254 type label-space-ref; 1255 description 1256 "Indicate the incoming MPLS label is associated with 1257 platform label space or not"; 1258 } 1259 container non-platform-label-space { 1260 when "../label-space = 'ietf-detnet:non-platform-label'"; 1261 description 1262 "MPLS label is associated with non-platform label space, 1263 all of the F-labels and incoming interface information was 1264 used for identification"; 1265 leaf incoming-interface { 1266 type if:interface-ref; 1267 description 1268 "DetNet service incoming interface information"; 1269 } 1270 list non-platform-label-stack { 1271 key "index"; 1272 description 1273 "All of the label information from the outer label 1274 to the current label"; 1275 leaf index { 1276 type uint8; 1277 description 1278 "Index of the labels stack"; 1279 } 1280 uses mpls-flow-identification; 1281 } 1282 } 1283 container platform-label-space { 1284 when "../label-space = 'ietf-detnet:platform-label'"; 1285 description 1286 "MPLS label is associated with platform label space, only 1287 the F-label is used for identification"; 1288 uses mpls-flow-identification; 1289 } 1290 } 1291 } 1292 } 1293 container out-segments { 1294 when "../operations/service-operation" 1295 + "/service-operation-type != 'service-termination'"; 1296 description 1297 "DetNet Service outgoing processing grouping"; 1299 leaf detnet-service-processing-type { 1300 type flow-type-ref; 1301 description 1302 "Outgoing DetNet service flow type"; 1303 } 1304 container detnet-service-encapsulation { 1305 description 1306 "DetNet service encapsulation information"; 1307 list detnet-service-processing-list { 1308 key "detnet-service-processing-index"; 1309 description 1310 "The list of single or multiple outgoing DetNet service(s)"; 1311 leaf detnet-service-processing-index { 1312 type uint32; 1313 description "Outgoing segment entry"; 1314 } 1315 container ip-flow { 1316 when "../../../detnet-service-processing-type =" 1317 + "'ietf-detnet:ipv4' or 'ietf-detnet:ipv6'"; 1318 description 1319 "IP type DetNet flow(s) encapsulation information"; 1320 container ipv4-flow { 1321 when "../../../../detnet-service-processing-type =" 1322 + "'ietf-detnet:ipv4'"; 1323 description 1324 "IPv4 packet header encapsulation information"; 1325 uses ipv4-header; 1326 } 1327 container ipv6-flow { 1328 when "../../../../detnet-service-processing-type =" 1329 + "'ietf-detnet:ipv6'"; 1330 description 1331 "IPv6 packet header encapsulation information"; 1332 uses ipv6-header; 1333 } 1334 container l4-port-header { 1335 description 1336 "TCP/UDP source or destination port number"; 1337 uses l4-port-header; 1338 } 1339 } 1340 container mpls-flow { 1341 when "../../../detnet-service-processing-type =" 1342 + "'ietf-detnet:mpls'"; 1343 description 1344 "MPLS type DetNet flow(s) encapsulation information"; 1345 list detnet-mpls-label-stack { 1346 key "index"; 1347 description 1348 "The list of MPLS labels stack for swap or encapsulation"; 1349 leaf index { 1350 type uint8; 1351 description "Index of the labels stack"; 1352 } 1353 uses mpls-header; 1354 } 1355 } 1356 container detnet-forwarding-sub-layer-info { 1357 description 1358 "The forwarding sub-layer information that associated with 1359 this DetNet service sub-layer"; 1360 leaf detnet-forwarding-sub-layer { 1361 type lower-layer-ref; 1362 description 1363 "Specify associated forwarding sub-layer"; 1364 } 1365 } 1366 } 1367 } 1368 } 1369 } 1370 container forwarding-sub-layer { 1371 when "../config-type = 'ietf-detnet:forwarding-sub-layer'"; 1372 description 1373 "The DetNet forwarding sub-layer configuration"; 1374 container operations { 1375 description 1376 "The DetNet forwarding sub-layer operations grouping"; 1377 container forwarding-operation { 1378 description 1379 "DetNet forwarding function operations grouping"; 1380 leaf forwarding-operation-type { 1381 type forwarding-operation-ref; 1382 description 1383 "DetNet forwarding operation type such as 1384 natively forward, impose and forward, pop and forward, 1385 pop and impose and forward, swap and forward, 1386 and pop and lookup"; 1387 } 1388 } 1389 container resource-allocate { 1390 description 1391 "resource-allocation function operations grouping"; 1392 uses traffic-specification; 1393 } 1394 container qos { 1395 description 1396 "QoS function operations grouping"; 1397 } 1398 } 1399 container in-segments { 1400 description 1401 "DetNet forwarding sub-layer packet identification information"; 1402 leaf detnet-forwarding-type { 1403 type flow-type-ref; 1404 description 1405 "incoming DetNet forwarding packet type"; 1406 } 1407 uses ipv4-flow-identification { 1408 when "detnet-forwardinge-type = 'ietf-detnet:ipv4'"; 1409 } 1410 uses ipv6-flow-identification { 1411 when "detnet-forwarding-type = 'ietf-detnet:ipv6'"; 1412 } 1413 container mpls-flow-identification { 1414 when "../detnet-forwarding-type = 'ietf-detnet:mpls'"; 1415 description 1416 "MPLS type identification information"; 1417 leaf label-space { 1418 type label-space-ref; 1419 description 1420 "Indicate the incoming MPLS label is associated with platform 1421 label space or not"; 1422 } 1423 container non-platform-label-space { 1424 when "../label-space = 'ietf-detnet:non-platform-label'"; 1425 description 1426 "MPLS label is associated with non-platform label space, 1427 all of the F-labels and incoming interface information was 1428 used for identification"; 1429 leaf incoming-interface { 1430 type if:interface-ref; 1431 description 1432 "The information of DetNet forwarding packet incoming 1433 interface"; 1434 } 1435 list non-platform-label-stack { 1436 key "index"; 1437 description 1438 "All of the label information from the outer label to 1439 the current label"; 1440 leaf index { 1441 type uint8; 1442 description 1443 "index number 0 indicate last inner label"; 1444 } 1445 uses mpls-flow-identification; 1446 } 1447 } 1448 container platform-label-space { 1449 when "../label-space = 'ietf-detnet:platform-label'"; 1450 description 1451 "MPLS label is associated with platform label space, only 1452 the F-label is used for identification"; 1453 uses mpls-flow-identification; 1454 } 1455 } 1456 } 1457 container out-segments { 1458 description 1459 "DetNet forwarding sub-layer packet processing information"; 1460 leaf detnet-forwarding-processing-type { 1461 type flow-type-ref; 1462 description 1463 "outgoing DetNet forwarding packet type"; 1464 } 1465 container natively-detnet-forwarding { 1466 when "../../operations/forwarding-operation" 1467 + " /forwarding-operation-type = 'natively-forwarding'"; 1468 description 1469 "Packet forwarding processing information"; 1470 container ipv4-flow { 1471 when "../../detnet-forwarding-processing-type =" 1472 + "'ietf-detnet:ipv4'"; 1473 description 1474 "IPv4 type packet forwarding information"; 1475 leaf ipv4-next-hop-address { 1476 type inet:ipv4-address; 1477 description 1478 "IPv4 type Next hop IP address"; 1479 } 1480 } 1481 container ipv6-flow { 1482 when "../../detnet-forwarding-processing-type =" 1483 + "'ietf-detnet:ipv6'"; 1484 description 1485 "IPv6 type packet forwarding information"; 1486 leaf ipv6-next-hop-address { 1487 type inet:ipv6-address; 1488 description 1489 "IPv6 type Next hop IP address"; 1490 } 1492 } 1493 } 1494 container detnet-forwarding-encapsulation { 1495 when "../../operations/forwarding-operation" 1496 + "/forwarding-operation-type != 'natively-forward'"; 1497 description 1498 "Packet encapsulation information"; 1499 container ip-flow { 1500 when "../../detnet-forwarding-processing-type = " 1501 + "'ietf-detnet:ipv4' or 'ietf-detnet:ipv6'"; 1502 description 1503 "The IP type DetNet flow(s) encapsulation information"; 1504 container ipv4-flow { 1505 when "../../../detnet-forwarding-processing-type = " 1506 + "'ietf-detnet:ipv4'"; 1507 description 1508 "IPv4 packet header encapsulation information"; 1509 uses ipv4-header; 1510 } 1511 container ipv6-flow { 1512 when "../../../detnet-forwarding-processing-type = " 1513 + "'ietf-detnet:ipv6'"; 1514 description 1515 "IPv6 packet header encapsulation information"; 1516 uses ipv6-header; 1517 } 1518 container l4-port-header { 1519 description 1520 "TCP/UDP source or destination port number"; 1521 uses l4-port-header; 1522 } 1523 } 1524 container mpls-flow { 1525 when "../../detnet-forwarding-processing-type = " 1526 + "'ietf-detnet:mpls'"; 1527 description 1528 "MPLS label encapsulation information"; 1529 list detnet-mpls-label-stack { 1530 key "index"; 1531 description 1532 "The list of MPLS labels stack for swap or encapsulation"; 1533 leaf index { 1534 type uint8; 1535 description 1536 "Index of the labels stack"; 1537 } 1538 uses mpls-header; 1539 } 1541 } 1542 container lower-layer-info { 1543 description 1544 "The lower-layer information associated with 1545 this forwarding sub-layer"; 1546 leaf lower-layer-type { 1547 type flow-type-ref; 1548 description 1549 "indicate lower-layer type"; 1550 } 1551 container interface { 1552 when "../lower-layer-type = 'ietf-detnet:l2'"; 1553 description 1554 "indicate the lower-layer is the outgoing interface"; 1555 leaf outgoing-interface { 1556 type if:interface-ref; 1557 description 1558 "Outgoing interface"; 1559 } 1560 } 1561 container sub-layer { 1562 when "../lower-layer-type != 'ietf-detnet:l2'"; 1563 description 1564 "indicate the lower-layer is some of the DetNet sub-layer 1565 or TSN sub-network"; 1566 leaf sub-layer { 1567 type lower-layer-ref; 1568 description 1569 "Specify associated DetNet sub-layer or TSN sub-network"; 1570 } 1571 } 1572 } 1573 } 1574 } 1575 } 1576 container sub-network { 1577 when "../config-type = 'ietf-detnet:tsn-sub-network'"; 1578 description 1579 "sub-network"; 1580 } 1581 } 1582 } 1583 } 1585 1586 6. Open Issues 1588 There are some open issues that are still under discussion: 1590 o The Relationship with 802.1 TSN YANG models is TBD. TSN YANG 1591 models include: P802.1Qcw, which defines TSN YANG for Qbv, Qbu, 1592 and Qci, and P802.1CBcv, which defines YANG for 802.1CB. The 1593 possible problem here is how to avoid possible overlap among yang 1594 models defined in IETF and IEEE. A common YANG model may be 1595 defined in the future to shared by both TSN and DetNet. More 1596 discussion are needed here. 1598 o How to support DetNet OAM is TBD. 1600 These issues will be resolved in the following versions of the draft. 1602 7. IANA Considerations 1604 This document makes no request of IANA. 1606 Note to RFC Editor: this section may be removed on publication as an 1607 RFC. 1609 8. Security Considerations 1611 1613 9. Acknowledgements 1615 10. References 1617 10.1. Normative References 1619 [I-D.finn-detnet-bounded-latency] 1620 Finn, N., Boudec, J., Mohammadpour, E., Zhang, J., Varga, 1621 B., and J. Farkas, "DetNet Bounded Latency", draft-finn- 1622 detnet-bounded-latency-04 (work in progress), June 2019. 1624 [I-D.ietf-detnet-architecture] 1625 Finn, N., Thubert, P., Varga, B., and J. Farkas, 1626 "Deterministic Networking Architecture", draft-ietf- 1627 detnet-architecture-13 (work in progress), May 2019. 1629 [I-D.ietf-detnet-flow-information-model] 1630 Farkas, J., Varga, B., Cummings, R., and Y. Jiang, "DetNet 1631 Flow Information Model", draft-ietf-detnet-flow- 1632 information-model-03 (work in progress), March 2019. 1634 [I-D.ietf-detnet-ip] 1635 Varga, B., Farkas, J., Berger, L., Fedyk, D., Malis, A., 1636 Bryant, S., and J. Korhonen, "DetNet Data Plane: IP", 1637 draft-ietf-detnet-ip-01 (work in progress), July 2019. 1639 [I-D.ietf-detnet-mpls] 1640 Varga, B., Farkas, J., Berger, L., Fedyk, D., Malis, A., 1641 Bryant, S., and J. Korhonen, "DetNet Data Plane: MPLS", 1642 draft-ietf-detnet-mpls-00 (work in progress), May 2019. 1644 [I-D.ietf-detnet-topology-yang] 1645 Geng, X., Chen, M., Li, Z., and R. Rahman, "Deterministic 1646 Networking (DetNet) Topology YANG Model", draft-ietf- 1647 detnet-topology-yang-00 (work in progress), January 2019. 1649 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1650 Requirement Levels", BCP 14, RFC 2119, 1651 DOI 10.17487/RFC2119, March 1997, 1652 . 1654 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 1655 RFC 6991, DOI 10.17487/RFC6991, July 2013, 1656 . 1658 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1659 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1660 . 1662 10.2. Informative References 1664 [I-D.geng-detnet-info-distribution] 1665 Geng, X., Chen, M., and Z. Li, "IGP-TE Extensions for 1666 DetNet Information Distribution", draft-geng-detnet-info- 1667 distribution-03 (work in progress), October 2018. 1669 [I-D.ietf-detnet-use-cases] 1670 Grossman, E., "Deterministic Networking Use Cases", draft- 1671 ietf-detnet-use-cases-20 (work in progress), December 1672 2018. 1674 [I-D.ietf-teas-yang-te] 1675 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 1676 "A YANG Data Model for Traffic Engineering Tunnels and 1677 Interfaces", draft-ietf-teas-yang-te-21 (work in 1678 progress), April 2019. 1680 [I-D.ietf-teas-yang-te-topo] 1681 Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and 1682 O. Dios, "YANG Data Model for Traffic Engineering (TE) 1683 Topologies", draft-ietf-teas-yang-te-topo-22 (work in 1684 progress), June 2019. 1686 [I-D.thubert-tsvwg-detnet-transport] 1687 Thubert, P., "A Transport Layer for Deterministic 1688 Networks", draft-thubert-tsvwg-detnet-transport-01 (work 1689 in progress), October 2017. 1691 [I-D.varga-detnet-service-model] 1692 Varga, B. and J. Farkas, "DetNet Service Model", draft- 1693 varga-detnet-service-model-02 (work in progress), May 1694 2017. 1696 [IEEE802.1CB] 1697 IEEE, "IEEE, "Frame Replication and Elimination for 1698 Reliability (IEEE Draft P802.1CB)", 2017, 1699 .", 1700 2016. 1702 [IEEE802.1Q-2014] 1703 "IEEE, "IEEE Std 802.1Q Bridges and Bridged Networks", 1704 2014, .", 1705 2014. 1707 [IEEE802.1Qbu] 1708 IEEE, "IEEE, "IEEE Std 802.1Qbu Bridges and Bridged 1709 Networks - Amendment 26: Frame Preemption", 2016, 1710 .", 2016. 1712 [IEEE802.1Qbv] 1713 "IEEE, "IEEE Std 802.1Qbu Bridges and Bridged Networks - 1714 Amendment 25: Enhancements for Scheduled Traffic", 2015, 1715 .", 2016. 1717 [IEEE802.1Qcc] 1718 IEEE, "IEEE, "Stream Reservation Protocol (SRP) 1719 Enhancements and Performance Improvements (IEEE Draft 1720 P802.1Qcc)", 2017, 1721 .". 1723 [IEEE802.1Qch] 1724 IEEE, "IEEE, "Cyclic Queuing and Forwarding (IEEE Draft 1725 P802.1Qch)", 2017, 1726 .", 1727 2016. 1729 [IEEE802.1Qci] 1730 IEEE, "IEEE, "Per-Stream Filtering and Policing (IEEE 1731 Draft P802.1Qci)", 2016, 1732 .", 1733 2016. 1735 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 1736 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 1737 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 1738 . 1740 [RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S. 1741 Yasukawa, Ed., "Extensions to Resource Reservation 1742 Protocol - Traffic Engineering (RSVP-TE) for Point-to- 1743 Multipoint TE Label Switched Paths (LSPs)", RFC 4875, 1744 DOI 10.17487/RFC4875, May 2007, 1745 . 1747 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 1748 and R. Wilton, "Network Management Datastore Architecture 1749 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 1750 . 1752 Authors' Addresses 1754 Xuesong Geng 1755 Huawei Technologies 1757 Email: gengxuesong@huawei.com 1759 Mach(Guoyi) Chen 1760 Huawei Technologies 1762 Email: mach.chen@huawei.com 1764 Yeoncheol Ryoo 1765 ETRI 1767 Email: dbduscjf@etri.re.kr 1769 Zhenqiang Li 1770 China Mobile 1772 Email: lizhenqiang@chinamobile.com 1773 Reshad Rahman 1774 Cisco Systems 1776 Email: rrahman@cisco.com