Hi! For quite some time now the ethtool -i API has been showing its age. The driver version field is generally considered obsolete these days, and driver authors are encouraged to report the kernel version. fw_version field does not suit modern needs with 31 characters being quite limiting on more complex systems. There is also no distinction between the running and flashed versions of the firmware.
Since the driver information pertains to the entire device, rather than a particular netdev, it seems wise to move it do devlink, at the same time fixing the aforementioned issues. The new API allows exposing the device serial number and versions of the components of the card - both hardware, firmware (running and flashed). Driver authors can choose descriptive identifiers for the version fields. There is a potential for defining common fields here, but given the general direction of the stack I don't think people would like that. Example: $ devlink info show pci/0000:05:00.0: serial_number: 00:15:4d:12:20:7e versions: fixed: board.model carbon board.partno AMDA0099-0001 board.revision 07 board.vendor SMA running: fw.mgmt: 010156.010156.010156 fw.cpld: 0x44 fw.app: sriov-2.1.16 stored: fw.mgmt: 010158.010158.010158 fw.cpld: 0x44 fw.app: sriov-2.1.20 Jakub Kicinski (6): devlink: add device information API devlink: add version reporting API nfp: devlink: report serial number nfp: devlink: report fixed versions nfp: nsp: add support for versions command nfp: devlink: report the running and flashed versions .../net/ethernet/netronome/nfp/nfp_devlink.c | 154 +++++++++++++++ .../ethernet/netronome/nfp/nfpcore/nfp_nsp.c | 53 ++++++ .../ethernet/netronome/nfp/nfpcore/nfp_nsp.h | 14 ++ include/net/devlink.h | 15 ++ include/uapi/linux/devlink.h | 10 + net/core/devlink.c | 177 ++++++++++++++++++ 6 files changed, 423 insertions(+) -- 2.19.2