Skip to content

Commit f93e27a

Browse files
authored
Watermark: test SAI clear api if the stats mode is READ_AND_CLEAR (sonic-net#427)
* Test SAI clear api if the stats mode is READ_AND_CLEAR Signed-off-by: Wenda <[email protected]> * Address compile error
1 parent 8bf43a6 commit f93e27a

File tree

1 file changed

+56
-20
lines changed

1 file changed

+56
-20
lines changed

syncd/syncd_flex_counter.cpp

+56-20
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ void FlexCounter::setQueueCounterList(
197197

198198
if (supportedIds.size() == 0)
199199
{
200-
SWSS_LOG_NOTICE("Queue %s does not has supported counters", sai_serialize_object_id(queueId).c_str());
200+
SWSS_LOG_NOTICE("%s: queue %s does not has supported counters", instanceId.c_str(), sai_serialize_object_id(queueId).c_str());
201201

202202
// Remove flex counter if all counter IDs and plugins are unregistered
203203
if (fc.isEmpty())
@@ -297,7 +297,7 @@ void FlexCounter::setPriorityGroupCounterList(
297297

298298
if (supportedIds.size() == 0)
299299
{
300-
SWSS_LOG_NOTICE("Priority group %s does not have supported counters", sai_serialize_object_id(priorityGroupId).c_str());
300+
SWSS_LOG_NOTICE("%s: priority group %s does not have supported counters", instanceId.c_str(), sai_serialize_object_id(priorityGroupId).c_str());
301301

302302
// Remove flex counter if all counter IDs and plugins are unregistered
303303
if (fc.isEmpty())
@@ -818,17 +818,21 @@ void FlexCounter::collectCounters(
818818
static_cast<uint32_t>(queueCounterIds.size()),
819819
(const sai_stat_id_t *)queueCounterIds.data(),
820820
queueStats.data());
821+
if (status != SAI_STATUS_SUCCESS)
822+
{
823+
SWSS_LOG_ERROR("%s: failed to get stats of queue 0x%lx: %d", m_instanceId.c_str(), queueVid, status);
824+
continue;
825+
}
821826
if (m_statsMode == SAI_STATS_MODE_READ_AND_CLEAR){
822827
status = sai_metadata_sai_queue_api->clear_queue_stats(
823828
queueId,
824829
static_cast<uint32_t>(queueCounterIds.size()),
825830
(const sai_stat_id_t *)queueCounterIds.data());
826-
}
827-
828-
if (status != SAI_STATUS_SUCCESS)
829-
{
830-
SWSS_LOG_ERROR("Failed to get stats of queue 0x%lx: %d", queueVid, status);
831-
continue;
831+
if (status != SAI_STATUS_SUCCESS)
832+
{
833+
SWSS_LOG_ERROR("%s: failed to clear stats of queue 0x%lx: %d", m_instanceId.c_str(), queueVid, status);
834+
continue;
835+
}
832836
}
833837

834838
// Push all counter values to a single vector
@@ -905,17 +909,21 @@ void FlexCounter::collectCounters(
905909
static_cast<uint32_t>(priorityGroupCounterIds.size()),
906910
(const sai_stat_id_t *)priorityGroupCounterIds.data(),
907911
priorityGroupStats.data());
912+
if (status != SAI_STATUS_SUCCESS)
913+
{
914+
SWSS_LOG_ERROR("%s: failed to get %ld/%ld stats of PG 0x%lx: %d", m_instanceId.c_str(), priorityGroupCounterIds.size(), priorityGroupStats.size(), priorityGroupVid, status);
915+
continue;
916+
}
908917
if (m_statsMode == SAI_STATS_MODE_READ_AND_CLEAR){
909918
status = sai_metadata_sai_buffer_api->clear_ingress_priority_group_stats(
910919
priorityGroupId,
911920
static_cast<uint32_t>(priorityGroupCounterIds.size()),
912921
(const sai_stat_id_t *)priorityGroupCounterIds.data());
913-
}
914-
915-
if (status != SAI_STATUS_SUCCESS)
916-
{
917-
SWSS_LOG_ERROR("Failed to get %ld/%ld stats of PG 0x%lx: %d", priorityGroupCounterIds.size(), priorityGroupStats.size(), priorityGroupVid, status);
918-
continue;
922+
if (status != SAI_STATUS_SUCCESS)
923+
{
924+
SWSS_LOG_ERROR("%s: failed to clear %ld/%ld stats of PG 0x%lx: %d", m_instanceId.c_str(), priorityGroupCounterIds.size(), priorityGroupStats.size(), priorityGroupVid, status);
925+
continue;
926+
}
919927
}
920928

921929
// Push all counter values to a single vector
@@ -1191,17 +1199,31 @@ void FlexCounter::saiUpdateSupportedQueueCounters(
11911199

11921200
if (status != SAI_STATUS_SUCCESS)
11931201
{
1194-
SWSS_LOG_INFO("Counter %s is not supported on queue %s, rv: %s",
1202+
SWSS_LOG_NOTICE("%s: counter %s is not supported on queue %s, rv: %s",
1203+
m_instanceId.c_str(),
11951204
sai_serialize_queue_stat(counter).c_str(),
11961205
sai_serialize_object_id(queueId).c_str(),
11971206
sai_serialize_status(status).c_str());
11981207

11991208
continue;
12001209
}
1201-
else
1210+
1211+
if (m_statsMode == SAI_STATS_MODE_READ_AND_CLEAR)
12021212
{
1203-
supportedQueueCounters.insert(counter);
1213+
status = sai_metadata_sai_queue_api->clear_queue_stats(queueId, 1, (const sai_stat_id_t *)&counter);
1214+
if (status != SAI_STATUS_SUCCESS)
1215+
{
1216+
SWSS_LOG_NOTICE("%s: clear counter %s is not supported on queue %s, rv: %s",
1217+
m_instanceId.c_str(),
1218+
sai_serialize_queue_stat(counter).c_str(),
1219+
sai_serialize_object_id(queueId).c_str(),
1220+
sai_serialize_status(status).c_str());
1221+
1222+
continue;
1223+
}
12041224
}
1225+
1226+
supportedQueueCounters.insert(counter);
12051227
}
12061228
}
12071229

@@ -1220,17 +1242,31 @@ void FlexCounter::saiUpdateSupportedPriorityGroupCounters(
12201242

12211243
if (status != SAI_STATUS_SUCCESS)
12221244
{
1223-
SWSS_LOG_INFO("Counter %s is not supported on PG %s, rv: %s",
1245+
SWSS_LOG_NOTICE("%s: counter %s is not supported on PG %s, rv: %s",
1246+
m_instanceId.c_str(),
12241247
sai_serialize_ingress_priority_group_stat(counter).c_str(),
12251248
sai_serialize_object_id(priorityGroupId).c_str(),
12261249
sai_serialize_status(status).c_str());
12271250

12281251
continue;
12291252
}
1230-
else
1253+
1254+
if (m_statsMode == SAI_STATS_MODE_READ_AND_CLEAR)
12311255
{
1232-
supportedPriorityGroupCounters.insert(counter);
1256+
status = sai_metadata_sai_buffer_api->clear_ingress_priority_group_stats(priorityGroupId, 1, (const sai_stat_id_t *)&counter);
1257+
if (status != SAI_STATUS_SUCCESS)
1258+
{
1259+
SWSS_LOG_NOTICE("%s: clear counter %s is not supported on PG %s, rv: %s",
1260+
m_instanceId.c_str(),
1261+
sai_serialize_ingress_priority_group_stat(counter).c_str(),
1262+
sai_serialize_object_id(priorityGroupId).c_str(),
1263+
sai_serialize_status(status).c_str());
1264+
1265+
continue;
1266+
}
12331267
}
1268+
1269+
supportedPriorityGroupCounters.insert(counter);
12341270
}
12351271
}
12361272

0 commit comments

Comments
 (0)