From 179cac47166698fc25b62d39d9261a14d8e5ec99 Mon Sep 17 00:00:00 2001 From: Mykola Faryma Date: Fri, 7 Aug 2020 16:08:05 +0300 Subject: [PATCH 1/2] [port_buffer_drop] Add Port buffer drop counters in SONiC doc Signed-off-by: Mykola Faryma --- .../sonic_port_buffer_drop_counters.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 doc/port_buffer_drop_counters/sonic_port_buffer_drop_counters.md diff --git a/doc/port_buffer_drop_counters/sonic_port_buffer_drop_counters.md b/doc/port_buffer_drop_counters/sonic_port_buffer_drop_counters.md new file mode 100644 index 0000000000..5e370a47cc --- /dev/null +++ b/doc/port_buffer_drop_counters/sonic_port_buffer_drop_counters.md @@ -0,0 +1,94 @@ +# 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 defaul +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 +``` +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 +``` \ No newline at end of file From a921b4b893a254988a7b8ecddcff7dbef5fec157 Mon Sep 17 00:00:00 2001 From: Mykola Faryma Date: Tue, 18 Aug 2020 11:42:50 +0300 Subject: [PATCH 2/2] address review comments Signed-off-by: Mykola Faryma --- .../sonic_port_buffer_drop_counters.md | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/doc/port_buffer_drop_counters/sonic_port_buffer_drop_counters.md b/doc/port_buffer_drop_counters/sonic_port_buffer_drop_counters.md index 5e370a47cc..4db44ab288 100644 --- a/doc/port_buffer_drop_counters/sonic_port_buffer_drop_counters.md +++ b/doc/port_buffer_drop_counters/sonic_port_buffer_drop_counters.md @@ -52,7 +52,7 @@ Also limit user configuring a small interval for this FC group via CLI. ## 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 defaul +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 @@ -68,6 +68,24 @@ Also limit user configuring a small interval for this FC group via CLI. ## 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