From d6bde0322ea68dd36d0126e7f7201802ee9900fb Mon Sep 17 00:00:00 2001 From: asechoud Date: Mon, 16 Jun 2025 21:57:32 -0700 Subject: [PATCH 1/6] leafref changes --- src/yang/ietf-qos-action.yang | 10 ++++++++-- src/yang/ietf-traffic-policy.yang | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/yang/ietf-qos-action.yang b/src/yang/ietf-qos-action.yang index 4e7f6c4..b73f26b 100644 --- a/src/yang/ietf-qos-action.yang +++ b/src/yang/ietf-qos-action.yang @@ -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."; @@ -663,7 +666,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-traffic-policy.yang b/src/yang/ietf-traffic-policy.yang index 6af8401..884b4eb 100644 --- a/src/yang/ietf-traffic-policy.yang +++ b/src/yang/ietf-traffic-policy.yang @@ -227,7 +227,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."; From 33c1830603fdfdbe0b8e73af906f38cdf1ba0c2f Mon Sep 17 00:00:00 2001 From: asechoud Date: Mon, 30 Jun 2025 00:06:07 -0700 Subject: [PATCH 2/6] review comment incorporated. --- src/yang/ietf-traffic-policy.yang | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/yang/ietf-traffic-policy.yang b/src/yang/ietf-traffic-policy.yang index 884b4eb..6a1560a 100644 --- a/src/yang/ietf-traffic-policy.yang +++ b/src/yang/ietf-traffic-policy.yang @@ -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."; } From 19ed9c74c3effe1521b2f5dee7516bb55724e514 Mon Sep 17 00:00:00 2001 From: Aseem Choudhary Date: Sun, 6 Jul 2025 09:19:58 -0700 Subject: [PATCH 3/6] Codel fqcodel (#1) * codel and fq-codel config and stats changes. * review comments incorporated. --- draft/draft-ietf-rtgwg-qos-model.xml | 2 + src/yang/ietf-qos-action.yang | 60 +++++++++++++- src/yang/ietf-qos-oper.yang | 115 ++++++++++++++++++--------- 3 files changed, 140 insertions(+), 37 deletions(-) diff --git a/draft/draft-ietf-rtgwg-qos-model.xml b/draft/draft-ietf-rtgwg-qos-model.xml index 9bb3950..37e1a41 100644 --- a/draft/draft-ietf-rtgwg-qos-model.xml +++ b/draft/draft-ietf-rtgwg-qos-model.xml @@ -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.
  • diff --git a/src/yang/ietf-qos-action.yang b/src/yang/ietf-qos-action.yang index 61d29e0..eaec3c0 100644 --- a/src/yang/ietf-qos-action.yang +++ b/src/yang/ietf-qos-action.yang @@ -543,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; @@ -626,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."; } diff --git a/src/yang/ietf-qos-oper.yang b/src/yang/ietf-qos-oper.yang index 8ce9023..26a3932 100644 --- a/src/yang/ietf-qos-oper.yang +++ b/src/yang/ietf-qos-oper.yang @@ -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."; } } From 810c845eed7e257e207340d191212bbd4a7f405b Mon Sep 17 00:00:00 2001 From: Aseem Choudhary Date: Sun, 6 Jul 2025 09:22:18 -0700 Subject: [PATCH 4/6] PHB definition changes (#2) --- draft/draft-ietf-rtgwg-qos-model.xml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/draft/draft-ietf-rtgwg-qos-model.xml b/draft/draft-ietf-rtgwg-qos-model.xml index 37e1a41..834fc0b 100644 --- a/draft/draft-ietf-rtgwg-qos-model.xml +++ b/draft/draft-ietf-rtgwg-qos-model.xml @@ -236,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 From ba6f3e642b1ac90fadef0111b5eabc772a287d18 Mon Sep 17 00:00:00 2001 From: asechoud Date: Sun, 6 Jul 2025 09:42:45 -0700 Subject: [PATCH 5/6] my address change. --- draft/draft-ietf-rtgwg-qos-model.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/draft/draft-ietf-rtgwg-qos-model.xml b/draft/draft-ietf-rtgwg-qos-model.xml index 834fc0b..7e1c20f 100644 --- a/draft/draft-ietf-rtgwg-qos-model.xml +++ b/draft/draft-ietf-rtgwg-qos-model.xml @@ -57,18 +57,18 @@
    - 2901 Tasman Drive #109 + 170 W Tasman Dr - Santa Clara + San Jose CA - 95054 + 95134 US - achoudhary@aviatrix.com + asechoud@cisco.com
    From fd149eed9384fe9fb9da497cc44dfeedf01aaad3 Mon Sep 17 00:00:00 2001 From: asechoud Date: Sun, 6 Jul 2025 10:04:25 -0700 Subject: [PATCH 6/6] author address change --- draft/draft-ietf-rtgwg-qos-model.xml | 2 +- src/yang/ietf-diffserv.yang | 2 +- src/yang/ietf-qos-action.yang | 2 +- src/yang/ietf-qos-oper.yang | 2 +- src/yang/ietf-queue-policy.yang | 2 +- src/yang/ietf-scheduler-policy.yang | 2 +- src/yang/ietf-traffic-policy.yang | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/draft/draft-ietf-rtgwg-qos-model.xml b/draft/draft-ietf-rtgwg-qos-model.xml index 7e1c20f..f81e0f0 100644 --- a/draft/draft-ietf-rtgwg-qos-model.xml +++ b/draft/draft-ietf-rtgwg-qos-model.xml @@ -53,7 +53,7 @@ YANG Models for Quality of Service (QoS) in IP networks - Aviatrix Systems + Cisco Systems
    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 eaec3c0..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 "; diff --git a/src/yang/ietf-qos-oper.yang b/src/yang/ietf-qos-oper.yang index 26a3932..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 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 a59a355..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 ";