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.";