diff --git a/home/nipa/nipa_out/945868/ynl/old-code/devlink-user.c b/home/nipa/nipa_out/945868/ynl/new-code/devlink-user.c index 47c8c4cdca1b..92e8e9986eac 100644 --- a/home/nipa/nipa_out/945868/ynl/old-code/devlink-user.c +++ b/home/nipa/nipa_out/945868/ynl/new-code/devlink-user.c @@ -880,6 +880,7 @@ const struct ynl_policy_attr devlink_policy[DEVLINK_ATTR_MAX + 1] = { [DEVLINK_ATTR_RATE_TX_PRIORITY] = { .name = "rate-tx-priority", .type = YNL_PT_U32, }, [DEVLINK_ATTR_RATE_TX_WEIGHT] = { .name = "rate-tx-weight", .type = YNL_PT_U32, }, [DEVLINK_ATTR_REGION_DIRECT] = { .name = "region-direct", .type = YNL_PT_FLAG, }, + [DEVLINK_ATTR_INFO_FUNCTION_UID] = { .name = "info-function-uid", .type = YNL_PT_NUL_STR, }, }; const struct ynl_policy_nest devlink_nest = { @@ -5275,6 +5276,8 @@ void devlink_info_get_rsp_free(struct devlink_info_get_rsp *rsp) for (i = 0; i < rsp->n_info_version_stored; i++) devlink_dl_info_version_free(&rsp->info_version_stored[i]); free(rsp->info_version_stored); + free(rsp->info_board_serial_number); + free(rsp->info_function_uid); free(rsp); } @@ -5352,6 +5355,28 @@ int devlink_info_get_rsp_parse(const struct nlmsghdr *nlh, n_info_version_running++; } else if (type == DEVLINK_ATTR_INFO_VERSION_STORED) { n_info_version_stored++; + } else if (type == DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER) { + unsigned int len; + + if (ynl_attr_validate(yarg, attr)) + return YNL_PARSE_CB_ERROR; + + len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); + dst->_present.info_board_serial_number_len = len; + dst->info_board_serial_number = malloc(len + 1); + memcpy(dst->info_board_serial_number, ynl_attr_get_str(attr), len); + dst->info_board_serial_number[len] = 0; + } else if (type == DEVLINK_ATTR_INFO_FUNCTION_UID) { + unsigned int len; + + if (ynl_attr_validate(yarg, attr)) + return YNL_PARSE_CB_ERROR; + + len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); + dst->_present.info_function_uid_len = len; + dst->info_function_uid = malloc(len + 1); + memcpy(dst->info_function_uid, ynl_attr_get_str(attr), len); + dst->info_function_uid[len] = 0; } } @@ -5458,6 +5483,8 @@ void devlink_info_get_list_free(struct devlink_info_get_list *rsp) for (i = 0; i < rsp->obj.n_info_version_stored; i++) devlink_dl_info_version_free(&rsp->obj.info_version_stored[i]); free(rsp->obj.info_version_stored); + free(rsp->obj.info_board_serial_number); + free(rsp->obj.info_function_uid); free(rsp); } } diff --git a/home/nipa/nipa_out/945868/ynl/old-code/devlink-user.h b/home/nipa/nipa_out/945868/ynl/new-code/devlink-user.h index e08ff699a3c0..8dcd7df16966 100644 --- a/home/nipa/nipa_out/945868/ynl/old-code/devlink-user.h +++ b/home/nipa/nipa_out/945868/ynl/new-code/devlink-user.h @@ -3354,6 +3354,8 @@ struct devlink_info_get_rsp { __u32 dev_name_len; __u32 info_driver_name_len; __u32 info_serial_number_len; + __u32 info_board_serial_number_len; + __u32 info_function_uid_len; } _present; char *bus_name; @@ -3366,6 +3368,8 @@ struct devlink_info_get_rsp { struct devlink_dl_info_version *info_version_running; unsigned int n_info_version_stored; struct devlink_dl_info_version *info_version_stored; + char *info_board_serial_number; + char *info_function_uid; }; void devlink_info_get_rsp_free(struct devlink_info_get_rsp *rsp);