idnits 2.17.00 (12 Aug 2021) /tmp/idnits17281/draft-xiong-detnet-qos-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 34 instances of too long lines in the document, the longest one being 27 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 131 has weird spacing: '...er-name str...' == Line 143 has weird spacing: '...p-value uin...' == Line 152 has weird spacing: '...abel-id uin...' == Line 173 has weird spacing: '...on-type det...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (November 1, 2019) is 925 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: 'RFC5462' is defined on line 631, but no explicit reference was found in the text == Outdated reference: draft-ietf-detnet-ip has been published as RFC 8939 == Outdated reference: A later version (-02) exists of draft-xiong-detnet-qos-policy-01 Summary: 1 error (**), 0 flaws (~~), 9 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 DeNet WG Q. Xiong 3 Internet-Draft Y. Han 4 Intended status: Standards Track ZTE Corporation 5 Expires: May 4, 2020 F. Qin 6 P. Liu 7 China Mobile 8 November 1, 2019 10 DetNet QoS Yang 11 draft-xiong-detnet-qos-yang-02 13 Abstract 15 This document defines a YANG data model for Deterministic Networking 16 (DetNet) Quality of Service (QoS) based on the Differentiated 17 Services (DiffServ) model. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at https://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on May 4, 2020. 36 Copyright Notice 38 Copyright (c) 2019 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (https://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 54 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 55 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 56 2. DetNet DiffServ QoS Model . . . . . . . . . . . . . . . . . . 3 57 2.1. DetNet QoS Tree Structure . . . . . . . . . . . . . . . . 3 58 2.2. DetNet QoS Module . . . . . . . . . . . . . . . . . . . . 4 59 3. Security Considerations . . . . . . . . . . . . . . . . . . . 13 60 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 61 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 62 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 63 6.1. Informative References . . . . . . . . . . . . . . . . . 13 64 6.2. Normative References . . . . . . . . . . . . . . . . . . 13 65 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 67 1. Introduction 69 Deterministic Networking (DetNet) as defined in [RFC8655], provides a 70 capability to carry specified unicast or multicast data flows for 71 real-time applications with extremely low data loss rates and bounded 72 latency. In the meanwhile, DetNet and non-DetNet packets are allowed 73 to be transmitted in the same network and more than one DetNet flows 74 which has different priorities may be forwarded through the DetNet 75 domain. As discussed in [I-D.ietf-detnet-ip] and 76 [I-D.xiong-detnet-qos-policy], the Differentiated Services (DiffServ) 77 can be used to provide Quality of Service (QoS) for DetNet services. 79 This document defines a YANG data model for DetNet QoS based on the 80 DiffServ model. 82 1.1. Requirements Language 84 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 85 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 86 document are to be interpreted as described in [RFC2119]. 88 1.2. Terminology 90 The terminology is defined as [RFC8655], [RFC3270], [RFC2474] and 91 [RFC2475]. 93 2. DetNet DiffServ QoS Model 95 This document defines a YANG data module for DetNet DiffServ QoS 96 Model as discussed in [I-D.xiong-detnet-qos-policy]. In the ietf- 97 detnet-qos module, this is performed as one of the DetNet QoS policy. 99 2.1. DetNet QoS Tree Structure 101 DetNet DiffServ model is one type of the DetNet QoS policy and other 102 policy types can be defined in detnet-policy-type. 104 [I-D.xiong-detnet-qos-policy] specified two types of classifiers 105 including BA (Behavior Aggregate) and MF (Multi-Field) classifiers in 106 detnet-classifier-type. DetNet IP BA classifier selects packets 107 based on the DiffServ Code Point (DSCP) and DetNet MPLS BA classifier 108 is based on the MPLS Traffic Class (TC) field. DetNet IP MF 109 classifier selects packets based on the value of a combination of 110 source address, destination address, DSCP, protocol ID, source port 111 and destination port numbers and DetNet MPLS MF classifier is based 112 on the MPLS TC , service label (S-Label) field and forwarding labels 113 (F-Labels) of the header. 115 [I-D.xiong-detnet-qos-policy] defined a DetNet (DN) Per Hop Behavior 116 (PHB) for DetNet forward other than existing PHBs including 117 AF,EF,CS,DF etc. The PHB class information description is as qos- 118 phb-class shown. 120 [I-D.xiong-detnet-qos-policy] defined two new types of action for 121 DetNet traffic conditioning named order and scheduler action. Other 122 actions including meter, shaper, dropper and marker as the detnet- 123 action-type shown. 125 module: ietf-detnet-qos 126 +--rw detnet-qos-policies 127 +--rw detnet-policy-template* [detnet-policy-name] 128 +--rw detnet-policy-name string 129 +--rw detnet-policy-type? detnet-policy-type 130 +--rw detnet-classifier-template* [detnet-classifier-name] 131 +--rw detnet-classifier-name string 132 +--rw detnet-classifier-type? detnet-classifier-type 133 +--rw (classifier-type)? 134 | +--:(ba) 135 | | +--rw (encapsulation-type)? 136 | | +--:(MPLS) 137 | | | +--rw mpls-ba* [tc-value] 138 | | | +--rw phb-class? qos-phb-class 139 | | | +--rw tc-value uint8 140 | | +--:(IP) 141 | | +--rw ip-ba* [dscp-value] 142 | | +--rw phb-class? qos-phb-class 143 | | +--rw dscp-value uint8 144 | +--:(mf) 145 | +--rw (tunnel-type)? 146 | +--:(MPLS) 147 | | +--rw mpls-mf* [tc-value] 148 | | +--rw phb-class? qos-phb-class 149 | | +--rw tc-value uint8 150 | | +--rw s-label? uint32 151 | | +--rw f-labels* [f-label-id] 152 | | +--rw f-label-id uint32 153 | +--:(IPv4) 154 | | +--rw ipv4-mf* [dscp-value] 155 | | +--rw phb-class? qos-phb-class 156 | | +--rw dscp-value uint8 157 | | +--rw ipv4-source-address? inet:ipv4-address 158 | | +--rw ipv4-destination-address? inet:ipv4-address 159 | | +--rw protocol-ID? uint8 160 | | +--rw source-port-numbers? inet:port-number 161 | | +--rw destination-port-numbers? inet:port-number 162 | +--:(IPv6) 163 | +--rw ipv6-mf* [dscp-value] 164 | +--rw phb-class? qos-phb-class 165 | +--rw dscp-value uint8 166 | +--rw ipv6-source-address? inet:ipv6-address 167 | +--rw ipv6-destination-address? inet:ipv6-address 168 | +--rw protocol-ID? uint8 169 | +--rw source-port-numbers? inet:port-number 170 | +--rw destination-port-numbers? inet:port-number 171 | +--rw flow-label? inet:ipv6-flow-label 172 +--rw detnet-action* [detnet-action-type] 173 +--rw detnet-action-type detnet-action-type 174 +--rw (actions)? 175 +--:(meter) 176 +--:(marker) 177 +--:(shaper) 178 +--:(dropper) 179 +--:(order) 180 +--:(scheduler) 182 2.2. DetNet QoS Module 184 file "detnet-diffserv-qos@2018-10-13.yang" 185 module ietf-detnet-qos { 186 yang-version 1; 187 namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-qos"; 188 prefix detnet-qos; 189 import ietf-inet-types{ 190 prefix "inet"; 191 } 193 organization "IETF DetNet Working Group"; 194 contact 195 "WG Web: 196 WG List: 197 WG Chair: Lou Berger 198 199 Janos Farkas 200 201 Editor: Quan Xiong 202 203 Editor: Yufang Han 204 "; 206 description 207 "This YANG module describes the Deterministic Networking (DetNet) 208 Quality of Service (QoS) based on the Differentiated Services (DiffServ) 209 model."; 211 revision "2018-10-13" { 212 description "initial revision"; 213 reference "RFC XXXX: draft-xiong-detnet-qos-yang-01"; 214 } 216 typedef qos-phb-class { 217 type enumeration { 218 enum df { 219 value 1 ; 220 description "Default Forwarding for Best effort"; 221 } 222 enum af1 { 223 value 2 ; 224 description "Assured forwarding class 1"; 225 } 226 enum af2 { 227 value 3 ; 228 description "Assured forwarding class 2"; 229 } 230 enum af3 { 231 value 4 ; 232 description "Assured forwarding class 3"; 233 } 234 enum af4 { 235 value 5 ; 236 description "Assured forwarding class 4"; 238 } 239 enum ef { 240 value 6 ; 241 description "Expedited forward"; 242 } 243 enum cs6 { 244 value 7 ; 245 description "Internetwork control service class"; 246 } 247 enum cs7 { 248 value 8 ; 249 description "Network control service class"; 250 } 251 enum dn { 252 value 9 ; 253 description "DetNet forward"; 254 } 255 } 256 description 257 "The PHB class including AF,EF,CS,DF,DN"; 258 } 260 typedef detnet-policy-type { 261 type enumeration { 262 enum diffserv { 263 value 1 ; 264 description "DiffServ Policy"; 265 } 266 } 267 description 268 "The DetNet policy type."; 269 } 271 typedef detnet-classifier-type { 272 type enumeration { 273 enum ba { 274 value 1 ; 275 description "DiffServ BA Classifier"; 276 } 277 enum mf { 278 value 2 ; 279 description "DiffServ MF Classifier"; 280 } 281 } 282 description 283 "The DetNet classifier type including BA and MF."; 284 } 285 typedef detnet-action-type { 286 type enumeration { 287 enum meter { 288 value 1 ; 289 description "DiffServ meter Action"; 290 } 291 enum shaper { 292 value 2 ; 293 description "DiffServ shaper Action"; 294 } 295 enum dropper { 296 value 3 ; 297 description "DiffServ dropper Action"; 298 } 299 enum marker { 300 value 4 ; 301 description "DiffServ marker Action"; 302 } 303 enum order { 304 value 5 ; 305 description "DiffServ order Action"; 306 } 307 enum scheduler { 308 value 6 ; 309 description "DiffServ scheduler Action"; 310 } 311 } 312 description 313 "The DetNet classifier type including BA and MF."; 314 } 316 grouping mpls-tc { 317 description "MPLS TC Information"; 318 leaf phb-class { 319 type qos-phb-class; 320 description "Specify phb class of PHB info, support [a" 321 + "f1,af2,af3,af4,be,ef,cs6,cs7,dn]"; 322 } 323 leaf tc-value { 324 type uint8 { 325 range 0..7 { 326 description "MPLS-TC value, support [0-7]"; 327 } 328 } 329 mandatory true ; 330 description "MPLS-TC value, support [0-7]"; 331 } 332 } 333 grouping ip-dscp { 334 description "IP DSCP Information"; 335 leaf phb-class { 336 type qos-phb-class ; 337 description "Specify server class of PHB info, support [a" 338 + "f1,af2,af3,af4,be,ef,cs6,cs7,dn]"; 339 } 340 leaf dscp-value { 341 type uint8 { 342 range 0..63 { 343 description "IPv4/IPv6 DSCP value, support [0-63]"; 344 } 345 } 346 mandatory true ; 347 description "IPv4/IPv6 DSCP value, support [0-63]"; 348 } 349 } 351 grouping mpls-header-info { 352 description "MPLS TC Information"; 353 leaf phb-class { 354 type qos-phb-class ; 355 description "Specify phb class of PHB info, support [a" 356 + "f1,af2,af3,af4,be,ef,cs6,cs7,dn]"; 357 } 358 leaf tc-value { 359 type uint8 { 360 range 0..7 { 361 description "MPLS-TC value, support [0-7]"; 362 } 363 } 364 mandatory true ; 365 description "MPLS-TC value, support [0-7]"; 366 } 367 leaf s-label { 368 type uint32; 369 description "DetNet Flow ID value, support classifier MF"; 370 } 371 list f-labels { 372 key "f-label-id"; 373 description "DetNet forwarding label id, support classifier MF"; 374 leaf f-label-id { 375 type uint32; 376 description "DetNet forwarding label value, support classifier MF"; 377 } 378 } 379 } 380 grouping ipv4-header-info { 381 description "IP DSCP Information"; 382 leaf phb-class { 383 type qos-phb-class ; 384 description "Specify server class of PHB info, support [a" 385 + "f1,af2,af3,af4,be,ef,cs6,cs7,dn]"; 386 } 387 leaf dscp-value { 388 type uint8 { 389 range 0..63 { 390 description "IPv4/IPv6 DSCP value, support [0-63]"; 391 } 392 } 393 mandatory true ; 394 description "IPv4/IPv6 DSCP value, support [0-63]"; 395 } 396 leaf ipv4-source-address { 397 type inet:ipv4-address; 398 description "source address value, support classifier MF"; 399 } 400 leaf ipv4-destination-address { 401 type inet:ipv4-address; 402 description "destination address value, support classifier MF"; 403 } 404 leaf protocol-ID { 405 type uint8; 406 description "protocol ID, support classifier MF"; 407 } 408 leaf source-port-numbers { 409 type inet:port-number; 410 description "source port numbers, support classifier MF"; 411 } 412 leaf destination-port-numbers { 413 type inet:port-number; 414 description "destination port numbers, support classifier MF"; 415 } 416 } 418 grouping ipv6-header-info { 419 description "IPv6 DSCP Information"; 420 leaf phb-class { 421 type qos-phb-class ; 422 description "Specify server class of PHB info, support [a" 423 + "f1,af2,af3,af4,be,ef,cs6,cs7,dn]"; 424 } 425 leaf dscp-value { 426 type uint8 { 427 range 0..63 { 428 description "IPv4/IPv6 DSCP value, support [0-63]"; 429 } 430 } 431 mandatory true ; 432 description "IPv4/IPv6 DSCP value, support [0-63]"; 433 } 434 leaf ipv6-source-address { 435 type inet:ipv6-address; 436 description "source address value, support classifier MF"; 437 } 438 leaf ipv6-destination-address { 439 type inet:ipv6-address; 440 description "destination address value, support classifier MF"; 441 } 442 leaf protocol-ID { 443 type uint8; 444 description "protocol ID, support classifier MF"; 445 } 446 leaf source-port-numbers { 447 type inet:port-number; 448 description "source port numbers, support classifier MF"; 449 } 450 leaf destination-port-numbers { 451 type inet:port-number; 452 description "destination port numbers, support classifier MF"; 453 } 454 leaf flow-label { 455 type inet:ipv6-flow-label; 456 description 457 "The flow label of the header."; 458 } 459 } 461 grouping detnet-classifiers { 462 description "Configure the DetNet classifiers"; 463 choice classifier-type { 464 description "Choice of classifiers types"; 465 case ba { 466 description "BA classifier"; 467 choice encapsulation-type { 468 description "Tunnel type includes: IP, MPLS."; 469 case MPLS { 470 list mpls-ba { 471 key "tc-value"; 472 description "MPLS-TC be mapped to PHB"; 473 uses mpls-tc; 474 } 475 } 476 case IP { 477 list ip-ba { 478 key "dscp-value"; 479 description "IPv4/IPv6 DSCP be mapped to PHB"; 480 uses ip-dscp; 481 } 482 } 483 } 484 } 485 case mf { 486 description "MF classifier"; 487 choice tunnel-type { 488 description 489 "Tunnel type includes: IPv4, IPv6, MPLS."; 490 case MPLS { 491 list mpls-mf { 492 key "tc-value"; 493 description "MPLS-TC be mapped to PHB"; 494 uses mpls-header-info; 495 } 496 } 497 case IPv4 { 498 list ipv4-mf { 499 key "dscp-value"; 500 description "IPv4 DSCP be mapped to PHB"; 501 uses ipv4-header-info; 502 } 503 } 504 case IPv6 { 505 list ipv6-mf { 506 key "dscp-value"; 507 description "IPv6 DSCP be mapped to PHB"; 508 uses ipv6-header-info; 509 } 510 } 511 } 512 } 513 } 514 } 516 grouping detnet-actions { 517 description 518 "DetNet Configuration about the actions"; 519 list detnet-action { 520 key "detnet-action-type"; 521 description "DetNet actions, to be defined."; 522 leaf detnet-action-type { 523 type detnet-action-type; 524 description "DetNet action types"; 525 } 526 choice actions { 527 description "Choice of action types"; 528 case meter { 529 description "meter action"; 530 } 531 case marker { 532 description "marker action"; 533 } 534 case shaper { 535 description "shaper action"; 536 } 537 case dropper { 538 description "dropper action"; 539 } 540 case order { 541 description "order action"; 542 } 543 case scheduler { 544 description "scheduler action"; 545 } 546 } 547 } 548 } 550 container detnet-qos-policies { 551 description "Configuration about DetNet QoS Policy"; 552 list detnet-policy-template { 553 key detnet-policy-name; 554 description "DetNet policy template"; 555 leaf detnet-policy-name { 556 type string; 557 description "DetNet policy name"; 558 } 559 leaf detnet-policy-type { 560 type detnet-policy-type; 561 description "DetNet policy type"; 562 } 563 list detnet-classifier-template { 564 key detnet-classifier-name; 565 description "DetNet classifier template"; 566 leaf detnet-classifier-name { 567 type string; 568 description "DetNet classifier name"; 569 } 570 leaf detnet-classifier-type { 571 type detnet-classifier-type; 572 description "DetNet classifier type"; 573 } 574 uses detnet-classifiers; 575 uses detnet-actions; 576 } 577 } 578 } 579 } 580 582 3. Security Considerations 584 TBD. 586 4. IANA Considerations 588 TBD. 590 5. Acknowledgements 592 TBD. 594 6. References 596 6.1. Informative References 598 [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., 599 and W. Weiss, "An Architecture for Differentiated 600 Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, 601 . 603 6.2. Normative References 605 [I-D.ietf-detnet-ip] 606 Varga, B., Farkas, J., Berger, L., Fedyk, D., Malis, A., 607 Bryant, S., and J. Korhonen, "DetNet Data Plane: IP", 608 draft-ietf-detnet-ip-03 (work in progress), October 2019. 610 [I-D.xiong-detnet-qos-policy] 611 Xiong, Q. and Y. jinghai, "DetNet QoS Policy", draft- 612 xiong-detnet-qos-policy-01 (work in progress), March 2019. 614 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 615 Requirement Levels", BCP 14, RFC 2119, 616 DOI 10.17487/RFC2119, March 1997, 617 . 619 [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, 620 "Definition of the Differentiated Services Field (DS 621 Field) in the IPv4 and IPv6 Headers", RFC 2474, 622 DOI 10.17487/RFC2474, December 1998, 623 . 625 [RFC3270] Le Faucheur, F., Wu, L., Davie, B., Davari, S., Vaananen, 626 P., Krishnan, R., Cheval, P., and J. Heinanen, "Multi- 627 Protocol Label Switching (MPLS) Support of Differentiated 628 Services", RFC 3270, DOI 10.17487/RFC3270, May 2002, 629 . 631 [RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching 632 (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic 633 Class" Field", RFC 5462, DOI 10.17487/RFC5462, February 634 2009, . 636 [RFC8655] Finn, N., Thubert, P., Varga, B., and J. Farkas, 637 "Deterministic Networking Architecture", RFC 8655, 638 DOI 10.17487/RFC8655, October 2019, 639 . 641 Authors' Addresses 643 Quan Xiong 644 ZTE Corporation 645 No.6 Huashi Park Rd 646 Wuhan, Hubei 430223 647 China 649 Phone: +86 27 83531060 650 Email: xiong.quan@zte.com.cn 652 Yufang Han 653 ZTE Corporation 654 50 Software Avenue, YuHuaTai District 655 Nanjing, Jiangsu 210012 656 China 658 Phone: +86 15951984307 659 Email: han.yufang1@zte.com.cn 660 Fengwei Qin 661 China Mobile 662 Beijing 663 China 665 Email: qinfengwei@chinamobile.com 667 Peng Liu 668 China Mobile 669 Beijing 100053 670 China 672 Email: liupengyjy@chinamobile.com