idnits 2.17.1 draft-asechoud-rtgwg-qos-oper-model-03.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 12 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 (Jan 01, 2019) is 1941 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-07 ** 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: July 5, 2019 Jabil 6 Jan 01, 2019 8 YANG Model for QoS Operational Parameters 9 draft-asechoud-rtgwg-qos-oper-model-03 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 July 5, 2019. 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 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 52 3. QoS Operational Model Design . . . . . . . . . . . . . . . . 2 53 4. Modules Tree Structure . . . . . . . . . . . . . . . . . . . 3 54 5. Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 55 5.1. IETF-QOS-OPER . . . . . . . . . . . . . . . . . . . . . . 5 56 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 57 7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 11 58 8. Normative References . . . . . . . . . . . . . . . . . . . . 11 59 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 61 1. Introduction 63 This document defines a base YANG [RFC6020] data module for Quality 64 of Service (QoS) operational parameters. Remote Procedure Calls 65 (RPC) or notification definition is currently not part of this 66 document and will be added later if necessary. QoS configuration 67 modules are defined by [I-D.asechoud-rtgwg-qos-model]. 69 This document doesn't include operational parameters for random- 70 detect (RED), which is left to individual vendor to augment it. 72 2. Terminology 74 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 75 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 76 document are to be interpreted as described in [RFC2119]. 78 3. QoS Operational Model Design 80 QoS operational model include QoS policy applied to an interface in 81 each direction of traffic. For each QoS policy applied to an 82 interface the model further includes counters for associated 83 Classifiers, Meters and Queues in a particular direction. To 84 modularize and for reusability, grouping have been defined for 85 various counters of Classfier, Meters and Queues. The target is 86 assumed to be interface but the groupings can be used for any other 87 target type where QoS policy is applied. 89 [I-D.asechoud-rtgwg-qos-model] defines various building blocks for 90 applying a QoS Policy on a target. It includes QoS Policy 91 configuration, which is a container of various classifiers and 92 corresponding actions which are configured for traffic conditioning. 93 This drafts defines the various counters for these building blocks. 95 Classifier statistics contains counters for packets and bytes matched 96 to the traffic in a direction and also average rate at which traffic 97 is hitting a classifier. Classification criterion may be based on 98 IP, MPLS or Ethernet. Counters defined in this draft are agnostic to 99 underlying dataplane technology. 101 Statistics of meter is modeled based on commonly used alogrithms in 102 industry, Single Rate Tri Color Marking (srTCM) [RFC2697] meter, Two 103 Rate Tri Color Marking (trTCM) [RFC2698] meter. Metering statistics 104 includes counters corresponding to various rates configured. A 105 metering container is referred by a metering identifier. This 106 identifier could be a classifier name if the metering configuration 107 is inline with classifier or it could be metering template name if 108 the metering is configured as separate entity and associated with the 109 classifier. 111 Queuing statistics includes counters corresponding to various queues 112 associated with the policy. A queuing container is referred by 113 queuing identifier. This identifier could be a classifier name if 114 the queuing configuration is inline with classifier and hence there 115 is one-to-one mapping between a classfier and a queue or it could be 116 a separate queue identifier if one or more than one classifiers are 117 associated with a queue. 119 4. Modules Tree Structure 121 This document defines counters for classifiers, meters and queues. 123 Classifier statistics consists of list of classifier entries 124 identified by a classifier entry name. Classifier counters include 125 matched packets, bytes and average rate of traffic matching a 126 particular classifier. 128 Metering statistics consists of meters identified by an identifier. 129 Metering counters include conform, exceed, violate and drop packets 130 and bytes. 132 Queuing counters include instantaneous, peak, average queue length, 133 as well as output conform, exceed, tail drop packes and bytes. 135 module: ietf-qos-oper 136 augment /if:interfaces/if:interface: 137 +--ro qos-interface-statistics 138 +--ro qos-stats-per-direction* 139 +--ro direction? identityref 140 +--ro qos-classifier-statistics* 141 | +--ro policy-name? string 142 | +--ro classifier-entry-name? string 143 | +--ro classifier-entry-statistics 144 | +--ro classified-pkts? uint64 145 | +--ro classified-bytes? uint64 146 | +--ro classified-rate? uint64 147 +--ro qos-named-statistics* 148 | +--ro stats-name? string 149 | +--ro pkts? uint64 150 | +--ro bytes? uint64 151 | +--ro rate? uint64 152 +--ro metering-statistics* 153 | +--ro policy-name? string 154 | +--ro meter-id? string 155 | +--ro conform-pkts? uint64 156 | +--ro conform-bytes? uint64 157 | +--ro conform-rate? uint64 158 | +--ro exceed-pkts? uint64 159 | +--ro exceed-bytes? uint64 160 | +--ro exceed-rate? uint64 161 | +--ro violate-pkts? uint64 162 | +--ro violate-bytes? uint64 163 | +--ro violate-rate? uint64 164 | +--ro meter-drop-pkts? uint64 165 | +--ro meter-drop-bytes? uint64 166 +--ro queueing-statistics* 167 +--ro policy-name? string 168 +--ro queue-id? string 169 +--ro queuing-statistics 170 +--ro output-conform-pkts? uint64 171 +--ro output-conform-bytes? uint64 172 +--ro output-exceed-pkts? uint64 173 +--ro output-exceed-bytes? uint64 174 +--ro queue-current-size-bytes? uint64 175 +--ro queue-average-size-bytes? uint64 176 +--ro queue-peak-size-bytes? uint64 177 +--ro tailed-drop-pkts? uint64 178 +--ro tailed-drop-bytes? uint64 180 5. Modules 182 5.1. IETF-QOS-OPER 184 file "ietf-qos-oper.yang" 185 module ietf-qos-oper { 186 yang-version 1.1; 187 namespace "urn:ietf:params:xml:ns:yang:ietf-qos-oper"; 188 prefix oper; 189 import ietf-interfaces { 190 prefix if; 191 } 192 organization "IETF RTG (Routing Area) Working Group"; 193 contact 194 "WG Web: 195 WG List: 196 WG Chair: Chris Bowers 197 198 WG Chair: Jeff Tantsura 199 200 Editor: Aseem Choudhary 201 "; 202 description 203 "This module contains a collection of YANG definitions for 204 configuring qos specification implementations. 205 Copyright (c) 2014 IETF Trust and the persons identified as 206 authors of the code. All rights reserved. 207 Redistribution and use in source and binary forms, with or 208 without modification, is permitted pursuant to, and subject 209 to the license terms contained in, the Simplified BSD License 210 set forth in Section 4.c of the IETF Trust's Legal Provisions 211 Relating to IETF Documents 212 (http://trustee.ietf.org/license-info). 213 This version of this YANG module is part of RFC XXXX; see 214 the RFC itself for full legal notices."; 215 revision 2018-06-28 { 216 description 217 "Latest revision qos based policy applied to a target"; 218 reference "RFC XXXX"; 219 } 220 identity direction { 221 description 222 "This is identity of traffic direction"; 223 } 224 identity inbound { 225 base direction; 226 description 227 "Direction of traffic coming into the network entry"; 229 } 230 identity outbound { 231 base direction; 232 description 233 "Direction of traffic going out of the network entry"; 234 } 235 grouping classifier-entry-stats { 236 description 237 "Classifier Counters"; 238 container classifier-entry-statistics { 239 config false; 240 description 241 " 242 This group defines the classifier filter statistics of 243 each classifier entry 244 "; 245 leaf classified-pkts { 246 type uint64; 247 description 248 " Number of total packets which filtered 249 to a classifier-entry"; 250 } 251 leaf classified-bytes { 252 type uint64; 253 description 254 " Number of total bytes which filtered 255 to a classifier-entry"; 256 } 257 leaf classified-rate { 258 type uint64; 259 units "bits-per-second"; 260 description 261 " Rate of average data flow through a 262 classifier-entry"; 263 } 264 } 265 } 266 grouping qos-named-stats { 267 description 268 "QoS matching statistics associated with a stats-name"; 269 leaf pkts { 270 type uint64; 271 description 272 " Number of total matched packets associated 273 to a statistics name"; 274 } 275 leaf bytes { 276 type uint64; 277 description 278 " Number of total matched bytes associated 279 to a statistics name"; 280 } 281 leaf rate { 282 type uint64; 283 units "bits-per-second"; 284 description 285 " Rate of average matched data which is associated 286 to a statistics name"; 287 } 288 } 289 grouping queuing-stats { 290 description 291 "Queuing Counters"; 292 container queuing-statistics { 293 description 294 "queue related statistics "; 295 leaf output-conform-pkts { 296 type uint64; 297 description 298 "Number of packets transmitted from queue "; 299 } 300 leaf output-conform-bytes { 301 type uint64; 302 description 303 "Number of bytes transmitted from queue "; 304 } 305 leaf output-exceed-pkts { 306 type uint64; 307 description 308 "Number of packets transmitted from queue "; 309 } 310 leaf output-exceed-bytes { 311 type uint64; 312 description 313 "Number of bytes transmitted from queue "; 314 } 315 leaf queue-current-size-bytes { 316 type uint64; 317 description 318 "Number of bytes currently buffered "; 319 } 320 leaf queue-average-size-bytes { 321 type uint64; 322 description 323 "Average queue size in number of bytes"; 324 } 325 leaf queue-peak-size-bytes { 326 type uint64; 327 description 328 "Peak buffer queue size in bytes "; 329 } 330 leaf tailed-drop-pkts { 331 type uint64; 332 description 333 "Total number of packets tail-dropped "; 334 } 335 leaf tailed-drop-bytes { 336 type uint64; 337 description 338 "Total number of bytes tail-dropped "; 339 } 340 } 341 } 342 grouping meter-stats { 343 description 344 "Metering Statistics"; 345 leaf conform-pkts { 346 type uint64; 347 description 348 "Number of conform packets"; 349 } 350 leaf conform-bytes { 351 type uint64; 352 description 353 "Bytes of conform packets"; 354 } 355 leaf conform-rate { 356 type uint64; 357 units "bits-per-second"; 358 description 359 "Traffic Rate measured as conformimg"; 360 } 361 leaf exceed-pkts { 362 type uint64; 363 description 364 "Number of packets counted as exceeding"; 365 } 366 leaf exceed-bytes { 367 type uint64; 368 description 369 "Bytes of packets counted as exceeding"; 370 } 371 leaf exceed-rate { 372 type uint64; 373 units "bits-per-second"; 374 description 375 "Traffic Rate measured as exceeding"; 376 } 377 leaf violate-pkts { 378 type uint64; 379 description 380 "Number of packets counted as violating"; 381 } 382 leaf violate-bytes { 383 type uint64; 384 description 385 "Bytes of packets counted as violating"; 386 } 387 leaf violate-rate { 388 type uint64; 389 units "bits-per-second"; 390 description 391 "Traffic Rate measured as violating"; 392 } 393 leaf meter-drop-pkts { 394 type uint64; 395 description 396 "Number of packets dropped by meter"; 397 } 398 leaf meter-drop-bytes { 399 type uint64; 400 description 401 "Bytes of packets dropped by meter"; 402 } 403 } 404 augment "/if:interfaces/if:interface" { 405 description 406 "Augments Qos Target Entry to Interface module"; 408 container qos-interface-statistics { 409 config false; 410 description 411 "Qos Interface statistics"; 413 list qos-stats-per-direction { 414 description 415 "Qos Interface statistics for ingress or egress direction"; 417 leaf direction { 418 type identityref { 419 base direction; 420 } 421 description 422 "Direction fo the traffic flow either inbound or 423 outbound"; 424 } 426 list qos-classifier-statistics { 427 description 428 "Classifier Statistics for each Classifier Entry in a 429 Policy applied in a particular direction"; 430 leaf policy-name { 431 type string; 432 description 433 "Policy entry name"; 434 } 435 leaf classifier-entry-name { 436 type string; 437 description 438 "Classifier Entry Name"; 439 } 440 uses classifier-entry-stats; 441 } 442 list qos-named-statistics { 443 config false; 444 description 445 "Matched Statistics for a statistics-name"; 446 leaf stats-name { 447 type string; 448 description 449 "Statistics name"; 450 } 451 uses qos-named-stats; 452 } 453 list metering-statistics { 454 config false; 455 description 456 "Statistics for each Meter associated with the Policy"; 457 leaf policy-name { 458 type string; 459 description 460 "Policy entry name"; 461 } 462 leaf meter-id { 463 type string; 464 description 465 "Meter Identifier"; 466 } 467 uses meter-stats; 468 } 469 list queueing-statistics { 470 config false; 471 description 472 "Statistics for each Queue associated with the Policy"; 473 leaf policy-name { 474 type string; 475 description 476 "Policy entry name"; 477 } 478 leaf queue-id { 479 type string; 480 description 481 "Queue Identifier"; 482 } 483 uses queuing-stats; 484 } 485 } 486 } 487 } 488 } 489 491 6. Security Considerations 493 7. Acknowledgement 495 8. Normative References 497 [I-D.asechoud-rtgwg-qos-model] 498 Choudhary, A., Jethanandani, M., Strahle, N., Aries, E., 499 and I. Chen, "YANG Model for QoS", draft-asechoud-rtgwg- 500 qos-model-07 (work in progress), July 2018. 502 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 503 Requirement Levels", BCP 14, RFC 2119, 504 DOI 10.17487/RFC2119, March 1997, 505 . 507 [RFC2697] Heinanen, J. and R. Guerin, "A Single Rate Three Color 508 Marker", RFC 2697, DOI 10.17487/RFC2697, September 1999, 509 . 511 [RFC2698] Heinanen, J. and R. Guerin, "A Two Rate Three Color 512 Marker", RFC 2698, DOI 10.17487/RFC2698, September 1999, 513 . 515 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 516 the Network Configuration Protocol (NETCONF)", RFC 6020, 517 DOI 10.17487/RFC6020, October 2010, 518 . 520 Authors' Addresses 522 Aseem Choudhary 523 Cisco Systems 524 170 W. Tasman Drive 525 San Jose, CA 95134 526 US 528 Email: asechoud@cisco.com 530 Ing-Wher Chen 531 Jabil 533 Email: ing-wher_chen@jabil.com