Skip to content

Commit

Permalink
[port_buffer_drop] Add Port buffer drop counters in SONiC doc (#658)
Browse files Browse the repository at this point in the history
* [port_buffer_drop] Add Port buffer drop counters in SONiC doc

Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>

* address review comments

Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>
  • Loading branch information
mykolaf authored Oct 13, 2020
1 parent 03a72bd commit aaedc4a
Showing 1 changed file with 112 additions and 0 deletions.
112 changes: 112 additions & 0 deletions doc/port_buffer_drop_counters/sonic_port_buffer_drop_counters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# Port buffer drop counters in SONiC

# Requirements Document

# Table of Contents
* [List of Tables](#list-of-tables)
* [List of Figures](#list-of-figures)
* [Revision](#revision)
* [About this Manual](#about-this-manual)
* [Scope](#scope)
* [Defintions/Abbreviation](#definitionsabbreviation)
* [1 Overview](#1-overview)
* [2 Requirements](#2-requirements)
- [2.1 Functional Requirements](#21-functional-requirements)
- [2.2 Supported Counters](#24-supported-counters)
* [3 Design](#3-design)
- [3.1 CLI (and usage example)](#31-cli-and-usage-example)

# List of Tables
* [Table 1: Abbreviations](#definitionsabbreviation)


# Revision
| Rev | Date | Author | Change Description |
|:---:|:--------:|:-----------:|---------------------------|
| 0.1 | 07/08/20 | Mykola Faryma | Initial version |


# About this Manual
This document provides an overview of requirements of port buffer drop counters in SONiC.

# Scope
This document describes the motivation for port buffer drop counters and the changes expected.

# Definitions/Abbreviation
| Abbreviation | Description |
|--------------|-----------------|
| FC | Flex Counter |

# 1 Overview

The main goal of this feature is to poll port level buffer drop counters in a safe way.
According to https://github.com/Azure/sonic-swss/pull/1308,

> These counters are causing widespread issues in the master branch, so we're backing them out for now to be revisited in a later PR. They will likely need to be polled separately from the other counters, and on a longer interval, to avoid performance issues and conflicts.
The solution for now is to introduce a new FC group with a larger polling interval than the rest of port counters.
Also limit user configuring a small interval for this FC group via CLI.

# 2 Requirements

## 2.1 Functional Requirements
1. New flex counter group is introduced for the port-level buffer drop counters
2. The FC group is enabled by default
3. The polling interval is 60s by default
3. Users can configure FC group via a CLI tool
1. Users can enable/disable polling
2. Users can set the polling interval in range from 30s to 5m
3. Users can view the FC configuration


## 2.2 Supported Counters
* SAI_PORT_STAT_IN_DROPPED_PKTS: port-level ingress buffer drop counters
* SAI_PORT_STAT_OUT_DROPPED_PKTS: port-level egress buffer drop counters

# 3 Design

## 3.1 CLI (and usage example)

### 3.1.1 Displaying the FC configuration

#### Current imlemenation

```
admin@sonic:~$ counterpoll show
Type Interval (in ms) Status
-------------------------- ------------------ --------
QUEUE_STAT default (10000) enable
PORT_STAT default (1000) enable
RIF_STAT default (1000) enable
QUEUE_WATERMARK_STAT default (10000) enable
PG_WATERMARK_STAT default (10000) enable
BUFFER_POOL_WATERMARK_STAT default (10000) enable
```

#### New imlementation

```
admin@sonic:~$ counterpoll show
Type Interval (in ms) Status
-------------------------- ------------------ --------
QUEUE_STAT default (10000) enable
PORT_STAT default (1000) enable
PORT_BUFFER_DROP default (60000) enable
RIF_STAT default (1000) enable
QUEUE_WATERMARK_STAT default (10000) enable
PG_WATERMARK_STAT default (10000) enable
BUFFER_POOL_WATERMARK_STAT default (10000) enable
```

### 3.1.2 Enabling/Disabling the polling
```
admin@sonic:~$ counterpoll port-buffer-drop enable
admin@sonic:~$ counterpoll port-buffer-drop disable
```

### 3.1.3 Setting new polling interval
```
admin@sonic:~$ counterpoll port-buffer-drop interval 30000
```

0 comments on commit aaedc4a

Please sign in to comment.