idnits 2.17.00 (12 Aug 2021) /tmp/idnits51551/draft-ietf-detnet-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 162 instances of too long lines in the document, the longest one being 17 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 273 has weird spacing: '...e-label uin...' == Line 280 has weird spacing: '...address ine...' == Line 287 has weird spacing: '...address ine...' == Line 295 has weird spacing: '...oper-id uin...' == Line 310 has weird spacing: '...oper-id uin...' == (25 more instances...) -- The document date (March 26, 2019) is 1151 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 2029, but no explicit reference was found in the text == Unused Reference: 'I-D.geng-detnet-info-distribution' is defined on line 2069, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-detnet-use-cases' is defined on line 2074, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-teas-yang-te' is defined on line 2079, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-teas-yang-te-topo' is defined on line 2085, but no explicit reference was found in the text == Unused Reference: 'I-D.thubert-tsvwg-detnet-transport' is defined on line 2091, but no explicit reference was found in the text == Unused Reference: 'I-D.varga-detnet-service-model' is defined on line 2096, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1CB' is defined on line 2101, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Q-2014' is defined on line 2107, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qbu' is defined on line 2112, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qbv' is defined on line 2117, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qcc' is defined on line 2122, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qch' is defined on line 2128, but no explicit reference was found in the text == Unused Reference: 'IEEE802.1Qci' is defined on line 2134, but no explicit reference was found in the text == Unused Reference: 'RFC3209' is defined on line 2140, but no explicit reference was found in the text == Unused Reference: 'RFC4875' is defined on line 2145, but no explicit reference was found in the text == Unused Reference: 'RFC8342' is defined on line 2152, but no explicit reference was found in the text == Outdated reference: A later version (-04) exists of draft-finn-detnet-bounded-latency-03 ** Downref: Normative reference to an Informational draft: draft-finn-detnet-bounded-latency (ref. 'I-D.finn-detnet-bounded-latency') == Outdated reference: draft-ietf-detnet-architecture has been published as RFC 8655 == Outdated reference: draft-ietf-detnet-flow-information-model has been published as RFC 9016 ** 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-03 == Outdated reference: draft-ietf-detnet-use-cases has been published as RFC 8578 == Outdated reference: A later version (-29) exists of draft-ietf-teas-yang-te-19 == Outdated reference: draft-ietf-teas-yang-te-topo has been published as RFC 8795 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: September 27, 2019 Z. Li 6 China Mobile 7 R. Rahman 8 Cisco Systems 9 March 26, 2019 11 Deterministic Networking (DetNet) Configuration YANG Model 12 draft-ietf-detnet-yang-02 14 Abstract 16 This document contains the specification for Deterministic Networking 17 flow configuration YANG Model. The model allows for provisioning of 18 end-to-end DetNet service along the path without dependency on any 19 signaling protocol. 21 The YANG module defined in this document conforms to the Network 22 Management Datastore Architecture (NMDA). 24 Requirements Language 26 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 27 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 28 document are to be interpreted as described in RFC 2119 [RFC2119]. 30 Status of This Memo 32 This Internet-Draft is submitted in full conformance with the 33 provisions of BCP 78 and BCP 79. 35 Internet-Drafts are working documents of the Internet Engineering 36 Task Force (IETF). Note that other groups may also distribute 37 working documents as Internet-Drafts. The list of current Internet- 38 Drafts is at https://datatracker.ietf.org/drafts/current/. 40 Internet-Drafts are draft documents valid for a maximum of six months 41 and may be updated, replaced, or obsoleted by other documents at any 42 time. It is inappropriate to use Internet-Drafts as reference 43 material or to cite them other than as "work in progress." 45 This Internet-Draft will expire on September 27, 2019. 47 Copyright Notice 49 Copyright (c) 2019 IETF Trust and the persons identified as the 50 document authors. All rights reserved. 52 This document is subject to BCP 78 and the IETF Trust's Legal 53 Provisions Relating to IETF Documents 54 (https://trustee.ietf.org/license-info) in effect on the date of 55 publication of this document. Please review these documents 56 carefully, as they describe your rights and restrictions with respect 57 to this document. Code Components extracted from this document must 58 include Simplified BSD License text as described in Section 4.e of 59 the Trust Legal Provisions and are provided without warranty as 60 described in the Simplified BSD License. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 65 2. Terminologies . . . . . . . . . . . . . . . . . . . . . . . . 3 66 3. DetNet Configuration Model . . . . . . . . . . . . . . . . . 4 67 3.1. DetNet Service Proxy Configuration Attributes . . . . . . 4 68 3.2. DetNet Service Layer Configuration Attributes . . . . . . 5 69 3.3. DetNet Transport Layer Configuration Attributes . . . . . 8 70 4. DetNet Configuration YANG Structure . . . . . . . . . . . . . 9 71 5. DetNet Configuration YANG Model . . . . . . . . . . . . . . . 17 72 6. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 42 73 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43 74 8. Security Considerations . . . . . . . . . . . . . . . . . . . 43 75 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 43 76 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 77 10.1. Normative References . . . . . . . . . . . . . . . . . . 43 78 10.2. Informative References . . . . . . . . . . . . . . . . . 44 79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46 81 1. Introduction 83 Deterministic Networking (DetNet) [I-D.ietf-detnet-architecture] is 84 defined to provide high-quality network service with extremely low 85 packet loss rate, bounded low latency and jitter. 87 DetNet flow information is defined 88 in[I-D.ietf-detnet-flow-information-model], and the DetNet models are 89 categorized as: 91 o Flow models: describe characteristics of data flows. These models 92 describe in detail all relevant aspects of a flow that are needed 93 to support the flow properly by the network between the source and 94 the destination(s). 96 o Service models: describe characteristics of services being 97 provided for data flows over a network. These models can be 98 treated as a network operator independent information model. 100 o Configuration models: describe in detail the settings required on 101 network nodes to serve a data flow properly. Service and flow 102 information models are used between the user and the network 103 operator. Configuration information models are used between the 104 management/control plane entity of the network and the network 105 nodes. 107 They are shown in the Figure 1. 109 User Network Operator 110 flow/service 111 +---+ model +---+ 112 | | <---------------> | X | management/control 113 +---+ +-+-+ plane entity 114 ^ 115 | configuration 116 | model 117 +------------+ 118 v | | 119 +-+ | v network 120 +-+ v +-+ nodes 121 +-+ +-+ 122 +-+ 124 Figure 1. Three Information Models 126 DetNet YANG [RFC7950] [RFC6991] models include: 128 DetNet YANG [RFC7950] [RFC6991] models are used for DetNet service 129 configurations, QoS configuration and topology discovery. DetNet 130 topology model is defined in ietf-detnet-topology-yang. This 131 document defines two YANG models, which are referred to as DetNet 132 flow configuration model and DetNet transport QoS model. DetNet flow 133 model is designed for DetNet flow path configuration and flow status 134 reporting. DetNet transport QoS model is designed for QoS attributes 135 configuration of transport tunnels to achieve end-to-end bounded 136 latency and zero congestion loss. 138 2. Terminologies 140 This documents uses the terminologies defined in 141 [I-D.ietf-detnet-architecture]. 143 3. DetNet Configuration Model 145 DetNet flow configuration includes DetNet Service Proxy 146 configuration, DetNet Service Layer configuration and DetNet 147 Transport Layer configuration. The corresponding attributes used in 148 different layers are defined in Section 3.1, 3.2, 3.3, respectively. 150 3.1. DetNet Service Proxy Configuration Attributes 152 DetNet service proxy is responsible for mapping between application 153 flows and DetNet flows at the edge node(egress/ingress node). Where 154 the application flows can be either layer 2 or layer 3 flows. To 155 identify a flow at the User Network Interface (UNI), as defined in 156 [I-D.ietf-detnet-flow-information-model], the following flow 157 attributes are introduced: 159 o DetNet L3 Flow Identification, refers to Section 7.1.1 of 160 [I-D.ietf-detnet-flow-information-model] 162 o DetNet L2 Flow Identification, refers to Section 7.1.2 of 163 [I-D.ietf-detnet-flow-information-model] 165 DetNet service proxy can also do flow filtering and policing at the 166 ingress to prevent the misbehaviored flows from going into the 167 network, which needs: 169 o Traffic Specification, refers to Section 7.2 of 170 [I-D.ietf-detnet-flow-information-model] 172 The YANG module structure is shown below: 174 | +--rw client-flow* [flow-id] 175 | | +--rw flow-id uint32 176 | | +--rw flow-rank? boolean 177 | | +--rw (flow-type)? 178 | | | +--:(l2-flow) 179 | | | | +--rw source-mac-address? yang:mac-address 180 | | | | +--rw destination-mac-address? yang:mac-address 181 | | | | +--rw ethertype? eth:ethertype 182 | | | | +--rw vlan-id? uint16 183 | | | | +--rw pcp 184 | | | +--:(l3-flow) 185 | | | +--rw (ip-flow-type)? 186 | | | | +--:(ipv4) 187 | | | | | +--rw src-ipv4-address? inet:ipv4-address 188 | | | | | +--rw dest-ipv4-address? inet:ipv4-address 189 | | | | | +--rw dscp? uint8 190 | | | | +--:(ipv6) 191 | | | | +--rw src-ipv6-address? inet:ipv6-address 192 | | | | +--rw dest-ipv6-address? inet:ipv6-address 193 | | | | +--rw traffic-class? uint8 194 | | | | +--rw flow-label? inet:ipv6-flow-label 195 | | | +--rw source-port? inet:port-number 196 | | | +--rw destination-port? inet:port-number 197 | | | +--rw protocol? uint8 198 | | +--rw traffic-specification 199 | | +--rw interval? uint32 200 | | +--rw max-packets-per-interval? uint32 201 | | +--rw max-payload-size? uint32 202 | | +--rw average-packets-per-interval? uint32 203 | | +--rw average-payload-size? uint32 204 | +--rw service-function? service-function-type 205 | +--rw sequence-number-generation-type? sequence-number-generation 206 | +--rw sequence-number-length? uint8 208 3.2. DetNet Service Layer Configuration Attributes 210 DetNet service functions, e.g., DetNet tunnel initialization/ 211 termination and service protection, are provided in DetNet service 212 layer. To support these functions, the following service attributes 213 need to be configured: 215 o DetNet flow identification, refers to Section 7.1.3 of 216 [I-D.ietf-detnet-flow-information-model]. 218 o Service function indication, indicates which service function will 219 be invoked at a DetNet edge, relay node or end station. (DetNet 220 tunnel initialization or termination are default functions in 221 DetNet service layer, so there is no need for explicit 222 indication.) 224 o Flow Rank, refers to Section 7.3 of 225 [I-D.ietf-detnet-flow-information-model]. 227 o Service Rank, refers to Section 7.4 of 228 [I-D.ietf-detnet-flow-information-model]. 230 o Service decapsulation, refers to Section 6.2 of 231 [I-D.ietf-detnet-dp-sol-mpls] 233 o Transport decapsulation, refers to Section 6.2 of 234 [I-D.ietf-detnet-dp-sol-mpls] and Section 3 of 235 [I-D.ietf-detnet-dp-sol-ip] 237 o Service encapsulation, refers to Section 6.2 of 238 [I-D.ietf-detnet-dp-sol-mpls] 240 o Transport encapsulation, refers to Section 6.2 of 241 [I-D.ietf-detnet-dp-sol-mpls]and Section 3 of 242 [I-D.ietf-detnet-dp-sol-ip] 244 The YANG module structure is shown below: 246 +--:(relay-node) {detnet-mpls-dp-sol}? 247 | +--rw relay-node 248 | +--rw name? string 249 | +--rw service-rank 250 | +--rw in-segment* [in-segment-id] 251 | | +--rw in-segment-id uint32 252 | | +--rw (flow-type)? 253 | | | +--:(IP) 254 | | | | +--rw (ip-flow-type)? 255 | | | | | +--:(ipv4) 256 | | | | | | +--rw src-ipv4-address? inet:ipv4-address 257 | | | | | | +--rw dest-ipv4-address? inet:ipv4-address 258 | | | | | | +--rw dscp? uint8 259 | | | | | +--:(ipv6) 260 | | | | | +--rw src-ipv6-address? inet:ipv6-address 261 | | | | | +--rw dest-ipv6-address? inet:ipv6-address 262 | | | | | +--rw traffic-class? uint8 263 | | | | | +--rw flow-label? inet:ipv6-flow-label 264 | | | | +--rw source-port? inet:port-number 265 | | | | +--rw destination-port? inet:port-number 266 | | | | +--rw protocol? uint8 267 | | | +--:(MPLS) 268 | | | +--rw service-label uint32 269 | | +--rw service-function? service-function-type 270 | +--rw out-segment* [out-segment-id] 271 | +--rw out-segment-id uint32 272 | +--rw detnet-service-encapsulation 273 | | +--rw service-label uint32 274 | | +--rw control-word? uint32 275 | +--rw detnet-transport-encapsulation 276 | +--rw (tunnel-type)? 277 | | +--:(IPv4) {ipv4-tunnel}? 278 | | | +--rw ipv4-encapsulation 279 | | | +--rw src-ipv4-address inet:ipv4-address 280 | | | +--rw dest-ipv4-address inet:ipv4-address 281 | | | +--rw protocol uint8 282 | | | +--rw ttl? uint8 283 | | | +--rw dscp? uint8 284 | | +--:(IPv6) {ipv6-tunnel}? 285 | | | +--rw ipv6-encapsulation 286 | | | +--rw src-ipv6-address inet:ipv6-address 287 | | | +--rw dest-ipv6-address inet:ipv6-address 288 | | | +--rw next-header uint8 289 | | | +--rw traffic-class? uint8 290 | | | +--rw flow-label? inet:ipv6-flow-label 291 | | | +--rw hop-limit? uint8 292 | | +--:(MPLS) {mpls-tunnel}? 293 | | | +--rw mpls-encapsulation 294 | | | +--rw label-operations* [label-oper-id] 295 | | | +--rw label-oper-id uint32 296 | | | +--rw (label-actions)? 297 | | | +--:(label-push) 298 | | | | +--rw label-push 299 | | | | +--rw label uint32 300 | | | | +--rw s-bit? boolean 301 | | | | +--rw tc-value? uint8 302 | | | | +--rw ttl-value? uint8 303 | | | +--:(label-swap) 304 | | | +--rw label-swap 305 | | | +--rw out-label uint32 306 | | | +--rw ttl-action? ttl-action-definition 307 | | +--:(MPLS-over-UDP) {mpls-over-udp-tunnel}? 308 | | +--rw mpls-over-udp-encaplustion 309 | | +--rw label-operations* [label-oper-id] 310 | | | +--rw label-oper-id uint32 311 | | | +--rw (label-actions)? 312 | | | +--:(label-push) 313 | | | | +--rw label-push 314 | | | | +--rw label uint32 315 | | | | +--rw s-bit? boolean 316 | | | | +--rw tc-value? uint8 317 | | | | +--rw ttl-value? uint8 318 | | | +--:(label-swap) 319 | | | +--rw label-swap 320 | | | +--rw out-label uint32 321 | | | +--rw ttl-action? ttl-action-definition 322 | | +--rw source-port? inet:port-number 323 | | +--rw destination-port? inet:port-number 324 | | +--rw (address-family)? 325 | | +--:(IPv4) 326 | | | +--rw src-ipv4-address inet:ipv4-address 327 | | | +--rw dest-ipv4-address inet:ipv4-address 328 | | | +--rw protocol uint8 329 | | | +--rw ttl? uint8 330 | | | +--rw dscp? uint8 331 | | +--:(IPv6) 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 hop-limit? uint8 339 3.3. DetNet Transport Layer Configuration Attributes 341 As defined in [I-D.ietf-detnet-architecture], DetNet transport layer 342 optionally provides congestion protection for DetNet flows over paths 343 provided by the underlying network. Explicit route is another 344 mechanism that is used by DetNet to avoid temporary interruptions 345 caused by the convergence of routing or bridging protocols, and it is 346 also implemented at the DetNet transport layer. 348 To support congestion protection and explicit route, the following 349 transport layer related attributes are necessary: 351 o Traffic Specification, refers to Section 7.2 of 352 [I-D.ietf-detnet-flow-information-model]. It may used for 353 bandwidth reservation, flow shaping, filtering and policing. 355 o Explicit path, existing explicit route mechanisms can be reused. 356 For example, if Segment Routing (SR) tunnel is used as the 357 transport tunnel, the configuration is mainly at the ingress node 358 of the transport layer; if the static MPLS tunnel is used as the 359 transport tunnel, the configurations need to be at every transit 360 node along the path; for pure IP based transport tunnel, it's 361 similar to the static MPLS case. 363 The YANG module structure is shown below: 365 +--:(transit-node) 366 | +--rw transit-node 367 | +--rw interval? uint32 368 | +--rw max-packets-per-interval? uint32 369 | +--rw max-payload-size? uint32 370 | +--rw average-packets-per-interval? uint32 371 | +--rw average-payload-size? uint32 373 The parameters for DetNet transport QoS are defined in Section 5. 375 4. DetNet Configuration YANG Structure 377 module: ietf-detnet-flow-config 378 +--rw detnet-flow 379 +--rw (detnet-node-role)? 380 +--:(transit-node) 381 | +--rw transit-node 382 | +--rw interval? uint32 383 | +--rw max-packets-per-interval? uint32 384 | +--rw max-payload-size? uint32 385 | +--rw average-packets-per-interval? uint32 386 | +--rw average-payload-size? uint32 387 +--:(relay-node) {detnet-mpls-dp-sol}? 388 | +--rw relay-node 389 | +--rw name? string 390 | +--rw service-rank 391 | +--rw in-segment* [in-segment-id] 392 | | +--rw in-segment-id uint32 393 | | +--rw (flow-type)? 394 | | | +--:(IP) 395 | | | | +--rw (ip-flow-type)? 396 | | | | | +--:(ipv4) 397 | | | | | | +--rw src-ipv4-address? inet:ipv4-address 398 | | | | | | +--rw dest-ipv4-address? inet:ipv4-address 399 | | | | | | +--rw dscp? uint8 400 | | | | | +--:(ipv6) 401 | | | | | +--rw src-ipv6-address? inet:ipv6-address 402 | | | | | +--rw dest-ipv6-address? inet:ipv6-address 403 | | | | | +--rw traffic-class? uint8 404 | | | | | +--rw flow-label? inet:ipv6-flow-label 405 | | | | +--rw source-port? inet:port-number 406 | | | | +--rw destination-port? inet:port-number 407 | | | | +--rw protocol? uint8 408 | | | +--:(MPLS) 409 | | | +--rw service-label uint32 410 | | +--rw service-function? service-function-type 411 | +--rw out-segment* [out-segment-id] 412 | +--rw out-segment-id uint32 413 | +--rw detnet-service-encapsulation 414 | | +--rw service-label uint32 415 | | +--rw control-word? uint32 416 | +--rw detnet-transport-encapsulation 417 | +--rw (tunnel-type)? 418 | | +--:(IPv4) {ipv4-tunnel}? 419 | | | +--rw ipv4-encapsulation 420 | | | +--rw src-ipv4-address inet:ipv4-address 421 | | | +--rw dest-ipv4-address inet:ipv4-address 422 | | | +--rw protocol uint8 423 | | | +--rw ttl? uint8 424 | | | +--rw dscp? uint8 425 | | +--:(IPv6) {ipv6-tunnel}? 426 | | | +--rw ipv6-encapsulation 427 | | | +--rw src-ipv6-address inet:ipv6-address 428 | | | +--rw dest-ipv6-address inet:ipv6-address 429 | | | +--rw next-header uint8 430 | | | +--rw traffic-class? uint8 431 | | | +--rw flow-label? inet:ipv6-flow-label 432 | | | +--rw hop-limit? uint8 433 | | +--:(MPLS) {mpls-tunnel}? 434 | | | +--rw mpls-encapsulation 435 | | | +--rw label-operations* [label-oper-id] 436 | | | +--rw label-oper-id uint32 437 | | | +--rw (label-actions)? 438 | | | +--:(label-push) 439 | | | | +--rw label-push 440 | | | | +--rw label uint32 441 | | | | +--rw s-bit? boolean 442 | | | | +--rw tc-value? uint8 443 | | | | +--rw ttl-value? uint8 444 | | | +--:(label-swap) 445 | | | +--rw label-swap 446 | | | +--rw out-label uint32 447 | | | +--rw ttl-action? ttl-action-definition 448 | | +--:(MPLS-over-UDP) {mpls-over-udp-tunnel}? 449 | | +--rw mpls-over-udp-encaplustion 450 | | +--rw label-operations* [label-oper-id] 451 | | | +--rw label-oper-id uint32 452 | | | +--rw (label-actions)? 453 | | | +--:(label-push) 454 | | | | +--rw label-push 455 | | | | +--rw label uint32 456 | | | | +--rw s-bit? boolean 457 | | | | +--rw tc-value? uint8 458 | | | | +--rw ttl-value? uint8 459 | | | +--:(label-swap) 460 | | | +--rw label-swap 461 | | | +--rw out-label uint32 462 | | | +--rw ttl-action? ttl-action-definition 463 | | +--rw source-port? inet:port-number 464 | | +--rw destination-port? inet:port-number 465 | | +--rw (address-family)? 466 | | +--:(IPv4) 467 | | | +--rw src-ipv4-address inet:ipv4-address 468 | | | +--rw dest-ipv4-address inet:ipv4-address 469 | | | +--rw protocol uint8 470 | | | +--rw ttl? uint8 471 | | | +--rw dscp? uint8 472 | | +--:(IPv6) 473 | | +--rw src-ipv6-address inet:ipv6-address 474 | | +--rw dest-ipv6-address inet:ipv6-address 475 | | +--rw next-header uint8 476 | | +--rw traffic-class? uint8 477 | | +--rw flow-label? inet:ipv6-flow-label 478 | | +--rw hop-limit? uint8 479 | +--rw interval? uint32 480 | +--rw max-packets-per-interval? uint32 481 | +--rw max-payload-size? uint32 482 | +--rw average-packets-per-interval? uint32 483 | +--rw average-payload-size? uint32 484 +--:(edge-node) {detnet-mpls-dp-sol}? 485 | +--rw edge-node 486 | +--rw (edge-node-type)? 487 | +--:(ingress-node) 488 | | +--rw client-flow* [flow-id] 489 | | | +--rw flow-id uint32 490 | | | +--rw flow-rank? boolean 491 | | | +--rw (flow-type)? 492 | | | | +--:(l2-flow) 493 | | | | | +--rw source-mac-address? yang:mac-address 494 | | | | | +--rw destination-mac-address? yang:mac-address 495 | | | | | +--rw ethertype? eth:ethertype 496 | | | | | +--rw vlan-id? uint16 497 | | | | | +--rw pcp 498 | | | | +--:(l3-flow) 499 | | | | +--rw (ip-flow-type)? 500 | | | | | +--:(ipv4) 501 | | | | | | +--rw src-ipv4-address? inet:ipv4-address 502 | | | | | | +--rw dest-ipv4-address? inet:ipv4-address 503 | | | | | | +--rw dscp? uint8 504 | | | | | +--:(ipv6) 505 | | | | | +--rw src-ipv6-address? inet:ipv6-address 506 | | | | | +--rw dest-ipv6-address? inet:ipv6-address 507 | | | | | +--rw traffic-class? uint8 508 | | | | | +--rw flow-label? inet:ipv6-flow-label 509 | | | | +--rw source-port? inet:port-number 510 | | | | +--rw destination-port? inet:port-number 511 | | | | +--rw protocol? uint8 512 | | | +--rw traffic-specification 513 | | | +--rw interval? uint32 514 | | | +--rw max-packets-per-interval? uint32 515 | | | +--rw max-payload-size? uint32 516 | | | +--rw average-packets-per-interval? uint32 517 | | | +--rw average-payload-size? uint32 518 | | +--rw service-function? service-function-type 519 | | +--rw sequence-number-generation-type? sequence-number-generation 520 | | +--rw sequence-number-length? uint8 521 | | +--rw out-segment* [out-segment-id] 522 | | +--rw out-segment-id uint32 523 | | +--rw detnet-service-encapsulation 524 | | | +--rw service-label uint32 525 | | | +--rw control-word? uint32 526 | | +--rw detnet-transport-encapsulation 527 | | +--rw (tunnel-type)? 528 | | | +--:(IPv4) {ipv4-tunnel}? 529 | | | | +--rw ipv4-encapsulation 530 | | | | +--rw src-ipv4-address inet:ipv4-address 531 | | | | +--rw dest-ipv4-address inet:ipv4-address 532 | | | | +--rw protocol uint8 533 | | | | +--rw ttl? uint8 534 | | | | +--rw dscp? uint8 535 | | | +--:(IPv6) {ipv6-tunnel}? 536 | | | | +--rw ipv6-encapsulation 537 | | | | +--rw src-ipv6-address inet:ipv6-address 538 | | | | +--rw dest-ipv6-address inet:ipv6-address 539 | | | | +--rw next-header uint8 540 | | | | +--rw traffic-class? uint8 541 | | | | +--rw flow-label? inet:ipv6-flow-label 542 | | | | +--rw hop-limit? uint8 543 | | | +--:(MPLS) {mpls-tunnel}? 544 | | | | +--rw mpls-encapsulation 545 | | | | +--rw label-operations* [label-oper-id] 546 | | | | +--rw label-oper-id uint32 547 | | | | +--rw (label-actions)? 548 | | | | +--:(label-push) 549 | | | | | +--rw label-push 550 | | | | | +--rw label uint32 551 | | | | | +--rw s-bit? boolean 552 | | | | | +--rw tc-value? uint8 553 | | | | | +--rw ttl-value? uint8 554 | | | | +--:(label-swap) 555 | | | | +--rw label-swap 556 | | | | +--rw out-label uint32 557 | | | | +--rw ttl-action? ttl-action-definition 558 | | | +--:(MPLS-over-UDP) {mpls-over-udp-tunnel}? 559 | | | +--rw mpls-over-udp-encaplustion 560 | | | +--rw label-operations* [label-oper-id] 561 | | | | +--rw label-oper-id uint32 562 | | | | +--rw (label-actions)? 563 | | | | +--:(label-push) 564 | | | | | +--rw label-push 565 | | | | | +--rw label uint32 566 | | | | | +--rw s-bit? boolean 567 | | | | | +--rw tc-value? uint8 568 | | | | | +--rw ttl-value? uint8 569 | | | | +--:(label-swap) 570 | | | | +--rw label-swap 571 | | | | +--rw out-label uint32 572 | | | | +--rw ttl-action? ttl-action-definition 573 | | | +--rw source-port? inet:port-number 574 | | | +--rw destination-port? inet:port-number 575 | | | +--rw (address-family)? 576 | | | +--:(IPv4) 577 | | | | +--rw src-ipv4-address inet:ipv4-address 578 | | | | +--rw dest-ipv4-address inet:ipv4-address 579 | | | | +--rw protocol uint8 580 | | | | +--rw ttl? uint8 581 | | | | +--rw dscp? uint8 582 | | | +--:(IPv6) 583 | | | +--rw src-ipv6-address inet:ipv6-address 584 | | | +--rw dest-ipv6-address inet:ipv6-address 585 | | | +--rw next-header uint8 586 | | | +--rw traffic-class? uint8 587 | | | +--rw flow-label? inet:ipv6-flow-label 588 | | | +--rw hop-limit? uint8 589 | | +--rw interval? uint32 590 | | +--rw max-packets-per-interval? uint32 591 | | +--rw max-payload-size? uint32 592 | | +--rw average-packets-per-interval? uint32 593 | | +--rw average-payload-size? uint32 594 | +--:(egress-node) 595 | +--rw in-segment* [in-segment-id] 596 | | +--rw in-segment-id uint32 597 | | +--rw (flow-type)? 598 | | | +--:(IP) 599 | | | | +--rw (ip-flow-type)? 600 | | | | | +--:(ipv4) 601 | | | | | | +--rw src-ipv4-address? inet:ipv4-address 602 | | | | | | +--rw dest-ipv4-address? inet:ipv4-address 603 | | | | | | +--rw dscp? uint8 604 | | | | | +--:(ipv6) 605 | | | | | +--rw src-ipv6-address? inet:ipv6-address 606 | | | | | +--rw dest-ipv6-address? inet:ipv6-address 607 | | | | | +--rw traffic-class? uint8 608 | | | | | +--rw flow-label? inet:ipv6-flow-label 609 | | | | +--rw source-port? inet:port-number 610 | | | | +--rw destination-port? inet:port-number 611 | | | | +--rw protocol? uint8 612 | | | +--:(MPLS) 613 | | | +--rw service-label uint32 614 | | +--rw service-function? service-function-type 615 | +--rw (tunnel-type)? 616 | | +--:(ipv4) {ipv4-tunnel}? 617 | | | +--rw ipv4-decap 618 | | | +--rw ipv4-decap tunnel-decap-action-def 619 | | | +--rw ttl-action? ttl-action-def 620 | | +--:(ipv6) {ipv6-tunnel}? 621 | | | +--rw ipv6-decap 622 | | | +--rw ipv6-decap tunnel-decap-action-def 623 | | | +--rw hop-limit-action? hop-limit-action-def 624 | | +--:(mpls) {mpls-tunnel}? 625 | | +--rw label-pop 626 | | +--rw label-pop mpls-label-action-def 627 | | +--rw ttl-action? ttl-action-def 628 | +--rw label-pop mpls-label-action-def 629 | +--rw ttl-action? ttl-action-def 630 +--:(end-station) 631 +--rw end-station 632 +--rw (edge-node-type)? 633 +--:(ingress-node) 634 | +--rw client-flow* [flow-id] 635 | | +--rw flow-id uint32 636 | | +--rw flow-rank? boolean 637 | | +--rw (flow-type)? 638 | | | +--:(l2-flow) 639 | | | | +--rw source-mac-address? yang:mac-address 640 | | | | +--rw destination-mac-address? yang:mac-address 641 | | | | +--rw ethertype? eth:ethertype 642 | | | | +--rw vlan-id? uint16 643 | | | | +--rw pcp 644 | | | +--:(l3-flow) 645 | | | +--rw (ip-flow-type)? 646 | | | | +--:(ipv4) 647 | | | | | +--rw src-ipv4-address? inet:ipv4-address 648 | | | | | +--rw dest-ipv4-address? inet:ipv4-address 649 | | | | | +--rw dscp? uint8 650 | | | | +--:(ipv6) 651 | | | | +--rw src-ipv6-address? inet:ipv6-address 652 | | | | +--rw dest-ipv6-address? inet:ipv6-address 653 | | | | +--rw traffic-class? uint8 654 | | | | +--rw flow-label? inet:ipv6-flow-label 655 | | | +--rw source-port? inet:port-number 656 | | | +--rw destination-port? inet:port-number 657 | | | +--rw protocol? uint8 658 | | +--rw traffic-specification 659 | | +--rw interval? uint32 660 | | +--rw max-packets-per-interval? uint32 661 | | +--rw max-payload-size? uint32 662 | | +--rw average-packets-per-interval? uint32 663 | | +--rw average-payload-size? uint32 664 | +--rw service-function? service-function-type 665 | +--rw sequence-number-generation-type? sequence-number-generation 666 | +--rw sequence-number-length? uint8 667 | +--rw out-segment* [out-segment-id] 668 | +--rw out-segment-id uint32 669 | +--rw detnet-service-encapsulation 670 | | +--rw service-label uint32 671 | | +--rw control-word? uint32 672 | +--rw detnet-transport-encapsulation 673 | +--rw (tunnel-type)? 674 | | +--:(IPv4) {ipv4-tunnel}? 675 | | | +--rw ipv4-encapsulation 676 | | | +--rw src-ipv4-address inet:ipv4-address 677 | | | +--rw dest-ipv4-address inet:ipv4-address 678 | | | +--rw protocol uint8 679 | | | +--rw ttl? uint8 680 | | | +--rw dscp? uint8 681 | | +--:(IPv6) {ipv6-tunnel}? 682 | | | +--rw ipv6-encapsulation 683 | | | +--rw src-ipv6-address inet:ipv6-address 684 | | | +--rw dest-ipv6-address inet:ipv6-address 685 | | | +--rw next-header uint8 686 | | | +--rw traffic-class? uint8 687 | | | +--rw flow-label? inet:ipv6-flow-label 688 | | | +--rw hop-limit? uint8 689 | | +--:(MPLS) {mpls-tunnel}? 690 | | | +--rw mpls-encapsulation 691 | | | +--rw label-operations* [label-oper-id] 692 | | | +--rw label-oper-id uint32 693 | | | +--rw (label-actions)? 694 | | | +--:(label-push) 695 | | | | +--rw label-push 696 | | | | +--rw label uint32 697 | | | | +--rw s-bit? boolean 698 | | | | +--rw tc-value? uint8 699 | | | | +--rw ttl-value? uint8 700 | | | +--:(label-swap) 701 | | | +--rw label-swap 702 | | | +--rw out-label uint32 703 | | | +--rw ttl-action? ttl-action-definition 704 | | +--:(MPLS-over-UDP) {mpls-over-udp-tunnel}? 705 | | +--rw mpls-over-udp-encaplustion 706 | | +--rw label-operations* [label-oper-id] 707 | | | +--rw label-oper-id uint32 708 | | | +--rw (label-actions)? 709 | | | +--:(label-push) 710 | | | | +--rw label-push 711 | | | | +--rw label uint32 712 | | | | +--rw s-bit? boolean 713 | | | | +--rw tc-value? uint8 714 | | | | +--rw ttl-value? uint8 715 | | | +--:(label-swap) 716 | | | +--rw label-swap 717 | | | +--rw out-label uint32 718 | | | +--rw ttl-action? ttl-action-definition 719 | | +--rw source-port? inet:port-number 720 | | +--rw destination-port? inet:port-number 721 | | +--rw (address-family)? 722 | | +--:(IPv4) 723 | | | +--rw src-ipv4-address inet:ipv4-address 724 | | | +--rw dest-ipv4-address inet:ipv4-address 725 | | | +--rw protocol uint8 726 | | | +--rw ttl? uint8 727 | | | +--rw dscp? uint8 728 | | +--:(IPv6) 729 | | +--rw src-ipv6-address inet:ipv6-address 730 | | +--rw dest-ipv6-address inet:ipv6-address 731 | | +--rw next-header uint8 732 | | +--rw traffic-class? uint8 733 | | +--rw flow-label? inet:ipv6-flow-label 734 | | +--rw hop-limit? uint8 735 | +--rw interval? uint32 736 | +--rw max-packets-per-interval? uint32 737 | +--rw max-payload-size? uint32 738 | +--rw average-packets-per-interval? uint32 739 | +--rw average-payload-size? uint32 740 +--:(egress-node) 741 +--rw in-segment* [in-segment-id] 742 | +--rw in-segment-id uint32 743 | +--rw (flow-type)? 744 | | +--:(IP) 745 | | | +--rw (ip-flow-type)? 746 | | | | +--:(ipv4) 747 | | | | | +--rw src-ipv4-address? inet:ipv4-address 748 | | | | | +--rw dest-ipv4-address? inet:ipv4-address 749 | | | | | +--rw dscp? uint8 750 | | | | +--:(ipv6) 751 | | | | +--rw src-ipv6-address? inet:ipv6-address 752 | | | | +--rw dest-ipv6-address? inet:ipv6-address 753 | | | | +--rw traffic-class? uint8 754 | | | | +--rw flow-label? inet:ipv6-flow-label 755 | | | +--rw source-port? inet:port-number 756 | | | +--rw destination-port? inet:port-number 757 | | | +--rw protocol? uint8 758 | | +--:(MPLS) 759 | | +--rw service-label uint32 760 | +--rw service-function? service-function-type 761 +--rw (tunnel-type)? 762 | +--:(ipv4) {ipv4-tunnel}? 763 | | +--rw ipv4-decap 764 | | +--rw ipv4-decap tunnel-decap-action-def 765 | | +--rw ttl-action? ttl-action-def 766 | +--:(ipv6) {ipv6-tunnel}? 767 | | +--rw ipv6-decap 768 | | +--rw ipv6-decap tunnel-decap-action-def 769 | | +--rw hop-limit-action? hop-limit-action-def 770 | +--:(mpls) {mpls-tunnel}? 771 | +--rw label-pop 772 | +--rw label-pop mpls-label-action-def 773 | +--rw ttl-action? ttl-action-def 774 +--rw label-pop mpls-label-action-def 775 +--rw ttl-action? ttl-action-def 777 5. DetNet Configuration YANG Model 779 file "ietf-detnet@20190321.yang" 780 module ietf-detnet{ 781 namespace "urn:ietf:params:xml:ns:yang:ietf-detnet"; 782 //yang-version 1.1; 783 prefix "detnet-flow"; 785 import ietf-yang-types { 786 prefix "yang"; 787 } 789 import ietf-interfaces { 790 prefix "if"; 791 } 793 import ietf-inet-types{ 794 prefix "inet"; 795 } 797 /* import ietf-ethertypes { 798 prefix "eth"; 799 }*/ 801 import ietf-routing-types { 802 prefix "rt-types"; 803 } 805 organization "IETF DetNet Working Group"; 807 contact 808 "WG Web: 809 WG List: 810 WG Chair: Lou Berger 811 813 Janos Farkas 814 816 Editor: Xuesong Geng 817 819 Editor: Mach Chen 820 822 Editor: Zhenqiang Li 823 825 Editor: Reshad Rahman 826 "; 827 description 828 "This YANG module describes the parameters needed 829 for DetNet flow configuration and flow status 830 reporting."; 832 revision "2018-09-10" { 833 description "initial revision"; 834 reference "RFC XXXX: draft-geng-detnet-config-yang-05"; 835 } 837 feature ipv4-tunnel { 838 description 839 "This feature means that a node support 840 IPv4 tunnel encapsulation capability."; 841 } 843 feature ipv6-tunnel { 844 description 845 "This feature means that a node support 846 IPv6 tunnel encapsulation capability."; 847 } 849 feature mpls-tunnel { 850 description 851 "This feature means that a node support 852 MPLS tunnel encapsulation capability."; 853 } 855 feature mpls-over-udp-tunnel { 856 description 857 "This feature means that a node supports 858 MPLS over UDP tunnel encapsulation 859 capability."; 860 } 862 feature detnet-mpls-dp-sol { 863 description 864 "This feature means that MPLS data plane 865 solution is supported."; 866 } 868 identity detnet-node-role { 869 description 870 "base detnet-node-role"; 871 } 873 identity end-station { 874 base detnet-node-role; 875 description 876 "Commonly called a 'host' in IETF documents, 877 and an 'end station' is IEEE 802 documents. 878 End systems of interest to this document 879 are either sources or destinations of DetNet 880 flows. And end system may or may not be 881 DetNet transport layer aware or DetNet 882 service layer aware."; 883 } 885 identity edge-node { 886 base detnet-node-role; 887 description 888 "An instance of a DetNet relay node that 889 includes either a DetNet service layer proxy 890 function for DetNet service protection (e.g. 891 the addition or removal of packet sequencing 892 information) for one or more end systems, or 893 starts or terminate congestion protection at 894 the DetNet transport layer,analogous to a 895 Label Edge Router (LER)."; 896 } 898 identity relay-node { 899 base detnet-node-role; 900 description 901 "A DetNet node including a service layer 902 function that interconnects different DetNet 903 transport layer paths to provide service 904 protection. A DetNet relay node can be a bridge, 905 a router, a firewall, or any other system that 906 participates in the DetNet service layer. It 907 typically incorporates DetNet transport layer 908 functions as well, in which case it is 909 collocated with a transit node."; 910 } 912 identity transit-node { 913 base detnet-node-role; 914 description 915 "A node operating at the DetNet transport layer, 916 that utilizes link layer and/or network layer 917 switching across multiple links and/or 918 sub-networks to provide paths for DetNet 919 service layer functions. Optionally provides 920 congestion protection over those paths. An MPLS 921 LSR is an example of a DetNet transit node."; 922 } 924 identity tunnel-decap-action { 925 description 926 "Base identify from which all tunnel decap 927 actions are derived. 928 Tunnel decap actions include: 929 ipv4-decap - to decap an IPv4 tunnel, 930 ipv6-decap - to decap an IPv6 tunnel."; 931 } 933 identity ipv4-decap { 934 base "tunnel-decap-action"; 935 description 936 "IPv4 tunnel decap."; 937 } 939 identity ipv6-decap { 940 base "tunnel-decap-action"; 941 description 942 "IPv4 tunnel decap."; 943 } 945 typedef tunnel-decap-action-def { 946 type identityref { 947 base "tunnel-decap-action"; 948 } 949 description 950 "Tunnel decap def."; 951 } 953 identity ttl-action { 954 description 955 "Base identity from which all TTL 956 actions are derived."; 957 } 959 identity no-action { 960 base "ttl-action"; 961 description 962 "Do nothing regarding the TTL."; 963 } 965 identity copy-to-inner { 966 base "ttl-action"; 967 description 968 "Copy the TTL of the outer header 969 to the inner header."; 970 } 972 identity decrease-and-copy-to-inner { 973 base "ttl-action"; 974 description 975 "Decrease TTL by one and copy the TTL 976 to the inner header."; 977 } 979 typedef ttl-action-def { 980 type identityref { 981 base "ttl-action"; 982 } 983 description 984 "TTL action definition."; 985 } 987 identity hop-limit-action { 988 description 989 "Base identity from which all hop limit 990 actions are derived."; 991 } 993 typedef hop-limit-action-def { 994 type identityref { 995 base "hop-limit-action"; 996 } 997 description 998 "hop limit action definition."; 999 } 1001 identity mpls-label-action { 1002 description 1003 "Base identity from which all MPLS label 1004 operations are derived. 1005 The MPLS label stack operations include: 1006 push - to add a new label to a label stack, 1007 pop - to pop the top label from a label stack, 1008 swap - to exchange the top label of a label 1009 stack with new label."; 1010 } 1012 identity label-push { 1013 base "mpls-label-action"; 1014 description 1015 "MPLS label stack operation: push."; 1016 } 1018 identity label-pop { 1019 base "mpls-label-action"; 1020 description 1021 "MPLS label stack operation: pop."; 1022 } 1024 identity label-swap { 1025 base "mpls-label-action"; 1026 description 1027 "MPLS label stack operation: swap."; 1028 } 1030 typedef mpls-label-action-def { 1031 type identityref { 1032 base "mpls-label-action"; 1033 } 1034 description 1035 "MPLS label action definition."; 1036 } 1037 identity detnet-transport-layer { 1038 description 1039 "The layer that optionally provides congestion 1040 protection for DetNet flows over paths provided 1041 by the underlying network."; 1042 } 1044 identity detnet-service-layer { 1045 description 1046 "The layer at which service protection is 1047 provided, either packet sequencing, replication, 1048 and elimination or packet encoding"; 1049 } 1051 typedef service-function-type { 1052 type enumeration { 1053 enum null { 1054 description 1055 "No service function is enabled."; 1056 } 1057 enum replication { 1058 description 1059 "A Packet Replication Function (PRF) replicates 1060 DetNet flow packets and forwards them to one or 1061 more next hops in the DetNet domain. The number 1062 of packet copies sent to each next hop is a 1063 DetNet flow specific parameter at the node doing 1064 the replication. PRF can be implemented by an 1065 edge node, a relay node, or an end system"; 1066 } 1067 enum elimination { 1068 description 1069 "A Packet Elimination Function (PEF) eliminates 1070 duplicate copies of packets to prevent excess 1071 packets flooding the network or duplicate 1072 packets being sent out of the DetNet domain. 1073 PEF can be implemented by an edge node, a relay 1074 node, or an end system."; 1075 } 1076 enum ordering { 1077 description 1078 "A Packet Ordering Function (POF) re-orders 1079 packets within a DetNet flow that are received 1080 out of order. This function can be implemented 1081 by an edge node, a relay node, or an end system."; 1082 } 1083 enum elimination-ordering { 1084 description 1085 "A combination of PEF and POF that can be 1086 implemented by an edge node, a relay node, or 1087 an end system."; 1088 } 1089 enum elimination-replication { 1090 description 1091 "A combination of PEF and PRF that can be 1092 implemented by an edge node, a relay node, or 1093 an end system"; 1094 } 1095 enum elimination-ordering-replicaiton { 1096 description 1097 "A combination of PEF, POF and PRF that can be 1098 implemented by an edge node, a relay node, or 1099 an end system"; 1100 } 1101 } 1102 description 1103 "DetNet service function and function combination 1104 types."; 1105 } 1107 typedef sequence-number-generation { 1108 type enumeration { 1109 enum "copy-from-app-flow" { 1110 description 1111 "DetNet flow sequence number is copied 1112 from application flow."; 1113 } 1114 enum "generated-by-edge-node" { 1115 description 1116 "DetNet flow sequence number is generated 1117 by DetNet edge node."; 1118 } 1119 } 1120 description 1121 "DetNet sequence number generation types."; 1122 } 1124 grouping detnet-sequence-number { 1125 description 1126 "DetNet sequence number."; 1127 leaf sequence-number-generation-type { 1128 type sequence-number-generation; 1129 description 1130 "The way on how sequence number is generated."; 1131 } 1132 leaf sequence-number-length { 1133 type uint8; 1134 description 1135 "DetNet sequence number length."; 1136 } 1137 } 1139 grouping detnet-transport-identifier { 1140 description 1141 "DetNet transport identifier"; 1142 } 1144 grouping detnet-transport-qos { 1145 //Editor notes: this will be defined in a separate 1146 // YANG model (detnet-transport-qos). 1147 // More inputs and discussions are needed here. 1148 description 1149 "DetNet transport tunnel QoS attributes."; 1150 uses traffic-specification; 1151 } 1153 grouping ipv4-header { 1154 description 1155 "The IPv4 header encapsulation information."; 1156 leaf src-ipv4-address { 1157 type inet:ipv4-address; 1158 mandatory true; 1159 description 1160 "The source IP address of the header."; 1161 } 1162 leaf dest-ipv4-address { 1163 type inet:ipv4-address; 1164 mandatory true; 1165 description 1166 "The destination IP address of the header."; 1167 } 1168 leaf protocol { 1169 type uint8; 1170 mandatory true; 1171 description 1172 "The protocol id of the header."; 1173 } 1174 leaf ttl { 1175 type uint8; 1176 description 1177 "The TTL of the header."; 1178 } 1179 leaf dscp { 1180 type uint8; 1181 description 1182 "The DSCP field of the header."; 1183 } 1184 } 1186 grouping ipv6-header { 1187 description 1188 "The IPv6 header encapsulation information."; 1189 leaf src-ipv6-address { 1190 type inet:ipv6-address; 1191 mandatory true; 1192 description 1193 "The source IP address of the header."; 1194 } 1195 leaf dest-ipv6-address { 1196 type inet:ipv6-address; 1197 mandatory true; 1198 description 1199 "The destination IP address of the header."; 1200 } 1201 leaf next-header { 1202 type uint8; 1203 mandatory true; 1204 description 1205 "The next header of the IPv6 header."; 1206 } 1207 leaf traffic-class { 1208 type uint8; 1209 description 1210 "The traffic class value of the header."; 1211 } 1212 leaf flow-label { 1213 type inet:ipv6-flow-label; 1214 description 1215 "The flow label of the header."; 1216 } 1217 leaf hop-limit { 1218 type uint8 { 1219 range "1..255"; 1220 } 1221 description 1222 "The hop limit of the header."; 1223 } 1224 } 1226 grouping mpls-header { 1227 description 1228 "The MPLS encapsulation header information."; 1230 list label-operations { 1231 key "label-oper-id"; 1232 description 1233 "Label operations."; 1234 leaf label-oper-id { 1235 type uint32; 1236 description 1237 "An optional identifier that points 1238 to a label operation."; 1239 } 1240 choice label-actions { 1241 description 1242 "Label action options."; 1243 case label-push { 1244 container label-push { 1245 description 1246 "Label push operation."; 1247 leaf label { 1248 type uint32; 1249 mandatory true; 1250 description 1251 "The label to be pushed."; 1252 } 1253 leaf s-bit { 1254 type boolean; 1255 description 1256 "The s-bit of the label to be pushed."; 1257 } 1258 leaf tc-value { 1259 type uint8; 1260 description 1261 "The traffic class value of the label 1262 to be pushed."; 1263 } 1264 leaf ttl-value { 1265 type uint8; 1266 description 1267 "The TTL value of the label to be 1268 pushed."; 1269 } 1270 } 1271 } 1272 case label-swap { 1273 container label-swap { 1274 description 1275 "Label swap operation."; 1276 leaf out-label { 1277 type uint32; 1278 mandatory true; 1279 description 1280 "The out MPLS label."; 1281 } 1282 leaf ttl-action { 1283 type ttl-action-def; 1284 description 1285 "The label ttl actions: 1286 - No-action, or 1287 - Copy to inner label,or 1288 - Decrease (the in label) by 1 and 1289 copy to the out label."; 1290 } 1291 } 1292 } 1293 } 1294 } 1295 } 1297 grouping mpls-detnet-header { 1298 description 1299 "The MPLS DetNet encapsulation header information."; 1300 leaf service-label { 1301 type uint32; 1302 mandatory true; 1303 description 1304 "The service label of the DetNet header."; 1305 } 1306 leaf control-word { 1307 type uint32; 1308 description 1309 "The control word of the DetNet header."; 1310 } 1311 } 1313 grouping udp-header { 1314 description 1315 "UDP header."; 1316 leaf source-port { 1317 type inet:port-number; 1318 description 1319 "The source port number."; 1320 } 1321 leaf destination-port { 1322 type inet:port-number; 1323 description 1324 "The destination port number."; 1325 } 1327 } 1329 grouping transport-tunnel-encap { 1330 description 1331 "Defines the transport tunnel encapsulation 1332 header."; 1333 choice tunnel-type { 1334 description 1335 "Tunnel type includes: IPv4, IPv6, MPLS, 1336 MPLS over UDP tunnels."; 1338 case IPv4 { 1339 if-feature ipv4-tunnel; 1340 description 1341 "IPv4 tunnel."; 1342 container ipv4-encapsulation { 1343 description 1344 "IPv4 encapsulation."; 1345 uses ipv4-header; 1346 } 1347 } 1348 case IPv6 { 1349 if-feature ipv6-tunnel; 1350 description 1351 "IPv6 tunnel."; 1352 container ipv6-encapsulation { 1353 description 1354 "IPv6 encapsulation."; 1355 uses ipv6-header; 1356 } 1357 } 1358 case MPLS { 1359 if-feature mpls-tunnel; 1360 description 1361 "MPLS tunnel."; 1362 container mpls-encapsulation { 1363 description 1364 "MPLS encapsulation."; 1365 uses mpls-header; 1366 } 1367 } 1368 case MPLS-over-UDP { 1369 if-feature mpls-over-udp-tunnel; 1370 description 1371 "MPLS over UDP tunnel."; 1372 container mpls-over-udp-encaplustion { 1373 description 1374 "MPLS over udp encapsulation."; 1376 uses mpls-header; 1377 uses udp-header; 1378 choice address-family { 1379 description 1380 "According to IP address family(IPv4 and IPv6) 1381 to apply corresponding IP header."; 1382 case IPv4 { 1383 description 1384 "IPv4 address family."; 1385 uses ipv4-header; 1386 } 1387 case IPv6 { 1388 description 1389 "IPv6 address family."; 1390 uses ipv6-header; 1391 } 1392 } 1393 } 1394 } 1395 } 1396 } 1398 grouping transport-tunnel-decap { 1399 description 1400 "Tunnel decapsulation inforamtion."; 1401 choice tunnel-type { 1402 description 1403 "Nexthop tunnel type options."; 1404 case ipv4 { 1405 if-feature ipv4-tunnel; 1406 container ipv4-decap { 1407 description 1408 "IPv4 decap."; 1409 leaf ipv4-decap { 1410 type tunnel-decap-action-def; 1411 mandatory true; 1412 description 1413 "IPv4 decap operations."; 1414 } 1415 leaf ttl-action { 1416 type ttl-action-def; 1417 description 1418 "The ttl actions: 1419 no-action or copy to inner header."; 1420 } 1421 } 1422 } 1423 case ipv6 { 1424 if-feature ipv6-tunnel; 1425 container ipv6-decap { 1426 description 1427 "IPv6 decap."; 1428 leaf ipv6-decap { 1429 type tunnel-decap-action-def; 1430 mandatory true; 1431 description 1432 "IPv6 decap operations."; 1433 } 1434 leaf hop-limit-action { 1435 type hop-limit-action-def; 1436 description 1437 "The hop limit actions: 1438 no-action or copy to inner header."; 1439 } 1440 } 1441 } 1442 case mpls { 1443 if-feature mpls-tunnel; 1444 container label-pop { 1445 description 1446 "MPLS decap."; 1447 leaf label-pop { 1448 type mpls-label-action-def; 1449 mandatory true; 1450 description 1451 "Pop a label from the label stack."; 1452 } 1453 leaf ttl-action { 1454 type ttl-action-def; 1455 description 1456 "The label ttl actions: 1457 no-action or copy to inner label/header."; 1458 } 1459 } 1460 } 1461 } 1462 } 1464 grouping detnet-transport-instance { 1465 description 1466 "An instance of the DetNet transport layer, which 1467 depends on the specific data plane that is used 1468 as the underlay tunnel."; 1469 uses transport-tunnel-encap; 1470 uses detnet-transport-qos; 1472 } 1474 grouping ipv6-flow-identification { 1475 description 1476 "IPv6 flow identification."; 1477 leaf src-ipv6-address { 1478 type inet:ipv6-address; 1479 description 1480 "The source IP address of the header."; 1481 } 1482 leaf dest-ipv6-address { 1483 type inet:ipv6-address; 1484 description 1485 "The destination IP address of the header."; 1486 } 1487 leaf traffic-class { 1488 type uint8; 1489 description 1490 "The traffic class value of the header."; 1491 } 1492 leaf flow-label { 1493 type inet:ipv6-flow-label; 1494 description 1495 "The flow label of the header."; 1496 } 1497 leaf source-port { 1498 type inet:port-number; 1499 description 1500 "The source port number."; 1501 } 1502 leaf destination-port { 1503 type inet:port-number; 1504 description 1505 "The destination port number."; 1506 } 1507 leaf protocol { 1508 type uint8; 1509 description 1510 "The protocol id of the header."; 1511 } 1512 } 1514 grouping ipv4-flow-identification { 1515 description 1516 "IPv4 flow identification."; 1517 leaf src-ipv4-address { 1518 type inet:ipv4-address; 1519 description 1520 "The source IP address of the header of 1521 a DetNet flow."; 1522 } 1523 leaf dest-ipv4-address { 1524 type inet:ipv4-address; 1525 description 1526 "The destination IP address of the header 1527 of a DetNet flow."; 1528 } 1529 leaf dscp { 1530 type uint8; 1531 description 1532 "The DSCP field of the header of a DetNet flow.."; 1533 } 1534 leaf source-port { 1535 type inet:port-number; 1536 description 1537 "The source port number."; 1538 } 1539 leaf destination-port { 1540 type inet:port-number; 1541 description 1542 "The destination port number."; 1543 } 1544 leaf protocol { 1545 type uint8; 1546 description 1547 "The protocol id of the header of a DetNet flow.."; 1548 } 1549 } 1551 grouping ip-flow-identification { 1552 description 1553 "IP flow identification."; 1554 choice ip-flow-type { 1555 description 1556 "IP flow types: IPv4, IPv6."; 1557 case ipv4 { 1558 description 1559 "IPv4 flow identification."; 1560 leaf src-ipv4-address { 1561 type inet:ipv4-address; 1562 description 1563 "The source IP address of the header."; 1564 } 1565 leaf dest-ipv4-address { 1566 type inet:ipv4-address; 1567 description 1568 "The destination IP address of the header."; 1569 } 1570 leaf dscp { 1571 type uint8; 1572 description 1573 "The DSCP field of the header."; 1574 } 1575 } 1576 case ipv6 { 1577 description 1578 "IPv6 flow identification."; 1579 leaf src-ipv6-address { 1580 type inet:ipv6-address; 1581 description 1582 "The source IP address of the header."; 1583 } 1584 leaf dest-ipv6-address { 1585 type inet:ipv6-address; 1586 description 1587 "The destination IP address of the header."; 1588 } 1589 leaf traffic-class { 1590 type uint8; 1591 description 1592 "The traffic class value of the header."; 1593 } 1594 leaf flow-label { 1595 type inet:ipv6-flow-label; 1596 description 1597 "The flow label of the header."; 1598 } 1599 } 1600 } 1601 leaf source-port { 1602 type inet:port-number; 1603 description 1604 "The source port number."; 1605 } 1606 leaf destination-port { 1607 type inet:port-number; 1608 description 1609 "The destination port number."; 1610 } 1611 leaf protocol { 1612 type uint8; 1613 description 1614 "The protocol id of the header."; 1615 } 1617 } 1619 grouping l3-flow-identification { 1620 description 1621 "Layer 3 flow identification in a DetNet 1622 domain."; 1623 choice flow-type { 1624 description 1625 "L3 DetNet flow types: IP and MPLS."; 1626 case IP { 1627 description 1628 "IP (IPv4 or IPv6) flow identification."; 1629 uses ip-flow-identification; 1630 } 1631 case MPLS { 1632 description 1633 "MPLS flow identification."; 1634 leaf service-label { 1635 type uint32; 1636 mandatory true; 1637 description 1638 "The service label of a DetNet flow."; 1639 } 1640 } 1641 } 1642 } //l3-flow-identification 1644 grouping in-segments { 1645 description 1646 "From a receiving node point of view, In-segments 1647 are a set of instances of a DetNet flow at the 1648 receiving node. This occurs when Packet Replication 1649 Function (PRF) is enabled at an upstream node or 1650 multiple flows map/aggregate to a single DetNet 1651 flow."; 1652 list in-segment { 1653 key "in-segment-id"; 1655 description 1656 "A list of in segments, there will be 1657 multiple in-segments for a DetNet flow 1658 when PRF and PEF enabled."; 1660 leaf in-segment-id { 1661 type uint32; 1662 description 1663 "in-segment identifier."; 1664 } 1665 uses l3-flow-identification; 1667 leaf service-function { 1668 type service-function-type; 1669 description 1670 "DetNet service function indication."; 1671 } 1672 } 1673 } 1675 grouping out-segments { 1676 description 1677 "Out-segments are a set of instances of 1678 a DetNet flow, this occurs when implement 1679 packet replication function, where an 1680 in-segment of a DetNet flow is replicated 1681 to multiple out-segments."; 1683 list out-segment { 1684 key "out-segment-id"; 1685 description 1686 "A list of segments, there will be multiple 1687 out-segments when perform PRF."; 1688 leaf out-segment-id { 1689 type uint32; 1690 description 1691 "The out-segment identifier"; 1692 } 1694 container detnet-service-encapsulation { 1695 description 1696 "Only MPLS based DetNet defines DetNet 1697 service layer. The service encapsulation 1698 includes service label and control word."; 1699 uses mpls-detnet-header; 1700 } 1702 container detnet-transport-encapsulation { 1703 description 1704 "Each out-segment corresponds to a 1705 transport instance."; 1706 uses detnet-transport-instance; 1707 } 1708 } 1709 } 1711 grouping detnet-service-instance { 1712 description 1713 "An end-2-end DetNet service is consisted of 1714 multiple segments. The concept of segment is 1715 similar to PW segment. For DetNet, since the 1716 existing of PREOF, there could be three cases: 1717 1 - One in-segment maps to multiple 1718 out-segments, when implement PRF; 1719 2 - Multiple in-segments map to one 1720 out-segment, when implement PEF; 1721 3 - Multiple in-segments map to multiple 1722 out-segments, when implement a combination 1723 of PEF and PRF."; 1725 leaf name { 1726 type string; 1727 description 1728 "The name of the service instance. This MUST 1729 be unique across all service instances in 1730 a given network device."; 1731 } 1733 leaf service-rank { 1734 type boolean; 1735 description 1736 "Service rank is used by the network to decide 1737 which services can and cannot exist when network 1738 resources reach their limit. Rank is used to help 1739 to determine which services can be dropped (i.e., 1740 removed from node configuration) if a port of a 1741 node becomes oversubscribed (e.g., due to network 1742 reconfiguration). The true value is more important 1743 than the false value (i.e., services with false 1744 are dropped first)."; 1745 reference 1746 "draft-ietf-detnet-flow-information-model"; 1747 } 1748 uses in-segments; 1749 uses out-segments; 1750 } 1752 grouping l2-flow-identification-at-uni { 1753 description 1754 "Layer 2 flow identification at UNI."; 1755 leaf source-mac-address { 1756 type yang:mac-address; 1757 description 1758 "The source MAC address used for 1759 flow identification."; 1760 } 1761 leaf destination-mac-address { 1762 type yang:mac-address; 1763 description 1764 "The destination MAC address used for 1765 flow identification."; 1766 } 1768 /* leaf ethertype { 1769 type eth:ethertype; 1770 description 1771 "The Ethernet Type (or Length) value represented 1772 in the canonical order defined by IEEE 802. 1773 The canonical representation uses lowercase 1774 characters."; 1775 reference 1776 "IEEE 802-2014 Clause 9.2"; 1777 } 1778 */ 1780 leaf vlan-id { 1781 type uint16 { 1782 range "1..4094"; 1783 } 1784 description 1785 "Vlan Identifier used for L2 flow identification."; 1786 } 1787 container pcp { 1788 //Todo 1789 description 1790 "PCP used for L2 flow identification."; 1791 } 1792 } 1794 grouping l3-flow-identification-at-uni { 1795 description 1796 "Layer 3 flow identification at UNI."; 1797 uses ip-flow-identification; 1798 } 1800 grouping traffic-specification { 1801 description 1802 "traffic-specification specifies how the Source 1803 transmits packets for the flow. This is the 1804 promise/request of the Source to the network. 1805 The network uses this traffic specification 1806 to allocate resources and adjust queue 1807 parameters in network nodes."; 1808 reference 1809 "draft-ietf-detnet-flow-information-model"; 1811 leaf interval { 1812 type uint32; 1813 description 1814 "The period of time in which the traffic 1815 specification cannot be exceeded"; 1816 } 1817 leaf max-packets-per-interval { 1818 type uint32; 1819 description 1820 "The maximum number of packets that the 1821 source will transmit in one Interval."; 1822 } 1823 leaf max-payload-size { 1824 type uint32; 1825 description 1826 "The maximum payload size that the source 1827 will transmit."; 1828 } 1829 leaf average-packets-per-interval { 1830 type uint32; 1831 description 1832 "The average number of packets that the 1833 source will transmit in one Interval"; 1834 } 1835 leaf average-payload-size { 1836 type uint32; 1837 description 1838 "The average payload size that the 1839 source will transmit."; 1840 } 1841 } 1843 grouping client-flows-at-uni { 1844 description 1845 "The attributes of the client flow at UNI. When 1846 flow aggregation is enabled at ingress, multiple 1847 client flows map to a DetNet service instance."; 1848 list client-flow { 1849 key "flow-id"; 1850 description 1851 "A list of client flows."; 1852 leaf flow-id { 1853 type uint32; 1854 description 1855 "Flow identifier that is unique in a network 1856 device for client flow identification"; 1858 } 1859 leaf flow-rank { 1860 type boolean; 1861 description 1862 "Flow rank is used by the network 1863 to decide which flows can and cannot exist 1864 when network resources reach their limit. 1865 Rank is used to help to determine which flows 1866 can be dropped (i.e., removed from node 1867 configuration) if a port of a node becomes 1868 oversubscribed (e.g., due to network 1869 reconfiguration). The true value is more 1870 important than the false value (i.e., flows 1871 with false are dropped first)."; 1872 reference 1873 "draft-ietf-detnet-flow-information-model"; 1874 } 1875 choice flow-type { 1876 description 1877 "Client flow type: layer 2 flow, layer 3 1878 flow."; 1879 case l2-flow { 1880 description 1881 "Ethernet flow identification."; 1882 uses l2-flow-identification-at-uni; 1883 } 1884 case l3-flow { 1885 description 1886 "Layer 3 flow identification, including 1887 IPv4,IPv6 and MPLS."; 1888 uses l3-flow-identification-at-uni; 1889 } 1890 } 1891 container traffic-specification { 1892 description 1893 "The traffic specification of the client flow."; 1894 uses traffic-specification; 1895 } 1896 } 1897 } 1899 grouping detnet-service-decap { 1900 description 1901 "DetNet service decapsulation inforamtion."; 1902 leaf service-label-pop { 1903 type mpls-label-action-def; 1904 mandatory true; 1905 description 1906 "Pop the DetNet service label."; 1907 } 1908 leaf ttl-action { 1909 type ttl-action-def; 1910 description 1911 "The label ttl actions: 1912 no-action or copy to inner label/header."; 1913 } 1914 } 1916 grouping detnet-service-proxy-instance { 1917 description 1918 "Mapping between App-flows and DetNet flows."; 1920 choice edge-node-type { 1921 description 1922 "There are two types of edge node: ingress node and 1923 egress node"; 1924 case ingress-node { 1925 uses client-flows-at-uni; 1926 leaf service-function { 1927 type service-function-type; 1928 description 1929 "DetNet service function indication."; 1930 } 1931 uses detnet-sequence-number; 1932 uses out-segments; 1933 } 1934 case egress-node { 1935 uses in-segments; 1936 uses transport-tunnel-decap; 1937 uses detnet-service-decap; 1938 } 1939 } 1940 } 1942 container detnet-flow { 1943 description 1944 "DetNet flow configuration and status reporting."; 1945 choice detnet-node-role{ 1946 description 1947 "Depends on the role of a node to configure 1948 corresponding flow parameters."; 1949 case transit-node { 1950 description 1951 "DetNet flow configuration parameters for 1952 transit nodes."; 1953 container transit-node { 1954 description 1955 "Transit node container."; 1956 uses detnet-transport-qos; 1957 } 1958 } 1959 case relay-node { 1960 if-feature detnet-mpls-dp-sol; 1961 description 1962 "DetNet flow configuration parameters for 1963 relay nodes."; 1964 container relay-node { 1965 description 1966 "Relay node container."; 1967 uses detnet-service-instance; 1968 } 1969 } 1970 case edge-node { 1971 if-feature detnet-mpls-dp-sol; 1972 description 1973 "DetNet flow configuration parameters for 1974 edge nodes."; 1975 container edge-node { 1976 description 1977 "Edge node container."; 1978 uses detnet-service-proxy-instance; 1979 } 1980 } 1981 case end-station { 1982 description 1983 "DetNet flow configuration parameters for 1984 end stations."; 1985 container end-station { 1986 description 1987 "End station container."; 1988 uses detnet-service-proxy-instance; 1989 } 1990 } 1991 } 1992 } 1993 } 1994 1996 6. Open Issues 1998 There are some open issues that are still under discussion: 2000 o The Relationship with 802.1 TSN YANG models is TBD. TSN YANG 2001 models include: P802.1Qcw, which defines TSN YANG for Qbv, Qbu, 2002 and Qci, and P802.1CBcv, which defines YANG for 802.1CB. The 2003 possible problem here is how to avoid possible overlap among yang 2004 models defined in IETF and IEEE. A common YANG model may be 2005 defined in the future to shared by both TSN and DetNet. More 2006 discussion are needed here. 2008 o How to support DetNet OAM is TBD. 2010 These issues will be resolved in the following versions of the draft. 2012 7. IANA Considerations 2014 This document makes no request of IANA. 2016 Note to RFC Editor: this section may be removed on publication as an 2017 RFC. 2019 8. Security Considerations 2021 2023 9. Acknowledgements 2025 10. References 2027 10.1. Normative References 2029 [I-D.finn-detnet-bounded-latency] 2030 Finn, N., Boudec, J., Mohammadpour, E., Zhang, J., Varga, 2031 B., and J. Farkas, "DetNet Bounded Latency", draft-finn- 2032 detnet-bounded-latency-03 (work in progress), March 2019. 2034 [I-D.ietf-detnet-architecture] 2035 Finn, N., Thubert, P., Varga, B., and J. Farkas, 2036 "Deterministic Networking Architecture", draft-ietf- 2037 detnet-architecture-12 (work in progress), March 2019. 2039 [I-D.ietf-detnet-dp-sol-ip] 2040 Korhonen, J. and B. Varga, "DetNet IP Data Plane 2041 Encapsulation", draft-ietf-detnet-dp-sol-ip-02 (work in 2042 progress), March 2019. 2044 [I-D.ietf-detnet-dp-sol-mpls] 2045 Korhonen, J. and B. Varga, "DetNet MPLS Data Plane 2046 Encapsulation", draft-ietf-detnet-dp-sol-mpls-02 (work in 2047 progress), March 2019. 2049 [I-D.ietf-detnet-flow-information-model] 2050 Farkas, J., Varga, B., Cummings, R., and Y. Jiang, "DetNet 2051 Flow Information Model", draft-ietf-detnet-flow- 2052 information-model-03 (work in progress), March 2019. 2054 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2055 Requirement Levels", BCP 14, RFC 2119, 2056 DOI 10.17487/RFC2119, March 1997, 2057 . 2059 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 2060 RFC 6991, DOI 10.17487/RFC6991, July 2013, 2061 . 2063 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 2064 RFC 7950, DOI 10.17487/RFC7950, August 2016, 2065 . 2067 10.2. Informative References 2069 [I-D.geng-detnet-info-distribution] 2070 Geng, X., Chen, M., and Z. Li, "IGP-TE Extensions for 2071 DetNet Information Distribution", draft-geng-detnet-info- 2072 distribution-03 (work in progress), October 2018. 2074 [I-D.ietf-detnet-use-cases] 2075 Grossman, E., "Deterministic Networking Use Cases", draft- 2076 ietf-detnet-use-cases-20 (work in progress), December 2077 2018. 2079 [I-D.ietf-teas-yang-te] 2080 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 2081 "A YANG Data Model for Traffic Engineering Tunnels and 2082 Interfaces", draft-ietf-teas-yang-te-19 (work in 2083 progress), February 2019. 2085 [I-D.ietf-teas-yang-te-topo] 2086 Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and 2087 O. Dios, "YANG Data Model for Traffic Engineering (TE) 2088 Topologies", draft-ietf-teas-yang-te-topo-19 (work in 2089 progress), February 2019. 2091 [I-D.thubert-tsvwg-detnet-transport] 2092 Thubert, P., "A Transport Layer for Deterministic 2093 Networks", draft-thubert-tsvwg-detnet-transport-01 (work 2094 in progress), October 2017. 2096 [I-D.varga-detnet-service-model] 2097 Varga, B. and J. Farkas, "DetNet Service Model", draft- 2098 varga-detnet-service-model-02 (work in progress), May 2099 2017. 2101 [IEEE802.1CB] 2102 IEEE, "IEEE, "Frame Replication and Elimination for 2103 Reliability (IEEE Draft P802.1CB)", 2017, 2104 .", 2105 2016. 2107 [IEEE802.1Q-2014] 2108 "IEEE, "IEEE Std 802.1Q Bridges and Bridged Networks", 2109 2014, .", 2110 2014. 2112 [IEEE802.1Qbu] 2113 IEEE, "IEEE, "IEEE Std 802.1Qbu Bridges and Bridged 2114 Networks - Amendment 26: Frame Preemption", 2016, 2115 .", 2016. 2117 [IEEE802.1Qbv] 2118 "IEEE, "IEEE Std 802.1Qbu Bridges and Bridged Networks - 2119 Amendment 25: Enhancements for Scheduled Traffic", 2015, 2120 .", 2016. 2122 [IEEE802.1Qcc] 2123 IEEE, "IEEE, "Stream Reservation Protocol (SRP) 2124 Enhancements and Performance Improvements (IEEE Draft 2125 P802.1Qcc)", 2017, 2126 .". 2128 [IEEE802.1Qch] 2129 IEEE, "IEEE, "Cyclic Queuing and Forwarding (IEEE Draft 2130 P802.1Qch)", 2017, 2131 .", 2132 2016. 2134 [IEEE802.1Qci] 2135 IEEE, "IEEE, "Per-Stream Filtering and Policing (IEEE 2136 Draft P802.1Qci)", 2016, 2137 .", 2138 2016. 2140 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 2141 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 2142 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 2143 . 2145 [RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S. 2146 Yasukawa, Ed., "Extensions to Resource Reservation 2147 Protocol - Traffic Engineering (RSVP-TE) for Point-to- 2148 Multipoint TE Label Switched Paths (LSPs)", RFC 4875, 2149 DOI 10.17487/RFC4875, May 2007, 2150 . 2152 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 2153 and R. Wilton, "Network Management Datastore Architecture 2154 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 2155 . 2157 Authors' Addresses 2159 Xuesong Geng 2160 Huawei Technologies 2162 Email: gengxuesong@huawei.com 2164 Mach(Guoyi) Chen 2165 Huawei Technologies 2167 Email: mach.chen@huawei.com 2169 Zhenqiang Li 2170 China Mobile 2172 Email: lizhenqiang@chinamobile.com 2174 Reshad Rahman 2175 Cisco Systems 2177 Email: rrahman@cisco.com