diff --git a/release/models/interfaces/openconfig-interfaces.yang b/release/models/interfaces/openconfig-interfaces.yang index 6d79517cd..ad53eabe7 100644 --- a/release/models/interfaces/openconfig-interfaces.yang +++ b/release/models/interfaces/openconfig-interfaces.yang @@ -13,6 +13,7 @@ module openconfig-interfaces { import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-transport-types { prefix oc-opt-types; } + import openconfig-platform-integrated-circuit { prefix oc-ic; } // meta organization "OpenConfig working group"; @@ -51,7 +52,13 @@ module openconfig-interfaces { Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; - oc-ext:openconfig-version "3.8.1"; + oc-ext:openconfig-version "3.9.0"; + + revision "2026-04-30" { + description + "Add port level packet trimming counters."; + reference "3.9.0"; + } revision "2026-01-06" { description @@ -1366,6 +1373,7 @@ module openconfig-interfaces { uses interface-common-counters-state; uses interface-counters-state; + uses oc-ic:trim-pkts-counters-top; } } diff --git a/release/models/platform/openconfig-platform-integrated-circuit.yang b/release/models/platform/openconfig-platform-integrated-circuit.yang index 67fec321b..2fdd1194d 100644 --- a/release/models/platform/openconfig-platform-integrated-circuit.yang +++ b/release/models/platform/openconfig-platform-integrated-circuit.yang @@ -7,6 +7,7 @@ module openconfig-platform-integrated-circuit { import openconfig-platform { prefix oc-platform; } import openconfig-extensions { prefix oc-ext; } + import openconfig-yang-types { prefix oc-yang; } organization "OpenConfig working group"; contact @@ -19,7 +20,13 @@ module openconfig-platform-integrated-circuit { These components are generically forwarding NPUs or ASICs within the system for which configuration or state is applicable."; - oc-ext:openconfig-version "0.3.1"; + oc-ext:openconfig-version "0.4.0"; + + revision "2026-04-30" { + description + "Add counters for packet trimming."; + reference "0.4.0"; + } revision "2022-04-20" { description @@ -171,6 +178,43 @@ module openconfig-platform-integrated-circuit { } } + grouping trim-pkts-counters-top { + description + "Structural grouping for packet trimming counters."; + + leaf out-trim-pkts { + type oc-yang:counter64; + description + "The number of packets that were trimmed and successfully + transmitted."; + } + + uses trim-pkts-common-counters-top; + } + + grouping trim-pkts-common-counters-top { + description + "Structural grouping for packet trimming counters. + Counters collected at port level, queue level and + switch level."; + + leaf trim-pkts { + type oc-yang:counter64; + description + "The total number of packets that were trimmed. + This counter includes both packets that were + transmitted after trimming and those that were + subsequently dropped."; + } + + leaf dropped-trim-pkts { + type oc-yang:counter64; + description + "The number of packets that were trimmed but dropped due to a + failed shared buffer admission on the trim queue."; + } + } + augment "/oc-platform:components/oc-platform:component/oc-platform:integrated-circuit" { description "Augment integrated circuit components with backplane-facing capacity and memory errors."; diff --git a/release/models/platform/openconfig-platform-pipeline-counters.yang b/release/models/platform/openconfig-platform-pipeline-counters.yang index 9a28d28c2..b30b5bd2b 100644 --- a/release/models/platform/openconfig-platform-pipeline-counters.yang +++ b/release/models/platform/openconfig-platform-pipeline-counters.yang @@ -9,6 +9,7 @@ module openconfig-platform-pipeline-counters { import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } import openconfig-platform { prefix oc-platform; } + import openconfig-platform-integrated-circuit { prefix oc-ic; } organization "OpenConfig working group"; @@ -65,10 +66,16 @@ module openconfig-platform-pipeline-counters { 5 blocks, is to have the abililty to receive all drop counters from all 5 blocks, for example, with one request."; - oc-ext:openconfig-version "0.5.1"; + oc-ext:openconfig-version "0.6.0"; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; + revision "2026-04-30" { + description + "Add switch level packet trimming counters."; + reference "0.6.0"; + } + revision "2023-10-08" { description "More detail description of pipe-line aggregated drop counters"; @@ -203,6 +210,20 @@ module openconfig-platform-pipeline-counters { uses pipeline-counters-packet-host-interface-block-state; } } + + container trim { + description + "Packet trimming counters for entire device."; + container state { + description + "State counters for packet trimming. Total + number of trimmed packets is not included + as it can be calculated by sum the sent + trimmed packets and dropped trimmed packets."; + + uses oc-ic:trim-pkts-common-counters-top; + } + } } container drop { diff --git a/release/models/qos/openconfig-qos-elements.yang b/release/models/qos/openconfig-qos-elements.yang index ba382b40c..03ac2ecc5 100644 --- a/release/models/qos/openconfig-qos-elements.yang +++ b/release/models/qos/openconfig-qos-elements.yang @@ -35,7 +35,13 @@ submodule openconfig-qos-elements { packets for transmission, including policer and shaper functions"; - oc-ext:openconfig-version "2.1.0"; + oc-ext:openconfig-version "2.2.0"; + + revision "2026-04-30" { + description + "Bump version to 2.2.0"; + reference "2.2.0"; + } revision "2026-03-25" { description diff --git a/release/models/qos/openconfig-qos-interfaces.yang b/release/models/qos/openconfig-qos-interfaces.yang index 667827708..96487828b 100644 --- a/release/models/qos/openconfig-qos-interfaces.yang +++ b/release/models/qos/openconfig-qos-interfaces.yang @@ -8,6 +8,7 @@ submodule openconfig-qos-interfaces { import openconfig-extensions { prefix oc-ext; } import openconfig-interfaces { prefix oc-if; } import openconfig-yang-types { prefix oc-yang; } + import openconfig-platform-integrated-circuit { prefix oc-ic; } include openconfig-qos-elements; include openconfig-qos-mem-mgmt; @@ -25,8 +26,13 @@ submodule openconfig-qos-interfaces { configuration and operational state associated with interfaces."; - oc-ext:openconfig-version "2.1.0"; + oc-ext:openconfig-version "2.2.0"; + revision "2026-04-30" { + description + "Add queue level packet trimming counters."; + reference "2.2.0"; + } revision "2026-03-25" { description "Add parameters for packet trimming configuration"; @@ -421,7 +427,7 @@ submodule openconfig-qos-interfaces { description "Number of packets dropped by the queue due to overrun, that is tail-drop or AMQ (RED, WRED, etc) induced drops as indicated by the attached - queue-management-profile"; + queue-management-profile."; } leaf dropped-octets { @@ -516,11 +522,61 @@ submodule openconfig-qos-interfaces { } } - grouping qos-interface-queue-root-top { + grouping qos-interface-input-queue-root-top { + description + "Top-level grouping for the queue associated with the + interface - used only for /qos/interfaces/interface/input + rather than in multiple contexts."; + + container queues { + description + "Surrounding container for a list of queues that are + instantiated on an interface."; + + list queue { + key "name"; + + description + "Top-level container for the queue associated with this + interface"; + + leaf name { + type leafref { + path "../config/name"; + } + description + "Reference to the name of the queue + instantiated on the interface."; + } + + container config { + description + "Configuration data for the queue associated with the + interface"; + + uses qos-interface-queue-config; + uses qos-interface-queue-root-config; + } + + container state { + config false; + description + "Operational state data for the queue associated with the + interface"; + + uses qos-interface-queue-config; + uses qos-interface-queue-root-config; + uses qos-interface-queue-state; + } + } + } + } + + grouping qos-interface-output-queue-root-top { description "Top-level grouping for the queue associated with the - interface - used only for /qos/interfaces/interface rather - than in multiple contexts."; + interface - used only for /qos/interfaces/interface/output + rather than in multiple contexts."; container queues { description @@ -561,6 +617,7 @@ submodule openconfig-qos-interfaces { uses qos-interface-queue-config; uses qos-interface-queue-root-config; uses qos-interface-queue-state; + uses oc-ic:trim-pkts-counters-top; } } } @@ -888,7 +945,7 @@ submodule openconfig-qos-interfaces { } uses qos-interface-classifier-top; - uses qos-interface-queue-root-top; + uses qos-interface-input-queue-root-top; uses qos-interface-scheduler-top; uses qos-interface-voqs-top; } @@ -999,7 +1056,7 @@ submodule openconfig-qos-interfaces { } uses qos-interface-classifier-top; - uses qos-interface-queue-root-top; + uses qos-interface-output-queue-root-top; uses qos-interface-scheduler-top; } } diff --git a/release/models/qos/openconfig-qos-mem-mgmt.yang b/release/models/qos/openconfig-qos-mem-mgmt.yang index d0e42158c..ad056d82c 100644 --- a/release/models/qos/openconfig-qos-mem-mgmt.yang +++ b/release/models/qos/openconfig-qos-mem-mgmt.yang @@ -29,7 +29,13 @@ submodule openconfig-qos-mem-mgmt { per-queue basis, and determine how packets are marked/dropped within the queue instantiation."; - oc-ext:openconfig-version "2.1.0"; + oc-ext:openconfig-version "2.2.0"; + + revision "2026-04-30" { + description + "Bump version to 2.1.0"; + reference "2.2.0"; + } revision "2026-03-25" { description diff --git a/release/models/qos/openconfig-qos.yang b/release/models/qos/openconfig-qos.yang index f27114a5a..c707b7201 100644 --- a/release/models/qos/openconfig-qos.yang +++ b/release/models/qos/openconfig-qos.yang @@ -27,7 +27,13 @@ module openconfig-qos { "This module defines configuration and operational state data related to network quality-of-service."; - oc-ext:openconfig-version "2.1.0"; + oc-ext:openconfig-version "2.2.0"; + + revision "2026-04-30" { + description + "Bump version to 2.2.0"; + reference "2.2.0"; + } revision "2026-03-25" { description