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


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,


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