idnits 2.17.1 draft-asechoud-rtgwg-qos-oper-model-08.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: ---------------------------------------------------------------------------- == It seems as if not all pages are separated by form feeds - found 0 form feeds but 14 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (October 22, 2020) is 1279 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) == Outdated reference: A later version (-12) exists of draft-ietf-rtgwg-qos-model-02 ** Downref: Normative reference to an Informational RFC: RFC 2697 ** Downref: Normative reference to an Informational RFC: RFC 2698 Summary: 3 errors (**), 0 flaws (~~), 4 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group A. Choudhary 2 Internet-Draft Cisco Systems 3 Intended status: Standards Track I. Chen 4 Expires: April 25, 2021 The MITRE Corporation 5 October 22, 2020 7 YANG Model for QoS Operational Parameters 8 draft-asechoud-rtgwg-qos-oper-model-08 10 Abstract 12 This document describes a YANG model for Quality of Service (QoS) 13 operational parameters. 15 Status of This Memo 17 This Internet-Draft is submitted in full conformance with the 18 provisions of BCP 78 and BCP 79. 20 Internet-Drafts are working documents of the Internet Engineering 21 Task Force (IETF). Note that other groups may also distribute 22 working documents as Internet-Drafts. The list of current Internet- 23 Drafts is at https://datatracker.ietf.org/drafts/current/. 25 Internet-Drafts are draft documents valid for a maximum of six months 26 and may be updated, replaced, or obsoleted by other documents at any 27 time. It is inappropriate to use Internet-Drafts as reference 28 material or to cite them other than as "work in progress." 30 This Internet-Draft will expire on April 25, 2021. 32 Copyright Notice 34 Copyright (c) 2020 IETF Trust and the persons identified as the 35 document authors. All rights reserved. 37 This document is subject to BCP 78 and the IETF Trust's Legal 38 Provisions Relating to IETF Documents 39 (https://trustee.ietf.org/license-info) in effect on the date of 40 publication of this document. Please review these documents 41 carefully, as they describe your rights and restrictions with respect 42 to this document. Code Components extracted from this document must 43 include Simplified BSD License text as described in Section 4.e of 44 the Trust Legal Provisions and are provided without warranty as 45 described in the Simplified BSD License. 47 Table of Contents 49 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 50 1.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 2 51 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 52 3. QoS Operational Model Design . . . . . . . . . . . . . . . . 3 53 4. Modules Tree Structure . . . . . . . . . . . . . . . . . . . 4 54 5. Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 55 5.1. IETF-QOS-OPER . . . . . . . . . . . . . . . . . . . . . . 6 56 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 57 7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 13 58 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 59 8.1. Normative References . . . . . . . . . . . . . . . . . . 13 60 8.2. Informative References . . . . . . . . . . . . . . . . . 14 61 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 63 1. Introduction 65 This document defines a base YANG [RFC6020] [RFC7950] data module for 66 Quality of Service (QoS) operational parameters. Remote Procedure 67 Calls (RPC) or notification definition is currently not part of this 68 document and will be added later if necessary. QoS configuration 69 modules are defined by [I-D.ietf-rtgwg-qos-model]. 71 This document doesn't include operational parameters for random- 72 detect (RED), which is left to individual vendor to augment it. 74 Editorial Note: (To be removed by RFC Editor) 76 This draft contains several placeholder values that need to be 77 replaced with finalized values at the time of publication. Please 78 apply the following replacements: o "XXXX" --> the assigned RFC value 79 for this draft both in this draft and in the YANG models under the 80 revision statement. o The "revision" date in model, in the format 81 XXXX-XX-XX, needs to be updated with the date the draft gets 82 approved. 84 The YANG modules in this document conform to the Network Management 85 Datastore Architecture (NMDA) [RFC8342]. 87 1.1. Tree Diagrams 89 Tree diagrams used in this document follow the notation defined in 90 [RFC8340] 92 2. Terminology 94 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 95 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 96 "OPTIONAL" in this document are to be interpreted as described in BCP 97 14 [RFC2119] [RFC8174] when, and only when, they appear in all 98 capitals, as shown here. 100 3. QoS Operational Model Design 102 QoS operational model include QoS policy applied to an interface in 103 each direction of traffic. For each QoS policy applied to an 104 interface the model further includes counters for associated 105 Classifiers, Meters and Queues in a particular direction. To 106 modularize and for reusability, grouping have been defined for 107 various counters of classifier, Meters and Queues. The target is 108 assumed to be interface but the groupings can be used for any other 109 target type where QoS policy is applied. 111 [I-D.ietf-rtgwg-qos-model] defines various building blocks for 112 applying a QoS Policy on a target. It includes QoS Policy 113 configuration, which is a container of various classifiers and 114 corresponding actions which are configured for traffic conditioning. 115 This drafts defines the various counters for these building blocks. 116 ietf-qos-oper module defined in this draft augments ietf-interfaces 117 [RFC8343] module. 119 Classifier statistics contains counters for packets and bytes matched 120 to the traffic in a direction and also average rate at which traffic 121 is hitting a classifier. Classification criterion may be based on 122 IP, MPLS or Ethernet. Counters defined in this draft are agnostic to 123 underlying data plane technology. 125 Statistics of meter is modeled based on commonly used algorithms in 126 industry, Single Rate Tri Color Marking (srTCM) [RFC2697] meter, Two 127 Rate Tri Color Marking (trTCM) [RFC2698] meter. Metering statistics 128 includes counters corresponding to various rates configured. A 129 metering container is referred by a metering identifier. This 130 identifier could be a classifier name if the metering configuration 131 is inline with classifier or it could be metering template name if 132 the metering is configured as separate entity and associated with the 133 classifier. 135 Queuing statistics includes counters corresponding to various queues 136 associated with the policy. A queuing container is referred by 137 queuing identifier. This identifier could be a classifier name if 138 the queuing configuration is inline with classifier and hence there 139 is one-to-one mapping between a classifier and a queue or it could be 140 a separate queue identifier if one or more than one classifiers are 141 associated with a queue. 143 4. Modules Tree Structure 145 This document defines counters for classifiers, meters and queues. 147 Classifier statistics consists of list of classifier entries 148 identified by a classifier entry name. Classifier counters include 149 matched packets, bytes and average rate of traffic matching a 150 particular classifier. 152 Metering statistics consists of meters identified by an identifier. 153 Metering counters include conform, exceed, violate and drop packets 154 and bytes. 156 Queuing counters include instantaneous, peak, average queue length, 157 as well as output conform, exceed, tail drop packets and bytes. 159 Named statistics is defined as statistics which are tagged by a name. 160 This could be aggregated or non-aggregated. Aggregated named 161 statistics is defined as counters which are aggregated across 162 classifier entries in a policy applied to an interface in a 163 particular direction. Non-aggregated named statistics are counters 164 of classifier, metering or queuing which have the same tag name but 165 maintained separately. 167 module: ietf-qos-oper 168 augment /if:interfaces/if:interface: 169 +--ro qos-interface-statistics 170 +--ro stats-per-direction* [] 171 +--ro direction? identityref 172 +--ro policy-name? string 173 +--ro classifier-statistics* [] 174 | +--ro classifier-entry-name? string 175 | +--ro classified-pkts? uint64 176 | +--ro classified-bytes? uint64 177 | +--ro classified-rate? uint64 178 +--ro named-statistics* [] 179 | +--ro stats-name? string 180 | +--ro aggregated 181 | | +--ro pkts? uint64 182 | | +--ro bytes? uint64 183 | | +--ro rate? uint64 184 | +--ro non-aggregated 185 | +--ro classifier-statistics* [] 186 | | +--ro classifier-entry-name? string 187 | | +--ro classified-pkts? uint64 188 | | +--ro classified-bytes? uint64 189 | | +--ro classified-rate? uint64 190 | +--ro metering-statistics* [] 191 | | +--ro meter-id? string 192 | | +--ro conform-pkts? uint64 193 | | +--ro conform-bytes? uint64 194 | | +--ro conform-rate? uint64 195 | | +--ro exceed-pkts? uint64 196 | | +--ro exceed-bytes? uint64 197 | | +--ro exceed-rate? uint64 198 | | +--ro violate-pkts? uint64 199 | | +--ro violate-bytes? uint64 200 | | +--ro violate-rate? uint64 201 | | +--ro meter-drop-pkts? uint64 202 | | +--ro meter-drop-bytes? uint64 203 | +--ro queueing-statistics* [] 204 | +--ro queue-id? string 205 | +--ro output-conform-pkts? uint64 206 | +--ro output-conform-bytes? uint64 207 | +--ro output-exceed-pkts? uint64 208 | +--ro output-exceed-bytes? uint64 209 | +--ro queue-current-size-bytes? uint64 210 | +--ro queue-average-size-bytes? uint64 211 | +--ro queue-peak-size-bytes? uint64 212 | +--ro tailed-drop-pkts? uint64 213 | +--ro tailed-drop-bytes? uint64 214 +--ro metering-statistics* [] 215 | +--ro meter-id? string 216 | +--ro conform-pkts? uint64 217 | +--ro conform-bytes? uint64 218 | +--ro conform-rate? uint64 219 | +--ro exceed-pkts? uint64 220 | +--ro exceed-bytes? uint64 221 | +--ro exceed-rate? uint64 222 | +--ro violate-pkts? uint64 223 | +--ro violate-bytes? uint64 224 | +--ro violate-rate? uint64 225 | +--ro meter-drop-pkts? uint64 226 | +--ro meter-drop-bytes? uint64 227 +--ro queueing-statistics* [] 228 +--ro queue-id? string 229 +--ro output-conform-pkts? uint64 230 +--ro output-conform-bytes? uint64 231 +--ro output-exceed-pkts? uint64 232 +--ro output-exceed-bytes? uint64 233 +--ro queue-current-size-bytes? uint64 234 +--ro queue-average-size-bytes? uint64 235 +--ro queue-peak-size-bytes? uint64 236 +--ro tailed-drop-pkts? uint64 237 +--ro tailed-drop-bytes? uint64 239 5. Modules 241 5.1. IETF-QOS-OPER 243 file "ietf-qos-oper.yang" 245 module ietf-qos-oper { 246 yang-version 1.1; 247 namespace "urn:ietf:params:xml:ns:yang:ietf-qos-oper"; 248 prefix oper; 249 import ietf-interfaces { 250 prefix if; 251 reference 252 "RFC8343: A YANG Data Model for Interface Management"; 253 } 254 organization "IETF RTG (Routing Area) Working Group"; 255 contact 256 "WG Web: 257 WG List: 258 Editor: Aseem Choudhary 259 "; 260 description 261 "This module contains a collection of YANG definitions for 262 qos operational specification. 263 Copyright (c) 2019 IETF Trust and the persons identified as 264 authors of the code. All rights reserved. 265 Redistribution and use in source and binary forms, with or 266 without modification, is permitted pursuant to, and subject 267 to the license terms contained in, the Simplified BSD License 268 set forth in Section 4.c of the IETF Trust's Legal Provisions 269 Relating to IETF Documents 270 (http://trustee.ietf.org/license-info). 271 This version of this YANG module is part of RFC XXXX; see 272 the RFC itself for full legal notices."; 273 revision 2020-10-22 { 274 description 275 "Latest revision for qos operational statistics"; 276 reference 277 "RFC XXXX: YANG Model for QOS Operational Parameters"; 278 } 279 identity direction { 280 description 281 "This is identity of traffic direction"; 283 } 284 identity inbound { 285 base direction; 286 description 287 "Direction of traffic coming into the network entry"; 288 } 289 identity outbound { 290 base direction; 291 description 292 "Direction of traffic going out of the network entry"; 293 } 294 grouping classifier-entry-stats { 295 description 296 " 297 This group defines the classifier filter counters of 298 each classifier entry 299 "; 300 leaf classified-pkts { 301 type uint64; 302 description 303 " Number of total packets which filtered 304 to a classifier-entry"; 305 } 306 leaf classified-bytes { 307 type uint64; 308 description 309 " Number of total bytes which filtered 310 to a classifier-entry"; 311 } 312 leaf classified-rate { 313 type uint64; 314 units "bits-per-second"; 315 description 316 " Rate of average data flow through a 317 classifier-entry"; 318 } 319 } 320 grouping named-stats { 321 description 322 "QoS matching statistics associated with a stats-name"; 323 leaf pkts { 324 type uint64; 325 description 326 " Number of total matched packets associated 327 to a statistics name"; 328 } 329 leaf bytes { 330 type uint64; 331 description 332 " Number of total matched bytes associated 333 to a statistics name"; 334 } 335 leaf rate { 336 type uint64; 337 units "bits-per-second"; 338 description 339 " Rate of average matched data which is associated 340 to a statistics name"; 341 } 342 } 343 grouping queue-stats { 344 description 345 "Queuing Counters"; 346 leaf output-conform-pkts { 347 type uint64; 348 description 349 "Number of packets transmitted from queue "; 350 } 351 leaf output-conform-bytes { 352 type uint64; 353 description 354 "Number of bytes transmitted from queue "; 355 } 356 leaf output-exceed-pkts { 357 type uint64; 358 description 359 "Number of packets transmitted from queue "; 360 } 361 leaf output-exceed-bytes { 362 type uint64; 363 description 364 "Number of bytes transmitted from queue "; 365 } 366 leaf queue-current-size-bytes { 367 type uint64; 368 description 369 "Number of bytes currently buffered "; 370 } 371 leaf queue-average-size-bytes { 372 type uint64; 373 description 374 "Average queue size in number of bytes"; 375 } 376 leaf queue-peak-size-bytes { 377 type uint64; 378 description 379 "Peak buffer queue size in bytes "; 380 } 381 leaf tailed-drop-pkts { 382 type uint64; 383 description 384 "Total number of packets tail-dropped "; 385 } 386 leaf tailed-drop-bytes { 387 type uint64; 388 description 389 "Total number of bytes tail-dropped "; 390 } 391 } 392 grouping meter-stats { 393 description 394 "Metering counters"; 395 leaf conform-pkts { 396 type uint64; 397 description 398 "Number of conform packets"; 399 } 400 leaf conform-bytes { 401 type uint64; 402 description 403 "Bytes of conform packets"; 404 } 405 leaf conform-rate { 406 type uint64; 407 units "bits-per-second"; 408 description 409 "Traffic Rate measured as conformimg"; 410 } 411 leaf exceed-pkts { 412 type uint64; 413 description 414 "Number of packets counted as exceeding"; 415 } 416 leaf exceed-bytes { 417 type uint64; 418 description 419 "Bytes of packets counted as exceeding"; 420 } 421 leaf exceed-rate { 422 type uint64; 423 units "bits-per-second"; 424 description 425 "Traffic Rate measured as exceeding"; 426 } 427 leaf violate-pkts { 428 type uint64; 429 description 430 "Number of packets counted as violating"; 431 } 432 leaf violate-bytes { 433 type uint64; 434 description 435 "Bytes of packets counted as violating"; 436 } 437 leaf violate-rate { 438 type uint64; 439 units "bits-per-second"; 440 description 441 "Traffic Rate measured as violating"; 442 } 443 leaf meter-drop-pkts { 444 type uint64; 445 description 446 "Number of packets dropped by meter"; 447 } 448 leaf meter-drop-bytes { 449 type uint64; 450 description 451 "Bytes of packets dropped by meter"; 452 } 453 } 454 grouping classifier-entry-statistics { 455 description 456 "Statistics for a classifier entry"; 457 leaf classifier-entry-name { 458 type string; 459 description 460 "Classifier Entry Name"; 461 } 462 uses classifier-entry-stats; 463 } 465 grouping queuing-stats { 466 description 467 "Statistics for a queue"; 468 leaf queue-id { 469 type string; 470 description 471 "Queue Identifier"; 472 } 473 uses queue-stats; 474 } 475 grouping metering-stats { 476 description 477 "Statistics for a meter"; 478 leaf meter-id { 479 type string; 480 description 481 "Meter Identifier"; 482 } 483 uses meter-stats; 484 } 486 augment "/if:interfaces/if:interface" { 487 description 488 "Augments Qos Target Entry to Interface module"; 490 container qos-interface-statistics { 491 config false; 492 description 493 "Qos Interface statistics"; 495 list stats-per-direction { 496 description 497 "Qos Interface statistics for ingress or egress direction"; 499 leaf direction { 500 type identityref { 501 base direction; 502 } 503 description 504 "Direction fo the traffic flow either inbound or 505 outbound"; 506 } 507 leaf policy-name { 508 type string; 509 description 510 "Policy entry name for single level policy as well as 511 for Hierarchical policies. For Hierarchical policies, 512 this represent relative path as well as the last level 513 policy name."; 514 } 516 list classifier-statistics { 517 description 518 "Classifier Statistics for each Classifier Entry in a 519 Policy applied in a particular direction"; 520 reference 521 "RFC3289: Section 6"; 522 uses classifier-entry-statistics; 524 } 525 list named-statistics { 526 config false; 527 description 528 "Statistics for a statistics-name"; 529 leaf stats-name { 530 type string; 531 description 532 "Statistics name"; 533 } 534 container aggregated { 535 description 536 "Matched aggregated statistics for a statistics-name"; 537 uses named-stats; 538 } 539 container non-aggregated { 540 description 541 "Statistics for non-aggregated statistics-name"; 542 list classifier-statistics { 543 description 544 "Classifier Statistics for each Classifier Entry in a 545 Policy applied in a particular direction"; 546 uses classifier-entry-statistics; 547 } 548 list metering-statistics { 549 config false; 550 description 551 "Statistics for each Meter associated with 552 the Policy"; 553 reference 554 "RFC2697: A Single Rate Three Color Marker 555 RFC2698: A Two Rate Three Color Marker"; 556 uses metering-stats; 557 } 558 list queueing-statistics { 559 config false; 560 description 561 "Statistics for each Queue associated with 562 the Policy"; 563 uses queuing-stats; 564 } 565 } 566 } 567 list metering-statistics { 568 config false; 569 description 570 "Statistics for each Meter associated with the Policy"; 571 reference 572 "RFC2697: A Single Rate Three Color Marker 573 RFC2698: A Two Rate Three Color Marker"; 574 uses metering-stats; 575 } 576 list queueing-statistics { 577 config false; 578 description 579 "Statistics for each Queue associated with the Policy"; 580 uses queuing-stats; 581 } 582 } 583 } 584 } 585 } 587 589 6. Security Considerations 591 7. Acknowledgement 593 MITRE has approved this document for Public Release, Distribution 594 Unlimited, with Public Release Case Number 20-0518. The author's 595 affiliation with The MITRE Corporation is provided for identification 596 purposes only, and is not intended to convey or imply MITRE's 597 concurrence with, or support for, the positions, opinions or 598 viewpoints expressed by the author. 600 8. References 602 8.1. Normative References 604 [I-D.ietf-rtgwg-qos-model] 605 Choudhary, A., Jethanandani, M., Strahle, N., Aries, E., 606 and I. Chen, "YANG Model for QoS", draft-ietf-rtgwg-qos- 607 model-02 (work in progress), July 2020. 609 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 610 Requirement Levels", BCP 14, RFC 2119, 611 DOI 10.17487/RFC2119, March 1997, 612 . 614 [RFC2697] Heinanen, J. and R. Guerin, "A Single Rate Three Color 615 Marker", RFC 2697, DOI 10.17487/RFC2697, September 1999, 616 . 618 [RFC2698] Heinanen, J. and R. Guerin, "A Two Rate Three Color 619 Marker", RFC 2698, DOI 10.17487/RFC2698, September 1999, 620 . 622 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 623 the Network Configuration Protocol (NETCONF)", RFC 6020, 624 DOI 10.17487/RFC6020, October 2010, 625 . 627 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 628 RFC 7950, DOI 10.17487/RFC7950, August 2016, 629 . 631 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 632 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 633 May 2017, . 635 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 636 and R. Wilton, "Network Management Datastore Architecture 637 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 638 . 640 [RFC8343] Bjorklund, M., "A YANG Data Model for Interface 641 Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, 642 . 644 8.2. Informative References 646 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 647 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 648 . 650 Authors' Addresses 652 Aseem Choudhary 653 Cisco Systems 654 170 W. Tasman Drive 655 San Jose, CA 95134 656 US 658 Email: asechoud@cisco.com 660 Ing-Wher Chen 661 The MITRE Corporation 663 Email: ingwherchen@mitre.org