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