< draft-asechoud-rtgwg-qos-model-09.txt   draft-asechoud-rtgwg-qos-model-10.txt >
Network Working Group A. Choudhary Network Working Group A. Choudhary
Internet-Draft M. Jethanandani Internet-Draft M. Jethanandani
Intended status: Standards Track Cisco Systems Intended status: Standards Track Cisco Systems
Expires: November 6, 2019 N. Strahle Expires: January 6, 2020 N. Strahle
E. Aries E. Aries
Juniper Networks Juniper Networks
I. Chen I. Chen
Jabil Jabil
May 05, 2019 July 05, 2019
YANG Model for QoS YANG Model for QoS
draft-asechoud-rtgwg-qos-model-09 draft-asechoud-rtgwg-qos-model-10
Abstract Abstract
This document describes a YANG model for Quality of Service (QoS) This document describes a YANG model for Quality of Service (QoS)
configuration and operational parameters. configuration and operational parameters.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 36 skipping to change at page 1, line 36
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 6, 2019. This Internet-Draft will expire on January 6, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 24 skipping to change at page 2, line 24
5. Modules Tree Structure . . . . . . . . . . . . . . . . . . . 4 5. Modules Tree Structure . . . . . . . . . . . . . . . . . . . 4
6. Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6. Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.1. IETF-QOS-CLASSIFIER . . . . . . . . . . . . . . . . . . . 14 6.1. IETF-QOS-CLASSIFIER . . . . . . . . . . . . . . . . . . . 14
6.2. IETF-QOS-POLICY . . . . . . . . . . . . . . . . . . . . . 17 6.2. IETF-QOS-POLICY . . . . . . . . . . . . . . . . . . . . . 17
6.3. IETF-QOS-ACTION . . . . . . . . . . . . . . . . . . . . . 20 6.3. IETF-QOS-ACTION . . . . . . . . . . . . . . . . . . . . . 20
6.4. IETF-QOS-TARGET . . . . . . . . . . . . . . . . . . . . . 38 6.4. IETF-QOS-TARGET . . . . . . . . . . . . . . . . . . . . . 38
6.5. IETF-DIFFSERV . . . . . . . . . . . . . . . . . . . . . . 40 6.5. IETF-DIFFSERV . . . . . . . . . . . . . . . . . . . . . . 40
6.6. IETF-QUEUE-POLICY . . . . . . . . . . . . . . . . . . . . 50 6.6. IETF-QUEUE-POLICY . . . . . . . . . . . . . . . . . . . . 50
6.7. IETF-SCHEDULER-POLICY . . . . . . . . . . . . . . . . . . 53 6.7. IETF-SCHEDULER-POLICY . . . . . . . . . . . . . . . . . . 53
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 56 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 56
8. Security Considerations . . . . . . . . . . . . . . . . . . . 56 8. Security Considerations . . . . . . . . . . . . . . . . . . . 57
9. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 56 9. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 57
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 56 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 57
10.1. Normative References . . . . . . . . . . . . . . . . . . 56 10.1. Normative References . . . . . . . . . . . . . . . . . . 57
10.2. Informative References . . . . . . . . . . . . . . . . . 57 10.2. Informative References . . . . . . . . . . . . . . . . . 58
Appendix A. Company A, Company B and Company C examples . . . . 57 Appendix A. Company A, Company B and Company C examples . . . . 58
A.1. Example of Company A Diffserv Model . . . . . . . . . . . 58 A.1. Example of Company A Diffserv Model . . . . . . . . . . . 58
A.2. Example of Company B Diffserv Model . . . . . . . . . . . 67 A.2. Example of Company B Diffserv Model . . . . . . . . . . . 67
A.3. Example of Company C Diffserv Model . . . . . . . . . . . 81 A.3. Example of Company C Diffserv Model . . . . . . . . . . . 81
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 88 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 88
1. Introduction 1. Introduction
This document defines a base YANG [RFC6020] data module for Quality This document defines a base YANG [RFC6020] [RFC7950] data module for
of Service (QoS) configuration parameters. Differentiated Services Quality of Service (QoS) configuration parameters. Differentiated
(DiffServ) module is an augmentation of the base QoS model. Remote Services (DiffServ) module is an augmentation of the base QoS model.
Procedure Calls (RPC) or notification definition is currently not Remote Procedure Calls (RPC) or notification definition is not part
part of this document and will be added later if necessary. QoS base of this document. QoS base modules define a basic building blocks to
modules define a basic building blocks to define a classifier, define a classifier, policy, action and target. The base modules
policy, action and target. The base modules have been augmented to have been augmented to include packet match fields and action
include packet match fields and action parameters to define the parameters to define the DiffServ module. Queues and schedulers are
DiffServ module. Queues and schedulers are stitched as part of stitched as part of diffserv policy itself or separate modules are
diffserv policy itself or separate modules are defined for creating defined for creating Queue policy and Scheduling policy. The
Queue policy and Scheduling policy. The DiffServ model is based on DiffServ model is based on DiffServ architecture, and various
DiffServ architecture, and various references have been made to references have been made to available standard architecture
available standard architecture documents. documents.
DiffServ is a preferred approach for network service providers to DiffServ is a preferred approach for network service providers to
offer services to different customers based on their network Quality- offer services to different customers based on their network Quality-
of-Service (QoS) objectives. The traffic streams are differentiated of-Service (QoS) objectives. The traffic streams are differentiated
based on DiffServ Code Points (DSCP) carried in the IP header of each based on DiffServ Code Points (DSCP) carried in the IP header of each
packet. The DSCP markings are applied by upstream node or by the packet. The DSCP markings are applied by upstream node or by the
edge router on entry to the DiffServ network. edge router on entry to the DiffServ network.
Editorial Note: (To be removed by RFC Editor) Editorial Note: (To be removed by RFC Editor)
skipping to change at page 3, line 33 skipping to change at page 3, line 33
Datastore Architecture (NMDA) [RFC8342 [RFC8342]]. Datastore Architecture (NMDA) [RFC8342 [RFC8342]].
1.1. Tree Diagrams 1.1. Tree Diagrams
Tree diagrams used in this document follow the notation defined in Tree diagrams used in this document follow the notation defined in
[RFC8340 [RFC8340]] [RFC8340 [RFC8340]]
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
document are to be interpreted as described in [RFC2119]. "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
3. QoS Model Design 3. QoS Model Design
A classifier consists of packets which may be grouped when a logical A classifier consists of packets which may be grouped when a logical
set of rules are applied on different packet header fields. The set of rules are applied on different packet header fields. The
grouping may be based on different values or range of values of same grouping may be based on different values or range of values of same
packet header field, presence or absence of some values or range of packet header field, presence or absence of some values or range of
values of a packet field or a combination thereof. The QoS values of a packet field or a combination thereof. The QoS
classifier is defined in the ietf-qos-classifier module. classifier is defined in the ietf-qos-classifier module.
skipping to change at page 7, line 33 skipping to change at page 7, line 36
identityref identityref
| +--rw (exceed-3color-meter-action-val)? | +--rw (exceed-3color-meter-action-val)?
+--rw violate-action +--rw violate-action
+--rw violate-3color-meter-action-params* +--rw violate-3color-meter-action-params*
[violate-3color-meter-action-type] [violate-3color-meter-action-type]
+--rw violate-3color-meter-action-type +--rw violate-3color-meter-action-type
identityref identityref
+--rw (violate-3color-meter-action-val)? +--rw (violate-3color-meter-action-val)?
ietf-qos-target module contains reference of qos-policy and augments ietf-qos-target module contains reference of qos-policy and augments
ietf-interfaces [RFC7223] module. A single policy of a particular ietf-interfaces [RFC8343] module. A single policy of a particular
policy-type can be applied on an interface in each direction of policy-type can be applied on an interface in each direction of
traffic. Policy-type is of type identity and is populated in a traffic. Policy-type is of type identity and is populated in a
vendor specific manner. This way it provides greater flexibility for vendor specific manner. This way it provides greater flexibility for
each vendor to define different policy types each with its own each vendor to define different policy types each with its own
capabilities and restrictions. capabilities and restrictions.
Classifier, metering and queuing counters are associated with a Classifier, metering and queuing counters are associated with a
target. target.
module: ietf-qos-target module: ietf-qos-target
skipping to change at page 24, line 44 skipping to change at page 24, line 44
} }
identity one-rate-two-color-meter-type { identity one-rate-two-color-meter-type {
base meter-type; base meter-type;
description description
"one rate two color meter type"; "one rate two color meter type";
} }
identity one-rate-tri-color-meter-type { identity one-rate-tri-color-meter-type {
base meter-type; base meter-type;
description description
"one rate three color meter type"; "one rate three color meter type";
reference
"RFC2697: A Single Rate Three Color Marker";
} }
identity two-rate-tri-color-meter-type { identity two-rate-tri-color-meter-type {
base meter-type; base meter-type;
description description
"two rate three color meter action type"; "two rate three color meter action type";
reference
"RFC2698: A Two Rate Three Color Marker";
} }
identity drop-type { identity drop-type {
description description
"drop algorithm"; "drop algorithm";
} }
identity tail-drop { identity tail-drop {
base drop-type; base drop-type;
description description
"tail drop algorithm"; "tail drop algorithm";
skipping to change at page 30, line 38 skipping to change at page 30, line 42
} }
} }
description description
"single rate two color marker meter attributes"; "single rate two color marker meter attributes";
} }
grouping one-rate-tri-color-meter { grouping one-rate-tri-color-meter {
container one-rate-tri-color-meter { container one-rate-tri-color-meter {
description description
"single rate three color meter"; "single rate three color meter";
reference
"RFC2697: A Single Rate Three Color Marker";
leaf committed-rate-value { leaf committed-rate-value {
type uint64; type uint64;
description description
"meter rate"; "meter rate";
} }
leaf committed-rate-unit { leaf committed-rate-unit {
type identityref { type identityref {
base rate-unit-type; base rate-unit-type;
} }
description description
"committed rate unit"; "committed rate unit";
} }
leaf committed-burst-value { leaf committed-burst-value {
type uint64; type uint64;
description description
"committed burst size"; "committed burst size";
} }
leaf committed-burst-unit { leaf committed-burst-unit {
skipping to change at page 31, line 45 skipping to change at page 32, line 4
} }
container violate-action { container violate-action {
uses violate-3color-meter-action-params; uses violate-3color-meter-action-params;
description description
"violate, or red action"; "violate, or red action";
} }
} }
description description
"one-rate-tri-color-meter attributes"; "one-rate-tri-color-meter attributes";
} }
grouping two-rate-tri-color-meter { grouping two-rate-tri-color-meter {
container two-rate-tri-color-meter { container two-rate-tri-color-meter {
description description
"two rate three color meter"; "two rate three color meter";
reference
"RFC2698: A Two Rate Three Color Marker";
leaf committed-rate-value { leaf committed-rate-value {
type uint64; type uint64;
units "bits-per-second"; units "bits-per-second";
description description
"committed rate"; "committed rate";
} }
leaf committed-rate-unit { leaf committed-rate-unit {
type identityref { type identityref {
base rate-unit-type; base rate-unit-type;
} }
skipping to change at page 35, line 45 skipping to change at page 36, line 4
grouping priority { grouping priority {
container priority-cfg { container priority-cfg {
leaf priority-level { leaf priority-level {
type uint8; type uint8;
description description
"priority level"; "priority level";
} }
description description
"priority attributes"; "priority attributes";
} }
description description
"priority attributes grouping"; "priority attributes grouping";
} }
grouping min-rate { grouping min-rate {
container min-rate-cfg { container min-rate-cfg {
uses rate-value-unit; uses rate-value-unit;
description description
"min guaranteed bandwidth"; "min guaranteed bandwidth";
reference
"RFC3289, section 3.5.3";
} }
description description
"minimum rate grouping"; "minimum rate grouping";
} }
grouping dscp-marking { grouping dscp-marking {
container dscp-cfg { container dscp-cfg {
leaf dscp { leaf dscp {
type inet:dscp; type inet:dscp;
description description
"dscp marking"; "dscp marking";
skipping to change at page 37, line 7 skipping to change at page 37, line 18
} }
description description
"Grouping of Hierarchical Policy configuration"; "Grouping of Hierarchical Policy configuration";
} }
grouping max-rate { grouping max-rate {
container max-rate-cfg { container max-rate-cfg {
uses rate-value-unit; uses rate-value-unit;
uses burst; uses burst;
description description
"maximum rate attributes container"; "maximum rate attributes container";
reference
"RFC3289, section 3.5.4";
} }
description description
"maximum rate attributes"; "maximum rate attributes";
} }
grouping queue { grouping queue {
container queue-cfg { container queue-cfg {
uses priority; uses priority;
uses min-rate; uses min-rate;
uses max-rate; uses max-rate;
container algorithmic-drop-cfg { container algorithmic-drop-cfg {
skipping to change at page 38, line 19 skipping to change at page 38, line 30
6.4. IETF-QOS-TARGET 6.4. IETF-QOS-TARGET
<CODE BEGINS>file "ietf-qos-target@2019-03-13.yang" <CODE BEGINS>file "ietf-qos-target@2019-03-13.yang"
module ietf-qos-target { module ietf-qos-target {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-qos-target"; namespace "urn:ietf:params:xml:ns:yang:ietf-qos-target";
prefix target; prefix target;
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
reference "RFC 8343: A YANG Data Model for Interface Management"; reference "RFC8343: A YANG Data Model for Interface Management";
} }
import ietf-qos-policy { import ietf-qos-policy {
prefix policy; prefix policy;
reference "RFC XXXX: YANG Model for QoS"; reference "RFC XXXX: YANG Model for QoS";
} }
organization "IETF RTG (Routing Area) Working Group"; organization "IETF RTG (Routing Area) Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/rtgwg/> "WG Web: <http://tools.ietf.org/wg/rtgwg/>
WG List: <mailto:rtgwg@ietf.org> WG List: <mailto:rtgwg@ietf.org>
skipping to change at page 57, line 27 skipping to change at page 57, line 43
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010, DOI 10.17487/RFC6020, October 2010,
<https://www.rfc-editor.org/info/rfc6020>. <https://www.rfc-editor.org/info/rfc6020>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013, RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/info/rfc6991>. <https://www.rfc-editor.org/info/rfc6991>.
[RFC7223] Bjorklund, M., "A YANG Data Model for Interface [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7223>. <https://www.rfc-editor.org/info/rfc7950>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
<https://www.rfc-editor.org/info/rfc8340>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>. <https://www.rfc-editor.org/info/rfc8342>.
[RFC8343] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
<https://www.rfc-editor.org/info/rfc8343>.
10.2. Informative References 10.2. Informative References
[RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z.,
and W. Weiss, "An Architecture for Differentiated and W. Weiss, "An Architecture for Differentiated
Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, Services", RFC 2475, DOI 10.17487/RFC2475, December 1998,
<https://www.rfc-editor.org/info/rfc2475>. <https://www.rfc-editor.org/info/rfc2475>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>.
Appendix A. Company A, Company B and Company C examples Appendix A. Company A, Company B and Company C examples
Company A, Company B and Company C Diffserv modules augments all the Company A, Company B and Company C Diffserv modules augments all the
filter types of the QoS classifier module as well as the QoS policy filter types of the QoS classifier module as well as the QoS policy
module that allow it to define marking, metering, min-rate, max-rate module that allow it to define marking, metering, min-rate, max-rate
actions. Queuing and metering counters are realized by augmenting of actions. Queuing and metering counters are realized by augmenting of
the QoS target module. the QoS target module.
A.1. Example of Company A Diffserv Model A.1. Example of Company A Diffserv Model
 End of changes. 22 change blocks. 
34 lines changed or deleted 57 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/