Skip to content

Commit 2464c3d

Browse files
committed
Add packet trimming counters
1 parent f87db50 commit 2464c3d

4 files changed

Lines changed: 135 additions & 9 deletions

File tree

release/models/interfaces/openconfig-interfaces.yang

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module openconfig-interfaces {
1313
import openconfig-types { prefix oc-types; }
1414
import openconfig-extensions { prefix oc-ext; }
1515
import openconfig-transport-types { prefix oc-opt-types; }
16+
import openconfig-platform-integrated-circuit { prefix oc-ic; }
1617

1718
// meta
1819
organization "OpenConfig working group";
@@ -51,7 +52,13 @@ module openconfig-interfaces {
5152
Section 4.c of the IETF Trust's Legal Provisions Relating
5253
to IETF Documents (http://trustee.ietf.org/license-info).";
5354

54-
oc-ext:openconfig-version "3.8.1";
55+
oc-ext:openconfig-version "3.9.0";
56+
57+
revision "2026-03-25" {
58+
description
59+
"Add port level pakcet trimming counters.";
60+
reference "3.9.0";
61+
}
5562

5663
revision "2026-01-06" {
5764
description
@@ -1366,6 +1373,7 @@ module openconfig-interfaces {
13661373

13671374
uses interface-common-counters-state;
13681375
uses interface-counters-state;
1376+
uses oc-ic:trim-pkts-counters-top;
13691377
}
13701378
}
13711379

release/models/platform/openconfig-platform-integrated-circuit.yang

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module openconfig-platform-integrated-circuit {
77

88
import openconfig-platform { prefix oc-platform; }
99
import openconfig-extensions { prefix oc-ext; }
10+
import openconfig-yang-types { prefix oc-yang; }
1011

1112
organization "OpenConfig working group";
1213
contact
@@ -19,7 +20,13 @@ module openconfig-platform-integrated-circuit {
1920
These components are generically forwarding NPUs or ASICs within
2021
the system for which configuration or state is applicable.";
2122

22-
oc-ext:openconfig-version "0.3.1";
23+
oc-ext:openconfig-version "0.4.0";
24+
25+
revision "2026-03-25" {
26+
description
27+
"Add counters for packet trimming.";
28+
reference "0.4.0";
29+
}
2330

2431
revision "2022-04-20" {
2532
description
@@ -171,6 +178,40 @@ module openconfig-platform-integrated-circuit {
171178
}
172179
}
173180

181+
grouping trim-pkts-counters-top {
182+
description
183+
"Structural grouping for packet trimming counters.";
184+
185+
leaf out-trim-pkts {
186+
type oc-yang:counter64;
187+
description
188+
"Number of packets got trimmed and successfully
189+
transmitted";
190+
}
191+
192+
uses trim-pkts-common-counters-top;
193+
}
194+
195+
grouping trim-pkts-common-counters-top {
196+
description
197+
"Structural grouping for packet trimming counters.
198+
Counters collected at port level, queue level and
199+
switch level.";
200+
201+
leaf trim-pkts {
202+
type oc-yang:counter64;
203+
description
204+
"Number of packet got trimmed.";
205+
}
206+
207+
leaf dropped-trim-pkts {
208+
type oc-yang:counter64;
209+
description
210+
"Number of packet got trimmed but dropped due to
211+
failed shared buffer admission on trim queue.";
212+
}
213+
}
214+
174215
augment "/oc-platform:components/oc-platform:component/oc-platform:integrated-circuit" {
175216
description
176217
"Augment integrated circuit components with backplane-facing capacity and memory errors.";

release/models/platform/openconfig-platform-pipeline-counters.yang

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ module openconfig-platform-pipeline-counters {
99
import openconfig-types { prefix oc-types; }
1010
import openconfig-extensions { prefix oc-ext; }
1111
import openconfig-platform { prefix oc-platform; }
12+
import openconfig-platform-integrated-circuit { prefix oc-ic; }
1213

1314
organization
1415
"OpenConfig working group";
@@ -65,10 +66,16 @@ module openconfig-platform-pipeline-counters {
6566
5 blocks, is to have the abililty to receive all drop counters from
6667
all 5 blocks, for example, with one request.";
6768

68-
oc-ext:openconfig-version "0.5.1";
69+
oc-ext:openconfig-version "0.6.0";
6970
oc-ext:catalog-organization "openconfig";
7071
oc-ext:origin "openconfig";
7172

73+
revision "2026-03-25" {
74+
description
75+
"Add switch level pakcet trimming counters.";
76+
reference "0.6.0";
77+
}
78+
7279
revision "2023-10-08" {
7380
description
7481
"More detail description of pipe-line aggregated drop counters";
@@ -203,6 +210,17 @@ module openconfig-platform-pipeline-counters {
203210
uses pipeline-counters-packet-host-interface-block-state;
204211
}
205212
}
213+
214+
container trim {
215+
description
216+
"Packet trimming counters for entire device.";
217+
container state {
218+
description
219+
"State counters for packet trimming.";
220+
221+
uses oc-ic:trim-pkts-common-counters-top;
222+
}
223+
}
206224
}
207225

208226
container drop {

release/models/qos/openconfig-qos-interfaces.yang

Lines changed: 65 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ submodule openconfig-qos-interfaces {
88
import openconfig-extensions { prefix oc-ext; }
99
import openconfig-interfaces { prefix oc-if; }
1010
import openconfig-yang-types { prefix oc-yang; }
11+
import openconfig-platform-integrated-circuit { prefix oc-ic; }
1112

1213
include openconfig-qos-elements;
1314
include openconfig-qos-mem-mgmt;
@@ -25,7 +26,13 @@ submodule openconfig-qos-interfaces {
2526
configuration and operational state associated with
2627
interfaces.";
2728

28-
oc-ext:openconfig-version "2.0.1";
29+
oc-ext:openconfig-version "2.1.0";
30+
31+
revision "2026-03-25" {
32+
description
33+
"Add queue level pakcet trimming counters.";
34+
reference "2.1.0";
35+
}
2936

3037
revision "2026-01-24" {
3138
description
@@ -461,6 +468,7 @@ submodule openconfig-qos-interfaces {
461468
462469
Octets are counted regardless of its ECN codepoint";
463470
}
471+
464472
}
465473

466474
grouping qos-interface-queue-top {
@@ -510,11 +518,61 @@ submodule openconfig-qos-interfaces {
510518
}
511519
}
512520

513-
grouping qos-interface-queue-root-top {
521+
grouping qos-interface-input-queue-root-top {
522+
description
523+
"Top-level grouping for the queue associated with the
524+
interface - used only for /qos/interfaces/interface/input
525+
rather than in multiple contexts.";
526+
527+
container queues {
528+
description
529+
"Surrounding container for a list of queues that are
530+
instantiated on an interface.";
531+
532+
list queue {
533+
key "name";
534+
535+
description
536+
"Top-level container for the queue associated with this
537+
interface";
538+
539+
leaf name {
540+
type leafref {
541+
path "../config/name";
542+
}
543+
description
544+
"Reference to the name of the queue
545+
instantiated on the interface.";
546+
}
547+
548+
container config {
549+
description
550+
"Configuration data for the queue associated with the
551+
interface";
552+
553+
uses qos-interface-queue-config;
554+
uses qos-interface-queue-root-config;
555+
}
556+
557+
container state {
558+
config false;
559+
description
560+
"Operational state data for the queue associated with the
561+
interface";
562+
563+
uses qos-interface-queue-config;
564+
uses qos-interface-queue-root-config;
565+
uses qos-interface-queue-state;
566+
}
567+
}
568+
}
569+
}
570+
571+
grouping qos-interface-output-queue-root-top {
514572
description
515573
"Top-level grouping for the queue associated with the
516-
interface - used only for /qos/interfaces/interface rather
517-
than in multiple contexts.";
574+
interface - used only for /qos/interfaces/interface/output
575+
rather than in multiple contexts.";
518576

519577
container queues {
520578
description
@@ -555,6 +613,7 @@ submodule openconfig-qos-interfaces {
555613
uses qos-interface-queue-config;
556614
uses qos-interface-queue-root-config;
557615
uses qos-interface-queue-state;
616+
uses oc-ic:trim-pkts-counters-top;
558617
}
559618
}
560619
}
@@ -882,7 +941,7 @@ submodule openconfig-qos-interfaces {
882941
}
883942

884943
uses qos-interface-classifier-top;
885-
uses qos-interface-queue-root-top;
944+
uses qos-interface-input-queue-root-top;
886945
uses qos-interface-scheduler-top;
887946
uses qos-interface-voqs-top;
888947
}
@@ -993,7 +1052,7 @@ submodule openconfig-qos-interfaces {
9931052
}
9941053

9951054
uses qos-interface-classifier-top;
996-
uses qos-interface-queue-root-top;
1055+
uses qos-interface-output-queue-root-top;
9971056
uses qos-interface-scheduler-top;
9981057
}
9991058
}

0 commit comments

Comments
 (0)