From 2b551f26af2dba38967de872ea340325f48f2beb Mon Sep 17 00:00:00 2001 From: Xinyu Lin Date: Fri, 12 Aug 2022 09:04:39 +0800 Subject: [PATCH] [Credo][Ycable] fix incorrect uart statistics (#296) Description The original get_uart_stat() will only report the last record of the uart statistic due to all record shared the same object instance. Motivation and Context How Has This Been Tested? Signed-off-by: xinyu --- sonic_y_cable/credo/y_cable_credo.py | 51 +++++++++++++++++----------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/sonic_y_cable/credo/y_cable_credo.py b/sonic_y_cable/credo/y_cable_credo.py index f015b014f..45c91f16c 100644 --- a/sonic_y_cable/credo/y_cable_credo.py +++ b/sonic_y_cable/credo/y_cable_credo.py @@ -3139,8 +3139,7 @@ def get_uart_stat(self): """ if self.platform_chassis is not None: - cnt = {} - uartPort = {} + result = {} for option in range(2): @@ -3152,27 +3151,41 @@ def get_uart_stat(self): self.log_error('Dump Uart statstics error (error code:0x%04X)' % (status)) return result - addr = 128 - - for idx in range(1, 3): - cnt['TxPktCnt'] = (self.read_mmap(YCable.MIS_PAGE_FC, addr + 3) << 24) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 2) << 16) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 1) << 8) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 0) << 0) - addr += 4 - cnt['RxPktCnt'] = (self.read_mmap(YCable.MIS_PAGE_FC, addr + 3) << 24) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 2) << 16) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 1) << 8) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 0) << 0) - addr += 4 - cnt['AckCnt'] = (self.read_mmap(YCable.MIS_PAGE_FC, addr + 3) << 24) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 2) << 16) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 1) << 8) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 0) << 0) - addr += 4 - cnt['NackCnt'] = (self.read_mmap(YCable.MIS_PAGE_FC, addr + 3) << 24) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 2) << 16) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 1) << 8) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 0) << 0) - addr += 4 - cnt['TxRetryCnt'] = (self.read_mmap(YCable.MIS_PAGE_FC, addr + 3) << 24) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 2) << 16) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 1) << 8) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 0) << 0) - addr += 4 - cnt['TxAbortCnt'] = (self.read_mmap(YCable.MIS_PAGE_FC, addr + 3) << 24) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 2) << 16) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 1) << 8) | (self.read_mmap(YCable.MIS_PAGE_FC, addr + 0) << 0) - addr += 4 - uartPort['UART%d' % idx] = cnt + data = self.read_mmap(YCable.MIS_PAGE_FC, 128, 64) + ver = self.read_mmap(YCable.MIS_PAGE_VSC, 130, 1) + + uartPort = {} + cnt = {} + cnt['TxPktCnt'] = struct.unpack_from('