idnits 2.17.1 draft-asechoud-rtgwg-qos-oper-model-04.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 (Jul 01, 2019) is 1733 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 (-11) exists of draft-asechoud-rtgwg-qos-model-09 ** 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. -------------------------------------------------------------------------------- 2 Network Working Group A. Choudhary 3 Internet-Draft Cisco Systems 4 Intended status: Standards Track I. Chen 5 Expires: January 2, 2020 Jabil 6 Jul 01, 2019 8 YANG Model for QoS Operational Parameters 9 draft-asechoud-rtgwg-qos-oper-model-04 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 January 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 . . . . . . . . . . . . . . . . . . . 12 58 7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 12 59 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 60 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 61 8.2. Informative References . . . . . . . . . . . . . . . . . 13 62 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 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 Classfier, 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 117 blocks.ietf-qos-oper module defined in this draft augments ietf- 118 interfaces [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 dataplane technology. 126 Statistics of meter is modeled based on commonly used alogrithms 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 classfier 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 packes and bytes. 160 module: ietf-qos-oper 161 augment /if:interfaces/if:interface: 162 +--ro qos-interface-statistics 163 +--ro qos-stats-per-direction* 164 +--ro direction? identityref 165 +--ro qos-classifier-statistics* 166 | +--ro policy-name? string 167 | +--ro classifier-entry-name? string 168 | +--ro classifier-entry-statistics 169 | +--ro classified-pkts? uint64 170 | +--ro classified-bytes? uint64 171 | +--ro classified-rate? uint64 172 +--ro qos-named-statistics* 173 | +--ro stats-name? string 174 | +--ro pkts? uint64 175 | +--ro bytes? uint64 176 | +--ro rate? uint64 177 +--ro metering-statistics* 178 | +--ro policy-name? string 179 | +--ro meter-id? string 180 | +--ro conform-pkts? uint64 181 | +--ro conform-bytes? uint64 182 | +--ro conform-rate? uint64 183 | +--ro exceed-pkts? uint64 184 | +--ro exceed-bytes? uint64 185 | +--ro exceed-rate? uint64 186 | +--ro violate-pkts? uint64 187 | +--ro violate-bytes? uint64 188 | +--ro violate-rate? uint64 189 | +--ro meter-drop-pkts? uint64 190 | +--ro meter-drop-bytes? uint64 191 +--ro queueing-statistics* 192 +--ro policy-name? string 193 +--ro queue-id? string 194 +--ro queuing-statistics 195 +--ro output-conform-pkts? uint64 196 +--ro output-conform-bytes? uint64 197 +--ro output-exceed-pkts? uint64 198 +--ro output-exceed-bytes? uint64 199 +--ro queue-current-size-bytes? uint64 200 +--ro queue-average-size-bytes? uint64 201 +--ro queue-peak-size-bytes? uint64 202 +--ro tailed-drop-pkts? uint64 203 +--ro tailed-drop-bytes? uint64 205 5. Modules 207 5.1. IETF-QOS-OPER 209 file "ietf-qos-oper.yang" 210 module ietf-qos-oper { 211 yang-version 1.1; 212 namespace "urn:ietf:params:xml:ns:yang:ietf-qos-oper"; 213 prefix oper; 214 import ietf-interfaces { 215 prefix if; 216 reference "RFC8343: A YANG Data Model for Interface Management"; 217 } 218 organization "IETF RTG (Routing Area) Working Group"; 219 contact 220 "WG Web: 221 WG List: 222 WG Chair: Chris Bowers 223 224 WG Chair: Jeff Tantsura 225 226 Editor: Aseem Choudhary 227 "; 228 description 229 "This module contains a collection of YANG definitions for 230 configuring qos specification implementations. 231 Copyright (c) 2019 IETF Trust and the persons identified as 232 authors of the code. All rights reserved. 233 Redistribution and use in source and binary forms, with or 234 without modification, is permitted pursuant to, and subject 235 to the license terms contained in, the Simplified BSD License 236 set forth in Section 4.c of the IETF Trust's Legal Provisions 237 Relating to IETF Documents 238 (http://trustee.ietf.org/license-info). 239 This version of this YANG module is part of RFC XXXX; see 240 the RFC itself for full legal notices."; 241 revision 2019-06-28 { 242 description 243 "Latest revision qos based policy applied to a target"; 244 reference "RFC XXXX: YANG Model for QoS Operational Parameters"; 245 } 246 identity direction { 247 description 248 "This is identity of traffic direction"; 249 } 250 identity inbound { 251 base direction; 252 description 253 "Direction of traffic coming into the network entry"; 254 } 255 identity outbound { 256 base direction; 257 description 258 "Direction of traffic going out of the network entry"; 259 } 260 grouping classifier-entry-stats { 261 description 262 "Classifier Counters"; 263 container classifier-entry-statistics { 264 config false; 265 description 266 " 267 This group defines the classifier filter statistics of 268 each classifier entry 269 "; 270 leaf classified-pkts { 271 type uint64; 272 description 273 "Number of total packets which filtered 274 to a classifier-entry"; 275 } 276 leaf classified-bytes { 277 type uint64; 278 description 279 "Number of total bytes which filtered 280 to a classifier-entry"; 281 } 282 leaf classified-rate { 283 type uint64; 284 units "bits-per-second"; 285 description 286 " Rate of average data flow through a 287 classifier-entry"; 288 } 289 } 290 } 291 grouping qos-named-stats { 292 description 293 "QoS matching statistics associated with a stats-name"; 294 leaf pkts { 295 type uint64; 296 description 297 " Number of total matched packets associated 298 to a statistics name"; 299 } 300 leaf bytes { 301 type uint64; 302 description 303 " Number of total matched bytes associated 304 to a statistics name"; 305 } 306 leaf rate { 307 type uint64; 308 units "bits-per-second"; 309 description 310 " Rate of average matched data which is associated 311 to a statistics name"; 312 } 313 } 314 grouping queuing-stats { 315 description 316 "Queuing Counters"; 317 container queuing-statistics { 318 description 319 "queue related statistics "; 320 leaf output-conform-pkts { 321 type uint64; 322 description 323 "Number of packets transmitted from queue which conform 324 to min-rate"; 325 } 326 leaf output-conform-bytes { 327 type uint64; 328 description 329 "Number of bytes transmitted from queue conform to 330 min-rate"; 331 } 332 leaf output-exceed-pkts { 333 type uint64; 334 description 335 "Number of packets transmitted from queue which exceed 336 min-rate but conform to max-rate"; 337 } 338 leaf output-exceed-bytes { 339 type uint64; 340 description 341 "Number of bytes transmitted from queue which exceed 342 min-rate but conform to max-rate "; 343 } 344 leaf queue-current-size-bytes { 345 type uint64; 346 description 347 "Number of bytes currently buffered "; 348 } 349 leaf queue-average-size-bytes { 350 type uint64; 351 description 352 "Average queue size in number of bytes"; 353 } 354 leaf queue-peak-size-bytes { 355 type uint64; 356 description 357 "Peak buffer queue size in bytes "; 358 } 359 leaf tailed-drop-pkts { 360 type uint64; description 361 "Total number of packets tail-dropped "; 362 } 363 leaf tailed-drop-bytes { 364 type uint64; 365 description 366 "Total number of bytes tail-dropped "; 367 } 368 } 369 } 370 grouping meter-stats { 371 description 372 "Metering Statistics"; 373 leaf conform-pkts { 374 type uint64; 375 description 376 "Number of conform packets"; 377 } 378 leaf conform-bytes { 379 type uint64; 380 description 381 "Number of bytes of conform packets"; 382 } 383 leaf conform-rate { 384 type uint64; 385 units "bits-per-second"; 386 description 387 "Traffic Rate measured as conformimg"; 388 } 389 leaf exceed-pkts { 390 type uint64; 391 description 392 "Number of packets counted as exceeding"; 393 } 394 leaf exceed-bytes { 395 type uint64; 396 description 397 "Bytes of packets counted as exceeding"; 398 } 399 leaf exceed-rate { 400 type uint64; 401 units "bits-per-second"; 402 description 403 "Traffic Rate measured as exceeding"; 404 } 405 leaf violate-pkts { 406 type uint64; 407 description 408 "Number of packets counted as violating"; 409 } 410 leaf violate-bytes { 411 type uint64; 412 description 413 "Bytes of packets counted as violating"; 414 } 415 leaf violate-rate { 416 type uint64; 417 units "bits-per-second"; 418 description 419 "Traffic Rate measured as violating"; 420 } 421 leaf meter-drop-pkts { 422 type uint64; 423 description 424 "Number of packets dropped by meter"; 425 } 426 leaf meter-drop-bytes { 427 type uint64; 428 description 429 "Bytes of packets dropped by meter"; 430 } 431 } 432 augment "/if:interfaces/if:interface" { 433 description 434 "Augments Qos Target Entry to Interface module"; 436 container qos-interface-statistics { 437 config false; 438 description 439 "Qos Interface statistics"; 441 list qos-stats-per-direction { 442 description 443 "Qos Interface statistics for ingress or egress direction"; 445 leaf direction { 446 type identityref { 447 base direction; 448 } 449 description 450 "Direction fo the traffic flow either inbound or 451 outbound"; 452 } 454 list qos-classifier-statistics { 455 description 456 "Classifier Statistics for each Classifier Entry in a 457 Policy applied in a particular direction"; 458 leaf policy-name { 459 type string; 460 description 461 "Policy entry name"; 462 } 463 leaf classifier-entry-name { 464 type string; 465 description 466 "Classifier Entry Name"; 467 } 468 uses classifier-entry-stats; 469 } 470 list qos-named-statistics { 471 config false; 472 description 473 "Matched Statistics for a statistics-name"; 474 leaf stats-name { 475 type string; 476 description 477 "Statistics name"; 478 } 479 uses qos-named-stats; 480 } 481 list metering-statistics { 482 config false; 483 description 484 "Statistics for each Meter associated with the Policy"; 485 reference 486 "RFC2697: A Single Rate Three Color Marker, 487 RFC2698: A Two Rate Three Color Marker"; 488 leaf policy-name { 489 type string; 490 description 491 "Policy entry name"; 492 } 493 leaf meter-id { 494 type string; 495 description 496 "Meter Identifier"; 497 } 498 uses meter-stats; 499 } 500 list queueing-statistics { 501 config false; 502 description 503 "Statistics for each Queue associated with the Policy"; 504 leaf policy-name { 505 type string; 506 description 507 "Policy entry name"; 508 } 509 leaf queue-id { 510 type string; 511 description 512 "Queue Identifier"; 513 } 514 uses queuing-stats; 515 } 516 } 517 } 518 } 519 } 520 522 6. Security Considerations 524 7. Acknowledgement 526 8. References 528 8.1. Normative References 530 [I-D.asechoud-rtgwg-qos-model] 531 Choudhary, A., Jethanandani, M., Strahle, N., Aries, E., 532 and I. Chen, "YANG Model for QoS", draft-asechoud-rtgwg- 533 qos-model-09 (work in progress), May 2019. 535 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 536 Requirement Levels", BCP 14, RFC 2119, 537 DOI 10.17487/RFC2119, March 1997, 538 . 540 [RFC2697] Heinanen, J. and R. Guerin, "A Single Rate Three Color 541 Marker", RFC 2697, DOI 10.17487/RFC2697, September 1999, 542 . 544 [RFC2698] Heinanen, J. and R. Guerin, "A Two Rate Three Color 545 Marker", RFC 2698, DOI 10.17487/RFC2698, September 1999, 546 . 548 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 549 the Network Configuration Protocol (NETCONF)", RFC 6020, 550 DOI 10.17487/RFC6020, October 2010, 551 . 553 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 554 RFC 7950, DOI 10.17487/RFC7950, August 2016, 555 . 557 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 558 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 559 May 2017, . 561 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 562 and R. Wilton, "Network Management Datastore Architecture 563 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 564 . 566 [RFC8343] Bjorklund, M., "A YANG Data Model for Interface 567 Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, 568 . 570 8.2. Informative References 572 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 573 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 574 . 576 Authors' Addresses 578 Aseem Choudhary 579 Cisco Systems 580 170 W. Tasman Drive 581 San Jose, CA 95134 582 US 584 Email: asechoud@cisco.com 585 Ing-Wher Chen 586 Jabil 588 Email: ing-wher_chen@jabil.com