Skip to content

Commit ad8a278

Browse files
authored
[trim]: Add Packet Trimming Port/Queue stats to VS lib (#1608)
Signed-off-by: Nazarii Hnydyn <[email protected]> **DEPENDS:** 1. #1575 **HLD:** sonic-net/SONiC#1898 #### A picture of a cute animal (not mandatory but encouraged) ``` .---. .----------- / \ __ / ------ / / \( )/ ----- ////// ' \/ ` --- //// / // : : --- // / / /` '-- // //..\\ ====UU====UU==== '//||\\` ''`` ```
1 parent 48f57d9 commit ad8a278

File tree

5 files changed

+201
-266
lines changed

5 files changed

+201
-266
lines changed

unittest/vslib/TestSwitchMLNX2700.cpp

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -600,30 +600,37 @@ TEST(SwitchMLNX2700, test_stats_query_capability)
600600
std::make_shared<RealObjectIdManager>(0, scc),
601601
sc);
602602

603-
sai_stat_capability_t capability_list[91];
603+
std::vector<sai_stat_capability_t> capability_list;
604604
sai_stat_capability_list_t stats_capability;
605-
stats_capability.count = 1;
606-
stats_capability.list = capability_list;
605+
607606
/* Get queue stats capability */
607+
stats_capability.count = 0;
608+
stats_capability.list = nullptr;
609+
608610
EXPECT_EQ(sw.queryStatsCapability(0x2100000000,
609611
SAI_OBJECT_TYPE_QUEUE,
610612
&stats_capability),
611613
SAI_STATUS_BUFFER_OVERFLOW);
612614

613-
stats_capability.count = SAI_QUEUE_STAT_DELAY_WATERMARK_NS;
615+
capability_list.resize(stats_capability.count);
616+
stats_capability.list = capability_list.data();
614617

615618
EXPECT_EQ(sw.queryStatsCapability(0x2100000000,
616619
SAI_OBJECT_TYPE_QUEUE,
617620
&stats_capability),
618621
SAI_STATUS_SUCCESS);
619622

620623
/* Get port stats capability */
621-
stats_capability.count = 1;
624+
stats_capability.count = 0;
625+
stats_capability.list = nullptr;
626+
622627
EXPECT_EQ(sw.queryStatsCapability(0x2100000000,
623628
SAI_OBJECT_TYPE_PORT,
624629
&stats_capability),
625630
SAI_STATUS_BUFFER_OVERFLOW);
626-
stats_capability.count = 91;
631+
632+
capability_list.resize(stats_capability.count);
633+
stats_capability.list = capability_list.data();
627634

628635
EXPECT_EQ(sw.queryStatsCapability(0x2100000000,
629636
SAI_OBJECT_TYPE_PORT,

unittest/vslib/TestVirtualSwitchSaiInterface.cpp

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -161,35 +161,41 @@ TEST_F(VirtualSwitchSaiInterfaceTest, bulkGet)
161161

162162
TEST_F(VirtualSwitchSaiInterfaceTest, queryStatsCapability)
163163
{
164-
sai_stat_capability_t capability_list[91];
164+
std::vector<sai_stat_capability_t> capability_list;
165165
sai_stat_capability_list_t stats_capability;
166-
stats_capability.list = capability_list;
167166

168167
/* Queue stats capability get */
169-
stats_capability.count = 1;
168+
stats_capability.count = 0;
169+
stats_capability.list = nullptr;
170170

171171
EXPECT_EQ(SAI_STATUS_BUFFER_OVERFLOW,
172172
m_vssai->queryStatsCapability(
173173
m_swid,
174174
SAI_OBJECT_TYPE_QUEUE,
175175
&stats_capability));
176176

177+
capability_list.resize(stats_capability.count);
178+
stats_capability.list = capability_list.data();
179+
177180
EXPECT_EQ(SAI_STATUS_SUCCESS,
178181
m_vssai->queryStatsCapability(
179182
m_swid,
180183
SAI_OBJECT_TYPE_QUEUE,
181184
&stats_capability));
182185

183186
/* Port stats capability get */
184-
stats_capability.count = 1;
187+
stats_capability.count = 0;
188+
stats_capability.list = nullptr;
185189

186190
EXPECT_EQ(SAI_STATUS_BUFFER_OVERFLOW,
187191
m_vssai->queryStatsCapability(
188192
m_swid,
189193
SAI_OBJECT_TYPE_PORT,
190194
&stats_capability));
191195

192-
stats_capability.count = 91;
196+
capability_list.resize(stats_capability.count);
197+
stats_capability.list = capability_list.data();
198+
193199
EXPECT_EQ(SAI_STATUS_SUCCESS,
194200
m_vssai->queryStatsCapability(
195201
m_swid,
@@ -199,35 +205,41 @@ TEST_F(VirtualSwitchSaiInterfaceTest, queryStatsCapability)
199205

200206
TEST_F(VirtualSwitchSaiInterfaceTest, queryStatsStCapability)
201207
{
202-
sai_stat_st_capability_t capability_list[91];
208+
std::vector<sai_stat_st_capability_t> capability_list;
203209
sai_stat_st_capability_list_t stats_capability;
204-
stats_capability.list = capability_list;
205210

206211
/* Queue stats capability get */
207-
stats_capability.count = 1;
212+
stats_capability.count = 0;
213+
stats_capability.list = nullptr;
208214

209215
EXPECT_EQ(SAI_STATUS_BUFFER_OVERFLOW,
210216
m_vssai->queryStatsStCapability(
211217
m_swid,
212218
SAI_OBJECT_TYPE_QUEUE,
213219
&stats_capability));
214220

221+
capability_list.resize(stats_capability.count);
222+
stats_capability.list = capability_list.data();
223+
215224
EXPECT_EQ(SAI_STATUS_SUCCESS,
216225
m_vssai->queryStatsStCapability(
217226
m_swid,
218227
SAI_OBJECT_TYPE_QUEUE,
219228
&stats_capability));
220229

221230
/* Port stats capability get */
222-
stats_capability.count = 1;
231+
stats_capability.count = 0;
232+
stats_capability.list = nullptr;
223233

224234
EXPECT_EQ(SAI_STATUS_BUFFER_OVERFLOW,
225235
m_vssai->queryStatsStCapability(
226236
m_swid,
227237
SAI_OBJECT_TYPE_PORT,
228238
&stats_capability));
229239

230-
stats_capability.count = 91;
240+
capability_list.resize(stats_capability.count);
241+
stats_capability.list = capability_list.data();
242+
231243
EXPECT_EQ(SAI_STATUS_SUCCESS,
232244
m_vssai->queryStatsStCapability(
233245
m_swid,

0 commit comments

Comments
 (0)