diff --git a/draft/draft-ietf-rtgwg-qos-model.xml b/draft/draft-ietf-rtgwg-qos-model.xml
index 9bb3950..f81e0f0 100644
--- a/draft/draft-ietf-rtgwg-qos-model.xml
+++ b/draft/draft-ietf-rtgwg-qos-model.xml
@@ -53,22 +53,22 @@
YANG Models for Quality of Service (QoS) in IP networks
- Aviatrix Systems
+ Cisco Systems
- 2901 Tasman Drive #109
+ 170 W Tasman Dr
- Santa Clara
+ San Jose
CA
- 95054
+ 95134
US
- achoudhary@aviatrix.com
+ asechoud@cisco.com
@@ -206,6 +206,7 @@
Classifier: an entity which selects packets based on
the content of packet headers according to defined
rules.
+ CoDel: Controlled Delay AQM algorithm
DS behavior aggregate: A collection of packets with
the same DS codepoint crossing a link in a particular
direction.
@@ -220,6 +221,7 @@
in network nodes.
DSCP: Differentiated Services Code Point
ECN: Explicit Congestion Notification
+ FQ-CoDel: Flow Queue Controlled Delay AQM algorithm
Marking: the process of setting the DS codepoint in
a packet based on defined rules; pre-marking, re-marking.
@@ -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.
- Per-Hop-Behavior (PHB): The externally observable
- forwarding behavior applied at a DS-compliant node to a DS
- behavior aggregate.
+ Per-Hop-Behavior (PHB): A description of the externally
+ observable forwarding treatment applied at a differentiated
+ services-compliant node to a behavior aggregate
+ . The description of a PHB
+ SHOULD be sufficiently detailed to allow the construction
+ of predictable services, as documented in
+ .
Policing: the process of
discarding packets (by a dropper) within a traffic stream
in accordance with the state of a corresponding meter
diff --git a/src/yang/ietf-diffserv.yang b/src/yang/ietf-diffserv.yang
index 10fa661..3e5714e 100644
--- a/src/yang/ietf-diffserv.yang
+++ b/src/yang/ietf-diffserv.yang
@@ -26,7 +26,7 @@ module ietf-diffserv {
WG List:
Editor: Aseem Choudhary
-
+
Editor: Mahesh Jethanandani
";
diff --git a/src/yang/ietf-qos-action.yang b/src/yang/ietf-qos-action.yang
index d1af7a1..1b8155b 100644
--- a/src/yang/ietf-qos-action.yang
+++ b/src/yang/ietf-qos-action.yang
@@ -22,7 +22,7 @@ module ietf-qos-action {
WG List:
Editor: Aseem Choudhary
-
+
Editor: Mahesh Jethanandani
";
@@ -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.";
@@ -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;
@@ -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.";
}
@@ -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
diff --git a/src/yang/ietf-qos-oper.yang b/src/yang/ietf-qos-oper.yang
index 8ce9023..7fe9a13 100644
--- a/src/yang/ietf-qos-oper.yang
+++ b/src/yang/ietf-qos-oper.yang
@@ -26,7 +26,7 @@ module ietf-qos-oper {
"WG Web:
WG List:
Editor: Aseem Choudhary
-
+
Editor: Mahesh Jethanandani
";
description
@@ -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.";
}
}
diff --git a/src/yang/ietf-queue-policy.yang b/src/yang/ietf-queue-policy.yang
index 1436d67..2602a01 100644
--- a/src/yang/ietf-queue-policy.yang
+++ b/src/yang/ietf-queue-policy.yang
@@ -26,7 +26,7 @@ module ietf-queue-policy {
WG List:
Editor: Aseem Choudhary
-
+
Editor: Mahesh Jethanandani
";
diff --git a/src/yang/ietf-scheduler-policy.yang b/src/yang/ietf-scheduler-policy.yang
index c036e3c..9bacf42 100644
--- a/src/yang/ietf-scheduler-policy.yang
+++ b/src/yang/ietf-scheduler-policy.yang
@@ -26,7 +26,7 @@ module ietf-scheduler-policy {
WG List:
Editor: Aseem Choudhary
-
+
Editor: Mahesh Jethanandani
";
diff --git a/src/yang/ietf-traffic-policy.yang b/src/yang/ietf-traffic-policy.yang
index b3933d8..14a5b1d 100644
--- a/src/yang/ietf-traffic-policy.yang
+++ b/src/yang/ietf-traffic-policy.yang
@@ -20,7 +20,7 @@ module ietf-traffic-policy {
WG List:
Editor: Aseem Choudhary
-
+
Editor: Mahesh Jethanandani
";
@@ -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.";
}
@@ -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.";