From: Vasundhara Volam Date: Fri, 31 Jul 2020 10:46:43 +0000 (-0700) Subject: devlink: Add board.serial_number to info subcommand. X-Git-Tag: v5.9.0~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7332b188a6f8e5c5d67c9a03d1591a813a4c908c;p=thirdparty%2Fiproute2.git devlink: Add board.serial_number to info subcommand. Add support for reading board serial_number to devlink info subcommand. Example: $ devlink dev info pci/0000:af:00.0 -jp { "info": { "pci/0000:af:00.0": { "driver": "bnxt_en", "serial_number": "00-10-18-FF-FE-AD-1A-00", "board.serial_number": "433551F+172300000", "versions": { "fixed": { "board.id": "7339763 Rev 0.", "asic.id": "16D7", "asic.rev": "1" }, "running": { "fw": "216.1.216.0", "fw.psid": "0.0.0", "fw.mgmt": "216.1.192.0", "fw.mgmt.api": "1.10.1", "fw.ncsi": "0.0.0.0", "fw.roce": "216.1.16.0" } } } } } Signed-off-by: Vasundhara Volam Reviewed-by: Jiri Pirko Signed-off-by: David Ahern --- diff --git a/devlink/devlink.c b/devlink/devlink.c index a22e931e1..b3b4ab0ca 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -650,6 +650,7 @@ static const enum mnl_attr_data_type devlink_policy[DEVLINK_ATTR_MAX + 1] = { [DEVLINK_ATTR_REGION_CHUNK_LEN] = MNL_TYPE_U64, [DEVLINK_ATTR_INFO_DRIVER_NAME] = MNL_TYPE_STRING, [DEVLINK_ATTR_INFO_SERIAL_NUMBER] = MNL_TYPE_STRING, + [DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER] = MNL_TYPE_STRING, [DEVLINK_ATTR_INFO_VERSION_FIXED] = MNL_TYPE_NESTED, [DEVLINK_ATTR_INFO_VERSION_RUNNING] = MNL_TYPE_NESTED, [DEVLINK_ATTR_INFO_VERSION_STORED] = MNL_TYPE_NESTED, @@ -2981,6 +2982,16 @@ static void pr_out_info(struct dl *dl, const struct nlmsghdr *nlh, print_string(PRINT_ANY, "serial_number", "serial_number %s", mnl_attr_get_str(nla_sn)); } + + if (tb[DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER]) { + struct nlattr *nla_bsn = tb[DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER]; + + if (!dl->json_output) + __pr_out_newline(); + check_indent_newline(dl); + print_string(PRINT_ANY, "board.serial_number", "board.serial_number %s", + mnl_attr_get_str(nla_bsn)); + } __pr_out_indent_dec(); if (has_versions) { @@ -3016,6 +3027,7 @@ static int cmd_versions_show_cb(const struct nlmsghdr *nlh, void *data) tb[DEVLINK_ATTR_INFO_VERSION_STORED]; has_info = tb[DEVLINK_ATTR_INFO_DRIVER_NAME] || tb[DEVLINK_ATTR_INFO_SERIAL_NUMBER] || + tb[DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER] || has_versions; if (has_info)