How to collect firmware inventory for all HCA in a fabric - how to translate ibdiagnet2.db_csv to human readable format

I want to create a firmware inventory for all HCA’s connected to a fabric. I don’t want to run commands on all hosts as they belong to several different administrative domains, hence I depend on a tool like ibdiagnet which queries the data using IB calls.

Basically I get the data in the file ibdiagnet2.db_csv in hex, I wonder whether there is some tool or script to reformat the output. Especially I don’t know how to reliably translate FW versions and Hardware types from hex to ascii or decimal. What I would like to get is a list with something similar to the output of ibstat

Host: some.host.com

CA type: MT4099 <<< plain text and not just a number >>>

Number of ports: 2

Firmware version: 2.40.5030 <<< no hex values but human readable >>>

Hardware version: 1

Node GUID: 0x24be05ffff90ed40 <<< useful to cross-reference to the output of other tools >>>

System image GUID: 0x24be05ffff90ed43

PSID: HP_0160000009 <<< useful for later firmware updates, the fw image must match the psid >>>>

Additionally an attribute like hardware-family with values ConnecX-3, ConnectX-4, … would be helpful to check if we have consistent firmware levels.

We have a mix of HPE, IBM and native Mellanox HCAs.

Thank you, any comment or remark is welcom.

Kind regards,

Heiner

Hi Heiner,

We don’t have an external script to translate the ibdiagnet2.db_csv file, but you can use the “mst ib add” output and create your own script.

Something similar to the following:

  1. mst start
  2. mst ib add
  3. mst status | grep CA > CA.list
  4. for i in $(cat CA.list); do flint -d $i q; done

Regards,

Viki