Skip to content

Commit e9f35d8

Browse files
vivekrnvraphaelt-nvidia
authored andcommitted
[SFlowMgr] Sflow Crash on 200G ports handled (sonic-net#1683)
- What I did Added 200G entry into the speed-rate map. Also handled the case which programs empty string into APP-DB and thus leading to a failure of Orchagent. Default Sampling rate for 200G is set to 20000 - Why I did it Fix for Issue: sonic-net/sonic-buildimage#6793 - How I verified it run sflow community test under sonic-mgmt Co-authored-by: Vivek Reddy Karri <[email protected]>
1 parent aa7fe65 commit e9f35d8

2 files changed

Lines changed: 4 additions & 1 deletion

File tree

cfgmgr/sflowmgr.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ using namespace swss;
1313
map<string,string> sflowSpeedRateInitMap =
1414
{
1515
{SFLOW_SAMPLE_RATE_KEY_400G, SFLOW_SAMPLE_RATE_VALUE_400G},
16+
{SFLOW_SAMPLE_RATE_KEY_200G, SFLOW_SAMPLE_RATE_VALUE_200G},
1617
{SFLOW_SAMPLE_RATE_KEY_100G, SFLOW_SAMPLE_RATE_VALUE_100G},
1718
{SFLOW_SAMPLE_RATE_KEY_50G, SFLOW_SAMPLE_RATE_VALUE_50G},
1819
{SFLOW_SAMPLE_RATE_KEY_40G, SFLOW_SAMPLE_RATE_VALUE_40G},
@@ -229,7 +230,7 @@ void SflowMgr::sflowCheckAndFillValues(string alias, vector<FieldValueTuple> &va
229230
{
230231
string speed = m_sflowPortConfMap[alias].speed;
231232

232-
if (speed != SFLOW_ERROR_SPEED_STR)
233+
if (speed != SFLOW_ERROR_SPEED_STR && sflowSpeedRateInitMap.find(speed) != sflowSpeedRateInitMap.end())
233234
{
234235
rate = sflowSpeedRateInitMap[speed];
235236
}

cfgmgr/sflowmgr.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
namespace swss {
1212

1313
#define SFLOW_SAMPLE_RATE_KEY_400G "400000"
14+
#define SFLOW_SAMPLE_RATE_KEY_200G "200000"
1415
#define SFLOW_SAMPLE_RATE_KEY_100G "100000"
1516
#define SFLOW_SAMPLE_RATE_KEY_50G "50000"
1617
#define SFLOW_SAMPLE_RATE_KEY_40G "40000"
@@ -19,6 +20,7 @@ namespace swss {
1920
#define SFLOW_SAMPLE_RATE_KEY_1G "1000"
2021

2122
#define SFLOW_SAMPLE_RATE_VALUE_400G "40000"
23+
#define SFLOW_SAMPLE_RATE_VALUE_200G "20000"
2224
#define SFLOW_SAMPLE_RATE_VALUE_100G "10000"
2325
#define SFLOW_SAMPLE_RATE_VALUE_50G "5000"
2426
#define SFLOW_SAMPLE_RATE_VALUE_40G "4000"

0 commit comments

Comments
 (0)