diff --git a/src/sonic_ax_impl/mibs/vendor/cisco/ciscoSwitchQosMIB.py b/src/sonic_ax_impl/mibs/vendor/cisco/ciscoSwitchQosMIB.py index b1db234215..565573c39b 100644 --- a/src/sonic_ax_impl/mibs/vendor/cisco/ciscoSwitchQosMIB.py +++ b/src/sonic_ax_impl/mibs/vendor/cisco/ciscoSwitchQosMIB.py @@ -1,3 +1,4 @@ +import math from enum import unique, Enum from bisect import bisect_right @@ -111,7 +112,7 @@ def update_stats(self): self.mib_oid_list = [] # Sort the ports to keep the OID order in the MIB - if_range = sorted(list(self.oid_sai_map.keys())) + if_range = list(self.oid_sai_map.keys()) # Update queue counters for port for if_index in if_range: if if_index not in self.port_queue_list_map: @@ -119,6 +120,10 @@ def update_stats(self): continue if_queues = self.port_queue_list_map[if_index] + # The first half of queue id is for ucast, and second half is for mcast + # To simulate vendor OID, we wrap queues by half distance + pq_count = math.ceil((max(if_queues) + 1) / 2) + for queue in if_queues: # Get queue type and statistics queue_sai_oid = self.port_queues_map[mibs.queue_key(if_index, queue)] @@ -129,27 +134,29 @@ def update_stats(self): # Add supported counters to MIBs list and store counters values for (counter, counter_type), counter_mib_id in CounterMap.items(): # Only egress queues are supported - mib_oid = (if_index, int(DirectionTypes.EGRESS), queue + 1, counter_mib_id) + mib_oid = (if_index, int(DirectionTypes.EGRESS), (queue % pq_count) + 1, counter_mib_id) counter_value = 0 if queue_type == counter_type: counter_value = int(queue_stat.get(counter, 0)) + if mib_oid in self.mib_oid_to_queue_map: + continue self.mib_oid_list.append(mib_oid) self.mib_oid_to_queue_map[mib_oid] = counter_value # Sort the LAG ports to keep the OID order in the MIB - lag_range = sorted(list(self.oid_lag_name_map.keys())) + lag_range = list(self.oid_lag_name_map.keys()) # Update queue counters for LAG for lag_index in lag_range: lag_oid_list = [] lag_oid_to_queue_map = {} # Get counters for each LAG member - for lag_member in self.lag_name_if_name_map[self.oid_lag_name_map[lag_index]]: + for lag_member in self.lag_name_if_name_map[self.oid_lag_name_map[lag_index]]: lag_member_queues = [] if mibs.get_index(lag_member) not in self.port_queue_list_map: # LAG member does not has a queues, continue.. - continue + continue lag_member_queues = self.port_queue_list_map[mibs.get_index(lag_member)] for queue in lag_member_queues: @@ -178,6 +185,8 @@ def update_stats(self): self.mib_oid_list += lag_oid_list self.mib_oid_to_queue_map.update(lag_oid_to_queue_map) + self.mib_oid_list.sort() + def get_next(self, sub_id): """ :param sub_id: The 1-based sub-identifier query. @@ -198,7 +207,7 @@ def handle_stat_request(self, sub_id): # if_index, if_direction, queue_index and counter id should be passed if sub_id in self.mib_oid_to_queue_map: - return self.mib_oid_to_queue_map[sub_id] & 0x00000000ffffffff + return self.mib_oid_to_queue_map[sub_id] & 0xffffffffffffffff else: return None @@ -213,4 +222,4 @@ class csqIfQosGroupStatsTable(metaclass=MIBMeta, prefix='.1.3.6.1.4.1.9.9.580.1. # csqIfQosGroupStatsEntry = '1.3.6.1.4.1.9.9.580.1.5.5.1.4' queue_stat_request = \ - SubtreeMIBEntry('1.4', queue_updater, ValueType.INTEGER, queue_updater.handle_stat_request) + SubtreeMIBEntry('1.4', queue_updater, ValueType.COUNTER_64, queue_updater.handle_stat_request) diff --git a/tests/mock_tables/counters_db.json b/tests/mock_tables/counters_db.json index 19ceeb0fdf..770700fb66 100644 --- a/tests/mock_tables/counters_db.json +++ b/tests/mock_tables/counters_db.json @@ -3298,30 +3298,54 @@ "SAI_PORT_STAT_PFC_7_TX_PKTS": "8" }, "COUNTERS_QUEUE_NAME_MAP": { - "Ethernet0:0": "oid:0x15000000000230", - "Ethernet0:1": "oid:0x15000000000231", - "Ethernet0:2": "oid:0x15000000000232", - "Ethernet0:3": "oid:0x15000000000233", - "Ethernet0:4": "oid:0x15000000000234", - "Ethernet0:5": "oid:0x15000000000235", - "Ethernet0:6": "oid:0x15000000000236", - "Ethernet0:7": "oid:0x15000000000237", - "Ethernet4:0": "oid:0x15000000000240", - "Ethernet4:1": "oid:0x15000000000241", - "Ethernet4:2": "oid:0x15000000000242", - "Ethernet4:3": "oid:0x15000000000243", - "Ethernet4:4": "oid:0x15000000000244", - "Ethernet4:5": "oid:0x15000000000245", - "Ethernet4:6": "oid:0x15000000000246", - "Ethernet4:7": "oid:0x15000000000247", - "Ethernet8:0": "oid:0x15000000000250", - "Ethernet8:1": "oid:0x15000000000251", - "Ethernet8:2": "oid:0x15000000000252", - "Ethernet8:3": "oid:0x15000000000253", - "Ethernet8:4": "oid:0x15000000000254", - "Ethernet8:5": "oid:0x15000000000255", - "Ethernet8:6": "oid:0x15000000000256", - "Ethernet8:7": "oid:0x15000000000257" + "Ethernet0:0": "oid:0x15000000000230", + "Ethernet0:1": "oid:0x15000000000231", + "Ethernet0:2": "oid:0x15000000000232", + "Ethernet0:3": "oid:0x15000000000233", + "Ethernet0:4": "oid:0x15000000000234", + "Ethernet0:5": "oid:0x15000000000235", + "Ethernet0:6": "oid:0x15000000000236", + "Ethernet0:7": "oid:0x15000000000237", + "Ethernet0:8": "oid:0x15000000010230", + "Ethernet0:9": "oid:0x15000000010231", + "Ethernet0:10": "oid:0x15000000010232", + "Ethernet0:11": "oid:0x15000000010233", + "Ethernet0:12": "oid:0x15000000010234", + "Ethernet0:13": "oid:0x15000000010235", + "Ethernet0:14": "oid:0x15000000010236", + "Ethernet0:15": "oid:0x15000000010237", + "Ethernet4:0": "oid:0x15000000000240", + "Ethernet4:1": "oid:0x15000000000241", + "Ethernet4:2": "oid:0x15000000000242", + "Ethernet4:3": "oid:0x15000000000243", + "Ethernet4:4": "oid:0x15000000000244", + "Ethernet4:5": "oid:0x15000000000245", + "Ethernet4:6": "oid:0x15000000000246", + "Ethernet4:7": "oid:0x15000000000247", + "Ethernet4:8": "oid:0x15000000010240", + "Ethernet4:9": "oid:0x15000000010241", + "Ethernet4:10": "oid:0x15000000010242", + "Ethernet4:11": "oid:0x15000000010243", + "Ethernet4:12": "oid:0x15000000010244", + "Ethernet4:13": "oid:0x15000000010245", + "Ethernet4:14": "oid:0x15000000010246", + "Ethernet4:15": "oid:0x15000000010247", + "Ethernet8:0": "oid:0x15000000000250", + "Ethernet8:1": "oid:0x15000000000251", + "Ethernet8:2": "oid:0x15000000000252", + "Ethernet8:3": "oid:0x15000000000253", + "Ethernet8:4": "oid:0x15000000000254", + "Ethernet8:5": "oid:0x15000000000255", + "Ethernet8:6": "oid:0x15000000000256", + "Ethernet8:7": "oid:0x15000000000257", + "Ethernet8:8": "oid:0x15000000010250", + "Ethernet8:9": "oid:0x15000000010251", + "Ethernet8:10": "oid:0x15000000010252", + "Ethernet8:11": "oid:0x15000000010253", + "Ethernet8:12": "oid:0x15000000010254", + "Ethernet8:13": "oid:0x15000000010255", + "Ethernet8:14": "oid:0x15000000010256", + "Ethernet8:15": "oid:0x15000000010257" }, "COUNTERS_QUEUE_TYPE_MAP": { "oid:0x15000000000230": "SAI_QUEUE_TYPE_UNICAST", @@ -3347,7 +3371,31 @@ "oid:0x15000000000254": "SAI_QUEUE_TYPE_UNICAST", "oid:0x15000000000255": "SAI_QUEUE_TYPE_UNICAST", "oid:0x15000000000256": "SAI_QUEUE_TYPE_UNICAST", - "oid:0x15000000000257": "SAI_QUEUE_TYPE_UNICAST" + "oid:0x15000000000257": "SAI_QUEUE_TYPE_UNICAST", + "oid:0x15000000010230": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010231": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010232": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010233": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010234": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010235": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010236": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010237": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010240": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010241": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010242": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010243": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010244": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010245": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010246": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010247": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010250": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010251": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010252": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010253": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010254": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010255": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010256": "SAI_QUEUE_TYPE_MULTICAST", + "oid:0x15000000010257": "SAI_QUEUE_TYPE_MULTICAST" }, "COUNTERS:oid:0x15000000000230": { "SAI_QUEUE_STAT_PACKETS": "1", @@ -3540,5 +3588,196 @@ "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" - } -} + }, + "COUNTERS:oid:0x15000000010230": { + "SAI_QUEUE_STAT_PACKETS": "123459", + "SAI_QUEUE_STAT_BYTES": "23492723984237432", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010231": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010232": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010233": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010234": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010235": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010236": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010237": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010240": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010241": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010242": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010243": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010244": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010245": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010246": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010247": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010250": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010251": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010252": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010253": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010254": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010255": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010256": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }, + "COUNTERS:oid:0x15000000010257": { + "SAI_QUEUE_STAT_PACKETS": "1", + "SAI_QUEUE_STAT_BYTES": "2", + "SAI_QUEUE_STAT_DROPPED_PACKETS": "3", + "SAI_QUEUE_STAT_DISCARD_DROPPED_PACKETS": "4", + "SAI_QUEUE_STAT_CURR_OCCUPANCY_BYTES": "5", + "SAI_QUEUE_STAT_WATERMARK_BYTES": "6" + }} diff --git a/tests/test_queues_stat.py b/tests/test_queues_stat.py index 58f6771428..31f82e60b1 100644 --- a/tests/test_queues_stat.py +++ b/tests/test_queues_stat.py @@ -40,7 +40,7 @@ def test_getQueueCounters(self): print(response) value0 = response.values[0] - self.assertEqual(value0.type_, ValueType.INTEGER) + self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, 1) @@ -57,9 +57,26 @@ def test_getNextPduForQueueCounter(self): print(response) value0 = response.values[0] - self.assertEqual(value0.type_, ValueType.INTEGER) + self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(expected_oid)) - self.assertEqual(value0.data, 23492723984237432 & 0x00000000ffffffff) # Test integer truncation + self.assertEqual(value0.data, 23492723984237432 % pow(2, 64)) # Test integer truncation + + def test_getNextPduForQueueCounter_wrapped(self): + oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 580, 1, 5, 5, 1, 4, 1, 2, 1, 2)) + expected_oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 580, 1, 5, 5, 1, 4, 1, 2, 1, 3)) + get_pdu = GetNextPDU( + header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0), + oids=[oid] + ) + + encoded = get_pdu.encode() + response = get_pdu.make_response(self.lut) + print(response) + + value0 = response.values[0] + self.assertEqual(value0.type_, ValueType.COUNTER_64) + self.assertEqual(str(value0.name), str(expected_oid)) + self.assertEqual(value0.data, 123459) # Test integer truncation def test_getIngressQueueCounters(self): oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 580, 1, 5, 5, 1, 4, 1, 1, 1, 1)) @@ -77,7 +94,7 @@ def test_getIngressQueueCounters(self): self.assertEqual(str(value0.name), str(oid)) self.assertEqual(value0.data, None) - def test_getMulticastQueueCounters(self): + def test_getMulticastQueueCountersWrapped(self): oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 580, 1, 5, 5, 1, 4, 1, 2, 1, 3)) get_pdu = GetPDU( header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), @@ -88,6 +105,22 @@ def test_getMulticastQueueCounters(self): response = get_pdu.make_response(self.lut) print(response) + value0 = response.values[0] + self.assertEqual(value0.type_, ValueType.COUNTER_64) + self.assertEqual(str(value0.name), str(oid)) + self.assertEqual(value0.data, 123459) + + def test_getMulticastQueueCounters(self): + oid = ObjectIdentifier(8, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 580, 1, 5, 5, 1, 4, 1, 2, 1, 9)) + get_pdu = GetPDU( + header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), + oids=[oid] + ) + + encoded = get_pdu.encode() + response = get_pdu.make_response(self.lut) + print(response) + value0 = response.values[0] self.assertEqual(value0.type_, ValueType.NO_SUCH_INSTANCE) self.assertEqual(str(value0.name), str(oid)) @@ -105,6 +138,6 @@ def test_getSubtreeForQueueCounters(self): response = get_pdu.make_response(self.lut) value0 = response.values[0] - self.assertEqual(value0.type_, ValueType.INTEGER) + self.assertEqual(value0.type_, ValueType.COUNTER_64) self.assertEqual(str(value0.name), str(expected_oid)) self.assertEqual(value0.data, 1)