Skip to content

Commit 38ed16b

Browse files
committed
Fix DASH FlexCounter bulk get ENI meter class range
Signed-off-by: mukeshmv <[email protected]>
1 parent 8123a98 commit 38ed16b

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

syncd/FlexCounter.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2031,7 +2031,9 @@ class DashMeterCounterContext : public BaseCounterContext
20312031
sai_object_key_t object_key;
20322032
object_key.key.meter_bucket_entry.eni_id = rid;
20332033
object_key.key.meter_bucket_entry.switch_id = m_switchId;
2034-
for (uint32_t i = 0; i < m_meterBucketsPerEni; ++i) {
2034+
// Populate object keys for ENI meter classes: 1 - max-capable.
2035+
// 0 is not a valid meter class since its used to denote traffic that is not metered
2036+
for (uint32_t i = 1; i <= m_meterBucketsPerEni; ++i) {
20352037
object_key.key.meter_bucket_entry.meter_class = i;
20362038
ctx.object_keys.push_back(object_key);
20372039
}

tests/aspell.en.pws

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ DPU
3030
EAPOL
3131
ECN
3232
EIO
33+
ENI
3334
ETERM
3435
ecmp
3536
ECMP

unittest/syncd/TestFlexCounter.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1921,7 +1921,7 @@ TEST(FlexCounter, addRemoveDashMeterCounter)
19211921
EXPECT_EQ(number_of_counters, 2);
19221922
for (uint32_t i = 0; i < object_count; ++i)
19231923
{
1924-
EXPECT_EQ(object_keys[i].key.meter_bucket_entry.meter_class, i);
1924+
EXPECT_EQ(object_keys[i].key.meter_bucket_entry.meter_class, i + 1);
19251925
dash_meter_fill_values(i, number_of_counters, &(counters[i * number_of_counters]), nullptr);
19261926
object_status[i] = SAI_STATUS_SUCCESS;
19271927
}
@@ -1933,7 +1933,8 @@ TEST(FlexCounter, addRemoveDashMeterCounter)
19331933
std::string value;
19341934
for (uint32_t i = 0; i < (expectedValues.size()/counterIdNames.size()); i++)
19351935
{
1936-
auto entry_key = sai_meter_bucket_entry_t {.switch_id = 0, .eni_id = eni_id, .meter_class = i*100};
1936+
auto entry_key = sai_meter_bucket_entry_t {.switch_id = 0, .eni_id = eni_id,
1937+
.meter_class = (i*100) + 1};
19371938
auto key = sai_serialize_meter_bucket_entry(entry_key);
19381939
for (size_t j = 0; j < 2; ++j) {
19391940
countersTable.hget(key, counterIdNames[j], value);

0 commit comments

Comments
 (0)