Skip to content

Fix queue counter value type, and wrap queue index #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jan 26, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 16 additions & 7 deletions src/sonic_ax_impl/mibs/vendor/cisco/ciscoSwitchQosMIB.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import math
from enum import unique, Enum
from bisect import bisect_right

Expand Down Expand Up @@ -111,14 +112,18 @@ 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:
# Port does not has a queues, continue..
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)]
Expand All @@ -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:
Expand Down Expand Up @@ -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.
Expand All @@ -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

Expand All @@ -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)
293 changes: 266 additions & 27 deletions tests/mock_tables/counters_db.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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",
Expand Down Expand Up @@ -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"
}}
Loading