@@ -197,7 +197,7 @@ void FlexCounter::setQueueCounterList(
197
197
198
198
if (supportedIds.size () == 0 )
199
199
{
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 ());
201
201
202
202
// Remove flex counter if all counter IDs and plugins are unregistered
203
203
if (fc.isEmpty ())
@@ -297,7 +297,7 @@ void FlexCounter::setPriorityGroupCounterList(
297
297
298
298
if (supportedIds.size () == 0 )
299
299
{
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 ());
301
301
302
302
// Remove flex counter if all counter IDs and plugins are unregistered
303
303
if (fc.isEmpty ())
@@ -818,17 +818,21 @@ void FlexCounter::collectCounters(
818
818
static_cast <uint32_t >(queueCounterIds.size ()),
819
819
(const sai_stat_id_t *)queueCounterIds.data (),
820
820
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
+ }
821
826
if (m_statsMode == SAI_STATS_MODE_READ_AND_CLEAR){
822
827
status = sai_metadata_sai_queue_api->clear_queue_stats (
823
828
queueId,
824
829
static_cast <uint32_t >(queueCounterIds.size ()),
825
830
(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
+ }
832
836
}
833
837
834
838
// Push all counter values to a single vector
@@ -905,17 +909,21 @@ void FlexCounter::collectCounters(
905
909
static_cast <uint32_t >(priorityGroupCounterIds.size ()),
906
910
(const sai_stat_id_t *)priorityGroupCounterIds.data (),
907
911
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
+ }
908
917
if (m_statsMode == SAI_STATS_MODE_READ_AND_CLEAR){
909
918
status = sai_metadata_sai_buffer_api->clear_ingress_priority_group_stats (
910
919
priorityGroupId,
911
920
static_cast <uint32_t >(priorityGroupCounterIds.size ()),
912
921
(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
+ }
919
927
}
920
928
921
929
// Push all counter values to a single vector
@@ -1191,17 +1199,31 @@ void FlexCounter::saiUpdateSupportedQueueCounters(
1191
1199
1192
1200
if (status != SAI_STATUS_SUCCESS)
1193
1201
{
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 (),
1195
1204
sai_serialize_queue_stat (counter).c_str (),
1196
1205
sai_serialize_object_id (queueId).c_str (),
1197
1206
sai_serialize_status (status).c_str ());
1198
1207
1199
1208
continue ;
1200
1209
}
1201
- else
1210
+
1211
+ if (m_statsMode == SAI_STATS_MODE_READ_AND_CLEAR)
1202
1212
{
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
+ }
1204
1224
}
1225
+
1226
+ supportedQueueCounters.insert (counter);
1205
1227
}
1206
1228
}
1207
1229
@@ -1220,17 +1242,31 @@ void FlexCounter::saiUpdateSupportedPriorityGroupCounters(
1220
1242
1221
1243
if (status != SAI_STATUS_SUCCESS)
1222
1244
{
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 (),
1224
1247
sai_serialize_ingress_priority_group_stat (counter).c_str (),
1225
1248
sai_serialize_object_id (priorityGroupId).c_str (),
1226
1249
sai_serialize_status (status).c_str ());
1227
1250
1228
1251
continue ;
1229
1252
}
1230
- else
1253
+
1254
+ if (m_statsMode == SAI_STATS_MODE_READ_AND_CLEAR)
1231
1255
{
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
+ }
1233
1267
}
1268
+
1269
+ supportedPriorityGroupCounters.insert (counter);
1234
1270
}
1235
1271
}
1236
1272
0 commit comments