Skip to content

Commit e0cd4b4

Browse files
committed
Drop counters HLD requirements added
1 parent c20c201 commit e0cd4b4

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

system/drop_counters_HLD.md

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Configurable Drop Counters in SONiC
2+
3+
# High Level Design Document
4+
#### Rev 1.1
5+
6+
## Overview
7+
8+
The main goal of this feature is to provide better packet drop visibility in SONiC by providing a mechanism to count and classify packet drops that occur due to different reasons.
9+
10+
## 1 Top-level requirements
11+
12+
- This feature is enhancements/hardening of exisiting drop counter feature in SONiC
13+
https://github.com/Azure/SONiC/blob/master/doc/drop_counters/drop_counters_HLD.md
14+
- Add support for more drop counters to SAI.
15+
- Klish support for drop counters feature in SONiC.
16+
- Mirror the possible drop frames to CPU for analysis.
17+
18+
# 2 Requirements
19+
20+
## 2.1 Functional Requirements
21+
1. CONFIG_DB can be configured to create debug counters
22+
2. STATE_DB can be queried for debug counter capabilities
23+
3. Users can access drop counter information via a Klish, GNMI, Rest interfaces.
24+
1. Users can see what capabilities are available to them
25+
1. Types of counters (i.e. port-level and/or switch-level)
26+
2. Number of counters
27+
3. Supported drop reasons
28+
2. Users can see what types of drops each configured counter contains
29+
3. Users can see which drop frames can be mirrored.
30+
4. Users can add and remove drop reasons from each counter
31+
5. Users can read the current value of each counter
32+
6. Users can assign aliases to counters
33+
7. Users can clear counters
34+
8. Users can capture mirrored dropped frames.
35+
36+
## 2.2 Configuration and Management Requirements
37+
Configuration of the drop counters can be done via:
38+
* config_db.json
39+
* CLI
40+
41+
## 2.3 Scalability Requirements
42+
Users must be able to use all debug counters and drop reasons provided by the underlying hardware.
43+
44+
Interacting with debug counters will not interfere with existing hardware counters (e.g. portstat). Likewise, interacting with existing hardware counters will not interfere with debug counter behavior.
45+
46+
## 2.4 Supported Debug Counters
47+
* PORT_INGRESS_DROPS: port-level ingress drop counters
48+
* PORT_EGRESS_DROPS: port-level egress drop counters
49+
* SWITCH_INGRESS_DROPS: switch-level ingress drop counters
50+
* SWITCH_EGRESS_DROPS: switch-level egress drop counters

0 commit comments

Comments
 (0)