HowTo Find Cable Info on Mellanox Adapters and Switches

Version 20

    This post shows a variety of ways to find the cable info on Mellanox adapters and switches.

     

    References

     

    Overview

    SFF-8636 defines the standard transceiver info:

     

     

     

     

    SFF-8472 defines additional fields (e.g. threshold levels) for monitoring optical cables (DDMI).

     

     

     

     

    The next sections show how to extract the cable info from Mellanox Switches and Adapters.

     

    Mellanox Switches (MLNX-OS)

    When using a Mellanox switch (Ethernet or InfiniBand), run the following command (e.g. for port 1/1):

    There is a slight difference between the outputs of Ethernet and infiniBand ports, due to the different speeds.

     

    Ethernet Switch

    100G Coppper Cable Info

    switch (config) # show interfaces ethernet 1/1 transceiver

    Port 1/1 state

            identifier             : QSFP28

            cable/ module type     : Passive copper cable

            ethernet speed and type: 100GBASE-CR4

            vendor                 : Mellanox

            cable length           : 1m

            part number            : MCP1600-C001

            revision               : A2

            serial number          : MT1525VS14700

    switch (config) # 

     

    40->10G Copper Cable Info

    Note: all 10G ports have the same QSFP info.

    # show interfaces ethernet 1/1/1 transceiver

    Port 1/1/1 state

            identifier             : QSFP+ side of QSFP+ to 4xSFP+ hybrid cable

            cable/ module type     : Passive copper, unequalized

            ethernet speed and type: 4x10GBASE-R direct attached copper

            vendor                 : Mellanox

            cable length           : 3m

            part number            : MCP7900-X02AA

            revision               : A1

            serial number          : MT1422VS08180

     

     

    mti-mar-sx11 [standalone: master] (config) # show interfaces ethernet 1/1/2 transceiver

    Port 1/1/2 state

            identifier             : QSFP+ side of QSFP+ to 4xSFP+ hybrid cable

            cable/ module type     : Passive copper, unequalized

            ethernet speed and type: 4x10GBASE-R direct attached copper

            vendor                 : Mellanox

            cable length           : 3m

            part number            : MCP7900-X02AA

            revision               : A1

            serial number          : MT1422VS08180

     

    SR Optical Module Info

    # show interfaces ethernet 1/1 transceiver

    Port 1/1 state

            identifier             : QSFP28

            cable/ module type     : Optical module

            ethernet speed and type: 100GBASE-SR

            vendor                 : Mellanox

            supported cable length : 70m OM3 ,100m OM4

            part number            : MMA1B00-C100_QP1

            revision               : A1

            serial number          : MT1648FT02174

    Phy Counters

    # show interfaces ethernet 1/5 transceiver counters

     

    Rx

    phy received bits               5727412580956241   

    phy symbol errors               0                  

    phy corrected bits              0              

     

    Optical Diagnostics

    Note: This is relevant only for optical cables/modules.

    # show interfaces ethernet 1/1 transceiver diagnostics

    Port 1/1 transceiver diagnostic data:

       Temperature (-127C to +127C)

            Temperature                   : 33 C

            Hi Temp Alarm Thresh          : 80 C

            Low Temp Alarm Thresh         : -10 C

            Temperature Alarm             : None

     

       Voltage ( 0 to 6.5535 V)

            Voltage                       : 3.28110 V

            Hi Volt Alarm Thresh          : 3.50000 V

            Low Volt Alarm Thresh         : 3.10000 V

            Voltage Alarm                 : None

     

       Tx Bias Current ( 0 to 131 mA)

            Ch1 Tx Current                : 6.75000 mA

            Ch2 Tx Current                : 0.00000 mA

            Ch3 Tx Current                : 0.00000 mA

            Ch4 Tx Current                : 0.00000 mA

            Hi Tx Crnt Alarm Thresh       : 8.50000 mA

            Low Tx Crnt Alarm Thresh      : 5.49200 mA

            Ch1 Tx Current Alarm          : None

            Ch2 Tx Current Alarm          : None

            Ch3 Tx Current Alarm          : None

            Ch4 Tx Current Alarm          : None

     

       Tx Power ( 0 to 6.5535 mW)

            Ch1 Tx Power                  : 1.21020 mW

            Ch2 Tx Power                  : 0.00000 mW

            Ch3 Tx Power                  : 0.00000 mW

            Ch4 Tx Power                  : 0.00000 mW

            Hi Tx Power Alarm Thresh      : 3.46730 mW

            Low Tx Power Alarm Thresh     : 0.07240 mW

            Ch1 Tx Power Alarm            : None

            Ch2 Tx Power Alarm            : None

            Ch3 Tx Power Alarm            : None

            Ch4 Tx Power Alarm            : None

     

       Rx Power ( 0 to 6.5535 mW)

            Ch1 Rx Power                  : 1.03180 mW

            Ch2 Rx Power                  : 0.00000 mW

            Ch3 Rx Power                  : 0.00000 mW

            Ch4 Rx Power                  : 0.00000 mW

            Hi Rx Power Alarm Thresh      : 3.46730 mW

            Low Rx Power Alarm Thresh     : 0.04670 mW

            Ch1 Rx Power Alarm            : None

            Ch2 Rx Power Alarm            : CH2 Tx Pwr Too Low

            Ch3 Rx Power Alarm            : CH3 Tx Pwr Too Low

            Ch4 Rx Power Alarm            : CH4 Tx Pwr Too Low

     

            Vendor Date Code (dd-mm-yyyy) : 20-10-2016

     

    Raw Output Example

    Can be used for debugging.

    switch (config) # show interfaces ethernet 1/1 transceiver raw

    Port 1/1 raw transceiver data:

     

    I2C Address 0x50, Page 0, 0:255:

      0000  11 07 00 ee 00 00 00 00 00 05 55 00 00 00 00 00  ..........U.....

      0010  00 00 00 00 00 00 20 90 00 00 7f e1 00 00 00 00  ...... .........

      0020  00 00 27 c8 00 00 00 00 00 00 0d 2f 00 00 00 00  ..'......../....

      0030  00 00 2f 5f 00 00 00 00 00 00 00 00 00 00 00 00  ../_............

      0040  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      0050  00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00  ................

      0060  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      0070  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      0080  11 8c 0c 80 00 00 00 00 00 00 00 05 ff 00 00 23  ...............#

      0090  00 00 32 00 4d 65 6c 6c 61 6e 6f 78 20 20 20 20  ..2.Mellanox   

      00a0  20 20 20 20 00 00 02 c9 4d 4d 41 31 42 30 30 2d      ....MMA1B00-

      00b0  43 31 30 30 5f 51 50 31 41 31 42 68 0b b8 46 92  C100_QP1A1Bh..F.

      00c0  02 07 f5 9e 4d 54 31 36 34 38 46 54 30 32 31 37  ....MT1648FT0217

      00d0  34 20 20 20 31 36 31 30 32 30 00 00 0c 00 67 a5  4   161020....g.

      00e0  36 34 30 46 4d 41 31 34 31 47 33 31 39 32 20 20  640FMA141G3192 

      00f0  00 00 00 00 00 00 00 00 00 00 01 00 0e 00 00 00

     

    I2C Address 0x50, Pages 1, 128:255:

      0080  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      0090  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00a0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00b0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00c0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00d0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00e0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00f0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

     

    I2C Address 0x50, Pages 2, 128:255:

      0080  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      0090  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00a0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00b0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00c0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00d0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00e0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00f0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

     

    I2C Address 0x50, Pages 3, 128:255:

      0080  50 00 f6 00 46 00 00 00 00 00 00 00 00 00 00 00  P...F...........

      0090  88 b8 79 18 87 5a 7a 76 00 00 00 00 00 00 00 00  ..y..Zzv........

      00a0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00b0  87 71 01 d3 43 e2 03 a5 10 9a 0a ba 0f a0 0b b8  .q..C...........

      00c0  87 71 02 d4 43 e2 05 a5 00 00 00 00 00 00 00 00  .q..C...........

      00d0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

      00e0  a7 03 00 00 00 00 00 00 00 00 00 00 77 77 11 11  ............ww..

      00f0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

     

    InfiniBand Switch

    FDR Cable Info

    switch (config) # show interfaces ib 1/1 transceiver

    Slot 1 port 1 state

            identifier             : QSFP+

            cable/ module type     : Passive copper, unequalized

            infiniband speeds      : SDR , DDR , QDR , FDR

            vendor                 : Mellanox

            cable length           : 2m

            part number            : MC2207130-0A1

            revision               : A3

            serial number          : MT1324VS02473

    switch (config) #     

     

    Mellanox Adapters

    InfiniBand Adapters

    ibdiagnet Usage

     

    For an InfiniBand adapter port, run the following command on Linux or Windows OS:

     

    # ibdiagnet --get_cable_info

    ----------

    Load Plugins from:

    /usr/share/ibdiagnet2.1.1/plugins/

    (You can specify more paths to be looked in with "IBDIAGNET_PLUGINS_PATH" env variable)

    Plugin Name                                   Result     Comment

    libibdiagnet_cable_diag_plugin                Succeeded  Plugin loaded

    libibdiagnet_cable_diag_plugin-2.1.1          Failed     Plugin options issue - Option "get_cable_info" from requester "Cable Diagnostic (Plugin)" already exists in requester "Cable Diagnostic (Plugin)"

    ---------------------------------------------

    Discovery

    -I- Discovering ... 10 nodes (2 Switches & 8 CA-s) discovered.

    -I- Fabric Discover finished successfully

    -I- Discovered 10 nodes (2 Switches & 8 CA-s).

    -I- Retrieving ... 10/10 nodes (2/2 Switches & 8/8 CA-s) retrieved.

    -I- VS Capability GMP finished successfully

    -I- Retrieving ... 10/10 nodes (2/2 Switches & 8/8 CA-s) retrieved.

    -I- VS Capability SMP finished successfully

    -I- Retrieving ... 10/10 nodes (2/2 Switches & 8/8 CA-s) retrieved.

    -I- VS ExtendedPortInfo finished successfully

    -I- Duplicated GUIDs detection finished successfully

    -I- Duplicated Node Description detection finished successfully

    -I- Retrieving ... 10/10 nodes (2/2 Switches & 8/8 CA-s) retrieved.

    -I- Switch Info retrieving finished successfully

    ---------------------------------------------

    Lids Check

    -I- Lids Check finished successfully

    ---------------------------------------------

    Links Check

    -I- Links Check finished successfully

    ---------------------------------------------

    Subnet Manager

    -I- SM Info retrieving finished successfully

    -I- Subnet Manager Check finished successfully

    ---------------------------------------------

    Port Counters

    -I- Retrieving PMClassPortInfo ... 10/10 nodes (2/2 Switches & 8/8 CA-s) retrieved.

    -I- Retrieving ... 10/10 nodes (2/2 Switches & 8/8 CA-s) retrieved.

    -I- Ports counters retrieving finished successfully

    -I- Going to sleep for 1 seconds until next counters sample

    -I- Time left to sleep ... 1 seconds.

    -I- Retrieving ... 10/10 nodes (2/2 Switches & 8/8 CA-s) retrieved.

    -I- Ports counters retrieving (second time) finished successfully

    -I- Ports counters value Check finished successfully

    -I- Ports counters Difference Check (during run) finished successfully

    ---------------------------------------------

    Nodes Information

    -E- FW Check finished with errors

    -I- Errors/Warnings list will be reported in log file

     

    ---------------------------------------------

    Speed / Width checks

    -I- Link Speed Check (Compare to supported link speed)

    -I- Links Speed Check finished successfully

     

    -I- Link Width Check (Compare to supported link width)

    -I- Links Width Check finished successfully

     

    ---------------------------------------------

    Partition Keys

    -I- Retrieving ... 10/10 nodes (2/2 Switches & 8/8 CA-s) retrieved.

    -I- Partition Keys retrieving finished successfully

     

    -I- Partition Keys finished successfully

    ---------------------------------------------

    Alias GUIDs

    -I- Retrieving ... 10/10 nodes (2/2 Switches & 8/8 CA-s) retrieved.

    -I- Alias GUIDs retrieving finished successfully

     

    -I- Alias GUIDs finished successfully

     

    ---------------------------------------------

    Cable Diagnostic (Plugin)

    -I- Retrieving ... 176/88 ports retrieved.

    -I- Cable Info retrieving finished successfully

    ---------------------------------------------

    Summary

    -I- Stage                     Warnings   Errors     Comment

    -I- Discovery                 0          0

    -I- Lids Check                0          0

    -I- Links Check               0          0

    -I- Subnet Manager            0          0

    -I- Port Counters             0          0

    -I- Nodes Information         6          0

    -I- Speed / Width checks      0          0

    -I- Partition Keys            0          0

    -I- Alias GUIDs               0          0

    -I- Cable Diagnostic (Plugin) 0          0

     

    -I- You can find detailed errors/warnings in: /var/tmp/ibdiagnet2/ibdiagnet2.log

     

    -I- ibdiagnet database file   : /var/tmp/ibdiagnet2/ibdiagnet2.db_csv

    -I- LST file                  : /var/tmp/ibdiagnet2/ibdiagnet2.lst

    -I- Subnet Manager file       : /var/tmp/ibdiagnet2/ibdiagnet2.sm

    -I- Ports Counters file       : /var/tmp/ibdiagnet2/ibdiagnet2.pm

    -I- Nodes Information file    : /var/tmp/ibdiagnet2/ibdiagnet2.nodes_info

    -I- Partition keys file       : /var/tmp/ibdiagnet2/ibdiagnet2.pkey

    -I- Alias guids file          : /var/tmp/ibdiagnet2/ibdiagnet2.aguid

    -I- Cables Information file   : /var/tmp/ibdiagnet2/ibdiagnet2.cables

     

    #                                          

     

     

    The output will be in the file: /var/tmp/ibdiagnet2/ibdiagnet2.cables

     


    The file will include all fabric cable information in the following format:

    Use the GUID or port name to find the exact server or switch port.

     

    -------------------------------------------------------

    Port=2 Lid=0x0001 GUID=0x0002c90300efe952 Port Name=gen-l-vrt-005/U1/P2

    -------------------------------------------------------

    Vendor: Mellanox

    OUI: 0x2c9

    PN: MC2207130-001

    SN: MT1323VS05817

    Rev: A3

    Length: 1 m

    Type: Copper cable- unequalized

    SupportedSpeed: SDR/DDR/QDR/FDR

     

    -------------------------------------------------------

    Port=5 Lid=0x0007 GUID=0x0002c90300ad3140 Port Name=l-mar-sx21/U1/P5

    -------------------------------------------------------

    Vendor: Mellanox

    OUI: 0x2c9

    PN: MC2207130-001

    SN: MT1323VS05817

    Rev: A3

    Length: 1 m

    Type: Copper cable- unequalized

    SupportedSpeed: SDR/DDR/QDR/FDR

     

     

    Note: When using Windows OS, the command will be the same "ibdiagnet --get_cable_info", similar output.

    The cable info output file will be located in /tmp/ibdiagnet2.cables with a similar format.

     

     

    MFT Usage

    Refer to the Ethernet section.

     

    Ethernet Adapters

     

    Ethtool Usage

    Run the following command:

    # ethtool -m <interface>

     

     

    By default, the Ethtool attempts to parse the output of the EEPROM and show it in a human-readable way. The Ethtool does not recognize all types of cables, so for some cables it shows the EEPROM memory map without any parsing.

    Not all cable types are supported by the Ethtool. You may check the dmesg in case it does not work.

     


    Here is an example:

     

    # ethtool -m enp2s0

    Offset Values

    ------ ------

    0x0000: 0d 02 06 00 00 00 00 00 00 00 00 00 00 00 00 00

    0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0x0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0x0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0x0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0x0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0x0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0x0080: 0d 00 23 08 00 00 00 00 00 00 00 05 8d 00 00 00

    0x0090: 00 00 01 a0 4d 65 6c 6c 61 6e 6f 78 20 20 20 20

    0x00a0: 20 20 20 20 0f 00 02 c9 4d 43 32 32 30 37 31 33

    0x00b0: 30 2d 30 30 31 20 20 20 41 33 03 05 07 00 46 5b

    0x00c0: 00 00 00 00 4d 54 31 35 31 32 56 53 30 31 38 33

    0x00d0: 39 20 20 20 31 35 30 33 32 36 20 20 00 00 00 e9

    0x00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0x00f0: 00 00 00 00 00 00 00 00 00 00 02 00 00 30 00 00

     

     

    To get the actual output, copy and paste the hexa output to a translator tool (such as ASCII Converter - Hex, decimal, binary, and ASCII converter):

    • Vendor - Mellanox
    • P/N - MC2207130-001 A 3
    • S/N MT1512VS0183

     


    Another option is to use the following example:

     

    # ethtool -m enp2s0 raw on offset 84 length 128

    Mellanox   MC2207130-001   A3 MT1512VS0183

     

     

    Newer versions of the ethtool show a nicer output (for SFP interfaces).

    # ethtool --version

    ethtool version 3.15

     

    # ethtool -m enp2s0f0

      Identifier                                : 0x03 (SFP)

      Extended identifier                       : 0x04 (GBIC/SFP defined by 2-wire interface ID)

      Connector                                 : 0x21 (Copper pigtail)

      Transceiver codes                         : 0x01 0x00 0x00 0x04 0x00 0x04 0x80 0xd5

      Transceiver type                          : Infiniband: 1X Copper Passive

      Transceiver type                          : Ethernet: 1000BASE-CX

      Transceiver type                          : FC: Copper Passive

      Transceiver type                          : FC: Twin Axial Pair (TW)

      Transceiver type                          : FC: 1200 MBytes/sec

      Transceiver type                          : FC: 800 MBytes/sec

      Transceiver type                          : FC: 400 MBytes/sec

      Transceiver type                          : FC: 200 MBytes/sec

      Transceiver type                          : FC: 100 MBytes/sec

      Encoding                                  : 0x00 (unspecified)

      BR, Nominal                               : 10300MBd

      Rate identifier                           : 0x00 (unspecified)

      Length (SMF,km)                           : 0km

      Length (SMF)                              : 0m

      Length (50um)                             : 0m

      Length (62.5um)                           : 0m

      Length (Copper)                           : 3m

      Length (OM3)                              : 0m

      Passive Cu cmplnce.                       : 0x01 (SFF-8431 appendix E) [SFF-8472 rev10.4 only]

      Vendor name                               : Mellanox       

      Vendor OUI                                : 00:02:c9

      Vendor PN                                 : MCP7900-X02AA  

      Vendor rev                                : A1 

      Optical diagnostics support               : No

     

    # ethtool -m enp2s0f0 offset 0 length 1

    Offset Values

    ------ ------

    0x0000: 03        <--- This is the identifier field (SFP) above.

     

     

    MFT Usage

    Query Cables

    Issue the following commands:

    1. Start MFT

    2. Add Cables

    3. Run mlxcables

    # mst start

    Starting MST (Mellanox Software Tools) driver set

    Loading MST PCI module - Success

    Loading MST PCI configuration module - Success

    Create devices

    Unloading MST PCI module (unused) - Success

     

    # mst cable add

    -I- Added 2 cable devices ..

     

    # mlxcables

    Querying Cables ....

     

    Cable #1:

    ---------

    Cable name    : mt4117_pciconf0.1_cable_1

    >> No FW data to show

    -------- Cable EEPROM --------

    Identifier    : SFP/SFP+/SFP28 (03h)

    Technology    : Passive Cable (04h)

    Compliance    : 40GBASE-SR4, Unspecified

    OUI           : 0x0002c9

    Vendor        : Mellanox       

    Serial number : MT1539VS01157  

    Part number   : MCP2M00-A002   

    Revision      : A1

    Temperature   : 0 C

    Length        : 2 m

     

    Cable #2:

    ---------

    Cable name    : mt4117_pciconf0_cable_0

    >> No FW data to show

    -------- Cable EEPROM --------

    Identifier    : SFP/SFP+/SFP28 (03h)

    Technology    : Passive Cable (04h)

    Compliance    : 40GBASE-SR4, Unspecified

    OUI           : 0x0002c9

    Vendor        : Mellanox       

    Serial number : MT1422VS08180  

    Part number   : MCP7900-X02AA  

    Revision      : A1

    Temperature   : 0 C

    Length        : 3 m

     

    Get All Registers

    # mlxcables -d mt4117_pciconf0_cable_0 --read_all_regs

    Available registers values per page:

    ==================================================================

    page00_low registers' values:

    ==================================================================

    identifier                                   | 0x03

    ext_identifier                               | 0x04

    connector_type                               | 0x21

    infiniband_compliance_code                   | 0x01

    tengiga_ethernet_compliance_code             | 0x00

    sonet_escon_compliance_code                  | 0x0000

    ethernet_compliance_code                     | 0x04

    fc_transmitter_technology                    | 0x00

    fc_link_length                               | 0x00

    sfp_cable_technology                         | 0x01

    fc_transmitter_technology_cont               | 0x00

    fc_transmission_media                        | 0x80

    fc_speed                                     | 0xd5

    encoding                                     | 0x00

    nominal_bit_rate                             | 0x67

    rate_identifier                              | 0x00

    length_smf                                   | 0x00

    length_smf_100                               | 0x00

    length_om2                                   | 0x00

    length_om1                                   | 0x00

    length_cables                                | 0x03

    length_om3                                   | 0x00

    vendor_name_word1                            | 0x4d656c6c

    vendor_name_word2                            | 0x616e6f78

    vendor_name_word3                            | 0x20202020

    vendor_name_word4                            | 0x20202020

    ext_compliance_specification_code            | 0x00

    vendor_oui                                   | 0x0002c9

    vendor_pn_word1                              | 0x4d435037

    vendor_pn_word2                              | 0x3930302d

    vendor_pn_word3                              | 0x58303241

    vendor_pn_word4                              | 0x41202020

    vendor_rev                                   | 0x41312020

    optical_and_cable_var_spec_compliance        | 0x0100

    cc_base                                      | 0x27

    linear_receiver_output_implemented           | 0x00

    power_level_declration                       | 0x00

    cooled_implemented                           | 0x00

    cdr_implemented                              | 0x00

    paging_implemented                           | 0x00

    high_power_declration                        | 0x00

    rx_los_implemented                           | 0x00

    rx_inv_los_implemented                       | 0x00

    tx_fault_implemented                         | 0x00

    tx_disable_implemented                       | 0x00

    rate_select_func_implemented                 | 0x00

    tx_tunable_indication                        | 0x00

    rdt_implemented                              | 0x00

    max_bit_rate                                 | 0x00

    min_bit_rate                                 | 0x00

    vendor_sn_word1                              | 0x4d543134

    vendor_sn_word2                              | 0x32325653

    vendor_sn_word3                              | 0x30383138

    vendor_sn_word4                              | 0x30202020

    vendor_data_code_word1                       | 0x31343037

    vendor_data_code_word2                       | 0x30322020

    diagnostic_monitoring_type                   | 0x00

    soft_rate_select_sff8431_func_implemented    | 0x00

    soft_appliction_select_func_implemented      | 0x00

    soft_rate_select_func_implemented            | 0x00

    soft_rx_los_implemented                      | 0x00

    soft_tx_fault_implemented                    | 0x00

    soft_tx_disable_implemented                  | 0x00

    alarm_warning_flags_implemented              | 0x00

    sff8472_compliance                           | 0x00

    check_code_ext                               | 0xe2

    vendor_specific_word1                        | 0x00000000

    vendor_specific_word2                        | 0x00000000

    vendor_specific_word3                        | 0x00000000

    vendor_specific_word4                        | 0x00000000

    vendor_specific_word5                        | 0x00000000

    vendor_specific_word6                        | 0x00000000

    vendor_specific_word7                        | 0x00000000

    vendor_specific_word8                        | 0x00000000

    ==================================================================

     

    Optical Diagnostics (DDMi)

    # mlxcables -d mt4115_pciconf0_cable_0 -DDM

    Cable DDM:

    ----------

    Temperature    : 56C

    Voltage        : 3.2207V

    Channel 1:

            RX Power : 0.0346dBm

            TX Power : -0.6575dBm

            TX Bias  : 126.3800mA

    Channel 2:

            RX Power : -0.1818dBm

            TX Power : -1.3383dBm

            TX Bias  : 126.0060mA

    Channel 3:

            RX Power : -1.1407dBm

            TX Power : -0.6208dBm

            TX Bias  : 0.5000mA

    Channel 4:

            RX Power : -0.9366dBm

            TX Power : -0.6158dBm

            TX Bias  : 0.5000mA

    ----- Thresholds -----

    Temperature:

            High Warning  : 70C

            Low  Warning  : 0C

            High Alarm    : 80C

            Low  Alarm    : -10C

            Waring mask   : 0

            Alarm mask    : 0

    Voltage:

            High Warning : 3.4650V

            Low  Warning : 3.1350V

            High Alarm   : 3.5000V

            Low  Alarm   : 3.1000V

            Waring mask  : 0

            Alarm mask   : 0

    Channel 1:

            RX Power high warn   : 2.4000dBm

            RX Power low  warn   : -10.3012dBm

            RX Power high alarm  : 5.3999dBm

            RX Power low  alarm  : -13.3068dBm

            RX Power Waring mask : 0

            RX Power Alarm mask  : 0

            TX Power high warn   : 2.4000dBm

            TX Power low  warn   : -8.4013dBm

            TX Power high alarm  : 5.3999dBm

            TX Power low  alarm  : -11.4026dBm

            TX Power Waring mask : 0

            TX Power Alarm mask  : 0

            TX Bias high warn    : 0.0000mA

            TX Bias low  warn    : 0.0000mA

            TX Bias high alarm   : 0.0000mA

            TX Bias low  alarm   : 0.0000mA

            TX Bias Waring mask  : 0

            TX Bias Alarm mask   : 0

    Channel 2:

            RX Power high warn   : 2.4000dBm

            RX Power low  warn   : -10.3012dBm

            RX Power high alarm  : 5.3999dBm

            RX Power low  alarm  : -13.3068dBm

            RX Power Waring mask : 0

            RX Power Alarm mask  : 0

            TX Power high warn   : 2.4000dBm

            TX Power low  warn   : -8.4013dBm

            TX Power high alarm  : 5.3999dBm

            TX Power low  alarm  : -11.4026dBm

            TX Power Waring mask : 0

            TX Power Alarm mask  : 0

            TX Bias high warn    : 0.0000mA

            TX Bias low  warn    : 0.0000mA

            TX Bias high alarm   : 0.0000mA

            TX Bias low  alarm   : 0.0000mA

            TX Bias Waring mask  : 0

            TX Bias Alarm mask   : 0

    Channel 3:

            RX Power high warn   : 2.4000dBm

            RX Power low  warn   : -10.3012dBm

            RX Power high alarm  : 5.3999dBm

            RX Power low  alarm  : -13.3068dBm

            RX Power Waring mask : 0

            RX Power Alarm mask  : 0

            TX Power high warn   : 2.4000dBm

            TX Power low  warn   : -8.4013dBm

            TX Power high alarm  : 5.3999dBm

            TX Power low  alarm  : -11.4026dBm

            TX Power Waring mask : 0

            TX Power Alarm mask  : 0

            TX Bias high warn    : 0.0000mA

            TX Bias low  warn    : 0.0000mA

            TX Bias high alarm   : 0.0000mA

            TX Bias low  alarm   : 0.0000mA

            TX Bias Waring mask  : 0

            TX Bias Alarm mask   : 0

    Channel 4:

            RX Power high warn   : 2.4000dBm

            RX Power low  warn   : -10.3012dBm

            RX Power high alarm  : 5.3999dBm

            RX Power low  alarm  : -13.3068dBm

            RX Power Waring mask : 0

            RX Power Alarm mask  : 0

            TX Power high warn   : 2.4000dBm

            TX Power low  warn   : -8.4013dBm

            TX Power high alarm  : 5.3999dBm

            TX Power low  alarm  : -11.4026dBm

            TX Power Waring mask : 0

           TX Power Alarm mask  : 0

            TX Bias high warn    : 0.0000mA

            TX Bias low  warn    : 0.0000mA

            TX Bias high alarm   : 0.0000mA

            TX Bias low  alarm   : 0.0000mA

            TX Bias Waring mask  : 0

            TX Bias Alarm mask   : 0

     

    Additional Information

    For more options, run mlxcables with the -h flag.

    # mlxcables -d mt4117_pciconf0_cable_0 -h

    NAME

        mlxcables

    SYNOPSIS

        mlxcables

            [-d|--dev <DeviceName>] [-h|--help]

            [-v|--version] [-q|--query] [--DDM]

            [-r|--read] [--print_raw] [-b|--bytes_line <bytesPerLine>]

            [-p|--page <pageNum>] [-o|--offset <pageOffset>]

            [-l|--length <length>] [-a|--address <address>]

            [--read_reg <Register>] [--read_all_regs]

            [--show_all_regs]

    DESCRIPTION

        mlxcables

            Mellanox Cables Tool

    OPTIONS

        mlxcables

            -d|--dev <DeviceName>         : Perform operation for specified cable

            -h|--help                     : Show this message and exit

            -v|--version                  : Show the executable version and exit

            -q|--query                    : Query cable info

            --DDM                         : Get cable DDM query

            -r|--read                     : Read from cable

            --print_raw                   : Print bytes in raw format

            -b|--bytes_line <bytesPerLine>: Bytes per line in the raw print (multiples

                                            of 4, default: 4)

            -p|--page <pageNum>           : Specific Page number to do the read/write

                                            operation

            -o|--offset <pageOffset>      : Specific Page offset

            -l|--length <length>          : Length of the need data in bytes to read

                                            (default: 1 Byte)

            -a|--address <address>        : Address (Replacement for page+offset)

            --read_reg <Register>         : Read register from cable

            --read_all_regs               : Read all registers from cable

            --show_all_regs               : Show all registers in the cable

    NOTES

      1. To work with cables run the following while mst is started:

          I. mst cable add. (For devices that supports MCIA only - CX4 and above), or:

         II. mst cable add --with_ib. (For supported OSes only, Linux & Windows, for more information run mst help)

        III. mst status - Will show all the cables.

      2. For QSFP transceivers the tool reads the address from I2C address of 0x50.

         For more information please see spec SFF8636.

      3. For SFP transceivers the tool reads from I2C address 0x50 and names it page 0.

         When reading from I2C address 0x51 the pages will be read as page <x+1>.

         For examples:

             I2C address 0x51 page 0 will be referred in the tool as page 1.

             I2C address 0x51 page 1 will be referred in the tool as page 2.

             And so on.

         For more information please see spec SFF8472.

    EXAMPLES

      1. Read bytes from specific page on the cable:

       >> mlxcables -d mt4115_pciconf0_cable_0 -r -p 0 -o 165 -l 3

          Page[0].Byte[165] = 0x00

          Page[0].Byte[166] = 0x02

          Page[0].Byte[167] = 0xc9

      2. Read specific register by name

        I. Get all registers' names and pick one:

         >> mlxcables -d mt4115_pciconf0_cable_0 --show_all_regs

       II. Run read register with the register name you choose (e.g. vendor_oui, identifier):

         >> mlxcables -d mt4115_pciconf0_cable_0 --read_reg vendor_oui

            vendor_oui = 0x0002c9

         >> mlxcables -d mt4115_pciconf0_cable_0 --read_reg identifier

            identifier = 0x0d