Пример #1
0
    def __init__(self, index):
        self.__index = index

        self.__platform = "x86_64-inventec_d6356-r0"
        self.__hwsku    = "INVENTEC-D6356"

        self.__port_to_i2c_mapping = {
                                      0:22,  1:23,  2:24,  3:25,  4:26,  5:27,  6:28,  7:29,
                                      8:30,  9:31,  10:32, 11:33, 12:34, 13:35, 14:36, 15:37,
                                      16:38, 17:39, 18:40, 19:41, 20:42, 21:43, 22:44, 23:45,
                                      24:46, 25:47, 26:48, 27:49, 28:50, 29:51, 30:52, 31:53,
                                      32:54, 33:55, 34:56, 35:57, 36:58, 37:59, 38:60, 39:61,
                                      40:62, 41:63, 42:64, 43:65, 44:66, 45:67, 46:68, 47:69,
                                      48:14, 49:15, 50:16, 51:17, 52:18, 53:19, 54:20, 55:21
                                    }
        self.__port_end = len(self.__port_to_i2c_mapping) - 1;

        self.__presence_attr = None
        self.__eeprom_path = None
        if self.__index in range(0, self.__port_end + 1):
            self.__presence_attr = "/sys/class/swps/port{}/present".format(self.__index)
            self.__lpmode_attr   = "/sys/class/swps/port{}/lpmod".format(self.__index)
            self.__reset_attr    = "/sys/class/swps/port{}/reset".format(self.__index)
            self.__eeprom_path   = "/sys/class/i2c-adapter/i2c-{0}/{0}-0050/eeprom".format(self.__port_to_i2c_mapping[self.__index])

        #print(self.__eeprom_path)

        SfpBase.__init__(self)
Пример #2
0
    def __init__(self, index):
        self.__index = index

        self.__platform = "x86_64-inventec_d7264-r0"
        self.__hwsku    = "INVENTEC-D7264"

        self.__port_to_i2c_mapping = {
                                    0:100,  1:101,  2:102,  3:103,  4:104,  5:105,  6:106,  7:107,
                                    8:108,  9:109, 10:110, 11:111, 12:112, 13:113, 14:114, 15:115,
                                    16:116, 17:117, 18:118, 19:119, 20:120, 21:121, 22:122, 23:123,
                                    24:124, 25:125, 26:126, 27:127, 28:128, 29:129, 30:130, 31:131,
                                    32:135, 33:134, 34:133, 35:132, 36:139, 37:138, 38:137, 39:136,
                                    40:143, 41:142, 42:141, 43:140, 44:147, 45:146, 46:145, 47:144,
                                    48:151, 49:150, 50:149, 51:148, 52:155, 53:154, 54:153, 55:152,
                                    56:159, 57:158, 58:157, 59:156, 60:163, 61:162, 62:161, 63:160
                                    }
        self.__port_end = len(self.__port_to_i2c_mapping) - 1;

        self.__presence_attr = None
        self.__eeprom_path = None
        if self.__index in range(0, self.__port_end + 1):
            self.__presence_attr = "/sys/class/swps/port{}/present".format(self.__index)
            self.__lpmode_attr   = "/sys/class/swps/port{}/lpmod".format(self.__index)
            self.__reset_attr    = "/sys/class/swps/port{}/reset".format(self.__index)
            self.__eeprom_path   = "/sys/class/i2c-adapter/i2c-{0}/{0}-0050/eeprom".format(self.__port_to_i2c_mapping[self.__index])

        SfpBase.__init__(self)
Пример #3
0
 def __init__(self, index, sfp_type, eeprom_path):
     SfpBase.__init__(self)
     self.sfp_type = sfp_type
     self.index = index
     self.eeprom_path = eeprom_path
     self.qsfpInfo = sff8436InterfaceId()
     self.qsfpDomInfo = sff8436Dom()
     self.sfpInfo = sff8472InterfaceId()
     self.sfpDomInfo = sff8472Dom(None, 1)
Пример #4
0
 def __init__(self, index, slot):
     SfpBase.__init__(self)
     self._index = index
     self._slot = slot
     self._sfputil = None
     sfp = slot.getXcvr()
     self._eepromPath = EEPROM_PATH.format(sfp.getI2cAddr().bus,
                                           sfp.getI2cAddr().address)
     self.sfp_type = sfp.getType().upper()
Пример #5
0
 def __init__(self, index, sfp_type, eeprom_path, sfp_control,
              sfp_ctrl_idx):
     SfpBase.__init__(self)
     self.sfp_type = sfp_type
     self.index = index
     self.eeprom_path = eeprom_path
     self.sfp_control = sfp_control
     self.sfp_ctrl_idx = sfp_ctrl_idx
     self.sfpInfo = sff8436InterfaceId()
     self.sfpDomInfo = sff8436Dom()
Пример #6
0
 def __init__(self, index, sfp_type, eeprom_path):
     SfpBase.__init__(self)
     self.index = index
     self.eeprom_path = eeprom_path
     #sfp_type is the native port type and media_type is the transceiver type
     #media_type will be detected in get_transceiver_info
     self.sfp_type = sfp_type
     self.media_type = self.sfp_type
     self.qsfpInfo = sff8436InterfaceId()
     self.qsfpDomInfo = sff8436Dom()
     self.sfpInfo = sff8472InterfaceId()
     self.sfpDomInfo = sff8472Dom(None, 1)
Пример #7
0
    def __init__(self, index):
        self.__index = index
        self.__port_end = len(self.__port_to_i2c_mapping) - 1

        self.__presence_attr = None
        self.__eeprom_path = None
        if self.__index in range(0, self.__port_end + 1):
            self.__presence_attr = "/sys/class/swps/port{}/present".format(
                self.__index)
            self.__eeprom_path = "/sys/bus/i2c/devices/{}-0050/eeprom".format(
                self.__port_to_i2c_mapping[self.__index])

        SfpBase.__init__(self)
Пример #8
0
    def __init__(self, index):
        self.__index = index

        self.__port_end = len(self.__port_to_i2c_mapping) - 1

        self.__presence_attr = None
        self.__eeprom_path = None
        if self.__index in range(0, self.__port_end + 1):
            self.__presence_attr = "/sys/class/swps/port{}/present".format(self.__index)
            self.__lpmode_attr   = "/sys/class/swps/port{}/lpmod".format(self.__index)
            self.__reset_attr    = "/sys/class/swps/port{}/reset".format(self.__index)
            self.__eeprom_path   = "{}/{}-0050/eeprom".format(Common.I2C_PREFIX, self.__port_to_i2c_mapping[self.__index])

        SfpBase.__init__(self)
Пример #9
0
    def __init__(self, index, sfp_type, eeprom_path, port_i2c_map):
        SfpBase.__init__(self)

        self.index = index
        self.port_num = index
        self.sfp_type = sfp_type
        self.eeprom_path = eeprom_path
        self.port_to_i2c_mapping = port_i2c_map
        self.port_name = sfp_type + str(index)
        self.port_to_eeprom_mapping = {}

        self.port_to_eeprom_mapping[index] = eeprom_path

        self.info_dict_keys = [
            'type', 'hardware_rev', 'serial', 'manufacturer', 'model',
            'connector', 'encoding', 'ext_identifier',
            'ext_rateselect_compliance', 'cable_type', 'cable_length',
            'nominal_bit_rate', 'specification_compliance', 'vendor_date',
            'vendor_oui'
        ]

        self.dom_dict_keys = [
            'rx_los', 'tx_fault', 'reset_status', 'power_lpmode', 'tx_disable',
            'tx_disable_channel', 'temperature', 'voltage', 'rx1power',
            'rx2power', 'rx3power', 'rx4power', 'tx1bias', 'tx2bias',
            'tx3bias', 'tx4bias', 'tx1power', 'tx2power', 'tx3power',
            'tx4power'
        ]

        self.threshold_dict_keys = [
            'temphighalarm', 'temphighwarning', 'templowalarm',
            'templowwarning', 'vcchighalarm', 'vcchighwarning', 'vcclowalarm',
            'vcclowwarning', 'rxpowerhighalarm', 'rxpowerhighwarning',
            'rxpowerlowalarm', 'rxpowerlowwarning', 'txpowerhighalarm',
            'txpowerhighwarning', 'txpowerlowalarm', 'txpowerlowwarning',
            'txbiashighalarm', 'txbiashighwarning', 'txbiaslowalarm',
            'txbiaslowwarning'
        ]

        self.dom_supported = False
        self.dom_temp_supported = False
        self.dom_volt_supported = False
        self.dom_rx_power_supported = False
        self.dom_tx_power_supported = False
        self.calibration = 0

        self._dom_capability_detect()
Пример #10
0
    def __init__(self, sfp_index):
        # Init index
        self.index = sfp_index
        self.port_num = self.index + 1

        # Init eeprom path
        eeprom_path = '/sys/bus/i2c/devices/{0}-0050/eeprom'
        self.port_to_eeprom_mapping = {}
        for x in range(self.PORT_START, self.PORT_END + 1):
            self.port_to_eeprom_mapping[x] = eeprom_path.format(
                self._port_to_i2c_mapping[x][0])

        print "self.port_to_eeprom_mapping[%d]=%s" % (
            self.port_num, self.port_to_eeprom_mapping[self.port_num])

        self.info_dict_keys = [
            'type', 'hardwarerev', 'serialnum', 'manufacturename', 'modelname',
            'Connector', 'encoding', 'ext_identifier',
            'ext_rateselect_compliance', 'cable_type', 'cable_length',
            'nominal_bit_rate', 'specification_compliance', 'vendor_date',
            'vendor_oui'
        ]

        self.dom_dict_keys = [
            'rx_los', 'tx_fault', 'reset_status', 'power_lpmode', 'tx_disable',
            'tx_disable_channel', 'temperature', 'voltage', 'rx1power',
            'rx2power', 'rx3power', 'rx4power', 'tx1bias', 'tx2bias',
            'tx3bias', 'tx4bias', 'tx1power', 'tx2power', 'tx3power',
            'tx4power'
        ]

        self.threshold_dict_keys = [
            'temphighalarm', 'temphighwarning', 'templowalarm',
            'templowwarning', 'vcchighalarm', 'vcchighwarning', 'vcclowalarm',
            'vcclowwarning', 'rxpowerhighalarm', 'rxpowerhighwarning',
            'rxpowerlowalarm', 'rxpowerlowwarning', 'txpowerhighalarm',
            'txpowerhighwarning', 'txpowerlowalarm', 'txpowerlowwarning',
            'txbiashighalarm', 'txbiashighwarning', 'txbiaslowalarm',
            'txbiaslowwarning'
        ]

        SfpBase.__init__(self)
Пример #11
0
 def __init__(self, port_num):
     self.port_num = port_num
     SfpBase.__init__(self)
Пример #12
0
    def __init__(self, sfp_index, sfp_type):
        SfpBase.__init__(self)
        self.index = sfp_index

        # index is 0-based
        if sfp_index < self._port_start or sfp_index >= self._port_end:
            print "Invalid port index %d" % sfp_index
            return

        self.is_qsfp_port = True if (sfp_type == 'QSFP'
                                     or sfp_type == 'QSFP28') else False
        self.is_osfp_port = True if (sfp_type == 'OSFP'
                                     or sfp_type == 'QSFP-DD') else False
        self.is_sfp_port = True if (sfp_type == 'SFP') else False

        path = self.present_path
        port_path = path.format(self.port_to_i2cbus_0[1], 1)
        if not os.path.exists(port_path):
            self.port_to_i2cbus_mapping = self.port_to_i2cbus_1
        else:
            self.port_to_i2cbus_mapping = self.port_to_i2cbus_0

        index = (self.index % CPLD_PORT_NUM) + 1
        cpld_index = (self.index / CPLD_PORT_NUM) + 1
        if cpld_index == 5:
            path = self.sfpplus_eeprom_path
            if index == 1:
                self.port_to_eeprom[self.index] = path.format(
                    self.port_to_i2cbus_mapping[cpld_index])
            else:
                self.port_to_eeprom[self.index] = path.format(
                    self.port_to_i2cbus_mapping[cpld_index + 1])
        else:
            path = self.eeprom_path
            self.port_to_eeprom[self.index] = path.format(
                self.port_to_i2cbus_mapping[cpld_index], index)

        self.info_dict_keys = [
            'type', 'hardwarerev', 'serialnum', 'manufacturename', 'modelname',
            'Connector', 'encoding', 'ext_identifier',
            'ext_rateselect_compliance', 'cable_type', 'cable_length',
            'nominal_bit_rate', 'specification_compliance', 'vendor_date',
            'vendor_oui'
        ]

        self.dom_dict_keys = [
            'rx_los', 'tx_fault', 'reset_status', 'power_lpmode', 'tx_disable',
            'tx_disable_channel', 'temperature', 'voltage', 'rx1power',
            'rx2power', 'rx3power', 'rx4power', 'tx1bias', 'tx2bias',
            'tx3bias', 'tx4bias', 'tx1power', 'tx2power', 'tx3power',
            'tx4power'
        ]

        self.threshold_dict_keys = [
            'temphighalarm', 'temphighwarning', 'templowalarm',
            'templowwarning', 'vcchighalarm', 'vcchighwarning', 'vcclowalarm',
            'vcclowwarning', 'rxpowerhighalarm', 'rxpowerhighwarning',
            'rxpowerlowalarm', 'rxpowerlowwarning', 'txpowerhighalarm',
            'txpowerhighwarning', 'txpowerlowalarm', 'txpowerlowwarning',
            'txbiashighalarm', 'txbiashighwarning', 'txbiaslowalarm',
            'txbiaslowwarning'
        ]

        SfpBase.__init__(self)