idnits 2.17.1 draft-asechoud-rtgwg-qos-oper-model-06.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 13 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 (May 02, 2020) is 1455 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-01 ** 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: November 3, 2020 The MITRE Corporation 5 May 02, 2020 7 YANG Model for QoS Operational Parameters 8 draft-asechoud-rtgwg-qos-oper-model-06 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 November 3, 2020. 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 } 252 organization "IETF RTG (Routing Area) Working Group"; 253 contact 254 "WG Web: 255 WG List: 256 Editor: Aseem Choudhary 257 "; 258 description 259 "This module contains a collection of YANG definitions for 260 qos operational specification. 261 Copyright (c) 2019 IETF Trust and the persons identified as 262 authors of the code. All rights reserved. 263 Redistribution and use in source and binary forms, with or 264 without modification, is permitted pursuant to, and subject 265 to the license terms contained in, the Simplified BSD License 266 set forth in Section 4.c of the IETF Trust's Legal Provisions 267 Relating to IETF Documents 268 (http://trustee.ietf.org/license-info). 269 This version of this YANG module is part of RFC XXXX; see 270 the RFC itself for full legal notices."; 271 revision 2019-10-28 { 272 description 273 "Latest revision for qos operational statistics"; 274 reference "RFC XXXX"; 275 } 276 identity direction { 277 description 278 "This is identity of traffic direction"; 279 } 280 identity inbound { 281 base direction; 282 description 283 "Direction of traffic coming into the network entry"; 284 } 285 identity outbound { 286 base direction; 287 description 288 "Direction of traffic going out of the network entry"; 289 } 290 grouping classifier-entry-stats { 291 description 292 " 293 This group defines the classifier filter counters of 294 each classifier entry 295 "; 296 leaf classified-pkts { 297 type uint64; 298 description 299 " Number of total packets which filtered 300 to a classifier-entry"; 301 } 302 leaf classified-bytes { 303 type uint64; 304 description 305 " Number of total bytes which filtered 306 to a classifier-entry"; 307 } 308 leaf classified-rate { 309 type uint64; 310 units "bits-per-second"; 311 description 312 " Rate of average data flow through a 313 classifier-entry"; 314 } 315 } 316 grouping named-stats { 317 description 318 "QoS matching statistics associated with a stats-name"; 319 leaf pkts { 320 type uint64; 321 description 322 " Number of total matched packets associated 323 to a statistics name"; 324 } 325 leaf bytes { 326 type uint64; 327 description 328 " Number of total matched bytes associated 329 to a statistics name"; 331 } 332 leaf rate { 333 type uint64; 334 units "bits-per-second"; 335 description 336 " Rate of average matched data which is associated 337 to a statistics name"; 338 } 339 } 340 grouping queue-stats { 341 description 342 "Queuing Counters"; 343 leaf output-conform-pkts { 344 type uint64; 345 description 346 "Number of packets transmitted from queue "; 347 } 348 leaf output-conform-bytes { 349 type uint64; 350 description 351 "Number of bytes transmitted from queue "; 352 } 353 leaf output-exceed-pkts { 354 type uint64; 355 description 356 "Number of packets transmitted from queue "; 357 } 358 leaf output-exceed-bytes { 359 type uint64; 360 description 361 "Number of bytes transmitted from queue "; 362 } 363 leaf queue-current-size-bytes { 364 type uint64; 365 description 366 "Number of bytes currently buffered "; 367 } 368 leaf queue-average-size-bytes { 369 type uint64; 370 description 371 "Average queue size in number of bytes"; 372 } 373 leaf queue-peak-size-bytes { 374 type uint64; 375 description 376 "Peak buffer queue size in bytes "; 377 } 378 leaf tailed-drop-pkts { 379 type uint64; 380 description 381 "Total number of packets tail-dropped "; 382 } 383 leaf tailed-drop-bytes { 384 type uint64; 385 description 386 "Total number of bytes tail-dropped "; 387 } 388 } 389 grouping meter-stats { 390 description 391 "Metering counters"; 392 leaf conform-pkts { 393 type uint64; 394 description 395 "Number of conform packets"; 396 } 397 leaf conform-bytes { 398 type uint64; 399 description 400 "Bytes of conform packets"; 401 } 402 leaf conform-rate { 403 type uint64; 404 units "bits-per-second"; 405 description 406 "Traffic Rate measured as conformimg"; 407 } 408 leaf exceed-pkts { 409 type uint64; 410 description 411 "Number of packets counted as exceeding"; 412 } 413 leaf exceed-bytes { 414 type uint64; 415 description 416 "Bytes of packets counted as exceeding"; 417 } 418 leaf exceed-rate { 419 type uint64; 420 units "bits-per-second"; 421 description 422 "Traffic Rate measured as exceeding"; 423 } 424 leaf violate-pkts { 425 type uint64; 426 description 427 "Number of packets counted as violating"; 428 } 429 leaf violate-bytes { 430 type uint64; 431 description 432 "Bytes of packets counted as violating"; 433 } 434 leaf violate-rate { 435 type uint64; 436 units "bits-per-second"; 437 description 438 "Traffic Rate measured as violating"; 439 } 440 leaf meter-drop-pkts { 441 type uint64; 442 description 443 "Number of packets dropped by meter"; 444 } 445 leaf meter-drop-bytes { 446 type uint64; 447 description 448 "Bytes of packets dropped by meter"; 449 } 450 } 451 grouping classifier-entry-statistics { 452 description 453 "Statistics for a classifier entry"; 454 leaf classifier-entry-name { 455 type string; 456 description 457 "Classifier Entry Name"; 458 } 459 uses classifier-entry-stats; 460 } 462 grouping queuing-stats { 463 description 464 "Statistics for a queue"; 465 leaf queue-id { 466 type string; 467 description 468 "Queue Identifier"; 469 } 470 uses queue-stats; 471 } 473 grouping metering-stats { 474 description 475 "Statistics for a meter"; 476 leaf meter-id { 477 type string; 478 description 479 "Meter Identifier"; 480 } 481 uses meter-stats; 482 } 484 augment "/if:interfaces/if:interface" { 485 description 486 "Augments Qos Target Entry to Interface module"; 488 container qos-interface-statistics { 489 config false; 490 description 491 "Qos Interface statistics"; 493 list stats-per-direction { 494 description 495 "Qos Interface statistics for ingress or egress direction"; 497 leaf direction { 498 type identityref { 499 base direction; 500 } 501 description 502 "Direction fo the traffic flow either inbound or 503 outbound"; 504 } 505 leaf policy-name { 506 type string; 507 description 508 "Policy entry name for single level policy as well as 509 for Hierarchical policies. For Hierarchical policies, 510 this represent relative path as well as the last level 511 policy name."; 512 } 514 list classifier-statistics { 515 description 516 "Classifier Statistics for each Classifier Entry in a 517 Policy applied in a particular direction"; 518 uses classifier-entry-statistics; 519 } 520 list named-statistics { 521 config false; 522 description 523 "Statistics for a statistics-name"; 524 leaf stats-name { 525 type string; 526 description 527 "Statistics name"; 528 } 529 container aggregated { 530 description 531 "Matched aggregated statistics for a statistics-name"; 532 uses named-stats; 533 } 534 container non-aggregated { 535 description 536 "Statistics for non-aggregated statistics-name"; 537 list classifier-statistics { 538 description 539 "Classifier Statistics for each Classifier Entry in a 540 Policy applied in a particular direction"; 541 uses classifier-entry-statistics; 542 } 543 list metering-statistics { 544 config false; 545 description 546 "Statistics for each Meter associated with 547 the Policy"; 548 uses metering-stats; 549 } 550 list queueing-statistics { 551 config false; 552 description 553 "Statistics for each Queue associated with 554 the Policy"; 555 uses queuing-stats; 556 } 557 } 558 } 559 list metering-statistics { 560 config false; 561 description 562 "Statistics for each Meter associated with the Policy"; 563 uses metering-stats; 564 } 565 list queueing-statistics { 566 config false; 567 description 568 "Statistics for each Queue associated with the Policy"; 569 uses queuing-stats; 570 } 572 } 573 } 574 } 575 } 577 579 6. Security Considerations 581 7. Acknowledgement 583 8. References 585 8.1. Normative References 587 [I-D.ietf-rtgwg-qos-model] 588 Choudhary, A., Jethanandani, M., Strahle, N., Aries, E., 589 and I. Chen, "YANG Model for QoS", draft-ietf-rtgwg-qos- 590 model-01 (work in progress), April 2020. 592 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 593 Requirement Levels", BCP 14, RFC 2119, 594 DOI 10.17487/RFC2119, March 1997, 595 . 597 [RFC2697] Heinanen, J. and R. Guerin, "A Single Rate Three Color 598 Marker", RFC 2697, DOI 10.17487/RFC2697, September 1999, 599 . 601 [RFC2698] Heinanen, J. and R. Guerin, "A Two Rate Three Color 602 Marker", RFC 2698, DOI 10.17487/RFC2698, September 1999, 603 . 605 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 606 the Network Configuration Protocol (NETCONF)", RFC 6020, 607 DOI 10.17487/RFC6020, October 2010, 608 . 610 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 611 RFC 7950, DOI 10.17487/RFC7950, August 2016, 612 . 614 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 615 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 616 May 2017, . 618 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 619 and R. Wilton, "Network Management Datastore Architecture 620 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 621 . 623 [RFC8343] Bjorklund, M., "A YANG Data Model for Interface 624 Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, 625 . 627 8.2. Informative References 629 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 630 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 631 . 633 Authors' Addresses 635 Aseem Choudhary 636 Cisco Systems 637 170 W. Tasman Drive 638 San Jose, CA 95134 639 US 641 Email: asechoud@cisco.com 643 Ing-Wher Chen 644 The MITRE Corporation 646 Email: ingwherchen@mitre.org