From eaf37ac870a3046e584c5c0fcb5a4f54ebfc759e Mon Sep 17 00:00:00 2001 From: junchao Date: Wed, 19 Oct 2022 15:18:35 +0800 Subject: [PATCH 1/2] Fix issue: sff8436 does not support decoding power class 5~7 --- sonic_platform_base/sonic_sfp/sff8436.py | 37 ++++++++++++++++++++---- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/sonic_platform_base/sonic_sfp/sff8436.py b/sonic_platform_base/sonic_sfp/sff8436.py index 13b1277e7..5cbb370fe 100644 --- a/sonic_platform_base/sonic_sfp/sff8436.py +++ b/sonic_platform_base/sonic_sfp/sff8436.py @@ -221,7 +221,34 @@ class sff8436InterfaceId(sffbase): 'd0': 'Power Class 4(3.5W max), CLEI present', 'd4': 'Power Class 4(3.5W max), CLEI present, CDR present in Rx', 'd8': 'Power Class 4(3.5W max), CLEI present, CDR present in Tx', - 'dc': 'Power Class 4(3.5W max), CLEI present, CDR present in Rx Tx' + 'dc': 'Power Class 4(3.5W max), CLEI present, CDR present in Rx Tx', + + 'c1': 'Power Class 5(4.0W max)', + 'c5': 'Power Class 5(4.0W max), CDR present in Rx', + 'c9': 'Power Class 5(4.0W max), CDR present in Tx', + 'cd': 'Power Class 5(4.0W max), CDR present in Rx Tx', + 'd1': 'Power Class 5(4.0W max), CLEI present', + 'd5': 'Power Class 5(4.0W max), CLEI present, CDR present in Rx', + 'd9': 'Power Class 5(4.0W max), CLEI present, CDR present in Tx', + 'dd': 'Power Class 5(4.0W max), CLEI present, CDR present in Rx Tx', + + 'c2': 'Power Class 6(4.5W max)', + 'c6': 'Power Class 6(4.5W max), CDR present in Rx', + 'ca': 'Power Class 6(4.5W max), CDR present in Tx', + 'ce': 'Power Class 6(4.5W max), CDR present in Rx Tx', + 'd2': 'Power Class 6(4.5W max), CLEI present', + 'd6': 'Power Class 6(4.5W max), CLEI present, CDR present in Rx', + 'da': 'Power Class 6(4.5W max), CLEI present, CDR present in Tx', + 'de': 'Power Class 6(4.5W max), CLEI present, CDR present in Rx Tx', + + 'c3': 'Power Class 7(5.0W max)', + 'c7': 'Power Class 7(5.0W max), CDR present in Rx', + 'cb': 'Power Class 7(5.0W max), CDR present in Tx', + 'cf': 'Power Class 7(5.0W max), CDR present in Rx Tx', + 'd3': 'Power Class 7(5.0W max), CLEI present', + 'd7': 'Power Class 7(5.0W max), CLEI present, CDR present in Rx', + 'db': 'Power Class 7(5.0W max), CLEI present, CDR present in Tx', + 'df': 'Power Class 7(5.0W max), CLEI present, CDR present in Rx Tx', } connector = { @@ -346,7 +373,7 @@ class sff8436InterfaceId(sffbase): 'size' : 1, 'type' : 'bitmap', 'decode': {}}} - + sfp_info_bulk = {'type': {'offset':0, 'size':1, @@ -406,7 +433,7 @@ class sff8436InterfaceId(sffbase): 'size':1, 'type':'int'} } - + vendor_name = { 'Vendor Name': {'offset': 0, @@ -441,7 +468,7 @@ class sff8436InterfaceId(sffbase): 'size':3, 'type' : 'hex'} } - + vendor_date = { 'VendorDataCode(YYYY-MM-DD Lot)': {'offset':0, @@ -1066,7 +1093,7 @@ def calc_rx_power(self, eeprom_data, offset, size): 'size':2, 'type': 'func', 'decode': { 'func':calc_temperature}}, - 'Vcc': + 'Vcc': {'offset':26, 'size':2, 'type': 'func', From f24f1e7a65dcddd0c0f818e2ef59b6030329478b Mon Sep 17 00:00:00 2001 From: junchao Date: Fri, 21 Oct 2022 11:23:47 +0800 Subject: [PATCH 2/2] Add power class 8 --- sonic_platform_base/sonic_sfp/sff8436.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sonic_platform_base/sonic_sfp/sff8436.py b/sonic_platform_base/sonic_sfp/sff8436.py index 5cbb370fe..cc17cfa88 100644 --- a/sonic_platform_base/sonic_sfp/sff8436.py +++ b/sonic_platform_base/sonic_sfp/sff8436.py @@ -249,6 +249,15 @@ class sff8436InterfaceId(sffbase): 'd7': 'Power Class 7(5.0W max), CLEI present, CDR present in Rx', 'db': 'Power Class 7(5.0W max), CLEI present, CDR present in Tx', 'df': 'Power Class 7(5.0W max), CLEI present, CDR present in Rx Tx', + + '20': 'Power Class 8', + '24': 'Power Class 8, CDR present in Rx', + '28': 'Power Class 8, CDR present in Tx', + '2c': 'Power Class 8, CDR present in Rx Tx', + '30': 'Power Class 8, CLEI present', + '34': 'Power Class 8, CLEI present, CDR present in Rx', + '38': 'Power Class 8, CLEI present, CDR present in Tx', + '3c': 'Power Class 8, CLEI present, CDR present in Rx Tx', } connector = {