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