Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 14 additions & 8 deletions draft/draft-ietf-rtgwg-qos-model.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,22 +53,22 @@
<title abbrev="YANG Models for QoS">YANG Models for Quality of Service (QoS) in IP networks</title>

<author fullname="Aseem Choudhary" initials="A." surname="Choudhary">
<organization>Aviatrix Systems</organization>
<organization>Cisco Systems</organization>

<address>
<postal>
<street>2901 Tasman Drive #109</street>
<street>170 W Tasman Dr</street>

<city>Santa Clara</city>
<city>San Jose</city>

<region>CA</region>

<code>95054</code>
<code>95134</code>

<country>US</country>
</postal>

<email>achoudhary@aviatrix.com</email>
<email>asechoud@cisco.com</email>
</address>
</author>

Expand Down Expand Up @@ -206,6 +206,7 @@
<li>Classifier: an entity which selects packets based on
the content of packet headers according to defined
rules.</li>
<li>CoDel: Controlled Delay AQM algorithm</li>
<li>DS behavior aggregate: A collection of packets with
the same DS codepoint crossing a link in a particular
direction.</li>
Expand All @@ -220,6 +221,7 @@
in network nodes.</li>
<li>DSCP: Differentiated Services Code Point</li>
<li>ECN: Explicit Congestion Notification</li>
<li>FQ-CoDel: Flow Queue Controlled Delay AQM algorithm</li>
<li>Marking: the process of setting the DS codepoint in
a packet based on defined rules; pre-marking, re-marking.
</li>
Expand All @@ -234,9 +236,13 @@
number of header fields; typically some combination of
source address, destination address, DS field, protocol
ID, source port and destination port.</li>
<li>Per-Hop-Behavior (PHB): The externally observable
forwarding behavior applied at a DS-compliant node to a DS
behavior aggregate.</li>
<li>Per-Hop-Behavior (PHB): A description of the externally
observable forwarding treatment applied at a differentiated
services-compliant node to a behavior aggregate
<xref target="RFC2474"></xref>. The description of a PHB
SHOULD be sufficiently detailed to allow the construction
of predictable services, as documented in
<xref target="RFC2475"></xref>.</li>
<li>Policing: the process of
discarding packets (by a dropper) within a traffic stream
in accordance with the state of a corresponding meter
Expand Down
2 changes: 1 addition & 1 deletion src/yang/ietf-diffserv.yang
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ module ietf-diffserv {
WG List: <mailto:[email protected]>

Editor: Aseem Choudhary
<mailto:achoudhary@aviatrix.com>
<mailto:asechoud@cisco.com>
Editor: Mahesh Jethanandani
<mailto:[email protected]>";

Expand Down
72 changes: 68 additions & 4 deletions src/yang/ietf-qos-action.yang
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ module ietf-qos-action {
WG List: <mailto:[email protected]>

Editor: Aseem Choudhary
<mailto:achoudhary@aviatrix.com>
<mailto:asechoud@cisco.com>
Editor: Mahesh Jethanandani
<mailto:[email protected]>";

Expand Down Expand Up @@ -322,7 +322,10 @@ module ietf-qos-action {
grouping meter-reference {
container meter {
leaf name {
type string ;
type leafref {
path "/qos-action:meters/" +
"qos-action:meter/qos-action:name";
}
mandatory true;
description
"This leaf defines name of the meter referenced.";
Expand Down Expand Up @@ -540,6 +543,27 @@ module ietf-qos-action {
"Random Early Detect (RED) configuration parameters.";
}

grouping codel-config-parameters {
leaf target {
type uint64;
units "microseconds";
default 5000;
description
"Target time in microseconds spent by each packet in queue.";
}

leaf interval {
type uint64;
units "microseconds";
default 100000;
description
"The time in microsecond for minimum interval for congestion
to persist before algorithm kicks in. ";
}
description
"CoDel configuration parameters.";
}

grouping queue {
container queue {
uses priority;
Expand Down Expand Up @@ -623,12 +647,49 @@ module ietf-qos-action {
type boolean;
default "false";
description
"ECN is enabled on the queue.";
"When configure as true, ECN is enabled on
the queue.";
}
description
"Weighted Random Early Detect (WRED) configuration.";
}
}

case codel {
container codel {
uses codel-config-parameters;
leaf ecn-enabled {
type boolean;
default "false";
description
"When configure as true, ECN is enabled on
the queue.";
}
description
"CoDel configuration.";
}
}

case fq-codel {
container fq-codel {
uses codel-config-parameters;
leaf flows {
type uint64;
default 1024;
description
"The maximum number of flow queues.";
}
leaf ecn-enabled {
type boolean;
default "false";
description
"ECN is enabled on the queue.";
}
description
"FQ-CoDel configuration.";
}
}

description
"Choice of Drop Algorithm.";
}
Expand Down Expand Up @@ -663,7 +724,10 @@ module ietf-qos-action {
grouping queue-reference {
container queue-reference {
leaf queue-name {
type string;
type leafref {
path "/qos-action:queues/" +
"qos-action:queue/qos-action:name";
}
mandatory true;
description
"This leaf defines name of the queue template
Expand Down
117 changes: 80 additions & 37 deletions src/yang/ietf-qos-oper.yang
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ module ietf-qos-oper {
"WG Web: <http://tools.ietf.org/wg/rtgwg/>
WG List: <mailto:[email protected]>
Editor: Aseem Choudhary
<mailto:achoudhary@aviatrix.com>
<mailto:asechoud@cisco.com>
Editor: Mahesh Jethanandani
<mailto:[email protected]>";
description
Expand Down Expand Up @@ -135,68 +135,111 @@ module ietf-qos-oper {
"Total number of bytes tail-dropped.";
}

leaf red-drop-pkts {
type yang:zero-based-counter64;
description
"Total number of packets dropped because of RED.";
}

leaf red-drop-bytes {
type yang:zero-based-counter64;
description
"Total number of bytes dropped because of RED.";
}
container red-statistics {
leaf drop-pkts {
type yang:zero-based-counter64;
description
"Total number of packets dropped because of RED.";
}

leaf red-ecn-marked-pkts {
type yang:zero-based-counter64;
description
"Total number of packets that were marked with ECN
because of RED.";
}
leaf drop-bytes {
type yang:zero-based-counter64;
description
"Total number of bytes dropped because of RED.";
}

leaf red-ecn-marked-bytes {
type yang:zero-based-counter64;
description
"Total number of bytes that were marked with ECN because of
RED.";
}
leaf ecn-marked-pkts {
type yang:zero-based-counter64;
description
"Total number of packets that were marked with ECN
because of RED.";
}

list wred-stats {
config false;
description
"QoS WRED statistics.";
leaf ecn-marked-bytes {
type yang:zero-based-counter64;
description
"Total number of bytes that were marked with ECN because of
RED.";
}

leaf profile {
type uint8;
list wred-stats {
config false;
description
"Profile identifier for each color of traffic.";
"QoS WRED statistics.";

leaf profile {
type uint8;
description
"Profile identifier for each color of traffic.";
}

leaf drop-pkts {
type yang:zero-based-counter64;
description
"Total number of packets dropped because of WRED.";
}

leaf drop-bytes {
type yang:zero-based-counter64;
description
"Total number of bytes dropped because of WRED.";
}

leaf ecn-marked-pkts {
type yang:zero-based-counter64;
description
"Total number of packets that were marked with ECN
because of WRED.";
}

leaf ecn-marked-bytes {
type yang:zero-based-counter64;
description
"Total number of bytes that were marked with ECN because
of WRED.";
}
}
description
"Container of all RED statistics.";
}

container codel-statistics {
leaf drop-pkts {
type yang:zero-based-counter64;
description
"Total number of packets dropped because of WRED.";
"Total number of packets dropped because of CoDel
or FQ-CoDel.";
}

leaf drop-bytes {
type yang:zero-based-counter64;
description
"Total number of bytes dropped because of WRED.";
"Total number of bytes dropped because of CoDel
or FQ-CoDel.";
}

leaf ecn-marked-pkts {
type yang:zero-based-counter64;
description
"Total number of packets that were marked with ECN because
of WRED.";
"Total number of packets that were marked with ECN
because of CoDel or FQ-CoDel.";
}

leaf ecn-marked-bytes {
type yang:zero-based-counter64;
description
"Total number of bytes that were marked with ECN because of
WRED.";
"Total number of bytes that were marked with ECN because
of CoDel or FQ-CoDel.";
}

leaf new-flow-count {
type yang:zero-based-counter64;
description
"Total number of flows that FQ-CoDel has identified and is
managing or has managed.";
}
description
"Container of all CoDel or FQ-CoDel statistics.";
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/yang/ietf-queue-policy.yang
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ module ietf-queue-policy {
WG List: <mailto:[email protected]>

Editor: Aseem Choudhary
<mailto:achoudhary@aviatrix.com>
<mailto:asechoud@cisco.com>
Editor: Mahesh Jethanandani
<mailto:[email protected]>";

Expand Down
2 changes: 1 addition & 1 deletion src/yang/ietf-scheduler-policy.yang
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ module ietf-scheduler-policy {
WG List: <mailto:[email protected]>

Editor: Aseem Choudhary
<mailto:achoudhary@aviatrix.com>
<mailto:asechoud@cisco.com>
Editor: Mahesh Jethanandani
<mailto:[email protected]>";

Expand Down
15 changes: 12 additions & 3 deletions src/yang/ietf-traffic-policy.yang
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ module ietf-traffic-policy {
WG List: <mailto:[email protected]>

Editor: Aseem Choudhary
<mailto:achoudhary@aviatrix.com>
<mailto:asechoud@cisco.com>
Editor: Mahesh Jethanandani
<mailto:[email protected]>";

Expand Down Expand Up @@ -167,7 +167,13 @@ module ietf-traffic-policy {
"Classifier configuration in a policy.";

leaf name {
type string;
type union {
type string;
type leafref {
path "/traffic-policy:classifiers/" +
"traffic-policy:classifier/traffic-policy:name";
}
}
description
"A unique name for classifier entry.";
}
Expand Down Expand Up @@ -227,7 +233,10 @@ module ietf-traffic-policy {
}

leaf name {
type string;
type leafref {
path "/traffic-policy:policies/" +
"traffic-policy:policy/traffic-policy:name";
}
mandatory true;
description
"A unique name for the Policy.";
Expand Down