Skip to content

Commit f0cbfff

Browse files
committed
Fix Pfc/Qos counter integer range
Signed-off-by: Qi Luo <[email protected]>
1 parent c954e4e commit f0cbfff

File tree

5 files changed

+10
-7
lines changed

5 files changed

+10
-7
lines changed

src/sonic_ax_impl/mibs/vendor/cisco/ciscoPfcExtMIB.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def _get_counter(self, oid, counter_name):
9494

9595
try:
9696
counter_value = self.if_counters[sai_id][_counter_name]
97-
counter_value = int(counter_value)
97+
counter_value = int(counter_value) & 0x00000000ffffffff
9898
# done!
9999
return counter_value
100100
except KeyError as e:

src/sonic_ax_impl/mibs/vendor/cisco/ciscoSwitchQosMIB.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,10 @@ def handle_stat_request(self, sub_id):
197197
"""
198198
# if_index, if_direction, queue_index and counter id should be passed
199199

200-
return self.mib_oid_to_queue_map.get(sub_id)
200+
if sub_id in self.mib_oid_to_queue_map:
201+
return self.mib_oid_to_queue_map[sub_id] & 0x00000000ffffffff
202+
else:
203+
return None
201204

202205
class csqIfQosGroupStatsTable(metaclass=MIBMeta, prefix='.1.3.6.1.4.1.9.9.580.1.5.5'):
203206
"""

tests/mock_tables/counters_db.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1104,7 +1104,7 @@
11041104
"SAI_PORT_STAT_IF_IN_MULTICAST_PKTS": "0",
11051105
"SAI_PORT_STAT_PAUSE_RX_PKTS": "0",
11061106
"SAI_PORT_STAT_PAUSE_TX_PKTS": "0",
1107-
"SAI_PORT_STAT_PFC_0_RX_PKTS": "1",
1107+
"SAI_PORT_STAT_PFC_0_RX_PKTS": "209347219842134092490",
11081108
"SAI_PORT_STAT_PFC_0_TX_PKTS": "1",
11091109
"SAI_PORT_STAT_PFC_1_RX_PKTS": "2",
11101110
"SAI_PORT_STAT_PFC_1_TX_PKTS": "2",
@@ -3351,7 +3351,7 @@
33513351
},
33523352
"COUNTERS:oid:0x15000000000230": {
33533353
"SAI_QUEUE_STAT_PACKETS": "1",
3354-
"SAI_QUEUE_STAT_BYTES": "2",
3354+
"SAI_QUEUE_STAT_BYTES": "23492723984237432",
33553355
"SAI_QUEUE_STAT_DROPPED_PACKETS": "3",
33563356
"SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4",
33573357
"SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5",

tests/test_pfc.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def test_getPduRequestForPriority(self):
115115
value0 = response.values[0]
116116
self.assertEqual(value0.type_, ValueType.INTEGER)
117117
self.assertEqual(str(value0.name), str(oid))
118-
self.assertEqual(value0.data, 1)
118+
self.assertEqual(value0.data, 209347219842134092490 % pow(2, 32)) # Test integer truncation
119119

120120
def test_getNextPduRequestForPriority(self):
121121
oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 2, 1, 2, 1, 2))
@@ -202,4 +202,4 @@ def test_getPfcSubtree(self):
202202
value0 = response.values[0]
203203
self.assertEqual(value0.type_, ValueType.INTEGER)
204204
self.assertEqual(str(value0.name), str(expected_oid))
205-
self.assertEqual(value0.data, 1)
205+
self.assertEqual(value0.data, 209347219842134092490 % pow(2, 32)) # Test integer truncation

tests/test_queues_stat.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def test_getNextPduForQueueCounter(self):
5959
value0 = response.values[0]
6060
self.assertEqual(value0.type_, ValueType.INTEGER)
6161
self.assertEqual(str(value0.name), str(expected_oid))
62-
self.assertEqual(value0.data, 2)
62+
self.assertEqual(value0.data, 23492723984237432 & 0x00000000ffffffff) # Test integer truncation
6363

6464
def test_getIngressQueueCounters(self):
6565
oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 580, 1, 5, 5, 1, 4, 1, 1, 1, 1))

0 commit comments

Comments
 (0)