diff --git a/home/nipa/nipa_out/959697/ynl/old-code/devlink-user.c b/home/nipa/nipa_out/959697/ynl/new-code/devlink-user.c index 32919a037cec..7179f5e85ee4 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/devlink-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/devlink-user.c @@ -937,7 +937,7 @@ devlink_dl_dpipe_match_value_free(struct devlink_dl_dpipe_match_value *obj) { unsigned int i; - for (i = 0; i < obj->n_dpipe_match; i++) + for (i = 0; i < obj->_count.dpipe_match; i++) devlink_dl_dpipe_match_free(&obj->dpipe_match[i]); free(obj->dpipe_match); free(obj->dpipe_value); @@ -970,7 +970,7 @@ int devlink_dl_dpipe_match_value_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.dpipe_value_len = len; + dst->_len.dpipe_value = len; dst->dpipe_value = malloc(len); memcpy(dst->dpipe_value, ynl_attr_data(attr), len); } else if (type == DEVLINK_ATTR_DPIPE_VALUE_MASK) { @@ -980,7 +980,7 @@ int devlink_dl_dpipe_match_value_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.dpipe_value_mask_len = len; + dst->_len.dpipe_value_mask = len; dst->dpipe_value_mask = malloc(len); memcpy(dst->dpipe_value_mask, ynl_attr_data(attr), len); } else if (type == DEVLINK_ATTR_DPIPE_VALUE_MAPPING) { @@ -993,7 +993,7 @@ int devlink_dl_dpipe_match_value_parse(struct ynl_parse_arg *yarg, if (n_dpipe_match) { dst->dpipe_match = calloc(n_dpipe_match, sizeof(*dst->dpipe_match)); - dst->n_dpipe_match = n_dpipe_match; + dst->_count.dpipe_match = n_dpipe_match; i = 0; parg.rsp_policy = &devlink_dl_dpipe_match_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1058,7 +1058,7 @@ devlink_dl_dpipe_action_value_free(struct devlink_dl_dpipe_action_value *obj) { unsigned int i; - for (i = 0; i < obj->n_dpipe_action; i++) + for (i = 0; i < obj->_count.dpipe_action; i++) devlink_dl_dpipe_action_free(&obj->dpipe_action[i]); free(obj->dpipe_action); free(obj->dpipe_value); @@ -1091,7 +1091,7 @@ int devlink_dl_dpipe_action_value_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.dpipe_value_len = len; + dst->_len.dpipe_value = len; dst->dpipe_value = malloc(len); memcpy(dst->dpipe_value, ynl_attr_data(attr), len); } else if (type == DEVLINK_ATTR_DPIPE_VALUE_MASK) { @@ -1101,7 +1101,7 @@ int devlink_dl_dpipe_action_value_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.dpipe_value_mask_len = len; + dst->_len.dpipe_value_mask = len; dst->dpipe_value_mask = malloc(len); memcpy(dst->dpipe_value_mask, ynl_attr_data(attr), len); } else if (type == DEVLINK_ATTR_DPIPE_VALUE_MAPPING) { @@ -1114,7 +1114,7 @@ int devlink_dl_dpipe_action_value_parse(struct ynl_parse_arg *yarg, if (n_dpipe_action) { dst->dpipe_action = calloc(n_dpipe_action, sizeof(*dst->dpipe_action)); - dst->n_dpipe_action = n_dpipe_action; + dst->_count.dpipe_action = n_dpipe_action; i = 0; parg.rsp_policy = &devlink_dl_dpipe_action_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1151,7 +1151,7 @@ int devlink_dl_dpipe_field_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dpipe_field_name_len = len; + dst->_len.dpipe_field_name = len; dst->dpipe_field_name = malloc(len + 1); memcpy(dst->dpipe_field_name, ynl_attr_get_str(attr), len); dst->dpipe_field_name[len] = 0; @@ -1197,7 +1197,7 @@ int devlink_dl_resource_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.resource_name_len = len; + dst->_len.resource_name = len; dst->resource_name = malloc(len + 1); memcpy(dst->resource_name, ynl_attr_get_str(attr), len); dst->resource_name[len] = 0; @@ -1288,7 +1288,7 @@ int devlink_dl_info_version_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.info_version_name_len = len; + dst->_len.info_version_name = len; dst->info_version_name = malloc(len + 1); memcpy(dst->info_version_name, ynl_attr_get_str(attr), len); dst->info_version_name[len] = 0; @@ -1299,7 +1299,7 @@ int devlink_dl_info_version_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.info_version_value_len = len; + dst->_len.info_version_value = len; dst->info_version_value = malloc(len + 1); memcpy(dst->info_version_value, ynl_attr_get_str(attr), len); dst->info_version_value[len] = 0; @@ -1346,7 +1346,7 @@ int devlink_dl_fmsg_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.fmsg_obj_name_len = len; + dst->_len.fmsg_obj_name = len; dst->fmsg_obj_name = malloc(len + 1); memcpy(dst->fmsg_obj_name, ynl_attr_get_str(attr), len); dst->fmsg_obj_name[len] = 0; @@ -1380,8 +1380,8 @@ int devlink_dl_port_function_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj->_present.hw_addr_len) - ynl_attr_put(nlh, DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR, obj->hw_addr, obj->_present.hw_addr_len); + if (obj->_len.hw_addr) + ynl_attr_put(nlh, DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR, obj->hw_addr, obj->_len.hw_addr); if (obj->_present.state) ynl_attr_put_u8(nlh, DEVLINK_PORT_FN_ATTR_STATE, obj->state); if (obj->_present.opstate) @@ -1427,7 +1427,7 @@ void devlink_dl_reload_act_stats_free(struct devlink_dl_reload_act_stats *obj) { unsigned int i; - for (i = 0; i < obj->n_reload_stats_entry; i++) + for (i = 0; i < obj->_count.reload_stats_entry; i++) devlink_dl_reload_stats_entry_free(&obj->reload_stats_entry[i]); free(obj->reload_stats_entry); } @@ -1456,7 +1456,7 @@ int devlink_dl_reload_act_stats_parse(struct ynl_parse_arg *yarg, if (n_reload_stats_entry) { dst->reload_stats_entry = calloc(n_reload_stats_entry, sizeof(*dst->reload_stats_entry)); - dst->n_reload_stats_entry = n_reload_stats_entry; + dst->_count.reload_stats_entry = n_reload_stats_entry; i = 0; parg.rsp_policy = &devlink_dl_reload_stats_entry_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1500,7 +1500,7 @@ devlink_dl_dpipe_table_matches_free(struct devlink_dl_dpipe_table_matches *obj) { unsigned int i; - for (i = 0; i < obj->n_dpipe_match; i++) + for (i = 0; i < obj->_count.dpipe_match; i++) devlink_dl_dpipe_match_free(&obj->dpipe_match[i]); free(obj->dpipe_match); } @@ -1529,7 +1529,7 @@ int devlink_dl_dpipe_table_matches_parse(struct ynl_parse_arg *yarg, if (n_dpipe_match) { dst->dpipe_match = calloc(n_dpipe_match, sizeof(*dst->dpipe_match)); - dst->n_dpipe_match = n_dpipe_match; + dst->_count.dpipe_match = n_dpipe_match; i = 0; parg.rsp_policy = &devlink_dl_dpipe_match_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1550,7 +1550,7 @@ devlink_dl_dpipe_table_actions_free(struct devlink_dl_dpipe_table_actions *obj) { unsigned int i; - for (i = 0; i < obj->n_dpipe_action; i++) + for (i = 0; i < obj->_count.dpipe_action; i++) devlink_dl_dpipe_action_free(&obj->dpipe_action[i]); free(obj->dpipe_action); } @@ -1579,7 +1579,7 @@ int devlink_dl_dpipe_table_actions_parse(struct ynl_parse_arg *yarg, if (n_dpipe_action) { dst->dpipe_action = calloc(n_dpipe_action, sizeof(*dst->dpipe_action)); - dst->n_dpipe_action = n_dpipe_action; + dst->_count.dpipe_action = n_dpipe_action; i = 0; parg.rsp_policy = &devlink_dl_dpipe_action_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1600,7 +1600,7 @@ devlink_dl_dpipe_entry_match_values_free(struct devlink_dl_dpipe_entry_match_val { unsigned int i; - for (i = 0; i < obj->n_dpipe_match_value; i++) + for (i = 0; i < obj->_count.dpipe_match_value; i++) devlink_dl_dpipe_match_value_free(&obj->dpipe_match_value[i]); free(obj->dpipe_match_value); } @@ -1629,7 +1629,7 @@ int devlink_dl_dpipe_entry_match_values_parse(struct ynl_parse_arg *yarg, if (n_dpipe_match_value) { dst->dpipe_match_value = calloc(n_dpipe_match_value, sizeof(*dst->dpipe_match_value)); - dst->n_dpipe_match_value = n_dpipe_match_value; + dst->_count.dpipe_match_value = n_dpipe_match_value; i = 0; parg.rsp_policy = &devlink_dl_dpipe_match_value_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1650,7 +1650,7 @@ devlink_dl_dpipe_entry_action_values_free(struct devlink_dl_dpipe_entry_action_v { unsigned int i; - for (i = 0; i < obj->n_dpipe_action_value; i++) + for (i = 0; i < obj->_count.dpipe_action_value; i++) devlink_dl_dpipe_action_value_free(&obj->dpipe_action_value[i]); free(obj->dpipe_action_value); } @@ -1679,7 +1679,7 @@ int devlink_dl_dpipe_entry_action_values_parse(struct ynl_parse_arg *yarg, if (n_dpipe_action_value) { dst->dpipe_action_value = calloc(n_dpipe_action_value, sizeof(*dst->dpipe_action_value)); - dst->n_dpipe_action_value = n_dpipe_action_value; + dst->_count.dpipe_action_value = n_dpipe_action_value; i = 0; parg.rsp_policy = &devlink_dl_dpipe_action_value_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1700,7 +1700,7 @@ devlink_dl_dpipe_header_fields_free(struct devlink_dl_dpipe_header_fields *obj) { unsigned int i; - for (i = 0; i < obj->n_dpipe_field; i++) + for (i = 0; i < obj->_count.dpipe_field; i++) devlink_dl_dpipe_field_free(&obj->dpipe_field[i]); free(obj->dpipe_field); } @@ -1729,7 +1729,7 @@ int devlink_dl_dpipe_header_fields_parse(struct ynl_parse_arg *yarg, if (n_dpipe_field) { dst->dpipe_field = calloc(n_dpipe_field, sizeof(*dst->dpipe_field)); - dst->n_dpipe_field = n_dpipe_field; + dst->_count.dpipe_field = n_dpipe_field; i = 0; parg.rsp_policy = &devlink_dl_dpipe_field_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1749,7 +1749,7 @@ void devlink_dl_resource_list_free(struct devlink_dl_resource_list *obj) { unsigned int i; - for (i = 0; i < obj->n_resource; i++) + for (i = 0; i < obj->_count.resource; i++) devlink_dl_resource_free(&obj->resource[i]); free(obj->resource); } @@ -1778,7 +1778,7 @@ int devlink_dl_resource_list_parse(struct ynl_parse_arg *yarg, if (n_resource) { dst->resource = calloc(n_resource, sizeof(*dst->resource)); - dst->n_resource = n_resource; + dst->_count.resource = n_resource; i = 0; parg.rsp_policy = &devlink_dl_resource_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1808,7 +1808,7 @@ void devlink_dl_reload_act_info_free(struct devlink_dl_reload_act_info *obj) { unsigned int i; - for (i = 0; i < obj->n_reload_action_stats; i++) + for (i = 0; i < obj->_count.reload_action_stats; i++) devlink_dl_reload_act_stats_free(&obj->reload_action_stats[i]); free(obj->reload_action_stats); } @@ -1842,7 +1842,7 @@ int devlink_dl_reload_act_info_parse(struct ynl_parse_arg *yarg, if (n_reload_action_stats) { dst->reload_action_stats = calloc(n_reload_action_stats, sizeof(*dst->reload_action_stats)); - dst->n_reload_action_stats = n_reload_action_stats; + dst->_count.reload_action_stats = n_reload_action_stats; i = 0; parg.rsp_policy = &devlink_dl_reload_act_stats_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1884,7 +1884,7 @@ int devlink_dl_dpipe_table_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dpipe_table_name_len = len; + dst->_len.dpipe_table_name = len; dst->dpipe_table_name = malloc(len + 1); memcpy(dst->dpipe_table_name, ynl_attr_get_str(attr), len); dst->dpipe_table_name[len] = 0; @@ -2009,7 +2009,7 @@ int devlink_dl_dpipe_header_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dpipe_header_name_len = len; + dst->_len.dpipe_header_name = len; dst->dpipe_header_name = malloc(len + 1); memcpy(dst->dpipe_header_name, ynl_attr_get_str(attr), len); dst->dpipe_header_name[len] = 0; @@ -2042,7 +2042,7 @@ void devlink_dl_reload_stats_free(struct devlink_dl_reload_stats *obj) { unsigned int i; - for (i = 0; i < obj->n_reload_action_info; i++) + for (i = 0; i < obj->_count.reload_action_info; i++) devlink_dl_reload_act_info_free(&obj->reload_action_info[i]); free(obj->reload_action_info); } @@ -2071,7 +2071,7 @@ int devlink_dl_reload_stats_parse(struct ynl_parse_arg *yarg, if (n_reload_action_info) { dst->reload_action_info = calloc(n_reload_action_info, sizeof(*dst->reload_action_info)); - dst->n_reload_action_info = n_reload_action_info; + dst->_count.reload_action_info = n_reload_action_info; i = 0; parg.rsp_policy = &devlink_dl_reload_act_info_nest; ynl_attr_for_each_nested(attr, nested) { @@ -2091,7 +2091,7 @@ void devlink_dl_dpipe_tables_free(struct devlink_dl_dpipe_tables *obj) { unsigned int i; - for (i = 0; i < obj->n_dpipe_table; i++) + for (i = 0; i < obj->_count.dpipe_table; i++) devlink_dl_dpipe_table_free(&obj->dpipe_table[i]); free(obj->dpipe_table); } @@ -2120,7 +2120,7 @@ int devlink_dl_dpipe_tables_parse(struct ynl_parse_arg *yarg, if (n_dpipe_table) { dst->dpipe_table = calloc(n_dpipe_table, sizeof(*dst->dpipe_table)); - dst->n_dpipe_table = n_dpipe_table; + dst->_count.dpipe_table = n_dpipe_table; i = 0; parg.rsp_policy = &devlink_dl_dpipe_table_nest; ynl_attr_for_each_nested(attr, nested) { @@ -2140,7 +2140,7 @@ void devlink_dl_dpipe_entries_free(struct devlink_dl_dpipe_entries *obj) { unsigned int i; - for (i = 0; i < obj->n_dpipe_entry; i++) + for (i = 0; i < obj->_count.dpipe_entry; i++) devlink_dl_dpipe_entry_free(&obj->dpipe_entry[i]); free(obj->dpipe_entry); } @@ -2169,7 +2169,7 @@ int devlink_dl_dpipe_entries_parse(struct ynl_parse_arg *yarg, if (n_dpipe_entry) { dst->dpipe_entry = calloc(n_dpipe_entry, sizeof(*dst->dpipe_entry)); - dst->n_dpipe_entry = n_dpipe_entry; + dst->_count.dpipe_entry = n_dpipe_entry; i = 0; parg.rsp_policy = &devlink_dl_dpipe_entry_nest; ynl_attr_for_each_nested(attr, nested) { @@ -2189,7 +2189,7 @@ void devlink_dl_dpipe_headers_free(struct devlink_dl_dpipe_headers *obj) { unsigned int i; - for (i = 0; i < obj->n_dpipe_header; i++) + for (i = 0; i < obj->_count.dpipe_header; i++) devlink_dl_dpipe_header_free(&obj->dpipe_header[i]); free(obj->dpipe_header); } @@ -2218,7 +2218,7 @@ int devlink_dl_dpipe_headers_parse(struct ynl_parse_arg *yarg, if (n_dpipe_header) { dst->dpipe_header = calloc(n_dpipe_header, sizeof(*dst->dpipe_header)); - dst->n_dpipe_header = n_dpipe_header; + dst->_count.dpipe_header = n_dpipe_header; i = 0; parg.rsp_policy = &devlink_dl_dpipe_header_nest; ynl_attr_for_each_nested(attr, nested) { @@ -2313,7 +2313,7 @@ int devlink_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -2324,7 +2324,7 @@ int devlink_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -2361,9 +2361,9 @@ devlink_get(struct ynl_sock *ys, struct devlink_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); rsp = calloc(1, sizeof(*rsp)); @@ -2458,7 +2458,7 @@ int devlink_port_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -2469,7 +2469,7 @@ int devlink_port_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -2497,9 +2497,9 @@ devlink_port_get(struct ynl_sock *ys, struct devlink_port_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -2539,7 +2539,7 @@ int devlink_port_get_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -2550,7 +2550,7 @@ int devlink_port_get_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -2605,9 +2605,9 @@ devlink_port_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -2641,9 +2641,9 @@ int devlink_port_set(struct ynl_sock *ys, struct devlink_port_set_req *req) ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -2693,7 +2693,7 @@ int devlink_port_new_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -2704,7 +2704,7 @@ int devlink_port_new_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -2732,9 +2732,9 @@ devlink_port_new(struct ynl_sock *ys, struct devlink_port_new_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -2782,9 +2782,9 @@ int devlink_port_del(struct ynl_sock *ys, struct devlink_port_del_req *req) ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -2815,9 +2815,9 @@ int devlink_port_split(struct ynl_sock *ys, struct devlink_port_split_req *req) ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -2851,9 +2851,9 @@ int devlink_port_unsplit(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -2899,7 +2899,7 @@ int devlink_sb_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -2910,7 +2910,7 @@ int devlink_sb_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -2938,9 +2938,9 @@ devlink_sb_get(struct ynl_sock *ys, struct devlink_sb_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.sb_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_SB_INDEX, req->sb_index); @@ -3001,9 +3001,9 @@ devlink_sb_get_dump(struct ynl_sock *ys, struct devlink_sb_get_req_dump *req) ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -3051,7 +3051,7 @@ int devlink_sb_pool_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -3062,7 +3062,7 @@ int devlink_sb_pool_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -3095,9 +3095,9 @@ devlink_sb_pool_get(struct ynl_sock *ys, struct devlink_sb_pool_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.sb_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_SB_INDEX, req->sb_index); @@ -3162,9 +3162,9 @@ devlink_sb_pool_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -3198,9 +3198,9 @@ int devlink_sb_pool_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.sb_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_SB_INDEX, req->sb_index); @@ -3254,7 +3254,7 @@ int devlink_sb_port_pool_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -3265,7 +3265,7 @@ int devlink_sb_port_pool_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -3304,9 +3304,9 @@ devlink_sb_port_pool_get(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -3374,9 +3374,9 @@ devlink_sb_port_pool_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -3411,9 +3411,9 @@ int devlink_sb_port_pool_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -3467,7 +3467,7 @@ int devlink_sb_tc_pool_bind_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -3478,7 +3478,7 @@ int devlink_sb_tc_pool_bind_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -3522,9 +3522,9 @@ devlink_sb_tc_pool_bind_get(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -3594,9 +3594,9 @@ devlink_sb_tc_pool_bind_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -3631,9 +3631,9 @@ int devlink_sb_tc_pool_bind_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -3675,9 +3675,9 @@ int devlink_sb_occ_snapshot(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.sb_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_SB_INDEX, req->sb_index); @@ -3710,9 +3710,9 @@ int devlink_sb_occ_max_clear(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.sb_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_SB_INDEX, req->sb_index); @@ -3758,7 +3758,7 @@ int devlink_eswitch_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -3769,7 +3769,7 @@ int devlink_eswitch_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -3807,9 +3807,9 @@ devlink_eswitch_get(struct ynl_sock *ys, struct devlink_eswitch_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); rsp = calloc(1, sizeof(*rsp)); @@ -3848,9 +3848,9 @@ int devlink_eswitch_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.eswitch_mode) ynl_attr_put_u16(nlh, DEVLINK_ATTR_ESWITCH_MODE, req->eswitch_mode); @@ -3904,7 +3904,7 @@ int devlink_dpipe_table_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -3915,7 +3915,7 @@ int devlink_dpipe_table_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -3948,11 +3948,11 @@ devlink_dpipe_table_get(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.dpipe_table_name_len) + if (req->_len.dpipe_table_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DPIPE_TABLE_NAME, req->dpipe_table_name); rsp = calloc(1, sizeof(*rsp)); @@ -4011,7 +4011,7 @@ int devlink_dpipe_entries_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -4022,7 +4022,7 @@ int devlink_dpipe_entries_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -4055,11 +4055,11 @@ devlink_dpipe_entries_get(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.dpipe_table_name_len) + if (req->_len.dpipe_table_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DPIPE_TABLE_NAME, req->dpipe_table_name); rsp = calloc(1, sizeof(*rsp)); @@ -4117,7 +4117,7 @@ int devlink_dpipe_headers_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -4128,7 +4128,7 @@ int devlink_dpipe_headers_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -4161,9 +4161,9 @@ devlink_dpipe_headers_get(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); rsp = calloc(1, sizeof(*rsp)); @@ -4204,11 +4204,11 @@ int devlink_dpipe_table_counters_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.dpipe_table_name_len) + if (req->_len.dpipe_table_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DPIPE_TABLE_NAME, req->dpipe_table_name); if (req->_present.dpipe_table_counters_enabled) ynl_attr_put_u8(nlh, DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED, req->dpipe_table_counters_enabled); @@ -4240,9 +4240,9 @@ int devlink_resource_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.resource_id) ynl_attr_put_u64(nlh, DEVLINK_ATTR_RESOURCE_ID, req->resource_id); @@ -4293,7 +4293,7 @@ int devlink_resource_dump_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -4304,7 +4304,7 @@ int devlink_resource_dump_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -4337,9 +4337,9 @@ devlink_resource_dump(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); rsp = calloc(1, sizeof(*rsp)); @@ -4392,7 +4392,7 @@ int devlink_reload_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -4403,7 +4403,7 @@ int devlink_reload_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -4431,9 +4431,9 @@ devlink_reload(struct ynl_sock *ys, struct devlink_reload_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.reload_action) ynl_attr_put_u8(nlh, DEVLINK_ATTR_RELOAD_ACTION, req->reload_action); @@ -4498,7 +4498,7 @@ int devlink_param_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -4509,7 +4509,7 @@ int devlink_param_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -4520,7 +4520,7 @@ int devlink_param_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.param_name_len = len; + dst->_len.param_name = len; dst->param_name = malloc(len + 1); memcpy(dst->param_name, ynl_attr_get_str(attr), len); dst->param_name[len] = 0; @@ -4543,11 +4543,11 @@ devlink_param_get(struct ynl_sock *ys, struct devlink_param_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.param_name_len) + if (req->_len.param_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_PARAM_NAME, req->param_name); rsp = calloc(1, sizeof(*rsp)); @@ -4608,9 +4608,9 @@ devlink_param_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -4644,11 +4644,11 @@ int devlink_param_set(struct ynl_sock *ys, struct devlink_param_set_req *req) ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.param_name_len) + if (req->_len.param_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_PARAM_NAME, req->param_name); if (req->_present.param_type) ynl_attr_put_u8(nlh, DEVLINK_ATTR_PARAM_TYPE, req->param_type); @@ -4698,7 +4698,7 @@ int devlink_region_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -4709,7 +4709,7 @@ int devlink_region_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -4725,7 +4725,7 @@ int devlink_region_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.region_name_len = len; + dst->_len.region_name = len; dst->region_name = malloc(len + 1); memcpy(dst->region_name, ynl_attr_get_str(attr), len); dst->region_name[len] = 0; @@ -4748,13 +4748,13 @@ devlink_region_get(struct ynl_sock *ys, struct devlink_region_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.region_name_len) + if (req->_len.region_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_REGION_NAME, req->region_name); rsp = calloc(1, sizeof(*rsp)); @@ -4815,9 +4815,9 @@ devlink_region_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -4867,7 +4867,7 @@ int devlink_region_new_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -4878,7 +4878,7 @@ int devlink_region_new_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -4894,7 +4894,7 @@ int devlink_region_new_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.region_name_len = len; + dst->_len.region_name = len; dst->region_name = malloc(len + 1); memcpy(dst->region_name, ynl_attr_get_str(attr), len); dst->region_name[len] = 0; @@ -4922,13 +4922,13 @@ devlink_region_new(struct ynl_sock *ys, struct devlink_region_new_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.region_name_len) + if (req->_len.region_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_REGION_NAME, req->region_name); if (req->_present.region_snapshot_id) ynl_attr_put_u32(nlh, DEVLINK_ATTR_REGION_SNAPSHOT_ID, req->region_snapshot_id); @@ -4969,13 +4969,13 @@ int devlink_region_del(struct ynl_sock *ys, struct devlink_region_del_req *req) ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.region_name_len) + if (req->_len.region_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_REGION_NAME, req->region_name); if (req->_present.region_snapshot_id) ynl_attr_put_u32(nlh, DEVLINK_ATTR_REGION_SNAPSHOT_ID, req->region_snapshot_id); @@ -5007,7 +5007,7 @@ int devlink_region_read_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -5018,7 +5018,7 @@ int devlink_region_read_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -5034,7 +5034,7 @@ int devlink_region_read_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.region_name_len = len; + dst->_len.region_name = len; dst->region_name = malloc(len + 1); memcpy(dst->region_name, ynl_attr_get_str(attr), len); dst->region_name[len] = 0; @@ -5086,13 +5086,13 @@ devlink_region_read_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.region_name_len) + if (req->_len.region_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_REGION_NAME, req->region_name); if (req->_present.region_snapshot_id) ynl_attr_put_u32(nlh, DEVLINK_ATTR_REGION_SNAPSHOT_ID, req->region_snapshot_id); @@ -5148,7 +5148,7 @@ int devlink_port_param_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -5159,7 +5159,7 @@ int devlink_port_param_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -5188,9 +5188,9 @@ devlink_port_param_get(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -5273,9 +5273,9 @@ int devlink_port_param_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -5304,13 +5304,13 @@ void devlink_info_get_rsp_free(struct devlink_info_get_rsp *rsp) free(rsp->dev_name); free(rsp->info_driver_name); free(rsp->info_serial_number); - for (i = 0; i < rsp->n_info_version_fixed; i++) + for (i = 0; i < rsp->_count.info_version_fixed; i++) devlink_dl_info_version_free(&rsp->info_version_fixed[i]); free(rsp->info_version_fixed); - for (i = 0; i < rsp->n_info_version_running; i++) + for (i = 0; i < rsp->_count.info_version_running; i++) devlink_dl_info_version_free(&rsp->info_version_running[i]); free(rsp->info_version_running); - for (i = 0; i < rsp->n_info_version_stored; i++) + for (i = 0; i < rsp->_count.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); @@ -5348,7 +5348,7 @@ int devlink_info_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -5359,7 +5359,7 @@ int devlink_info_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -5370,7 +5370,7 @@ int devlink_info_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.info_driver_name_len = len; + dst->_len.info_driver_name = len; dst->info_driver_name = malloc(len + 1); memcpy(dst->info_driver_name, ynl_attr_get_str(attr), len); dst->info_driver_name[len] = 0; @@ -5381,7 +5381,7 @@ int devlink_info_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.info_serial_number_len = len; + dst->_len.info_serial_number = len; dst->info_serial_number = malloc(len + 1); memcpy(dst->info_serial_number, ynl_attr_get_str(attr), len); dst->info_serial_number[len] = 0; @@ -5398,7 +5398,7 @@ int devlink_info_get_rsp_parse(const struct nlmsghdr *nlh, 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->_len.info_board_serial_number = 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; @@ -5407,7 +5407,7 @@ int devlink_info_get_rsp_parse(const struct nlmsghdr *nlh, if (n_info_version_fixed) { dst->info_version_fixed = calloc(n_info_version_fixed, sizeof(*dst->info_version_fixed)); - dst->n_info_version_fixed = n_info_version_fixed; + dst->_count.info_version_fixed = n_info_version_fixed; i = 0; parg.rsp_policy = &devlink_dl_info_version_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -5421,7 +5421,7 @@ int devlink_info_get_rsp_parse(const struct nlmsghdr *nlh, } if (n_info_version_running) { dst->info_version_running = calloc(n_info_version_running, sizeof(*dst->info_version_running)); - dst->n_info_version_running = n_info_version_running; + dst->_count.info_version_running = n_info_version_running; i = 0; parg.rsp_policy = &devlink_dl_info_version_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -5435,7 +5435,7 @@ int devlink_info_get_rsp_parse(const struct nlmsghdr *nlh, } if (n_info_version_stored) { dst->info_version_stored = calloc(n_info_version_stored, sizeof(*dst->info_version_stored)); - dst->n_info_version_stored = n_info_version_stored; + dst->_count.info_version_stored = n_info_version_stored; i = 0; parg.rsp_policy = &devlink_dl_info_version_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -5464,9 +5464,9 @@ devlink_info_get(struct ynl_sock *ys, struct devlink_info_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); rsp = calloc(1, sizeof(*rsp)); @@ -5500,13 +5500,13 @@ void devlink_info_get_list_free(struct devlink_info_get_list *rsp) free(rsp->obj.dev_name); free(rsp->obj.info_driver_name); free(rsp->obj.info_serial_number); - for (i = 0; i < rsp->obj.n_info_version_fixed; i++) + for (i = 0; i < rsp->obj._count.info_version_fixed; i++) devlink_dl_info_version_free(&rsp->obj.info_version_fixed[i]); free(rsp->obj.info_version_fixed); - for (i = 0; i < rsp->obj.n_info_version_running; i++) + for (i = 0; i < rsp->obj._count.info_version_running; i++) devlink_dl_info_version_free(&rsp->obj.info_version_running[i]); free(rsp->obj.info_version_running); - for (i = 0; i < rsp->obj.n_info_version_stored; i++) + for (i = 0; i < rsp->obj._count.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); @@ -5578,7 +5578,7 @@ int devlink_health_reporter_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -5589,7 +5589,7 @@ int devlink_health_reporter_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -5605,7 +5605,7 @@ int devlink_health_reporter_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.health_reporter_name_len = len; + dst->_len.health_reporter_name = len; dst->health_reporter_name = malloc(len + 1); memcpy(dst->health_reporter_name, ynl_attr_get_str(attr), len); dst->health_reporter_name[len] = 0; @@ -5629,13 +5629,13 @@ devlink_health_reporter_get(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.health_reporter_name_len) + if (req->_len.health_reporter_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_HEALTH_REPORTER_NAME, req->health_reporter_name); rsp = calloc(1, sizeof(*rsp)); @@ -5698,9 +5698,9 @@ devlink_health_reporter_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); @@ -5738,13 +5738,13 @@ int devlink_health_reporter_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.health_reporter_name_len) + if (req->_len.health_reporter_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_HEALTH_REPORTER_NAME, req->health_reporter_name); if (req->_present.health_reporter_graceful_period) ynl_attr_put_u64(nlh, DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD, req->health_reporter_graceful_period); @@ -5782,13 +5782,13 @@ int devlink_health_reporter_recover(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.health_reporter_name_len) + if (req->_len.health_reporter_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_HEALTH_REPORTER_NAME, req->health_reporter_name); err = ynl_exec(ys, nlh, &yrs); @@ -5820,13 +5820,13 @@ int devlink_health_reporter_diagnose(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.health_reporter_name_len) + if (req->_len.health_reporter_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_HEALTH_REPORTER_NAME, req->health_reporter_name); err = ynl_exec(ys, nlh, &yrs); @@ -5908,13 +5908,13 @@ devlink_health_reporter_dump_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.health_reporter_name_len) + if (req->_len.health_reporter_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_HEALTH_REPORTER_NAME, req->health_reporter_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -5950,13 +5950,13 @@ int devlink_health_reporter_dump_clear(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.health_reporter_name_len) + if (req->_len.health_reporter_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_HEALTH_REPORTER_NAME, req->health_reporter_name); err = ynl_exec(ys, nlh, &yrs); @@ -5988,13 +5988,13 @@ int devlink_flash_update(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.flash_update_file_name_len) + if (req->_len.flash_update_file_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME, req->flash_update_file_name); - if (req->_present.flash_update_component_len) + if (req->_len.flash_update_component) ynl_attr_put_str(nlh, DEVLINK_ATTR_FLASH_UPDATE_COMPONENT, req->flash_update_component); if (req->_present.flash_update_overwrite_mask) ynl_attr_put(nlh, DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK, &req->flash_update_overwrite_mask, sizeof(struct nla_bitfield32)); @@ -6042,7 +6042,7 @@ int devlink_trap_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -6053,7 +6053,7 @@ int devlink_trap_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -6064,7 +6064,7 @@ int devlink_trap_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.trap_name_len = len; + dst->_len.trap_name = len; dst->trap_name = malloc(len + 1); memcpy(dst->trap_name, ynl_attr_get_str(attr), len); dst->trap_name[len] = 0; @@ -6087,11 +6087,11 @@ devlink_trap_get(struct ynl_sock *ys, struct devlink_trap_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.trap_name_len) + if (req->_len.trap_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_TRAP_NAME, req->trap_name); rsp = calloc(1, sizeof(*rsp)); @@ -6152,9 +6152,9 @@ devlink_trap_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -6188,11 +6188,11 @@ int devlink_trap_set(struct ynl_sock *ys, struct devlink_trap_set_req *req) ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.trap_name_len) + if (req->_len.trap_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_TRAP_NAME, req->trap_name); if (req->_present.trap_action) ynl_attr_put_u8(nlh, DEVLINK_ATTR_TRAP_ACTION, req->trap_action); @@ -6240,7 +6240,7 @@ int devlink_trap_group_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -6251,7 +6251,7 @@ int devlink_trap_group_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -6262,7 +6262,7 @@ int devlink_trap_group_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.trap_group_name_len = len; + dst->_len.trap_group_name = len; dst->trap_group_name = malloc(len + 1); memcpy(dst->trap_group_name, ynl_attr_get_str(attr), len); dst->trap_group_name[len] = 0; @@ -6286,11 +6286,11 @@ devlink_trap_group_get(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.trap_group_name_len) + if (req->_len.trap_group_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_TRAP_GROUP_NAME, req->trap_group_name); rsp = calloc(1, sizeof(*rsp)); @@ -6352,9 +6352,9 @@ devlink_trap_group_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -6389,11 +6389,11 @@ int devlink_trap_group_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.trap_group_name_len) + if (req->_len.trap_group_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_TRAP_GROUP_NAME, req->trap_group_name); if (req->_present.trap_action) ynl_attr_put_u8(nlh, DEVLINK_ATTR_TRAP_ACTION, req->trap_action); @@ -6443,7 +6443,7 @@ int devlink_trap_policer_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -6454,7 +6454,7 @@ int devlink_trap_policer_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -6483,9 +6483,9 @@ devlink_trap_policer_get(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.trap_policer_id) ynl_attr_put_u32(nlh, DEVLINK_ATTR_TRAP_POLICER_ID, req->trap_policer_id); @@ -6549,9 +6549,9 @@ devlink_trap_policer_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -6586,9 +6586,9 @@ int devlink_trap_policer_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.trap_policer_id) ynl_attr_put_u32(nlh, DEVLINK_ATTR_TRAP_POLICER_ID, req->trap_policer_id); @@ -6626,13 +6626,13 @@ int devlink_health_reporter_test(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.health_reporter_name_len) + if (req->_len.health_reporter_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_HEALTH_REPORTER_NAME, req->health_reporter_name); err = ynl_exec(ys, nlh, &yrs); @@ -6678,7 +6678,7 @@ int devlink_rate_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -6689,7 +6689,7 @@ int devlink_rate_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -6705,7 +6705,7 @@ int devlink_rate_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.rate_node_name_len = len; + dst->_len.rate_node_name = len; dst->rate_node_name = malloc(len + 1); memcpy(dst->rate_node_name, ynl_attr_get_str(attr), len); dst->rate_node_name[len] = 0; @@ -6728,13 +6728,13 @@ devlink_rate_get(struct ynl_sock *ys, struct devlink_rate_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); - if (req->_present.rate_node_name_len) + if (req->_len.rate_node_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_RATE_NODE_NAME, req->rate_node_name); rsp = calloc(1, sizeof(*rsp)); @@ -6795,9 +6795,9 @@ devlink_rate_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -6832,11 +6832,11 @@ int devlink_rate_set(struct ynl_sock *ys, struct devlink_rate_set_req *req) ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.rate_node_name_len) + if (req->_len.rate_node_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_RATE_NODE_NAME, req->rate_node_name); if (req->_present.rate_tx_share) ynl_attr_put_u64(nlh, DEVLINK_ATTR_RATE_TX_SHARE, req->rate_tx_share); @@ -6846,7 +6846,7 @@ int devlink_rate_set(struct ynl_sock *ys, struct devlink_rate_set_req *req) ynl_attr_put_u32(nlh, DEVLINK_ATTR_RATE_TX_PRIORITY, req->rate_tx_priority); if (req->_present.rate_tx_weight) ynl_attr_put_u32(nlh, DEVLINK_ATTR_RATE_TX_WEIGHT, req->rate_tx_weight); - if (req->_present.rate_parent_node_name_len) + if (req->_len.rate_parent_node_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_RATE_PARENT_NODE_NAME, req->rate_parent_node_name); err = ynl_exec(ys, nlh, &yrs); @@ -6877,11 +6877,11 @@ int devlink_rate_new(struct ynl_sock *ys, struct devlink_rate_new_req *req) ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.rate_node_name_len) + if (req->_len.rate_node_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_RATE_NODE_NAME, req->rate_node_name); if (req->_present.rate_tx_share) ynl_attr_put_u64(nlh, DEVLINK_ATTR_RATE_TX_SHARE, req->rate_tx_share); @@ -6891,7 +6891,7 @@ int devlink_rate_new(struct ynl_sock *ys, struct devlink_rate_new_req *req) ynl_attr_put_u32(nlh, DEVLINK_ATTR_RATE_TX_PRIORITY, req->rate_tx_priority); if (req->_present.rate_tx_weight) ynl_attr_put_u32(nlh, DEVLINK_ATTR_RATE_TX_WEIGHT, req->rate_tx_weight); - if (req->_present.rate_parent_node_name_len) + if (req->_len.rate_parent_node_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_RATE_PARENT_NODE_NAME, req->rate_parent_node_name); err = ynl_exec(ys, nlh, &yrs); @@ -6921,11 +6921,11 @@ int devlink_rate_del(struct ynl_sock *ys, struct devlink_rate_del_req *req) ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); - if (req->_present.rate_node_name_len) + if (req->_len.rate_node_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_RATE_NODE_NAME, req->rate_node_name); err = ynl_exec(ys, nlh, &yrs); @@ -6969,7 +6969,7 @@ int devlink_linecard_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -6980,7 +6980,7 @@ int devlink_linecard_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -7008,9 +7008,9 @@ devlink_linecard_get(struct ynl_sock *ys, struct devlink_linecard_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.linecard_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_LINECARD_INDEX, req->linecard_index); @@ -7073,9 +7073,9 @@ devlink_linecard_get_dump(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); err = ynl_exec_dump(ys, nlh, &yds); @@ -7110,13 +7110,13 @@ int devlink_linecard_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.linecard_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_LINECARD_INDEX, req->linecard_index); - if (req->_present.linecard_type_len) + if (req->_len.linecard_type) ynl_attr_put_str(nlh, DEVLINK_ATTR_LINECARD_TYPE, req->linecard_type); err = ynl_exec(ys, nlh, &yrs); @@ -7160,7 +7160,7 @@ int devlink_selftests_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.bus_name_len = len; + dst->_len.bus_name = len; dst->bus_name = malloc(len + 1); memcpy(dst->bus_name, ynl_attr_get_str(attr), len); dst->bus_name[len] = 0; @@ -7171,7 +7171,7 @@ int devlink_selftests_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -7195,9 +7195,9 @@ devlink_selftests_get(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &devlink_nest; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); rsp = calloc(1, sizeof(*rsp)); @@ -7279,9 +7279,9 @@ int devlink_selftests_run(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.selftests) devlink_dl_selftest_id_put(nlh, DEVLINK_ATTR_SELFTESTS, &req->selftests); @@ -7314,9 +7314,9 @@ int devlink_notify_filter_set(struct ynl_sock *ys, ys->req_policy = &devlink_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.bus_name_len) + if (req->_len.bus_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name); - if (req->_present.dev_name_len) + if (req->_len.dev_name) ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name); if (req->_present.port_index) ynl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index); diff --git a/home/nipa/nipa_out/959697/ynl/old-code/devlink-user.h b/home/nipa/nipa_out/959697/ynl/new-code/devlink-user.h index de00d71329c6..1deba7f056a6 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/devlink-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/devlink-user.h @@ -64,12 +64,16 @@ struct devlink_dl_dpipe_match { struct devlink_dl_dpipe_match_value { struct { - __u32 dpipe_value_len; - __u32 dpipe_value_mask_len; __u32 dpipe_value_mapping:1; } _present; + struct { + __u32 dpipe_value; + __u32 dpipe_value_mask; + } _len; + struct { + __u32 dpipe_match; + } _count; - unsigned int n_dpipe_match; struct devlink_dl_dpipe_match *dpipe_match; void *dpipe_value; void *dpipe_value_mask; @@ -94,12 +98,16 @@ struct devlink_dl_dpipe_action { struct devlink_dl_dpipe_action_value { struct { - __u32 dpipe_value_len; - __u32 dpipe_value_mask_len; __u32 dpipe_value_mapping:1; } _present; + struct { + __u32 dpipe_value; + __u32 dpipe_value_mask; + } _len; + struct { + __u32 dpipe_action; + } _count; - unsigned int n_dpipe_action; struct devlink_dl_dpipe_action *dpipe_action; void *dpipe_value; void *dpipe_value_mask; @@ -108,11 +116,13 @@ struct devlink_dl_dpipe_action_value { struct devlink_dl_dpipe_field { struct { - __u32 dpipe_field_name_len; __u32 dpipe_field_id:1; __u32 dpipe_field_bitwidth:1; __u32 dpipe_field_mapping_type:1; } _present; + struct { + __u32 dpipe_field_name; + } _len; char *dpipe_field_name; __u32 dpipe_field_id; @@ -122,7 +132,6 @@ struct devlink_dl_dpipe_field { struct devlink_dl_resource { struct { - __u32 resource_name_len; __u32 resource_id:1; __u32 resource_size:1; __u32 resource_size_new:1; @@ -133,6 +142,9 @@ struct devlink_dl_resource { __u32 resource_unit:1; __u32 resource_occ:1; } _present; + struct { + __u32 resource_name; + } _len; char *resource_name; __u64 resource_id; @@ -148,10 +160,12 @@ struct devlink_dl_resource { struct devlink_dl_param { struct { - __u32 param_name_len; __u32 param_generic:1; __u32 param_type:1; } _present; + struct { + __u32 param_name; + } _len; char *param_name; __u8 param_type; @@ -167,9 +181,11 @@ struct devlink_dl_region_snapshot { struct devlink_dl_region_chunk { struct { - __u32 region_chunk_data_len; __u32 region_chunk_addr:1; } _present; + struct { + __u32 region_chunk_data; + } _len; void *region_chunk_data; __u64 region_chunk_addr; @@ -177,9 +193,9 @@ struct devlink_dl_region_chunk { struct devlink_dl_info_version { struct { - __u32 info_version_name_len; - __u32 info_version_value_len; - } _present; + __u32 info_version_name; + __u32 info_version_value; + } _len; char *info_version_name; char *info_version_value; @@ -191,15 +207,16 @@ struct devlink_dl_fmsg { __u32 fmsg_pair_nest_start:1; __u32 fmsg_arr_nest_start:1; __u32 fmsg_nest_end:1; - __u32 fmsg_obj_name_len; } _present; + struct { + __u32 fmsg_obj_name; + } _len; char *fmsg_obj_name; }; struct devlink_dl_health_reporter { struct { - __u32 health_reporter_name_len; __u32 health_reporter_state:1; __u32 health_reporter_err_count:1; __u32 health_reporter_recover_count:1; @@ -209,6 +226,9 @@ struct devlink_dl_health_reporter { __u32 health_reporter_dump_ts_ns:1; __u32 health_reporter_auto_dump:1; } _present; + struct { + __u32 health_reporter_name; + } _len; char *health_reporter_name; __u8 health_reporter_state; @@ -242,11 +262,13 @@ struct devlink_dl_trap_metadata { struct devlink_dl_port_function { struct { - __u32 hw_addr_len; __u32 state:1; __u32 opstate:1; __u32 caps:1; } _present; + struct { + __u32 hw_addr; + } _len; void *hw_addr; enum devlink_port_fn_state state; @@ -265,14 +287,17 @@ struct devlink_dl_reload_stats_entry { }; struct devlink_dl_reload_act_stats { - unsigned int n_reload_stats_entry; + struct { + __u32 reload_stats_entry; + } _count; + struct devlink_dl_reload_stats_entry *reload_stats_entry; }; struct devlink_dl_linecard_supported_types { struct { - __u32 linecard_type_len; - } _present; + __u32 linecard_type; + } _len; char *linecard_type; }; @@ -284,32 +309,50 @@ struct devlink_dl_selftest_id { }; struct devlink_dl_dpipe_table_matches { - unsigned int n_dpipe_match; + struct { + __u32 dpipe_match; + } _count; + struct devlink_dl_dpipe_match *dpipe_match; }; struct devlink_dl_dpipe_table_actions { - unsigned int n_dpipe_action; + struct { + __u32 dpipe_action; + } _count; + struct devlink_dl_dpipe_action *dpipe_action; }; struct devlink_dl_dpipe_entry_match_values { - unsigned int n_dpipe_match_value; + struct { + __u32 dpipe_match_value; + } _count; + struct devlink_dl_dpipe_match_value *dpipe_match_value; }; struct devlink_dl_dpipe_entry_action_values { - unsigned int n_dpipe_action_value; + struct { + __u32 dpipe_action_value; + } _count; + struct devlink_dl_dpipe_action_value *dpipe_action_value; }; struct devlink_dl_dpipe_header_fields { - unsigned int n_dpipe_field; + struct { + __u32 dpipe_field; + } _count; + struct devlink_dl_dpipe_field *dpipe_field; }; struct devlink_dl_resource_list { - unsigned int n_resource; + struct { + __u32 resource; + } _count; + struct devlink_dl_resource *resource; }; @@ -333,15 +376,16 @@ struct devlink_dl_reload_act_info { struct { __u32 reload_action:1; } _present; + struct { + __u32 reload_action_stats; + } _count; enum devlink_reload_action reload_action; - unsigned int n_reload_action_stats; struct devlink_dl_reload_act_stats *reload_action_stats; }; struct devlink_dl_dpipe_table { struct { - __u32 dpipe_table_name_len; __u32 dpipe_table_size:1; __u32 dpipe_table_matches:1; __u32 dpipe_table_actions:1; @@ -349,6 +393,9 @@ struct devlink_dl_dpipe_table { __u32 dpipe_table_resource_id:1; __u32 dpipe_table_resource_units:1; } _present; + struct { + __u32 dpipe_table_name; + } _len; char *dpipe_table_name; __u64 dpipe_table_size; @@ -375,11 +422,13 @@ struct devlink_dl_dpipe_entry { struct devlink_dl_dpipe_header { struct { - __u32 dpipe_header_name_len; __u32 dpipe_header_id:1; __u32 dpipe_header_global:1; __u32 dpipe_header_fields:1; } _present; + struct { + __u32 dpipe_header_name; + } _len; char *dpipe_header_name; enum devlink_dpipe_header_id dpipe_header_id; @@ -388,22 +437,34 @@ struct devlink_dl_dpipe_header { }; struct devlink_dl_reload_stats { - unsigned int n_reload_action_info; + struct { + __u32 reload_action_info; + } _count; + struct devlink_dl_reload_act_info *reload_action_info; }; struct devlink_dl_dpipe_tables { - unsigned int n_dpipe_table; + struct { + __u32 dpipe_table; + } _count; + struct devlink_dl_dpipe_table *dpipe_table; }; struct devlink_dl_dpipe_entries { - unsigned int n_dpipe_entry; + struct { + __u32 dpipe_entry; + } _count; + struct devlink_dl_dpipe_entry *dpipe_entry; }; struct devlink_dl_dpipe_headers { - unsigned int n_dpipe_header; + struct { + __u32 dpipe_header; + } _count; + struct devlink_dl_dpipe_header *dpipe_header; }; @@ -421,9 +482,9 @@ struct devlink_dl_dev_stats { /* DEVLINK_CMD_GET - do */ struct devlink_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -439,28 +500,30 @@ static inline void devlink_get_req_set_bus_name(struct devlink_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_get_req_set_dev_name(struct devlink_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 reload_failed:1; __u32 dev_stats:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -490,10 +553,12 @@ struct devlink_get_list *devlink_get_dump(struct ynl_sock *ys); /* DEVLINK_CMD_PORT_GET - do */ struct devlink_port_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -511,20 +576,20 @@ devlink_port_get_req_set_bus_name(struct devlink_port_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_port_get_req_set_dev_name(struct devlink_port_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_port_get_req_set_port_index(struct devlink_port_get_req *req, @@ -536,10 +601,12 @@ devlink_port_get_req_set_port_index(struct devlink_port_get_req *req, struct devlink_port_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -557,9 +624,9 @@ devlink_port_get(struct ynl_sock *ys, struct devlink_port_get_req *req); /* DEVLINK_CMD_PORT_GET - dump */ struct devlink_port_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -577,28 +644,30 @@ devlink_port_get_req_dump_set_bus_name(struct devlink_port_get_req_dump *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_port_get_req_dump_set_dev_name(struct devlink_port_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_port_get_rsp_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -620,12 +689,14 @@ devlink_port_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_PORT_SET - do */ struct devlink_port_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; __u32 port_type:1; __u32 port_function:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -645,20 +716,20 @@ devlink_port_set_req_set_bus_name(struct devlink_port_set_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_port_set_req_set_dev_name(struct devlink_port_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_port_set_req_set_port_index(struct devlink_port_set_req *req, @@ -680,9 +751,9 @@ devlink_port_set_req_set_port_function_hw_addr(struct devlink_port_set_req *req, { req->_present.port_function = 1; free(req->port_function.hw_addr); - req->port_function._present.hw_addr_len = len; - req->port_function.hw_addr = malloc(req->port_function._present.hw_addr_len); - memcpy(req->port_function.hw_addr, hw_addr, req->port_function._present.hw_addr_len); + req->port_function._len.hw_addr = len; + req->port_function.hw_addr = malloc(req->port_function._len.hw_addr); + memcpy(req->port_function.hw_addr, hw_addr, req->port_function._len.hw_addr); } static inline void devlink_port_set_req_set_port_function_state(struct devlink_port_set_req *req, @@ -718,14 +789,16 @@ int devlink_port_set(struct ynl_sock *ys, struct devlink_port_set_req *req); /* DEVLINK_CMD_PORT_NEW - do */ struct devlink_port_new_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; __u32 port_flavour:1; __u32 port_pci_pf_number:1; __u32 port_pci_sf_number:1; __u32 port_controller_number:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -747,20 +820,20 @@ devlink_port_new_req_set_bus_name(struct devlink_port_new_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_port_new_req_set_dev_name(struct devlink_port_new_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_port_new_req_set_port_index(struct devlink_port_new_req *req, @@ -800,10 +873,12 @@ devlink_port_new_req_set_port_controller_number(struct devlink_port_new_req *req struct devlink_port_new_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -822,10 +897,12 @@ devlink_port_new(struct ynl_sock *ys, struct devlink_port_new_req *req); /* DEVLINK_CMD_PORT_DEL - do */ struct devlink_port_del_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -843,20 +920,20 @@ devlink_port_del_req_set_bus_name(struct devlink_port_del_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_port_del_req_set_dev_name(struct devlink_port_del_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_port_del_req_set_port_index(struct devlink_port_del_req *req, @@ -875,11 +952,13 @@ int devlink_port_del(struct ynl_sock *ys, struct devlink_port_del_req *req); /* DEVLINK_CMD_PORT_SPLIT - do */ struct devlink_port_split_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; __u32 port_split_count:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -898,20 +977,20 @@ devlink_port_split_req_set_bus_name(struct devlink_port_split_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_port_split_req_set_dev_name(struct devlink_port_split_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_port_split_req_set_port_index(struct devlink_port_split_req *req, @@ -937,10 +1016,12 @@ int devlink_port_split(struct ynl_sock *ys, struct devlink_port_split_req *req); /* DEVLINK_CMD_PORT_UNSPLIT - do */ struct devlink_port_unsplit_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -959,20 +1040,20 @@ devlink_port_unsplit_req_set_bus_name(struct devlink_port_unsplit_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_port_unsplit_req_set_dev_name(struct devlink_port_unsplit_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_port_unsplit_req_set_port_index(struct devlink_port_unsplit_req *req, @@ -992,10 +1073,12 @@ int devlink_port_unsplit(struct ynl_sock *ys, /* DEVLINK_CMD_SB_GET - do */ struct devlink_sb_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 sb_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1013,20 +1096,20 @@ devlink_sb_get_req_set_bus_name(struct devlink_sb_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_get_req_set_dev_name(struct devlink_sb_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_sb_get_req_set_sb_index(struct devlink_sb_get_req *req, __u32 sb_index) @@ -1037,10 +1120,12 @@ devlink_sb_get_req_set_sb_index(struct devlink_sb_get_req *req, __u32 sb_index) struct devlink_sb_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 sb_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1058,9 +1143,9 @@ devlink_sb_get(struct ynl_sock *ys, struct devlink_sb_get_req *req); /* DEVLINK_CMD_SB_GET - dump */ struct devlink_sb_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1078,20 +1163,20 @@ devlink_sb_get_req_dump_set_bus_name(struct devlink_sb_get_req_dump *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_get_req_dump_set_dev_name(struct devlink_sb_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_sb_get_list { @@ -1108,11 +1193,13 @@ devlink_sb_get_dump(struct ynl_sock *ys, struct devlink_sb_get_req_dump *req); /* DEVLINK_CMD_SB_POOL_GET - do */ struct devlink_sb_pool_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 sb_index:1; __u32 sb_pool_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1132,20 +1219,20 @@ devlink_sb_pool_get_req_set_bus_name(struct devlink_sb_pool_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_pool_get_req_set_dev_name(struct devlink_sb_pool_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_sb_pool_get_req_set_sb_index(struct devlink_sb_pool_get_req *req, @@ -1164,11 +1251,13 @@ devlink_sb_pool_get_req_set_sb_pool_index(struct devlink_sb_pool_get_req *req, struct devlink_sb_pool_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 sb_index:1; __u32 sb_pool_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1187,9 +1276,9 @@ devlink_sb_pool_get(struct ynl_sock *ys, struct devlink_sb_pool_get_req *req); /* DEVLINK_CMD_SB_POOL_GET - dump */ struct devlink_sb_pool_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1208,20 +1297,20 @@ devlink_sb_pool_get_req_dump_set_bus_name(struct devlink_sb_pool_get_req_dump *r const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_pool_get_req_dump_set_dev_name(struct devlink_sb_pool_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_sb_pool_get_list { @@ -1239,13 +1328,15 @@ devlink_sb_pool_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_SB_POOL_SET - do */ struct devlink_sb_pool_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 sb_index:1; __u32 sb_pool_index:1; __u32 sb_pool_threshold_type:1; __u32 sb_pool_size:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1267,20 +1358,20 @@ devlink_sb_pool_set_req_set_bus_name(struct devlink_sb_pool_set_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_pool_set_req_set_dev_name(struct devlink_sb_pool_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_sb_pool_set_req_set_sb_index(struct devlink_sb_pool_set_req *req, @@ -1321,12 +1412,14 @@ int devlink_sb_pool_set(struct ynl_sock *ys, /* DEVLINK_CMD_SB_PORT_POOL_GET - do */ struct devlink_sb_port_pool_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; __u32 sb_index:1; __u32 sb_pool_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1348,20 +1441,20 @@ devlink_sb_port_pool_get_req_set_bus_name(struct devlink_sb_port_pool_get_req *r const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_port_pool_get_req_set_dev_name(struct devlink_sb_port_pool_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_sb_port_pool_get_req_set_port_index(struct devlink_sb_port_pool_get_req *req, @@ -1387,12 +1480,14 @@ devlink_sb_port_pool_get_req_set_sb_pool_index(struct devlink_sb_port_pool_get_r struct devlink_sb_port_pool_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; __u32 sb_index:1; __u32 sb_pool_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1414,9 +1509,9 @@ devlink_sb_port_pool_get(struct ynl_sock *ys, /* DEVLINK_CMD_SB_PORT_POOL_GET - dump */ struct devlink_sb_port_pool_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1435,20 +1530,20 @@ devlink_sb_port_pool_get_req_dump_set_bus_name(struct devlink_sb_port_pool_get_r const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_port_pool_get_req_dump_set_dev_name(struct devlink_sb_port_pool_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_sb_port_pool_get_list { @@ -1467,13 +1562,15 @@ devlink_sb_port_pool_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_SB_PORT_POOL_SET - do */ struct devlink_sb_port_pool_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; __u32 sb_index:1; __u32 sb_pool_index:1; __u32 sb_threshold:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1496,20 +1593,20 @@ devlink_sb_port_pool_set_req_set_bus_name(struct devlink_sb_port_pool_set_req *r const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_port_pool_set_req_set_dev_name(struct devlink_sb_port_pool_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_sb_port_pool_set_req_set_port_index(struct devlink_sb_port_pool_set_req *req, @@ -1550,13 +1647,15 @@ int devlink_sb_port_pool_set(struct ynl_sock *ys, /* DEVLINK_CMD_SB_TC_POOL_BIND_GET - do */ struct devlink_sb_tc_pool_bind_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; __u32 sb_index:1; __u32 sb_pool_type:1; __u32 sb_tc_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1579,20 +1678,20 @@ devlink_sb_tc_pool_bind_get_req_set_bus_name(struct devlink_sb_tc_pool_bind_get_ const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_tc_pool_bind_get_req_set_dev_name(struct devlink_sb_tc_pool_bind_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_sb_tc_pool_bind_get_req_set_port_index(struct devlink_sb_tc_pool_bind_get_req *req, @@ -1625,13 +1724,15 @@ devlink_sb_tc_pool_bind_get_req_set_sb_tc_index(struct devlink_sb_tc_pool_bind_g struct devlink_sb_tc_pool_bind_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; __u32 sb_index:1; __u32 sb_pool_type:1; __u32 sb_tc_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1654,9 +1755,9 @@ devlink_sb_tc_pool_bind_get(struct ynl_sock *ys, /* DEVLINK_CMD_SB_TC_POOL_BIND_GET - dump */ struct devlink_sb_tc_pool_bind_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1675,20 +1776,20 @@ devlink_sb_tc_pool_bind_get_req_dump_set_bus_name(struct devlink_sb_tc_pool_bind const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_tc_pool_bind_get_req_dump_set_dev_name(struct devlink_sb_tc_pool_bind_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_sb_tc_pool_bind_get_list { @@ -1707,8 +1808,6 @@ devlink_sb_tc_pool_bind_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_SB_TC_POOL_BIND_SET - do */ struct devlink_sb_tc_pool_bind_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; __u32 sb_index:1; __u32 sb_pool_index:1; @@ -1716,6 +1815,10 @@ struct devlink_sb_tc_pool_bind_set_req { __u32 sb_tc_index:1; __u32 sb_threshold:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1740,20 +1843,20 @@ devlink_sb_tc_pool_bind_set_req_set_bus_name(struct devlink_sb_tc_pool_bind_set_ const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_tc_pool_bind_set_req_set_dev_name(struct devlink_sb_tc_pool_bind_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_sb_tc_pool_bind_set_req_set_port_index(struct devlink_sb_tc_pool_bind_set_req *req, @@ -1808,10 +1911,12 @@ int devlink_sb_tc_pool_bind_set(struct ynl_sock *ys, /* DEVLINK_CMD_SB_OCC_SNAPSHOT - do */ struct devlink_sb_occ_snapshot_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 sb_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1830,20 +1935,20 @@ devlink_sb_occ_snapshot_req_set_bus_name(struct devlink_sb_occ_snapshot_req *req const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_occ_snapshot_req_set_dev_name(struct devlink_sb_occ_snapshot_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_sb_occ_snapshot_req_set_sb_index(struct devlink_sb_occ_snapshot_req *req, @@ -1863,10 +1968,12 @@ int devlink_sb_occ_snapshot(struct ynl_sock *ys, /* DEVLINK_CMD_SB_OCC_MAX_CLEAR - do */ struct devlink_sb_occ_max_clear_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 sb_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1886,20 +1993,20 @@ devlink_sb_occ_max_clear_req_set_bus_name(struct devlink_sb_occ_max_clear_req *r const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_sb_occ_max_clear_req_set_dev_name(struct devlink_sb_occ_max_clear_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_sb_occ_max_clear_req_set_sb_index(struct devlink_sb_occ_max_clear_req *req, @@ -1919,9 +2026,9 @@ int devlink_sb_occ_max_clear(struct ynl_sock *ys, /* DEVLINK_CMD_ESWITCH_GET - do */ struct devlink_eswitch_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1939,30 +2046,32 @@ devlink_eswitch_get_req_set_bus_name(struct devlink_eswitch_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_eswitch_get_req_set_dev_name(struct devlink_eswitch_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_eswitch_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 eswitch_mode:1; __u32 eswitch_inline_mode:1; __u32 eswitch_encap_mode:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -1983,12 +2092,14 @@ devlink_eswitch_get(struct ynl_sock *ys, struct devlink_eswitch_get_req *req); /* DEVLINK_CMD_ESWITCH_SET - do */ struct devlink_eswitch_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 eswitch_mode:1; __u32 eswitch_inline_mode:1; __u32 eswitch_encap_mode:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2009,20 +2120,20 @@ devlink_eswitch_set_req_set_bus_name(struct devlink_eswitch_set_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_eswitch_set_req_set_dev_name(struct devlink_eswitch_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_eswitch_set_req_set_eswitch_mode(struct devlink_eswitch_set_req *req, @@ -2056,10 +2167,10 @@ int devlink_eswitch_set(struct ynl_sock *ys, /* DEVLINK_CMD_DPIPE_TABLE_GET - do */ struct devlink_dpipe_table_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 dpipe_table_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + __u32 dpipe_table_name; + } _len; char *bus_name; char *dev_name; @@ -2078,38 +2189,40 @@ devlink_dpipe_table_get_req_set_bus_name(struct devlink_dpipe_table_get_req *req const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_dpipe_table_get_req_set_dev_name(struct devlink_dpipe_table_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_dpipe_table_get_req_set_dpipe_table_name(struct devlink_dpipe_table_get_req *req, const char *dpipe_table_name) { free(req->dpipe_table_name); - req->_present.dpipe_table_name_len = strlen(dpipe_table_name); - req->dpipe_table_name = malloc(req->_present.dpipe_table_name_len + 1); - memcpy(req->dpipe_table_name, dpipe_table_name, req->_present.dpipe_table_name_len); - req->dpipe_table_name[req->_present.dpipe_table_name_len] = 0; + req->_len.dpipe_table_name = strlen(dpipe_table_name); + req->dpipe_table_name = malloc(req->_len.dpipe_table_name + 1); + memcpy(req->dpipe_table_name, dpipe_table_name, req->_len.dpipe_table_name); + req->dpipe_table_name[req->_len.dpipe_table_name] = 0; } struct devlink_dpipe_table_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 dpipe_tables:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2129,10 +2242,10 @@ devlink_dpipe_table_get(struct ynl_sock *ys, /* DEVLINK_CMD_DPIPE_ENTRIES_GET - do */ struct devlink_dpipe_entries_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 dpipe_table_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + __u32 dpipe_table_name; + } _len; char *bus_name; char *dev_name; @@ -2152,38 +2265,40 @@ devlink_dpipe_entries_get_req_set_bus_name(struct devlink_dpipe_entries_get_req const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_dpipe_entries_get_req_set_dev_name(struct devlink_dpipe_entries_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_dpipe_entries_get_req_set_dpipe_table_name(struct devlink_dpipe_entries_get_req *req, const char *dpipe_table_name) { free(req->dpipe_table_name); - req->_present.dpipe_table_name_len = strlen(dpipe_table_name); - req->dpipe_table_name = malloc(req->_present.dpipe_table_name_len + 1); - memcpy(req->dpipe_table_name, dpipe_table_name, req->_present.dpipe_table_name_len); - req->dpipe_table_name[req->_present.dpipe_table_name_len] = 0; + req->_len.dpipe_table_name = strlen(dpipe_table_name); + req->dpipe_table_name = malloc(req->_len.dpipe_table_name + 1); + memcpy(req->dpipe_table_name, dpipe_table_name, req->_len.dpipe_table_name); + req->dpipe_table_name[req->_len.dpipe_table_name] = 0; } struct devlink_dpipe_entries_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 dpipe_entries:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2204,9 +2319,9 @@ devlink_dpipe_entries_get(struct ynl_sock *ys, /* DEVLINK_CMD_DPIPE_HEADERS_GET - do */ struct devlink_dpipe_headers_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2225,28 +2340,30 @@ devlink_dpipe_headers_get_req_set_bus_name(struct devlink_dpipe_headers_get_req const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_dpipe_headers_get_req_set_dev_name(struct devlink_dpipe_headers_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_dpipe_headers_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 dpipe_headers:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2267,11 +2384,13 @@ devlink_dpipe_headers_get(struct ynl_sock *ys, /* DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET - do */ struct devlink_dpipe_table_counters_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 dpipe_table_name_len; __u32 dpipe_table_counters_enabled:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 dpipe_table_name; + } _len; char *bus_name; char *dev_name; @@ -2292,30 +2411,30 @@ devlink_dpipe_table_counters_set_req_set_bus_name(struct devlink_dpipe_table_cou const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_dpipe_table_counters_set_req_set_dev_name(struct devlink_dpipe_table_counters_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_dpipe_table_counters_set_req_set_dpipe_table_name(struct devlink_dpipe_table_counters_set_req *req, const char *dpipe_table_name) { free(req->dpipe_table_name); - req->_present.dpipe_table_name_len = strlen(dpipe_table_name); - req->dpipe_table_name = malloc(req->_present.dpipe_table_name_len + 1); - memcpy(req->dpipe_table_name, dpipe_table_name, req->_present.dpipe_table_name_len); - req->dpipe_table_name[req->_present.dpipe_table_name_len] = 0; + req->_len.dpipe_table_name = strlen(dpipe_table_name); + req->dpipe_table_name = malloc(req->_len.dpipe_table_name + 1); + memcpy(req->dpipe_table_name, dpipe_table_name, req->_len.dpipe_table_name); + req->dpipe_table_name[req->_len.dpipe_table_name] = 0; } static inline void devlink_dpipe_table_counters_set_req_set_dpipe_table_counters_enabled(struct devlink_dpipe_table_counters_set_req *req, @@ -2335,11 +2454,13 @@ int devlink_dpipe_table_counters_set(struct ynl_sock *ys, /* DEVLINK_CMD_RESOURCE_SET - do */ struct devlink_resource_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 resource_id:1; __u32 resource_size:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2359,20 +2480,20 @@ devlink_resource_set_req_set_bus_name(struct devlink_resource_set_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_resource_set_req_set_dev_name(struct devlink_resource_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_resource_set_req_set_resource_id(struct devlink_resource_set_req *req, @@ -2399,9 +2520,9 @@ int devlink_resource_set(struct ynl_sock *ys, /* DEVLINK_CMD_RESOURCE_DUMP - do */ struct devlink_resource_dump_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2419,28 +2540,30 @@ devlink_resource_dump_req_set_bus_name(struct devlink_resource_dump_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_resource_dump_req_set_dev_name(struct devlink_resource_dump_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_resource_dump_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 resource_list:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2460,14 +2583,16 @@ devlink_resource_dump(struct ynl_sock *ys, /* DEVLINK_CMD_RELOAD - do */ struct devlink_reload_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 reload_action:1; __u32 reload_limits:1; __u32 netns_pid:1; __u32 netns_fd:1; __u32 netns_id:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2489,20 +2614,20 @@ devlink_reload_req_set_bus_name(struct devlink_reload_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_reload_req_set_dev_name(struct devlink_reload_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_reload_req_set_reload_action(struct devlink_reload_req *req, @@ -2540,10 +2665,12 @@ devlink_reload_req_set_netns_id(struct devlink_reload_req *req, __u32 netns_id) struct devlink_reload_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 reload_actions_performed:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2562,10 +2689,10 @@ devlink_reload(struct ynl_sock *ys, struct devlink_reload_req *req); /* DEVLINK_CMD_PARAM_GET - do */ struct devlink_param_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 param_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + __u32 param_name; + } _len; char *bus_name; char *dev_name; @@ -2583,38 +2710,38 @@ devlink_param_get_req_set_bus_name(struct devlink_param_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_param_get_req_set_dev_name(struct devlink_param_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_param_get_req_set_param_name(struct devlink_param_get_req *req, const char *param_name) { free(req->param_name); - req->_present.param_name_len = strlen(param_name); - req->param_name = malloc(req->_present.param_name_len + 1); - memcpy(req->param_name, param_name, req->_present.param_name_len); - req->param_name[req->_present.param_name_len] = 0; + req->_len.param_name = strlen(param_name); + req->param_name = malloc(req->_len.param_name + 1); + memcpy(req->param_name, param_name, req->_len.param_name); + req->param_name[req->_len.param_name] = 0; } struct devlink_param_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 param_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + __u32 param_name; + } _len; char *bus_name; char *dev_name; @@ -2632,9 +2759,9 @@ devlink_param_get(struct ynl_sock *ys, struct devlink_param_get_req *req); /* DEVLINK_CMD_PARAM_GET - dump */ struct devlink_param_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2652,20 +2779,20 @@ devlink_param_get_req_dump_set_bus_name(struct devlink_param_get_req_dump *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_param_get_req_dump_set_dev_name(struct devlink_param_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_param_get_list { @@ -2683,12 +2810,14 @@ devlink_param_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_PARAM_SET - do */ struct devlink_param_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 param_name_len; __u32 param_type:1; __u32 param_value_cmode:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 param_name; + } _len; char *bus_name; char *dev_name; @@ -2708,30 +2837,30 @@ devlink_param_set_req_set_bus_name(struct devlink_param_set_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_param_set_req_set_dev_name(struct devlink_param_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_param_set_req_set_param_name(struct devlink_param_set_req *req, const char *param_name) { free(req->param_name); - req->_present.param_name_len = strlen(param_name); - req->param_name = malloc(req->_present.param_name_len + 1); - memcpy(req->param_name, param_name, req->_present.param_name_len); - req->param_name[req->_present.param_name_len] = 0; + req->_len.param_name = strlen(param_name); + req->param_name = malloc(req->_len.param_name + 1); + memcpy(req->param_name, param_name, req->_len.param_name); + req->param_name[req->_len.param_name] = 0; } static inline void devlink_param_set_req_set_param_type(struct devlink_param_set_req *req, @@ -2757,11 +2886,13 @@ int devlink_param_set(struct ynl_sock *ys, struct devlink_param_set_req *req); /* DEVLINK_CMD_REGION_GET - do */ struct devlink_region_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 region_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 region_name; + } _len; char *bus_name; char *dev_name; @@ -2780,20 +2911,20 @@ devlink_region_get_req_set_bus_name(struct devlink_region_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_region_get_req_set_dev_name(struct devlink_region_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_region_get_req_set_port_index(struct devlink_region_get_req *req, @@ -2807,19 +2938,21 @@ devlink_region_get_req_set_region_name(struct devlink_region_get_req *req, const char *region_name) { free(req->region_name); - req->_present.region_name_len = strlen(region_name); - req->region_name = malloc(req->_present.region_name_len + 1); - memcpy(req->region_name, region_name, req->_present.region_name_len); - req->region_name[req->_present.region_name_len] = 0; + req->_len.region_name = strlen(region_name); + req->region_name = malloc(req->_len.region_name + 1); + memcpy(req->region_name, region_name, req->_len.region_name); + req->region_name[req->_len.region_name] = 0; } struct devlink_region_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 region_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 region_name; + } _len; char *bus_name; char *dev_name; @@ -2838,9 +2971,9 @@ devlink_region_get(struct ynl_sock *ys, struct devlink_region_get_req *req); /* DEVLINK_CMD_REGION_GET - dump */ struct devlink_region_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -2858,20 +2991,20 @@ devlink_region_get_req_dump_set_bus_name(struct devlink_region_get_req_dump *req const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_region_get_req_dump_set_dev_name(struct devlink_region_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_region_get_list { @@ -2889,12 +3022,14 @@ devlink_region_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_REGION_NEW - do */ struct devlink_region_new_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 region_name_len; __u32 region_snapshot_id:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 region_name; + } _len; char *bus_name; char *dev_name; @@ -2914,20 +3049,20 @@ devlink_region_new_req_set_bus_name(struct devlink_region_new_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_region_new_req_set_dev_name(struct devlink_region_new_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_region_new_req_set_port_index(struct devlink_region_new_req *req, @@ -2941,10 +3076,10 @@ devlink_region_new_req_set_region_name(struct devlink_region_new_req *req, const char *region_name) { free(req->region_name); - req->_present.region_name_len = strlen(region_name); - req->region_name = malloc(req->_present.region_name_len + 1); - memcpy(req->region_name, region_name, req->_present.region_name_len); - req->region_name[req->_present.region_name_len] = 0; + req->_len.region_name = strlen(region_name); + req->region_name = malloc(req->_len.region_name + 1); + memcpy(req->region_name, region_name, req->_len.region_name); + req->region_name[req->_len.region_name] = 0; } static inline void devlink_region_new_req_set_region_snapshot_id(struct devlink_region_new_req *req, @@ -2956,12 +3091,14 @@ devlink_region_new_req_set_region_snapshot_id(struct devlink_region_new_req *req struct devlink_region_new_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 region_name_len; __u32 region_snapshot_id:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 region_name; + } _len; char *bus_name; char *dev_name; @@ -2982,12 +3119,14 @@ devlink_region_new(struct ynl_sock *ys, struct devlink_region_new_req *req); /* DEVLINK_CMD_REGION_DEL - do */ struct devlink_region_del_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 region_name_len; __u32 region_snapshot_id:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 region_name; + } _len; char *bus_name; char *dev_name; @@ -3007,20 +3146,20 @@ devlink_region_del_req_set_bus_name(struct devlink_region_del_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_region_del_req_set_dev_name(struct devlink_region_del_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_region_del_req_set_port_index(struct devlink_region_del_req *req, @@ -3034,10 +3173,10 @@ devlink_region_del_req_set_region_name(struct devlink_region_del_req *req, const char *region_name) { free(req->region_name); - req->_present.region_name_len = strlen(region_name); - req->region_name = malloc(req->_present.region_name_len + 1); - memcpy(req->region_name, region_name, req->_present.region_name_len); - req->region_name[req->_present.region_name_len] = 0; + req->_len.region_name = strlen(region_name); + req->region_name = malloc(req->_len.region_name + 1); + memcpy(req->region_name, region_name, req->_len.region_name); + req->region_name[req->_len.region_name] = 0; } static inline void devlink_region_del_req_set_region_snapshot_id(struct devlink_region_del_req *req, @@ -3056,15 +3195,17 @@ int devlink_region_del(struct ynl_sock *ys, struct devlink_region_del_req *req); /* DEVLINK_CMD_REGION_READ - dump */ struct devlink_region_read_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 region_name_len; __u32 region_snapshot_id:1; __u32 region_direct:1; __u32 region_chunk_addr:1; __u32 region_chunk_len:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 region_name; + } _len; char *bus_name; char *dev_name; @@ -3087,20 +3228,20 @@ devlink_region_read_req_set_bus_name(struct devlink_region_read_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_region_read_req_set_dev_name(struct devlink_region_read_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_region_read_req_set_port_index(struct devlink_region_read_req *req, @@ -3114,10 +3255,10 @@ devlink_region_read_req_set_region_name(struct devlink_region_read_req *req, const char *region_name) { free(req->region_name); - req->_present.region_name_len = strlen(region_name); - req->region_name = malloc(req->_present.region_name_len + 1); - memcpy(req->region_name, region_name, req->_present.region_name_len); - req->region_name[req->_present.region_name_len] = 0; + req->_len.region_name = strlen(region_name); + req->region_name = malloc(req->_len.region_name + 1); + memcpy(req->region_name, region_name, req->_len.region_name); + req->region_name[req->_len.region_name] = 0; } static inline void devlink_region_read_req_set_region_snapshot_id(struct devlink_region_read_req *req, @@ -3148,11 +3289,13 @@ devlink_region_read_req_set_region_chunk_len(struct devlink_region_read_req *req struct devlink_region_read_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 region_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 region_name; + } _len; char *bus_name; char *dev_name; @@ -3175,10 +3318,12 @@ devlink_region_read_dump(struct ynl_sock *ys, /* DEVLINK_CMD_PORT_PARAM_GET - do */ struct devlink_port_param_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -3197,20 +3342,20 @@ devlink_port_param_get_req_set_bus_name(struct devlink_port_param_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_port_param_get_req_set_dev_name(struct devlink_port_param_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_port_param_get_req_set_port_index(struct devlink_port_param_get_req *req, @@ -3222,10 +3367,12 @@ devlink_port_param_get_req_set_port_index(struct devlink_port_param_get_req *req struct devlink_port_param_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -3256,10 +3403,12 @@ devlink_port_param_get_dump(struct ynl_sock *ys); /* DEVLINK_CMD_PORT_PARAM_SET - do */ struct devlink_port_param_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -3278,20 +3427,20 @@ devlink_port_param_set_req_set_bus_name(struct devlink_port_param_set_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_port_param_set_req_set_dev_name(struct devlink_port_param_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_port_param_set_req_set_port_index(struct devlink_port_param_set_req *req, @@ -3311,9 +3460,9 @@ int devlink_port_param_set(struct ynl_sock *ys, /* DEVLINK_CMD_INFO_GET - do */ struct devlink_info_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -3330,40 +3479,42 @@ devlink_info_get_req_set_bus_name(struct devlink_info_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_info_get_req_set_dev_name(struct devlink_info_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_info_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 info_driver_name_len; - __u32 info_serial_number_len; - __u32 info_board_serial_number_len; - } _present; + __u32 bus_name; + __u32 dev_name; + __u32 info_driver_name; + __u32 info_serial_number; + __u32 info_board_serial_number; + } _len; + struct { + __u32 info_version_fixed; + __u32 info_version_running; + __u32 info_version_stored; + } _count; char *bus_name; char *dev_name; char *info_driver_name; char *info_serial_number; - unsigned int n_info_version_fixed; struct devlink_dl_info_version *info_version_fixed; - unsigned int n_info_version_running; 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; }; @@ -3390,11 +3541,13 @@ struct devlink_info_get_list *devlink_info_get_dump(struct ynl_sock *ys); /* DEVLINK_CMD_HEALTH_REPORTER_GET - do */ struct devlink_health_reporter_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 health_reporter_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 health_reporter_name; + } _len; char *bus_name; char *dev_name; @@ -3415,20 +3568,20 @@ devlink_health_reporter_get_req_set_bus_name(struct devlink_health_reporter_get_ const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_health_reporter_get_req_set_dev_name(struct devlink_health_reporter_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_health_reporter_get_req_set_port_index(struct devlink_health_reporter_get_req *req, @@ -3442,19 +3595,21 @@ devlink_health_reporter_get_req_set_health_reporter_name(struct devlink_health_r const char *health_reporter_name) { free(req->health_reporter_name); - req->_present.health_reporter_name_len = strlen(health_reporter_name); - req->health_reporter_name = malloc(req->_present.health_reporter_name_len + 1); - memcpy(req->health_reporter_name, health_reporter_name, req->_present.health_reporter_name_len); - req->health_reporter_name[req->_present.health_reporter_name_len] = 0; + req->_len.health_reporter_name = strlen(health_reporter_name); + req->health_reporter_name = malloc(req->_len.health_reporter_name + 1); + memcpy(req->health_reporter_name, health_reporter_name, req->_len.health_reporter_name); + req->health_reporter_name[req->_len.health_reporter_name] = 0; } struct devlink_health_reporter_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 health_reporter_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 health_reporter_name; + } _len; char *bus_name; char *dev_name; @@ -3475,10 +3630,12 @@ devlink_health_reporter_get(struct ynl_sock *ys, /* DEVLINK_CMD_HEALTH_REPORTER_GET - dump */ struct devlink_health_reporter_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -3498,20 +3655,20 @@ devlink_health_reporter_get_req_dump_set_bus_name(struct devlink_health_reporter const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_health_reporter_get_req_dump_set_dev_name(struct devlink_health_reporter_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_health_reporter_get_req_dump_set_port_index(struct devlink_health_reporter_get_req_dump *req, @@ -3537,14 +3694,16 @@ devlink_health_reporter_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_HEALTH_REPORTER_SET - do */ struct devlink_health_reporter_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 health_reporter_name_len; __u32 health_reporter_graceful_period:1; __u32 health_reporter_auto_recover:1; __u32 health_reporter_auto_dump:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 health_reporter_name; + } _len; char *bus_name; char *dev_name; @@ -3568,20 +3727,20 @@ devlink_health_reporter_set_req_set_bus_name(struct devlink_health_reporter_set_ const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_health_reporter_set_req_set_dev_name(struct devlink_health_reporter_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_health_reporter_set_req_set_port_index(struct devlink_health_reporter_set_req *req, @@ -3595,10 +3754,10 @@ devlink_health_reporter_set_req_set_health_reporter_name(struct devlink_health_r const char *health_reporter_name) { free(req->health_reporter_name); - req->_present.health_reporter_name_len = strlen(health_reporter_name); - req->health_reporter_name = malloc(req->_present.health_reporter_name_len + 1); - memcpy(req->health_reporter_name, health_reporter_name, req->_present.health_reporter_name_len); - req->health_reporter_name[req->_present.health_reporter_name_len] = 0; + req->_len.health_reporter_name = strlen(health_reporter_name); + req->health_reporter_name = malloc(req->_len.health_reporter_name + 1); + memcpy(req->health_reporter_name, health_reporter_name, req->_len.health_reporter_name); + req->health_reporter_name[req->_len.health_reporter_name] = 0; } static inline void devlink_health_reporter_set_req_set_health_reporter_graceful_period(struct devlink_health_reporter_set_req *req, @@ -3632,11 +3791,13 @@ int devlink_health_reporter_set(struct ynl_sock *ys, /* DEVLINK_CMD_HEALTH_REPORTER_RECOVER - do */ struct devlink_health_reporter_recover_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 health_reporter_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 health_reporter_name; + } _len; char *bus_name; char *dev_name; @@ -3657,20 +3818,20 @@ devlink_health_reporter_recover_req_set_bus_name(struct devlink_health_reporter_ const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_health_reporter_recover_req_set_dev_name(struct devlink_health_reporter_recover_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_health_reporter_recover_req_set_port_index(struct devlink_health_reporter_recover_req *req, @@ -3684,10 +3845,10 @@ devlink_health_reporter_recover_req_set_health_reporter_name(struct devlink_heal const char *health_reporter_name) { free(req->health_reporter_name); - req->_present.health_reporter_name_len = strlen(health_reporter_name); - req->health_reporter_name = malloc(req->_present.health_reporter_name_len + 1); - memcpy(req->health_reporter_name, health_reporter_name, req->_present.health_reporter_name_len); - req->health_reporter_name[req->_present.health_reporter_name_len] = 0; + req->_len.health_reporter_name = strlen(health_reporter_name); + req->health_reporter_name = malloc(req->_len.health_reporter_name + 1); + memcpy(req->health_reporter_name, health_reporter_name, req->_len.health_reporter_name); + req->health_reporter_name[req->_len.health_reporter_name] = 0; } /* @@ -3700,11 +3861,13 @@ int devlink_health_reporter_recover(struct ynl_sock *ys, /* DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE - do */ struct devlink_health_reporter_diagnose_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 health_reporter_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 health_reporter_name; + } _len; char *bus_name; char *dev_name; @@ -3725,20 +3888,20 @@ devlink_health_reporter_diagnose_req_set_bus_name(struct devlink_health_reporter const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_health_reporter_diagnose_req_set_dev_name(struct devlink_health_reporter_diagnose_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_health_reporter_diagnose_req_set_port_index(struct devlink_health_reporter_diagnose_req *req, @@ -3752,10 +3915,10 @@ devlink_health_reporter_diagnose_req_set_health_reporter_name(struct devlink_hea const char *health_reporter_name) { free(req->health_reporter_name); - req->_present.health_reporter_name_len = strlen(health_reporter_name); - req->health_reporter_name = malloc(req->_present.health_reporter_name_len + 1); - memcpy(req->health_reporter_name, health_reporter_name, req->_present.health_reporter_name_len); - req->health_reporter_name[req->_present.health_reporter_name_len] = 0; + req->_len.health_reporter_name = strlen(health_reporter_name); + req->health_reporter_name = malloc(req->_len.health_reporter_name + 1); + memcpy(req->health_reporter_name, health_reporter_name, req->_len.health_reporter_name); + req->health_reporter_name[req->_len.health_reporter_name] = 0; } /* @@ -3768,11 +3931,13 @@ int devlink_health_reporter_diagnose(struct ynl_sock *ys, /* DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET - dump */ struct devlink_health_reporter_dump_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 health_reporter_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 health_reporter_name; + } _len; char *bus_name; char *dev_name; @@ -3793,20 +3958,20 @@ devlink_health_reporter_dump_get_req_set_bus_name(struct devlink_health_reporter const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_health_reporter_dump_get_req_set_dev_name(struct devlink_health_reporter_dump_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_health_reporter_dump_get_req_set_port_index(struct devlink_health_reporter_dump_get_req *req, @@ -3820,10 +3985,10 @@ devlink_health_reporter_dump_get_req_set_health_reporter_name(struct devlink_hea const char *health_reporter_name) { free(req->health_reporter_name); - req->_present.health_reporter_name_len = strlen(health_reporter_name); - req->health_reporter_name = malloc(req->_present.health_reporter_name_len + 1); - memcpy(req->health_reporter_name, health_reporter_name, req->_present.health_reporter_name_len); - req->health_reporter_name[req->_present.health_reporter_name_len] = 0; + req->_len.health_reporter_name = strlen(health_reporter_name); + req->health_reporter_name = malloc(req->_len.health_reporter_name + 1); + memcpy(req->health_reporter_name, health_reporter_name, req->_len.health_reporter_name); + req->health_reporter_name[req->_len.health_reporter_name] = 0; } struct devlink_health_reporter_dump_get_rsp { @@ -3850,11 +4015,13 @@ devlink_health_reporter_dump_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR - do */ struct devlink_health_reporter_dump_clear_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 health_reporter_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 health_reporter_name; + } _len; char *bus_name; char *dev_name; @@ -3875,20 +4042,20 @@ devlink_health_reporter_dump_clear_req_set_bus_name(struct devlink_health_report const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_health_reporter_dump_clear_req_set_dev_name(struct devlink_health_reporter_dump_clear_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_health_reporter_dump_clear_req_set_port_index(struct devlink_health_reporter_dump_clear_req *req, @@ -3902,10 +4069,10 @@ devlink_health_reporter_dump_clear_req_set_health_reporter_name(struct devlink_h const char *health_reporter_name) { free(req->health_reporter_name); - req->_present.health_reporter_name_len = strlen(health_reporter_name); - req->health_reporter_name = malloc(req->_present.health_reporter_name_len + 1); - memcpy(req->health_reporter_name, health_reporter_name, req->_present.health_reporter_name_len); - req->health_reporter_name[req->_present.health_reporter_name_len] = 0; + req->_len.health_reporter_name = strlen(health_reporter_name); + req->health_reporter_name = malloc(req->_len.health_reporter_name + 1); + memcpy(req->health_reporter_name, health_reporter_name, req->_len.health_reporter_name); + req->health_reporter_name[req->_len.health_reporter_name] = 0; } /* @@ -3918,12 +4085,14 @@ int devlink_health_reporter_dump_clear(struct ynl_sock *ys, /* DEVLINK_CMD_FLASH_UPDATE - do */ struct devlink_flash_update_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 flash_update_file_name_len; - __u32 flash_update_component_len; __u32 flash_update_overwrite_mask:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 flash_update_file_name; + __u32 flash_update_component; + } _len; char *bus_name; char *dev_name; @@ -3944,40 +4113,40 @@ devlink_flash_update_req_set_bus_name(struct devlink_flash_update_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_flash_update_req_set_dev_name(struct devlink_flash_update_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_flash_update_req_set_flash_update_file_name(struct devlink_flash_update_req *req, const char *flash_update_file_name) { free(req->flash_update_file_name); - req->_present.flash_update_file_name_len = strlen(flash_update_file_name); - req->flash_update_file_name = malloc(req->_present.flash_update_file_name_len + 1); - memcpy(req->flash_update_file_name, flash_update_file_name, req->_present.flash_update_file_name_len); - req->flash_update_file_name[req->_present.flash_update_file_name_len] = 0; + req->_len.flash_update_file_name = strlen(flash_update_file_name); + req->flash_update_file_name = malloc(req->_len.flash_update_file_name + 1); + memcpy(req->flash_update_file_name, flash_update_file_name, req->_len.flash_update_file_name); + req->flash_update_file_name[req->_len.flash_update_file_name] = 0; } static inline void devlink_flash_update_req_set_flash_update_component(struct devlink_flash_update_req *req, const char *flash_update_component) { free(req->flash_update_component); - req->_present.flash_update_component_len = strlen(flash_update_component); - req->flash_update_component = malloc(req->_present.flash_update_component_len + 1); - memcpy(req->flash_update_component, flash_update_component, req->_present.flash_update_component_len); - req->flash_update_component[req->_present.flash_update_component_len] = 0; + req->_len.flash_update_component = strlen(flash_update_component); + req->flash_update_component = malloc(req->_len.flash_update_component + 1); + memcpy(req->flash_update_component, flash_update_component, req->_len.flash_update_component); + req->flash_update_component[req->_len.flash_update_component] = 0; } static inline void devlink_flash_update_req_set_flash_update_overwrite_mask(struct devlink_flash_update_req *req, @@ -3997,10 +4166,10 @@ int devlink_flash_update(struct ynl_sock *ys, /* DEVLINK_CMD_TRAP_GET - do */ struct devlink_trap_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 trap_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + __u32 trap_name; + } _len; char *bus_name; char *dev_name; @@ -4018,38 +4187,38 @@ devlink_trap_get_req_set_bus_name(struct devlink_trap_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_trap_get_req_set_dev_name(struct devlink_trap_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_trap_get_req_set_trap_name(struct devlink_trap_get_req *req, const char *trap_name) { free(req->trap_name); - req->_present.trap_name_len = strlen(trap_name); - req->trap_name = malloc(req->_present.trap_name_len + 1); - memcpy(req->trap_name, trap_name, req->_present.trap_name_len); - req->trap_name[req->_present.trap_name_len] = 0; + req->_len.trap_name = strlen(trap_name); + req->trap_name = malloc(req->_len.trap_name + 1); + memcpy(req->trap_name, trap_name, req->_len.trap_name); + req->trap_name[req->_len.trap_name] = 0; } struct devlink_trap_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 trap_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + __u32 trap_name; + } _len; char *bus_name; char *dev_name; @@ -4067,9 +4236,9 @@ devlink_trap_get(struct ynl_sock *ys, struct devlink_trap_get_req *req); /* DEVLINK_CMD_TRAP_GET - dump */ struct devlink_trap_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -4087,20 +4256,20 @@ devlink_trap_get_req_dump_set_bus_name(struct devlink_trap_get_req_dump *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_trap_get_req_dump_set_dev_name(struct devlink_trap_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_trap_get_list { @@ -4118,11 +4287,13 @@ devlink_trap_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_TRAP_SET - do */ struct devlink_trap_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 trap_name_len; __u32 trap_action:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 trap_name; + } _len; char *bus_name; char *dev_name; @@ -4141,30 +4312,30 @@ devlink_trap_set_req_set_bus_name(struct devlink_trap_set_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_trap_set_req_set_dev_name(struct devlink_trap_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_trap_set_req_set_trap_name(struct devlink_trap_set_req *req, const char *trap_name) { free(req->trap_name); - req->_present.trap_name_len = strlen(trap_name); - req->trap_name = malloc(req->_present.trap_name_len + 1); - memcpy(req->trap_name, trap_name, req->_present.trap_name_len); - req->trap_name[req->_present.trap_name_len] = 0; + req->_len.trap_name = strlen(trap_name); + req->trap_name = malloc(req->_len.trap_name + 1); + memcpy(req->trap_name, trap_name, req->_len.trap_name); + req->trap_name[req->_len.trap_name] = 0; } static inline void devlink_trap_set_req_set_trap_action(struct devlink_trap_set_req *req, @@ -4183,10 +4354,10 @@ int devlink_trap_set(struct ynl_sock *ys, struct devlink_trap_set_req *req); /* DEVLINK_CMD_TRAP_GROUP_GET - do */ struct devlink_trap_group_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 trap_group_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + __u32 trap_group_name; + } _len; char *bus_name; char *dev_name; @@ -4205,38 +4376,38 @@ devlink_trap_group_get_req_set_bus_name(struct devlink_trap_group_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_trap_group_get_req_set_dev_name(struct devlink_trap_group_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_trap_group_get_req_set_trap_group_name(struct devlink_trap_group_get_req *req, const char *trap_group_name) { free(req->trap_group_name); - req->_present.trap_group_name_len = strlen(trap_group_name); - req->trap_group_name = malloc(req->_present.trap_group_name_len + 1); - memcpy(req->trap_group_name, trap_group_name, req->_present.trap_group_name_len); - req->trap_group_name[req->_present.trap_group_name_len] = 0; + req->_len.trap_group_name = strlen(trap_group_name); + req->trap_group_name = malloc(req->_len.trap_group_name + 1); + memcpy(req->trap_group_name, trap_group_name, req->_len.trap_group_name); + req->trap_group_name[req->_len.trap_group_name] = 0; } struct devlink_trap_group_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 trap_group_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + __u32 trap_group_name; + } _len; char *bus_name; char *dev_name; @@ -4255,9 +4426,9 @@ devlink_trap_group_get(struct ynl_sock *ys, /* DEVLINK_CMD_TRAP_GROUP_GET - dump */ struct devlink_trap_group_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -4276,20 +4447,20 @@ devlink_trap_group_get_req_dump_set_bus_name(struct devlink_trap_group_get_req_d const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_trap_group_get_req_dump_set_dev_name(struct devlink_trap_group_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_trap_group_get_list { @@ -4307,12 +4478,14 @@ devlink_trap_group_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_TRAP_GROUP_SET - do */ struct devlink_trap_group_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 trap_group_name_len; __u32 trap_action:1; __u32 trap_policer_id:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 trap_group_name; + } _len; char *bus_name; char *dev_name; @@ -4333,30 +4506,30 @@ devlink_trap_group_set_req_set_bus_name(struct devlink_trap_group_set_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_trap_group_set_req_set_dev_name(struct devlink_trap_group_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_trap_group_set_req_set_trap_group_name(struct devlink_trap_group_set_req *req, const char *trap_group_name) { free(req->trap_group_name); - req->_present.trap_group_name_len = strlen(trap_group_name); - req->trap_group_name = malloc(req->_present.trap_group_name_len + 1); - memcpy(req->trap_group_name, trap_group_name, req->_present.trap_group_name_len); - req->trap_group_name[req->_present.trap_group_name_len] = 0; + req->_len.trap_group_name = strlen(trap_group_name); + req->trap_group_name = malloc(req->_len.trap_group_name + 1); + memcpy(req->trap_group_name, trap_group_name, req->_len.trap_group_name); + req->trap_group_name[req->_len.trap_group_name] = 0; } static inline void devlink_trap_group_set_req_set_trap_action(struct devlink_trap_group_set_req *req, @@ -4383,10 +4556,12 @@ int devlink_trap_group_set(struct ynl_sock *ys, /* DEVLINK_CMD_TRAP_POLICER_GET - do */ struct devlink_trap_policer_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 trap_policer_id:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -4406,20 +4581,20 @@ devlink_trap_policer_get_req_set_bus_name(struct devlink_trap_policer_get_req *r const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_trap_policer_get_req_set_dev_name(struct devlink_trap_policer_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_trap_policer_get_req_set_trap_policer_id(struct devlink_trap_policer_get_req *req, @@ -4431,10 +4606,12 @@ devlink_trap_policer_get_req_set_trap_policer_id(struct devlink_trap_policer_get struct devlink_trap_policer_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 trap_policer_id:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -4454,9 +4631,9 @@ devlink_trap_policer_get(struct ynl_sock *ys, /* DEVLINK_CMD_TRAP_POLICER_GET - dump */ struct devlink_trap_policer_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -4475,20 +4652,20 @@ devlink_trap_policer_get_req_dump_set_bus_name(struct devlink_trap_policer_get_r const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_trap_policer_get_req_dump_set_dev_name(struct devlink_trap_policer_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_trap_policer_get_list { @@ -4507,12 +4684,14 @@ devlink_trap_policer_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_TRAP_POLICER_SET - do */ struct devlink_trap_policer_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 trap_policer_id:1; __u32 trap_policer_rate:1; __u32 trap_policer_burst:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -4534,20 +4713,20 @@ devlink_trap_policer_set_req_set_bus_name(struct devlink_trap_policer_set_req *r const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_trap_policer_set_req_set_dev_name(struct devlink_trap_policer_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_trap_policer_set_req_set_trap_policer_id(struct devlink_trap_policer_set_req *req, @@ -4581,11 +4760,13 @@ int devlink_trap_policer_set(struct ynl_sock *ys, /* DEVLINK_CMD_HEALTH_REPORTER_TEST - do */ struct devlink_health_reporter_test_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 health_reporter_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 health_reporter_name; + } _len; char *bus_name; char *dev_name; @@ -4606,20 +4787,20 @@ devlink_health_reporter_test_req_set_bus_name(struct devlink_health_reporter_tes const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_health_reporter_test_req_set_dev_name(struct devlink_health_reporter_test_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_health_reporter_test_req_set_port_index(struct devlink_health_reporter_test_req *req, @@ -4633,10 +4814,10 @@ devlink_health_reporter_test_req_set_health_reporter_name(struct devlink_health_ const char *health_reporter_name) { free(req->health_reporter_name); - req->_present.health_reporter_name_len = strlen(health_reporter_name); - req->health_reporter_name = malloc(req->_present.health_reporter_name_len + 1); - memcpy(req->health_reporter_name, health_reporter_name, req->_present.health_reporter_name_len); - req->health_reporter_name[req->_present.health_reporter_name_len] = 0; + req->_len.health_reporter_name = strlen(health_reporter_name); + req->health_reporter_name = malloc(req->_len.health_reporter_name + 1); + memcpy(req->health_reporter_name, health_reporter_name, req->_len.health_reporter_name); + req->health_reporter_name[req->_len.health_reporter_name] = 0; } /* @@ -4649,11 +4830,13 @@ int devlink_health_reporter_test(struct ynl_sock *ys, /* DEVLINK_CMD_RATE_GET - do */ struct devlink_rate_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 rate_node_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 rate_node_name; + } _len; char *bus_name; char *dev_name; @@ -4672,20 +4855,20 @@ devlink_rate_get_req_set_bus_name(struct devlink_rate_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_rate_get_req_set_dev_name(struct devlink_rate_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_rate_get_req_set_port_index(struct devlink_rate_get_req *req, @@ -4699,19 +4882,21 @@ devlink_rate_get_req_set_rate_node_name(struct devlink_rate_get_req *req, const char *rate_node_name) { free(req->rate_node_name); - req->_present.rate_node_name_len = strlen(rate_node_name); - req->rate_node_name = malloc(req->_present.rate_node_name_len + 1); - memcpy(req->rate_node_name, rate_node_name, req->_present.rate_node_name_len); - req->rate_node_name[req->_present.rate_node_name_len] = 0; + req->_len.rate_node_name = strlen(rate_node_name); + req->rate_node_name = malloc(req->_len.rate_node_name + 1); + memcpy(req->rate_node_name, rate_node_name, req->_len.rate_node_name); + req->rate_node_name[req->_len.rate_node_name] = 0; } struct devlink_rate_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; - __u32 rate_node_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 rate_node_name; + } _len; char *bus_name; char *dev_name; @@ -4730,9 +4915,9 @@ devlink_rate_get(struct ynl_sock *ys, struct devlink_rate_get_req *req); /* DEVLINK_CMD_RATE_GET - dump */ struct devlink_rate_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -4750,20 +4935,20 @@ devlink_rate_get_req_dump_set_bus_name(struct devlink_rate_get_req_dump *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_rate_get_req_dump_set_dev_name(struct devlink_rate_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_rate_get_list { @@ -4781,15 +4966,17 @@ devlink_rate_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_RATE_SET - do */ struct devlink_rate_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 rate_node_name_len; __u32 rate_tx_share:1; __u32 rate_tx_max:1; __u32 rate_tx_priority:1; __u32 rate_tx_weight:1; - __u32 rate_parent_node_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 rate_node_name; + __u32 rate_parent_node_name; + } _len; char *bus_name; char *dev_name; @@ -4812,30 +4999,30 @@ devlink_rate_set_req_set_bus_name(struct devlink_rate_set_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_rate_set_req_set_dev_name(struct devlink_rate_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_rate_set_req_set_rate_node_name(struct devlink_rate_set_req *req, const char *rate_node_name) { free(req->rate_node_name); - req->_present.rate_node_name_len = strlen(rate_node_name); - req->rate_node_name = malloc(req->_present.rate_node_name_len + 1); - memcpy(req->rate_node_name, rate_node_name, req->_present.rate_node_name_len); - req->rate_node_name[req->_present.rate_node_name_len] = 0; + req->_len.rate_node_name = strlen(rate_node_name); + req->rate_node_name = malloc(req->_len.rate_node_name + 1); + memcpy(req->rate_node_name, rate_node_name, req->_len.rate_node_name); + req->rate_node_name[req->_len.rate_node_name] = 0; } static inline void devlink_rate_set_req_set_rate_tx_share(struct devlink_rate_set_req *req, @@ -4870,10 +5057,10 @@ devlink_rate_set_req_set_rate_parent_node_name(struct devlink_rate_set_req *req, const char *rate_parent_node_name) { free(req->rate_parent_node_name); - req->_present.rate_parent_node_name_len = strlen(rate_parent_node_name); - req->rate_parent_node_name = malloc(req->_present.rate_parent_node_name_len + 1); - memcpy(req->rate_parent_node_name, rate_parent_node_name, req->_present.rate_parent_node_name_len); - req->rate_parent_node_name[req->_present.rate_parent_node_name_len] = 0; + req->_len.rate_parent_node_name = strlen(rate_parent_node_name); + req->rate_parent_node_name = malloc(req->_len.rate_parent_node_name + 1); + memcpy(req->rate_parent_node_name, rate_parent_node_name, req->_len.rate_parent_node_name); + req->rate_parent_node_name[req->_len.rate_parent_node_name] = 0; } /* @@ -4885,15 +5072,17 @@ int devlink_rate_set(struct ynl_sock *ys, struct devlink_rate_set_req *req); /* DEVLINK_CMD_RATE_NEW - do */ struct devlink_rate_new_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 rate_node_name_len; __u32 rate_tx_share:1; __u32 rate_tx_max:1; __u32 rate_tx_priority:1; __u32 rate_tx_weight:1; - __u32 rate_parent_node_name_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 rate_node_name; + __u32 rate_parent_node_name; + } _len; char *bus_name; char *dev_name; @@ -4916,30 +5105,30 @@ devlink_rate_new_req_set_bus_name(struct devlink_rate_new_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_rate_new_req_set_dev_name(struct devlink_rate_new_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_rate_new_req_set_rate_node_name(struct devlink_rate_new_req *req, const char *rate_node_name) { free(req->rate_node_name); - req->_present.rate_node_name_len = strlen(rate_node_name); - req->rate_node_name = malloc(req->_present.rate_node_name_len + 1); - memcpy(req->rate_node_name, rate_node_name, req->_present.rate_node_name_len); - req->rate_node_name[req->_present.rate_node_name_len] = 0; + req->_len.rate_node_name = strlen(rate_node_name); + req->rate_node_name = malloc(req->_len.rate_node_name + 1); + memcpy(req->rate_node_name, rate_node_name, req->_len.rate_node_name); + req->rate_node_name[req->_len.rate_node_name] = 0; } static inline void devlink_rate_new_req_set_rate_tx_share(struct devlink_rate_new_req *req, @@ -4974,10 +5163,10 @@ devlink_rate_new_req_set_rate_parent_node_name(struct devlink_rate_new_req *req, const char *rate_parent_node_name) { free(req->rate_parent_node_name); - req->_present.rate_parent_node_name_len = strlen(rate_parent_node_name); - req->rate_parent_node_name = malloc(req->_present.rate_parent_node_name_len + 1); - memcpy(req->rate_parent_node_name, rate_parent_node_name, req->_present.rate_parent_node_name_len); - req->rate_parent_node_name[req->_present.rate_parent_node_name_len] = 0; + req->_len.rate_parent_node_name = strlen(rate_parent_node_name); + req->rate_parent_node_name = malloc(req->_len.rate_parent_node_name + 1); + memcpy(req->rate_parent_node_name, rate_parent_node_name, req->_len.rate_parent_node_name); + req->rate_parent_node_name[req->_len.rate_parent_node_name] = 0; } /* @@ -4989,10 +5178,10 @@ int devlink_rate_new(struct ynl_sock *ys, struct devlink_rate_new_req *req); /* DEVLINK_CMD_RATE_DEL - do */ struct devlink_rate_del_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - __u32 rate_node_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + __u32 rate_node_name; + } _len; char *bus_name; char *dev_name; @@ -5010,30 +5199,30 @@ devlink_rate_del_req_set_bus_name(struct devlink_rate_del_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_rate_del_req_set_dev_name(struct devlink_rate_del_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_rate_del_req_set_rate_node_name(struct devlink_rate_del_req *req, const char *rate_node_name) { free(req->rate_node_name); - req->_present.rate_node_name_len = strlen(rate_node_name); - req->rate_node_name = malloc(req->_present.rate_node_name_len + 1); - memcpy(req->rate_node_name, rate_node_name, req->_present.rate_node_name_len); - req->rate_node_name[req->_present.rate_node_name_len] = 0; + req->_len.rate_node_name = strlen(rate_node_name); + req->rate_node_name = malloc(req->_len.rate_node_name + 1); + memcpy(req->rate_node_name, rate_node_name, req->_len.rate_node_name); + req->rate_node_name[req->_len.rate_node_name] = 0; } /* @@ -5045,10 +5234,12 @@ int devlink_rate_del(struct ynl_sock *ys, struct devlink_rate_del_req *req); /* DEVLINK_CMD_LINECARD_GET - do */ struct devlink_linecard_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 linecard_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -5067,20 +5258,20 @@ devlink_linecard_get_req_set_bus_name(struct devlink_linecard_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_linecard_get_req_set_dev_name(struct devlink_linecard_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_linecard_get_req_set_linecard_index(struct devlink_linecard_get_req *req, @@ -5092,10 +5283,12 @@ devlink_linecard_get_req_set_linecard_index(struct devlink_linecard_get_req *req struct devlink_linecard_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 linecard_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -5113,9 +5306,9 @@ devlink_linecard_get(struct ynl_sock *ys, struct devlink_linecard_get_req *req); /* DEVLINK_CMD_LINECARD_GET - dump */ struct devlink_linecard_get_req_dump { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -5134,20 +5327,20 @@ devlink_linecard_get_req_dump_set_bus_name(struct devlink_linecard_get_req_dump const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_linecard_get_req_dump_set_dev_name(struct devlink_linecard_get_req_dump *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_linecard_get_list { @@ -5165,11 +5358,13 @@ devlink_linecard_get_dump(struct ynl_sock *ys, /* DEVLINK_CMD_LINECARD_SET - do */ struct devlink_linecard_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 linecard_index:1; - __u32 linecard_type_len; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + __u32 linecard_type; + } _len; char *bus_name; char *dev_name; @@ -5189,20 +5384,20 @@ devlink_linecard_set_req_set_bus_name(struct devlink_linecard_set_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_linecard_set_req_set_dev_name(struct devlink_linecard_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_linecard_set_req_set_linecard_index(struct devlink_linecard_set_req *req, @@ -5216,10 +5411,10 @@ devlink_linecard_set_req_set_linecard_type(struct devlink_linecard_set_req *req, const char *linecard_type) { free(req->linecard_type); - req->_present.linecard_type_len = strlen(linecard_type); - req->linecard_type = malloc(req->_present.linecard_type_len + 1); - memcpy(req->linecard_type, linecard_type, req->_present.linecard_type_len); - req->linecard_type[req->_present.linecard_type_len] = 0; + req->_len.linecard_type = strlen(linecard_type); + req->linecard_type = malloc(req->_len.linecard_type + 1); + memcpy(req->linecard_type, linecard_type, req->_len.linecard_type); + req->linecard_type[req->_len.linecard_type] = 0; } /* @@ -5232,9 +5427,9 @@ int devlink_linecard_set(struct ynl_sock *ys, /* DEVLINK_CMD_SELFTESTS_GET - do */ struct devlink_selftests_get_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -5252,27 +5447,27 @@ devlink_selftests_get_req_set_bus_name(struct devlink_selftests_get_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_selftests_get_req_set_dev_name(struct devlink_selftests_get_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } struct devlink_selftests_get_rsp { struct { - __u32 bus_name_len; - __u32 dev_name_len; - } _present; + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -5302,10 +5497,12 @@ devlink_selftests_get_dump(struct ynl_sock *ys); /* DEVLINK_CMD_SELFTESTS_RUN - do */ struct devlink_selftests_run_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 selftests:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -5324,20 +5521,20 @@ devlink_selftests_run_req_set_bus_name(struct devlink_selftests_run_req *req, const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_selftests_run_req_set_dev_name(struct devlink_selftests_run_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_selftests_run_req_set_selftests_flash(struct devlink_selftests_run_req *req) @@ -5356,10 +5553,12 @@ int devlink_selftests_run(struct ynl_sock *ys, /* DEVLINK_CMD_NOTIFY_FILTER_SET - do */ struct devlink_notify_filter_set_req { struct { - __u32 bus_name_len; - __u32 dev_name_len; __u32 port_index:1; } _present; + struct { + __u32 bus_name; + __u32 dev_name; + } _len; char *bus_name; char *dev_name; @@ -5379,20 +5578,20 @@ devlink_notify_filter_set_req_set_bus_name(struct devlink_notify_filter_set_req const char *bus_name) { free(req->bus_name); - req->_present.bus_name_len = strlen(bus_name); - req->bus_name = malloc(req->_present.bus_name_len + 1); - memcpy(req->bus_name, bus_name, req->_present.bus_name_len); - req->bus_name[req->_present.bus_name_len] = 0; + req->_len.bus_name = strlen(bus_name); + req->bus_name = malloc(req->_len.bus_name + 1); + memcpy(req->bus_name, bus_name, req->_len.bus_name); + req->bus_name[req->_len.bus_name] = 0; } static inline void devlink_notify_filter_set_req_set_dev_name(struct devlink_notify_filter_set_req *req, const char *dev_name) { free(req->dev_name); - req->_present.dev_name_len = strlen(dev_name); - req->dev_name = malloc(req->_present.dev_name_len + 1); - memcpy(req->dev_name, dev_name, req->_present.dev_name_len); - req->dev_name[req->_present.dev_name_len] = 0; + req->_len.dev_name = strlen(dev_name); + req->dev_name = malloc(req->_len.dev_name + 1); + memcpy(req->dev_name, dev_name, req->_len.dev_name); + req->dev_name[req->_len.dev_name] = 0; } static inline void devlink_notify_filter_set_req_set_port_index(struct devlink_notify_filter_set_req *req, diff --git a/home/nipa/nipa_out/959697/ynl/old-code/dpll-user.c b/home/nipa/nipa_out/959697/ynl/new-code/dpll-user.c index d3cf6680c6a7..ee316c642984 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/dpll-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/dpll-user.c @@ -433,7 +433,7 @@ dpll_device_id_get(struct ynl_sock *ys, struct dpll_device_id_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &dpll_nest; - if (req->_present.module_name_len) + if (req->_len.module_name) ynl_attr_put_str(nlh, DPLL_A_MODULE_NAME, req->module_name); if (req->_present.clock_id) ynl_attr_put_u64(nlh, DPLL_A_CLOCK_ID, req->clock_id); @@ -498,7 +498,7 @@ int dpll_device_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.module_name_len = len; + dst->_len.module_name = len; dst->module_name = malloc(len + 1); memcpy(dst->module_name, ynl_attr_get_str(attr), len); dst->module_name[len] = 0; @@ -539,7 +539,7 @@ int dpll_device_get_rsp_parse(const struct nlmsghdr *nlh, if (n_mode_supported) { dst->mode_supported = calloc(n_mode_supported, sizeof(*dst->mode_supported)); - dst->n_mode_supported = n_mode_supported; + dst->_count.mode_supported = n_mode_supported; i = 0; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == DPLL_A_MODE_SUPPORTED) { @@ -711,15 +711,15 @@ dpll_pin_id_get(struct ynl_sock *ys, struct dpll_pin_id_get_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &dpll_pin_nest; - if (req->_present.module_name_len) + if (req->_len.module_name) ynl_attr_put_str(nlh, DPLL_A_PIN_MODULE_NAME, req->module_name); if (req->_present.clock_id) ynl_attr_put_u64(nlh, DPLL_A_PIN_CLOCK_ID, req->clock_id); - if (req->_present.board_label_len) + if (req->_len.board_label) ynl_attr_put_str(nlh, DPLL_A_PIN_BOARD_LABEL, req->board_label); - if (req->_present.panel_label_len) + if (req->_len.panel_label) ynl_attr_put_str(nlh, DPLL_A_PIN_PANEL_LABEL, req->panel_label); - if (req->_present.package_label_len) + if (req->_len.package_label) ynl_attr_put_str(nlh, DPLL_A_PIN_PACKAGE_LABEL, req->package_label); if (req->_present.type) ynl_attr_put_u32(nlh, DPLL_A_PIN_TYPE, req->type); @@ -754,16 +754,16 @@ void dpll_pin_get_rsp_free(struct dpll_pin_get_rsp *rsp) free(rsp->board_label); free(rsp->panel_label); free(rsp->package_label); - for (i = 0; i < rsp->n_frequency_supported; i++) + for (i = 0; i < rsp->_count.frequency_supported; i++) dpll_frequency_range_free(&rsp->frequency_supported[i]); free(rsp->frequency_supported); - for (i = 0; i < rsp->n_parent_device; i++) + for (i = 0; i < rsp->_count.parent_device; i++) dpll_pin_parent_device_free(&rsp->parent_device[i]); free(rsp->parent_device); - for (i = 0; i < rsp->n_parent_pin; i++) + for (i = 0; i < rsp->_count.parent_pin; i++) dpll_pin_parent_pin_free(&rsp->parent_pin[i]); free(rsp->parent_pin); - for (i = 0; i < rsp->n_esync_frequency_supported; i++) + for (i = 0; i < rsp->_count.esync_frequency_supported; i++) dpll_frequency_range_free(&rsp->esync_frequency_supported[i]); free(rsp->esync_frequency_supported); free(rsp); @@ -808,7 +808,7 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.board_label_len = len; + dst->_len.board_label = len; dst->board_label = malloc(len + 1); memcpy(dst->board_label, ynl_attr_get_str(attr), len); dst->board_label[len] = 0; @@ -819,7 +819,7 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.panel_label_len = len; + dst->_len.panel_label = len; dst->panel_label = malloc(len + 1); memcpy(dst->panel_label, ynl_attr_get_str(attr), len); dst->panel_label[len] = 0; @@ -830,7 +830,7 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.package_label_len = len; + dst->_len.package_label = len; dst->package_label = malloc(len + 1); memcpy(dst->package_label, ynl_attr_get_str(attr), len); dst->package_label[len] = 0; @@ -892,7 +892,7 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, if (n_esync_frequency_supported) { dst->esync_frequency_supported = calloc(n_esync_frequency_supported, sizeof(*dst->esync_frequency_supported)); - dst->n_esync_frequency_supported = n_esync_frequency_supported; + dst->_count.esync_frequency_supported = n_esync_frequency_supported; i = 0; parg.rsp_policy = &dpll_frequency_range_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -906,7 +906,7 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, } if (n_frequency_supported) { dst->frequency_supported = calloc(n_frequency_supported, sizeof(*dst->frequency_supported)); - dst->n_frequency_supported = n_frequency_supported; + dst->_count.frequency_supported = n_frequency_supported; i = 0; parg.rsp_policy = &dpll_frequency_range_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -920,7 +920,7 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, } if (n_parent_device) { dst->parent_device = calloc(n_parent_device, sizeof(*dst->parent_device)); - dst->n_parent_device = n_parent_device; + dst->_count.parent_device = n_parent_device; i = 0; parg.rsp_policy = &dpll_pin_parent_device_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -934,7 +934,7 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, } if (n_parent_pin) { dst->parent_pin = calloc(n_parent_pin, sizeof(*dst->parent_pin)); - dst->n_parent_pin = n_parent_pin; + dst->_count.parent_pin = n_parent_pin; i = 0; parg.rsp_policy = &dpll_pin_parent_pin_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -1001,16 +1001,16 @@ void dpll_pin_get_list_free(struct dpll_pin_get_list *rsp) free(rsp->obj.board_label); free(rsp->obj.panel_label); free(rsp->obj.package_label); - for (i = 0; i < rsp->obj.n_frequency_supported; i++) + for (i = 0; i < rsp->obj._count.frequency_supported; i++) dpll_frequency_range_free(&rsp->obj.frequency_supported[i]); free(rsp->obj.frequency_supported); - for (i = 0; i < rsp->obj.n_parent_device; i++) + for (i = 0; i < rsp->obj._count.parent_device; i++) dpll_pin_parent_device_free(&rsp->obj.parent_device[i]); free(rsp->obj.parent_device); - for (i = 0; i < rsp->obj.n_parent_pin; i++) + for (i = 0; i < rsp->obj._count.parent_pin; i++) dpll_pin_parent_pin_free(&rsp->obj.parent_pin[i]); free(rsp->obj.parent_pin); - for (i = 0; i < rsp->obj.n_esync_frequency_supported; i++) + for (i = 0; i < rsp->obj._count.esync_frequency_supported; i++) dpll_frequency_range_free(&rsp->obj.esync_frequency_supported[i]); free(rsp->obj.esync_frequency_supported); free(rsp); @@ -1057,16 +1057,16 @@ void dpll_pin_get_ntf_free(struct dpll_pin_get_ntf *rsp) free(rsp->obj.board_label); free(rsp->obj.panel_label); free(rsp->obj.package_label); - for (i = 0; i < rsp->obj.n_frequency_supported; i++) + for (i = 0; i < rsp->obj._count.frequency_supported; i++) dpll_frequency_range_free(&rsp->obj.frequency_supported[i]); free(rsp->obj.frequency_supported); - for (i = 0; i < rsp->obj.n_parent_device; i++) + for (i = 0; i < rsp->obj._count.parent_device; i++) dpll_pin_parent_device_free(&rsp->obj.parent_device[i]); free(rsp->obj.parent_device); - for (i = 0; i < rsp->obj.n_parent_pin; i++) + for (i = 0; i < rsp->obj._count.parent_pin; i++) dpll_pin_parent_pin_free(&rsp->obj.parent_pin[i]); free(rsp->obj.parent_pin); - for (i = 0; i < rsp->obj.n_esync_frequency_supported; i++) + for (i = 0; i < rsp->obj._count.esync_frequency_supported; i++) dpll_frequency_range_free(&rsp->obj.esync_frequency_supported[i]); free(rsp->obj.esync_frequency_supported); free(rsp); @@ -1078,10 +1078,10 @@ void dpll_pin_set_req_free(struct dpll_pin_set_req *req) { unsigned int i; - for (i = 0; i < req->n_parent_device; i++) + for (i = 0; i < req->_count.parent_device; i++) dpll_pin_parent_device_free(&req->parent_device[i]); free(req->parent_device); - for (i = 0; i < req->n_parent_pin; i++) + for (i = 0; i < req->_count.parent_pin; i++) dpll_pin_parent_pin_free(&req->parent_pin[i]); free(req->parent_pin); free(req); @@ -1108,9 +1108,9 @@ int dpll_pin_set(struct ynl_sock *ys, struct dpll_pin_set_req *req) ynl_attr_put_u32(nlh, DPLL_A_PIN_PRIO, req->prio); if (req->_present.state) ynl_attr_put_u32(nlh, DPLL_A_PIN_STATE, req->state); - for (i = 0; i < req->n_parent_device; i++) + for (i = 0; i < req->_count.parent_device; i++) dpll_pin_parent_device_put(nlh, DPLL_A_PIN_PARENT_DEVICE, &req->parent_device[i]); - for (i = 0; i < req->n_parent_pin; i++) + for (i = 0; i < req->_count.parent_pin; i++) dpll_pin_parent_pin_put(nlh, DPLL_A_PIN_PARENT_PIN, &req->parent_pin[i]); if (req->_present.phase_adjust) ynl_attr_put_s32(nlh, DPLL_A_PIN_PHASE_ADJUST, req->phase_adjust); diff --git a/home/nipa/nipa_out/959697/ynl/old-code/dpll-user.h b/home/nipa/nipa_out/959697/ynl/new-code/dpll-user.h index 70ee0d5662c5..b2eeee23cde6 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/dpll-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/dpll-user.h @@ -72,10 +72,12 @@ void dpll_pin_parent_pin_free(struct dpll_pin_parent_pin *obj); /* DPLL_CMD_DEVICE_ID_GET - do */ struct dpll_device_id_get_req { struct { - __u32 module_name_len; __u32 clock_id:1; __u32 type:1; } _present; + struct { + __u32 module_name; + } _len; char *module_name; __u64 clock_id; @@ -93,10 +95,10 @@ dpll_device_id_get_req_set_module_name(struct dpll_device_id_get_req *req, const char *module_name) { free(req->module_name); - req->_present.module_name_len = strlen(module_name); - req->module_name = malloc(req->_present.module_name_len + 1); - memcpy(req->module_name, module_name, req->_present.module_name_len); - req->module_name[req->_present.module_name_len] = 0; + req->_len.module_name = strlen(module_name); + req->module_name = malloc(req->_len.module_name + 1); + memcpy(req->module_name, module_name, req->_len.module_name); + req->module_name[req->_len.module_name] = 0; } static inline void dpll_device_id_get_req_set_clock_id(struct dpll_device_id_get_req *req, @@ -156,7 +158,6 @@ dpll_device_get_req_set_id(struct dpll_device_get_req *req, __u32 id) struct dpll_device_get_rsp { struct { __u32 id:1; - __u32 module_name_len; __u32 mode:1; __u32 lock_status:1; __u32 lock_status_error:1; @@ -164,11 +165,16 @@ struct dpll_device_get_rsp { __u32 clock_id:1; __u32 type:1; } _present; + struct { + __u32 module_name; + } _len; + struct { + __u32 mode_supported; + } _count; __u32 id; char *module_name; enum dpll_mode mode; - unsigned int n_mode_supported; __u32 *mode_supported; enum dpll_lock_status lock_status; enum dpll_lock_status_error lock_status_error; @@ -239,13 +245,15 @@ int dpll_device_set(struct ynl_sock *ys, struct dpll_device_set_req *req); /* DPLL_CMD_PIN_ID_GET - do */ struct dpll_pin_id_get_req { struct { - __u32 module_name_len; __u32 clock_id:1; - __u32 board_label_len; - __u32 panel_label_len; - __u32 package_label_len; __u32 type:1; } _present; + struct { + __u32 module_name; + __u32 board_label; + __u32 panel_label; + __u32 package_label; + } _len; char *module_name; __u64 clock_id; @@ -266,10 +274,10 @@ dpll_pin_id_get_req_set_module_name(struct dpll_pin_id_get_req *req, const char *module_name) { free(req->module_name); - req->_present.module_name_len = strlen(module_name); - req->module_name = malloc(req->_present.module_name_len + 1); - memcpy(req->module_name, module_name, req->_present.module_name_len); - req->module_name[req->_present.module_name_len] = 0; + req->_len.module_name = strlen(module_name); + req->module_name = malloc(req->_len.module_name + 1); + memcpy(req->module_name, module_name, req->_len.module_name); + req->module_name[req->_len.module_name] = 0; } static inline void dpll_pin_id_get_req_set_clock_id(struct dpll_pin_id_get_req *req, @@ -283,30 +291,30 @@ dpll_pin_id_get_req_set_board_label(struct dpll_pin_id_get_req *req, const char *board_label) { free(req->board_label); - req->_present.board_label_len = strlen(board_label); - req->board_label = malloc(req->_present.board_label_len + 1); - memcpy(req->board_label, board_label, req->_present.board_label_len); - req->board_label[req->_present.board_label_len] = 0; + req->_len.board_label = strlen(board_label); + req->board_label = malloc(req->_len.board_label + 1); + memcpy(req->board_label, board_label, req->_len.board_label); + req->board_label[req->_len.board_label] = 0; } static inline void dpll_pin_id_get_req_set_panel_label(struct dpll_pin_id_get_req *req, const char *panel_label) { free(req->panel_label); - req->_present.panel_label_len = strlen(panel_label); - req->panel_label = malloc(req->_present.panel_label_len + 1); - memcpy(req->panel_label, panel_label, req->_present.panel_label_len); - req->panel_label[req->_present.panel_label_len] = 0; + req->_len.panel_label = strlen(panel_label); + req->panel_label = malloc(req->_len.panel_label + 1); + memcpy(req->panel_label, panel_label, req->_len.panel_label); + req->panel_label[req->_len.panel_label] = 0; } static inline void dpll_pin_id_get_req_set_package_label(struct dpll_pin_id_get_req *req, const char *package_label) { free(req->package_label); - req->_present.package_label_len = strlen(package_label); - req->package_label = malloc(req->_present.package_label_len + 1); - memcpy(req->package_label, package_label, req->_present.package_label_len); - req->package_label[req->_present.package_label_len] = 0; + req->_len.package_label = strlen(package_label); + req->package_label = malloc(req->_len.package_label + 1); + memcpy(req->package_label, package_label, req->_len.package_label); + req->package_label[req->_len.package_label] = 0; } static inline void dpll_pin_id_get_req_set_type(struct dpll_pin_id_get_req *req, @@ -359,9 +367,6 @@ dpll_pin_get_req_set_id(struct dpll_pin_get_req *req, __u32 id) struct dpll_pin_get_rsp { struct { __u32 id:1; - __u32 board_label_len; - __u32 panel_label_len; - __u32 package_label_len; __u32 type:1; __u32 frequency:1; __u32 capabilities:1; @@ -372,6 +377,17 @@ struct dpll_pin_get_rsp { __u32 esync_frequency:1; __u32 esync_pulse:1; } _present; + struct { + __u32 board_label; + __u32 panel_label; + __u32 package_label; + } _len; + struct { + __u32 frequency_supported; + __u32 parent_device; + __u32 parent_pin; + __u32 esync_frequency_supported; + } _count; __u32 id; char *board_label; @@ -379,19 +395,15 @@ struct dpll_pin_get_rsp { char *package_label; enum dpll_pin_type type; __u64 frequency; - unsigned int n_frequency_supported; struct dpll_frequency_range *frequency_supported; __u32 capabilities; - unsigned int n_parent_device; struct dpll_pin_parent_device *parent_device; - unsigned int n_parent_pin; struct dpll_pin_parent_pin *parent_pin; __s32 phase_adjust_min; __s32 phase_adjust_max; __s32 phase_adjust; __s64 fractional_frequency_offset; __u64 esync_frequency; - unsigned int n_esync_frequency_supported; struct dpll_frequency_range *esync_frequency_supported; __u32 esync_pulse; }; @@ -466,15 +478,17 @@ struct dpll_pin_set_req { __u32 phase_adjust:1; __u32 esync_frequency:1; } _present; + struct { + __u32 parent_device; + __u32 parent_pin; + } _count; __u32 id; __u64 frequency; enum dpll_pin_direction direction; __u32 prio; enum dpll_pin_state state; - unsigned int n_parent_device; struct dpll_pin_parent_device *parent_device; - unsigned int n_parent_pin; struct dpll_pin_parent_pin *parent_pin; __s32 phase_adjust; __u64 esync_frequency; @@ -525,11 +539,11 @@ __dpll_pin_set_req_set_parent_device(struct dpll_pin_set_req *req, { unsigned int i; - for (i = 0; i < req->n_parent_device; i++) + for (i = 0; i < req->_count.parent_device; i++) dpll_pin_parent_device_free(&req->parent_device[i]); free(req->parent_device); req->parent_device = parent_device; - req->n_parent_device = n_parent_device; + req->_count.parent_device = n_parent_device; } static inline void __dpll_pin_set_req_set_parent_pin(struct dpll_pin_set_req *req, @@ -538,11 +552,11 @@ __dpll_pin_set_req_set_parent_pin(struct dpll_pin_set_req *req, { unsigned int i; - for (i = 0; i < req->n_parent_pin; i++) + for (i = 0; i < req->_count.parent_pin; i++) dpll_pin_parent_pin_free(&req->parent_pin[i]); free(req->parent_pin); req->parent_pin = parent_pin; - req->n_parent_pin = n_parent_pin; + req->_count.parent_pin = n_parent_pin; } static inline void dpll_pin_set_req_set_phase_adjust(struct dpll_pin_set_req *req, diff --git a/home/nipa/nipa_out/959697/ynl/old-code/ethtool-user.c b/home/nipa/nipa_out/959697/ynl/new-code/ethtool-user.c index 1002f0631467..1c68b1b12975 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/ethtool-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/ethtool-user.c @@ -929,7 +929,7 @@ int ethtool_header_put(struct nlmsghdr *nlh, unsigned int attr_type, nest = ynl_attr_nest_start(nlh, attr_type); if (obj->_present.dev_index) ynl_attr_put_u32(nlh, ETHTOOL_A_HEADER_DEV_INDEX, obj->dev_index); - if (obj->_present.dev_name_len) + if (obj->_len.dev_name) ynl_attr_put_str(nlh, ETHTOOL_A_HEADER_DEV_NAME, obj->dev_name); if (obj->_present.flags) ynl_attr_put_u32(nlh, ETHTOOL_A_HEADER_FLAGS, obj->flags); @@ -961,7 +961,7 @@ int ethtool_header_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.dev_name_len = len; + dst->_len.dev_name = len; dst->dev_name = malloc(len + 1); memcpy(dst->dev_name, ynl_attr_get_str(attr), len); dst->dev_name[len] = 0; @@ -1127,12 +1127,12 @@ int ethtool_fec_stat_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj->_present.corrected_len) - ynl_attr_put(nlh, ETHTOOL_A_FEC_STAT_CORRECTED, obj->corrected, obj->_present.corrected_len); - if (obj->_present.uncorr_len) - ynl_attr_put(nlh, ETHTOOL_A_FEC_STAT_UNCORR, obj->uncorr, obj->_present.uncorr_len); - if (obj->_present.corr_bits_len) - ynl_attr_put(nlh, ETHTOOL_A_FEC_STAT_CORR_BITS, obj->corr_bits, obj->_present.corr_bits_len); + if (obj->_len.corrected) + ynl_attr_put(nlh, ETHTOOL_A_FEC_STAT_CORRECTED, obj->corrected, obj->_len.corrected); + if (obj->_len.uncorr) + ynl_attr_put(nlh, ETHTOOL_A_FEC_STAT_UNCORR, obj->uncorr, obj->_len.uncorr); + if (obj->_len.corr_bits) + ynl_attr_put(nlh, ETHTOOL_A_FEC_STAT_CORR_BITS, obj->corr_bits, obj->_len.corr_bits); ynl_attr_nest_end(nlh, nest); return 0; @@ -1154,7 +1154,7 @@ int ethtool_fec_stat_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.corrected_len = len; + dst->_len.corrected = len; dst->corrected = malloc(len); memcpy(dst->corrected, ynl_attr_data(attr), len); } else if (type == ETHTOOL_A_FEC_STAT_UNCORR) { @@ -1164,7 +1164,7 @@ int ethtool_fec_stat_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.uncorr_len = len; + dst->_len.uncorr = len; dst->uncorr = malloc(len); memcpy(dst->uncorr, ynl_attr_data(attr), len); } else if (type == ETHTOOL_A_FEC_STAT_CORR_BITS) { @@ -1174,7 +1174,7 @@ int ethtool_fec_stat_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.corr_bits_len = len; + dst->_len.corr_bits = len; dst->corr_bits = malloc(len); memcpy(dst->corr_bits, ynl_attr_data(attr), len); } @@ -1393,7 +1393,7 @@ int ethtool_bitset_bit_put(struct nlmsghdr *nlh, unsigned int attr_type, nest = ynl_attr_nest_start(nlh, attr_type); if (obj->_present.index) ynl_attr_put_u32(nlh, ETHTOOL_A_BITSET_BIT_INDEX, obj->index); - if (obj->_present.name_len) + if (obj->_len.name) ynl_attr_put_str(nlh, ETHTOOL_A_BITSET_BIT_NAME, obj->name); if (obj->_present.value) ynl_attr_put(nlh, ETHTOOL_A_BITSET_BIT_VALUE, NULL, 0); @@ -1423,7 +1423,7 @@ int ethtool_bitset_bit_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.name_len = len; + dst->_len.name = len; dst->name = malloc(len + 1); memcpy(dst->name, ynl_attr_get_str(attr), len); dst->name[len] = 0; @@ -1479,7 +1479,7 @@ int ethtool_string_put(struct nlmsghdr *nlh, unsigned int attr_type, nest = ynl_attr_nest_start(nlh, attr_type); if (obj->_present.index) ynl_attr_put_u32(nlh, ETHTOOL_A_STRING_INDEX, obj->index); - if (obj->_present.value_len) + if (obj->_len.value) ynl_attr_put_str(nlh, ETHTOOL_A_STRING_VALUE, obj->value); ynl_attr_nest_end(nlh, nest); @@ -1507,7 +1507,7 @@ int ethtool_string_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.value_len = len; + dst->_len.value = len; dst->value = malloc(len + 1); memcpy(dst->value, ynl_attr_get_str(attr), len); dst->value[len] = 0; @@ -1521,7 +1521,7 @@ void ethtool_profile_free(struct ethtool_profile *obj) { unsigned int i; - for (i = 0; i < obj->n_irq_moderation; i++) + for (i = 0; i < obj->_count.irq_moderation; i++) ethtool_irq_moderation_free(&obj->irq_moderation[i]); free(obj->irq_moderation); } @@ -1533,7 +1533,7 @@ int ethtool_profile_put(struct nlmsghdr *nlh, unsigned int attr_type, unsigned int i; nest = ynl_attr_nest_start(nlh, attr_type); - for (i = 0; i < obj->n_irq_moderation; i++) + for (i = 0; i < obj->_count.irq_moderation; i++) ethtool_irq_moderation_put(nlh, ETHTOOL_A_PROFILE_IRQ_MODERATION, &obj->irq_moderation[i]); ynl_attr_nest_end(nlh, nest); @@ -1564,7 +1564,7 @@ int ethtool_profile_parse(struct ynl_parse_arg *yarg, if (n_irq_moderation) { dst->irq_moderation = calloc(n_irq_moderation, sizeof(*dst->irq_moderation)); - dst->n_irq_moderation = n_irq_moderation; + dst->_count.irq_moderation = n_irq_moderation; i = 0; parg.rsp_policy = ðtool_irq_moderation_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1626,7 +1626,7 @@ void ethtool_bitset_bits_free(struct ethtool_bitset_bits *obj) { unsigned int i; - for (i = 0; i < obj->n_bit; i++) + for (i = 0; i < obj->_count.bit; i++) ethtool_bitset_bit_free(&obj->bit[i]); free(obj->bit); } @@ -1638,7 +1638,7 @@ int ethtool_bitset_bits_put(struct nlmsghdr *nlh, unsigned int attr_type, unsigned int i; nest = ynl_attr_nest_start(nlh, attr_type); - for (i = 0; i < obj->n_bit; i++) + for (i = 0; i < obj->_count.bit; i++) ethtool_bitset_bit_put(nlh, ETHTOOL_A_BITSET_BITS_BIT, &obj->bit[i]); ynl_attr_nest_end(nlh, nest); @@ -1669,7 +1669,7 @@ int ethtool_bitset_bits_parse(struct ynl_parse_arg *yarg, if (n_bit) { dst->bit = calloc(n_bit, sizeof(*dst->bit)); - dst->n_bit = n_bit; + dst->_count.bit = n_bit; i = 0; parg.rsp_policy = ðtool_bitset_bit_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1689,7 +1689,7 @@ void ethtool_strings_free(struct ethtool_strings *obj) { unsigned int i; - for (i = 0; i < obj->n_string; i++) + for (i = 0; i < obj->_count.string; i++) ethtool_string_free(&obj->string[i]); free(obj->string); } @@ -1701,7 +1701,7 @@ int ethtool_strings_put(struct nlmsghdr *nlh, unsigned int attr_type, unsigned int i; nest = ynl_attr_nest_start(nlh, attr_type); - for (i = 0; i < obj->n_string; i++) + for (i = 0; i < obj->_count.string; i++) ethtool_string_put(nlh, ETHTOOL_A_STRINGS_STRING, &obj->string[i]); ynl_attr_nest_end(nlh, nest); @@ -1732,7 +1732,7 @@ int ethtool_strings_parse(struct ynl_parse_arg *yarg, if (n_string) { dst->string = calloc(n_string, sizeof(*dst->string)); - dst->n_string = n_string; + dst->_count.string = n_string; i = 0; parg.rsp_policy = ðtool_string_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1767,10 +1767,10 @@ int ethtool_bitset_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put_u32(nlh, ETHTOOL_A_BITSET_SIZE, obj->size); if (obj->_present.bits) ethtool_bitset_bits_put(nlh, ETHTOOL_A_BITSET_BITS, &obj->bits); - if (obj->_present.value_len) - ynl_attr_put(nlh, ETHTOOL_A_BITSET_VALUE, obj->value, obj->_present.value_len); - if (obj->_present.mask_len) - ynl_attr_put(nlh, ETHTOOL_A_BITSET_MASK, obj->mask, obj->_present.mask_len); + if (obj->_len.value) + ynl_attr_put(nlh, ETHTOOL_A_BITSET_VALUE, obj->value, obj->_len.value); + if (obj->_len.mask) + ynl_attr_put(nlh, ETHTOOL_A_BITSET_MASK, obj->mask, obj->_len.mask); ynl_attr_nest_end(nlh, nest); return 0; @@ -1813,7 +1813,7 @@ int ethtool_bitset_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.value_len = len; + dst->_len.value = len; dst->value = malloc(len); memcpy(dst->value, ynl_attr_data(attr), len); } else if (type == ETHTOOL_A_BITSET_MASK) { @@ -1823,7 +1823,7 @@ int ethtool_bitset_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.mask_len = len; + dst->_len.mask = len; dst->mask = malloc(len); memcpy(dst->mask, ynl_attr_data(attr), len); } @@ -1836,7 +1836,7 @@ void ethtool_stringset_free(struct ethtool_stringset_ *obj) { unsigned int i; - for (i = 0; i < obj->n_strings; i++) + for (i = 0; i < obj->_count.strings; i++) ethtool_strings_free(&obj->strings[i]); free(obj->strings); } @@ -1852,7 +1852,7 @@ int ethtool_stringset_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put_u32(nlh, ETHTOOL_A_STRINGSET_ID, obj->id); if (obj->_present.count) ynl_attr_put_u32(nlh, ETHTOOL_A_STRINGSET_COUNT, obj->count); - for (i = 0; i < obj->n_strings; i++) + for (i = 0; i < obj->_count.strings; i++) ethtool_strings_put(nlh, ETHTOOL_A_STRINGSET_STRINGS, &obj->strings[i]); ynl_attr_nest_end(nlh, nest); @@ -1893,7 +1893,7 @@ int ethtool_stringset_parse(struct ynl_parse_arg *yarg, if (n_strings) { dst->strings = calloc(n_strings, sizeof(*dst->strings)); - dst->n_strings = n_strings; + dst->_count.strings = n_strings; i = 0; parg.rsp_policy = ðtool_strings_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1914,7 +1914,7 @@ void ethtool_tunnel_udp_table_free(struct ethtool_tunnel_udp_table *obj) unsigned int i; ethtool_bitset_free(&obj->types); - for (i = 0; i < obj->n_entry; i++) + for (i = 0; i < obj->_count.entry; i++) ethtool_tunnel_udp_entry_free(&obj->entry[i]); free(obj->entry); } @@ -1957,7 +1957,7 @@ int ethtool_tunnel_udp_table_parse(struct ynl_parse_arg *yarg, if (n_entry) { dst->entry = calloc(n_entry, sizeof(*dst->entry)); - dst->n_entry = n_entry; + dst->_count.entry = n_entry; i = 0; parg.rsp_policy = ðtool_tunnel_udp_entry_nest; ynl_attr_for_each_nested(attr, nested) { @@ -1977,7 +1977,7 @@ void ethtool_stringsets_free(struct ethtool_stringsets *obj) { unsigned int i; - for (i = 0; i < obj->n_stringset; i++) + for (i = 0; i < obj->_count.stringset; i++) ethtool_stringset_free(&obj->stringset[i]); free(obj->stringset); } @@ -1989,7 +1989,7 @@ int ethtool_stringsets_put(struct nlmsghdr *nlh, unsigned int attr_type, unsigned int i; nest = ynl_attr_nest_start(nlh, attr_type); - for (i = 0; i < obj->n_stringset; i++) + for (i = 0; i < obj->_count.stringset; i++) ethtool_stringset_put(nlh, ETHTOOL_A_STRINGSETS_STRINGSET, &obj->stringset[i]); ynl_attr_nest_end(nlh, nest); @@ -2020,7 +2020,7 @@ int ethtool_stringsets_parse(struct ynl_parse_arg *yarg, if (n_stringset) { dst->stringset = calloc(n_stringset, sizeof(*dst->stringset)); - dst->n_stringset = n_stringset; + dst->_count.stringset = n_stringset; i = 0; parg.rsp_policy = ðtool_stringset_nest; ynl_attr_for_each_nested(attr, nested) { @@ -3049,7 +3049,7 @@ int ethtool_wol_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.sopass_len = len; + dst->_len.sopass = len; dst->sopass = malloc(len); memcpy(dst->sopass, ynl_attr_data(attr), len); } @@ -3177,8 +3177,8 @@ int ethtool_wol_set(struct ynl_sock *ys, struct ethtool_wol_set_req *req) ethtool_header_put(nlh, ETHTOOL_A_WOL_HEADER, &req->header); if (req->_present.modes) ethtool_bitset_put(nlh, ETHTOOL_A_WOL_MODES, &req->modes); - if (req->_present.sopass_len) - ynl_attr_put(nlh, ETHTOOL_A_WOL_SOPASS, req->sopass, req->_present.sopass_len); + if (req->_len.sopass) + ynl_attr_put(nlh, ETHTOOL_A_WOL_SOPASS, req->sopass, req->_len.sopass); err = ynl_exec(ys, nlh, &yrs); if (err < 0) @@ -5653,7 +5653,7 @@ int ethtool_module_eeprom_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.data_len = len; + dst->_len.data = len; dst->data = malloc(len); memcpy(dst->data, ynl_attr_data(attr), len); } @@ -6075,7 +6075,7 @@ void ethtool_pse_get_rsp_free(struct ethtool_pse_get_rsp *rsp) unsigned int i; ethtool_header_free(&rsp->header); - for (i = 0; i < rsp->n_c33_pse_pw_limit_ranges; i++) + for (i = 0; i < rsp->_count.c33_pse_pw_limit_ranges; i++) ethtool_c33_pse_pw_limit_free(&rsp->c33_pse_pw_limit_ranges[i]); free(rsp->c33_pse_pw_limit_ranges); free(rsp); @@ -6170,7 +6170,7 @@ int ethtool_pse_get_rsp_parse(const struct nlmsghdr *nlh, if (n_c33_pse_pw_limit_ranges) { dst->c33_pse_pw_limit_ranges = calloc(n_c33_pse_pw_limit_ranges, sizeof(*dst->c33_pse_pw_limit_ranges)); - dst->n_c33_pse_pw_limit_ranges = n_c33_pse_pw_limit_ranges; + dst->_count.c33_pse_pw_limit_ranges = n_c33_pse_pw_limit_ranges; i = 0; parg.rsp_policy = ðtool_c33_pse_pw_limit_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -6236,7 +6236,7 @@ void ethtool_pse_get_list_free(struct ethtool_pse_get_list *rsp) next = rsp->next; ethtool_header_free(&rsp->obj.header); - for (i = 0; i < rsp->obj.n_c33_pse_pw_limit_ranges; i++) + for (i = 0; i < rsp->obj._count.c33_pse_pw_limit_ranges; i++) ethtool_c33_pse_pw_limit_free(&rsp->obj.c33_pse_pw_limit_ranges[i]); free(rsp->obj.c33_pse_pw_limit_ranges); free(rsp); @@ -6364,7 +6364,7 @@ int ethtool_rss_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.indir_len = len; + dst->_len.indir = len; dst->indir = malloc(len); memcpy(dst->indir, ynl_attr_data(attr), len); } else if (type == ETHTOOL_A_RSS_HKEY) { @@ -6374,7 +6374,7 @@ int ethtool_rss_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.hkey_len = len; + dst->_len.hkey = len; dst->hkey = malloc(len); memcpy(dst->hkey, ynl_attr_data(attr), len); } else if (type == ETHTOOL_A_RSS_INPUT_XFRM) { @@ -7114,7 +7114,7 @@ int ethtool_module_fw_flash_act(struct ynl_sock *ys, if (req->_present.header) ethtool_header_put(nlh, ETHTOOL_A_MODULE_FW_FLASH_HEADER, &req->header); - if (req->_present.file_name_len) + if (req->_len.file_name) ynl_attr_put_str(nlh, ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME, req->file_name); if (req->_present.password) ynl_attr_put_u32(nlh, ETHTOOL_A_MODULE_FW_FLASH_PASSWORD, req->password); @@ -7178,7 +7178,7 @@ int ethtool_phy_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.drvname_len = len; + dst->_len.drvname = len; dst->drvname = malloc(len + 1); memcpy(dst->drvname, ynl_attr_get_str(attr), len); dst->drvname[len] = 0; @@ -7189,7 +7189,7 @@ int ethtool_phy_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.name_len = len; + dst->_len.name = len; dst->name = malloc(len + 1); memcpy(dst->name, ynl_attr_get_str(attr), len); dst->name[len] = 0; @@ -7210,7 +7210,7 @@ int ethtool_phy_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.upstream_sfp_name_len = len; + dst->_len.upstream_sfp_name = len; dst->upstream_sfp_name = malloc(len + 1); memcpy(dst->upstream_sfp_name, ynl_attr_get_str(attr), len); dst->upstream_sfp_name[len] = 0; @@ -7221,7 +7221,7 @@ int ethtool_phy_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.downstream_sfp_name_len = len; + dst->_len.downstream_sfp_name = len; dst->downstream_sfp_name = malloc(len + 1); memcpy(dst->downstream_sfp_name, ynl_attr_get_str(attr), len); dst->downstream_sfp_name[len] = 0; @@ -7753,7 +7753,7 @@ int ethtool_module_fw_flash_ntf_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.status_msg_len = len; + dst->_len.status_msg = len; dst->status_msg = malloc(len + 1); memcpy(dst->status_msg, ynl_attr_get_str(attr), len); dst->status_msg[len] = 0; diff --git a/home/nipa/nipa_out/959697/ynl/old-code/ethtool-user.h b/home/nipa/nipa_out/959697/ynl/new-code/ethtool-user.h index f54e2ced7926..51fa0e758153 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/ethtool-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/ethtool-user.h @@ -33,10 +33,12 @@ const char *ethtool_tcp_data_split_str(enum ethtool_tcp_data_split value); struct ethtool_header { struct { __u32 dev_index:1; - __u32 dev_name_len; __u32 flags:1; __u32 phy_index:1; } _present; + struct { + __u32 dev_name; + } _len; __u32 dev_index; char *dev_name; @@ -94,10 +96,10 @@ struct ethtool_cable_test_tdr_cfg { struct ethtool_fec_stat { struct { - __u32 corrected_len; - __u32 uncorr_len; - __u32 corr_bits_len; - } _present; + __u32 corrected; + __u32 uncorr; + __u32 corr_bits; + } _len; void *corrected; void *uncorr; @@ -173,9 +175,11 @@ struct ethtool_cable_fault_length { struct ethtool_bitset_bit { struct { __u32 index:1; - __u32 name_len; __u32 value:1; } _present; + struct { + __u32 name; + } _len; __u32 index; char *name; @@ -196,8 +200,10 @@ struct ethtool_tunnel_udp_entry { struct ethtool_string { struct { __u32 index:1; - __u32 value_len; } _present; + struct { + __u32 value; + } _len; __u32 index; char *value; @@ -206,7 +212,10 @@ struct ethtool_string { void ethtool_string_free(struct ethtool_string *obj); struct ethtool_profile { - unsigned int n_irq_moderation; + struct { + __u32 irq_moderation; + } _count; + struct ethtool_irq_moderation *irq_moderation; }; @@ -221,12 +230,18 @@ struct ethtool_cable_nest { }; struct ethtool_bitset_bits { - unsigned int n_bit; + struct { + __u32 bit; + } _count; + struct ethtool_bitset_bit *bit; }; struct ethtool_strings { - unsigned int n_string; + struct { + __u32 string; + } _count; + struct ethtool_string *string; }; @@ -237,9 +252,11 @@ struct ethtool_bitset { __u32 nomask:1; __u32 size:1; __u32 bits:1; - __u32 value_len; - __u32 mask_len; } _present; + struct { + __u32 value; + __u32 mask; + } _len; __u32 size; struct ethtool_bitset_bits bits; @@ -252,10 +269,12 @@ struct ethtool_stringset_ { __u32 id:1; __u32 count:1; } _present; + struct { + __u32 strings; + } _count; __u32 id; __u32 count; - unsigned int n_strings; struct ethtool_strings *strings; }; @@ -266,15 +285,20 @@ struct ethtool_tunnel_udp_table { __u32 size:1; __u32 types:1; } _present; + struct { + __u32 entry; + } _count; __u32 size; struct ethtool_bitset types; - unsigned int n_entry; struct ethtool_tunnel_udp_entry *entry; }; struct ethtool_stringsets { - unsigned int n_stringset; + struct { + __u32 stringset; + } _count; + struct ethtool_stringset_ *stringset; }; @@ -319,10 +343,10 @@ ethtool_strset_get_req_set_header_dev_name(struct ethtool_strset_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_strset_get_req_set_header_flags(struct ethtool_strset_get_req *req, @@ -348,11 +372,11 @@ __ethtool_strset_get_req_set_stringsets_stringset(struct ethtool_strset_get_req unsigned int i; req->_present.stringsets = 1; - for (i = 0; i < req->stringsets.n_stringset; i++) + for (i = 0; i < req->stringsets._count.stringset; i++) ethtool_stringset_free(&req->stringsets.stringset[i]); free(req->stringsets.stringset); req->stringsets.stringset = stringset; - req->stringsets.n_stringset = n_stringset; + req->stringsets._count.stringset = n_stringset; } static inline void ethtool_strset_get_req_set_counts_only(struct ethtool_strset_get_req *req) @@ -411,10 +435,10 @@ ethtool_strset_get_req_dump_set_header_dev_name(struct ethtool_strset_get_req_du { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_strset_get_req_dump_set_header_flags(struct ethtool_strset_get_req_dump *req, @@ -440,11 +464,11 @@ __ethtool_strset_get_req_dump_set_stringsets_stringset(struct ethtool_strset_get unsigned int i; req->_present.stringsets = 1; - for (i = 0; i < req->stringsets.n_stringset; i++) + for (i = 0; i < req->stringsets._count.stringset; i++) ethtool_stringset_free(&req->stringsets.stringset[i]); free(req->stringsets.stringset); req->stringsets.stringset = stringset; - req->stringsets.n_stringset = n_stringset; + req->stringsets._count.stringset = n_stringset; } static inline void ethtool_strset_get_req_dump_set_counts_only(struct ethtool_strset_get_req_dump *req) @@ -494,10 +518,10 @@ ethtool_linkinfo_get_req_set_header_dev_name(struct ethtool_linkinfo_get_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_linkinfo_get_req_set_header_flags(struct ethtool_linkinfo_get_req *req, @@ -573,10 +597,10 @@ ethtool_linkinfo_get_req_dump_set_header_dev_name(struct ethtool_linkinfo_get_re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_linkinfo_get_req_dump_set_header_flags(struct ethtool_linkinfo_get_req_dump *req, @@ -658,10 +682,10 @@ ethtool_linkinfo_set_req_set_header_dev_name(struct ethtool_linkinfo_set_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_linkinfo_set_req_set_header_flags(struct ethtool_linkinfo_set_req *req, @@ -752,10 +776,10 @@ ethtool_linkmodes_get_req_set_header_dev_name(struct ethtool_linkmodes_get_req * { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_linkmodes_get_req_set_header_flags(struct ethtool_linkmodes_get_req *req, @@ -840,10 +864,10 @@ ethtool_linkmodes_get_req_dump_set_header_dev_name(struct ethtool_linkmodes_get_ { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_linkmodes_get_req_dump_set_header_flags(struct ethtool_linkmodes_get_req_dump *req, @@ -933,10 +957,10 @@ ethtool_linkmodes_set_req_set_header_dev_name(struct ethtool_linkmodes_set_req * { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_linkmodes_set_req_set_header_flags(struct ethtool_linkmodes_set_req *req, @@ -984,11 +1008,11 @@ __ethtool_linkmodes_set_req_set_ours_bits_bit(struct ethtool_linkmodes_set_req * req->_present.ours = 1; req->ours._present.bits = 1; - for (i = 0; i < req->ours.bits.n_bit; i++) + for (i = 0; i < req->ours.bits._count.bit; i++) ethtool_bitset_bit_free(&req->ours.bits.bit[i]); free(req->ours.bits.bit); req->ours.bits.bit = bit; - req->ours.bits.n_bit = n_bit; + req->ours.bits._count.bit = n_bit; } static inline void ethtool_linkmodes_set_req_set_ours_value(struct ethtool_linkmodes_set_req *req, @@ -996,9 +1020,9 @@ ethtool_linkmodes_set_req_set_ours_value(struct ethtool_linkmodes_set_req *req, { req->_present.ours = 1; free(req->ours.value); - req->ours._present.value_len = len; - req->ours.value = malloc(req->ours._present.value_len); - memcpy(req->ours.value, value, req->ours._present.value_len); + req->ours._len.value = len; + req->ours.value = malloc(req->ours._len.value); + memcpy(req->ours.value, value, req->ours._len.value); } static inline void ethtool_linkmodes_set_req_set_ours_mask(struct ethtool_linkmodes_set_req *req, @@ -1006,9 +1030,9 @@ ethtool_linkmodes_set_req_set_ours_mask(struct ethtool_linkmodes_set_req *req, { req->_present.ours = 1; free(req->ours.mask); - req->ours._present.mask_len = len; - req->ours.mask = malloc(req->ours._present.mask_len); - memcpy(req->ours.mask, mask, req->ours._present.mask_len); + req->ours._len.mask = len; + req->ours.mask = malloc(req->ours._len.mask); + memcpy(req->ours.mask, mask, req->ours._len.mask); } static inline void ethtool_linkmodes_set_req_set_peer_nomask(struct ethtool_linkmodes_set_req *req) @@ -1033,11 +1057,11 @@ __ethtool_linkmodes_set_req_set_peer_bits_bit(struct ethtool_linkmodes_set_req * req->_present.peer = 1; req->peer._present.bits = 1; - for (i = 0; i < req->peer.bits.n_bit; i++) + for (i = 0; i < req->peer.bits._count.bit; i++) ethtool_bitset_bit_free(&req->peer.bits.bit[i]); free(req->peer.bits.bit); req->peer.bits.bit = bit; - req->peer.bits.n_bit = n_bit; + req->peer.bits._count.bit = n_bit; } static inline void ethtool_linkmodes_set_req_set_peer_value(struct ethtool_linkmodes_set_req *req, @@ -1045,9 +1069,9 @@ ethtool_linkmodes_set_req_set_peer_value(struct ethtool_linkmodes_set_req *req, { req->_present.peer = 1; free(req->peer.value); - req->peer._present.value_len = len; - req->peer.value = malloc(req->peer._present.value_len); - memcpy(req->peer.value, value, req->peer._present.value_len); + req->peer._len.value = len; + req->peer.value = malloc(req->peer._len.value); + memcpy(req->peer.value, value, req->peer._len.value); } static inline void ethtool_linkmodes_set_req_set_peer_mask(struct ethtool_linkmodes_set_req *req, @@ -1055,9 +1079,9 @@ ethtool_linkmodes_set_req_set_peer_mask(struct ethtool_linkmodes_set_req *req, { req->_present.peer = 1; free(req->peer.mask); - req->peer._present.mask_len = len; - req->peer.mask = malloc(req->peer._present.mask_len); - memcpy(req->peer.mask, mask, req->peer._present.mask_len); + req->peer._len.mask = len; + req->peer.mask = malloc(req->peer._len.mask); + memcpy(req->peer.mask, mask, req->peer._len.mask); } static inline void ethtool_linkmodes_set_req_set_speed(struct ethtool_linkmodes_set_req *req, @@ -1139,10 +1163,10 @@ ethtool_linkstate_get_req_set_header_dev_name(struct ethtool_linkstate_get_req * { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_linkstate_get_req_set_header_flags(struct ethtool_linkstate_get_req *req, @@ -1221,10 +1245,10 @@ ethtool_linkstate_get_req_dump_set_header_dev_name(struct ethtool_linkstate_get_ { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_linkstate_get_req_dump_set_header_flags(struct ethtool_linkstate_get_req_dump *req, @@ -1284,10 +1308,10 @@ ethtool_debug_get_req_set_header_dev_name(struct ethtool_debug_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_debug_get_req_set_header_flags(struct ethtool_debug_get_req *req, @@ -1354,10 +1378,10 @@ ethtool_debug_get_req_dump_set_header_dev_name(struct ethtool_debug_get_req_dump { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_debug_get_req_dump_set_header_flags(struct ethtool_debug_get_req_dump *req, @@ -1430,10 +1454,10 @@ ethtool_debug_set_req_set_header_dev_name(struct ethtool_debug_set_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_debug_set_req_set_header_flags(struct ethtool_debug_set_req *req, @@ -1474,11 +1498,11 @@ __ethtool_debug_set_req_set_msgmask_bits_bit(struct ethtool_debug_set_req *req, req->_present.msgmask = 1; req->msgmask._present.bits = 1; - for (i = 0; i < req->msgmask.bits.n_bit; i++) + for (i = 0; i < req->msgmask.bits._count.bit; i++) ethtool_bitset_bit_free(&req->msgmask.bits.bit[i]); free(req->msgmask.bits.bit); req->msgmask.bits.bit = bit; - req->msgmask.bits.n_bit = n_bit; + req->msgmask.bits._count.bit = n_bit; } static inline void ethtool_debug_set_req_set_msgmask_value(struct ethtool_debug_set_req *req, @@ -1486,9 +1510,9 @@ ethtool_debug_set_req_set_msgmask_value(struct ethtool_debug_set_req *req, { req->_present.msgmask = 1; free(req->msgmask.value); - req->msgmask._present.value_len = len; - req->msgmask.value = malloc(req->msgmask._present.value_len); - memcpy(req->msgmask.value, value, req->msgmask._present.value_len); + req->msgmask._len.value = len; + req->msgmask.value = malloc(req->msgmask._len.value); + memcpy(req->msgmask.value, value, req->msgmask._len.value); } static inline void ethtool_debug_set_req_set_msgmask_mask(struct ethtool_debug_set_req *req, @@ -1496,9 +1520,9 @@ ethtool_debug_set_req_set_msgmask_mask(struct ethtool_debug_set_req *req, { req->_present.msgmask = 1; free(req->msgmask.mask); - req->msgmask._present.mask_len = len; - req->msgmask.mask = malloc(req->msgmask._present.mask_len); - memcpy(req->msgmask.mask, mask, req->msgmask._present.mask_len); + req->msgmask._len.mask = len; + req->msgmask.mask = malloc(req->msgmask._len.mask); + memcpy(req->msgmask.mask, mask, req->msgmask._len.mask); } /* @@ -1536,10 +1560,10 @@ ethtool_wol_get_req_set_header_dev_name(struct ethtool_wol_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_wol_get_req_set_header_flags(struct ethtool_wol_get_req *req, @@ -1562,8 +1586,10 @@ struct ethtool_wol_get_rsp { struct { __u32 header:1; __u32 modes:1; - __u32 sopass_len; } _present; + struct { + __u32 sopass; + } _len; struct ethtool_header header; struct ethtool_bitset modes; @@ -1608,10 +1634,10 @@ ethtool_wol_get_req_dump_set_header_dev_name(struct ethtool_wol_get_req_dump *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_wol_get_req_dump_set_header_flags(struct ethtool_wol_get_req_dump *req, @@ -1657,8 +1683,10 @@ struct ethtool_wol_set_req { struct { __u32 header:1; __u32 modes:1; - __u32 sopass_len; } _present; + struct { + __u32 sopass; + } _len; struct ethtool_header header; struct ethtool_bitset modes; @@ -1685,10 +1713,10 @@ ethtool_wol_set_req_set_header_dev_name(struct ethtool_wol_set_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_wol_set_req_set_header_flags(struct ethtool_wol_set_req *req, @@ -1728,11 +1756,11 @@ __ethtool_wol_set_req_set_modes_bits_bit(struct ethtool_wol_set_req *req, req->_present.modes = 1; req->modes._present.bits = 1; - for (i = 0; i < req->modes.bits.n_bit; i++) + for (i = 0; i < req->modes.bits._count.bit; i++) ethtool_bitset_bit_free(&req->modes.bits.bit[i]); free(req->modes.bits.bit); req->modes.bits.bit = bit; - req->modes.bits.n_bit = n_bit; + req->modes.bits._count.bit = n_bit; } static inline void ethtool_wol_set_req_set_modes_value(struct ethtool_wol_set_req *req, @@ -1740,9 +1768,9 @@ ethtool_wol_set_req_set_modes_value(struct ethtool_wol_set_req *req, { req->_present.modes = 1; free(req->modes.value); - req->modes._present.value_len = len; - req->modes.value = malloc(req->modes._present.value_len); - memcpy(req->modes.value, value, req->modes._present.value_len); + req->modes._len.value = len; + req->modes.value = malloc(req->modes._len.value); + memcpy(req->modes.value, value, req->modes._len.value); } static inline void ethtool_wol_set_req_set_modes_mask(struct ethtool_wol_set_req *req, @@ -1750,18 +1778,18 @@ ethtool_wol_set_req_set_modes_mask(struct ethtool_wol_set_req *req, { req->_present.modes = 1; free(req->modes.mask); - req->modes._present.mask_len = len; - req->modes.mask = malloc(req->modes._present.mask_len); - memcpy(req->modes.mask, mask, req->modes._present.mask_len); + req->modes._len.mask = len; + req->modes.mask = malloc(req->modes._len.mask); + memcpy(req->modes.mask, mask, req->modes._len.mask); } static inline void ethtool_wol_set_req_set_sopass(struct ethtool_wol_set_req *req, const void *sopass, size_t len) { free(req->sopass); - req->_present.sopass_len = len; - req->sopass = malloc(req->_present.sopass_len); - memcpy(req->sopass, sopass, req->_present.sopass_len); + req->_len.sopass = len; + req->sopass = malloc(req->_len.sopass); + memcpy(req->sopass, sopass, req->_len.sopass); } /* @@ -1800,10 +1828,10 @@ ethtool_features_get_req_set_header_dev_name(struct ethtool_features_get_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_features_get_req_set_header_flags(struct ethtool_features_get_req *req, @@ -1877,10 +1905,10 @@ ethtool_features_get_req_dump_set_header_dev_name(struct ethtool_features_get_re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_features_get_req_dump_set_header_flags(struct ethtool_features_get_req_dump *req, @@ -1960,10 +1988,10 @@ ethtool_features_set_req_set_header_dev_name(struct ethtool_features_set_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_features_set_req_set_header_flags(struct ethtool_features_set_req *req, @@ -2004,11 +2032,11 @@ __ethtool_features_set_req_set_hw_bits_bit(struct ethtool_features_set_req *req, req->_present.hw = 1; req->hw._present.bits = 1; - for (i = 0; i < req->hw.bits.n_bit; i++) + for (i = 0; i < req->hw.bits._count.bit; i++) ethtool_bitset_bit_free(&req->hw.bits.bit[i]); free(req->hw.bits.bit); req->hw.bits.bit = bit; - req->hw.bits.n_bit = n_bit; + req->hw.bits._count.bit = n_bit; } static inline void ethtool_features_set_req_set_hw_value(struct ethtool_features_set_req *req, @@ -2016,9 +2044,9 @@ ethtool_features_set_req_set_hw_value(struct ethtool_features_set_req *req, { req->_present.hw = 1; free(req->hw.value); - req->hw._present.value_len = len; - req->hw.value = malloc(req->hw._present.value_len); - memcpy(req->hw.value, value, req->hw._present.value_len); + req->hw._len.value = len; + req->hw.value = malloc(req->hw._len.value); + memcpy(req->hw.value, value, req->hw._len.value); } static inline void ethtool_features_set_req_set_hw_mask(struct ethtool_features_set_req *req, @@ -2026,9 +2054,9 @@ ethtool_features_set_req_set_hw_mask(struct ethtool_features_set_req *req, { req->_present.hw = 1; free(req->hw.mask); - req->hw._present.mask_len = len; - req->hw.mask = malloc(req->hw._present.mask_len); - memcpy(req->hw.mask, mask, req->hw._present.mask_len); + req->hw._len.mask = len; + req->hw.mask = malloc(req->hw._len.mask); + memcpy(req->hw.mask, mask, req->hw._len.mask); } static inline void ethtool_features_set_req_set_wanted_nomask(struct ethtool_features_set_req *req) @@ -2053,11 +2081,11 @@ __ethtool_features_set_req_set_wanted_bits_bit(struct ethtool_features_set_req * req->_present.wanted = 1; req->wanted._present.bits = 1; - for (i = 0; i < req->wanted.bits.n_bit; i++) + for (i = 0; i < req->wanted.bits._count.bit; i++) ethtool_bitset_bit_free(&req->wanted.bits.bit[i]); free(req->wanted.bits.bit); req->wanted.bits.bit = bit; - req->wanted.bits.n_bit = n_bit; + req->wanted.bits._count.bit = n_bit; } static inline void ethtool_features_set_req_set_wanted_value(struct ethtool_features_set_req *req, @@ -2065,9 +2093,9 @@ ethtool_features_set_req_set_wanted_value(struct ethtool_features_set_req *req, { req->_present.wanted = 1; free(req->wanted.value); - req->wanted._present.value_len = len; - req->wanted.value = malloc(req->wanted._present.value_len); - memcpy(req->wanted.value, value, req->wanted._present.value_len); + req->wanted._len.value = len; + req->wanted.value = malloc(req->wanted._len.value); + memcpy(req->wanted.value, value, req->wanted._len.value); } static inline void ethtool_features_set_req_set_wanted_mask(struct ethtool_features_set_req *req, @@ -2075,9 +2103,9 @@ ethtool_features_set_req_set_wanted_mask(struct ethtool_features_set_req *req, { req->_present.wanted = 1; free(req->wanted.mask); - req->wanted._present.mask_len = len; - req->wanted.mask = malloc(req->wanted._present.mask_len); - memcpy(req->wanted.mask, mask, req->wanted._present.mask_len); + req->wanted._len.mask = len; + req->wanted.mask = malloc(req->wanted._len.mask); + memcpy(req->wanted.mask, mask, req->wanted._len.mask); } static inline void ethtool_features_set_req_set_active_nomask(struct ethtool_features_set_req *req) @@ -2102,11 +2130,11 @@ __ethtool_features_set_req_set_active_bits_bit(struct ethtool_features_set_req * req->_present.active = 1; req->active._present.bits = 1; - for (i = 0; i < req->active.bits.n_bit; i++) + for (i = 0; i < req->active.bits._count.bit; i++) ethtool_bitset_bit_free(&req->active.bits.bit[i]); free(req->active.bits.bit); req->active.bits.bit = bit; - req->active.bits.n_bit = n_bit; + req->active.bits._count.bit = n_bit; } static inline void ethtool_features_set_req_set_active_value(struct ethtool_features_set_req *req, @@ -2114,9 +2142,9 @@ ethtool_features_set_req_set_active_value(struct ethtool_features_set_req *req, { req->_present.active = 1; free(req->active.value); - req->active._present.value_len = len; - req->active.value = malloc(req->active._present.value_len); - memcpy(req->active.value, value, req->active._present.value_len); + req->active._len.value = len; + req->active.value = malloc(req->active._len.value); + memcpy(req->active.value, value, req->active._len.value); } static inline void ethtool_features_set_req_set_active_mask(struct ethtool_features_set_req *req, @@ -2124,9 +2152,9 @@ ethtool_features_set_req_set_active_mask(struct ethtool_features_set_req *req, { req->_present.active = 1; free(req->active.mask); - req->active._present.mask_len = len; - req->active.mask = malloc(req->active._present.mask_len); - memcpy(req->active.mask, mask, req->active._present.mask_len); + req->active._len.mask = len; + req->active.mask = malloc(req->active._len.mask); + memcpy(req->active.mask, mask, req->active._len.mask); } static inline void ethtool_features_set_req_set_nochange_nomask(struct ethtool_features_set_req *req) @@ -2151,11 +2179,11 @@ __ethtool_features_set_req_set_nochange_bits_bit(struct ethtool_features_set_req req->_present.nochange = 1; req->nochange._present.bits = 1; - for (i = 0; i < req->nochange.bits.n_bit; i++) + for (i = 0; i < req->nochange.bits._count.bit; i++) ethtool_bitset_bit_free(&req->nochange.bits.bit[i]); free(req->nochange.bits.bit); req->nochange.bits.bit = bit; - req->nochange.bits.n_bit = n_bit; + req->nochange.bits._count.bit = n_bit; } static inline void ethtool_features_set_req_set_nochange_value(struct ethtool_features_set_req *req, @@ -2163,9 +2191,9 @@ ethtool_features_set_req_set_nochange_value(struct ethtool_features_set_req *req { req->_present.nochange = 1; free(req->nochange.value); - req->nochange._present.value_len = len; - req->nochange.value = malloc(req->nochange._present.value_len); - memcpy(req->nochange.value, value, req->nochange._present.value_len); + req->nochange._len.value = len; + req->nochange.value = malloc(req->nochange._len.value); + memcpy(req->nochange.value, value, req->nochange._len.value); } static inline void ethtool_features_set_req_set_nochange_mask(struct ethtool_features_set_req *req, @@ -2173,9 +2201,9 @@ ethtool_features_set_req_set_nochange_mask(struct ethtool_features_set_req *req, { req->_present.nochange = 1; free(req->nochange.mask); - req->nochange._present.mask_len = len; - req->nochange.mask = malloc(req->nochange._present.mask_len); - memcpy(req->nochange.mask, mask, req->nochange._present.mask_len); + req->nochange._len.mask = len; + req->nochange.mask = malloc(req->nochange._len.mask); + memcpy(req->nochange.mask, mask, req->nochange._len.mask); } struct ethtool_features_set_rsp { @@ -2233,10 +2261,10 @@ ethtool_privflags_get_req_set_header_dev_name(struct ethtool_privflags_get_req * { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_privflags_get_req_set_header_flags(struct ethtool_privflags_get_req *req, @@ -2305,10 +2333,10 @@ ethtool_privflags_get_req_dump_set_header_dev_name(struct ethtool_privflags_get_ { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_privflags_get_req_dump_set_header_flags(struct ethtool_privflags_get_req_dump *req, @@ -2382,10 +2410,10 @@ ethtool_privflags_set_req_set_header_dev_name(struct ethtool_privflags_set_req * { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_privflags_set_req_set_header_flags(struct ethtool_privflags_set_req *req, @@ -2426,11 +2454,11 @@ __ethtool_privflags_set_req_set_flags_bits_bit(struct ethtool_privflags_set_req req->_present.flags = 1; req->flags._present.bits = 1; - for (i = 0; i < req->flags.bits.n_bit; i++) + for (i = 0; i < req->flags.bits._count.bit; i++) ethtool_bitset_bit_free(&req->flags.bits.bit[i]); free(req->flags.bits.bit); req->flags.bits.bit = bit; - req->flags.bits.n_bit = n_bit; + req->flags.bits._count.bit = n_bit; } static inline void ethtool_privflags_set_req_set_flags_value(struct ethtool_privflags_set_req *req, @@ -2438,9 +2466,9 @@ ethtool_privflags_set_req_set_flags_value(struct ethtool_privflags_set_req *req, { req->_present.flags = 1; free(req->flags.value); - req->flags._present.value_len = len; - req->flags.value = malloc(req->flags._present.value_len); - memcpy(req->flags.value, value, req->flags._present.value_len); + req->flags._len.value = len; + req->flags.value = malloc(req->flags._len.value); + memcpy(req->flags.value, value, req->flags._len.value); } static inline void ethtool_privflags_set_req_set_flags_mask(struct ethtool_privflags_set_req *req, @@ -2448,9 +2476,9 @@ ethtool_privflags_set_req_set_flags_mask(struct ethtool_privflags_set_req *req, { req->_present.flags = 1; free(req->flags.mask); - req->flags._present.mask_len = len; - req->flags.mask = malloc(req->flags._present.mask_len); - memcpy(req->flags.mask, mask, req->flags._present.mask_len); + req->flags._len.mask = len; + req->flags.mask = malloc(req->flags._len.mask); + memcpy(req->flags.mask, mask, req->flags._len.mask); } /* @@ -2489,10 +2517,10 @@ ethtool_rings_get_req_set_header_dev_name(struct ethtool_rings_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_rings_get_req_set_header_flags(struct ethtool_rings_get_req *req, @@ -2591,10 +2619,10 @@ ethtool_rings_get_req_dump_set_header_dev_name(struct ethtool_rings_get_req_dump { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_rings_get_req_dump_set_header_flags(struct ethtool_rings_get_req_dump *req, @@ -2699,10 +2727,10 @@ ethtool_rings_set_req_set_header_dev_name(struct ethtool_rings_set_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_rings_set_req_set_header_flags(struct ethtool_rings_set_req *req, @@ -2874,10 +2902,10 @@ ethtool_channels_get_req_set_header_dev_name(struct ethtool_channels_get_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_channels_get_req_set_header_flags(struct ethtool_channels_get_req *req, @@ -2959,10 +2987,10 @@ ethtool_channels_get_req_dump_set_header_dev_name(struct ethtool_channels_get_re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_channels_get_req_dump_set_header_flags(struct ethtool_channels_get_req_dump *req, @@ -3050,10 +3078,10 @@ ethtool_channels_set_req_set_header_dev_name(struct ethtool_channels_set_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_channels_set_req_set_header_flags(struct ethtool_channels_set_req *req, @@ -3165,10 +3193,10 @@ ethtool_coalesce_get_req_set_header_dev_name(struct ethtool_coalesce_get_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_coalesce_get_req_set_header_flags(struct ethtool_coalesce_get_req *req, @@ -3292,10 +3320,10 @@ ethtool_coalesce_get_req_dump_set_header_dev_name(struct ethtool_coalesce_get_re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_coalesce_get_req_dump_set_header_flags(struct ethtool_coalesce_get_req_dump *req, @@ -3425,10 +3453,10 @@ ethtool_coalesce_set_req_set_header_dev_name(struct ethtool_coalesce_set_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_coalesce_set_req_set_header_flags(struct ethtool_coalesce_set_req *req, @@ -3643,11 +3671,11 @@ __ethtool_coalesce_set_req_set_rx_profile_irq_moderation(struct ethtool_coalesce unsigned int i; req->_present.rx_profile = 1; - for (i = 0; i < req->rx_profile.n_irq_moderation; i++) + for (i = 0; i < req->rx_profile._count.irq_moderation; i++) ethtool_irq_moderation_free(&req->rx_profile.irq_moderation[i]); free(req->rx_profile.irq_moderation); req->rx_profile.irq_moderation = irq_moderation; - req->rx_profile.n_irq_moderation = n_irq_moderation; + req->rx_profile._count.irq_moderation = n_irq_moderation; } static inline void __ethtool_coalesce_set_req_set_tx_profile_irq_moderation(struct ethtool_coalesce_set_req *req, @@ -3657,11 +3685,11 @@ __ethtool_coalesce_set_req_set_tx_profile_irq_moderation(struct ethtool_coalesce unsigned int i; req->_present.tx_profile = 1; - for (i = 0; i < req->tx_profile.n_irq_moderation; i++) + for (i = 0; i < req->tx_profile._count.irq_moderation; i++) ethtool_irq_moderation_free(&req->tx_profile.irq_moderation[i]); free(req->tx_profile.irq_moderation); req->tx_profile.irq_moderation = irq_moderation; - req->tx_profile.n_irq_moderation = n_irq_moderation; + req->tx_profile._count.irq_moderation = n_irq_moderation; } /* @@ -3700,10 +3728,10 @@ ethtool_pause_get_req_set_header_dev_name(struct ethtool_pause_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_pause_get_req_set_header_flags(struct ethtool_pause_get_req *req, @@ -3778,10 +3806,10 @@ ethtool_pause_get_req_dump_set_header_dev_name(struct ethtool_pause_get_req_dump { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_pause_get_req_dump_set_header_flags(struct ethtool_pause_get_req_dump *req, @@ -3862,10 +3890,10 @@ ethtool_pause_set_req_set_header_dev_name(struct ethtool_pause_set_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_pause_set_req_set_header_flags(struct ethtool_pause_set_req *req, @@ -3961,10 +3989,10 @@ ethtool_eee_get_req_set_header_dev_name(struct ethtool_eee_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_eee_get_req_set_header_flags(struct ethtool_eee_get_req *req, @@ -4041,10 +4069,10 @@ ethtool_eee_get_req_dump_set_header_dev_name(struct ethtool_eee_get_req_dump *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_eee_get_req_dump_set_header_flags(struct ethtool_eee_get_req_dump *req, @@ -4126,10 +4154,10 @@ ethtool_eee_set_req_set_header_dev_name(struct ethtool_eee_set_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_eee_set_req_set_header_flags(struct ethtool_eee_set_req *req, @@ -4170,11 +4198,11 @@ __ethtool_eee_set_req_set_modes_ours_bits_bit(struct ethtool_eee_set_req *req, req->_present.modes_ours = 1; req->modes_ours._present.bits = 1; - for (i = 0; i < req->modes_ours.bits.n_bit; i++) + for (i = 0; i < req->modes_ours.bits._count.bit; i++) ethtool_bitset_bit_free(&req->modes_ours.bits.bit[i]); free(req->modes_ours.bits.bit); req->modes_ours.bits.bit = bit; - req->modes_ours.bits.n_bit = n_bit; + req->modes_ours.bits._count.bit = n_bit; } static inline void ethtool_eee_set_req_set_modes_ours_value(struct ethtool_eee_set_req *req, @@ -4182,9 +4210,9 @@ ethtool_eee_set_req_set_modes_ours_value(struct ethtool_eee_set_req *req, { req->_present.modes_ours = 1; free(req->modes_ours.value); - req->modes_ours._present.value_len = len; - req->modes_ours.value = malloc(req->modes_ours._present.value_len); - memcpy(req->modes_ours.value, value, req->modes_ours._present.value_len); + req->modes_ours._len.value = len; + req->modes_ours.value = malloc(req->modes_ours._len.value); + memcpy(req->modes_ours.value, value, req->modes_ours._len.value); } static inline void ethtool_eee_set_req_set_modes_ours_mask(struct ethtool_eee_set_req *req, @@ -4192,9 +4220,9 @@ ethtool_eee_set_req_set_modes_ours_mask(struct ethtool_eee_set_req *req, { req->_present.modes_ours = 1; free(req->modes_ours.mask); - req->modes_ours._present.mask_len = len; - req->modes_ours.mask = malloc(req->modes_ours._present.mask_len); - memcpy(req->modes_ours.mask, mask, req->modes_ours._present.mask_len); + req->modes_ours._len.mask = len; + req->modes_ours.mask = malloc(req->modes_ours._len.mask); + memcpy(req->modes_ours.mask, mask, req->modes_ours._len.mask); } static inline void ethtool_eee_set_req_set_modes_peer_nomask(struct ethtool_eee_set_req *req) @@ -4219,11 +4247,11 @@ __ethtool_eee_set_req_set_modes_peer_bits_bit(struct ethtool_eee_set_req *req, req->_present.modes_peer = 1; req->modes_peer._present.bits = 1; - for (i = 0; i < req->modes_peer.bits.n_bit; i++) + for (i = 0; i < req->modes_peer.bits._count.bit; i++) ethtool_bitset_bit_free(&req->modes_peer.bits.bit[i]); free(req->modes_peer.bits.bit); req->modes_peer.bits.bit = bit; - req->modes_peer.bits.n_bit = n_bit; + req->modes_peer.bits._count.bit = n_bit; } static inline void ethtool_eee_set_req_set_modes_peer_value(struct ethtool_eee_set_req *req, @@ -4231,9 +4259,9 @@ ethtool_eee_set_req_set_modes_peer_value(struct ethtool_eee_set_req *req, { req->_present.modes_peer = 1; free(req->modes_peer.value); - req->modes_peer._present.value_len = len; - req->modes_peer.value = malloc(req->modes_peer._present.value_len); - memcpy(req->modes_peer.value, value, req->modes_peer._present.value_len); + req->modes_peer._len.value = len; + req->modes_peer.value = malloc(req->modes_peer._len.value); + memcpy(req->modes_peer.value, value, req->modes_peer._len.value); } static inline void ethtool_eee_set_req_set_modes_peer_mask(struct ethtool_eee_set_req *req, @@ -4241,9 +4269,9 @@ ethtool_eee_set_req_set_modes_peer_mask(struct ethtool_eee_set_req *req, { req->_present.modes_peer = 1; free(req->modes_peer.mask); - req->modes_peer._present.mask_len = len; - req->modes_peer.mask = malloc(req->modes_peer._present.mask_len); - memcpy(req->modes_peer.mask, mask, req->modes_peer._present.mask_len); + req->modes_peer._len.mask = len; + req->modes_peer.mask = malloc(req->modes_peer._len.mask); + memcpy(req->modes_peer.mask, mask, req->modes_peer._len.mask); } static inline void ethtool_eee_set_req_set_active(struct ethtool_eee_set_req *req, __u8 active) @@ -4309,10 +4337,10 @@ ethtool_tsinfo_get_req_set_header_dev_name(struct ethtool_tsinfo_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_tsinfo_get_req_set_header_flags(struct ethtool_tsinfo_get_req *req, @@ -4407,10 +4435,10 @@ ethtool_tsinfo_get_req_dump_set_header_dev_name(struct ethtool_tsinfo_get_req_du { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_tsinfo_get_req_dump_set_header_flags(struct ethtool_tsinfo_get_req_dump *req, @@ -4487,10 +4515,10 @@ ethtool_cable_test_act_req_set_header_dev_name(struct ethtool_cable_test_act_req { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_cable_test_act_req_set_header_flags(struct ethtool_cable_test_act_req *req, @@ -4547,10 +4575,10 @@ ethtool_cable_test_tdr_act_req_set_header_dev_name(struct ethtool_cable_test_tdr { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_cable_test_tdr_act_req_set_header_flags(struct ethtool_cable_test_tdr_act_req *req, @@ -4606,10 +4634,10 @@ ethtool_tunnel_info_get_req_set_header_dev_name(struct ethtool_tunnel_info_get_r { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_tunnel_info_get_req_set_header_flags(struct ethtool_tunnel_info_get_req *req, @@ -4678,10 +4706,10 @@ ethtool_tunnel_info_get_req_dump_set_header_dev_name(struct ethtool_tunnel_info_ { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_tunnel_info_get_req_dump_set_header_flags(struct ethtool_tunnel_info_get_req_dump *req, @@ -4742,10 +4770,10 @@ ethtool_fec_get_req_set_header_dev_name(struct ethtool_fec_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_fec_get_req_set_header_flags(struct ethtool_fec_get_req *req, @@ -4818,10 +4846,10 @@ ethtool_fec_get_req_dump_set_header_dev_name(struct ethtool_fec_get_req_dump *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_fec_get_req_dump_set_header_flags(struct ethtool_fec_get_req_dump *req, @@ -4899,10 +4927,10 @@ ethtool_fec_set_req_set_header_dev_name(struct ethtool_fec_set_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_fec_set_req_set_header_flags(struct ethtool_fec_set_req *req, @@ -4942,11 +4970,11 @@ __ethtool_fec_set_req_set_modes_bits_bit(struct ethtool_fec_set_req *req, req->_present.modes = 1; req->modes._present.bits = 1; - for (i = 0; i < req->modes.bits.n_bit; i++) + for (i = 0; i < req->modes.bits._count.bit; i++) ethtool_bitset_bit_free(&req->modes.bits.bit[i]); free(req->modes.bits.bit); req->modes.bits.bit = bit; - req->modes.bits.n_bit = n_bit; + req->modes.bits._count.bit = n_bit; } static inline void ethtool_fec_set_req_set_modes_value(struct ethtool_fec_set_req *req, @@ -4954,9 +4982,9 @@ ethtool_fec_set_req_set_modes_value(struct ethtool_fec_set_req *req, { req->_present.modes = 1; free(req->modes.value); - req->modes._present.value_len = len; - req->modes.value = malloc(req->modes._present.value_len); - memcpy(req->modes.value, value, req->modes._present.value_len); + req->modes._len.value = len; + req->modes.value = malloc(req->modes._len.value); + memcpy(req->modes.value, value, req->modes._len.value); } static inline void ethtool_fec_set_req_set_modes_mask(struct ethtool_fec_set_req *req, @@ -4964,9 +4992,9 @@ ethtool_fec_set_req_set_modes_mask(struct ethtool_fec_set_req *req, { req->_present.modes = 1; free(req->modes.mask); - req->modes._present.mask_len = len; - req->modes.mask = malloc(req->modes._present.mask_len); - memcpy(req->modes.mask, mask, req->modes._present.mask_len); + req->modes._len.mask = len; + req->modes.mask = malloc(req->modes._len.mask); + memcpy(req->modes.mask, mask, req->modes._len.mask); } static inline void ethtool_fec_set_req_set_auto_(struct ethtool_fec_set_req *req, __u8 auto_) @@ -4986,9 +5014,9 @@ ethtool_fec_set_req_set_stats_corrected(struct ethtool_fec_set_req *req, { req->_present.stats = 1; free(req->stats.corrected); - req->stats._present.corrected_len = len; - req->stats.corrected = malloc(req->stats._present.corrected_len); - memcpy(req->stats.corrected, corrected, req->stats._present.corrected_len); + req->stats._len.corrected = len; + req->stats.corrected = malloc(req->stats._len.corrected); + memcpy(req->stats.corrected, corrected, req->stats._len.corrected); } static inline void ethtool_fec_set_req_set_stats_uncorr(struct ethtool_fec_set_req *req, @@ -4996,9 +5024,9 @@ ethtool_fec_set_req_set_stats_uncorr(struct ethtool_fec_set_req *req, { req->_present.stats = 1; free(req->stats.uncorr); - req->stats._present.uncorr_len = len; - req->stats.uncorr = malloc(req->stats._present.uncorr_len); - memcpy(req->stats.uncorr, uncorr, req->stats._present.uncorr_len); + req->stats._len.uncorr = len; + req->stats.uncorr = malloc(req->stats._len.uncorr); + memcpy(req->stats.uncorr, uncorr, req->stats._len.uncorr); } static inline void ethtool_fec_set_req_set_stats_corr_bits(struct ethtool_fec_set_req *req, @@ -5006,9 +5034,9 @@ ethtool_fec_set_req_set_stats_corr_bits(struct ethtool_fec_set_req *req, { req->_present.stats = 1; free(req->stats.corr_bits); - req->stats._present.corr_bits_len = len; - req->stats.corr_bits = malloc(req->stats._present.corr_bits_len); - memcpy(req->stats.corr_bits, corr_bits, req->stats._present.corr_bits_len); + req->stats._len.corr_bits = len; + req->stats.corr_bits = malloc(req->stats._len.corr_bits); + memcpy(req->stats.corr_bits, corr_bits, req->stats._len.corr_bits); } /* @@ -5048,10 +5076,10 @@ ethtool_module_eeprom_get_req_set_header_dev_name(struct ethtool_module_eeprom_g { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_module_eeprom_get_req_set_header_flags(struct ethtool_module_eeprom_get_req *req, @@ -5078,8 +5106,10 @@ struct ethtool_module_eeprom_get_rsp { __u32 page:1; __u32 bank:1; __u32 i2c_address:1; - __u32 data_len; } _present; + struct { + __u32 data; + } _len; struct ethtool_header header; __u32 offset; @@ -5131,10 +5161,10 @@ ethtool_module_eeprom_get_req_dump_set_header_dev_name(struct ethtool_module_eep { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_module_eeprom_get_req_dump_set_header_flags(struct ethtool_module_eeprom_get_req_dump *req, @@ -5196,10 +5226,10 @@ ethtool_phc_vclocks_get_req_set_header_dev_name(struct ethtool_phc_vclocks_get_r { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_phc_vclocks_get_req_set_header_flags(struct ethtool_phc_vclocks_get_req *req, @@ -5268,10 +5298,10 @@ ethtool_phc_vclocks_get_req_dump_set_header_dev_name(struct ethtool_phc_vclocks_ { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_phc_vclocks_get_req_dump_set_header_flags(struct ethtool_phc_vclocks_get_req_dump *req, @@ -5332,10 +5362,10 @@ ethtool_module_get_req_set_header_dev_name(struct ethtool_module_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_module_get_req_set_header_flags(struct ethtool_module_get_req *req, @@ -5404,10 +5434,10 @@ ethtool_module_get_req_dump_set_header_dev_name(struct ethtool_module_get_req_du { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_module_get_req_dump_set_header_flags(struct ethtool_module_get_req_dump *req, @@ -5482,10 +5512,10 @@ ethtool_module_set_req_set_header_dev_name(struct ethtool_module_set_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_module_set_req_set_header_flags(struct ethtool_module_set_req *req, @@ -5553,10 +5583,10 @@ ethtool_pse_get_req_set_header_dev_name(struct ethtool_pse_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_pse_get_req_set_header_flags(struct ethtool_pse_get_req *req, @@ -5590,6 +5620,9 @@ struct ethtool_pse_get_rsp { __u32 c33_pse_ext_substate:1; __u32 c33_pse_avail_pw_limit:1; } _present; + struct { + __u32 c33_pse_pw_limit_ranges; + } _count; struct ethtool_header header; __u32 podl_pse_admin_state; @@ -5603,7 +5636,6 @@ struct ethtool_pse_get_rsp { enum ethtool_c33_pse_ext_state c33_pse_ext_state; __u32 c33_pse_ext_substate; __u32 c33_pse_avail_pw_limit; - unsigned int n_c33_pse_pw_limit_ranges; struct ethtool_c33_pse_pw_limit *c33_pse_pw_limit_ranges; }; @@ -5645,10 +5677,10 @@ ethtool_pse_get_req_dump_set_header_dev_name(struct ethtool_pse_get_req_dump *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_pse_get_req_dump_set_header_flags(struct ethtool_pse_get_req_dump *req, @@ -5713,10 +5745,10 @@ ethtool_pse_set_req_set_header_dev_name(struct ethtool_pse_set_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_pse_set_req_set_header_flags(struct ethtool_pse_set_req *req, @@ -5793,10 +5825,10 @@ ethtool_rss_get_req_set_header_dev_name(struct ethtool_rss_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_rss_get_req_set_header_flags(struct ethtool_rss_get_req *req, @@ -5826,10 +5858,12 @@ struct ethtool_rss_get_rsp { __u32 header:1; __u32 context:1; __u32 hfunc:1; - __u32 indir_len; - __u32 hkey_len; __u32 input_xfrm:1; } _present; + struct { + __u32 indir; + __u32 hkey; + } _len; struct ethtool_header header; __u32 context; @@ -5879,10 +5913,10 @@ ethtool_rss_get_req_dump_set_header_dev_name(struct ethtool_rss_get_req_dump *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_rss_get_req_dump_set_header_flags(struct ethtool_rss_get_req_dump *req, @@ -5949,10 +5983,10 @@ ethtool_plca_get_cfg_req_set_header_dev_name(struct ethtool_plca_get_cfg_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_plca_get_cfg_req_set_header_flags(struct ethtool_plca_get_cfg_req *req, @@ -6034,10 +6068,10 @@ ethtool_plca_get_cfg_req_dump_set_header_dev_name(struct ethtool_plca_get_cfg_re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_plca_get_cfg_req_dump_set_header_flags(struct ethtool_plca_get_cfg_req_dump *req, @@ -6125,10 +6159,10 @@ ethtool_plca_set_cfg_req_set_header_dev_name(struct ethtool_plca_set_cfg_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_plca_set_cfg_req_set_header_flags(struct ethtool_plca_set_cfg_req *req, @@ -6240,10 +6274,10 @@ ethtool_plca_get_status_req_set_header_dev_name(struct ethtool_plca_get_status_r { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_plca_get_status_req_set_header_flags(struct ethtool_plca_get_status_req *req, @@ -6326,10 +6360,10 @@ ethtool_plca_get_status_req_dump_set_header_dev_name(struct ethtool_plca_get_sta { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_plca_get_status_req_dump_set_header_flags(struct ethtool_plca_get_status_req_dump *req, @@ -6390,10 +6424,10 @@ ethtool_mm_get_req_set_header_dev_name(struct ethtool_mm_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_mm_get_req_set_header_flags(struct ethtool_mm_get_req *req, @@ -6476,10 +6510,10 @@ ethtool_mm_get_req_dump_set_header_dev_name(struct ethtool_mm_get_req_dump *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_mm_get_req_dump_set_header_flags(struct ethtool_mm_get_req_dump *req, @@ -6559,10 +6593,10 @@ ethtool_mm_set_req_set_header_dev_name(struct ethtool_mm_set_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_mm_set_req_set_header_flags(struct ethtool_mm_set_req *req, @@ -6626,9 +6660,11 @@ int ethtool_mm_set(struct ynl_sock *ys, struct ethtool_mm_set_req *req); struct ethtool_module_fw_flash_act_req { struct { __u32 header:1; - __u32 file_name_len; __u32 password:1; } _present; + struct { + __u32 file_name; + } _len; struct ethtool_header header; char *file_name; @@ -6657,10 +6693,10 @@ ethtool_module_fw_flash_act_req_set_header_dev_name(struct ethtool_module_fw_fla { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_module_fw_flash_act_req_set_header_flags(struct ethtool_module_fw_flash_act_req *req, @@ -6683,10 +6719,10 @@ ethtool_module_fw_flash_act_req_set_file_name(struct ethtool_module_fw_flash_act const char *file_name) { free(req->file_name); - req->_present.file_name_len = strlen(file_name); - req->file_name = malloc(req->_present.file_name_len + 1); - memcpy(req->file_name, file_name, req->_present.file_name_len); - req->file_name[req->_present.file_name_len] = 0; + req->_len.file_name = strlen(file_name); + req->file_name = malloc(req->_len.file_name + 1); + memcpy(req->file_name, file_name, req->_len.file_name); + req->file_name[req->_len.file_name] = 0; } static inline void ethtool_module_fw_flash_act_req_set_password(struct ethtool_module_fw_flash_act_req *req, @@ -6732,10 +6768,10 @@ ethtool_phy_get_req_set_header_dev_name(struct ethtool_phy_get_req *req, { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_phy_get_req_set_header_flags(struct ethtool_phy_get_req *req, @@ -6758,13 +6794,15 @@ struct ethtool_phy_get_rsp { struct { __u32 header:1; __u32 index:1; - __u32 drvname_len; - __u32 name_len; __u32 upstream_type:1; __u32 upstream_index:1; - __u32 upstream_sfp_name_len; - __u32 downstream_sfp_name_len; } _present; + struct { + __u32 drvname; + __u32 name; + __u32 upstream_sfp_name; + __u32 downstream_sfp_name; + } _len; struct ethtool_header header; __u32 index; @@ -6814,10 +6852,10 @@ ethtool_phy_get_req_dump_set_header_dev_name(struct ethtool_phy_get_req_dump *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_phy_get_req_dump_set_header_flags(struct ethtool_phy_get_req_dump *req, @@ -6888,10 +6926,10 @@ ethtool_tsconfig_get_req_set_header_dev_name(struct ethtool_tsconfig_get_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_tsconfig_get_req_set_header_flags(struct ethtool_tsconfig_get_req *req, @@ -6965,10 +7003,10 @@ ethtool_tsconfig_get_req_dump_set_header_dev_name(struct ethtool_tsconfig_get_re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_tsconfig_get_req_dump_set_header_flags(struct ethtool_tsconfig_get_req_dump *req, @@ -7037,10 +7075,10 @@ ethtool_tsconfig_set_req_set_header_dev_name(struct ethtool_tsconfig_set_req *re { req->_present.header = 1; free(req->header.dev_name); - req->header._present.dev_name_len = strlen(dev_name); - req->header.dev_name = malloc(req->header._present.dev_name_len + 1); - memcpy(req->header.dev_name, dev_name, req->header._present.dev_name_len); - req->header.dev_name[req->header._present.dev_name_len] = 0; + req->header._len.dev_name = strlen(dev_name); + req->header.dev_name = malloc(req->header._len.dev_name + 1); + memcpy(req->header.dev_name, dev_name, req->header._len.dev_name); + req->header.dev_name[req->header._len.dev_name] = 0; } static inline void ethtool_tsconfig_set_req_set_header_flags(struct ethtool_tsconfig_set_req *req, @@ -7097,11 +7135,11 @@ __ethtool_tsconfig_set_req_set_tx_types_bits_bit(struct ethtool_tsconfig_set_req req->_present.tx_types = 1; req->tx_types._present.bits = 1; - for (i = 0; i < req->tx_types.bits.n_bit; i++) + for (i = 0; i < req->tx_types.bits._count.bit; i++) ethtool_bitset_bit_free(&req->tx_types.bits.bit[i]); free(req->tx_types.bits.bit); req->tx_types.bits.bit = bit; - req->tx_types.bits.n_bit = n_bit; + req->tx_types.bits._count.bit = n_bit; } static inline void ethtool_tsconfig_set_req_set_tx_types_value(struct ethtool_tsconfig_set_req *req, @@ -7109,9 +7147,9 @@ ethtool_tsconfig_set_req_set_tx_types_value(struct ethtool_tsconfig_set_req *req { req->_present.tx_types = 1; free(req->tx_types.value); - req->tx_types._present.value_len = len; - req->tx_types.value = malloc(req->tx_types._present.value_len); - memcpy(req->tx_types.value, value, req->tx_types._present.value_len); + req->tx_types._len.value = len; + req->tx_types.value = malloc(req->tx_types._len.value); + memcpy(req->tx_types.value, value, req->tx_types._len.value); } static inline void ethtool_tsconfig_set_req_set_tx_types_mask(struct ethtool_tsconfig_set_req *req, @@ -7119,9 +7157,9 @@ ethtool_tsconfig_set_req_set_tx_types_mask(struct ethtool_tsconfig_set_req *req, { req->_present.tx_types = 1; free(req->tx_types.mask); - req->tx_types._present.mask_len = len; - req->tx_types.mask = malloc(req->tx_types._present.mask_len); - memcpy(req->tx_types.mask, mask, req->tx_types._present.mask_len); + req->tx_types._len.mask = len; + req->tx_types.mask = malloc(req->tx_types._len.mask); + memcpy(req->tx_types.mask, mask, req->tx_types._len.mask); } static inline void ethtool_tsconfig_set_req_set_rx_filters_nomask(struct ethtool_tsconfig_set_req *req) @@ -7146,11 +7184,11 @@ __ethtool_tsconfig_set_req_set_rx_filters_bits_bit(struct ethtool_tsconfig_set_r req->_present.rx_filters = 1; req->rx_filters._present.bits = 1; - for (i = 0; i < req->rx_filters.bits.n_bit; i++) + for (i = 0; i < req->rx_filters.bits._count.bit; i++) ethtool_bitset_bit_free(&req->rx_filters.bits.bit[i]); free(req->rx_filters.bits.bit); req->rx_filters.bits.bit = bit; - req->rx_filters.bits.n_bit = n_bit; + req->rx_filters.bits._count.bit = n_bit; } static inline void ethtool_tsconfig_set_req_set_rx_filters_value(struct ethtool_tsconfig_set_req *req, @@ -7158,9 +7196,9 @@ ethtool_tsconfig_set_req_set_rx_filters_value(struct ethtool_tsconfig_set_req *r { req->_present.rx_filters = 1; free(req->rx_filters.value); - req->rx_filters._present.value_len = len; - req->rx_filters.value = malloc(req->rx_filters._present.value_len); - memcpy(req->rx_filters.value, value, req->rx_filters._present.value_len); + req->rx_filters._len.value = len; + req->rx_filters.value = malloc(req->rx_filters._len.value); + memcpy(req->rx_filters.value, value, req->rx_filters._len.value); } static inline void ethtool_tsconfig_set_req_set_rx_filters_mask(struct ethtool_tsconfig_set_req *req, @@ -7168,9 +7206,9 @@ ethtool_tsconfig_set_req_set_rx_filters_mask(struct ethtool_tsconfig_set_req *re { req->_present.rx_filters = 1; free(req->rx_filters.mask); - req->rx_filters._present.mask_len = len; - req->rx_filters.mask = malloc(req->rx_filters._present.mask_len); - memcpy(req->rx_filters.mask, mask, req->rx_filters._present.mask_len); + req->rx_filters._len.mask = len; + req->rx_filters.mask = malloc(req->rx_filters._len.mask); + memcpy(req->rx_filters.mask, mask, req->rx_filters._len.mask); } static inline void ethtool_tsconfig_set_req_set_hwtstamp_flags_nomask(struct ethtool_tsconfig_set_req *req) @@ -7195,11 +7233,11 @@ __ethtool_tsconfig_set_req_set_hwtstamp_flags_bits_bit(struct ethtool_tsconfig_s req->_present.hwtstamp_flags = 1; req->hwtstamp_flags._present.bits = 1; - for (i = 0; i < req->hwtstamp_flags.bits.n_bit; i++) + for (i = 0; i < req->hwtstamp_flags.bits._count.bit; i++) ethtool_bitset_bit_free(&req->hwtstamp_flags.bits.bit[i]); free(req->hwtstamp_flags.bits.bit); req->hwtstamp_flags.bits.bit = bit; - req->hwtstamp_flags.bits.n_bit = n_bit; + req->hwtstamp_flags.bits._count.bit = n_bit; } static inline void ethtool_tsconfig_set_req_set_hwtstamp_flags_value(struct ethtool_tsconfig_set_req *req, @@ -7208,9 +7246,9 @@ ethtool_tsconfig_set_req_set_hwtstamp_flags_value(struct ethtool_tsconfig_set_re { req->_present.hwtstamp_flags = 1; free(req->hwtstamp_flags.value); - req->hwtstamp_flags._present.value_len = len; - req->hwtstamp_flags.value = malloc(req->hwtstamp_flags._present.value_len); - memcpy(req->hwtstamp_flags.value, value, req->hwtstamp_flags._present.value_len); + req->hwtstamp_flags._len.value = len; + req->hwtstamp_flags.value = malloc(req->hwtstamp_flags._len.value); + memcpy(req->hwtstamp_flags.value, value, req->hwtstamp_flags._len.value); } static inline void ethtool_tsconfig_set_req_set_hwtstamp_flags_mask(struct ethtool_tsconfig_set_req *req, @@ -7218,9 +7256,9 @@ ethtool_tsconfig_set_req_set_hwtstamp_flags_mask(struct ethtool_tsconfig_set_req { req->_present.hwtstamp_flags = 1; free(req->hwtstamp_flags.mask); - req->hwtstamp_flags._present.mask_len = len; - req->hwtstamp_flags.mask = malloc(req->hwtstamp_flags._present.mask_len); - memcpy(req->hwtstamp_flags.mask, mask, req->hwtstamp_flags._present.mask_len); + req->hwtstamp_flags._len.mask = len; + req->hwtstamp_flags.mask = malloc(req->hwtstamp_flags._len.mask); + memcpy(req->hwtstamp_flags.mask, mask, req->hwtstamp_flags._len.mask); } struct ethtool_tsconfig_set_rsp { @@ -7296,10 +7334,12 @@ struct ethtool_module_fw_flash_ntf_rsp { struct { __u32 header:1; __u32 status:1; - __u32 status_msg_len; __u32 done:1; __u32 total:1; } _present; + struct { + __u32 status_msg; + } _len; struct ethtool_header header; enum ethtool_module_fw_flash_status status; diff --git a/home/nipa/nipa_out/959697/ynl/old-code/fou-user.c b/home/nipa/nipa_out/959697/ynl/new-code/fou-user.c index e8894d0feb14..c15d1f15813a 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/fou-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/fou-user.c @@ -91,10 +91,10 @@ int fou_add(struct ynl_sock *ys, struct fou_add_req *req) ynl_attr_put_u32(nlh, FOU_ATTR_LOCAL_V4, req->local_v4); if (req->_present.peer_v4) ynl_attr_put_u32(nlh, FOU_ATTR_PEER_V4, req->peer_v4); - if (req->_present.local_v6_len) - ynl_attr_put(nlh, FOU_ATTR_LOCAL_V6, req->local_v6, req->_present.local_v6_len); - if (req->_present.peer_v6_len) - ynl_attr_put(nlh, FOU_ATTR_PEER_V6, req->peer_v6, req->_present.peer_v6_len); + if (req->_len.local_v6) + ynl_attr_put(nlh, FOU_ATTR_LOCAL_V6, req->local_v6, req->_len.local_v6); + if (req->_len.peer_v6) + ynl_attr_put(nlh, FOU_ATTR_PEER_V6, req->peer_v6, req->_len.peer_v6); if (req->_present.peer_port) ynl_attr_put_u16(nlh, FOU_ATTR_PEER_PORT, req->peer_port); if (req->_present.ifindex) @@ -138,10 +138,10 @@ int fou_del(struct ynl_sock *ys, struct fou_del_req *req) ynl_attr_put_u32(nlh, FOU_ATTR_LOCAL_V4, req->local_v4); if (req->_present.peer_v4) ynl_attr_put_u32(nlh, FOU_ATTR_PEER_V4, req->peer_v4); - if (req->_present.local_v6_len) - ynl_attr_put(nlh, FOU_ATTR_LOCAL_V6, req->local_v6, req->_present.local_v6_len); - if (req->_present.peer_v6_len) - ynl_attr_put(nlh, FOU_ATTR_PEER_V6, req->peer_v6, req->_present.peer_v6_len); + if (req->_len.local_v6) + ynl_attr_put(nlh, FOU_ATTR_LOCAL_V6, req->local_v6, req->_len.local_v6); + if (req->_len.peer_v6) + ynl_attr_put(nlh, FOU_ATTR_PEER_V6, req->peer_v6, req->_len.peer_v6); err = ynl_exec(ys, nlh, &yrs); if (err < 0) @@ -212,7 +212,7 @@ int fou_get_rsp_parse(const struct nlmsghdr *nlh, struct ynl_parse_arg *yarg) return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.local_v6_len = len; + dst->_len.local_v6 = len; dst->local_v6 = malloc(len); memcpy(dst->local_v6, ynl_attr_data(attr), len); } else if (type == FOU_ATTR_PEER_V6) { @@ -222,7 +222,7 @@ int fou_get_rsp_parse(const struct nlmsghdr *nlh, struct ynl_parse_arg *yarg) return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.peer_v6_len = len; + dst->_len.peer_v6 = len; dst->peer_v6 = malloc(len); memcpy(dst->peer_v6, ynl_attr_data(attr), len); } else if (type == FOU_ATTR_PEER_PORT) { @@ -265,10 +265,10 @@ struct fou_get_rsp *fou_get(struct ynl_sock *ys, struct fou_get_req *req) ynl_attr_put_u32(nlh, FOU_ATTR_LOCAL_V4, req->local_v4); if (req->_present.peer_v4) ynl_attr_put_u32(nlh, FOU_ATTR_PEER_V4, req->peer_v4); - if (req->_present.local_v6_len) - ynl_attr_put(nlh, FOU_ATTR_LOCAL_V6, req->local_v6, req->_present.local_v6_len); - if (req->_present.peer_v6_len) - ynl_attr_put(nlh, FOU_ATTR_PEER_V6, req->peer_v6, req->_present.peer_v6_len); + if (req->_len.local_v6) + ynl_attr_put(nlh, FOU_ATTR_LOCAL_V6, req->local_v6, req->_len.local_v6); + if (req->_len.peer_v6) + ynl_attr_put(nlh, FOU_ATTR_PEER_V6, req->peer_v6, req->_len.peer_v6); rsp = calloc(1, sizeof(*rsp)); yrs.yarg.data = rsp; diff --git a/home/nipa/nipa_out/959697/ynl/old-code/fou-user.h b/home/nipa/nipa_out/959697/ynl/new-code/fou-user.h index fd566716ddd6..30de52fffa40 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/fou-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/fou-user.h @@ -30,11 +30,13 @@ struct fou_add_req { __u32 remcsum_nopartial:1; __u32 local_v4:1; __u32 peer_v4:1; - __u32 local_v6_len; - __u32 peer_v6_len; __u32 peer_port:1; __u32 ifindex:1; } _present; + struct { + __u32 local_v6; + __u32 peer_v6; + } _len; __u16 port /* big-endian */; __u8 ipproto; @@ -91,18 +93,18 @@ fou_add_req_set_local_v6(struct fou_add_req *req, const void *local_v6, size_t len) { free(req->local_v6); - req->_present.local_v6_len = len; - req->local_v6 = malloc(req->_present.local_v6_len); - memcpy(req->local_v6, local_v6, req->_present.local_v6_len); + req->_len.local_v6 = len; + req->local_v6 = malloc(req->_len.local_v6); + memcpy(req->local_v6, local_v6, req->_len.local_v6); } static inline void fou_add_req_set_peer_v6(struct fou_add_req *req, const void *peer_v6, size_t len) { free(req->peer_v6); - req->_present.peer_v6_len = len; - req->peer_v6 = malloc(req->_present.peer_v6_len); - memcpy(req->peer_v6, peer_v6, req->_present.peer_v6_len); + req->_len.peer_v6 = len; + req->peer_v6 = malloc(req->_len.peer_v6); + memcpy(req->peer_v6, peer_v6, req->_len.peer_v6); } static inline void fou_add_req_set_peer_port(struct fou_add_req *req, @@ -133,9 +135,11 @@ struct fou_del_req { __u32 peer_port:1; __u32 local_v4:1; __u32 peer_v4:1; - __u32 local_v6_len; - __u32 peer_v6_len; } _present; + struct { + __u32 local_v6; + __u32 peer_v6; + } _len; __u8 af; __s32 ifindex; @@ -194,18 +198,18 @@ fou_del_req_set_local_v6(struct fou_del_req *req, const void *local_v6, size_t len) { free(req->local_v6); - req->_present.local_v6_len = len; - req->local_v6 = malloc(req->_present.local_v6_len); - memcpy(req->local_v6, local_v6, req->_present.local_v6_len); + req->_len.local_v6 = len; + req->local_v6 = malloc(req->_len.local_v6); + memcpy(req->local_v6, local_v6, req->_len.local_v6); } static inline void fou_del_req_set_peer_v6(struct fou_del_req *req, const void *peer_v6, size_t len) { free(req->peer_v6); - req->_present.peer_v6_len = len; - req->peer_v6 = malloc(req->_present.peer_v6_len); - memcpy(req->peer_v6, peer_v6, req->_present.peer_v6_len); + req->_len.peer_v6 = len; + req->peer_v6 = malloc(req->_len.peer_v6); + memcpy(req->peer_v6, peer_v6, req->_len.peer_v6); } /* @@ -223,9 +227,11 @@ struct fou_get_req { __u32 peer_port:1; __u32 local_v4:1; __u32 peer_v4:1; - __u32 local_v6_len; - __u32 peer_v6_len; } _present; + struct { + __u32 local_v6; + __u32 peer_v6; + } _len; __u8 af; __s32 ifindex; @@ -284,18 +290,18 @@ fou_get_req_set_local_v6(struct fou_get_req *req, const void *local_v6, size_t len) { free(req->local_v6); - req->_present.local_v6_len = len; - req->local_v6 = malloc(req->_present.local_v6_len); - memcpy(req->local_v6, local_v6, req->_present.local_v6_len); + req->_len.local_v6 = len; + req->local_v6 = malloc(req->_len.local_v6); + memcpy(req->local_v6, local_v6, req->_len.local_v6); } static inline void fou_get_req_set_peer_v6(struct fou_get_req *req, const void *peer_v6, size_t len) { free(req->peer_v6); - req->_present.peer_v6_len = len; - req->peer_v6 = malloc(req->_present.peer_v6_len); - memcpy(req->peer_v6, peer_v6, req->_present.peer_v6_len); + req->_len.peer_v6 = len; + req->peer_v6 = malloc(req->_len.peer_v6); + memcpy(req->peer_v6, peer_v6, req->_len.peer_v6); } struct fou_get_rsp { @@ -306,11 +312,13 @@ struct fou_get_rsp { __u32 remcsum_nopartial:1; __u32 local_v4:1; __u32 peer_v4:1; - __u32 local_v6_len; - __u32 peer_v6_len; __u32 peer_port:1; __u32 ifindex:1; } _present; + struct { + __u32 local_v6; + __u32 peer_v6; + } _len; __u16 port /* big-endian */; __u8 ipproto; diff --git a/home/nipa/nipa_out/959697/ynl/old-code/handshake-user.c b/home/nipa/nipa_out/959697/ynl/new-code/handshake-user.c index 1998ef2279e1..2c9177c7f2d2 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/handshake-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/handshake-user.c @@ -145,7 +145,7 @@ void handshake_accept_rsp_free(struct handshake_accept_rsp *rsp) unsigned int i; free(rsp->peer_identity); - for (i = 0; i < rsp->n_certificate; i++) + for (i = 0; i < rsp->_count.certificate; i++) handshake_x509_free(&rsp->certificate[i]); free(rsp->certificate); free(rsp->peername); @@ -204,7 +204,7 @@ int handshake_accept_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.peername_len = len; + dst->_len.peername = len; dst->peername = malloc(len + 1); memcpy(dst->peername, ynl_attr_get_str(attr), len); dst->peername[len] = 0; @@ -213,7 +213,7 @@ int handshake_accept_rsp_parse(const struct nlmsghdr *nlh, if (n_certificate) { dst->certificate = calloc(n_certificate, sizeof(*dst->certificate)); - dst->n_certificate = n_certificate; + dst->_count.certificate = n_certificate; i = 0; parg.rsp_policy = &handshake_x509_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -227,7 +227,7 @@ int handshake_accept_rsp_parse(const struct nlmsghdr *nlh, } if (n_peer_identity) { dst->peer_identity = calloc(n_peer_identity, sizeof(*dst->peer_identity)); - dst->n_peer_identity = n_peer_identity; + dst->_count.peer_identity = n_peer_identity; i = 0; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == HANDSHAKE_A_ACCEPT_PEER_IDENTITY) { @@ -278,7 +278,7 @@ void handshake_accept_ntf_free(struct handshake_accept_ntf *rsp) unsigned int i; free(rsp->obj.peer_identity); - for (i = 0; i < rsp->obj.n_certificate; i++) + for (i = 0; i < rsp->obj._count.certificate; i++) handshake_x509_free(&rsp->obj.certificate[i]); free(rsp->obj.certificate); free(rsp->obj.peername); @@ -308,7 +308,7 @@ int handshake_done(struct ynl_sock *ys, struct handshake_done_req *req) ynl_attr_put_u32(nlh, HANDSHAKE_A_DONE_STATUS, req->status); if (req->_present.sockfd) ynl_attr_put_s32(nlh, HANDSHAKE_A_DONE_SOCKFD, req->sockfd); - for (i = 0; i < req->n_remote_auth; i++) + for (i = 0; i < req->_count.remote_auth; i++) ynl_attr_put_u32(nlh, HANDSHAKE_A_DONE_REMOTE_AUTH, req->remote_auth[i]); err = ynl_exec(ys, nlh, &yrs); diff --git a/home/nipa/nipa_out/959697/ynl/old-code/handshake-user.h b/home/nipa/nipa_out/959697/ynl/new-code/handshake-user.h index bce537d8b8cc..52206953b6c2 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/handshake-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/handshake-user.h @@ -62,16 +62,20 @@ struct handshake_accept_rsp { __u32 message_type:1; __u32 timeout:1; __u32 auth_mode:1; - __u32 peername_len; } _present; + struct { + __u32 peername; + } _len; + struct { + __u32 peer_identity; + __u32 certificate; + } _count; __s32 sockfd; enum handshake_msg_type message_type; __u32 timeout; enum handshake_auth auth_mode; - unsigned int n_peer_identity; __u32 *peer_identity; - unsigned int n_certificate; struct handshake_x509 *certificate; char *peername; }; @@ -102,10 +106,12 @@ struct handshake_done_req { __u32 status:1; __u32 sockfd:1; } _present; + struct { + __u32 remote_auth; + } _count; __u32 status; __s32 sockfd; - unsigned int n_remote_auth; __u32 *remote_auth; }; @@ -134,7 +140,7 @@ __handshake_done_req_set_remote_auth(struct handshake_done_req *req, { free(req->remote_auth); req->remote_auth = remote_auth; - req->n_remote_auth = n_remote_auth; + req->_count.remote_auth = n_remote_auth; } /* diff --git a/home/nipa/nipa_out/959697/ynl/old-code/mptcp_pm-user.c b/home/nipa/nipa_out/959697/ynl/new-code/mptcp_pm-user.c index 24398b5d42bc..252061605c6a 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/mptcp_pm-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/mptcp_pm-user.c @@ -113,8 +113,8 @@ int mptcp_pm_address_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put_u8(nlh, MPTCP_PM_ADDR_ATTR_ID, obj->id); if (obj->_present.addr4) ynl_attr_put_u32(nlh, MPTCP_PM_ADDR_ATTR_ADDR4, obj->addr4); - if (obj->_present.addr6_len) - ynl_attr_put(nlh, MPTCP_PM_ADDR_ATTR_ADDR6, obj->addr6, obj->_present.addr6_len); + if (obj->_len.addr6) + ynl_attr_put(nlh, MPTCP_PM_ADDR_ATTR_ADDR6, obj->addr6, obj->_len.addr6); if (obj->_present.port) ynl_attr_put_u16(nlh, MPTCP_PM_ADDR_ATTR_PORT, obj->port); if (obj->_present.flags) @@ -157,7 +157,7 @@ int mptcp_pm_address_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.addr6_len = len; + dst->_len.addr6 = len; dst->addr6 = malloc(len); memcpy(dst->addr6, ynl_attr_data(attr), len); } else if (type == MPTCP_PM_ADDR_ATTR_PORT) { diff --git a/home/nipa/nipa_out/959697/ynl/old-code/mptcp_pm-user.h b/home/nipa/nipa_out/959697/ynl/new-code/mptcp_pm-user.h index 93a30f6d6c9a..8ef1ff3141ef 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/mptcp_pm-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/mptcp_pm-user.h @@ -25,11 +25,13 @@ struct mptcp_pm_address { __u32 family:1; __u32 id:1; __u32 addr4:1; - __u32 addr6_len; __u32 port:1; __u32 flags:1; __u32 if_idx:1; } _present; + struct { + __u32 addr6; + } _len; __u16 family; __u8 id; @@ -85,9 +87,9 @@ mptcp_pm_add_addr_req_set_addr_addr6(struct mptcp_pm_add_addr_req *req, { req->_present.addr = 1; free(req->addr.addr6); - req->addr._present.addr6_len = len; - req->addr.addr6 = malloc(req->addr._present.addr6_len); - memcpy(req->addr.addr6, addr6, req->addr._present.addr6_len); + req->addr._len.addr6 = len; + req->addr.addr6 = malloc(req->addr._len.addr6); + memcpy(req->addr.addr6, addr6, req->addr._len.addr6); } static inline void mptcp_pm_add_addr_req_set_addr_port(struct mptcp_pm_add_addr_req *req, @@ -164,9 +166,9 @@ mptcp_pm_del_addr_req_set_addr_addr6(struct mptcp_pm_del_addr_req *req, { req->_present.addr = 1; free(req->addr.addr6); - req->addr._present.addr6_len = len; - req->addr.addr6 = malloc(req->addr._present.addr6_len); - memcpy(req->addr.addr6, addr6, req->addr._present.addr6_len); + req->addr._len.addr6 = len; + req->addr.addr6 = malloc(req->addr._len.addr6); + memcpy(req->addr.addr6, addr6, req->addr._len.addr6); } static inline void mptcp_pm_del_addr_req_set_addr_port(struct mptcp_pm_del_addr_req *req, @@ -245,9 +247,9 @@ mptcp_pm_get_addr_req_set_addr_addr6(struct mptcp_pm_get_addr_req *req, { req->_present.addr = 1; free(req->addr.addr6); - req->addr._present.addr6_len = len; - req->addr.addr6 = malloc(req->addr._present.addr6_len); - memcpy(req->addr.addr6, addr6, req->addr._present.addr6_len); + req->addr._len.addr6 = len; + req->addr.addr6 = malloc(req->addr._len.addr6); + memcpy(req->addr.addr6, addr6, req->addr._len.addr6); } static inline void mptcp_pm_get_addr_req_set_addr_port(struct mptcp_pm_get_addr_req *req, @@ -353,9 +355,9 @@ mptcp_pm_flush_addrs_req_set_addr_addr6(struct mptcp_pm_flush_addrs_req *req, { req->_present.addr = 1; free(req->addr.addr6); - req->addr._present.addr6_len = len; - req->addr.addr6 = malloc(req->addr._present.addr6_len); - memcpy(req->addr.addr6, addr6, req->addr._present.addr6_len); + req->addr._len.addr6 = len; + req->addr.addr6 = malloc(req->addr._len.addr6); + memcpy(req->addr.addr6, addr6, req->addr._len.addr6); } static inline void mptcp_pm_flush_addrs_req_set_addr_port(struct mptcp_pm_flush_addrs_req *req, @@ -529,9 +531,9 @@ mptcp_pm_set_flags_req_set_addr_addr6(struct mptcp_pm_set_flags_req *req, { req->_present.addr = 1; free(req->addr.addr6); - req->addr._present.addr6_len = len; - req->addr.addr6 = malloc(req->addr._present.addr6_len); - memcpy(req->addr.addr6, addr6, req->addr._present.addr6_len); + req->addr._len.addr6 = len; + req->addr.addr6 = malloc(req->addr._len.addr6); + memcpy(req->addr.addr6, addr6, req->addr._len.addr6); } static inline void mptcp_pm_set_flags_req_set_addr_port(struct mptcp_pm_set_flags_req *req, @@ -594,9 +596,9 @@ mptcp_pm_set_flags_req_set_addr_remote_addr6(struct mptcp_pm_set_flags_req *req, { req->_present.addr_remote = 1; free(req->addr_remote.addr6); - req->addr_remote._present.addr6_len = len; - req->addr_remote.addr6 = malloc(req->addr_remote._present.addr6_len); - memcpy(req->addr_remote.addr6, addr6, req->addr_remote._present.addr6_len); + req->addr_remote._len.addr6 = len; + req->addr_remote.addr6 = malloc(req->addr_remote._len.addr6); + memcpy(req->addr_remote.addr6, addr6, req->addr_remote._len.addr6); } static inline void mptcp_pm_set_flags_req_set_addr_remote_port(struct mptcp_pm_set_flags_req *req, @@ -675,9 +677,9 @@ mptcp_pm_announce_req_set_addr_addr6(struct mptcp_pm_announce_req *req, { req->_present.addr = 1; free(req->addr.addr6); - req->addr._present.addr6_len = len; - req->addr.addr6 = malloc(req->addr._present.addr6_len); - memcpy(req->addr.addr6, addr6, req->addr._present.addr6_len); + req->addr._len.addr6 = len; + req->addr.addr6 = malloc(req->addr._len.addr6); + memcpy(req->addr.addr6, addr6, req->addr._len.addr6); } static inline void mptcp_pm_announce_req_set_addr_port(struct mptcp_pm_announce_req *req, @@ -802,9 +804,9 @@ mptcp_pm_subflow_create_req_set_addr_addr6(struct mptcp_pm_subflow_create_req *r { req->_present.addr = 1; free(req->addr.addr6); - req->addr._present.addr6_len = len; - req->addr.addr6 = malloc(req->addr._present.addr6_len); - memcpy(req->addr.addr6, addr6, req->addr._present.addr6_len); + req->addr._len.addr6 = len; + req->addr.addr6 = malloc(req->addr._len.addr6); + memcpy(req->addr.addr6, addr6, req->addr._len.addr6); } static inline void mptcp_pm_subflow_create_req_set_addr_port(struct mptcp_pm_subflow_create_req *req, @@ -868,9 +870,9 @@ mptcp_pm_subflow_create_req_set_addr_remote_addr6(struct mptcp_pm_subflow_create { req->_present.addr_remote = 1; free(req->addr_remote.addr6); - req->addr_remote._present.addr6_len = len; - req->addr_remote.addr6 = malloc(req->addr_remote._present.addr6_len); - memcpy(req->addr_remote.addr6, addr6, req->addr_remote._present.addr6_len); + req->addr_remote._len.addr6 = len; + req->addr_remote.addr6 = malloc(req->addr_remote._len.addr6); + memcpy(req->addr_remote.addr6, addr6, req->addr_remote._len.addr6); } static inline void mptcp_pm_subflow_create_req_set_addr_remote_port(struct mptcp_pm_subflow_create_req *req, @@ -955,9 +957,9 @@ mptcp_pm_subflow_destroy_req_set_addr_addr6(struct mptcp_pm_subflow_destroy_req { req->_present.addr = 1; free(req->addr.addr6); - req->addr._present.addr6_len = len; - req->addr.addr6 = malloc(req->addr._present.addr6_len); - memcpy(req->addr.addr6, addr6, req->addr._present.addr6_len); + req->addr._len.addr6 = len; + req->addr.addr6 = malloc(req->addr._len.addr6); + memcpy(req->addr.addr6, addr6, req->addr._len.addr6); } static inline void mptcp_pm_subflow_destroy_req_set_addr_port(struct mptcp_pm_subflow_destroy_req *req, @@ -1021,9 +1023,9 @@ mptcp_pm_subflow_destroy_req_set_addr_remote_addr6(struct mptcp_pm_subflow_destr { req->_present.addr_remote = 1; free(req->addr_remote.addr6); - req->addr_remote._present.addr6_len = len; - req->addr_remote.addr6 = malloc(req->addr_remote._present.addr6_len); - memcpy(req->addr_remote.addr6, addr6, req->addr_remote._present.addr6_len); + req->addr_remote._len.addr6 = len; + req->addr_remote.addr6 = malloc(req->addr_remote._len.addr6); + memcpy(req->addr_remote.addr6, addr6, req->addr_remote._len.addr6); } static inline void mptcp_pm_subflow_destroy_req_set_addr_remote_port(struct mptcp_pm_subflow_destroy_req *req, diff --git a/home/nipa/nipa_out/959697/ynl/old-code/net_shaper-user.c b/home/nipa/nipa_out/959697/ynl/new-code/net_shaper-user.c index fb31cd030c61..0b4e1e1b23b0 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/net_shaper-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/net_shaper-user.c @@ -431,7 +431,7 @@ void net_shaper_group_req_free(struct net_shaper_group_req *req) net_shaper_handle_free(&req->parent); net_shaper_handle_free(&req->handle); - for (i = 0; i < req->n_leaves; i++) + for (i = 0; i < req->_count.leaves; i++) net_shaper_leaf_info_free(&req->leaves[i]); free(req->leaves); free(req); @@ -508,7 +508,7 @@ net_shaper_group(struct ynl_sock *ys, struct net_shaper_group_req *req) ynl_attr_put_u32(nlh, NET_SHAPER_A_PRIORITY, req->priority); if (req->_present.weight) ynl_attr_put_u32(nlh, NET_SHAPER_A_WEIGHT, req->weight); - for (i = 0; i < req->n_leaves; i++) + for (i = 0; i < req->_count.leaves; i++) net_shaper_leaf_info_put(nlh, NET_SHAPER_A_LEAVES, &req->leaves[i]); rsp = calloc(1, sizeof(*rsp)); diff --git a/home/nipa/nipa_out/959697/ynl/old-code/net_shaper-user.h b/home/nipa/nipa_out/959697/ynl/new-code/net_shaper-user.h index 55fec76d7316..a69011135923 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/net_shaper-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/net_shaper-user.h @@ -321,6 +321,9 @@ struct net_shaper_group_req { __u32 priority:1; __u32 weight:1; } _present; + struct { + __u32 leaves; + } _count; __u32 ifindex; struct net_shaper_handle parent; @@ -331,7 +334,6 @@ struct net_shaper_group_req { __u64 burst; __u32 priority; __u32 weight; - unsigned int n_leaves; struct net_shaper_leaf_info *leaves; }; @@ -423,11 +425,11 @@ __net_shaper_group_req_set_leaves(struct net_shaper_group_req *req, { unsigned int i; - for (i = 0; i < req->n_leaves; i++) + for (i = 0; i < req->_count.leaves; i++) net_shaper_leaf_info_free(&req->leaves[i]); free(req->leaves); req->leaves = leaves; - req->n_leaves = n_leaves; + req->_count.leaves = n_leaves; } struct net_shaper_group_rsp { diff --git a/home/nipa/nipa_out/959697/ynl/old-code/netdev-user.c b/home/nipa/nipa_out/959697/ynl/new-code/netdev-user.c index b2d8738e165c..e33a4fed3cb1 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/netdev-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/netdev-user.c @@ -1242,7 +1242,7 @@ void netdev_bind_rx_req_free(struct netdev_bind_rx_req *req) { unsigned int i; - for (i = 0; i < req->n_queues; i++) + for (i = 0; i < req->_count.queues; i++) netdev_queue_id_free(&req->queues[i]); free(req->queues); free(req); @@ -1293,7 +1293,7 @@ netdev_bind_rx(struct ynl_sock *ys, struct netdev_bind_rx_req *req) ynl_attr_put_u32(nlh, NETDEV_A_DMABUF_IFINDEX, req->ifindex); if (req->_present.fd) ynl_attr_put_u32(nlh, NETDEV_A_DMABUF_FD, req->fd); - for (i = 0; i < req->n_queues; i++) + for (i = 0; i < req->_count.queues; i++) netdev_queue_id_put(nlh, NETDEV_A_DMABUF_QUEUES, &req->queues[i]); rsp = calloc(1, sizeof(*rsp)); diff --git a/home/nipa/nipa_out/959697/ynl/old-code/netdev-user.h b/home/nipa/nipa_out/959697/ynl/new-code/netdev-user.h index 33285edfc651..22b7e581ed53 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/netdev-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/netdev-user.h @@ -543,10 +543,12 @@ struct netdev_bind_rx_req { __u32 ifindex:1; __u32 fd:1; } _present; + struct { + __u32 queues; + } _count; __u32 ifindex; __u32 fd; - unsigned int n_queues; struct netdev_queue_id *queues; }; @@ -575,11 +577,11 @@ __netdev_bind_rx_req_set_queues(struct netdev_bind_rx_req *req, { unsigned int i; - for (i = 0; i < req->n_queues; i++) + for (i = 0; i < req->_count.queues; i++) netdev_queue_id_free(&req->queues[i]); free(req->queues); req->queues = queues; - req->n_queues = n_queues; + req->_count.queues = n_queues; } struct netdev_bind_rx_rsp { diff --git a/home/nipa/nipa_out/959697/ynl/old-code/nfsd-user.c b/home/nipa/nipa_out/959697/ynl/new-code/nfsd-user.c index 48e655af8eb3..5da18ebdd245 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/nfsd-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/nfsd-user.c @@ -177,9 +177,9 @@ int nfsd_sock_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj->_present.addr_len) - ynl_attr_put(nlh, NFSD_A_SOCK_ADDR, obj->addr, obj->_present.addr_len); - if (obj->_present.transport_name_len) + if (obj->_len.addr) + ynl_attr_put(nlh, NFSD_A_SOCK_ADDR, obj->addr, obj->_len.addr); + if (obj->_len.transport_name) ynl_attr_put_str(nlh, NFSD_A_SOCK_TRANSPORT_NAME, obj->transport_name); ynl_attr_nest_end(nlh, nest); @@ -201,7 +201,7 @@ int nfsd_sock_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.addr_len = len; + dst->_len.addr = len; dst->addr = malloc(len); memcpy(dst->addr, ynl_attr_data(attr), len); } else if (type == NFSD_A_SOCK_TRANSPORT_NAME) { @@ -211,7 +211,7 @@ int nfsd_sock_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.transport_name_len = len; + dst->_len.transport_name = len; dst->transport_name = malloc(len + 1); memcpy(dst->transport_name, ynl_attr_get_str(attr), len); dst->transport_name[len] = 0; @@ -286,7 +286,7 @@ int nfsd_rpc_status_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.saddr6_len = len; + dst->_len.saddr6 = len; dst->saddr6 = malloc(len); memcpy(dst->saddr6, ynl_attr_data(attr), len); } else if (type == NFSD_A_RPC_STATUS_DADDR6) { @@ -296,7 +296,7 @@ int nfsd_rpc_status_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.daddr6_len = len; + dst->_len.daddr6 = len; dst->daddr6 = malloc(len); memcpy(dst->daddr6, ynl_attr_data(attr), len); } else if (type == NFSD_A_RPC_STATUS_SPORT) { @@ -316,7 +316,7 @@ int nfsd_rpc_status_get_rsp_parse(const struct nlmsghdr *nlh, if (n_compound_ops) { dst->compound_ops = calloc(n_compound_ops, sizeof(*dst->compound_ops)); - dst->n_compound_ops = n_compound_ops; + dst->_count.compound_ops = n_compound_ops; i = 0; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == NFSD_A_RPC_STATUS_COMPOUND_OPS) { @@ -390,13 +390,13 @@ int nfsd_threads_set(struct ynl_sock *ys, struct nfsd_threads_set_req *req) ys->req_policy = &nfsd_server_nest; ys->req_hdr_len = ys->family->hdr_len; - for (i = 0; i < req->n_threads; i++) + for (i = 0; i < req->_count.threads; i++) ynl_attr_put_u32(nlh, NFSD_A_SERVER_THREADS, req->threads[i]); if (req->_present.gracetime) ynl_attr_put_u32(nlh, NFSD_A_SERVER_GRACETIME, req->gracetime); if (req->_present.leasetime) ynl_attr_put_u32(nlh, NFSD_A_SERVER_LEASETIME, req->leasetime); - if (req->_present.scope_len) + if (req->_len.scope) ynl_attr_put_str(nlh, NFSD_A_SERVER_SCOPE, req->scope); err = ynl_exec(ys, nlh, &yrs); @@ -450,7 +450,7 @@ int nfsd_threads_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.scope_len = len; + dst->_len.scope = len; dst->scope = malloc(len + 1); memcpy(dst->scope, ynl_attr_get_str(attr), len); dst->scope[len] = 0; @@ -459,7 +459,7 @@ int nfsd_threads_get_rsp_parse(const struct nlmsghdr *nlh, if (n_threads) { dst->threads = calloc(n_threads, sizeof(*dst->threads)); - dst->n_threads = n_threads; + dst->_count.threads = n_threads; i = 0; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == NFSD_A_SERVER_THREADS) { @@ -506,7 +506,7 @@ void nfsd_version_set_req_free(struct nfsd_version_set_req *req) { unsigned int i; - for (i = 0; i < req->n_version; i++) + for (i = 0; i < req->_count.version; i++) nfsd_version_free(&req->version[i]); free(req->version); free(req); @@ -523,7 +523,7 @@ int nfsd_version_set(struct ynl_sock *ys, struct nfsd_version_set_req *req) ys->req_policy = &nfsd_server_proto_nest; ys->req_hdr_len = ys->family->hdr_len; - for (i = 0; i < req->n_version; i++) + for (i = 0; i < req->_count.version; i++) nfsd_version_put(nlh, NFSD_A_SERVER_PROTO_VERSION, &req->version[i]); err = ynl_exec(ys, nlh, &yrs); @@ -539,7 +539,7 @@ void nfsd_version_get_rsp_free(struct nfsd_version_get_rsp *rsp) { unsigned int i; - for (i = 0; i < rsp->n_version; i++) + for (i = 0; i < rsp->_count.version; i++) nfsd_version_free(&rsp->version[i]); free(rsp->version); free(rsp); @@ -570,7 +570,7 @@ int nfsd_version_get_rsp_parse(const struct nlmsghdr *nlh, if (n_version) { dst->version = calloc(n_version, sizeof(*dst->version)); - dst->n_version = n_version; + dst->_count.version = n_version; i = 0; parg.rsp_policy = &nfsd_version_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -620,7 +620,7 @@ void nfsd_listener_set_req_free(struct nfsd_listener_set_req *req) { unsigned int i; - for (i = 0; i < req->n_addr; i++) + for (i = 0; i < req->_count.addr; i++) nfsd_sock_free(&req->addr[i]); free(req->addr); free(req); @@ -637,7 +637,7 @@ int nfsd_listener_set(struct ynl_sock *ys, struct nfsd_listener_set_req *req) ys->req_policy = &nfsd_server_sock_nest; ys->req_hdr_len = ys->family->hdr_len; - for (i = 0; i < req->n_addr; i++) + for (i = 0; i < req->_count.addr; i++) nfsd_sock_put(nlh, NFSD_A_SERVER_SOCK_ADDR, &req->addr[i]); err = ynl_exec(ys, nlh, &yrs); @@ -653,7 +653,7 @@ void nfsd_listener_get_rsp_free(struct nfsd_listener_get_rsp *rsp) { unsigned int i; - for (i = 0; i < rsp->n_addr; i++) + for (i = 0; i < rsp->_count.addr; i++) nfsd_sock_free(&rsp->addr[i]); free(rsp->addr); free(rsp); @@ -684,7 +684,7 @@ int nfsd_listener_get_rsp_parse(const struct nlmsghdr *nlh, if (n_addr) { dst->addr = calloc(n_addr, sizeof(*dst->addr)); - dst->n_addr = n_addr; + dst->_count.addr = n_addr; i = 0; parg.rsp_policy = &nfsd_sock_nest; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { @@ -746,7 +746,7 @@ int nfsd_pool_mode_set(struct ynl_sock *ys, struct nfsd_pool_mode_set_req *req) ys->req_policy = &nfsd_pool_mode_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.mode_len) + if (req->_len.mode) ynl_attr_put_str(nlh, NFSD_A_POOL_MODE_MODE, req->mode); err = ynl_exec(ys, nlh, &yrs); @@ -782,7 +782,7 @@ int nfsd_pool_mode_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.mode_len = len; + dst->_len.mode = len; dst->mode = malloc(len + 1); memcpy(dst->mode, ynl_attr_get_str(attr), len); dst->mode[len] = 0; diff --git a/home/nipa/nipa_out/959697/ynl/old-code/nfsd-user.h b/home/nipa/nipa_out/959697/ynl/new-code/nfsd-user.h index f61d7674dcb1..aad8b203f64a 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/nfsd-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/nfsd-user.h @@ -34,9 +34,9 @@ void nfsd_version_free(struct nfsd_version *obj); struct nfsd_sock { struct { - __u32 addr_len; - __u32 transport_name_len; - } _present; + __u32 addr; + __u32 transport_name; + } _len; void *addr; char *transport_name; @@ -56,11 +56,16 @@ struct nfsd_rpc_status_get_rsp { __u32 service_time:1; __u32 saddr4:1; __u32 daddr4:1; - __u32 saddr6_len; - __u32 daddr6_len; __u32 sport:1; __u32 dport:1; } _present; + struct { + __u32 saddr6; + __u32 daddr6; + } _len; + struct { + __u32 compound_ops; + } _count; __u32 xid /* big-endian */; __u32 flags; @@ -74,7 +79,6 @@ struct nfsd_rpc_status_get_rsp { void *daddr6; __u16 sport /* big-endian */; __u16 dport /* big-endian */; - unsigned int n_compound_ops; __u32 *compound_ops; }; @@ -93,10 +97,14 @@ struct nfsd_threads_set_req { struct { __u32 gracetime:1; __u32 leasetime:1; - __u32 scope_len; } _present; + struct { + __u32 scope; + } _len; + struct { + __u32 threads; + } _count; - unsigned int n_threads; __u32 *threads; __u32 gracetime; __u32 leasetime; @@ -115,7 +123,7 @@ __nfsd_threads_set_req_set_threads(struct nfsd_threads_set_req *req, { free(req->threads); req->threads = threads; - req->n_threads = n_threads; + req->_count.threads = n_threads; } static inline void nfsd_threads_set_req_set_gracetime(struct nfsd_threads_set_req *req, @@ -136,10 +144,10 @@ nfsd_threads_set_req_set_scope(struct nfsd_threads_set_req *req, const char *scope) { free(req->scope); - req->_present.scope_len = strlen(scope); - req->scope = malloc(req->_present.scope_len + 1); - memcpy(req->scope, scope, req->_present.scope_len); - req->scope[req->_present.scope_len] = 0; + req->_len.scope = strlen(scope); + req->scope = malloc(req->_len.scope + 1); + memcpy(req->scope, scope, req->_len.scope); + req->scope[req->_len.scope] = 0; } /* @@ -154,10 +162,14 @@ struct nfsd_threads_get_rsp { struct { __u32 gracetime:1; __u32 leasetime:1; - __u32 scope_len; } _present; + struct { + __u32 scope; + } _len; + struct { + __u32 threads; + } _count; - unsigned int n_threads; __u32 *threads; __u32 gracetime; __u32 leasetime; @@ -174,7 +186,10 @@ struct nfsd_threads_get_rsp *nfsd_threads_get(struct ynl_sock *ys); /* ============== NFSD_CMD_VERSION_SET ============== */ /* NFSD_CMD_VERSION_SET - do */ struct nfsd_version_set_req { - unsigned int n_version; + struct { + __u32 version; + } _count; + struct nfsd_version *version; }; @@ -191,11 +206,11 @@ __nfsd_version_set_req_set_version(struct nfsd_version_set_req *req, { unsigned int i; - for (i = 0; i < req->n_version; i++) + for (i = 0; i < req->_count.version; i++) nfsd_version_free(&req->version[i]); free(req->version); req->version = version; - req->n_version = n_version; + req->_count.version = n_version; } /* @@ -207,7 +222,10 @@ int nfsd_version_set(struct ynl_sock *ys, struct nfsd_version_set_req *req); /* NFSD_CMD_VERSION_GET - do */ struct nfsd_version_get_rsp { - unsigned int n_version; + struct { + __u32 version; + } _count; + struct nfsd_version *version; }; @@ -221,7 +239,10 @@ struct nfsd_version_get_rsp *nfsd_version_get(struct ynl_sock *ys); /* ============== NFSD_CMD_LISTENER_SET ============== */ /* NFSD_CMD_LISTENER_SET - do */ struct nfsd_listener_set_req { - unsigned int n_addr; + struct { + __u32 addr; + } _count; + struct nfsd_sock *addr; }; @@ -237,11 +258,11 @@ __nfsd_listener_set_req_set_addr(struct nfsd_listener_set_req *req, { unsigned int i; - for (i = 0; i < req->n_addr; i++) + for (i = 0; i < req->_count.addr; i++) nfsd_sock_free(&req->addr[i]); free(req->addr); req->addr = addr; - req->n_addr = n_addr; + req->_count.addr = n_addr; } /* @@ -253,7 +274,10 @@ int nfsd_listener_set(struct ynl_sock *ys, struct nfsd_listener_set_req *req); /* NFSD_CMD_LISTENER_GET - do */ struct nfsd_listener_get_rsp { - unsigned int n_addr; + struct { + __u32 addr; + } _count; + struct nfsd_sock *addr; }; @@ -268,8 +292,8 @@ struct nfsd_listener_get_rsp *nfsd_listener_get(struct ynl_sock *ys); /* NFSD_CMD_POOL_MODE_SET - do */ struct nfsd_pool_mode_set_req { struct { - __u32 mode_len; - } _present; + __u32 mode; + } _len; char *mode; }; @@ -285,10 +309,10 @@ nfsd_pool_mode_set_req_set_mode(struct nfsd_pool_mode_set_req *req, const char *mode) { free(req->mode); - req->_present.mode_len = strlen(mode); - req->mode = malloc(req->_present.mode_len + 1); - memcpy(req->mode, mode, req->_present.mode_len); - req->mode[req->_present.mode_len] = 0; + req->_len.mode = strlen(mode); + req->mode = malloc(req->_len.mode + 1); + memcpy(req->mode, mode, req->_len.mode); + req->mode[req->_len.mode] = 0; } /* @@ -301,9 +325,11 @@ int nfsd_pool_mode_set(struct ynl_sock *ys, struct nfsd_pool_mode_set_req *req); struct nfsd_pool_mode_get_rsp { struct { - __u32 mode_len; __u32 npools:1; } _present; + struct { + __u32 mode; + } _len; char *mode; __u32 npools; diff --git a/home/nipa/nipa_out/959697/ynl/old-code/nl80211-user.c b/home/nipa/nipa_out/959697/ynl/new-code/nl80211-user.c index 0ef7975f0f38..81765d5695ed 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/nl80211-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/nl80211-user.c @@ -1274,7 +1274,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.iftypes_len = len; + dst->_len.iftypes = len; dst->iftypes = malloc(len); memcpy(dst->iftypes, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC) { @@ -1284,7 +1284,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.he_cap_mac_len = len; + dst->_len.he_cap_mac = len; dst->he_cap_mac = malloc(len); memcpy(dst->he_cap_mac, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY) { @@ -1294,7 +1294,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.he_cap_phy_len = len; + dst->_len.he_cap_phy = len; dst->he_cap_phy = malloc(len); memcpy(dst->he_cap_phy, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET) { @@ -1304,7 +1304,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.he_cap_mcs_set_len = len; + dst->_len.he_cap_mcs_set = len; dst->he_cap_mcs_set = malloc(len); memcpy(dst->he_cap_mcs_set, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE) { @@ -1314,7 +1314,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.he_cap_ppe_len = len; + dst->_len.he_cap_ppe = len; dst->he_cap_ppe = malloc(len); memcpy(dst->he_cap_ppe, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA) { @@ -1324,7 +1324,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.he_6ghz_capa_len = len; + dst->_len.he_6ghz_capa = len; dst->he_6ghz_capa = malloc(len); memcpy(dst->he_6ghz_capa, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS) { @@ -1334,7 +1334,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.vendor_elems_len = len; + dst->_len.vendor_elems = len; dst->vendor_elems = malloc(len); memcpy(dst->vendor_elems, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC) { @@ -1344,7 +1344,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.eht_cap_mac_len = len; + dst->_len.eht_cap_mac = len; dst->eht_cap_mac = malloc(len); memcpy(dst->eht_cap_mac, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY) { @@ -1354,7 +1354,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.eht_cap_phy_len = len; + dst->_len.eht_cap_phy = len; dst->eht_cap_phy = malloc(len); memcpy(dst->eht_cap_phy, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET) { @@ -1364,7 +1364,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.eht_cap_mcs_set_len = len; + dst->_len.eht_cap_mcs_set = len; dst->eht_cap_mcs_set = malloc(len); memcpy(dst->eht_cap_mcs_set, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE) { @@ -1374,7 +1374,7 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.eht_cap_ppe_len = len; + dst->_len.eht_cap_ppe = len; dst->eht_cap_ppe = malloc(len); memcpy(dst->eht_cap_ppe, ynl_attr_data(attr), len); } @@ -1609,7 +1609,7 @@ int nl80211_if_combination_attributes_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_limits++; + dst->_count.limits++; } } else if (type == NL80211_IFACE_COMB_MAXNUM) { if (ynl_attr_validate(yarg, attr)) @@ -1645,7 +1645,7 @@ int nl80211_if_combination_attributes_parse(struct ynl_parse_arg *yarg, if (n_limits) { dst->limits = calloc(n_limits, sizeof(*dst->limits)); - dst->n_limits = n_limits; + dst->_count.limits = n_limits; i = 0; parg.rsp_policy = &nl80211_iface_limit_attributes_nest; ynl_attr_for_each_nested(attr, attr_limits) { @@ -1694,14 +1694,14 @@ int nl80211_sar_attributes_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_specs++; + dst->_count.specs++; } } } if (n_specs) { dst->specs = calloc(n_specs, sizeof(*dst->specs)); - dst->n_specs = n_specs; + dst->_count.specs = n_specs; i = 0; parg.rsp_policy = &nl80211_sar_specs_nest; ynl_attr_for_each_nested(attr, attr_specs) { @@ -1801,7 +1801,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.dfs_time_len = len; + dst->_len.dfs_time = len; dst->dfs_time = malloc(len); memcpy(dst->dfs_time, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_NO_HT40_MINUS) { @@ -1811,7 +1811,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_ht40_minus_len = len; + dst->_len.no_ht40_minus = len; dst->no_ht40_minus = malloc(len); memcpy(dst->no_ht40_minus, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_NO_HT40_PLUS) { @@ -1821,7 +1821,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_ht40_plus_len = len; + dst->_len.no_ht40_plus = len; dst->no_ht40_plus = malloc(len); memcpy(dst->no_ht40_plus, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_NO_80MHZ) { @@ -1831,7 +1831,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_80mhz_len = len; + dst->_len.no_80mhz = len; dst->no_80mhz = malloc(len); memcpy(dst->no_80mhz, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_NO_160MHZ) { @@ -1841,7 +1841,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_160mhz_len = len; + dst->_len.no_160mhz = len; dst->no_160mhz = malloc(len); memcpy(dst->no_160mhz, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_DFS_CAC_TIME) { @@ -1851,7 +1851,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.dfs_cac_time_len = len; + dst->_len.dfs_cac_time = len; dst->dfs_cac_time = malloc(len); memcpy(dst->dfs_cac_time, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_INDOOR_ONLY) { @@ -1861,7 +1861,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.indoor_only_len = len; + dst->_len.indoor_only = len; dst->indoor_only = malloc(len); memcpy(dst->indoor_only, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_IR_CONCURRENT) { @@ -1871,7 +1871,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ir_concurrent_len = len; + dst->_len.ir_concurrent = len; dst->ir_concurrent = malloc(len); memcpy(dst->ir_concurrent, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_NO_20MHZ) { @@ -1881,7 +1881,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_20mhz_len = len; + dst->_len.no_20mhz = len; dst->no_20mhz = malloc(len); memcpy(dst->no_20mhz, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_NO_10MHZ) { @@ -1891,7 +1891,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_10mhz_len = len; + dst->_len.no_10mhz = len; dst->no_10mhz = malloc(len); memcpy(dst->no_10mhz, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_WMM) { @@ -1901,7 +1901,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_wmm++; + dst->_count.wmm++; } } else if (type == NL80211_FREQUENCY_ATTR_NO_HE) { unsigned int len; @@ -1910,7 +1910,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_he_len = len; + dst->_len.no_he = len; dst->no_he = malloc(len); memcpy(dst->no_he, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_OFFSET) { @@ -1925,7 +1925,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present._1mhz_len = len; + dst->_len._1mhz = len; dst->_1mhz = malloc(len); memcpy(dst->_1mhz, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_2MHZ) { @@ -1935,7 +1935,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present._2mhz_len = len; + dst->_len._2mhz = len; dst->_2mhz = malloc(len); memcpy(dst->_2mhz, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_4MHZ) { @@ -1945,7 +1945,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present._4mhz_len = len; + dst->_len._4mhz = len; dst->_4mhz = malloc(len); memcpy(dst->_4mhz, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_8MHZ) { @@ -1955,7 +1955,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present._8mhz_len = len; + dst->_len._8mhz = len; dst->_8mhz = malloc(len); memcpy(dst->_8mhz, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_16MHZ) { @@ -1965,7 +1965,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present._16mhz_len = len; + dst->_len._16mhz = len; dst->_16mhz = malloc(len); memcpy(dst->_16mhz, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_NO_320MHZ) { @@ -1975,7 +1975,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_320mhz_len = len; + dst->_len.no_320mhz = len; dst->no_320mhz = malloc(len); memcpy(dst->no_320mhz, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_NO_EHT) { @@ -1985,7 +1985,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_eht_len = len; + dst->_len.no_eht = len; dst->no_eht = malloc(len); memcpy(dst->no_eht, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_PSD) { @@ -1995,7 +1995,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.psd_len = len; + dst->_len.psd = len; dst->psd = malloc(len); memcpy(dst->psd, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_DFS_CONCURRENT) { @@ -2005,7 +2005,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.dfs_concurrent_len = len; + dst->_len.dfs_concurrent = len; dst->dfs_concurrent = malloc(len); memcpy(dst->dfs_concurrent, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT) { @@ -2015,7 +2015,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_6ghz_vlp_client_len = len; + dst->_len.no_6ghz_vlp_client = len; dst->no_6ghz_vlp_client = malloc(len); memcpy(dst->no_6ghz_vlp_client, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT) { @@ -2025,7 +2025,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.no_6ghz_afc_client_len = len; + dst->_len.no_6ghz_afc_client = len; dst->no_6ghz_afc_client = malloc(len); memcpy(dst->no_6ghz_afc_client, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_CAN_MONITOR) { @@ -2035,7 +2035,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.can_monitor_len = len; + dst->_len.can_monitor = len; dst->can_monitor = malloc(len); memcpy(dst->can_monitor, ynl_attr_data(attr), len); } else if (type == NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP) { @@ -2045,7 +2045,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.allow_6ghz_vlp_ap_len = len; + dst->_len.allow_6ghz_vlp_ap = len; dst->allow_6ghz_vlp_ap = malloc(len); memcpy(dst->allow_6ghz_vlp_ap, ynl_attr_data(attr), len); } @@ -2053,7 +2053,7 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, if (n_wmm) { dst->wmm = calloc(n_wmm, sizeof(*dst->wmm)); - dst->n_wmm = n_wmm; + dst->_count.wmm = n_wmm; i = 0; parg.rsp_policy = &nl80211_wmm_attrs_nest; ynl_attr_for_each_nested(attr, attr_wmm) { @@ -2113,7 +2113,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_freqs++; + dst->_count.freqs++; } } else if (type == NL80211_BAND_ATTR_RATES) { const struct nlattr *attr2; @@ -2122,7 +2122,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_rates++; + dst->_count.rates++; } } else if (type == NL80211_BAND_ATTR_HT_MCS_SET) { unsigned int len; @@ -2131,7 +2131,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ht_mcs_set_len = len; + dst->_len.ht_mcs_set = len; dst->ht_mcs_set = malloc(len); memcpy(dst->ht_mcs_set, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_ATTR_HT_CAPA) { @@ -2156,7 +2156,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.vht_mcs_set_len = len; + dst->_len.vht_mcs_set = len; dst->vht_mcs_set = malloc(len); memcpy(dst->vht_mcs_set, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_ATTR_VHT_CAPA) { @@ -2171,7 +2171,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_iftype_data++; + dst->_count.iftype_data++; } } else if (type == NL80211_BAND_ATTR_EDMG_CHANNELS) { unsigned int len; @@ -2180,7 +2180,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.edmg_channels_len = len; + dst->_len.edmg_channels = len; dst->edmg_channels = malloc(len); memcpy(dst->edmg_channels, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_ATTR_EDMG_BW_CONFIG) { @@ -2190,7 +2190,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.edmg_bw_config_len = len; + dst->_len.edmg_bw_config = len; dst->edmg_bw_config = malloc(len); memcpy(dst->edmg_bw_config, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_ATTR_S1G_MCS_NSS_SET) { @@ -2200,7 +2200,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.s1g_mcs_nss_set_len = len; + dst->_len.s1g_mcs_nss_set = len; dst->s1g_mcs_nss_set = malloc(len); memcpy(dst->s1g_mcs_nss_set, ynl_attr_data(attr), len); } else if (type == NL80211_BAND_ATTR_S1G_CAPA) { @@ -2210,7 +2210,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.s1g_capa_len = len; + dst->_len.s1g_capa = len; dst->s1g_capa = malloc(len); memcpy(dst->s1g_capa, ynl_attr_data(attr), len); } @@ -2218,7 +2218,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, if (n_freqs) { dst->freqs = calloc(n_freqs, sizeof(*dst->freqs)); - dst->n_freqs = n_freqs; + dst->_count.freqs = n_freqs; i = 0; parg.rsp_policy = &nl80211_frequency_attrs_nest; ynl_attr_for_each_nested(attr, attr_freqs) { @@ -2230,7 +2230,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, } if (n_iftype_data) { dst->iftype_data = calloc(n_iftype_data, sizeof(*dst->iftype_data)); - dst->n_iftype_data = n_iftype_data; + dst->_count.iftype_data = n_iftype_data; i = 0; parg.rsp_policy = &nl80211_iftype_data_attrs_nest; ynl_attr_for_each_nested(attr, attr_iftype_data) { @@ -2242,7 +2242,7 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, } if (n_rates) { dst->rates = calloc(n_rates, sizeof(*dst->rates)); - dst->n_rates = n_rates; + dst->_count.rates = n_rates; i = 0; parg.rsp_policy = &nl80211_bitrate_attrs_nest; ynl_attr_for_each_nested(attr, attr_rates) { @@ -2404,7 +2404,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.cipher_suites_len = len; + dst->_len.cipher_suites = len; dst->cipher_suites = malloc(len); memcpy(dst->cipher_suites, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_CONTROL_PORT_ETHERTYPE) { @@ -2418,7 +2418,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ext_capa_len = len; + dst->_len.ext_capa = len; dst->ext_capa = malloc(len); memcpy(dst->ext_capa, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_EXT_CAPA_MASK) { @@ -2428,7 +2428,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ext_capa_mask_len = len; + dst->_len.ext_capa_mask = len; dst->ext_capa_mask = malloc(len); memcpy(dst->ext_capa_mask, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_EXT_FEATURES) { @@ -2438,7 +2438,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ext_features_len = len; + dst->_len.ext_features = len; dst->ext_features = malloc(len); memcpy(dst->ext_features, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_FEATURE_FLAGS) { @@ -2458,7 +2458,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ht_capability_mask_len = len; + dst->_len.ht_capability_mask = len; dst->ht_capability_mask = malloc(len); memcpy(dst->ht_capability_mask, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_INTERFACE_COMBINATIONS) { @@ -2468,7 +2468,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_interface_combinations++; + dst->_count.interface_combinations++; } } else if (type == NL80211_ATTR_MAC) { unsigned int len; @@ -2477,7 +2477,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.mac_len = len; + dst->_len.mac = len; dst->mac = malloc(len); memcpy(dst->mac, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_MAX_CSA_COUNTERS) { @@ -2497,7 +2497,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.max_num_akm_suites_len = len; + dst->_len.max_num_akm_suites = len; dst->max_num_akm_suites = malloc(len); memcpy(dst->max_num_akm_suites, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_MAX_NUM_PMKIDS) { @@ -2592,7 +2592,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_supported_commands++; + dst->_count.supported_commands++; } } else if (type == NL80211_ATTR_SUPPORTED_IFTYPES) { if (ynl_attr_validate(yarg, attr)) @@ -2651,7 +2651,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.vht_capability_mask_len = len; + dst->_len.vht_capability_mask = len; dst->vht_capability_mask = malloc(len); memcpy(dst->vht_capability_mask, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_WIPHY) { @@ -2705,7 +2705,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.wiphy_name_len = len; + dst->_len.wiphy_name = len; dst->wiphy_name = malloc(len + 1); memcpy(dst->wiphy_name, ynl_attr_get_str(attr), len); dst->wiphy_name[len] = 0; @@ -2738,7 +2738,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, if (n_interface_combinations) { dst->interface_combinations = calloc(n_interface_combinations, sizeof(*dst->interface_combinations)); - dst->n_interface_combinations = n_interface_combinations; + dst->_count.interface_combinations = n_interface_combinations; i = 0; parg.rsp_policy = &nl80211_if_combination_attributes_nest; ynl_attr_for_each_nested(attr, attr_interface_combinations) { @@ -2750,7 +2750,7 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, } if (n_supported_commands) { dst->supported_commands = calloc(n_supported_commands, sizeof(*dst->supported_commands)); - dst->n_supported_commands = n_supported_commands; + dst->_count.supported_commands = n_supported_commands; i = 0; ynl_attr_for_each_nested(attr, attr_supported_commands) { dst->supported_commands[i] = ynl_attr_get_u32(attr); @@ -2833,7 +2833,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.cipher_suites_len = len; + dst->_len.cipher_suites = len; dst->cipher_suites = malloc(len); memcpy(dst->cipher_suites, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_CONTROL_PORT_ETHERTYPE) { @@ -2847,7 +2847,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ext_capa_len = len; + dst->_len.ext_capa = len; dst->ext_capa = malloc(len); memcpy(dst->ext_capa, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_EXT_CAPA_MASK) { @@ -2857,7 +2857,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ext_capa_mask_len = len; + dst->_len.ext_capa_mask = len; dst->ext_capa_mask = malloc(len); memcpy(dst->ext_capa_mask, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_EXT_FEATURES) { @@ -2867,7 +2867,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ext_features_len = len; + dst->_len.ext_features = len; dst->ext_features = malloc(len); memcpy(dst->ext_features, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_FEATURE_FLAGS) { @@ -2887,7 +2887,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ht_capability_mask_len = len; + dst->_len.ht_capability_mask = len; dst->ht_capability_mask = malloc(len); memcpy(dst->ht_capability_mask, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_INTERFACE_COMBINATIONS) { @@ -2897,7 +2897,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_interface_combinations++; + dst->_count.interface_combinations++; } } else if (type == NL80211_ATTR_MAC) { unsigned int len; @@ -2906,7 +2906,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.mac_len = len; + dst->_len.mac = len; dst->mac = malloc(len); memcpy(dst->mac, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_MAX_CSA_COUNTERS) { @@ -2926,7 +2926,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.max_num_akm_suites_len = len; + dst->_len.max_num_akm_suites = len; dst->max_num_akm_suites = malloc(len); memcpy(dst->max_num_akm_suites, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_MAX_NUM_PMKIDS) { @@ -3021,7 +3021,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_supported_commands++; + dst->_count.supported_commands++; } } else if (type == NL80211_ATTR_SUPPORTED_IFTYPES) { if (ynl_attr_validate(yarg, attr)) @@ -3080,7 +3080,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.vht_capability_mask_len = len; + dst->_len.vht_capability_mask = len; dst->vht_capability_mask = malloc(len); memcpy(dst->vht_capability_mask, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_WIPHY) { @@ -3134,7 +3134,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.wiphy_name_len = len; + dst->_len.wiphy_name = len; dst->wiphy_name = malloc(len + 1); memcpy(dst->wiphy_name, ynl_attr_get_str(attr), len); dst->wiphy_name[len] = 0; @@ -3167,7 +3167,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, if (n_interface_combinations) { dst->interface_combinations = calloc(n_interface_combinations, sizeof(*dst->interface_combinations)); - dst->n_interface_combinations = n_interface_combinations; + dst->_count.interface_combinations = n_interface_combinations; i = 0; parg.rsp_policy = &nl80211_if_combination_attributes_nest; ynl_attr_for_each_nested(attr, attr_interface_combinations) { @@ -3179,7 +3179,7 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, } if (n_supported_commands) { dst->supported_commands = calloc(n_supported_commands, sizeof(*dst->supported_commands)); - dst->n_supported_commands = n_supported_commands; + dst->_count.supported_commands = n_supported_commands; i = 0; ynl_attr_for_each_nested(attr, attr_supported_commands) { dst->supported_commands[i] = ynl_attr_get_u32(attr); @@ -3301,7 +3301,7 @@ int nl80211_get_interface_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.ifname_len = len; + dst->_len.ifname = len; dst->ifname = malloc(len + 1); memcpy(dst->ifname, ynl_attr_get_str(attr), len); dst->ifname[len] = 0; @@ -3332,7 +3332,7 @@ int nl80211_get_interface_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.mac_len = len; + dst->_len.mac = len; dst->mac = malloc(len); memcpy(dst->mac, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_GENERATION) { @@ -3374,7 +3374,7 @@ nl80211_get_interface(struct ynl_sock *ys, ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &nl80211_nl80211_attrs_nest; - if (req->_present.ifname_len) + if (req->_len.ifname) ynl_attr_put_str(nlh, NL80211_ATTR_IFNAME, req->ifname); rsp = calloc(1, sizeof(*rsp)); @@ -3414,7 +3414,7 @@ int nl80211_get_interface_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.ifname_len = len; + dst->_len.ifname = len; dst->ifname = malloc(len + 1); memcpy(dst->ifname, ynl_attr_get_str(attr), len); dst->ifname[len] = 0; @@ -3445,7 +3445,7 @@ int nl80211_get_interface_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.mac_len = len; + dst->_len.mac = len; dst->mac = malloc(len); memcpy(dst->mac, ynl_attr_data(attr), len); } else if (type == NL80211_ATTR_GENERATION) { @@ -3515,7 +3515,7 @@ nl80211_get_interface_dump(struct ynl_sock *ys, ys->req_policy = &nl80211_nl80211_attrs_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.ifname_len) + if (req->_len.ifname) ynl_attr_put_str(nlh, NL80211_ATTR_IFNAME, req->ifname); err = ynl_exec_dump(ys, nlh, &yds); diff --git a/home/nipa/nipa_out/959697/ynl/old-code/nl80211-user.h b/home/nipa/nipa_out/959697/ynl/new-code/nl80211-user.h index ce4cc0d5d8ad..36088774a631 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/nl80211-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/nl80211-user.h @@ -140,18 +140,18 @@ struct nl80211_bitrate_attrs { struct nl80211_iftype_data_attrs { struct { - __u32 iftypes_len; - __u32 he_cap_mac_len; - __u32 he_cap_phy_len; - __u32 he_cap_mcs_set_len; - __u32 he_cap_ppe_len; - __u32 he_6ghz_capa_len; - __u32 vendor_elems_len; - __u32 eht_cap_mac_len; - __u32 eht_cap_phy_len; - __u32 eht_cap_mcs_set_len; - __u32 eht_cap_ppe_len; - } _present; + __u32 iftypes; + __u32 he_cap_mac; + __u32 he_cap_phy; + __u32 he_cap_mcs_set; + __u32 he_cap_ppe; + __u32 he_6ghz_capa; + __u32 vendor_elems; + __u32 eht_cap_mac; + __u32 eht_cap_phy; + __u32 eht_cap_mcs_set; + __u32 eht_cap_ppe; + } _len; __u32 idx; void *iftypes; @@ -223,9 +223,11 @@ struct nl80211_if_combination_attributes { __u32 radar_detect_regions:1; __u32 bi_min_gcd:1; } _present; + struct { + __u32 limits; + } _count; __u32 idx; - unsigned int n_limits; struct nl80211_iface_limit_attributes *limits; __u32 maxnum; __u32 num_channels; @@ -238,9 +240,11 @@ struct nl80211_sar_attributes { struct { __u32 type:1; } _present; + struct { + __u32 specs; + } _count; __u32 type; - unsigned int n_specs; struct nl80211_sar_specs *specs; }; @@ -253,32 +257,37 @@ struct nl80211_frequency_attrs { __u32 radar:1; __u32 max_tx_power:1; __u32 dfs_state:1; - __u32 dfs_time_len; - __u32 no_ht40_minus_len; - __u32 no_ht40_plus_len; - __u32 no_80mhz_len; - __u32 no_160mhz_len; - __u32 dfs_cac_time_len; - __u32 indoor_only_len; - __u32 ir_concurrent_len; - __u32 no_20mhz_len; - __u32 no_10mhz_len; - __u32 no_he_len; __u32 offset:1; - __u32 _1mhz_len; - __u32 _2mhz_len; - __u32 _4mhz_len; - __u32 _8mhz_len; - __u32 _16mhz_len; - __u32 no_320mhz_len; - __u32 no_eht_len; - __u32 psd_len; - __u32 dfs_concurrent_len; - __u32 no_6ghz_vlp_client_len; - __u32 no_6ghz_afc_client_len; - __u32 can_monitor_len; - __u32 allow_6ghz_vlp_ap_len; } _present; + struct { + __u32 dfs_time; + __u32 no_ht40_minus; + __u32 no_ht40_plus; + __u32 no_80mhz; + __u32 no_160mhz; + __u32 dfs_cac_time; + __u32 indoor_only; + __u32 ir_concurrent; + __u32 no_20mhz; + __u32 no_10mhz; + __u32 no_he; + __u32 _1mhz; + __u32 _2mhz; + __u32 _4mhz; + __u32 _8mhz; + __u32 _16mhz; + __u32 no_320mhz; + __u32 no_eht; + __u32 psd; + __u32 dfs_concurrent; + __u32 no_6ghz_vlp_client; + __u32 no_6ghz_afc_client; + __u32 can_monitor; + __u32 allow_6ghz_vlp_ap; + } _len; + struct { + __u32 wmm; + } _count; __u32 idx; __u32 freq; @@ -294,7 +303,6 @@ struct nl80211_frequency_attrs { void *ir_concurrent; void *no_20mhz; void *no_10mhz; - unsigned int n_wmm; struct nl80211_wmm_attrs *wmm; void *no_he; __u32 offset; @@ -315,21 +323,26 @@ struct nl80211_frequency_attrs { struct nl80211_band_attrs { struct { - __u32 ht_mcs_set_len; __u32 ht_capa:1; __u32 ht_ampdu_factor:1; __u32 ht_ampdu_density:1; - __u32 vht_mcs_set_len; __u32 vht_capa:1; - __u32 edmg_channels_len; - __u32 edmg_bw_config_len; - __u32 s1g_mcs_nss_set_len; - __u32 s1g_capa_len; } _present; + struct { + __u32 ht_mcs_set; + __u32 vht_mcs_set; + __u32 edmg_channels; + __u32 edmg_bw_config; + __u32 s1g_mcs_nss_set; + __u32 s1g_capa; + } _len; + struct { + __u32 freqs; + __u32 rates; + __u32 iftype_data; + } _count; - unsigned int n_freqs; struct nl80211_frequency_attrs *freqs; - unsigned int n_rates; struct nl80211_bitrate_attrs *rates; void *ht_mcs_set; __u16 ht_capa; @@ -337,7 +350,6 @@ struct nl80211_band_attrs { __u8 ht_ampdu_density; void *vht_mcs_set; __u32 vht_capa; - unsigned int n_iftype_data; struct nl80211_iftype_data_attrs *iftype_data; void *edmg_channels; void *edmg_bw_config; @@ -406,18 +418,11 @@ nl80211_get_wiphy_req_set_ifindex(struct nl80211_get_wiphy_req *req, struct nl80211_get_wiphy_rsp { struct { __u32 bands:1; - __u32 cipher_suites_len; __u32 control_port_ethertype:1; - __u32 ext_capa_len; - __u32 ext_capa_mask_len; - __u32 ext_features_len; __u32 feature_flags:1; __u32 generation:1; - __u32 ht_capability_mask_len; - __u32 mac_len; __u32 max_csa_counters:1; __u32 max_match_sets:1; - __u32 max_num_akm_suites_len; __u32 max_num_pmkids:1; __u32 max_num_scan_ssids:1; __u32 max_num_sched_scan_plans:1; @@ -441,7 +446,6 @@ struct nl80211_get_wiphy_rsp { __u32 txq_memory_limit:1; __u32 txq_quantum:1; __u32 txq_stats:1; - __u32 vht_capability_mask_len; __u32 wiphy:1; __u32 wiphy_antenna_avail_rx:1; __u32 wiphy_antenna_avail_tx:1; @@ -450,12 +454,26 @@ struct nl80211_get_wiphy_rsp { __u32 wiphy_bands:1; __u32 wiphy_coverage_class:1; __u32 wiphy_frag_threshold:1; - __u32 wiphy_name_len; __u32 wiphy_retry_long:1; __u32 wiphy_retry_short:1; __u32 wiphy_rts_threshold:1; __u32 wowlan_triggers_supported:1; } _present; + struct { + __u32 cipher_suites; + __u32 ext_capa; + __u32 ext_capa_mask; + __u32 ext_features; + __u32 ht_capability_mask; + __u32 mac; + __u32 max_num_akm_suites; + __u32 vht_capability_mask; + __u32 wiphy_name; + } _len; + struct { + __u32 interface_combinations; + __u32 supported_commands; + } _count; __u32 bands; void *cipher_suites; @@ -465,7 +483,6 @@ struct nl80211_get_wiphy_rsp { __u32 feature_flags; __u32 generation; void *ht_capability_mask; - unsigned int n_interface_combinations; struct nl80211_if_combination_attributes *interface_combinations; void *mac; __u8 max_csa_counters; @@ -484,7 +501,6 @@ struct nl80211_get_wiphy_rsp { struct nl80211_sar_attributes sar_spec; __u32 sched_scan_max_reqs; struct nl80211_supported_iftypes software_iftypes; - unsigned int n_supported_commands; __u32 *supported_commands; struct nl80211_supported_iftypes supported_iftypes; struct nl80211_iftype_attrs tx_frame_types; @@ -569,18 +585,11 @@ nl80211_get_wiphy_req_dump_set_split_wiphy_dump(struct nl80211_get_wiphy_req_dum struct nl80211_get_wiphy_rsp_dump { struct { __u32 bands:1; - __u32 cipher_suites_len; __u32 control_port_ethertype:1; - __u32 ext_capa_len; - __u32 ext_capa_mask_len; - __u32 ext_features_len; __u32 feature_flags:1; __u32 generation:1; - __u32 ht_capability_mask_len; - __u32 mac_len; __u32 max_csa_counters:1; __u32 max_match_sets:1; - __u32 max_num_akm_suites_len; __u32 max_num_pmkids:1; __u32 max_num_scan_ssids:1; __u32 max_num_sched_scan_plans:1; @@ -604,7 +613,6 @@ struct nl80211_get_wiphy_rsp_dump { __u32 txq_memory_limit:1; __u32 txq_quantum:1; __u32 txq_stats:1; - __u32 vht_capability_mask_len; __u32 wiphy:1; __u32 wiphy_antenna_avail_rx:1; __u32 wiphy_antenna_avail_tx:1; @@ -613,12 +621,26 @@ struct nl80211_get_wiphy_rsp_dump { __u32 wiphy_bands:1; __u32 wiphy_coverage_class:1; __u32 wiphy_frag_threshold:1; - __u32 wiphy_name_len; __u32 wiphy_retry_long:1; __u32 wiphy_retry_short:1; __u32 wiphy_rts_threshold:1; __u32 wowlan_triggers_supported:1; } _present; + struct { + __u32 cipher_suites; + __u32 ext_capa; + __u32 ext_capa_mask; + __u32 ext_features; + __u32 ht_capability_mask; + __u32 mac; + __u32 max_num_akm_suites; + __u32 vht_capability_mask; + __u32 wiphy_name; + } _len; + struct { + __u32 interface_combinations; + __u32 supported_commands; + } _count; __u32 bands; void *cipher_suites; @@ -628,7 +650,6 @@ struct nl80211_get_wiphy_rsp_dump { __u32 feature_flags; __u32 generation; void *ht_capability_mask; - unsigned int n_interface_combinations; struct nl80211_if_combination_attributes *interface_combinations; void *mac; __u8 max_csa_counters; @@ -647,7 +668,6 @@ struct nl80211_get_wiphy_rsp_dump { struct nl80211_sar_attributes sar_spec; __u32 sched_scan_max_reqs; struct nl80211_supported_iftypes software_iftypes; - unsigned int n_supported_commands; __u32 *supported_commands; struct nl80211_supported_iftypes supported_iftypes; struct nl80211_iftype_attrs tx_frame_types; @@ -686,8 +706,8 @@ nl80211_get_wiphy_dump(struct ynl_sock *ys, /* NL80211_CMD_GET_INTERFACE - do */ struct nl80211_get_interface_req { struct { - __u32 ifname_len; - } _present; + __u32 ifname; + } _len; char *ifname; }; @@ -704,24 +724,26 @@ nl80211_get_interface_req_set_ifname(struct nl80211_get_interface_req *req, const char *ifname) { free(req->ifname); - req->_present.ifname_len = strlen(ifname); - req->ifname = malloc(req->_present.ifname_len + 1); - memcpy(req->ifname, ifname, req->_present.ifname_len); - req->ifname[req->_present.ifname_len] = 0; + req->_len.ifname = strlen(ifname); + req->ifname = malloc(req->_len.ifname + 1); + memcpy(req->ifname, ifname, req->_len.ifname); + req->ifname[req->_len.ifname] = 0; } struct nl80211_get_interface_rsp { struct { - __u32 ifname_len; __u32 iftype:1; __u32 ifindex:1; __u32 wiphy:1; __u32 wdev:1; - __u32 mac_len; __u32 generation:1; __u32 txq_stats:1; __u32 _4addr:1; } _present; + struct { + __u32 ifname; + __u32 mac; + } _len; char *ifname; __u32 iftype; @@ -746,8 +768,8 @@ nl80211_get_interface(struct ynl_sock *ys, /* NL80211_CMD_GET_INTERFACE - dump */ struct nl80211_get_interface_req_dump { struct { - __u32 ifname_len; - } _present; + __u32 ifname; + } _len; char *ifname; }; @@ -765,24 +787,26 @@ nl80211_get_interface_req_dump_set_ifname(struct nl80211_get_interface_req_dump const char *ifname) { free(req->ifname); - req->_present.ifname_len = strlen(ifname); - req->ifname = malloc(req->_present.ifname_len + 1); - memcpy(req->ifname, ifname, req->_present.ifname_len); - req->ifname[req->_present.ifname_len] = 0; + req->_len.ifname = strlen(ifname); + req->ifname = malloc(req->_len.ifname + 1); + memcpy(req->ifname, ifname, req->_len.ifname); + req->ifname[req->_len.ifname] = 0; } struct nl80211_get_interface_rsp_dump { struct { - __u32 ifname_len; __u32 iftype:1; __u32 ifindex:1; __u32 wiphy:1; __u32 wdev:1; - __u32 mac_len; __u32 generation:1; __u32 txq_stats:1; __u32 _4addr:1; } _present; + struct { + __u32 ifname; + __u32 mac; + } _len; char *ifname; __u32 iftype; diff --git a/home/nipa/nipa_out/959697/ynl/old-code/nlctrl-user.c b/home/nipa/nipa_out/959697/ynl/new-code/nlctrl-user.c index e1cdea3cb66d..493446af3a99 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/nlctrl-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/nlctrl-user.c @@ -192,7 +192,7 @@ int nlctrl_mcast_group_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.name_len = len; + dst->_len.name = len; dst->name = malloc(len + 1); memcpy(dst->name, ynl_attr_get_str(attr), len); dst->name[len] = 0; @@ -367,7 +367,7 @@ int nlctrl_getfamily_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.family_name_len = len; + dst->_len.family_name = len; dst->family_name = malloc(len + 1); memcpy(dst->family_name, ynl_attr_get_str(attr), len); dst->family_name[len] = 0; @@ -388,7 +388,7 @@ int nlctrl_getfamily_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_mcast_groups++; + dst->_count.mcast_groups++; } } else if (type == CTRL_ATTR_OPS) { const struct nlattr *attr2; @@ -397,7 +397,7 @@ int nlctrl_getfamily_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each_nested(attr2, attr) { if (ynl_attr_validate(yarg, attr2)) return YNL_PARSE_CB_ERROR; - dst->n_ops++; + dst->_count.ops++; } } else if (type == CTRL_ATTR_VERSION) { if (ynl_attr_validate(yarg, attr)) @@ -409,7 +409,7 @@ int nlctrl_getfamily_rsp_parse(const struct nlmsghdr *nlh, if (n_mcast_groups) { dst->mcast_groups = calloc(n_mcast_groups, sizeof(*dst->mcast_groups)); - dst->n_mcast_groups = n_mcast_groups; + dst->_count.mcast_groups = n_mcast_groups; i = 0; parg.rsp_policy = &nlctrl_mcast_group_attrs_nest; ynl_attr_for_each_nested(attr, attr_mcast_groups) { @@ -421,7 +421,7 @@ int nlctrl_getfamily_rsp_parse(const struct nlmsghdr *nlh, } if (n_ops) { dst->ops = calloc(n_ops, sizeof(*dst->ops)); - dst->n_ops = n_ops; + dst->_count.ops = n_ops; i = 0; parg.rsp_policy = &nlctrl_op_attrs_nest; ynl_attr_for_each_nested(attr, attr_ops) { @@ -448,7 +448,7 @@ nlctrl_getfamily(struct ynl_sock *ys, struct nlctrl_getfamily_req *req) ys->req_hdr_len = ys->family->hdr_len; yrs.yarg.rsp_policy = &nlctrl_ctrl_attrs_nest; - if (req->_present.family_name_len) + if (req->_len.family_name) ynl_attr_put_str(nlh, CTRL_ATTR_FAMILY_NAME, req->family_name); rsp = calloc(1, sizeof(*rsp)); @@ -599,7 +599,7 @@ nlctrl_getpolicy_dump(struct ynl_sock *ys, struct nlctrl_getpolicy_req *req) ys->req_policy = &nlctrl_ctrl_attrs_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.family_name_len) + if (req->_len.family_name) ynl_attr_put_str(nlh, CTRL_ATTR_FAMILY_NAME, req->family_name); if (req->_present.family_id) ynl_attr_put_u16(nlh, CTRL_ATTR_FAMILY_ID, req->family_id); diff --git a/home/nipa/nipa_out/959697/ynl/old-code/nlctrl-user.h b/home/nipa/nipa_out/959697/ynl/new-code/nlctrl-user.h index 14dacf2d2bf0..f555fc521c31 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/nlctrl-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/nlctrl-user.h @@ -34,9 +34,11 @@ struct nlctrl_op_attrs { struct nlctrl_mcast_group_attrs { struct { - __u32 name_len; __u32 id:1; } _present; + struct { + __u32 name; + } _len; __u32 idx; char *name; @@ -88,8 +90,8 @@ struct nlctrl_op_policy_attrs { /* CTRL_CMD_GETFAMILY - do */ struct nlctrl_getfamily_req { struct { - __u32 family_name_len; - } _present; + __u32 family_name; + } _len; char *family_name; }; @@ -105,28 +107,32 @@ nlctrl_getfamily_req_set_family_name(struct nlctrl_getfamily_req *req, const char *family_name) { free(req->family_name); - req->_present.family_name_len = strlen(family_name); - req->family_name = malloc(req->_present.family_name_len + 1); - memcpy(req->family_name, family_name, req->_present.family_name_len); - req->family_name[req->_present.family_name_len] = 0; + req->_len.family_name = strlen(family_name); + req->family_name = malloc(req->_len.family_name + 1); + memcpy(req->family_name, family_name, req->_len.family_name); + req->family_name[req->_len.family_name] = 0; } struct nlctrl_getfamily_rsp { struct { __u32 family_id:1; - __u32 family_name_len; __u32 hdrsize:1; __u32 maxattr:1; __u32 version:1; } _present; + struct { + __u32 family_name; + } _len; + struct { + __u32 mcast_groups; + __u32 ops; + } _count; __u16 family_id; char *family_name; __u32 hdrsize; __u32 maxattr; - unsigned int n_mcast_groups; struct nlctrl_mcast_group_attrs *mcast_groups; - unsigned int n_ops; struct nlctrl_op_attrs *ops; __u32 version; }; @@ -153,10 +159,12 @@ struct nlctrl_getfamily_list *nlctrl_getfamily_dump(struct ynl_sock *ys); /* CTRL_CMD_GETPOLICY - dump */ struct nlctrl_getpolicy_req { struct { - __u32 family_name_len; __u32 family_id:1; __u32 op:1; } _present; + struct { + __u32 family_name; + } _len; char *family_name; __u16 family_id; @@ -174,10 +182,10 @@ nlctrl_getpolicy_req_set_family_name(struct nlctrl_getpolicy_req *req, const char *family_name) { free(req->family_name); - req->_present.family_name_len = strlen(family_name); - req->family_name = malloc(req->_present.family_name_len + 1); - memcpy(req->family_name, family_name, req->_present.family_name_len); - req->family_name[req->_present.family_name_len] = 0; + req->_len.family_name = strlen(family_name); + req->family_name = malloc(req->_len.family_name + 1); + memcpy(req->family_name, family_name, req->_len.family_name); + req->family_name[req->_len.family_name] = 0; } static inline void nlctrl_getpolicy_req_set_family_id(struct nlctrl_getpolicy_req *req, diff --git a/home/nipa/nipa_out/959697/ynl/old-code/ovpn-user.c b/home/nipa/nipa_out/959697/ynl/new-code/ovpn-user.c index f92a3bb3775c..94d748529367 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/ovpn-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/ovpn-user.c @@ -157,8 +157,8 @@ int ovpn_peer_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put_u32(nlh, OVPN_A_PEER_ID, obj->id); if (obj->_present.remote_ipv4) ynl_attr_put_u32(nlh, OVPN_A_PEER_REMOTE_IPV4, obj->remote_ipv4); - if (obj->_present.remote_ipv6_len) - ynl_attr_put(nlh, OVPN_A_PEER_REMOTE_IPV6, obj->remote_ipv6, obj->_present.remote_ipv6_len); + if (obj->_len.remote_ipv6) + ynl_attr_put(nlh, OVPN_A_PEER_REMOTE_IPV6, obj->remote_ipv6, obj->_len.remote_ipv6); if (obj->_present.remote_ipv6_scope_id) ynl_attr_put_u32(nlh, OVPN_A_PEER_REMOTE_IPV6_SCOPE_ID, obj->remote_ipv6_scope_id); if (obj->_present.remote_port) @@ -169,12 +169,12 @@ int ovpn_peer_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put_s32(nlh, OVPN_A_PEER_SOCKET_NETNSID, obj->socket_netnsid); if (obj->_present.vpn_ipv4) ynl_attr_put_u32(nlh, OVPN_A_PEER_VPN_IPV4, obj->vpn_ipv4); - if (obj->_present.vpn_ipv6_len) - ynl_attr_put(nlh, OVPN_A_PEER_VPN_IPV6, obj->vpn_ipv6, obj->_present.vpn_ipv6_len); + if (obj->_len.vpn_ipv6) + ynl_attr_put(nlh, OVPN_A_PEER_VPN_IPV6, obj->vpn_ipv6, obj->_len.vpn_ipv6); if (obj->_present.local_ipv4) ynl_attr_put_u32(nlh, OVPN_A_PEER_LOCAL_IPV4, obj->local_ipv4); - if (obj->_present.local_ipv6_len) - ynl_attr_put(nlh, OVPN_A_PEER_LOCAL_IPV6, obj->local_ipv6, obj->_present.local_ipv6_len); + if (obj->_len.local_ipv6) + ynl_attr_put(nlh, OVPN_A_PEER_LOCAL_IPV6, obj->local_ipv6, obj->_len.local_ipv6); if (obj->_present.local_port) ynl_attr_put_u16(nlh, OVPN_A_PEER_LOCAL_PORT, obj->local_port); if (obj->_present.keepalive_interval) @@ -229,7 +229,7 @@ int ovpn_peer_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.remote_ipv6_len = len; + dst->_len.remote_ipv6 = len; dst->remote_ipv6 = malloc(len); memcpy(dst->remote_ipv6, ynl_attr_data(attr), len); } else if (type == OVPN_A_PEER_REMOTE_IPV6_SCOPE_ID) { @@ -264,7 +264,7 @@ int ovpn_peer_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.vpn_ipv6_len = len; + dst->_len.vpn_ipv6 = len; dst->vpn_ipv6 = malloc(len); memcpy(dst->vpn_ipv6, ynl_attr_data(attr), len); } else if (type == OVPN_A_PEER_LOCAL_IPV4) { @@ -279,7 +279,7 @@ int ovpn_peer_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.local_ipv6_len = len; + dst->_len.local_ipv6 = len; dst->local_ipv6 = malloc(len); memcpy(dst->local_ipv6, ynl_attr_data(attr), len); } else if (type == OVPN_A_PEER_LOCAL_PORT) { @@ -360,10 +360,10 @@ int ovpn_keydir_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj->_present.cipher_key_len) - ynl_attr_put(nlh, OVPN_A_KEYDIR_CIPHER_KEY, obj->cipher_key, obj->_present.cipher_key_len); - if (obj->_present.nonce_tail_len) - ynl_attr_put(nlh, OVPN_A_KEYDIR_NONCE_TAIL, obj->nonce_tail, obj->_present.nonce_tail_len); + if (obj->_len.cipher_key) + ynl_attr_put(nlh, OVPN_A_KEYDIR_CIPHER_KEY, obj->cipher_key, obj->_len.cipher_key); + if (obj->_len.nonce_tail) + ynl_attr_put(nlh, OVPN_A_KEYDIR_NONCE_TAIL, obj->nonce_tail, obj->_len.nonce_tail); ynl_attr_nest_end(nlh, nest); return 0; @@ -384,7 +384,7 @@ int ovpn_keydir_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.cipher_key_len = len; + dst->_len.cipher_key = len; dst->cipher_key = malloc(len); memcpy(dst->cipher_key, ynl_attr_data(attr), len); } else if (type == OVPN_A_KEYDIR_NONCE_TAIL) { @@ -394,7 +394,7 @@ int ovpn_keydir_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.nonce_tail_len = len; + dst->_len.nonce_tail = len; dst->nonce_tail = malloc(len); memcpy(dst->nonce_tail, ynl_attr_data(attr), len); } diff --git a/home/nipa/nipa_out/959697/ynl/old-code/ovpn-user.h b/home/nipa/nipa_out/959697/ynl/new-code/ovpn-user.h index 31f69f350fbd..74348e6573c5 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/ovpn-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/ovpn-user.h @@ -26,15 +26,12 @@ struct ovpn_peer { struct { __u32 id:1; __u32 remote_ipv4:1; - __u32 remote_ipv6_len; __u32 remote_ipv6_scope_id:1; __u32 remote_port:1; __u32 socket:1; __u32 socket_netnsid:1; __u32 vpn_ipv4:1; - __u32 vpn_ipv6_len; __u32 local_ipv4:1; - __u32 local_ipv6_len; __u32 local_port:1; __u32 keepalive_interval:1; __u32 keepalive_timeout:1; @@ -48,6 +45,11 @@ struct ovpn_peer { __u32 link_rx_packets:1; __u32 link_tx_packets:1; } _present; + struct { + __u32 remote_ipv6; + __u32 vpn_ipv6; + __u32 local_ipv6; + } _len; __u32 id; __u32 remote_ipv4 /* big-endian */; @@ -76,9 +78,9 @@ struct ovpn_peer { struct ovpn_keydir { struct { - __u32 cipher_key_len; - __u32 nonce_tail_len; - } _present; + __u32 cipher_key; + __u32 nonce_tail; + } _len; void *cipher_key; void *nonce_tail; @@ -147,9 +149,9 @@ ovpn_peer_new_req_set_peer_remote_ipv6(struct ovpn_peer_new_req *req, { req->_present.peer = 1; free(req->peer.remote_ipv6); - req->peer._present.remote_ipv6_len = len; - req->peer.remote_ipv6 = malloc(req->peer._present.remote_ipv6_len); - memcpy(req->peer.remote_ipv6, remote_ipv6, req->peer._present.remote_ipv6_len); + req->peer._len.remote_ipv6 = len; + req->peer.remote_ipv6 = malloc(req->peer._len.remote_ipv6); + memcpy(req->peer.remote_ipv6, remote_ipv6, req->peer._len.remote_ipv6); } static inline void ovpn_peer_new_req_set_peer_remote_ipv6_scope_id(struct ovpn_peer_new_req *req, @@ -196,9 +198,9 @@ ovpn_peer_new_req_set_peer_vpn_ipv6(struct ovpn_peer_new_req *req, { req->_present.peer = 1; free(req->peer.vpn_ipv6); - req->peer._present.vpn_ipv6_len = len; - req->peer.vpn_ipv6 = malloc(req->peer._present.vpn_ipv6_len); - memcpy(req->peer.vpn_ipv6, vpn_ipv6, req->peer._present.vpn_ipv6_len); + req->peer._len.vpn_ipv6 = len; + req->peer.vpn_ipv6 = malloc(req->peer._len.vpn_ipv6); + memcpy(req->peer.vpn_ipv6, vpn_ipv6, req->peer._len.vpn_ipv6); } static inline void ovpn_peer_new_req_set_peer_local_ipv4(struct ovpn_peer_new_req *req, @@ -214,9 +216,9 @@ ovpn_peer_new_req_set_peer_local_ipv6(struct ovpn_peer_new_req *req, { req->_present.peer = 1; free(req->peer.local_ipv6); - req->peer._present.local_ipv6_len = len; - req->peer.local_ipv6 = malloc(req->peer._present.local_ipv6_len); - memcpy(req->peer.local_ipv6, local_ipv6, req->peer._present.local_ipv6_len); + req->peer._len.local_ipv6 = len; + req->peer.local_ipv6 = malloc(req->peer._len.local_ipv6); + memcpy(req->peer.local_ipv6, local_ipv6, req->peer._len.local_ipv6); } static inline void ovpn_peer_new_req_set_peer_local_port(struct ovpn_peer_new_req *req, @@ -365,9 +367,9 @@ ovpn_peer_set_req_set_peer_remote_ipv6(struct ovpn_peer_set_req *req, { req->_present.peer = 1; free(req->peer.remote_ipv6); - req->peer._present.remote_ipv6_len = len; - req->peer.remote_ipv6 = malloc(req->peer._present.remote_ipv6_len); - memcpy(req->peer.remote_ipv6, remote_ipv6, req->peer._present.remote_ipv6_len); + req->peer._len.remote_ipv6 = len; + req->peer.remote_ipv6 = malloc(req->peer._len.remote_ipv6); + memcpy(req->peer.remote_ipv6, remote_ipv6, req->peer._len.remote_ipv6); } static inline void ovpn_peer_set_req_set_peer_remote_ipv6_scope_id(struct ovpn_peer_set_req *req, @@ -414,9 +416,9 @@ ovpn_peer_set_req_set_peer_vpn_ipv6(struct ovpn_peer_set_req *req, { req->_present.peer = 1; free(req->peer.vpn_ipv6); - req->peer._present.vpn_ipv6_len = len; - req->peer.vpn_ipv6 = malloc(req->peer._present.vpn_ipv6_len); - memcpy(req->peer.vpn_ipv6, vpn_ipv6, req->peer._present.vpn_ipv6_len); + req->peer._len.vpn_ipv6 = len; + req->peer.vpn_ipv6 = malloc(req->peer._len.vpn_ipv6); + memcpy(req->peer.vpn_ipv6, vpn_ipv6, req->peer._len.vpn_ipv6); } static inline void ovpn_peer_set_req_set_peer_local_ipv4(struct ovpn_peer_set_req *req, @@ -432,9 +434,9 @@ ovpn_peer_set_req_set_peer_local_ipv6(struct ovpn_peer_set_req *req, { req->_present.peer = 1; free(req->peer.local_ipv6); - req->peer._present.local_ipv6_len = len; - req->peer.local_ipv6 = malloc(req->peer._present.local_ipv6_len); - memcpy(req->peer.local_ipv6, local_ipv6, req->peer._present.local_ipv6_len); + req->peer._len.local_ipv6 = len; + req->peer.local_ipv6 = malloc(req->peer._len.local_ipv6); + memcpy(req->peer.local_ipv6, local_ipv6, req->peer._len.local_ipv6); } static inline void ovpn_peer_set_req_set_peer_local_port(struct ovpn_peer_set_req *req, @@ -583,9 +585,9 @@ ovpn_peer_get_req_set_peer_remote_ipv6(struct ovpn_peer_get_req *req, { req->_present.peer = 1; free(req->peer.remote_ipv6); - req->peer._present.remote_ipv6_len = len; - req->peer.remote_ipv6 = malloc(req->peer._present.remote_ipv6_len); - memcpy(req->peer.remote_ipv6, remote_ipv6, req->peer._present.remote_ipv6_len); + req->peer._len.remote_ipv6 = len; + req->peer.remote_ipv6 = malloc(req->peer._len.remote_ipv6); + memcpy(req->peer.remote_ipv6, remote_ipv6, req->peer._len.remote_ipv6); } static inline void ovpn_peer_get_req_set_peer_remote_ipv6_scope_id(struct ovpn_peer_get_req *req, @@ -632,9 +634,9 @@ ovpn_peer_get_req_set_peer_vpn_ipv6(struct ovpn_peer_get_req *req, { req->_present.peer = 1; free(req->peer.vpn_ipv6); - req->peer._present.vpn_ipv6_len = len; - req->peer.vpn_ipv6 = malloc(req->peer._present.vpn_ipv6_len); - memcpy(req->peer.vpn_ipv6, vpn_ipv6, req->peer._present.vpn_ipv6_len); + req->peer._len.vpn_ipv6 = len; + req->peer.vpn_ipv6 = malloc(req->peer._len.vpn_ipv6); + memcpy(req->peer.vpn_ipv6, vpn_ipv6, req->peer._len.vpn_ipv6); } static inline void ovpn_peer_get_req_set_peer_local_ipv4(struct ovpn_peer_get_req *req, @@ -650,9 +652,9 @@ ovpn_peer_get_req_set_peer_local_ipv6(struct ovpn_peer_get_req *req, { req->_present.peer = 1; free(req->peer.local_ipv6); - req->peer._present.local_ipv6_len = len; - req->peer.local_ipv6 = malloc(req->peer._present.local_ipv6_len); - memcpy(req->peer.local_ipv6, local_ipv6, req->peer._present.local_ipv6_len); + req->peer._len.local_ipv6 = len; + req->peer.local_ipv6 = malloc(req->peer._len.local_ipv6); + memcpy(req->peer.local_ipv6, local_ipv6, req->peer._len.local_ipv6); } static inline void ovpn_peer_get_req_set_peer_local_port(struct ovpn_peer_get_req *req, @@ -856,9 +858,9 @@ ovpn_peer_del_req_set_peer_remote_ipv6(struct ovpn_peer_del_req *req, { req->_present.peer = 1; free(req->peer.remote_ipv6); - req->peer._present.remote_ipv6_len = len; - req->peer.remote_ipv6 = malloc(req->peer._present.remote_ipv6_len); - memcpy(req->peer.remote_ipv6, remote_ipv6, req->peer._present.remote_ipv6_len); + req->peer._len.remote_ipv6 = len; + req->peer.remote_ipv6 = malloc(req->peer._len.remote_ipv6); + memcpy(req->peer.remote_ipv6, remote_ipv6, req->peer._len.remote_ipv6); } static inline void ovpn_peer_del_req_set_peer_remote_ipv6_scope_id(struct ovpn_peer_del_req *req, @@ -905,9 +907,9 @@ ovpn_peer_del_req_set_peer_vpn_ipv6(struct ovpn_peer_del_req *req, { req->_present.peer = 1; free(req->peer.vpn_ipv6); - req->peer._present.vpn_ipv6_len = len; - req->peer.vpn_ipv6 = malloc(req->peer._present.vpn_ipv6_len); - memcpy(req->peer.vpn_ipv6, vpn_ipv6, req->peer._present.vpn_ipv6_len); + req->peer._len.vpn_ipv6 = len; + req->peer.vpn_ipv6 = malloc(req->peer._len.vpn_ipv6); + memcpy(req->peer.vpn_ipv6, vpn_ipv6, req->peer._len.vpn_ipv6); } static inline void ovpn_peer_del_req_set_peer_local_ipv4(struct ovpn_peer_del_req *req, @@ -923,9 +925,9 @@ ovpn_peer_del_req_set_peer_local_ipv6(struct ovpn_peer_del_req *req, { req->_present.peer = 1; free(req->peer.local_ipv6); - req->peer._present.local_ipv6_len = len; - req->peer.local_ipv6 = malloc(req->peer._present.local_ipv6_len); - memcpy(req->peer.local_ipv6, local_ipv6, req->peer._present.local_ipv6_len); + req->peer._len.local_ipv6 = len; + req->peer.local_ipv6 = malloc(req->peer._len.local_ipv6); + memcpy(req->peer.local_ipv6, local_ipv6, req->peer._len.local_ipv6); } static inline void ovpn_peer_del_req_set_peer_local_port(struct ovpn_peer_del_req *req, @@ -1092,9 +1094,9 @@ ovpn_key_new_req_set_keyconf_encrypt_dir_cipher_key(struct ovpn_key_new_req *req req->_present.keyconf = 1; req->keyconf._present.encrypt_dir = 1; free(req->keyconf.encrypt_dir.cipher_key); - req->keyconf.encrypt_dir._present.cipher_key_len = len; - req->keyconf.encrypt_dir.cipher_key = malloc(req->keyconf.encrypt_dir._present.cipher_key_len); - memcpy(req->keyconf.encrypt_dir.cipher_key, cipher_key, req->keyconf.encrypt_dir._present.cipher_key_len); + req->keyconf.encrypt_dir._len.cipher_key = len; + req->keyconf.encrypt_dir.cipher_key = malloc(req->keyconf.encrypt_dir._len.cipher_key); + memcpy(req->keyconf.encrypt_dir.cipher_key, cipher_key, req->keyconf.encrypt_dir._len.cipher_key); } static inline void ovpn_key_new_req_set_keyconf_encrypt_dir_nonce_tail(struct ovpn_key_new_req *req, @@ -1104,9 +1106,9 @@ ovpn_key_new_req_set_keyconf_encrypt_dir_nonce_tail(struct ovpn_key_new_req *req req->_present.keyconf = 1; req->keyconf._present.encrypt_dir = 1; free(req->keyconf.encrypt_dir.nonce_tail); - req->keyconf.encrypt_dir._present.nonce_tail_len = len; - req->keyconf.encrypt_dir.nonce_tail = malloc(req->keyconf.encrypt_dir._present.nonce_tail_len); - memcpy(req->keyconf.encrypt_dir.nonce_tail, nonce_tail, req->keyconf.encrypt_dir._present.nonce_tail_len); + req->keyconf.encrypt_dir._len.nonce_tail = len; + req->keyconf.encrypt_dir.nonce_tail = malloc(req->keyconf.encrypt_dir._len.nonce_tail); + memcpy(req->keyconf.encrypt_dir.nonce_tail, nonce_tail, req->keyconf.encrypt_dir._len.nonce_tail); } static inline void ovpn_key_new_req_set_keyconf_decrypt_dir_cipher_key(struct ovpn_key_new_req *req, @@ -1116,9 +1118,9 @@ ovpn_key_new_req_set_keyconf_decrypt_dir_cipher_key(struct ovpn_key_new_req *req req->_present.keyconf = 1; req->keyconf._present.decrypt_dir = 1; free(req->keyconf.decrypt_dir.cipher_key); - req->keyconf.decrypt_dir._present.cipher_key_len = len; - req->keyconf.decrypt_dir.cipher_key = malloc(req->keyconf.decrypt_dir._present.cipher_key_len); - memcpy(req->keyconf.decrypt_dir.cipher_key, cipher_key, req->keyconf.decrypt_dir._present.cipher_key_len); + req->keyconf.decrypt_dir._len.cipher_key = len; + req->keyconf.decrypt_dir.cipher_key = malloc(req->keyconf.decrypt_dir._len.cipher_key); + memcpy(req->keyconf.decrypt_dir.cipher_key, cipher_key, req->keyconf.decrypt_dir._len.cipher_key); } static inline void ovpn_key_new_req_set_keyconf_decrypt_dir_nonce_tail(struct ovpn_key_new_req *req, @@ -1128,9 +1130,9 @@ ovpn_key_new_req_set_keyconf_decrypt_dir_nonce_tail(struct ovpn_key_new_req *req req->_present.keyconf = 1; req->keyconf._present.decrypt_dir = 1; free(req->keyconf.decrypt_dir.nonce_tail); - req->keyconf.decrypt_dir._present.nonce_tail_len = len; - req->keyconf.decrypt_dir.nonce_tail = malloc(req->keyconf.decrypt_dir._present.nonce_tail_len); - memcpy(req->keyconf.decrypt_dir.nonce_tail, nonce_tail, req->keyconf.decrypt_dir._present.nonce_tail_len); + req->keyconf.decrypt_dir._len.nonce_tail = len; + req->keyconf.decrypt_dir.nonce_tail = malloc(req->keyconf.decrypt_dir._len.nonce_tail); + memcpy(req->keyconf.decrypt_dir.nonce_tail, nonce_tail, req->keyconf.decrypt_dir._len.nonce_tail); } /* @@ -1201,9 +1203,9 @@ ovpn_key_get_req_set_keyconf_encrypt_dir_cipher_key(struct ovpn_key_get_req *req req->_present.keyconf = 1; req->keyconf._present.encrypt_dir = 1; free(req->keyconf.encrypt_dir.cipher_key); - req->keyconf.encrypt_dir._present.cipher_key_len = len; - req->keyconf.encrypt_dir.cipher_key = malloc(req->keyconf.encrypt_dir._present.cipher_key_len); - memcpy(req->keyconf.encrypt_dir.cipher_key, cipher_key, req->keyconf.encrypt_dir._present.cipher_key_len); + req->keyconf.encrypt_dir._len.cipher_key = len; + req->keyconf.encrypt_dir.cipher_key = malloc(req->keyconf.encrypt_dir._len.cipher_key); + memcpy(req->keyconf.encrypt_dir.cipher_key, cipher_key, req->keyconf.encrypt_dir._len.cipher_key); } static inline void ovpn_key_get_req_set_keyconf_encrypt_dir_nonce_tail(struct ovpn_key_get_req *req, @@ -1213,9 +1215,9 @@ ovpn_key_get_req_set_keyconf_encrypt_dir_nonce_tail(struct ovpn_key_get_req *req req->_present.keyconf = 1; req->keyconf._present.encrypt_dir = 1; free(req->keyconf.encrypt_dir.nonce_tail); - req->keyconf.encrypt_dir._present.nonce_tail_len = len; - req->keyconf.encrypt_dir.nonce_tail = malloc(req->keyconf.encrypt_dir._present.nonce_tail_len); - memcpy(req->keyconf.encrypt_dir.nonce_tail, nonce_tail, req->keyconf.encrypt_dir._present.nonce_tail_len); + req->keyconf.encrypt_dir._len.nonce_tail = len; + req->keyconf.encrypt_dir.nonce_tail = malloc(req->keyconf.encrypt_dir._len.nonce_tail); + memcpy(req->keyconf.encrypt_dir.nonce_tail, nonce_tail, req->keyconf.encrypt_dir._len.nonce_tail); } static inline void ovpn_key_get_req_set_keyconf_decrypt_dir_cipher_key(struct ovpn_key_get_req *req, @@ -1225,9 +1227,9 @@ ovpn_key_get_req_set_keyconf_decrypt_dir_cipher_key(struct ovpn_key_get_req *req req->_present.keyconf = 1; req->keyconf._present.decrypt_dir = 1; free(req->keyconf.decrypt_dir.cipher_key); - req->keyconf.decrypt_dir._present.cipher_key_len = len; - req->keyconf.decrypt_dir.cipher_key = malloc(req->keyconf.decrypt_dir._present.cipher_key_len); - memcpy(req->keyconf.decrypt_dir.cipher_key, cipher_key, req->keyconf.decrypt_dir._present.cipher_key_len); + req->keyconf.decrypt_dir._len.cipher_key = len; + req->keyconf.decrypt_dir.cipher_key = malloc(req->keyconf.decrypt_dir._len.cipher_key); + memcpy(req->keyconf.decrypt_dir.cipher_key, cipher_key, req->keyconf.decrypt_dir._len.cipher_key); } static inline void ovpn_key_get_req_set_keyconf_decrypt_dir_nonce_tail(struct ovpn_key_get_req *req, @@ -1237,9 +1239,9 @@ ovpn_key_get_req_set_keyconf_decrypt_dir_nonce_tail(struct ovpn_key_get_req *req req->_present.keyconf = 1; req->keyconf._present.decrypt_dir = 1; free(req->keyconf.decrypt_dir.nonce_tail); - req->keyconf.decrypt_dir._present.nonce_tail_len = len; - req->keyconf.decrypt_dir.nonce_tail = malloc(req->keyconf.decrypt_dir._present.nonce_tail_len); - memcpy(req->keyconf.decrypt_dir.nonce_tail, nonce_tail, req->keyconf.decrypt_dir._present.nonce_tail_len); + req->keyconf.decrypt_dir._len.nonce_tail = len; + req->keyconf.decrypt_dir.nonce_tail = malloc(req->keyconf.decrypt_dir._len.nonce_tail); + memcpy(req->keyconf.decrypt_dir.nonce_tail, nonce_tail, req->keyconf.decrypt_dir._len.nonce_tail); } struct ovpn_key_get_rsp { @@ -1333,9 +1335,9 @@ ovpn_key_swap_req_set_keyconf_encrypt_dir_cipher_key(struct ovpn_key_swap_req *r req->_present.keyconf = 1; req->keyconf._present.encrypt_dir = 1; free(req->keyconf.encrypt_dir.cipher_key); - req->keyconf.encrypt_dir._present.cipher_key_len = len; - req->keyconf.encrypt_dir.cipher_key = malloc(req->keyconf.encrypt_dir._present.cipher_key_len); - memcpy(req->keyconf.encrypt_dir.cipher_key, cipher_key, req->keyconf.encrypt_dir._present.cipher_key_len); + req->keyconf.encrypt_dir._len.cipher_key = len; + req->keyconf.encrypt_dir.cipher_key = malloc(req->keyconf.encrypt_dir._len.cipher_key); + memcpy(req->keyconf.encrypt_dir.cipher_key, cipher_key, req->keyconf.encrypt_dir._len.cipher_key); } static inline void ovpn_key_swap_req_set_keyconf_encrypt_dir_nonce_tail(struct ovpn_key_swap_req *req, @@ -1345,9 +1347,9 @@ ovpn_key_swap_req_set_keyconf_encrypt_dir_nonce_tail(struct ovpn_key_swap_req *r req->_present.keyconf = 1; req->keyconf._present.encrypt_dir = 1; free(req->keyconf.encrypt_dir.nonce_tail); - req->keyconf.encrypt_dir._present.nonce_tail_len = len; - req->keyconf.encrypt_dir.nonce_tail = malloc(req->keyconf.encrypt_dir._present.nonce_tail_len); - memcpy(req->keyconf.encrypt_dir.nonce_tail, nonce_tail, req->keyconf.encrypt_dir._present.nonce_tail_len); + req->keyconf.encrypt_dir._len.nonce_tail = len; + req->keyconf.encrypt_dir.nonce_tail = malloc(req->keyconf.encrypt_dir._len.nonce_tail); + memcpy(req->keyconf.encrypt_dir.nonce_tail, nonce_tail, req->keyconf.encrypt_dir._len.nonce_tail); } static inline void ovpn_key_swap_req_set_keyconf_decrypt_dir_cipher_key(struct ovpn_key_swap_req *req, @@ -1357,9 +1359,9 @@ ovpn_key_swap_req_set_keyconf_decrypt_dir_cipher_key(struct ovpn_key_swap_req *r req->_present.keyconf = 1; req->keyconf._present.decrypt_dir = 1; free(req->keyconf.decrypt_dir.cipher_key); - req->keyconf.decrypt_dir._present.cipher_key_len = len; - req->keyconf.decrypt_dir.cipher_key = malloc(req->keyconf.decrypt_dir._present.cipher_key_len); - memcpy(req->keyconf.decrypt_dir.cipher_key, cipher_key, req->keyconf.decrypt_dir._present.cipher_key_len); + req->keyconf.decrypt_dir._len.cipher_key = len; + req->keyconf.decrypt_dir.cipher_key = malloc(req->keyconf.decrypt_dir._len.cipher_key); + memcpy(req->keyconf.decrypt_dir.cipher_key, cipher_key, req->keyconf.decrypt_dir._len.cipher_key); } static inline void ovpn_key_swap_req_set_keyconf_decrypt_dir_nonce_tail(struct ovpn_key_swap_req *req, @@ -1369,9 +1371,9 @@ ovpn_key_swap_req_set_keyconf_decrypt_dir_nonce_tail(struct ovpn_key_swap_req *r req->_present.keyconf = 1; req->keyconf._present.decrypt_dir = 1; free(req->keyconf.decrypt_dir.nonce_tail); - req->keyconf.decrypt_dir._present.nonce_tail_len = len; - req->keyconf.decrypt_dir.nonce_tail = malloc(req->keyconf.decrypt_dir._present.nonce_tail_len); - memcpy(req->keyconf.decrypt_dir.nonce_tail, nonce_tail, req->keyconf.decrypt_dir._present.nonce_tail_len); + req->keyconf.decrypt_dir._len.nonce_tail = len; + req->keyconf.decrypt_dir.nonce_tail = malloc(req->keyconf.decrypt_dir._len.nonce_tail); + memcpy(req->keyconf.decrypt_dir.nonce_tail, nonce_tail, req->keyconf.decrypt_dir._len.nonce_tail); } /* @@ -1442,9 +1444,9 @@ ovpn_key_del_req_set_keyconf_encrypt_dir_cipher_key(struct ovpn_key_del_req *req req->_present.keyconf = 1; req->keyconf._present.encrypt_dir = 1; free(req->keyconf.encrypt_dir.cipher_key); - req->keyconf.encrypt_dir._present.cipher_key_len = len; - req->keyconf.encrypt_dir.cipher_key = malloc(req->keyconf.encrypt_dir._present.cipher_key_len); - memcpy(req->keyconf.encrypt_dir.cipher_key, cipher_key, req->keyconf.encrypt_dir._present.cipher_key_len); + req->keyconf.encrypt_dir._len.cipher_key = len; + req->keyconf.encrypt_dir.cipher_key = malloc(req->keyconf.encrypt_dir._len.cipher_key); + memcpy(req->keyconf.encrypt_dir.cipher_key, cipher_key, req->keyconf.encrypt_dir._len.cipher_key); } static inline void ovpn_key_del_req_set_keyconf_encrypt_dir_nonce_tail(struct ovpn_key_del_req *req, @@ -1454,9 +1456,9 @@ ovpn_key_del_req_set_keyconf_encrypt_dir_nonce_tail(struct ovpn_key_del_req *req req->_present.keyconf = 1; req->keyconf._present.encrypt_dir = 1; free(req->keyconf.encrypt_dir.nonce_tail); - req->keyconf.encrypt_dir._present.nonce_tail_len = len; - req->keyconf.encrypt_dir.nonce_tail = malloc(req->keyconf.encrypt_dir._present.nonce_tail_len); - memcpy(req->keyconf.encrypt_dir.nonce_tail, nonce_tail, req->keyconf.encrypt_dir._present.nonce_tail_len); + req->keyconf.encrypt_dir._len.nonce_tail = len; + req->keyconf.encrypt_dir.nonce_tail = malloc(req->keyconf.encrypt_dir._len.nonce_tail); + memcpy(req->keyconf.encrypt_dir.nonce_tail, nonce_tail, req->keyconf.encrypt_dir._len.nonce_tail); } static inline void ovpn_key_del_req_set_keyconf_decrypt_dir_cipher_key(struct ovpn_key_del_req *req, @@ -1466,9 +1468,9 @@ ovpn_key_del_req_set_keyconf_decrypt_dir_cipher_key(struct ovpn_key_del_req *req req->_present.keyconf = 1; req->keyconf._present.decrypt_dir = 1; free(req->keyconf.decrypt_dir.cipher_key); - req->keyconf.decrypt_dir._present.cipher_key_len = len; - req->keyconf.decrypt_dir.cipher_key = malloc(req->keyconf.decrypt_dir._present.cipher_key_len); - memcpy(req->keyconf.decrypt_dir.cipher_key, cipher_key, req->keyconf.decrypt_dir._present.cipher_key_len); + req->keyconf.decrypt_dir._len.cipher_key = len; + req->keyconf.decrypt_dir.cipher_key = malloc(req->keyconf.decrypt_dir._len.cipher_key); + memcpy(req->keyconf.decrypt_dir.cipher_key, cipher_key, req->keyconf.decrypt_dir._len.cipher_key); } static inline void ovpn_key_del_req_set_keyconf_decrypt_dir_nonce_tail(struct ovpn_key_del_req *req, @@ -1478,9 +1480,9 @@ ovpn_key_del_req_set_keyconf_decrypt_dir_nonce_tail(struct ovpn_key_del_req *req req->_present.keyconf = 1; req->keyconf._present.decrypt_dir = 1; free(req->keyconf.decrypt_dir.nonce_tail); - req->keyconf.decrypt_dir._present.nonce_tail_len = len; - req->keyconf.decrypt_dir.nonce_tail = malloc(req->keyconf.decrypt_dir._present.nonce_tail_len); - memcpy(req->keyconf.decrypt_dir.nonce_tail, nonce_tail, req->keyconf.decrypt_dir._present.nonce_tail_len); + req->keyconf.decrypt_dir._len.nonce_tail = len; + req->keyconf.decrypt_dir.nonce_tail = malloc(req->keyconf.decrypt_dir._len.nonce_tail); + memcpy(req->keyconf.decrypt_dir.nonce_tail, nonce_tail, req->keyconf.decrypt_dir._len.nonce_tail); } /* diff --git a/home/nipa/nipa_out/959697/ynl/old-code/ovs_datapath-user.c b/home/nipa/nipa_out/959697/ynl/new-code/ovs_datapath-user.c index 19f9fa69a132..fd54202d34d5 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/ovs_datapath-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/ovs_datapath-user.c @@ -98,7 +98,7 @@ int ovs_datapath_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.name_len = len; + dst->_len.name = len; dst->name = malloc(len + 1); memcpy(dst->name, ynl_attr_get_str(attr), len); dst->name[len] = 0; @@ -114,7 +114,7 @@ int ovs_datapath_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.stats_len = len; + dst->_len.stats = len; dst->stats = malloc(len); memcpy(dst->stats, ynl_attr_data(attr), len); } else if (type == OVS_DP_ATTR_MEGAFLOW_STATS) { @@ -124,7 +124,7 @@ int ovs_datapath_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.megaflow_stats_len = len; + dst->_len.megaflow_stats = len; dst->megaflow_stats = malloc(len); memcpy(dst->megaflow_stats, ynl_attr_data(attr), len); } else if (type == OVS_DP_ATTR_USER_FEATURES) { @@ -144,7 +144,7 @@ int ovs_datapath_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.per_cpu_pids_len = len; + dst->_len.per_cpu_pids = len; dst->per_cpu_pids = malloc(len); memcpy(dst->per_cpu_pids, ynl_attr_data(attr), len); } @@ -172,7 +172,7 @@ ovs_datapath_get(struct ynl_sock *ys, struct ovs_datapath_get_req *req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req->_hdr, hdr_len); - if (req->_present.name_len) + if (req->_len.name) ynl_attr_put_str(nlh, OVS_DP_ATTR_NAME, req->name); rsp = calloc(1, sizeof(*rsp)); @@ -239,7 +239,7 @@ ovs_datapath_get_dump(struct ynl_sock *ys, ys->req_policy = &ovs_datapath_datapath_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.name_len) + if (req->_len.name) ynl_attr_put_str(nlh, OVS_DP_ATTR_NAME, req->name); err = ynl_exec_dump(ys, nlh, &yds); @@ -277,7 +277,7 @@ int ovs_datapath_new(struct ynl_sock *ys, struct ovs_datapath_new_req *req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req->_hdr, hdr_len); - if (req->_present.name_len) + if (req->_len.name) ynl_attr_put_str(nlh, OVS_DP_ATTR_NAME, req->name); if (req->_present.upcall_pid) ynl_attr_put_u32(nlh, OVS_DP_ATTR_UPCALL_PID, req->upcall_pid); @@ -315,7 +315,7 @@ int ovs_datapath_del(struct ynl_sock *ys, struct ovs_datapath_del_req *req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req->_hdr, hdr_len); - if (req->_present.name_len) + if (req->_len.name) ynl_attr_put_str(nlh, OVS_DP_ATTR_NAME, req->name); err = ynl_exec(ys, nlh, &yrs); diff --git a/home/nipa/nipa_out/959697/ynl/old-code/ovs_datapath-user.h b/home/nipa/nipa_out/959697/ynl/new-code/ovs_datapath-user.h index fcd5b46d2fcc..329b3592a2ae 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/ovs_datapath-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/ovs_datapath-user.h @@ -26,8 +26,8 @@ struct ovs_datapath_get_req { struct ovs_header _hdr; struct { - __u32 name_len; - } _present; + __u32 name; + } _len; char *name; }; @@ -43,24 +43,26 @@ ovs_datapath_get_req_set_name(struct ovs_datapath_get_req *req, const char *name) { free(req->name); - req->_present.name_len = strlen(name); - req->name = malloc(req->_present.name_len + 1); - memcpy(req->name, name, req->_present.name_len); - req->name[req->_present.name_len] = 0; + req->_len.name = strlen(name); + req->name = malloc(req->_len.name + 1); + memcpy(req->name, name, req->_len.name); + req->name[req->_len.name] = 0; } struct ovs_datapath_get_rsp { struct ovs_header _hdr; struct { - __u32 name_len; __u32 upcall_pid:1; - __u32 stats_len; - __u32 megaflow_stats_len; __u32 user_features:1; __u32 masks_cache_size:1; - __u32 per_cpu_pids_len; } _present; + struct { + __u32 name; + __u32 stats; + __u32 megaflow_stats; + __u32 per_cpu_pids; + } _len; char *name; __u32 upcall_pid; @@ -84,8 +86,8 @@ struct ovs_datapath_get_req_dump { struct ovs_header _hdr; struct { - __u32 name_len; - } _present; + __u32 name; + } _len; char *name; }; @@ -102,10 +104,10 @@ ovs_datapath_get_req_dump_set_name(struct ovs_datapath_get_req_dump *req, const char *name) { free(req->name); - req->_present.name_len = strlen(name); - req->name = malloc(req->_present.name_len + 1); - memcpy(req->name, name, req->_present.name_len); - req->name[req->_present.name_len] = 0; + req->_len.name = strlen(name); + req->name = malloc(req->_len.name + 1); + memcpy(req->name, name, req->_len.name); + req->name[req->_len.name] = 0; } struct ovs_datapath_get_list { @@ -125,10 +127,12 @@ struct ovs_datapath_new_req { struct ovs_header _hdr; struct { - __u32 name_len; __u32 upcall_pid:1; __u32 user_features:1; } _present; + struct { + __u32 name; + } _len; char *name; __u32 upcall_pid; @@ -146,10 +150,10 @@ ovs_datapath_new_req_set_name(struct ovs_datapath_new_req *req, const char *name) { free(req->name); - req->_present.name_len = strlen(name); - req->name = malloc(req->_present.name_len + 1); - memcpy(req->name, name, req->_present.name_len); - req->name[req->_present.name_len] = 0; + req->_len.name = strlen(name); + req->name = malloc(req->_len.name + 1); + memcpy(req->name, name, req->_len.name); + req->name[req->_len.name] = 0; } static inline void ovs_datapath_new_req_set_upcall_pid(struct ovs_datapath_new_req *req, @@ -177,8 +181,8 @@ struct ovs_datapath_del_req { struct ovs_header _hdr; struct { - __u32 name_len; - } _present; + __u32 name; + } _len; char *name; }; @@ -194,10 +198,10 @@ ovs_datapath_del_req_set_name(struct ovs_datapath_del_req *req, const char *name) { free(req->name); - req->_present.name_len = strlen(name); - req->name = malloc(req->_present.name_len + 1); - memcpy(req->name, name, req->_present.name_len); - req->name[req->_present.name_len] = 0; + req->_len.name = strlen(name); + req->name = malloc(req->_len.name + 1); + memcpy(req->name, name, req->_len.name); + req->name[req->_len.name] = 0; } /* diff --git a/home/nipa/nipa_out/959697/ynl/old-code/ovs_flow-user.c b/home/nipa/nipa_out/959697/ynl/new-code/ovs_flow-user.c index d8134550ef9c..3eceae287fbb 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/ovs_flow-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/ovs_flow-user.c @@ -387,12 +387,12 @@ int ovs_flow_ovs_nsh_key_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj->_present.base_len) - ynl_attr_put(nlh, OVS_NSH_KEY_ATTR_BASE, obj->base, obj->_present.base_len); - if (obj->_present.md1_len) - ynl_attr_put(nlh, OVS_NSH_KEY_ATTR_MD1, obj->md1, obj->_present.md1_len); - if (obj->_present.md2_len) - ynl_attr_put(nlh, OVS_NSH_KEY_ATTR_MD2, obj->md2, obj->_present.md2_len); + if (obj->_len.base) + ynl_attr_put(nlh, OVS_NSH_KEY_ATTR_BASE, obj->base, obj->_len.base); + if (obj->_len.md1) + ynl_attr_put(nlh, OVS_NSH_KEY_ATTR_MD1, obj->md1, obj->_len.md1); + if (obj->_len.md2) + ynl_attr_put(nlh, OVS_NSH_KEY_ATTR_MD2, obj->md2, obj->_len.md2); ynl_attr_nest_end(nlh, nest); return 0; @@ -414,7 +414,7 @@ int ovs_flow_ovs_nsh_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.base_len = len; + dst->_len.base = len; dst->base = malloc(len); memcpy(dst->base, ynl_attr_data(attr), len); } else if (type == OVS_NSH_KEY_ATTR_MD1) { @@ -424,7 +424,7 @@ int ovs_flow_ovs_nsh_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.md1_len = len; + dst->_len.md1 = len; dst->md1 = malloc(len); memcpy(dst->md1, ynl_attr_data(attr), len); } else if (type == OVS_NSH_KEY_ATTR_MD2) { @@ -434,7 +434,7 @@ int ovs_flow_ovs_nsh_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.md2_len = len; + dst->_len.md2 = len; dst->md2 = malloc(len); memcpy(dst->md2, ynl_attr_data(attr), len); } @@ -456,8 +456,8 @@ int ovs_flow_userspace_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, nest = ynl_attr_nest_start(nlh, attr_type); if (obj->_present.pid) ynl_attr_put_u32(nlh, OVS_USERSPACE_ATTR_PID, obj->pid); - if (obj->_present.userdata_len) - ynl_attr_put(nlh, OVS_USERSPACE_ATTR_USERDATA, obj->userdata, obj->_present.userdata_len); + if (obj->_len.userdata) + ynl_attr_put(nlh, OVS_USERSPACE_ATTR_USERDATA, obj->userdata, obj->_len.userdata); if (obj->_present.egress_tun_port) ynl_attr_put_u32(nlh, OVS_USERSPACE_ATTR_EGRESS_TUN_PORT, obj->egress_tun_port); if (obj->_present.actions) @@ -488,7 +488,7 @@ int ovs_flow_userspace_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.userdata_len = len; + dst->_len.userdata = len; dst->userdata = malloc(len); memcpy(dst->userdata, ynl_attr_data(attr), len); } else if (type == OVS_USERSPACE_ATTR_EGRESS_TUN_PORT) { @@ -519,8 +519,8 @@ int ovs_flow_psample_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, nest = ynl_attr_nest_start(nlh, attr_type); if (obj->_present.group) ynl_attr_put_u32(nlh, OVS_PSAMPLE_ATTR_GROUP, obj->group); - if (obj->_present.cookie_len) - ynl_attr_put(nlh, OVS_PSAMPLE_ATTR_COOKIE, obj->cookie, obj->_present.cookie_len); + if (obj->_len.cookie) + ynl_attr_put(nlh, OVS_PSAMPLE_ATTR_COOKIE, obj->cookie, obj->_len.cookie); ynl_attr_nest_end(nlh, nest); return 0; @@ -547,7 +547,7 @@ int ovs_flow_psample_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.cookie_len = len; + dst->_len.cookie = len; dst->cookie = malloc(len); memcpy(dst->cookie, ynl_attr_data(attr), len); } @@ -609,10 +609,10 @@ int ovs_flow_nat_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put(nlh, OVS_NAT_ATTR_SRC, NULL, 0); if (obj->_present.dst) ynl_attr_put(nlh, OVS_NAT_ATTR_DST, NULL, 0); - if (obj->_present.ip_min_len) - ynl_attr_put(nlh, OVS_NAT_ATTR_IP_MIN, obj->ip_min, obj->_present.ip_min_len); - if (obj->_present.ip_max_len) - ynl_attr_put(nlh, OVS_NAT_ATTR_IP_MAX, obj->ip_max, obj->_present.ip_max_len); + if (obj->_len.ip_min) + ynl_attr_put(nlh, OVS_NAT_ATTR_IP_MIN, obj->ip_min, obj->_len.ip_min); + if (obj->_len.ip_max) + ynl_attr_put(nlh, OVS_NAT_ATTR_IP_MAX, obj->ip_max, obj->_len.ip_max); if (obj->_present.proto_min) ynl_attr_put_u16(nlh, OVS_NAT_ATTR_PROTO_MIN, obj->proto_min); if (obj->_present.proto_max) @@ -652,7 +652,7 @@ int ovs_flow_nat_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ip_min_len = len; + dst->_len.ip_min = len; dst->ip_min = malloc(len); memcpy(dst->ip_min, ynl_attr_data(attr), len); } else if (type == OVS_NAT_ATTR_IP_MAX) { @@ -662,7 +662,7 @@ int ovs_flow_nat_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ip_max_len = len; + dst->_len.ip_max = len; dst->ip_max = malloc(len); memcpy(dst->ip_max, ynl_attr_data(attr), len); } else if (type == OVS_NAT_ATTR_PROTO_MIN) { @@ -725,22 +725,22 @@ int ovs_flow_tunnel_key_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_CSUM, NULL, 0); if (obj->_present.oam) ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_OAM, NULL, 0); - if (obj->_present.geneve_opts_len) - ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, obj->geneve_opts, obj->_present.geneve_opts_len); + if (obj->_len.geneve_opts) + ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, obj->geneve_opts, obj->_len.geneve_opts); if (obj->_present.tp_src) ynl_attr_put_u16(nlh, OVS_TUNNEL_KEY_ATTR_TP_SRC, obj->tp_src); if (obj->_present.tp_dst) ynl_attr_put_u16(nlh, OVS_TUNNEL_KEY_ATTR_TP_DST, obj->tp_dst); if (obj->_present.vxlan_opts) ovs_flow_vxlan_ext_attrs_put(nlh, OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS, &obj->vxlan_opts); - if (obj->_present.ipv6_src_len) - ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_IPV6_SRC, obj->ipv6_src, obj->_present.ipv6_src_len); - if (obj->_present.ipv6_dst_len) - ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_IPV6_DST, obj->ipv6_dst, obj->_present.ipv6_dst_len); - if (obj->_present.pad_len) - ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_PAD, obj->pad, obj->_present.pad_len); - if (obj->_present.erspan_opts_len) - ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS, obj->erspan_opts, obj->_present.erspan_opts_len); + if (obj->_len.ipv6_src) + ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_IPV6_SRC, obj->ipv6_src, obj->_len.ipv6_src); + if (obj->_len.ipv6_dst) + ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_IPV6_DST, obj->ipv6_dst, obj->_len.ipv6_dst); + if (obj->_len.pad) + ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_PAD, obj->pad, obj->_len.pad); + if (obj->_len.erspan_opts) + ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS, obj->erspan_opts, obj->_len.erspan_opts); if (obj->_present.ipv4_info_bridge) ynl_attr_put(nlh, OVS_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE, NULL, 0); ynl_attr_nest_end(nlh, nest); @@ -804,7 +804,7 @@ int ovs_flow_tunnel_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.geneve_opts_len = len; + dst->_len.geneve_opts = len; dst->geneve_opts = malloc(len); memcpy(dst->geneve_opts, ynl_attr_data(attr), len); } else if (type == OVS_TUNNEL_KEY_ATTR_TP_SRC) { @@ -833,7 +833,7 @@ int ovs_flow_tunnel_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ipv6_src_len = len; + dst->_len.ipv6_src = len; dst->ipv6_src = malloc(len); memcpy(dst->ipv6_src, ynl_attr_data(attr), len); } else if (type == OVS_TUNNEL_KEY_ATTR_IPV6_DST) { @@ -843,7 +843,7 @@ int ovs_flow_tunnel_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ipv6_dst_len = len; + dst->_len.ipv6_dst = len; dst->ipv6_dst = malloc(len); memcpy(dst->ipv6_dst, ynl_attr_data(attr), len); } else if (type == OVS_TUNNEL_KEY_ATTR_PAD) { @@ -853,7 +853,7 @@ int ovs_flow_tunnel_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.pad_len = len; + dst->_len.pad = len; dst->pad = malloc(len); memcpy(dst->pad, ynl_attr_data(attr), len); } else if (type == OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS) { @@ -863,7 +863,7 @@ int ovs_flow_tunnel_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.erspan_opts_len = len; + dst->_len.erspan_opts = len; dst->erspan_opts = malloc(len); memcpy(dst->erspan_opts, ynl_attr_data(attr), len); } else if (type == OVS_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE) { @@ -895,11 +895,11 @@ int ovs_flow_ct_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put(nlh, OVS_CT_ATTR_COMMIT, NULL, 0); if (obj->_present.zone) ynl_attr_put_u16(nlh, OVS_CT_ATTR_ZONE, obj->zone); - if (obj->_present.mark_len) - ynl_attr_put(nlh, OVS_CT_ATTR_MARK, obj->mark, obj->_present.mark_len); - if (obj->_present.labels_len) - ynl_attr_put(nlh, OVS_CT_ATTR_LABELS, obj->labels, obj->_present.labels_len); - if (obj->_present.helper_len) + if (obj->_len.mark) + ynl_attr_put(nlh, OVS_CT_ATTR_MARK, obj->mark, obj->_len.mark); + if (obj->_len.labels) + ynl_attr_put(nlh, OVS_CT_ATTR_LABELS, obj->labels, obj->_len.labels); + if (obj->_len.helper) ynl_attr_put_str(nlh, OVS_CT_ATTR_HELPER, obj->helper); if (obj->_present.nat) ovs_flow_nat_attrs_put(nlh, OVS_CT_ATTR_NAT, &obj->nat); @@ -907,7 +907,7 @@ int ovs_flow_ct_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put(nlh, OVS_CT_ATTR_FORCE_COMMIT, NULL, 0); if (obj->_present.eventmask) ynl_attr_put_u32(nlh, OVS_CT_ATTR_EVENTMASK, obj->eventmask); - if (obj->_present.timeout_len) + if (obj->_len.timeout) ynl_attr_put_str(nlh, OVS_CT_ATTR_TIMEOUT, obj->timeout); ynl_attr_nest_end(nlh, nest); @@ -942,7 +942,7 @@ int ovs_flow_ct_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.mark_len = len; + dst->_len.mark = len; dst->mark = malloc(len); memcpy(dst->mark, ynl_attr_data(attr), len); } else if (type == OVS_CT_ATTR_LABELS) { @@ -952,7 +952,7 @@ int ovs_flow_ct_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.labels_len = len; + dst->_len.labels = len; dst->labels = malloc(len); memcpy(dst->labels, ynl_attr_data(attr), len); } else if (type == OVS_CT_ATTR_HELPER) { @@ -962,7 +962,7 @@ int ovs_flow_ct_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.helper_len = len; + dst->_len.helper = len; dst->helper = malloc(len + 1); memcpy(dst->helper, ynl_attr_get_str(attr), len); dst->helper[len] = 0; @@ -991,7 +991,7 @@ int ovs_flow_ct_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.timeout_len = len; + dst->_len.timeout = len; dst->timeout = malloc(len + 1); memcpy(dst->timeout, ynl_attr_get_str(attr), len); dst->timeout[len] = 0; @@ -1038,64 +1038,64 @@ int ovs_flow_key_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put_u32(nlh, OVS_KEY_ATTR_PRIORITY, obj->priority); if (obj->_present.in_port) ynl_attr_put_u32(nlh, OVS_KEY_ATTR_IN_PORT, obj->in_port); - if (obj->_present.ethernet_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_ETHERNET, obj->ethernet, obj->_present.ethernet_len); + if (obj->_len.ethernet) + ynl_attr_put(nlh, OVS_KEY_ATTR_ETHERNET, obj->ethernet, obj->_len.ethernet); if (obj->_present.vlan) ynl_attr_put_u16(nlh, OVS_KEY_ATTR_VLAN, obj->vlan); if (obj->_present.ethertype) ynl_attr_put_u16(nlh, OVS_KEY_ATTR_ETHERTYPE, obj->ethertype); - if (obj->_present.ipv4_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_IPV4, obj->ipv4, obj->_present.ipv4_len); - if (obj->_present.ipv6_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_IPV6, obj->ipv6, obj->_present.ipv6_len); - if (obj->_present.tcp_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_TCP, obj->tcp, obj->_present.tcp_len); - if (obj->_present.udp_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_UDP, obj->udp, obj->_present.udp_len); - if (obj->_present.icmp_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_ICMP, obj->icmp, obj->_present.icmp_len); - if (obj->_present.icmpv6_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_ICMPV6, obj->icmpv6, obj->_present.icmpv6_len); - if (obj->_present.arp_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_ARP, obj->arp, obj->_present.arp_len); - if (obj->_present.nd_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_ND, obj->nd, obj->_present.nd_len); + if (obj->_len.ipv4) + ynl_attr_put(nlh, OVS_KEY_ATTR_IPV4, obj->ipv4, obj->_len.ipv4); + if (obj->_len.ipv6) + ynl_attr_put(nlh, OVS_KEY_ATTR_IPV6, obj->ipv6, obj->_len.ipv6); + if (obj->_len.tcp) + ynl_attr_put(nlh, OVS_KEY_ATTR_TCP, obj->tcp, obj->_len.tcp); + if (obj->_len.udp) + ynl_attr_put(nlh, OVS_KEY_ATTR_UDP, obj->udp, obj->_len.udp); + if (obj->_len.icmp) + ynl_attr_put(nlh, OVS_KEY_ATTR_ICMP, obj->icmp, obj->_len.icmp); + if (obj->_len.icmpv6) + ynl_attr_put(nlh, OVS_KEY_ATTR_ICMPV6, obj->icmpv6, obj->_len.icmpv6); + if (obj->_len.arp) + ynl_attr_put(nlh, OVS_KEY_ATTR_ARP, obj->arp, obj->_len.arp); + if (obj->_len.nd) + ynl_attr_put(nlh, OVS_KEY_ATTR_ND, obj->nd, obj->_len.nd); if (obj->_present.skb_mark) ynl_attr_put_u32(nlh, OVS_KEY_ATTR_SKB_MARK, obj->skb_mark); if (obj->_present.tunnel) ovs_flow_tunnel_key_attrs_put(nlh, OVS_KEY_ATTR_TUNNEL, &obj->tunnel); - if (obj->_present.sctp_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_SCTP, obj->sctp, obj->_present.sctp_len); + if (obj->_len.sctp) + ynl_attr_put(nlh, OVS_KEY_ATTR_SCTP, obj->sctp, obj->_len.sctp); if (obj->_present.tcp_flags) ynl_attr_put_u16(nlh, OVS_KEY_ATTR_TCP_FLAGS, obj->tcp_flags); if (obj->_present.dp_hash) ynl_attr_put_u32(nlh, OVS_KEY_ATTR_DP_HASH, obj->dp_hash); if (obj->_present.recirc_id) ynl_attr_put_u32(nlh, OVS_KEY_ATTR_RECIRC_ID, obj->recirc_id); - if (obj->_present.mpls_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_MPLS, obj->mpls, obj->_present.mpls_len); + if (obj->_len.mpls) + ynl_attr_put(nlh, OVS_KEY_ATTR_MPLS, obj->mpls, obj->_len.mpls); if (obj->_present.ct_state) ynl_attr_put_u32(nlh, OVS_KEY_ATTR_CT_STATE, obj->ct_state); if (obj->_present.ct_zone) ynl_attr_put_u16(nlh, OVS_KEY_ATTR_CT_ZONE, obj->ct_zone); if (obj->_present.ct_mark) ynl_attr_put_u32(nlh, OVS_KEY_ATTR_CT_MARK, obj->ct_mark); - if (obj->_present.ct_labels_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_CT_LABELS, obj->ct_labels, obj->_present.ct_labels_len); - if (obj->_present.ct_orig_tuple_ipv4_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV4, obj->ct_orig_tuple_ipv4, obj->_present.ct_orig_tuple_ipv4_len); - if (obj->_present.ct_orig_tuple_ipv6_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6, obj->ct_orig_tuple_ipv6, obj->_present.ct_orig_tuple_ipv6_len); + if (obj->_len.ct_labels) + ynl_attr_put(nlh, OVS_KEY_ATTR_CT_LABELS, obj->ct_labels, obj->_len.ct_labels); + if (obj->_len.ct_orig_tuple_ipv4) + ynl_attr_put(nlh, OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV4, obj->ct_orig_tuple_ipv4, obj->_len.ct_orig_tuple_ipv4); + if (obj->_len.ct_orig_tuple_ipv6) + ynl_attr_put(nlh, OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6, obj->ct_orig_tuple_ipv6, obj->_len.ct_orig_tuple_ipv6); if (obj->_present.nsh) ovs_flow_ovs_nsh_key_attrs_put(nlh, OVS_KEY_ATTR_NSH, &obj->nsh); if (obj->_present.packet_type) ynl_attr_put_u32(nlh, OVS_KEY_ATTR_PACKET_TYPE, obj->packet_type); - if (obj->_present.nd_extensions_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_ND_EXTENSIONS, obj->nd_extensions, obj->_present.nd_extensions_len); - if (obj->_present.tunnel_info_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_TUNNEL_INFO, obj->tunnel_info, obj->_present.tunnel_info_len); - if (obj->_present.ipv6_exthdrs_len) - ynl_attr_put(nlh, OVS_KEY_ATTR_IPV6_EXTHDRS, obj->ipv6_exthdrs, obj->_present.ipv6_exthdrs_len); + if (obj->_len.nd_extensions) + ynl_attr_put(nlh, OVS_KEY_ATTR_ND_EXTENSIONS, obj->nd_extensions, obj->_len.nd_extensions); + if (obj->_len.tunnel_info) + ynl_attr_put(nlh, OVS_KEY_ATTR_TUNNEL_INFO, obj->tunnel_info, obj->_len.tunnel_info); + if (obj->_len.ipv6_exthdrs) + ynl_attr_put(nlh, OVS_KEY_ATTR_IPV6_EXTHDRS, obj->ipv6_exthdrs, obj->_len.ipv6_exthdrs); ynl_attr_nest_end(nlh, nest); return 0; @@ -1139,7 +1139,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ethernet_len = len; + dst->_len.ethernet = len; dst->ethernet = malloc(len); memcpy(dst->ethernet, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_VLAN) { @@ -1159,7 +1159,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ipv4_len = len; + dst->_len.ipv4 = len; dst->ipv4 = malloc(len); memcpy(dst->ipv4, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_IPV6) { @@ -1169,7 +1169,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ipv6_len = len; + dst->_len.ipv6 = len; dst->ipv6 = malloc(len); memcpy(dst->ipv6, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_TCP) { @@ -1179,7 +1179,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.tcp_len = len; + dst->_len.tcp = len; dst->tcp = malloc(len); memcpy(dst->tcp, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_UDP) { @@ -1189,7 +1189,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.udp_len = len; + dst->_len.udp = len; dst->udp = malloc(len); memcpy(dst->udp, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_ICMP) { @@ -1199,7 +1199,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.icmp_len = len; + dst->_len.icmp = len; dst->icmp = malloc(len); memcpy(dst->icmp, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_ICMPV6) { @@ -1209,7 +1209,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.icmpv6_len = len; + dst->_len.icmpv6 = len; dst->icmpv6 = malloc(len); memcpy(dst->icmpv6, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_ARP) { @@ -1219,7 +1219,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.arp_len = len; + dst->_len.arp = len; dst->arp = malloc(len); memcpy(dst->arp, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_ND) { @@ -1229,7 +1229,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.nd_len = len; + dst->_len.nd = len; dst->nd = malloc(len); memcpy(dst->nd, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_SKB_MARK) { @@ -1253,7 +1253,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.sctp_len = len; + dst->_len.sctp = len; dst->sctp = malloc(len); memcpy(dst->sctp, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_TCP_FLAGS) { @@ -1278,7 +1278,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.mpls_len = len; + dst->_len.mpls = len; dst->mpls = malloc(len); memcpy(dst->mpls, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_CT_STATE) { @@ -1303,7 +1303,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ct_labels_len = len; + dst->_len.ct_labels = len; dst->ct_labels = malloc(len); memcpy(dst->ct_labels, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV4) { @@ -1313,7 +1313,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ct_orig_tuple_ipv4_len = len; + dst->_len.ct_orig_tuple_ipv4 = len; dst->ct_orig_tuple_ipv4 = malloc(len); memcpy(dst->ct_orig_tuple_ipv4, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6) { @@ -1323,7 +1323,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ct_orig_tuple_ipv6_len = len; + dst->_len.ct_orig_tuple_ipv6 = len; dst->ct_orig_tuple_ipv6 = malloc(len); memcpy(dst->ct_orig_tuple_ipv6, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_NSH) { @@ -1347,7 +1347,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.nd_extensions_len = len; + dst->_len.nd_extensions = len; dst->nd_extensions = malloc(len); memcpy(dst->nd_extensions, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_TUNNEL_INFO) { @@ -1357,7 +1357,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.tunnel_info_len = len; + dst->_len.tunnel_info = len; dst->tunnel_info = malloc(len); memcpy(dst->tunnel_info, ynl_attr_data(attr), len); } else if (type == OVS_KEY_ATTR_IPV6_EXTHDRS) { @@ -1367,7 +1367,7 @@ int ovs_flow_key_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ipv6_exthdrs_len = len; + dst->_len.ipv6_exthdrs = len; dst->ipv6_exthdrs = malloc(len); memcpy(dst->ipv6_exthdrs, ynl_attr_data(attr), len); } @@ -1577,18 +1577,18 @@ int ovs_flow_action_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, ovs_flow_userspace_attrs_put(nlh, OVS_ACTION_ATTR_USERSPACE, &obj->userspace); if (obj->_present.set) ovs_flow_key_attrs_put(nlh, OVS_ACTION_ATTR_SET, obj->set); - if (obj->_present.push_vlan_len) - ynl_attr_put(nlh, OVS_ACTION_ATTR_PUSH_VLAN, obj->push_vlan, obj->_present.push_vlan_len); + if (obj->_len.push_vlan) + ynl_attr_put(nlh, OVS_ACTION_ATTR_PUSH_VLAN, obj->push_vlan, obj->_len.push_vlan); if (obj->_present.pop_vlan) ynl_attr_put(nlh, OVS_ACTION_ATTR_POP_VLAN, NULL, 0); if (obj->_present.sample) ovs_flow_sample_attrs_put(nlh, OVS_ACTION_ATTR_SAMPLE, &obj->sample); if (obj->_present.recirc) ynl_attr_put_u32(nlh, OVS_ACTION_ATTR_RECIRC, obj->recirc); - if (obj->_present.hash_len) - ynl_attr_put(nlh, OVS_ACTION_ATTR_HASH, obj->hash, obj->_present.hash_len); - if (obj->_present.push_mpls_len) - ynl_attr_put(nlh, OVS_ACTION_ATTR_PUSH_MPLS, obj->push_mpls, obj->_present.push_mpls_len); + if (obj->_len.hash) + ynl_attr_put(nlh, OVS_ACTION_ATTR_HASH, obj->hash, obj->_len.hash); + if (obj->_len.push_mpls) + ynl_attr_put(nlh, OVS_ACTION_ATTR_PUSH_MPLS, obj->push_mpls, obj->_len.push_mpls); if (obj->_present.pop_mpls) ynl_attr_put_u16(nlh, OVS_ACTION_ATTR_POP_MPLS, obj->pop_mpls); if (obj->_present.set_masked) @@ -1597,8 +1597,8 @@ int ovs_flow_action_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, ovs_flow_ct_attrs_put(nlh, OVS_ACTION_ATTR_CT, &obj->ct); if (obj->_present.trunc) ynl_attr_put_u32(nlh, OVS_ACTION_ATTR_TRUNC, obj->trunc); - if (obj->_present.push_eth_len) - ynl_attr_put(nlh, OVS_ACTION_ATTR_PUSH_ETH, obj->push_eth, obj->_present.push_eth_len); + if (obj->_len.push_eth) + ynl_attr_put(nlh, OVS_ACTION_ATTR_PUSH_ETH, obj->push_eth, obj->_len.push_eth); if (obj->_present.pop_eth) ynl_attr_put(nlh, OVS_ACTION_ATTR_POP_ETH, NULL, 0); if (obj->_present.ct_clear) @@ -1613,8 +1613,8 @@ int ovs_flow_action_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, ovs_flow_action_attrs_put(nlh, OVS_ACTION_ATTR_CLONE, obj->clone); if (obj->_present.check_pkt_len) ovs_flow_check_pkt_len_attrs_put(nlh, OVS_ACTION_ATTR_CHECK_PKT_LEN, &obj->check_pkt_len); - if (obj->_present.add_mpls_len) - ynl_attr_put(nlh, OVS_ACTION_ATTR_ADD_MPLS, obj->add_mpls, obj->_present.add_mpls_len); + if (obj->_len.add_mpls) + ynl_attr_put(nlh, OVS_ACTION_ATTR_ADD_MPLS, obj->add_mpls, obj->_len.add_mpls); if (obj->_present.dec_ttl) ovs_flow_dec_ttl_attrs_put(nlh, OVS_ACTION_ATTR_DEC_TTL, &obj->dec_ttl); if (obj->_present.psample) @@ -1666,7 +1666,7 @@ int ovs_flow_action_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.push_vlan_len = len; + dst->_len.push_vlan = len; dst->push_vlan = malloc(len); memcpy(dst->push_vlan, ynl_attr_data(attr), len); } else if (type == OVS_ACTION_ATTR_POP_VLAN) { @@ -1694,7 +1694,7 @@ int ovs_flow_action_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.hash_len = len; + dst->_len.hash = len; dst->hash = malloc(len); memcpy(dst->hash, ynl_attr_data(attr), len); } else if (type == OVS_ACTION_ATTR_PUSH_MPLS) { @@ -1704,7 +1704,7 @@ int ovs_flow_action_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.push_mpls_len = len; + dst->_len.push_mpls = len; dst->push_mpls = malloc(len); memcpy(dst->push_mpls, ynl_attr_data(attr), len); } else if (type == OVS_ACTION_ATTR_POP_MPLS) { @@ -1742,7 +1742,7 @@ int ovs_flow_action_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.push_eth_len = len; + dst->_len.push_eth = len; dst->push_eth = malloc(len); memcpy(dst->push_eth, ynl_attr_data(attr), len); } else if (type == OVS_ACTION_ATTR_POP_ETH) { @@ -1796,7 +1796,7 @@ int ovs_flow_action_attrs_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.add_mpls_len = len; + dst->_len.add_mpls = len; dst->add_mpls = malloc(len); memcpy(dst->add_mpls, ynl_attr_data(attr), len); } else if (type == OVS_ACTION_ATTR_DEC_TTL) { @@ -1875,7 +1875,7 @@ int ovs_flow_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.ufid_len = len; + dst->_len.ufid = len; dst->ufid = malloc(len); memcpy(dst->ufid, ynl_attr_data(attr), len); } else if (type == OVS_FLOW_ATTR_MASK) { @@ -1894,7 +1894,7 @@ int ovs_flow_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.stats_len = len; + dst->_len.stats = len; dst->stats = malloc(len); memcpy(dst->stats, ynl_attr_data(attr), len); } else if (type == OVS_FLOW_ATTR_ACTIONS) { @@ -1933,8 +1933,8 @@ ovs_flow_get(struct ynl_sock *ys, struct ovs_flow_get_req *req) if (req->_present.key) ovs_flow_key_attrs_put(nlh, OVS_FLOW_ATTR_KEY, &req->key); - if (req->_present.ufid_len) - ynl_attr_put(nlh, OVS_FLOW_ATTR_UFID, req->ufid, req->_present.ufid_len); + if (req->_len.ufid) + ynl_attr_put(nlh, OVS_FLOW_ATTR_UFID, req->ufid, req->_len.ufid); if (req->_present.ufid_flags) ynl_attr_put_u32(nlh, OVS_FLOW_ATTR_UFID_FLAGS, req->ufid_flags); @@ -2005,8 +2005,8 @@ ovs_flow_get_dump(struct ynl_sock *ys, struct ovs_flow_get_req_dump *req) if (req->_present.key) ovs_flow_key_attrs_put(nlh, OVS_FLOW_ATTR_KEY, &req->key); - if (req->_present.ufid_len) - ynl_attr_put(nlh, OVS_FLOW_ATTR_UFID, req->ufid, req->_present.ufid_len); + if (req->_len.ufid) + ynl_attr_put(nlh, OVS_FLOW_ATTR_UFID, req->ufid, req->_len.ufid); if (req->_present.ufid_flags) ynl_attr_put_u32(nlh, OVS_FLOW_ATTR_UFID_FLAGS, req->ufid_flags); @@ -2050,8 +2050,8 @@ int ovs_flow_new(struct ynl_sock *ys, struct ovs_flow_new_req *req) if (req->_present.key) ovs_flow_key_attrs_put(nlh, OVS_FLOW_ATTR_KEY, &req->key); - if (req->_present.ufid_len) - ynl_attr_put(nlh, OVS_FLOW_ATTR_UFID, req->ufid, req->_present.ufid_len); + if (req->_len.ufid) + ynl_attr_put(nlh, OVS_FLOW_ATTR_UFID, req->ufid, req->_len.ufid); if (req->_present.mask) ovs_flow_key_attrs_put(nlh, OVS_FLOW_ATTR_MASK, &req->mask); if (req->_present.actions) diff --git a/home/nipa/nipa_out/959697/ynl/old-code/ovs_flow-user.h b/home/nipa/nipa_out/959697/ynl/new-code/ovs_flow-user.h index 2111bd8b94c9..bbc6e79ec3c7 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/ovs_flow-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/ovs_flow-user.h @@ -25,10 +25,10 @@ const char *ovs_flow_ct_state_flags_str(int value); /* Common nested types */ struct ovs_flow_ovs_nsh_key_attrs { struct { - __u32 base_len; - __u32 md1_len; - __u32 md2_len; - } _present; + __u32 base; + __u32 md1; + __u32 md2; + } _len; void *base; void *md1; @@ -38,10 +38,12 @@ struct ovs_flow_ovs_nsh_key_attrs { struct ovs_flow_userspace_attrs { struct { __u32 pid:1; - __u32 userdata_len; __u32 egress_tun_port:1; __u32 actions:1; } _present; + struct { + __u32 userdata; + } _len; __u32 pid; void *userdata; @@ -51,8 +53,10 @@ struct ovs_flow_userspace_attrs { struct ovs_flow_psample_attrs { struct { __u32 group:1; - __u32 cookie_len; } _present; + struct { + __u32 cookie; + } _len; __u32 group; void *cookie; @@ -70,14 +74,16 @@ struct ovs_flow_nat_attrs { struct { __u32 src:1; __u32 dst:1; - __u32 ip_min_len; - __u32 ip_max_len; __u32 proto_min:1; __u32 proto_max:1; __u32 persistent:1; __u32 proto_hash:1; __u32 proto_random:1; } _present; + struct { + __u32 ip_min; + __u32 ip_max; + } _len; void *ip_min; void *ip_max; @@ -95,16 +101,18 @@ struct ovs_flow_tunnel_key_attrs { __u32 dont_fragment:1; __u32 csum:1; __u32 oam:1; - __u32 geneve_opts_len; __u32 tp_src:1; __u32 tp_dst:1; __u32 vxlan_opts:1; - __u32 ipv6_src_len; - __u32 ipv6_dst_len; - __u32 pad_len; - __u32 erspan_opts_len; __u32 ipv4_info_bridge:1; } _present; + struct { + __u32 geneve_opts; + __u32 ipv6_src; + __u32 ipv6_dst; + __u32 pad; + __u32 erspan_opts; + } _len; __u64 id /* big-endian */; __u32 ipv4_src /* big-endian */; @@ -125,14 +133,16 @@ struct ovs_flow_ct_attrs { struct { __u32 commit:1; __u32 zone:1; - __u32 mark_len; - __u32 labels_len; - __u32 helper_len; __u32 nat:1; __u32 force_commit:1; __u32 eventmask:1; - __u32 timeout_len; } _present; + struct { + __u32 mark; + __u32 labels; + __u32 helper; + __u32 timeout; + } _len; __u16 zone; void *mark; @@ -148,36 +158,38 @@ struct ovs_flow_key_attrs { __u32 encap:1; __u32 priority:1; __u32 in_port:1; - __u32 ethernet_len; __u32 vlan:1; __u32 ethertype:1; - __u32 ipv4_len; - __u32 ipv6_len; - __u32 tcp_len; - __u32 udp_len; - __u32 icmp_len; - __u32 icmpv6_len; - __u32 arp_len; - __u32 nd_len; __u32 skb_mark:1; __u32 tunnel:1; - __u32 sctp_len; __u32 tcp_flags:1; __u32 dp_hash:1; __u32 recirc_id:1; - __u32 mpls_len; __u32 ct_state:1; __u32 ct_zone:1; __u32 ct_mark:1; - __u32 ct_labels_len; - __u32 ct_orig_tuple_ipv4_len; - __u32 ct_orig_tuple_ipv6_len; __u32 nsh:1; __u32 packet_type:1; - __u32 nd_extensions_len; - __u32 tunnel_info_len; - __u32 ipv6_exthdrs_len; } _present; + struct { + __u32 ethernet; + __u32 ipv4; + __u32 ipv6; + __u32 tcp; + __u32 udp; + __u32 icmp; + __u32 icmpv6; + __u32 arp; + __u32 nd; + __u32 sctp; + __u32 mpls; + __u32 ct_labels; + __u32 ct_orig_tuple_ipv4; + __u32 ct_orig_tuple_ipv6; + __u32 nd_extensions; + __u32 tunnel_info; + __u32 ipv6_exthdrs; + } _len; struct ovs_flow_key_attrs *encap; __u32 priority; @@ -248,17 +260,13 @@ struct ovs_flow_action_attrs { __u32 output:1; __u32 userspace:1; __u32 set:1; - __u32 push_vlan_len; __u32 pop_vlan:1; __u32 sample:1; __u32 recirc:1; - __u32 hash_len; - __u32 push_mpls_len; __u32 pop_mpls:1; __u32 set_masked:1; __u32 ct:1; __u32 trunc:1; - __u32 push_eth_len; __u32 pop_eth:1; __u32 ct_clear:1; __u32 push_nsh:1; @@ -266,10 +274,16 @@ struct ovs_flow_action_attrs { __u32 meter:1; __u32 clone:1; __u32 check_pkt_len:1; - __u32 add_mpls_len; __u32 dec_ttl:1; __u32 psample:1; } _present; + struct { + __u32 push_vlan; + __u32 hash; + __u32 push_mpls; + __u32 push_eth; + __u32 add_mpls; + } _len; __u32 output; struct ovs_flow_userspace_attrs userspace; @@ -300,9 +314,11 @@ struct ovs_flow_get_req { struct { __u32 key:1; - __u32 ufid_len; __u32 ufid_flags:1; } _present; + struct { + __u32 ufid; + } _len; struct ovs_flow_key_attrs key; void *ufid; @@ -335,9 +351,9 @@ ovs_flow_get_req_set_key_ethernet(struct ovs_flow_get_req *req, { req->_present.key = 1; free(req->key.ethernet); - req->key._present.ethernet_len = len; - req->key.ethernet = malloc(req->key._present.ethernet_len); - memcpy(req->key.ethernet, ethernet, req->key._present.ethernet_len); + req->key._len.ethernet = len; + req->key.ethernet = malloc(req->key._len.ethernet); + memcpy(req->key.ethernet, ethernet, req->key._len.ethernet); } static inline void ovs_flow_get_req_set_key_vlan(struct ovs_flow_get_req *req, @@ -361,9 +377,9 @@ ovs_flow_get_req_set_key_ipv4(struct ovs_flow_get_req *req, const void *ipv4, { req->_present.key = 1; free(req->key.ipv4); - req->key._present.ipv4_len = len; - req->key.ipv4 = malloc(req->key._present.ipv4_len); - memcpy(req->key.ipv4, ipv4, req->key._present.ipv4_len); + req->key._len.ipv4 = len; + req->key.ipv4 = malloc(req->key._len.ipv4); + memcpy(req->key.ipv4, ipv4, req->key._len.ipv4); } static inline void ovs_flow_get_req_set_key_ipv6(struct ovs_flow_get_req *req, const void *ipv6, @@ -371,9 +387,9 @@ ovs_flow_get_req_set_key_ipv6(struct ovs_flow_get_req *req, const void *ipv6, { req->_present.key = 1; free(req->key.ipv6); - req->key._present.ipv6_len = len; - req->key.ipv6 = malloc(req->key._present.ipv6_len); - memcpy(req->key.ipv6, ipv6, req->key._present.ipv6_len); + req->key._len.ipv6 = len; + req->key.ipv6 = malloc(req->key._len.ipv6); + memcpy(req->key.ipv6, ipv6, req->key._len.ipv6); } static inline void ovs_flow_get_req_set_key_tcp(struct ovs_flow_get_req *req, const void *tcp, @@ -381,9 +397,9 @@ ovs_flow_get_req_set_key_tcp(struct ovs_flow_get_req *req, const void *tcp, { req->_present.key = 1; free(req->key.tcp); - req->key._present.tcp_len = len; - req->key.tcp = malloc(req->key._present.tcp_len); - memcpy(req->key.tcp, tcp, req->key._present.tcp_len); + req->key._len.tcp = len; + req->key.tcp = malloc(req->key._len.tcp); + memcpy(req->key.tcp, tcp, req->key._len.tcp); } static inline void ovs_flow_get_req_set_key_udp(struct ovs_flow_get_req *req, const void *udp, @@ -391,9 +407,9 @@ ovs_flow_get_req_set_key_udp(struct ovs_flow_get_req *req, const void *udp, { req->_present.key = 1; free(req->key.udp); - req->key._present.udp_len = len; - req->key.udp = malloc(req->key._present.udp_len); - memcpy(req->key.udp, udp, req->key._present.udp_len); + req->key._len.udp = len; + req->key.udp = malloc(req->key._len.udp); + memcpy(req->key.udp, udp, req->key._len.udp); } static inline void ovs_flow_get_req_set_key_icmp(struct ovs_flow_get_req *req, const void *icmp, @@ -401,9 +417,9 @@ ovs_flow_get_req_set_key_icmp(struct ovs_flow_get_req *req, const void *icmp, { req->_present.key = 1; free(req->key.icmp); - req->key._present.icmp_len = len; - req->key.icmp = malloc(req->key._present.icmp_len); - memcpy(req->key.icmp, icmp, req->key._present.icmp_len); + req->key._len.icmp = len; + req->key.icmp = malloc(req->key._len.icmp); + memcpy(req->key.icmp, icmp, req->key._len.icmp); } static inline void ovs_flow_get_req_set_key_icmpv6(struct ovs_flow_get_req *req, @@ -411,9 +427,9 @@ ovs_flow_get_req_set_key_icmpv6(struct ovs_flow_get_req *req, { req->_present.key = 1; free(req->key.icmpv6); - req->key._present.icmpv6_len = len; - req->key.icmpv6 = malloc(req->key._present.icmpv6_len); - memcpy(req->key.icmpv6, icmpv6, req->key._present.icmpv6_len); + req->key._len.icmpv6 = len; + req->key.icmpv6 = malloc(req->key._len.icmpv6); + memcpy(req->key.icmpv6, icmpv6, req->key._len.icmpv6); } static inline void ovs_flow_get_req_set_key_arp(struct ovs_flow_get_req *req, const void *arp, @@ -421,9 +437,9 @@ ovs_flow_get_req_set_key_arp(struct ovs_flow_get_req *req, const void *arp, { req->_present.key = 1; free(req->key.arp); - req->key._present.arp_len = len; - req->key.arp = malloc(req->key._present.arp_len); - memcpy(req->key.arp, arp, req->key._present.arp_len); + req->key._len.arp = len; + req->key.arp = malloc(req->key._len.arp); + memcpy(req->key.arp, arp, req->key._len.arp); } static inline void ovs_flow_get_req_set_key_nd(struct ovs_flow_get_req *req, const void *nd, @@ -431,9 +447,9 @@ ovs_flow_get_req_set_key_nd(struct ovs_flow_get_req *req, const void *nd, { req->_present.key = 1; free(req->key.nd); - req->key._present.nd_len = len; - req->key.nd = malloc(req->key._present.nd_len); - memcpy(req->key.nd, nd, req->key._present.nd_len); + req->key._len.nd = len; + req->key.nd = malloc(req->key._len.nd); + memcpy(req->key.nd, nd, req->key._len.nd); } static inline void ovs_flow_get_req_set_key_skb_mark(struct ovs_flow_get_req *req, __u32 skb_mark) @@ -514,9 +530,9 @@ ovs_flow_get_req_set_key_tunnel_geneve_opts(struct ovs_flow_get_req *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.geneve_opts); - req->key.tunnel._present.geneve_opts_len = len; - req->key.tunnel.geneve_opts = malloc(req->key.tunnel._present.geneve_opts_len); - memcpy(req->key.tunnel.geneve_opts, geneve_opts, req->key.tunnel._present.geneve_opts_len); + req->key.tunnel._len.geneve_opts = len; + req->key.tunnel.geneve_opts = malloc(req->key.tunnel._len.geneve_opts); + memcpy(req->key.tunnel.geneve_opts, geneve_opts, req->key.tunnel._len.geneve_opts); } static inline void ovs_flow_get_req_set_key_tunnel_tp_src(struct ovs_flow_get_req *req, @@ -553,9 +569,9 @@ ovs_flow_get_req_set_key_tunnel_ipv6_src(struct ovs_flow_get_req *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.ipv6_src); - req->key.tunnel._present.ipv6_src_len = len; - req->key.tunnel.ipv6_src = malloc(req->key.tunnel._present.ipv6_src_len); - memcpy(req->key.tunnel.ipv6_src, ipv6_src, req->key.tunnel._present.ipv6_src_len); + req->key.tunnel._len.ipv6_src = len; + req->key.tunnel.ipv6_src = malloc(req->key.tunnel._len.ipv6_src); + memcpy(req->key.tunnel.ipv6_src, ipv6_src, req->key.tunnel._len.ipv6_src); } static inline void ovs_flow_get_req_set_key_tunnel_ipv6_dst(struct ovs_flow_get_req *req, @@ -564,9 +580,9 @@ ovs_flow_get_req_set_key_tunnel_ipv6_dst(struct ovs_flow_get_req *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.ipv6_dst); - req->key.tunnel._present.ipv6_dst_len = len; - req->key.tunnel.ipv6_dst = malloc(req->key.tunnel._present.ipv6_dst_len); - memcpy(req->key.tunnel.ipv6_dst, ipv6_dst, req->key.tunnel._present.ipv6_dst_len); + req->key.tunnel._len.ipv6_dst = len; + req->key.tunnel.ipv6_dst = malloc(req->key.tunnel._len.ipv6_dst); + memcpy(req->key.tunnel.ipv6_dst, ipv6_dst, req->key.tunnel._len.ipv6_dst); } static inline void ovs_flow_get_req_set_key_tunnel_pad(struct ovs_flow_get_req *req, @@ -575,9 +591,9 @@ ovs_flow_get_req_set_key_tunnel_pad(struct ovs_flow_get_req *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.pad); - req->key.tunnel._present.pad_len = len; - req->key.tunnel.pad = malloc(req->key.tunnel._present.pad_len); - memcpy(req->key.tunnel.pad, pad, req->key.tunnel._present.pad_len); + req->key.tunnel._len.pad = len; + req->key.tunnel.pad = malloc(req->key.tunnel._len.pad); + memcpy(req->key.tunnel.pad, pad, req->key.tunnel._len.pad); } static inline void ovs_flow_get_req_set_key_tunnel_erspan_opts(struct ovs_flow_get_req *req, @@ -587,9 +603,9 @@ ovs_flow_get_req_set_key_tunnel_erspan_opts(struct ovs_flow_get_req *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.erspan_opts); - req->key.tunnel._present.erspan_opts_len = len; - req->key.tunnel.erspan_opts = malloc(req->key.tunnel._present.erspan_opts_len); - memcpy(req->key.tunnel.erspan_opts, erspan_opts, req->key.tunnel._present.erspan_opts_len); + req->key.tunnel._len.erspan_opts = len; + req->key.tunnel.erspan_opts = malloc(req->key.tunnel._len.erspan_opts); + memcpy(req->key.tunnel.erspan_opts, erspan_opts, req->key.tunnel._len.erspan_opts); } static inline void ovs_flow_get_req_set_key_tunnel_ipv4_info_bridge(struct ovs_flow_get_req *req) @@ -604,9 +620,9 @@ ovs_flow_get_req_set_key_sctp(struct ovs_flow_get_req *req, const void *sctp, { req->_present.key = 1; free(req->key.sctp); - req->key._present.sctp_len = len; - req->key.sctp = malloc(req->key._present.sctp_len); - memcpy(req->key.sctp, sctp, req->key._present.sctp_len); + req->key._len.sctp = len; + req->key.sctp = malloc(req->key._len.sctp); + memcpy(req->key.sctp, sctp, req->key._len.sctp); } static inline void ovs_flow_get_req_set_key_tcp_flags(struct ovs_flow_get_req *req, @@ -637,9 +653,9 @@ ovs_flow_get_req_set_key_mpls(struct ovs_flow_get_req *req, const void *mpls, { req->_present.key = 1; free(req->key.mpls); - req->key._present.mpls_len = len; - req->key.mpls = malloc(req->key._present.mpls_len); - memcpy(req->key.mpls, mpls, req->key._present.mpls_len); + req->key._len.mpls = len; + req->key.mpls = malloc(req->key._len.mpls); + memcpy(req->key.mpls, mpls, req->key._len.mpls); } static inline void ovs_flow_get_req_set_key_ct_state(struct ovs_flow_get_req *req, __u32 ct_state) @@ -668,9 +684,9 @@ ovs_flow_get_req_set_key_ct_labels(struct ovs_flow_get_req *req, { req->_present.key = 1; free(req->key.ct_labels); - req->key._present.ct_labels_len = len; - req->key.ct_labels = malloc(req->key._present.ct_labels_len); - memcpy(req->key.ct_labels, ct_labels, req->key._present.ct_labels_len); + req->key._len.ct_labels = len; + req->key.ct_labels = malloc(req->key._len.ct_labels); + memcpy(req->key.ct_labels, ct_labels, req->key._len.ct_labels); } static inline void ovs_flow_get_req_set_key_ct_orig_tuple_ipv4(struct ovs_flow_get_req *req, @@ -679,9 +695,9 @@ ovs_flow_get_req_set_key_ct_orig_tuple_ipv4(struct ovs_flow_get_req *req, { req->_present.key = 1; free(req->key.ct_orig_tuple_ipv4); - req->key._present.ct_orig_tuple_ipv4_len = len; - req->key.ct_orig_tuple_ipv4 = malloc(req->key._present.ct_orig_tuple_ipv4_len); - memcpy(req->key.ct_orig_tuple_ipv4, ct_orig_tuple_ipv4, req->key._present.ct_orig_tuple_ipv4_len); + req->key._len.ct_orig_tuple_ipv4 = len; + req->key.ct_orig_tuple_ipv4 = malloc(req->key._len.ct_orig_tuple_ipv4); + memcpy(req->key.ct_orig_tuple_ipv4, ct_orig_tuple_ipv4, req->key._len.ct_orig_tuple_ipv4); } static inline void ovs_flow_get_req_set_key_ct_orig_tuple_ipv6(struct ovs_flow_get_req *req, @@ -690,9 +706,9 @@ ovs_flow_get_req_set_key_ct_orig_tuple_ipv6(struct ovs_flow_get_req *req, { req->_present.key = 1; free(req->key.ct_orig_tuple_ipv6); - req->key._present.ct_orig_tuple_ipv6_len = len; - req->key.ct_orig_tuple_ipv6 = malloc(req->key._present.ct_orig_tuple_ipv6_len); - memcpy(req->key.ct_orig_tuple_ipv6, ct_orig_tuple_ipv6, req->key._present.ct_orig_tuple_ipv6_len); + req->key._len.ct_orig_tuple_ipv6 = len; + req->key.ct_orig_tuple_ipv6 = malloc(req->key._len.ct_orig_tuple_ipv6); + memcpy(req->key.ct_orig_tuple_ipv6, ct_orig_tuple_ipv6, req->key._len.ct_orig_tuple_ipv6); } static inline void ovs_flow_get_req_set_key_nsh_base(struct ovs_flow_get_req *req, @@ -701,9 +717,9 @@ ovs_flow_get_req_set_key_nsh_base(struct ovs_flow_get_req *req, req->_present.key = 1; req->key._present.nsh = 1; free(req->key.nsh.base); - req->key.nsh._present.base_len = len; - req->key.nsh.base = malloc(req->key.nsh._present.base_len); - memcpy(req->key.nsh.base, base, req->key.nsh._present.base_len); + req->key.nsh._len.base = len; + req->key.nsh.base = malloc(req->key.nsh._len.base); + memcpy(req->key.nsh.base, base, req->key.nsh._len.base); } static inline void ovs_flow_get_req_set_key_nsh_md1(struct ovs_flow_get_req *req, const void *md1, @@ -712,9 +728,9 @@ ovs_flow_get_req_set_key_nsh_md1(struct ovs_flow_get_req *req, const void *md1, req->_present.key = 1; req->key._present.nsh = 1; free(req->key.nsh.md1); - req->key.nsh._present.md1_len = len; - req->key.nsh.md1 = malloc(req->key.nsh._present.md1_len); - memcpy(req->key.nsh.md1, md1, req->key.nsh._present.md1_len); + req->key.nsh._len.md1 = len; + req->key.nsh.md1 = malloc(req->key.nsh._len.md1); + memcpy(req->key.nsh.md1, md1, req->key.nsh._len.md1); } static inline void ovs_flow_get_req_set_key_nsh_md2(struct ovs_flow_get_req *req, const void *md2, @@ -723,9 +739,9 @@ ovs_flow_get_req_set_key_nsh_md2(struct ovs_flow_get_req *req, const void *md2, req->_present.key = 1; req->key._present.nsh = 1; free(req->key.nsh.md2); - req->key.nsh._present.md2_len = len; - req->key.nsh.md2 = malloc(req->key.nsh._present.md2_len); - memcpy(req->key.nsh.md2, md2, req->key.nsh._present.md2_len); + req->key.nsh._len.md2 = len; + req->key.nsh.md2 = malloc(req->key.nsh._len.md2); + memcpy(req->key.nsh.md2, md2, req->key.nsh._len.md2); } static inline void ovs_flow_get_req_set_key_packet_type(struct ovs_flow_get_req *req, @@ -741,9 +757,9 @@ ovs_flow_get_req_set_key_nd_extensions(struct ovs_flow_get_req *req, { req->_present.key = 1; free(req->key.nd_extensions); - req->key._present.nd_extensions_len = len; - req->key.nd_extensions = malloc(req->key._present.nd_extensions_len); - memcpy(req->key.nd_extensions, nd_extensions, req->key._present.nd_extensions_len); + req->key._len.nd_extensions = len; + req->key.nd_extensions = malloc(req->key._len.nd_extensions); + memcpy(req->key.nd_extensions, nd_extensions, req->key._len.nd_extensions); } static inline void ovs_flow_get_req_set_key_tunnel_info(struct ovs_flow_get_req *req, @@ -751,9 +767,9 @@ ovs_flow_get_req_set_key_tunnel_info(struct ovs_flow_get_req *req, { req->_present.key = 1; free(req->key.tunnel_info); - req->key._present.tunnel_info_len = len; - req->key.tunnel_info = malloc(req->key._present.tunnel_info_len); - memcpy(req->key.tunnel_info, tunnel_info, req->key._present.tunnel_info_len); + req->key._len.tunnel_info = len; + req->key.tunnel_info = malloc(req->key._len.tunnel_info); + memcpy(req->key.tunnel_info, tunnel_info, req->key._len.tunnel_info); } static inline void ovs_flow_get_req_set_key_ipv6_exthdrs(struct ovs_flow_get_req *req, @@ -761,18 +777,18 @@ ovs_flow_get_req_set_key_ipv6_exthdrs(struct ovs_flow_get_req *req, { req->_present.key = 1; free(req->key.ipv6_exthdrs); - req->key._present.ipv6_exthdrs_len = len; - req->key.ipv6_exthdrs = malloc(req->key._present.ipv6_exthdrs_len); - memcpy(req->key.ipv6_exthdrs, ipv6_exthdrs, req->key._present.ipv6_exthdrs_len); + req->key._len.ipv6_exthdrs = len; + req->key.ipv6_exthdrs = malloc(req->key._len.ipv6_exthdrs); + memcpy(req->key.ipv6_exthdrs, ipv6_exthdrs, req->key._len.ipv6_exthdrs); } static inline void ovs_flow_get_req_set_ufid(struct ovs_flow_get_req *req, const void *ufid, size_t len) { free(req->ufid); - req->_present.ufid_len = len; - req->ufid = malloc(req->_present.ufid_len); - memcpy(req->ufid, ufid, req->_present.ufid_len); + req->_len.ufid = len; + req->ufid = malloc(req->_len.ufid); + memcpy(req->ufid, ufid, req->_len.ufid); } static inline void ovs_flow_get_req_set_ufid_flags(struct ovs_flow_get_req *req, __u32 ufid_flags) @@ -786,11 +802,13 @@ struct ovs_flow_get_rsp { struct { __u32 key:1; - __u32 ufid_len; __u32 mask:1; - __u32 stats_len; __u32 actions:1; } _present; + struct { + __u32 ufid; + __u32 stats; + } _len; struct ovs_flow_key_attrs key; void *ufid; @@ -813,9 +831,11 @@ struct ovs_flow_get_req_dump { struct { __u32 key:1; - __u32 ufid_len; __u32 ufid_flags:1; } _present; + struct { + __u32 ufid; + } _len; struct ovs_flow_key_attrs key; void *ufid; @@ -850,9 +870,9 @@ ovs_flow_get_req_dump_set_key_ethernet(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.ethernet); - req->key._present.ethernet_len = len; - req->key.ethernet = malloc(req->key._present.ethernet_len); - memcpy(req->key.ethernet, ethernet, req->key._present.ethernet_len); + req->key._len.ethernet = len; + req->key.ethernet = malloc(req->key._len.ethernet); + memcpy(req->key.ethernet, ethernet, req->key._len.ethernet); } static inline void ovs_flow_get_req_dump_set_key_vlan(struct ovs_flow_get_req_dump *req, @@ -876,9 +896,9 @@ ovs_flow_get_req_dump_set_key_ipv4(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.ipv4); - req->key._present.ipv4_len = len; - req->key.ipv4 = malloc(req->key._present.ipv4_len); - memcpy(req->key.ipv4, ipv4, req->key._present.ipv4_len); + req->key._len.ipv4 = len; + req->key.ipv4 = malloc(req->key._len.ipv4); + memcpy(req->key.ipv4, ipv4, req->key._len.ipv4); } static inline void ovs_flow_get_req_dump_set_key_ipv6(struct ovs_flow_get_req_dump *req, @@ -886,9 +906,9 @@ ovs_flow_get_req_dump_set_key_ipv6(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.ipv6); - req->key._present.ipv6_len = len; - req->key.ipv6 = malloc(req->key._present.ipv6_len); - memcpy(req->key.ipv6, ipv6, req->key._present.ipv6_len); + req->key._len.ipv6 = len; + req->key.ipv6 = malloc(req->key._len.ipv6); + memcpy(req->key.ipv6, ipv6, req->key._len.ipv6); } static inline void ovs_flow_get_req_dump_set_key_tcp(struct ovs_flow_get_req_dump *req, @@ -896,9 +916,9 @@ ovs_flow_get_req_dump_set_key_tcp(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.tcp); - req->key._present.tcp_len = len; - req->key.tcp = malloc(req->key._present.tcp_len); - memcpy(req->key.tcp, tcp, req->key._present.tcp_len); + req->key._len.tcp = len; + req->key.tcp = malloc(req->key._len.tcp); + memcpy(req->key.tcp, tcp, req->key._len.tcp); } static inline void ovs_flow_get_req_dump_set_key_udp(struct ovs_flow_get_req_dump *req, @@ -906,9 +926,9 @@ ovs_flow_get_req_dump_set_key_udp(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.udp); - req->key._present.udp_len = len; - req->key.udp = malloc(req->key._present.udp_len); - memcpy(req->key.udp, udp, req->key._present.udp_len); + req->key._len.udp = len; + req->key.udp = malloc(req->key._len.udp); + memcpy(req->key.udp, udp, req->key._len.udp); } static inline void ovs_flow_get_req_dump_set_key_icmp(struct ovs_flow_get_req_dump *req, @@ -916,9 +936,9 @@ ovs_flow_get_req_dump_set_key_icmp(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.icmp); - req->key._present.icmp_len = len; - req->key.icmp = malloc(req->key._present.icmp_len); - memcpy(req->key.icmp, icmp, req->key._present.icmp_len); + req->key._len.icmp = len; + req->key.icmp = malloc(req->key._len.icmp); + memcpy(req->key.icmp, icmp, req->key._len.icmp); } static inline void ovs_flow_get_req_dump_set_key_icmpv6(struct ovs_flow_get_req_dump *req, @@ -926,9 +946,9 @@ ovs_flow_get_req_dump_set_key_icmpv6(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.icmpv6); - req->key._present.icmpv6_len = len; - req->key.icmpv6 = malloc(req->key._present.icmpv6_len); - memcpy(req->key.icmpv6, icmpv6, req->key._present.icmpv6_len); + req->key._len.icmpv6 = len; + req->key.icmpv6 = malloc(req->key._len.icmpv6); + memcpy(req->key.icmpv6, icmpv6, req->key._len.icmpv6); } static inline void ovs_flow_get_req_dump_set_key_arp(struct ovs_flow_get_req_dump *req, @@ -936,9 +956,9 @@ ovs_flow_get_req_dump_set_key_arp(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.arp); - req->key._present.arp_len = len; - req->key.arp = malloc(req->key._present.arp_len); - memcpy(req->key.arp, arp, req->key._present.arp_len); + req->key._len.arp = len; + req->key.arp = malloc(req->key._len.arp); + memcpy(req->key.arp, arp, req->key._len.arp); } static inline void ovs_flow_get_req_dump_set_key_nd(struct ovs_flow_get_req_dump *req, @@ -946,9 +966,9 @@ ovs_flow_get_req_dump_set_key_nd(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.nd); - req->key._present.nd_len = len; - req->key.nd = malloc(req->key._present.nd_len); - memcpy(req->key.nd, nd, req->key._present.nd_len); + req->key._len.nd = len; + req->key.nd = malloc(req->key._len.nd); + memcpy(req->key.nd, nd, req->key._len.nd); } static inline void ovs_flow_get_req_dump_set_key_skb_mark(struct ovs_flow_get_req_dump *req, @@ -1032,9 +1052,9 @@ ovs_flow_get_req_dump_set_key_tunnel_geneve_opts(struct ovs_flow_get_req_dump *r req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.geneve_opts); - req->key.tunnel._present.geneve_opts_len = len; - req->key.tunnel.geneve_opts = malloc(req->key.tunnel._present.geneve_opts_len); - memcpy(req->key.tunnel.geneve_opts, geneve_opts, req->key.tunnel._present.geneve_opts_len); + req->key.tunnel._len.geneve_opts = len; + req->key.tunnel.geneve_opts = malloc(req->key.tunnel._len.geneve_opts); + memcpy(req->key.tunnel.geneve_opts, geneve_opts, req->key.tunnel._len.geneve_opts); } static inline void ovs_flow_get_req_dump_set_key_tunnel_tp_src(struct ovs_flow_get_req_dump *req, @@ -1071,9 +1091,9 @@ ovs_flow_get_req_dump_set_key_tunnel_ipv6_src(struct ovs_flow_get_req_dump *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.ipv6_src); - req->key.tunnel._present.ipv6_src_len = len; - req->key.tunnel.ipv6_src = malloc(req->key.tunnel._present.ipv6_src_len); - memcpy(req->key.tunnel.ipv6_src, ipv6_src, req->key.tunnel._present.ipv6_src_len); + req->key.tunnel._len.ipv6_src = len; + req->key.tunnel.ipv6_src = malloc(req->key.tunnel._len.ipv6_src); + memcpy(req->key.tunnel.ipv6_src, ipv6_src, req->key.tunnel._len.ipv6_src); } static inline void ovs_flow_get_req_dump_set_key_tunnel_ipv6_dst(struct ovs_flow_get_req_dump *req, @@ -1082,9 +1102,9 @@ ovs_flow_get_req_dump_set_key_tunnel_ipv6_dst(struct ovs_flow_get_req_dump *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.ipv6_dst); - req->key.tunnel._present.ipv6_dst_len = len; - req->key.tunnel.ipv6_dst = malloc(req->key.tunnel._present.ipv6_dst_len); - memcpy(req->key.tunnel.ipv6_dst, ipv6_dst, req->key.tunnel._present.ipv6_dst_len); + req->key.tunnel._len.ipv6_dst = len; + req->key.tunnel.ipv6_dst = malloc(req->key.tunnel._len.ipv6_dst); + memcpy(req->key.tunnel.ipv6_dst, ipv6_dst, req->key.tunnel._len.ipv6_dst); } static inline void ovs_flow_get_req_dump_set_key_tunnel_pad(struct ovs_flow_get_req_dump *req, @@ -1093,9 +1113,9 @@ ovs_flow_get_req_dump_set_key_tunnel_pad(struct ovs_flow_get_req_dump *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.pad); - req->key.tunnel._present.pad_len = len; - req->key.tunnel.pad = malloc(req->key.tunnel._present.pad_len); - memcpy(req->key.tunnel.pad, pad, req->key.tunnel._present.pad_len); + req->key.tunnel._len.pad = len; + req->key.tunnel.pad = malloc(req->key.tunnel._len.pad); + memcpy(req->key.tunnel.pad, pad, req->key.tunnel._len.pad); } static inline void ovs_flow_get_req_dump_set_key_tunnel_erspan_opts(struct ovs_flow_get_req_dump *req, @@ -1105,9 +1125,9 @@ ovs_flow_get_req_dump_set_key_tunnel_erspan_opts(struct ovs_flow_get_req_dump *r req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.erspan_opts); - req->key.tunnel._present.erspan_opts_len = len; - req->key.tunnel.erspan_opts = malloc(req->key.tunnel._present.erspan_opts_len); - memcpy(req->key.tunnel.erspan_opts, erspan_opts, req->key.tunnel._present.erspan_opts_len); + req->key.tunnel._len.erspan_opts = len; + req->key.tunnel.erspan_opts = malloc(req->key.tunnel._len.erspan_opts); + memcpy(req->key.tunnel.erspan_opts, erspan_opts, req->key.tunnel._len.erspan_opts); } static inline void ovs_flow_get_req_dump_set_key_tunnel_ipv4_info_bridge(struct ovs_flow_get_req_dump *req) @@ -1122,9 +1142,9 @@ ovs_flow_get_req_dump_set_key_sctp(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.sctp); - req->key._present.sctp_len = len; - req->key.sctp = malloc(req->key._present.sctp_len); - memcpy(req->key.sctp, sctp, req->key._present.sctp_len); + req->key._len.sctp = len; + req->key.sctp = malloc(req->key._len.sctp); + memcpy(req->key.sctp, sctp, req->key._len.sctp); } static inline void ovs_flow_get_req_dump_set_key_tcp_flags(struct ovs_flow_get_req_dump *req, @@ -1156,9 +1176,9 @@ ovs_flow_get_req_dump_set_key_mpls(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.mpls); - req->key._present.mpls_len = len; - req->key.mpls = malloc(req->key._present.mpls_len); - memcpy(req->key.mpls, mpls, req->key._present.mpls_len); + req->key._len.mpls = len; + req->key.mpls = malloc(req->key._len.mpls); + memcpy(req->key.mpls, mpls, req->key._len.mpls); } static inline void ovs_flow_get_req_dump_set_key_ct_state(struct ovs_flow_get_req_dump *req, @@ -1190,9 +1210,9 @@ ovs_flow_get_req_dump_set_key_ct_labels(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.ct_labels); - req->key._present.ct_labels_len = len; - req->key.ct_labels = malloc(req->key._present.ct_labels_len); - memcpy(req->key.ct_labels, ct_labels, req->key._present.ct_labels_len); + req->key._len.ct_labels = len; + req->key.ct_labels = malloc(req->key._len.ct_labels); + memcpy(req->key.ct_labels, ct_labels, req->key._len.ct_labels); } static inline void ovs_flow_get_req_dump_set_key_ct_orig_tuple_ipv4(struct ovs_flow_get_req_dump *req, @@ -1201,9 +1221,9 @@ ovs_flow_get_req_dump_set_key_ct_orig_tuple_ipv4(struct ovs_flow_get_req_dump *r { req->_present.key = 1; free(req->key.ct_orig_tuple_ipv4); - req->key._present.ct_orig_tuple_ipv4_len = len; - req->key.ct_orig_tuple_ipv4 = malloc(req->key._present.ct_orig_tuple_ipv4_len); - memcpy(req->key.ct_orig_tuple_ipv4, ct_orig_tuple_ipv4, req->key._present.ct_orig_tuple_ipv4_len); + req->key._len.ct_orig_tuple_ipv4 = len; + req->key.ct_orig_tuple_ipv4 = malloc(req->key._len.ct_orig_tuple_ipv4); + memcpy(req->key.ct_orig_tuple_ipv4, ct_orig_tuple_ipv4, req->key._len.ct_orig_tuple_ipv4); } static inline void ovs_flow_get_req_dump_set_key_ct_orig_tuple_ipv6(struct ovs_flow_get_req_dump *req, @@ -1212,9 +1232,9 @@ ovs_flow_get_req_dump_set_key_ct_orig_tuple_ipv6(struct ovs_flow_get_req_dump *r { req->_present.key = 1; free(req->key.ct_orig_tuple_ipv6); - req->key._present.ct_orig_tuple_ipv6_len = len; - req->key.ct_orig_tuple_ipv6 = malloc(req->key._present.ct_orig_tuple_ipv6_len); - memcpy(req->key.ct_orig_tuple_ipv6, ct_orig_tuple_ipv6, req->key._present.ct_orig_tuple_ipv6_len); + req->key._len.ct_orig_tuple_ipv6 = len; + req->key.ct_orig_tuple_ipv6 = malloc(req->key._len.ct_orig_tuple_ipv6); + memcpy(req->key.ct_orig_tuple_ipv6, ct_orig_tuple_ipv6, req->key._len.ct_orig_tuple_ipv6); } static inline void ovs_flow_get_req_dump_set_key_nsh_base(struct ovs_flow_get_req_dump *req, @@ -1223,9 +1243,9 @@ ovs_flow_get_req_dump_set_key_nsh_base(struct ovs_flow_get_req_dump *req, req->_present.key = 1; req->key._present.nsh = 1; free(req->key.nsh.base); - req->key.nsh._present.base_len = len; - req->key.nsh.base = malloc(req->key.nsh._present.base_len); - memcpy(req->key.nsh.base, base, req->key.nsh._present.base_len); + req->key.nsh._len.base = len; + req->key.nsh.base = malloc(req->key.nsh._len.base); + memcpy(req->key.nsh.base, base, req->key.nsh._len.base); } static inline void ovs_flow_get_req_dump_set_key_nsh_md1(struct ovs_flow_get_req_dump *req, @@ -1234,9 +1254,9 @@ ovs_flow_get_req_dump_set_key_nsh_md1(struct ovs_flow_get_req_dump *req, req->_present.key = 1; req->key._present.nsh = 1; free(req->key.nsh.md1); - req->key.nsh._present.md1_len = len; - req->key.nsh.md1 = malloc(req->key.nsh._present.md1_len); - memcpy(req->key.nsh.md1, md1, req->key.nsh._present.md1_len); + req->key.nsh._len.md1 = len; + req->key.nsh.md1 = malloc(req->key.nsh._len.md1); + memcpy(req->key.nsh.md1, md1, req->key.nsh._len.md1); } static inline void ovs_flow_get_req_dump_set_key_nsh_md2(struct ovs_flow_get_req_dump *req, @@ -1245,9 +1265,9 @@ ovs_flow_get_req_dump_set_key_nsh_md2(struct ovs_flow_get_req_dump *req, req->_present.key = 1; req->key._present.nsh = 1; free(req->key.nsh.md2); - req->key.nsh._present.md2_len = len; - req->key.nsh.md2 = malloc(req->key.nsh._present.md2_len); - memcpy(req->key.nsh.md2, md2, req->key.nsh._present.md2_len); + req->key.nsh._len.md2 = len; + req->key.nsh.md2 = malloc(req->key.nsh._len.md2); + memcpy(req->key.nsh.md2, md2, req->key.nsh._len.md2); } static inline void ovs_flow_get_req_dump_set_key_packet_type(struct ovs_flow_get_req_dump *req, @@ -1264,9 +1284,9 @@ ovs_flow_get_req_dump_set_key_nd_extensions(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.nd_extensions); - req->key._present.nd_extensions_len = len; - req->key.nd_extensions = malloc(req->key._present.nd_extensions_len); - memcpy(req->key.nd_extensions, nd_extensions, req->key._present.nd_extensions_len); + req->key._len.nd_extensions = len; + req->key.nd_extensions = malloc(req->key._len.nd_extensions); + memcpy(req->key.nd_extensions, nd_extensions, req->key._len.nd_extensions); } static inline void ovs_flow_get_req_dump_set_key_tunnel_info(struct ovs_flow_get_req_dump *req, @@ -1274,9 +1294,9 @@ ovs_flow_get_req_dump_set_key_tunnel_info(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.tunnel_info); - req->key._present.tunnel_info_len = len; - req->key.tunnel_info = malloc(req->key._present.tunnel_info_len); - memcpy(req->key.tunnel_info, tunnel_info, req->key._present.tunnel_info_len); + req->key._len.tunnel_info = len; + req->key.tunnel_info = malloc(req->key._len.tunnel_info); + memcpy(req->key.tunnel_info, tunnel_info, req->key._len.tunnel_info); } static inline void ovs_flow_get_req_dump_set_key_ipv6_exthdrs(struct ovs_flow_get_req_dump *req, @@ -1285,18 +1305,18 @@ ovs_flow_get_req_dump_set_key_ipv6_exthdrs(struct ovs_flow_get_req_dump *req, { req->_present.key = 1; free(req->key.ipv6_exthdrs); - req->key._present.ipv6_exthdrs_len = len; - req->key.ipv6_exthdrs = malloc(req->key._present.ipv6_exthdrs_len); - memcpy(req->key.ipv6_exthdrs, ipv6_exthdrs, req->key._present.ipv6_exthdrs_len); + req->key._len.ipv6_exthdrs = len; + req->key.ipv6_exthdrs = malloc(req->key._len.ipv6_exthdrs); + memcpy(req->key.ipv6_exthdrs, ipv6_exthdrs, req->key._len.ipv6_exthdrs); } static inline void ovs_flow_get_req_dump_set_ufid(struct ovs_flow_get_req_dump *req, const void *ufid, size_t len) { free(req->ufid); - req->_present.ufid_len = len; - req->ufid = malloc(req->_present.ufid_len); - memcpy(req->ufid, ufid, req->_present.ufid_len); + req->_len.ufid = len; + req->ufid = malloc(req->_len.ufid); + memcpy(req->ufid, ufid, req->_len.ufid); } static inline void ovs_flow_get_req_dump_set_ufid_flags(struct ovs_flow_get_req_dump *req, @@ -1323,10 +1343,12 @@ struct ovs_flow_new_req { struct { __u32 key:1; - __u32 ufid_len; __u32 mask:1; __u32 actions:1; } _present; + struct { + __u32 ufid; + } _len; struct ovs_flow_key_attrs key; void *ufid; @@ -1360,9 +1382,9 @@ ovs_flow_new_req_set_key_ethernet(struct ovs_flow_new_req *req, { req->_present.key = 1; free(req->key.ethernet); - req->key._present.ethernet_len = len; - req->key.ethernet = malloc(req->key._present.ethernet_len); - memcpy(req->key.ethernet, ethernet, req->key._present.ethernet_len); + req->key._len.ethernet = len; + req->key.ethernet = malloc(req->key._len.ethernet); + memcpy(req->key.ethernet, ethernet, req->key._len.ethernet); } static inline void ovs_flow_new_req_set_key_vlan(struct ovs_flow_new_req *req, @@ -1386,9 +1408,9 @@ ovs_flow_new_req_set_key_ipv4(struct ovs_flow_new_req *req, const void *ipv4, { req->_present.key = 1; free(req->key.ipv4); - req->key._present.ipv4_len = len; - req->key.ipv4 = malloc(req->key._present.ipv4_len); - memcpy(req->key.ipv4, ipv4, req->key._present.ipv4_len); + req->key._len.ipv4 = len; + req->key.ipv4 = malloc(req->key._len.ipv4); + memcpy(req->key.ipv4, ipv4, req->key._len.ipv4); } static inline void ovs_flow_new_req_set_key_ipv6(struct ovs_flow_new_req *req, const void *ipv6, @@ -1396,9 +1418,9 @@ ovs_flow_new_req_set_key_ipv6(struct ovs_flow_new_req *req, const void *ipv6, { req->_present.key = 1; free(req->key.ipv6); - req->key._present.ipv6_len = len; - req->key.ipv6 = malloc(req->key._present.ipv6_len); - memcpy(req->key.ipv6, ipv6, req->key._present.ipv6_len); + req->key._len.ipv6 = len; + req->key.ipv6 = malloc(req->key._len.ipv6); + memcpy(req->key.ipv6, ipv6, req->key._len.ipv6); } static inline void ovs_flow_new_req_set_key_tcp(struct ovs_flow_new_req *req, const void *tcp, @@ -1406,9 +1428,9 @@ ovs_flow_new_req_set_key_tcp(struct ovs_flow_new_req *req, const void *tcp, { req->_present.key = 1; free(req->key.tcp); - req->key._present.tcp_len = len; - req->key.tcp = malloc(req->key._present.tcp_len); - memcpy(req->key.tcp, tcp, req->key._present.tcp_len); + req->key._len.tcp = len; + req->key.tcp = malloc(req->key._len.tcp); + memcpy(req->key.tcp, tcp, req->key._len.tcp); } static inline void ovs_flow_new_req_set_key_udp(struct ovs_flow_new_req *req, const void *udp, @@ -1416,9 +1438,9 @@ ovs_flow_new_req_set_key_udp(struct ovs_flow_new_req *req, const void *udp, { req->_present.key = 1; free(req->key.udp); - req->key._present.udp_len = len; - req->key.udp = malloc(req->key._present.udp_len); - memcpy(req->key.udp, udp, req->key._present.udp_len); + req->key._len.udp = len; + req->key.udp = malloc(req->key._len.udp); + memcpy(req->key.udp, udp, req->key._len.udp); } static inline void ovs_flow_new_req_set_key_icmp(struct ovs_flow_new_req *req, const void *icmp, @@ -1426,9 +1448,9 @@ ovs_flow_new_req_set_key_icmp(struct ovs_flow_new_req *req, const void *icmp, { req->_present.key = 1; free(req->key.icmp); - req->key._present.icmp_len = len; - req->key.icmp = malloc(req->key._present.icmp_len); - memcpy(req->key.icmp, icmp, req->key._present.icmp_len); + req->key._len.icmp = len; + req->key.icmp = malloc(req->key._len.icmp); + memcpy(req->key.icmp, icmp, req->key._len.icmp); } static inline void ovs_flow_new_req_set_key_icmpv6(struct ovs_flow_new_req *req, @@ -1436,9 +1458,9 @@ ovs_flow_new_req_set_key_icmpv6(struct ovs_flow_new_req *req, { req->_present.key = 1; free(req->key.icmpv6); - req->key._present.icmpv6_len = len; - req->key.icmpv6 = malloc(req->key._present.icmpv6_len); - memcpy(req->key.icmpv6, icmpv6, req->key._present.icmpv6_len); + req->key._len.icmpv6 = len; + req->key.icmpv6 = malloc(req->key._len.icmpv6); + memcpy(req->key.icmpv6, icmpv6, req->key._len.icmpv6); } static inline void ovs_flow_new_req_set_key_arp(struct ovs_flow_new_req *req, const void *arp, @@ -1446,9 +1468,9 @@ ovs_flow_new_req_set_key_arp(struct ovs_flow_new_req *req, const void *arp, { req->_present.key = 1; free(req->key.arp); - req->key._present.arp_len = len; - req->key.arp = malloc(req->key._present.arp_len); - memcpy(req->key.arp, arp, req->key._present.arp_len); + req->key._len.arp = len; + req->key.arp = malloc(req->key._len.arp); + memcpy(req->key.arp, arp, req->key._len.arp); } static inline void ovs_flow_new_req_set_key_nd(struct ovs_flow_new_req *req, const void *nd, @@ -1456,9 +1478,9 @@ ovs_flow_new_req_set_key_nd(struct ovs_flow_new_req *req, const void *nd, { req->_present.key = 1; free(req->key.nd); - req->key._present.nd_len = len; - req->key.nd = malloc(req->key._present.nd_len); - memcpy(req->key.nd, nd, req->key._present.nd_len); + req->key._len.nd = len; + req->key.nd = malloc(req->key._len.nd); + memcpy(req->key.nd, nd, req->key._len.nd); } static inline void ovs_flow_new_req_set_key_skb_mark(struct ovs_flow_new_req *req, __u32 skb_mark) @@ -1539,9 +1561,9 @@ ovs_flow_new_req_set_key_tunnel_geneve_opts(struct ovs_flow_new_req *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.geneve_opts); - req->key.tunnel._present.geneve_opts_len = len; - req->key.tunnel.geneve_opts = malloc(req->key.tunnel._present.geneve_opts_len); - memcpy(req->key.tunnel.geneve_opts, geneve_opts, req->key.tunnel._present.geneve_opts_len); + req->key.tunnel._len.geneve_opts = len; + req->key.tunnel.geneve_opts = malloc(req->key.tunnel._len.geneve_opts); + memcpy(req->key.tunnel.geneve_opts, geneve_opts, req->key.tunnel._len.geneve_opts); } static inline void ovs_flow_new_req_set_key_tunnel_tp_src(struct ovs_flow_new_req *req, @@ -1578,9 +1600,9 @@ ovs_flow_new_req_set_key_tunnel_ipv6_src(struct ovs_flow_new_req *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.ipv6_src); - req->key.tunnel._present.ipv6_src_len = len; - req->key.tunnel.ipv6_src = malloc(req->key.tunnel._present.ipv6_src_len); - memcpy(req->key.tunnel.ipv6_src, ipv6_src, req->key.tunnel._present.ipv6_src_len); + req->key.tunnel._len.ipv6_src = len; + req->key.tunnel.ipv6_src = malloc(req->key.tunnel._len.ipv6_src); + memcpy(req->key.tunnel.ipv6_src, ipv6_src, req->key.tunnel._len.ipv6_src); } static inline void ovs_flow_new_req_set_key_tunnel_ipv6_dst(struct ovs_flow_new_req *req, @@ -1589,9 +1611,9 @@ ovs_flow_new_req_set_key_tunnel_ipv6_dst(struct ovs_flow_new_req *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.ipv6_dst); - req->key.tunnel._present.ipv6_dst_len = len; - req->key.tunnel.ipv6_dst = malloc(req->key.tunnel._present.ipv6_dst_len); - memcpy(req->key.tunnel.ipv6_dst, ipv6_dst, req->key.tunnel._present.ipv6_dst_len); + req->key.tunnel._len.ipv6_dst = len; + req->key.tunnel.ipv6_dst = malloc(req->key.tunnel._len.ipv6_dst); + memcpy(req->key.tunnel.ipv6_dst, ipv6_dst, req->key.tunnel._len.ipv6_dst); } static inline void ovs_flow_new_req_set_key_tunnel_pad(struct ovs_flow_new_req *req, @@ -1600,9 +1622,9 @@ ovs_flow_new_req_set_key_tunnel_pad(struct ovs_flow_new_req *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.pad); - req->key.tunnel._present.pad_len = len; - req->key.tunnel.pad = malloc(req->key.tunnel._present.pad_len); - memcpy(req->key.tunnel.pad, pad, req->key.tunnel._present.pad_len); + req->key.tunnel._len.pad = len; + req->key.tunnel.pad = malloc(req->key.tunnel._len.pad); + memcpy(req->key.tunnel.pad, pad, req->key.tunnel._len.pad); } static inline void ovs_flow_new_req_set_key_tunnel_erspan_opts(struct ovs_flow_new_req *req, @@ -1612,9 +1634,9 @@ ovs_flow_new_req_set_key_tunnel_erspan_opts(struct ovs_flow_new_req *req, req->_present.key = 1; req->key._present.tunnel = 1; free(req->key.tunnel.erspan_opts); - req->key.tunnel._present.erspan_opts_len = len; - req->key.tunnel.erspan_opts = malloc(req->key.tunnel._present.erspan_opts_len); - memcpy(req->key.tunnel.erspan_opts, erspan_opts, req->key.tunnel._present.erspan_opts_len); + req->key.tunnel._len.erspan_opts = len; + req->key.tunnel.erspan_opts = malloc(req->key.tunnel._len.erspan_opts); + memcpy(req->key.tunnel.erspan_opts, erspan_opts, req->key.tunnel._len.erspan_opts); } static inline void ovs_flow_new_req_set_key_tunnel_ipv4_info_bridge(struct ovs_flow_new_req *req) @@ -1629,9 +1651,9 @@ ovs_flow_new_req_set_key_sctp(struct ovs_flow_new_req *req, const void *sctp, { req->_present.key = 1; free(req->key.sctp); - req->key._present.sctp_len = len; - req->key.sctp = malloc(req->key._present.sctp_len); - memcpy(req->key.sctp, sctp, req->key._present.sctp_len); + req->key._len.sctp = len; + req->key.sctp = malloc(req->key._len.sctp); + memcpy(req->key.sctp, sctp, req->key._len.sctp); } static inline void ovs_flow_new_req_set_key_tcp_flags(struct ovs_flow_new_req *req, @@ -1662,9 +1684,9 @@ ovs_flow_new_req_set_key_mpls(struct ovs_flow_new_req *req, const void *mpls, { req->_present.key = 1; free(req->key.mpls); - req->key._present.mpls_len = len; - req->key.mpls = malloc(req->key._present.mpls_len); - memcpy(req->key.mpls, mpls, req->key._present.mpls_len); + req->key._len.mpls = len; + req->key.mpls = malloc(req->key._len.mpls); + memcpy(req->key.mpls, mpls, req->key._len.mpls); } static inline void ovs_flow_new_req_set_key_ct_state(struct ovs_flow_new_req *req, __u32 ct_state) @@ -1693,9 +1715,9 @@ ovs_flow_new_req_set_key_ct_labels(struct ovs_flow_new_req *req, { req->_present.key = 1; free(req->key.ct_labels); - req->key._present.ct_labels_len = len; - req->key.ct_labels = malloc(req->key._present.ct_labels_len); - memcpy(req->key.ct_labels, ct_labels, req->key._present.ct_labels_len); + req->key._len.ct_labels = len; + req->key.ct_labels = malloc(req->key._len.ct_labels); + memcpy(req->key.ct_labels, ct_labels, req->key._len.ct_labels); } static inline void ovs_flow_new_req_set_key_ct_orig_tuple_ipv4(struct ovs_flow_new_req *req, @@ -1704,9 +1726,9 @@ ovs_flow_new_req_set_key_ct_orig_tuple_ipv4(struct ovs_flow_new_req *req, { req->_present.key = 1; free(req->key.ct_orig_tuple_ipv4); - req->key._present.ct_orig_tuple_ipv4_len = len; - req->key.ct_orig_tuple_ipv4 = malloc(req->key._present.ct_orig_tuple_ipv4_len); - memcpy(req->key.ct_orig_tuple_ipv4, ct_orig_tuple_ipv4, req->key._present.ct_orig_tuple_ipv4_len); + req->key._len.ct_orig_tuple_ipv4 = len; + req->key.ct_orig_tuple_ipv4 = malloc(req->key._len.ct_orig_tuple_ipv4); + memcpy(req->key.ct_orig_tuple_ipv4, ct_orig_tuple_ipv4, req->key._len.ct_orig_tuple_ipv4); } static inline void ovs_flow_new_req_set_key_ct_orig_tuple_ipv6(struct ovs_flow_new_req *req, @@ -1715,9 +1737,9 @@ ovs_flow_new_req_set_key_ct_orig_tuple_ipv6(struct ovs_flow_new_req *req, { req->_present.key = 1; free(req->key.ct_orig_tuple_ipv6); - req->key._present.ct_orig_tuple_ipv6_len = len; - req->key.ct_orig_tuple_ipv6 = malloc(req->key._present.ct_orig_tuple_ipv6_len); - memcpy(req->key.ct_orig_tuple_ipv6, ct_orig_tuple_ipv6, req->key._present.ct_orig_tuple_ipv6_len); + req->key._len.ct_orig_tuple_ipv6 = len; + req->key.ct_orig_tuple_ipv6 = malloc(req->key._len.ct_orig_tuple_ipv6); + memcpy(req->key.ct_orig_tuple_ipv6, ct_orig_tuple_ipv6, req->key._len.ct_orig_tuple_ipv6); } static inline void ovs_flow_new_req_set_key_nsh_base(struct ovs_flow_new_req *req, @@ -1726,9 +1748,9 @@ ovs_flow_new_req_set_key_nsh_base(struct ovs_flow_new_req *req, req->_present.key = 1; req->key._present.nsh = 1; free(req->key.nsh.base); - req->key.nsh._present.base_len = len; - req->key.nsh.base = malloc(req->key.nsh._present.base_len); - memcpy(req->key.nsh.base, base, req->key.nsh._present.base_len); + req->key.nsh._len.base = len; + req->key.nsh.base = malloc(req->key.nsh._len.base); + memcpy(req->key.nsh.base, base, req->key.nsh._len.base); } static inline void ovs_flow_new_req_set_key_nsh_md1(struct ovs_flow_new_req *req, const void *md1, @@ -1737,9 +1759,9 @@ ovs_flow_new_req_set_key_nsh_md1(struct ovs_flow_new_req *req, const void *md1, req->_present.key = 1; req->key._present.nsh = 1; free(req->key.nsh.md1); - req->key.nsh._present.md1_len = len; - req->key.nsh.md1 = malloc(req->key.nsh._present.md1_len); - memcpy(req->key.nsh.md1, md1, req->key.nsh._present.md1_len); + req->key.nsh._len.md1 = len; + req->key.nsh.md1 = malloc(req->key.nsh._len.md1); + memcpy(req->key.nsh.md1, md1, req->key.nsh._len.md1); } static inline void ovs_flow_new_req_set_key_nsh_md2(struct ovs_flow_new_req *req, const void *md2, @@ -1748,9 +1770,9 @@ ovs_flow_new_req_set_key_nsh_md2(struct ovs_flow_new_req *req, const void *md2, req->_present.key = 1; req->key._present.nsh = 1; free(req->key.nsh.md2); - req->key.nsh._present.md2_len = len; - req->key.nsh.md2 = malloc(req->key.nsh._present.md2_len); - memcpy(req->key.nsh.md2, md2, req->key.nsh._present.md2_len); + req->key.nsh._len.md2 = len; + req->key.nsh.md2 = malloc(req->key.nsh._len.md2); + memcpy(req->key.nsh.md2, md2, req->key.nsh._len.md2); } static inline void ovs_flow_new_req_set_key_packet_type(struct ovs_flow_new_req *req, @@ -1766,9 +1788,9 @@ ovs_flow_new_req_set_key_nd_extensions(struct ovs_flow_new_req *req, { req->_present.key = 1; free(req->key.nd_extensions); - req->key._present.nd_extensions_len = len; - req->key.nd_extensions = malloc(req->key._present.nd_extensions_len); - memcpy(req->key.nd_extensions, nd_extensions, req->key._present.nd_extensions_len); + req->key._len.nd_extensions = len; + req->key.nd_extensions = malloc(req->key._len.nd_extensions); + memcpy(req->key.nd_extensions, nd_extensions, req->key._len.nd_extensions); } static inline void ovs_flow_new_req_set_key_tunnel_info(struct ovs_flow_new_req *req, @@ -1776,9 +1798,9 @@ ovs_flow_new_req_set_key_tunnel_info(struct ovs_flow_new_req *req, { req->_present.key = 1; free(req->key.tunnel_info); - req->key._present.tunnel_info_len = len; - req->key.tunnel_info = malloc(req->key._present.tunnel_info_len); - memcpy(req->key.tunnel_info, tunnel_info, req->key._present.tunnel_info_len); + req->key._len.tunnel_info = len; + req->key.tunnel_info = malloc(req->key._len.tunnel_info); + memcpy(req->key.tunnel_info, tunnel_info, req->key._len.tunnel_info); } static inline void ovs_flow_new_req_set_key_ipv6_exthdrs(struct ovs_flow_new_req *req, @@ -1786,18 +1808,18 @@ ovs_flow_new_req_set_key_ipv6_exthdrs(struct ovs_flow_new_req *req, { req->_present.key = 1; free(req->key.ipv6_exthdrs); - req->key._present.ipv6_exthdrs_len = len; - req->key.ipv6_exthdrs = malloc(req->key._present.ipv6_exthdrs_len); - memcpy(req->key.ipv6_exthdrs, ipv6_exthdrs, req->key._present.ipv6_exthdrs_len); + req->key._len.ipv6_exthdrs = len; + req->key.ipv6_exthdrs = malloc(req->key._len.ipv6_exthdrs); + memcpy(req->key.ipv6_exthdrs, ipv6_exthdrs, req->key._len.ipv6_exthdrs); } static inline void ovs_flow_new_req_set_ufid(struct ovs_flow_new_req *req, const void *ufid, size_t len) { free(req->ufid); - req->_present.ufid_len = len; - req->ufid = malloc(req->_present.ufid_len); - memcpy(req->ufid, ufid, req->_present.ufid_len); + req->_len.ufid = len; + req->ufid = malloc(req->_len.ufid); + memcpy(req->ufid, ufid, req->_len.ufid); } static inline void ovs_flow_new_req_set_mask_priority(struct ovs_flow_new_req *req, @@ -1820,9 +1842,9 @@ ovs_flow_new_req_set_mask_ethernet(struct ovs_flow_new_req *req, { req->_present.mask = 1; free(req->mask.ethernet); - req->mask._present.ethernet_len = len; - req->mask.ethernet = malloc(req->mask._present.ethernet_len); - memcpy(req->mask.ethernet, ethernet, req->mask._present.ethernet_len); + req->mask._len.ethernet = len; + req->mask.ethernet = malloc(req->mask._len.ethernet); + memcpy(req->mask.ethernet, ethernet, req->mask._len.ethernet); } static inline void ovs_flow_new_req_set_mask_vlan(struct ovs_flow_new_req *req, @@ -1846,9 +1868,9 @@ ovs_flow_new_req_set_mask_ipv4(struct ovs_flow_new_req *req, const void *ipv4, { req->_present.mask = 1; free(req->mask.ipv4); - req->mask._present.ipv4_len = len; - req->mask.ipv4 = malloc(req->mask._present.ipv4_len); - memcpy(req->mask.ipv4, ipv4, req->mask._present.ipv4_len); + req->mask._len.ipv4 = len; + req->mask.ipv4 = malloc(req->mask._len.ipv4); + memcpy(req->mask.ipv4, ipv4, req->mask._len.ipv4); } static inline void ovs_flow_new_req_set_mask_ipv6(struct ovs_flow_new_req *req, const void *ipv6, @@ -1856,9 +1878,9 @@ ovs_flow_new_req_set_mask_ipv6(struct ovs_flow_new_req *req, const void *ipv6, { req->_present.mask = 1; free(req->mask.ipv6); - req->mask._present.ipv6_len = len; - req->mask.ipv6 = malloc(req->mask._present.ipv6_len); - memcpy(req->mask.ipv6, ipv6, req->mask._present.ipv6_len); + req->mask._len.ipv6 = len; + req->mask.ipv6 = malloc(req->mask._len.ipv6); + memcpy(req->mask.ipv6, ipv6, req->mask._len.ipv6); } static inline void ovs_flow_new_req_set_mask_tcp(struct ovs_flow_new_req *req, const void *tcp, @@ -1866,9 +1888,9 @@ ovs_flow_new_req_set_mask_tcp(struct ovs_flow_new_req *req, const void *tcp, { req->_present.mask = 1; free(req->mask.tcp); - req->mask._present.tcp_len = len; - req->mask.tcp = malloc(req->mask._present.tcp_len); - memcpy(req->mask.tcp, tcp, req->mask._present.tcp_len); + req->mask._len.tcp = len; + req->mask.tcp = malloc(req->mask._len.tcp); + memcpy(req->mask.tcp, tcp, req->mask._len.tcp); } static inline void ovs_flow_new_req_set_mask_udp(struct ovs_flow_new_req *req, const void *udp, @@ -1876,9 +1898,9 @@ ovs_flow_new_req_set_mask_udp(struct ovs_flow_new_req *req, const void *udp, { req->_present.mask = 1; free(req->mask.udp); - req->mask._present.udp_len = len; - req->mask.udp = malloc(req->mask._present.udp_len); - memcpy(req->mask.udp, udp, req->mask._present.udp_len); + req->mask._len.udp = len; + req->mask.udp = malloc(req->mask._len.udp); + memcpy(req->mask.udp, udp, req->mask._len.udp); } static inline void ovs_flow_new_req_set_mask_icmp(struct ovs_flow_new_req *req, const void *icmp, @@ -1886,9 +1908,9 @@ ovs_flow_new_req_set_mask_icmp(struct ovs_flow_new_req *req, const void *icmp, { req->_present.mask = 1; free(req->mask.icmp); - req->mask._present.icmp_len = len; - req->mask.icmp = malloc(req->mask._present.icmp_len); - memcpy(req->mask.icmp, icmp, req->mask._present.icmp_len); + req->mask._len.icmp = len; + req->mask.icmp = malloc(req->mask._len.icmp); + memcpy(req->mask.icmp, icmp, req->mask._len.icmp); } static inline void ovs_flow_new_req_set_mask_icmpv6(struct ovs_flow_new_req *req, @@ -1896,9 +1918,9 @@ ovs_flow_new_req_set_mask_icmpv6(struct ovs_flow_new_req *req, { req->_present.mask = 1; free(req->mask.icmpv6); - req->mask._present.icmpv6_len = len; - req->mask.icmpv6 = malloc(req->mask._present.icmpv6_len); - memcpy(req->mask.icmpv6, icmpv6, req->mask._present.icmpv6_len); + req->mask._len.icmpv6 = len; + req->mask.icmpv6 = malloc(req->mask._len.icmpv6); + memcpy(req->mask.icmpv6, icmpv6, req->mask._len.icmpv6); } static inline void ovs_flow_new_req_set_mask_arp(struct ovs_flow_new_req *req, const void *arp, @@ -1906,9 +1928,9 @@ ovs_flow_new_req_set_mask_arp(struct ovs_flow_new_req *req, const void *arp, { req->_present.mask = 1; free(req->mask.arp); - req->mask._present.arp_len = len; - req->mask.arp = malloc(req->mask._present.arp_len); - memcpy(req->mask.arp, arp, req->mask._present.arp_len); + req->mask._len.arp = len; + req->mask.arp = malloc(req->mask._len.arp); + memcpy(req->mask.arp, arp, req->mask._len.arp); } static inline void ovs_flow_new_req_set_mask_nd(struct ovs_flow_new_req *req, const void *nd, @@ -1916,9 +1938,9 @@ ovs_flow_new_req_set_mask_nd(struct ovs_flow_new_req *req, const void *nd, { req->_present.mask = 1; free(req->mask.nd); - req->mask._present.nd_len = len; - req->mask.nd = malloc(req->mask._present.nd_len); - memcpy(req->mask.nd, nd, req->mask._present.nd_len); + req->mask._len.nd = len; + req->mask.nd = malloc(req->mask._len.nd); + memcpy(req->mask.nd, nd, req->mask._len.nd); } static inline void ovs_flow_new_req_set_mask_skb_mark(struct ovs_flow_new_req *req, @@ -2000,9 +2022,9 @@ ovs_flow_new_req_set_mask_tunnel_geneve_opts(struct ovs_flow_new_req *req, req->_present.mask = 1; req->mask._present.tunnel = 1; free(req->mask.tunnel.geneve_opts); - req->mask.tunnel._present.geneve_opts_len = len; - req->mask.tunnel.geneve_opts = malloc(req->mask.tunnel._present.geneve_opts_len); - memcpy(req->mask.tunnel.geneve_opts, geneve_opts, req->mask.tunnel._present.geneve_opts_len); + req->mask.tunnel._len.geneve_opts = len; + req->mask.tunnel.geneve_opts = malloc(req->mask.tunnel._len.geneve_opts); + memcpy(req->mask.tunnel.geneve_opts, geneve_opts, req->mask.tunnel._len.geneve_opts); } static inline void ovs_flow_new_req_set_mask_tunnel_tp_src(struct ovs_flow_new_req *req, @@ -2039,9 +2061,9 @@ ovs_flow_new_req_set_mask_tunnel_ipv6_src(struct ovs_flow_new_req *req, req->_present.mask = 1; req->mask._present.tunnel = 1; free(req->mask.tunnel.ipv6_src); - req->mask.tunnel._present.ipv6_src_len = len; - req->mask.tunnel.ipv6_src = malloc(req->mask.tunnel._present.ipv6_src_len); - memcpy(req->mask.tunnel.ipv6_src, ipv6_src, req->mask.tunnel._present.ipv6_src_len); + req->mask.tunnel._len.ipv6_src = len; + req->mask.tunnel.ipv6_src = malloc(req->mask.tunnel._len.ipv6_src); + memcpy(req->mask.tunnel.ipv6_src, ipv6_src, req->mask.tunnel._len.ipv6_src); } static inline void ovs_flow_new_req_set_mask_tunnel_ipv6_dst(struct ovs_flow_new_req *req, @@ -2050,9 +2072,9 @@ ovs_flow_new_req_set_mask_tunnel_ipv6_dst(struct ovs_flow_new_req *req, req->_present.mask = 1; req->mask._present.tunnel = 1; free(req->mask.tunnel.ipv6_dst); - req->mask.tunnel._present.ipv6_dst_len = len; - req->mask.tunnel.ipv6_dst = malloc(req->mask.tunnel._present.ipv6_dst_len); - memcpy(req->mask.tunnel.ipv6_dst, ipv6_dst, req->mask.tunnel._present.ipv6_dst_len); + req->mask.tunnel._len.ipv6_dst = len; + req->mask.tunnel.ipv6_dst = malloc(req->mask.tunnel._len.ipv6_dst); + memcpy(req->mask.tunnel.ipv6_dst, ipv6_dst, req->mask.tunnel._len.ipv6_dst); } static inline void ovs_flow_new_req_set_mask_tunnel_pad(struct ovs_flow_new_req *req, @@ -2061,9 +2083,9 @@ ovs_flow_new_req_set_mask_tunnel_pad(struct ovs_flow_new_req *req, req->_present.mask = 1; req->mask._present.tunnel = 1; free(req->mask.tunnel.pad); - req->mask.tunnel._present.pad_len = len; - req->mask.tunnel.pad = malloc(req->mask.tunnel._present.pad_len); - memcpy(req->mask.tunnel.pad, pad, req->mask.tunnel._present.pad_len); + req->mask.tunnel._len.pad = len; + req->mask.tunnel.pad = malloc(req->mask.tunnel._len.pad); + memcpy(req->mask.tunnel.pad, pad, req->mask.tunnel._len.pad); } static inline void ovs_flow_new_req_set_mask_tunnel_erspan_opts(struct ovs_flow_new_req *req, @@ -2073,9 +2095,9 @@ ovs_flow_new_req_set_mask_tunnel_erspan_opts(struct ovs_flow_new_req *req, req->_present.mask = 1; req->mask._present.tunnel = 1; free(req->mask.tunnel.erspan_opts); - req->mask.tunnel._present.erspan_opts_len = len; - req->mask.tunnel.erspan_opts = malloc(req->mask.tunnel._present.erspan_opts_len); - memcpy(req->mask.tunnel.erspan_opts, erspan_opts, req->mask.tunnel._present.erspan_opts_len); + req->mask.tunnel._len.erspan_opts = len; + req->mask.tunnel.erspan_opts = malloc(req->mask.tunnel._len.erspan_opts); + memcpy(req->mask.tunnel.erspan_opts, erspan_opts, req->mask.tunnel._len.erspan_opts); } static inline void ovs_flow_new_req_set_mask_tunnel_ipv4_info_bridge(struct ovs_flow_new_req *req) @@ -2090,9 +2112,9 @@ ovs_flow_new_req_set_mask_sctp(struct ovs_flow_new_req *req, const void *sctp, { req->_present.mask = 1; free(req->mask.sctp); - req->mask._present.sctp_len = len; - req->mask.sctp = malloc(req->mask._present.sctp_len); - memcpy(req->mask.sctp, sctp, req->mask._present.sctp_len); + req->mask._len.sctp = len; + req->mask.sctp = malloc(req->mask._len.sctp); + memcpy(req->mask.sctp, sctp, req->mask._len.sctp); } static inline void ovs_flow_new_req_set_mask_tcp_flags(struct ovs_flow_new_req *req, @@ -2123,9 +2145,9 @@ ovs_flow_new_req_set_mask_mpls(struct ovs_flow_new_req *req, const void *mpls, { req->_present.mask = 1; free(req->mask.mpls); - req->mask._present.mpls_len = len; - req->mask.mpls = malloc(req->mask._present.mpls_len); - memcpy(req->mask.mpls, mpls, req->mask._present.mpls_len); + req->mask._len.mpls = len; + req->mask.mpls = malloc(req->mask._len.mpls); + memcpy(req->mask.mpls, mpls, req->mask._len.mpls); } static inline void ovs_flow_new_req_set_mask_ct_state(struct ovs_flow_new_req *req, @@ -2155,9 +2177,9 @@ ovs_flow_new_req_set_mask_ct_labels(struct ovs_flow_new_req *req, { req->_present.mask = 1; free(req->mask.ct_labels); - req->mask._present.ct_labels_len = len; - req->mask.ct_labels = malloc(req->mask._present.ct_labels_len); - memcpy(req->mask.ct_labels, ct_labels, req->mask._present.ct_labels_len); + req->mask._len.ct_labels = len; + req->mask.ct_labels = malloc(req->mask._len.ct_labels); + memcpy(req->mask.ct_labels, ct_labels, req->mask._len.ct_labels); } static inline void ovs_flow_new_req_set_mask_ct_orig_tuple_ipv4(struct ovs_flow_new_req *req, @@ -2166,9 +2188,9 @@ ovs_flow_new_req_set_mask_ct_orig_tuple_ipv4(struct ovs_flow_new_req *req, { req->_present.mask = 1; free(req->mask.ct_orig_tuple_ipv4); - req->mask._present.ct_orig_tuple_ipv4_len = len; - req->mask.ct_orig_tuple_ipv4 = malloc(req->mask._present.ct_orig_tuple_ipv4_len); - memcpy(req->mask.ct_orig_tuple_ipv4, ct_orig_tuple_ipv4, req->mask._present.ct_orig_tuple_ipv4_len); + req->mask._len.ct_orig_tuple_ipv4 = len; + req->mask.ct_orig_tuple_ipv4 = malloc(req->mask._len.ct_orig_tuple_ipv4); + memcpy(req->mask.ct_orig_tuple_ipv4, ct_orig_tuple_ipv4, req->mask._len.ct_orig_tuple_ipv4); } static inline void ovs_flow_new_req_set_mask_ct_orig_tuple_ipv6(struct ovs_flow_new_req *req, @@ -2177,9 +2199,9 @@ ovs_flow_new_req_set_mask_ct_orig_tuple_ipv6(struct ovs_flow_new_req *req, { req->_present.mask = 1; free(req->mask.ct_orig_tuple_ipv6); - req->mask._present.ct_orig_tuple_ipv6_len = len; - req->mask.ct_orig_tuple_ipv6 = malloc(req->mask._present.ct_orig_tuple_ipv6_len); - memcpy(req->mask.ct_orig_tuple_ipv6, ct_orig_tuple_ipv6, req->mask._present.ct_orig_tuple_ipv6_len); + req->mask._len.ct_orig_tuple_ipv6 = len; + req->mask.ct_orig_tuple_ipv6 = malloc(req->mask._len.ct_orig_tuple_ipv6); + memcpy(req->mask.ct_orig_tuple_ipv6, ct_orig_tuple_ipv6, req->mask._len.ct_orig_tuple_ipv6); } static inline void ovs_flow_new_req_set_mask_nsh_base(struct ovs_flow_new_req *req, @@ -2188,9 +2210,9 @@ ovs_flow_new_req_set_mask_nsh_base(struct ovs_flow_new_req *req, req->_present.mask = 1; req->mask._present.nsh = 1; free(req->mask.nsh.base); - req->mask.nsh._present.base_len = len; - req->mask.nsh.base = malloc(req->mask.nsh._present.base_len); - memcpy(req->mask.nsh.base, base, req->mask.nsh._present.base_len); + req->mask.nsh._len.base = len; + req->mask.nsh.base = malloc(req->mask.nsh._len.base); + memcpy(req->mask.nsh.base, base, req->mask.nsh._len.base); } static inline void ovs_flow_new_req_set_mask_nsh_md1(struct ovs_flow_new_req *req, @@ -2199,9 +2221,9 @@ ovs_flow_new_req_set_mask_nsh_md1(struct ovs_flow_new_req *req, req->_present.mask = 1; req->mask._present.nsh = 1; free(req->mask.nsh.md1); - req->mask.nsh._present.md1_len = len; - req->mask.nsh.md1 = malloc(req->mask.nsh._present.md1_len); - memcpy(req->mask.nsh.md1, md1, req->mask.nsh._present.md1_len); + req->mask.nsh._len.md1 = len; + req->mask.nsh.md1 = malloc(req->mask.nsh._len.md1); + memcpy(req->mask.nsh.md1, md1, req->mask.nsh._len.md1); } static inline void ovs_flow_new_req_set_mask_nsh_md2(struct ovs_flow_new_req *req, @@ -2210,9 +2232,9 @@ ovs_flow_new_req_set_mask_nsh_md2(struct ovs_flow_new_req *req, req->_present.mask = 1; req->mask._present.nsh = 1; free(req->mask.nsh.md2); - req->mask.nsh._present.md2_len = len; - req->mask.nsh.md2 = malloc(req->mask.nsh._present.md2_len); - memcpy(req->mask.nsh.md2, md2, req->mask.nsh._present.md2_len); + req->mask.nsh._len.md2 = len; + req->mask.nsh.md2 = malloc(req->mask.nsh._len.md2); + memcpy(req->mask.nsh.md2, md2, req->mask.nsh._len.md2); } static inline void ovs_flow_new_req_set_mask_packet_type(struct ovs_flow_new_req *req, @@ -2228,9 +2250,9 @@ ovs_flow_new_req_set_mask_nd_extensions(struct ovs_flow_new_req *req, { req->_present.mask = 1; free(req->mask.nd_extensions); - req->mask._present.nd_extensions_len = len; - req->mask.nd_extensions = malloc(req->mask._present.nd_extensions_len); - memcpy(req->mask.nd_extensions, nd_extensions, req->mask._present.nd_extensions_len); + req->mask._len.nd_extensions = len; + req->mask.nd_extensions = malloc(req->mask._len.nd_extensions); + memcpy(req->mask.nd_extensions, nd_extensions, req->mask._len.nd_extensions); } static inline void ovs_flow_new_req_set_mask_tunnel_info(struct ovs_flow_new_req *req, @@ -2238,9 +2260,9 @@ ovs_flow_new_req_set_mask_tunnel_info(struct ovs_flow_new_req *req, { req->_present.mask = 1; free(req->mask.tunnel_info); - req->mask._present.tunnel_info_len = len; - req->mask.tunnel_info = malloc(req->mask._present.tunnel_info_len); - memcpy(req->mask.tunnel_info, tunnel_info, req->mask._present.tunnel_info_len); + req->mask._len.tunnel_info = len; + req->mask.tunnel_info = malloc(req->mask._len.tunnel_info); + memcpy(req->mask.tunnel_info, tunnel_info, req->mask._len.tunnel_info); } static inline void ovs_flow_new_req_set_mask_ipv6_exthdrs(struct ovs_flow_new_req *req, @@ -2248,9 +2270,9 @@ ovs_flow_new_req_set_mask_ipv6_exthdrs(struct ovs_flow_new_req *req, { req->_present.mask = 1; free(req->mask.ipv6_exthdrs); - req->mask._present.ipv6_exthdrs_len = len; - req->mask.ipv6_exthdrs = malloc(req->mask._present.ipv6_exthdrs_len); - memcpy(req->mask.ipv6_exthdrs, ipv6_exthdrs, req->mask._present.ipv6_exthdrs_len); + req->mask._len.ipv6_exthdrs = len; + req->mask.ipv6_exthdrs = malloc(req->mask._len.ipv6_exthdrs); + memcpy(req->mask.ipv6_exthdrs, ipv6_exthdrs, req->mask._len.ipv6_exthdrs); } static inline void ovs_flow_new_req_set_actions_output(struct ovs_flow_new_req *req, __u32 output) @@ -2276,9 +2298,9 @@ ovs_flow_new_req_set_actions_userspace_userdata(struct ovs_flow_new_req *req, req->_present.actions = 1; req->actions._present.userspace = 1; free(req->actions.userspace.userdata); - req->actions.userspace._present.userdata_len = len; - req->actions.userspace.userdata = malloc(req->actions.userspace._present.userdata_len); - memcpy(req->actions.userspace.userdata, userdata, req->actions.userspace._present.userdata_len); + req->actions.userspace._len.userdata = len; + req->actions.userspace.userdata = malloc(req->actions.userspace._len.userdata); + memcpy(req->actions.userspace.userdata, userdata, req->actions.userspace._len.userdata); } static inline void ovs_flow_new_req_set_actions_userspace_egress_tun_port(struct ovs_flow_new_req *req, @@ -2302,9 +2324,9 @@ ovs_flow_new_req_set_actions_push_vlan(struct ovs_flow_new_req *req, { req->_present.actions = 1; free(req->actions.push_vlan); - req->actions._present.push_vlan_len = len; - req->actions.push_vlan = malloc(req->actions._present.push_vlan_len); - memcpy(req->actions.push_vlan, push_vlan, req->actions._present.push_vlan_len); + req->actions._len.push_vlan = len; + req->actions.push_vlan = malloc(req->actions._len.push_vlan); + memcpy(req->actions.push_vlan, push_vlan, req->actions._len.push_vlan); } static inline void ovs_flow_new_req_set_actions_pop_vlan(struct ovs_flow_new_req *req) @@ -2334,9 +2356,9 @@ ovs_flow_new_req_set_actions_hash(struct ovs_flow_new_req *req, { req->_present.actions = 1; free(req->actions.hash); - req->actions._present.hash_len = len; - req->actions.hash = malloc(req->actions._present.hash_len); - memcpy(req->actions.hash, hash, req->actions._present.hash_len); + req->actions._len.hash = len; + req->actions.hash = malloc(req->actions._len.hash); + memcpy(req->actions.hash, hash, req->actions._len.hash); } static inline void ovs_flow_new_req_set_actions_push_mpls(struct ovs_flow_new_req *req, @@ -2344,9 +2366,9 @@ ovs_flow_new_req_set_actions_push_mpls(struct ovs_flow_new_req *req, { req->_present.actions = 1; free(req->actions.push_mpls); - req->actions._present.push_mpls_len = len; - req->actions.push_mpls = malloc(req->actions._present.push_mpls_len); - memcpy(req->actions.push_mpls, push_mpls, req->actions._present.push_mpls_len); + req->actions._len.push_mpls = len; + req->actions.push_mpls = malloc(req->actions._len.push_mpls); + memcpy(req->actions.push_mpls, push_mpls, req->actions._len.push_mpls); } static inline void ovs_flow_new_req_set_actions_pop_mpls(struct ovs_flow_new_req *req, @@ -2378,9 +2400,9 @@ ovs_flow_new_req_set_actions_ct_mark(struct ovs_flow_new_req *req, req->_present.actions = 1; req->actions._present.ct = 1; free(req->actions.ct.mark); - req->actions.ct._present.mark_len = len; - req->actions.ct.mark = malloc(req->actions.ct._present.mark_len); - memcpy(req->actions.ct.mark, mark, req->actions.ct._present.mark_len); + req->actions.ct._len.mark = len; + req->actions.ct.mark = malloc(req->actions.ct._len.mark); + memcpy(req->actions.ct.mark, mark, req->actions.ct._len.mark); } static inline void ovs_flow_new_req_set_actions_ct_labels(struct ovs_flow_new_req *req, @@ -2389,9 +2411,9 @@ ovs_flow_new_req_set_actions_ct_labels(struct ovs_flow_new_req *req, req->_present.actions = 1; req->actions._present.ct = 1; free(req->actions.ct.labels); - req->actions.ct._present.labels_len = len; - req->actions.ct.labels = malloc(req->actions.ct._present.labels_len); - memcpy(req->actions.ct.labels, labels, req->actions.ct._present.labels_len); + req->actions.ct._len.labels = len; + req->actions.ct.labels = malloc(req->actions.ct._len.labels); + memcpy(req->actions.ct.labels, labels, req->actions.ct._len.labels); } static inline void ovs_flow_new_req_set_actions_ct_helper(struct ovs_flow_new_req *req, @@ -2400,10 +2422,10 @@ ovs_flow_new_req_set_actions_ct_helper(struct ovs_flow_new_req *req, req->_present.actions = 1; req->actions._present.ct = 1; free(req->actions.ct.helper); - req->actions.ct._present.helper_len = strlen(helper); - req->actions.ct.helper = malloc(req->actions.ct._present.helper_len + 1); - memcpy(req->actions.ct.helper, helper, req->actions.ct._present.helper_len); - req->actions.ct.helper[req->actions.ct._present.helper_len] = 0; + req->actions.ct._len.helper = strlen(helper); + req->actions.ct.helper = malloc(req->actions.ct._len.helper + 1); + memcpy(req->actions.ct.helper, helper, req->actions.ct._len.helper); + req->actions.ct.helper[req->actions.ct._len.helper] = 0; } static inline void ovs_flow_new_req_set_actions_ct_nat_src(struct ovs_flow_new_req *req) @@ -2429,9 +2451,9 @@ ovs_flow_new_req_set_actions_ct_nat_ip_min(struct ovs_flow_new_req *req, req->actions._present.ct = 1; req->actions.ct._present.nat = 1; free(req->actions.ct.nat.ip_min); - req->actions.ct.nat._present.ip_min_len = len; - req->actions.ct.nat.ip_min = malloc(req->actions.ct.nat._present.ip_min_len); - memcpy(req->actions.ct.nat.ip_min, ip_min, req->actions.ct.nat._present.ip_min_len); + req->actions.ct.nat._len.ip_min = len; + req->actions.ct.nat.ip_min = malloc(req->actions.ct.nat._len.ip_min); + memcpy(req->actions.ct.nat.ip_min, ip_min, req->actions.ct.nat._len.ip_min); } static inline void ovs_flow_new_req_set_actions_ct_nat_ip_max(struct ovs_flow_new_req *req, @@ -2441,9 +2463,9 @@ ovs_flow_new_req_set_actions_ct_nat_ip_max(struct ovs_flow_new_req *req, req->actions._present.ct = 1; req->actions.ct._present.nat = 1; free(req->actions.ct.nat.ip_max); - req->actions.ct.nat._present.ip_max_len = len; - req->actions.ct.nat.ip_max = malloc(req->actions.ct.nat._present.ip_max_len); - memcpy(req->actions.ct.nat.ip_max, ip_max, req->actions.ct.nat._present.ip_max_len); + req->actions.ct.nat._len.ip_max = len; + req->actions.ct.nat.ip_max = malloc(req->actions.ct.nat._len.ip_max); + memcpy(req->actions.ct.nat.ip_max, ip_max, req->actions.ct.nat._len.ip_max); } static inline void ovs_flow_new_req_set_actions_ct_nat_proto_min(struct ovs_flow_new_req *req, @@ -2512,10 +2534,10 @@ ovs_flow_new_req_set_actions_ct_timeout(struct ovs_flow_new_req *req, req->_present.actions = 1; req->actions._present.ct = 1; free(req->actions.ct.timeout); - req->actions.ct._present.timeout_len = strlen(timeout); - req->actions.ct.timeout = malloc(req->actions.ct._present.timeout_len + 1); - memcpy(req->actions.ct.timeout, timeout, req->actions.ct._present.timeout_len); - req->actions.ct.timeout[req->actions.ct._present.timeout_len] = 0; + req->actions.ct._len.timeout = strlen(timeout); + req->actions.ct.timeout = malloc(req->actions.ct._len.timeout + 1); + memcpy(req->actions.ct.timeout, timeout, req->actions.ct._len.timeout); + req->actions.ct.timeout[req->actions.ct._len.timeout] = 0; } static inline void ovs_flow_new_req_set_actions_trunc(struct ovs_flow_new_req *req, __u32 trunc) @@ -2530,9 +2552,9 @@ ovs_flow_new_req_set_actions_push_eth(struct ovs_flow_new_req *req, { req->_present.actions = 1; free(req->actions.push_eth); - req->actions._present.push_eth_len = len; - req->actions.push_eth = malloc(req->actions._present.push_eth_len); - memcpy(req->actions.push_eth, push_eth, req->actions._present.push_eth_len); + req->actions._len.push_eth = len; + req->actions.push_eth = malloc(req->actions._len.push_eth); + memcpy(req->actions.push_eth, push_eth, req->actions._len.push_eth); } static inline void ovs_flow_new_req_set_actions_pop_eth(struct ovs_flow_new_req *req) @@ -2553,9 +2575,9 @@ ovs_flow_new_req_set_actions_push_nsh_base(struct ovs_flow_new_req *req, req->_present.actions = 1; req->actions._present.push_nsh = 1; free(req->actions.push_nsh.base); - req->actions.push_nsh._present.base_len = len; - req->actions.push_nsh.base = malloc(req->actions.push_nsh._present.base_len); - memcpy(req->actions.push_nsh.base, base, req->actions.push_nsh._present.base_len); + req->actions.push_nsh._len.base = len; + req->actions.push_nsh.base = malloc(req->actions.push_nsh._len.base); + memcpy(req->actions.push_nsh.base, base, req->actions.push_nsh._len.base); } static inline void ovs_flow_new_req_set_actions_push_nsh_md1(struct ovs_flow_new_req *req, @@ -2564,9 +2586,9 @@ ovs_flow_new_req_set_actions_push_nsh_md1(struct ovs_flow_new_req *req, req->_present.actions = 1; req->actions._present.push_nsh = 1; free(req->actions.push_nsh.md1); - req->actions.push_nsh._present.md1_len = len; - req->actions.push_nsh.md1 = malloc(req->actions.push_nsh._present.md1_len); - memcpy(req->actions.push_nsh.md1, md1, req->actions.push_nsh._present.md1_len); + req->actions.push_nsh._len.md1 = len; + req->actions.push_nsh.md1 = malloc(req->actions.push_nsh._len.md1); + memcpy(req->actions.push_nsh.md1, md1, req->actions.push_nsh._len.md1); } static inline void ovs_flow_new_req_set_actions_push_nsh_md2(struct ovs_flow_new_req *req, @@ -2575,9 +2597,9 @@ ovs_flow_new_req_set_actions_push_nsh_md2(struct ovs_flow_new_req *req, req->_present.actions = 1; req->actions._present.push_nsh = 1; free(req->actions.push_nsh.md2); - req->actions.push_nsh._present.md2_len = len; - req->actions.push_nsh.md2 = malloc(req->actions.push_nsh._present.md2_len); - memcpy(req->actions.push_nsh.md2, md2, req->actions.push_nsh._present.md2_len); + req->actions.push_nsh._len.md2 = len; + req->actions.push_nsh.md2 = malloc(req->actions.push_nsh._len.md2); + memcpy(req->actions.push_nsh.md2, md2, req->actions.push_nsh._len.md2); } static inline void ovs_flow_new_req_set_actions_pop_nsh(struct ovs_flow_new_req *req) @@ -2607,9 +2629,9 @@ ovs_flow_new_req_set_actions_add_mpls(struct ovs_flow_new_req *req, { req->_present.actions = 1; free(req->actions.add_mpls); - req->actions._present.add_mpls_len = len; - req->actions.add_mpls = malloc(req->actions._present.add_mpls_len); - memcpy(req->actions.add_mpls, add_mpls, req->actions._present.add_mpls_len); + req->actions._len.add_mpls = len; + req->actions.add_mpls = malloc(req->actions._len.add_mpls); + memcpy(req->actions.add_mpls, add_mpls, req->actions._len.add_mpls); } static inline void ovs_flow_new_req_set_actions_psample_group(struct ovs_flow_new_req *req, @@ -2627,9 +2649,9 @@ ovs_flow_new_req_set_actions_psample_cookie(struct ovs_flow_new_req *req, req->_present.actions = 1; req->actions._present.psample = 1; free(req->actions.psample.cookie); - req->actions.psample._present.cookie_len = len; - req->actions.psample.cookie = malloc(req->actions.psample._present.cookie_len); - memcpy(req->actions.psample.cookie, cookie, req->actions.psample._present.cookie_len); + req->actions.psample._len.cookie = len; + req->actions.psample.cookie = malloc(req->actions.psample._len.cookie); + memcpy(req->actions.psample.cookie, cookie, req->actions.psample._len.cookie); } /* diff --git a/home/nipa/nipa_out/959697/ynl/old-code/ovs_vport-user.c b/home/nipa/nipa_out/959697/ynl/new-code/ovs_vport-user.c index 6f91bf710fb7..5a4c1c2474fa 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/ovs_vport-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/ovs_vport-user.c @@ -156,12 +156,12 @@ int ovs_vport_new(struct ynl_sock *ys, struct ovs_vport_new_req *req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req->_hdr, hdr_len); - if (req->_present.name_len) + if (req->_len.name) ynl_attr_put_str(nlh, OVS_VPORT_ATTR_NAME, req->name); if (req->_present.type) ynl_attr_put_u32(nlh, OVS_VPORT_ATTR_TYPE, req->type); - if (req->_present.upcall_pid_len) - ynl_attr_put(nlh, OVS_VPORT_ATTR_UPCALL_PID, req->upcall_pid, req->_present.upcall_pid_len); + if (req->_len.upcall_pid) + ynl_attr_put(nlh, OVS_VPORT_ATTR_UPCALL_PID, req->upcall_pid, req->_len.upcall_pid); if (req->_present.ifindex) ynl_attr_put_u32(nlh, OVS_VPORT_ATTR_IFINDEX, req->ifindex); if (req->_present.options) @@ -202,7 +202,7 @@ int ovs_vport_del(struct ynl_sock *ys, struct ovs_vport_del_req *req) ynl_attr_put_u32(nlh, OVS_VPORT_ATTR_PORT_NO, req->port_no); if (req->_present.type) ynl_attr_put_u32(nlh, OVS_VPORT_ATTR_TYPE, req->type); - if (req->_present.name_len) + if (req->_len.name) ynl_attr_put_str(nlh, OVS_VPORT_ATTR_NAME, req->name); err = ynl_exec(ys, nlh, &yrs); @@ -263,7 +263,7 @@ int ovs_vport_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.name_len = len; + dst->_len.name = len; dst->name = malloc(len + 1); memcpy(dst->name, ynl_attr_get_str(attr), len); dst->name[len] = 0; @@ -274,7 +274,7 @@ int ovs_vport_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.upcall_pid_len = len; + dst->_len.upcall_pid = len; dst->upcall_pid = malloc(len); memcpy(dst->upcall_pid, ynl_attr_data(attr), len); } else if (type == OVS_VPORT_ATTR_STATS) { @@ -284,7 +284,7 @@ int ovs_vport_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.stats_len = len; + dst->_len.stats = len; dst->stats = malloc(len); memcpy(dst->stats, ynl_attr_data(attr), len); } else if (type == OVS_VPORT_ATTR_IFINDEX) { @@ -331,7 +331,7 @@ ovs_vport_get(struct ynl_sock *ys, struct ovs_vport_get_req *req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req->_hdr, hdr_len); - if (req->_present.name_len) + if (req->_len.name) ynl_attr_put_str(nlh, OVS_VPORT_ATTR_NAME, req->name); rsp = calloc(1, sizeof(*rsp)); @@ -397,7 +397,7 @@ ovs_vport_get_dump(struct ynl_sock *ys, struct ovs_vport_get_req_dump *req) ys->req_policy = &ovs_vport_vport_nest; ys->req_hdr_len = ys->family->hdr_len; - if (req->_present.name_len) + if (req->_len.name) ynl_attr_put_str(nlh, OVS_VPORT_ATTR_NAME, req->name); err = ynl_exec_dump(ys, nlh, &yds); diff --git a/home/nipa/nipa_out/959697/ynl/old-code/ovs_vport-user.h b/home/nipa/nipa_out/959697/ynl/new-code/ovs_vport-user.h index 493a638966d4..495037245c32 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/ovs_vport-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/ovs_vport-user.h @@ -46,12 +46,14 @@ struct ovs_vport_new_req { struct ovs_header _hdr; struct { - __u32 name_len; __u32 type:1; - __u32 upcall_pid_len; __u32 ifindex:1; __u32 options:1; } _present; + struct { + __u32 name; + __u32 upcall_pid; + } _len; char *name; enum ovs_vport_type type; @@ -70,10 +72,10 @@ static inline void ovs_vport_new_req_set_name(struct ovs_vport_new_req *req, const char *name) { free(req->name); - req->_present.name_len = strlen(name); - req->name = malloc(req->_present.name_len + 1); - memcpy(req->name, name, req->_present.name_len); - req->name[req->_present.name_len] = 0; + req->_len.name = strlen(name); + req->name = malloc(req->_len.name + 1); + memcpy(req->name, name, req->_len.name); + req->name[req->_len.name] = 0; } static inline void ovs_vport_new_req_set_type(struct ovs_vport_new_req *req, @@ -87,9 +89,9 @@ ovs_vport_new_req_set_upcall_pid(struct ovs_vport_new_req *req, const void *upcall_pid, size_t len) { free(req->upcall_pid); - req->_present.upcall_pid_len = len; - req->upcall_pid = malloc(req->_present.upcall_pid_len); - memcpy(req->upcall_pid, upcall_pid, req->_present.upcall_pid_len); + req->_len.upcall_pid = len; + req->upcall_pid = malloc(req->_len.upcall_pid); + memcpy(req->upcall_pid, upcall_pid, req->_len.upcall_pid); } static inline void ovs_vport_new_req_set_ifindex(struct ovs_vport_new_req *req, __u32 ifindex) @@ -127,8 +129,10 @@ struct ovs_vport_del_req { struct { __u32 port_no:1; __u32 type:1; - __u32 name_len; } _present; + struct { + __u32 name; + } _len; __u32 port_no; enum ovs_vport_type type; @@ -158,10 +162,10 @@ static inline void ovs_vport_del_req_set_name(struct ovs_vport_del_req *req, const char *name) { free(req->name); - req->_present.name_len = strlen(name); - req->name = malloc(req->_present.name_len + 1); - memcpy(req->name, name, req->_present.name_len); - req->name[req->_present.name_len] = 0; + req->_len.name = strlen(name); + req->name = malloc(req->_len.name + 1); + memcpy(req->name, name, req->_len.name); + req->name[req->_len.name] = 0; } /* @@ -175,8 +179,8 @@ struct ovs_vport_get_req { struct ovs_header _hdr; struct { - __u32 name_len; - } _present; + __u32 name; + } _len; char *name; }; @@ -191,10 +195,10 @@ static inline void ovs_vport_get_req_set_name(struct ovs_vport_get_req *req, const char *name) { free(req->name); - req->_present.name_len = strlen(name); - req->name = malloc(req->_present.name_len + 1); - memcpy(req->name, name, req->_present.name_len); - req->name[req->_present.name_len] = 0; + req->_len.name = strlen(name); + req->name = malloc(req->_len.name + 1); + memcpy(req->name, name, req->_len.name); + req->name[req->_len.name] = 0; } struct ovs_vport_get_rsp { @@ -203,13 +207,15 @@ struct ovs_vport_get_rsp { struct { __u32 port_no:1; __u32 type:1; - __u32 name_len; - __u32 upcall_pid_len; - __u32 stats_len; __u32 ifindex:1; __u32 netnsid:1; __u32 upcall_stats:1; } _present; + struct { + __u32 name; + __u32 upcall_pid; + __u32 stats; + } _len; __u32 port_no; enum ovs_vport_type type; @@ -234,8 +240,8 @@ struct ovs_vport_get_req_dump { struct ovs_header _hdr; struct { - __u32 name_len; - } _present; + __u32 name; + } _len; char *name; }; @@ -251,10 +257,10 @@ ovs_vport_get_req_dump_set_name(struct ovs_vport_get_req_dump *req, const char *name) { free(req->name); - req->_present.name_len = strlen(name); - req->name = malloc(req->_present.name_len + 1); - memcpy(req->name, name, req->_present.name_len); - req->name[req->_present.name_len] = 0; + req->_len.name = strlen(name); + req->name = malloc(req->_len.name + 1); + memcpy(req->name, name, req->_len.name); + req->name[req->_len.name] = 0; } struct ovs_vport_get_list { diff --git a/home/nipa/nipa_out/959697/ynl/old-code/rt-addr-user.c b/home/nipa/nipa_out/959697/ynl/new-code/rt-addr-user.c index 593900e9759a..ac4ce5922b87 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/rt-addr-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/rt-addr-user.c @@ -95,14 +95,14 @@ int rt_addr_newaddr(struct ynl_sock *ys, struct rt_addr_newaddr_req *req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req->_hdr, hdr_len); - if (req->_present.address_len) - ynl_attr_put(nlh, IFA_ADDRESS, req->address, req->_present.address_len); - if (req->_present.label_len) + if (req->_len.address) + ynl_attr_put(nlh, IFA_ADDRESS, req->address, req->_len.address); + if (req->_len.label) ynl_attr_put_str(nlh, IFA_LABEL, req->label); - if (req->_present.local_len) - ynl_attr_put(nlh, IFA_LOCAL, req->local, req->_present.local_len); - if (req->_present.cacheinfo_len) - ynl_attr_put(nlh, IFA_CACHEINFO, req->cacheinfo, req->_present.cacheinfo_len); + if (req->_len.local) + ynl_attr_put(nlh, IFA_LOCAL, req->local, req->_len.local); + if (req->_len.cacheinfo) + ynl_attr_put(nlh, IFA_CACHEINFO, req->cacheinfo, req->_len.cacheinfo); err = ynl_exec(ys, nlh, &yrs); if (err < 0) @@ -136,10 +136,10 @@ int rt_addr_deladdr(struct ynl_sock *ys, struct rt_addr_deladdr_req *req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req->_hdr, hdr_len); - if (req->_present.address_len) - ynl_attr_put(nlh, IFA_ADDRESS, req->address, req->_present.address_len); - if (req->_present.local_len) - ynl_attr_put(nlh, IFA_LOCAL, req->local, req->_present.local_len); + if (req->_len.address) + ynl_attr_put(nlh, IFA_ADDRESS, req->address, req->_len.address); + if (req->_len.local) + ynl_attr_put(nlh, IFA_LOCAL, req->local, req->_len.local); err = ynl_exec(ys, nlh, &yrs); if (err < 0) @@ -172,7 +172,7 @@ int rt_addr_getaddr_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.address_len = len; + dst->_len.address = len; dst->address = malloc(len); memcpy(dst->address, ynl_attr_data(attr), len); } else if (type == IFA_LABEL) { @@ -182,7 +182,7 @@ int rt_addr_getaddr_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.label_len = len; + dst->_len.label = len; dst->label = malloc(len + 1); memcpy(dst->label, ynl_attr_get_str(attr), len); dst->label[len] = 0; @@ -193,7 +193,7 @@ int rt_addr_getaddr_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.local_len = len; + dst->_len.local = len; dst->local = malloc(len); memcpy(dst->local, ynl_attr_data(attr), len); } else if (type == IFA_CACHEINFO) { @@ -203,7 +203,7 @@ int rt_addr_getaddr_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.cacheinfo_len = len; + dst->_len.cacheinfo = len; dst->cacheinfo = malloc(len); memcpy(dst->cacheinfo, ynl_attr_data(attr), len); } @@ -304,7 +304,7 @@ int rt_addr_getmulticast_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.multicast_len = len; + dst->_len.multicast = len; dst->multicast = malloc(len); memcpy(dst->multicast, ynl_attr_data(attr), len); } else if (type == IFA_CACHEINFO) { @@ -314,7 +314,7 @@ int rt_addr_getmulticast_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.cacheinfo_len = len; + dst->_len.cacheinfo = len; dst->cacheinfo = malloc(len); memcpy(dst->cacheinfo, ynl_attr_data(attr), len); } diff --git a/home/nipa/nipa_out/959697/ynl/old-code/rt-addr-user.h b/home/nipa/nipa_out/959697/ynl/new-code/rt-addr-user.h index 9377c62d3d9d..cd198e1a9e68 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/rt-addr-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/rt-addr-user.h @@ -28,11 +28,11 @@ struct rt_addr_newaddr_req { struct ifaddrmsg _hdr; struct { - __u32 address_len; - __u32 label_len; - __u32 local_len; - __u32 cacheinfo_len; - } _present; + __u32 address; + __u32 label; + __u32 local; + __u32 cacheinfo; + } _len; void *address; char *label; @@ -58,37 +58,37 @@ rt_addr_newaddr_req_set_address(struct rt_addr_newaddr_req *req, const void *address, size_t len) { free(req->address); - req->_present.address_len = len; - req->address = malloc(req->_present.address_len); - memcpy(req->address, address, req->_present.address_len); + req->_len.address = len; + req->address = malloc(req->_len.address); + memcpy(req->address, address, req->_len.address); } static inline void rt_addr_newaddr_req_set_label(struct rt_addr_newaddr_req *req, const char *label) { free(req->label); - req->_present.label_len = strlen(label); - req->label = malloc(req->_present.label_len + 1); - memcpy(req->label, label, req->_present.label_len); - req->label[req->_present.label_len] = 0; + req->_len.label = strlen(label); + req->label = malloc(req->_len.label + 1); + memcpy(req->label, label, req->_len.label); + req->label[req->_len.label] = 0; } static inline void rt_addr_newaddr_req_set_local(struct rt_addr_newaddr_req *req, const void *local, size_t len) { free(req->local); - req->_present.local_len = len; - req->local = malloc(req->_present.local_len); - memcpy(req->local, local, req->_present.local_len); + req->_len.local = len; + req->local = malloc(req->_len.local); + memcpy(req->local, local, req->_len.local); } static inline void rt_addr_newaddr_req_set_cacheinfo(struct rt_addr_newaddr_req *req, const void *cacheinfo, size_t len) { free(req->cacheinfo); - req->_present.cacheinfo_len = len; - req->cacheinfo = malloc(req->_present.cacheinfo_len); - memcpy(req->cacheinfo, cacheinfo, req->_present.cacheinfo_len); + req->_len.cacheinfo = len; + req->cacheinfo = malloc(req->_len.cacheinfo); + memcpy(req->cacheinfo, cacheinfo, req->_len.cacheinfo); } /* @@ -104,9 +104,9 @@ struct rt_addr_deladdr_req { struct ifaddrmsg _hdr; struct { - __u32 address_len; - __u32 local_len; - } _present; + __u32 address; + __u32 local; + } _len; void *address; void *local; @@ -130,18 +130,18 @@ rt_addr_deladdr_req_set_address(struct rt_addr_deladdr_req *req, const void *address, size_t len) { free(req->address); - req->_present.address_len = len; - req->address = malloc(req->_present.address_len); - memcpy(req->address, address, req->_present.address_len); + req->_len.address = len; + req->address = malloc(req->_len.address); + memcpy(req->address, address, req->_len.address); } static inline void rt_addr_deladdr_req_set_local(struct rt_addr_deladdr_req *req, const void *local, size_t len) { free(req->local); - req->_present.local_len = len; - req->local = malloc(req->_present.local_len); - memcpy(req->local, local, req->_present.local_len); + req->_len.local = len; + req->local = malloc(req->_len.local); + memcpy(req->local, local, req->_len.local); } /* @@ -165,11 +165,11 @@ struct rt_addr_getaddr_rsp { struct ifaddrmsg _hdr; struct { - __u32 address_len; - __u32 label_len; - __u32 local_len; - __u32 cacheinfo_len; - } _present; + __u32 address; + __u32 label; + __u32 local; + __u32 cacheinfo; + } _len; void *address; char *label; @@ -213,9 +213,9 @@ struct rt_addr_getmulticast_rsp { struct ifaddrmsg _hdr; struct { - __u32 multicast_len; - __u32 cacheinfo_len; - } _present; + __u32 multicast; + __u32 cacheinfo; + } _len; void *multicast; void *cacheinfo; diff --git a/home/nipa/nipa_out/959697/ynl/old-code/rt-route-user.c b/home/nipa/nipa_out/959697/ynl/new-code/rt-route-user.c index e10449631697..08f3e657dd18 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/rt-route-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/rt-route-user.c @@ -153,7 +153,7 @@ int rt_route_metrics_put(struct nlmsghdr *nlh, unsigned int attr_type, ynl_attr_put_u32(nlh, RTAX_INITRWND, obj->initrwnd); if (obj->_present.quickack) ynl_attr_put_u32(nlh, RTAX_QUICKACK, obj->quickack); - if (obj->_present.cc_algo_len) + if (obj->_len.cc_algo) ynl_attr_put_str(nlh, RTAX_CC_ALGO, obj->cc_algo); if (obj->_present.fastopen_no_cookie) ynl_attr_put_u32(nlh, RTAX_FASTOPEN_NO_COOKIE, obj->fastopen_no_cookie); @@ -253,7 +253,7 @@ int rt_route_metrics_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.cc_algo_len = len; + dst->_len.cc_algo = len; dst->cc_algo = malloc(len + 1); memcpy(dst->cc_algo, ynl_attr_get_str(attr), len); dst->cc_algo[len] = 0; @@ -318,7 +318,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.dst_len = len; + dst->_len.dst = len; dst->dst = malloc(len); memcpy(dst->dst, ynl_attr_data(attr), len); } else if (type == RTA_SRC) { @@ -328,7 +328,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.src_len = len; + dst->_len.src = len; dst->src = malloc(len); memcpy(dst->src, ynl_attr_data(attr), len); } else if (type == RTA_IIF) { @@ -348,7 +348,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.gateway_len = len; + dst->_len.gateway = len; dst->gateway = malloc(len); memcpy(dst->gateway, ynl_attr_data(attr), len); } else if (type == RTA_PRIORITY) { @@ -363,7 +363,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.prefsrc_len = len; + dst->_len.prefsrc = len; dst->prefsrc = malloc(len); memcpy(dst->prefsrc, ynl_attr_data(attr), len); } else if (type == RTA_METRICS) { @@ -382,7 +382,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.multipath_len = len; + dst->_len.multipath = len; dst->multipath = malloc(len); memcpy(dst->multipath, ynl_attr_data(attr), len); } else if (type == RTA_FLOW) { @@ -397,7 +397,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.cacheinfo_len = len; + dst->_len.cacheinfo = len; dst->cacheinfo = malloc(len); memcpy(dst->cacheinfo, ynl_attr_data(attr), len); } else if (type == RTA_TABLE) { @@ -417,7 +417,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.mfc_stats_len = len; + dst->_len.mfc_stats = len; dst->mfc_stats = malloc(len); memcpy(dst->mfc_stats, ynl_attr_data(attr), len); } else if (type == RTA_VIA) { @@ -427,7 +427,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.via_len = len; + dst->_len.via = len; dst->via = malloc(len); memcpy(dst->via, ynl_attr_data(attr), len); } else if (type == RTA_NEWDST) { @@ -437,7 +437,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.newdst_len = len; + dst->_len.newdst = len; dst->newdst = malloc(len); memcpy(dst->newdst, ynl_attr_data(attr), len); } else if (type == RTA_PREF) { @@ -457,7 +457,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.encap_len = len; + dst->_len.encap = len; dst->encap = malloc(len); memcpy(dst->encap, ynl_attr_data(attr), len); } else if (type == RTA_EXPIRES) { @@ -472,7 +472,7 @@ int rt_route_getroute_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.pad_len = len; + dst->_len.pad = len; dst->pad = malloc(len); memcpy(dst->pad, ynl_attr_data(attr), len); } else if (type == RTA_UID) { @@ -535,10 +535,10 @@ rt_route_getroute(struct ynl_sock *ys, struct rt_route_getroute_req *req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req->_hdr, hdr_len); - if (req->_present.src_len) - ynl_attr_put(nlh, RTA_SRC, req->src, req->_present.src_len); - if (req->_present.dst_len) - ynl_attr_put(nlh, RTA_DST, req->dst, req->_present.dst_len); + if (req->_len.src) + ynl_attr_put(nlh, RTA_SRC, req->src, req->_len.src); + if (req->_len.dst) + ynl_attr_put(nlh, RTA_DST, req->dst, req->_len.dst); if (req->_present.iif) ynl_attr_put_u32(nlh, RTA_IIF, req->iif); if (req->_present.oif) @@ -673,48 +673,48 @@ int rt_route_newroute(struct ynl_sock *ys, struct rt_route_newroute_req *req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req->_hdr, hdr_len); - if (req->_present.dst_len) - ynl_attr_put(nlh, RTA_DST, req->dst, req->_present.dst_len); - if (req->_present.src_len) - ynl_attr_put(nlh, RTA_SRC, req->src, req->_present.src_len); + if (req->_len.dst) + ynl_attr_put(nlh, RTA_DST, req->dst, req->_len.dst); + if (req->_len.src) + ynl_attr_put(nlh, RTA_SRC, req->src, req->_len.src); if (req->_present.iif) ynl_attr_put_u32(nlh, RTA_IIF, req->iif); if (req->_present.oif) ynl_attr_put_u32(nlh, RTA_OIF, req->oif); - if (req->_present.gateway_len) - ynl_attr_put(nlh, RTA_GATEWAY, req->gateway, req->_present.gateway_len); + if (req->_len.gateway) + ynl_attr_put(nlh, RTA_GATEWAY, req->gateway, req->_len.gateway); if (req->_present.priority) ynl_attr_put_u32(nlh, RTA_PRIORITY, req->priority); - if (req->_present.prefsrc_len) - ynl_attr_put(nlh, RTA_PREFSRC, req->prefsrc, req->_present.prefsrc_len); + if (req->_len.prefsrc) + ynl_attr_put(nlh, RTA_PREFSRC, req->prefsrc, req->_len.prefsrc); if (req->_present.metrics) rt_route_metrics_put(nlh, RTA_METRICS, &req->metrics); - if (req->_present.multipath_len) - ynl_attr_put(nlh, RTA_MULTIPATH, req->multipath, req->_present.multipath_len); + if (req->_len.multipath) + ynl_attr_put(nlh, RTA_MULTIPATH, req->multipath, req->_len.multipath); if (req->_present.flow) ynl_attr_put_u32(nlh, RTA_FLOW, req->flow); - if (req->_present.cacheinfo_len) - ynl_attr_put(nlh, RTA_CACHEINFO, req->cacheinfo, req->_present.cacheinfo_len); + if (req->_len.cacheinfo) + ynl_attr_put(nlh, RTA_CACHEINFO, req->cacheinfo, req->_len.cacheinfo); if (req->_present.table) ynl_attr_put_u32(nlh, RTA_TABLE, req->table); if (req->_present.mark) ynl_attr_put_u32(nlh, RTA_MARK, req->mark); - if (req->_present.mfc_stats_len) - ynl_attr_put(nlh, RTA_MFC_STATS, req->mfc_stats, req->_present.mfc_stats_len); - if (req->_present.via_len) - ynl_attr_put(nlh, RTA_VIA, req->via, req->_present.via_len); - if (req->_present.newdst_len) - ynl_attr_put(nlh, RTA_NEWDST, req->newdst, req->_present.newdst_len); + if (req->_len.mfc_stats) + ynl_attr_put(nlh, RTA_MFC_STATS, req->mfc_stats, req->_len.mfc_stats); + if (req->_len.via) + ynl_attr_put(nlh, RTA_VIA, req->via, req->_len.via); + if (req->_len.newdst) + ynl_attr_put(nlh, RTA_NEWDST, req->newdst, req->_len.newdst); if (req->_present.pref) ynl_attr_put_u8(nlh, RTA_PREF, req->pref); if (req->_present.encap_type) ynl_attr_put_u16(nlh, RTA_ENCAP_TYPE, req->encap_type); - if (req->_present.encap_len) - ynl_attr_put(nlh, RTA_ENCAP, req->encap, req->_present.encap_len); + if (req->_len.encap) + ynl_attr_put(nlh, RTA_ENCAP, req->encap, req->_len.encap); if (req->_present.expires) ynl_attr_put_u32(nlh, RTA_EXPIRES, req->expires); - if (req->_present.pad_len) - ynl_attr_put(nlh, RTA_PAD, req->pad, req->_present.pad_len); + if (req->_len.pad) + ynl_attr_put(nlh, RTA_PAD, req->pad, req->_len.pad); if (req->_present.uid) ynl_attr_put_u32(nlh, RTA_UID, req->uid); if (req->_present.ttl_propagate) @@ -772,48 +772,48 @@ int rt_route_delroute(struct ynl_sock *ys, struct rt_route_delroute_req *req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req->_hdr, hdr_len); - if (req->_present.dst_len) - ynl_attr_put(nlh, RTA_DST, req->dst, req->_present.dst_len); - if (req->_present.src_len) - ynl_attr_put(nlh, RTA_SRC, req->src, req->_present.src_len); + if (req->_len.dst) + ynl_attr_put(nlh, RTA_DST, req->dst, req->_len.dst); + if (req->_len.src) + ynl_attr_put(nlh, RTA_SRC, req->src, req->_len.src); if (req->_present.iif) ynl_attr_put_u32(nlh, RTA_IIF, req->iif); if (req->_present.oif) ynl_attr_put_u32(nlh, RTA_OIF, req->oif); - if (req->_present.gateway_len) - ynl_attr_put(nlh, RTA_GATEWAY, req->gateway, req->_present.gateway_len); + if (req->_len.gateway) + ynl_attr_put(nlh, RTA_GATEWAY, req->gateway, req->_len.gateway); if (req->_present.priority) ynl_attr_put_u32(nlh, RTA_PRIORITY, req->priority); - if (req->_present.prefsrc_len) - ynl_attr_put(nlh, RTA_PREFSRC, req->prefsrc, req->_present.prefsrc_len); + if (req->_len.prefsrc) + ynl_attr_put(nlh, RTA_PREFSRC, req->prefsrc, req->_len.prefsrc); if (req->_present.metrics) rt_route_metrics_put(nlh, RTA_METRICS, &req->metrics); - if (req->_present.multipath_len) - ynl_attr_put(nlh, RTA_MULTIPATH, req->multipath, req->_present.multipath_len); + if (req->_len.multipath) + ynl_attr_put(nlh, RTA_MULTIPATH, req->multipath, req->_len.multipath); if (req->_present.flow) ynl_attr_put_u32(nlh, RTA_FLOW, req->flow); - if (req->_present.cacheinfo_len) - ynl_attr_put(nlh, RTA_CACHEINFO, req->cacheinfo, req->_present.cacheinfo_len); + if (req->_len.cacheinfo) + ynl_attr_put(nlh, RTA_CACHEINFO, req->cacheinfo, req->_len.cacheinfo); if (req->_present.table) ynl_attr_put_u32(nlh, RTA_TABLE, req->table); if (req->_present.mark) ynl_attr_put_u32(nlh, RTA_MARK, req->mark); - if (req->_present.mfc_stats_len) - ynl_attr_put(nlh, RTA_MFC_STATS, req->mfc_stats, req->_present.mfc_stats_len); - if (req->_present.via_len) - ynl_attr_put(nlh, RTA_VIA, req->via, req->_present.via_len); - if (req->_present.newdst_len) - ynl_attr_put(nlh, RTA_NEWDST, req->newdst, req->_present.newdst_len); + if (req->_len.mfc_stats) + ynl_attr_put(nlh, RTA_MFC_STATS, req->mfc_stats, req->_len.mfc_stats); + if (req->_len.via) + ynl_attr_put(nlh, RTA_VIA, req->via, req->_len.via); + if (req->_len.newdst) + ynl_attr_put(nlh, RTA_NEWDST, req->newdst, req->_len.newdst); if (req->_present.pref) ynl_attr_put_u8(nlh, RTA_PREF, req->pref); if (req->_present.encap_type) ynl_attr_put_u16(nlh, RTA_ENCAP_TYPE, req->encap_type); - if (req->_present.encap_len) - ynl_attr_put(nlh, RTA_ENCAP, req->encap, req->_present.encap_len); + if (req->_len.encap) + ynl_attr_put(nlh, RTA_ENCAP, req->encap, req->_len.encap); if (req->_present.expires) ynl_attr_put_u32(nlh, RTA_EXPIRES, req->expires); - if (req->_present.pad_len) - ynl_attr_put(nlh, RTA_PAD, req->pad, req->_present.pad_len); + if (req->_len.pad) + ynl_attr_put(nlh, RTA_PAD, req->pad, req->_len.pad); if (req->_present.uid) ynl_attr_put_u32(nlh, RTA_UID, req->uid); if (req->_present.ttl_propagate) diff --git a/home/nipa/nipa_out/959697/ynl/old-code/rt-route-user.h b/home/nipa/nipa_out/959697/ynl/new-code/rt-route-user.h index 0bc634c3258e..e8980b4868c9 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/rt-route-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/rt-route-user.h @@ -37,9 +37,11 @@ struct rt_route_metrics { __u32 rto_min:1; __u32 initrwnd:1; __u32 quickack:1; - __u32 cc_algo_len; __u32 fastopen_no_cookie:1; } _present; + struct { + __u32 cc_algo; + } _len; __u32 lock; __u32 mtu; @@ -68,8 +70,6 @@ struct rt_route_getroute_req { struct rtmsg _hdr; struct { - __u32 src_len; - __u32 dst_len; __u32 iif:1; __u32 oif:1; __u32 ip_proto:1; @@ -79,6 +79,10 @@ struct rt_route_getroute_req { __u32 uid:1; __u32 flowlabel:1; } _present; + struct { + __u32 src; + __u32 dst; + } _len; void *src; void *dst; @@ -110,18 +114,18 @@ rt_route_getroute_req_set_src(struct rt_route_getroute_req *req, const void *src, size_t len) { free(req->src); - req->_present.src_len = len; - req->src = malloc(req->_present.src_len); - memcpy(req->src, src, req->_present.src_len); + req->_len.src = len; + req->src = malloc(req->_len.src); + memcpy(req->src, src, req->_len.src); } static inline void rt_route_getroute_req_set_dst(struct rt_route_getroute_req *req, const void *dst, size_t len) { free(req->dst); - req->_present.dst_len = len; - req->dst = malloc(req->_present.dst_len); - memcpy(req->dst, dst, req->_present.dst_len); + req->_len.dst = len; + req->dst = malloc(req->_len.dst); + memcpy(req->dst, dst, req->_len.dst); } static inline void rt_route_getroute_req_set_iif(struct rt_route_getroute_req *req, __u32 iif) @@ -178,27 +182,16 @@ struct rt_route_getroute_rsp { struct rtmsg _hdr; struct { - __u32 dst_len; - __u32 src_len; __u32 iif:1; __u32 oif:1; - __u32 gateway_len; __u32 priority:1; - __u32 prefsrc_len; __u32 metrics:1; - __u32 multipath_len; __u32 flow:1; - __u32 cacheinfo_len; __u32 table:1; __u32 mark:1; - __u32 mfc_stats_len; - __u32 via_len; - __u32 newdst_len; __u32 pref:1; __u32 encap_type:1; - __u32 encap_len; __u32 expires:1; - __u32 pad_len; __u32 uid:1; __u32 ttl_propagate:1; __u32 ip_proto:1; @@ -207,6 +200,19 @@ struct rt_route_getroute_rsp { __u32 nh_id:1; __u32 flowlabel:1; } _present; + struct { + __u32 dst; + __u32 src; + __u32 gateway; + __u32 prefsrc; + __u32 multipath; + __u32 cacheinfo; + __u32 mfc_stats; + __u32 via; + __u32 newdst; + __u32 encap; + __u32 pad; + } _len; void *dst; void *src; @@ -277,27 +283,16 @@ struct rt_route_newroute_req { struct rtmsg _hdr; struct { - __u32 dst_len; - __u32 src_len; __u32 iif:1; __u32 oif:1; - __u32 gateway_len; __u32 priority:1; - __u32 prefsrc_len; __u32 metrics:1; - __u32 multipath_len; __u32 flow:1; - __u32 cacheinfo_len; __u32 table:1; __u32 mark:1; - __u32 mfc_stats_len; - __u32 via_len; - __u32 newdst_len; __u32 pref:1; __u32 encap_type:1; - __u32 encap_len; __u32 expires:1; - __u32 pad_len; __u32 uid:1; __u32 ttl_propagate:1; __u32 ip_proto:1; @@ -306,6 +301,19 @@ struct rt_route_newroute_req { __u32 nh_id:1; __u32 flowlabel:1; } _present; + struct { + __u32 dst; + __u32 src; + __u32 gateway; + __u32 prefsrc; + __u32 multipath; + __u32 cacheinfo; + __u32 mfc_stats; + __u32 via; + __u32 newdst; + __u32 encap; + __u32 pad; + } _len; void *dst; void *src; @@ -355,18 +363,18 @@ rt_route_newroute_req_set_dst(struct rt_route_newroute_req *req, const void *dst, size_t len) { free(req->dst); - req->_present.dst_len = len; - req->dst = malloc(req->_present.dst_len); - memcpy(req->dst, dst, req->_present.dst_len); + req->_len.dst = len; + req->dst = malloc(req->_len.dst); + memcpy(req->dst, dst, req->_len.dst); } static inline void rt_route_newroute_req_set_src(struct rt_route_newroute_req *req, const void *src, size_t len) { free(req->src); - req->_present.src_len = len; - req->src = malloc(req->_present.src_len); - memcpy(req->src, src, req->_present.src_len); + req->_len.src = len; + req->src = malloc(req->_len.src); + memcpy(req->src, src, req->_len.src); } static inline void rt_route_newroute_req_set_iif(struct rt_route_newroute_req *req, __u32 iif) @@ -385,9 +393,9 @@ rt_route_newroute_req_set_gateway(struct rt_route_newroute_req *req, const void *gateway, size_t len) { free(req->gateway); - req->_present.gateway_len = len; - req->gateway = malloc(req->_present.gateway_len); - memcpy(req->gateway, gateway, req->_present.gateway_len); + req->_len.gateway = len; + req->gateway = malloc(req->_len.gateway); + memcpy(req->gateway, gateway, req->_len.gateway); } static inline void rt_route_newroute_req_set_priority(struct rt_route_newroute_req *req, @@ -401,9 +409,9 @@ rt_route_newroute_req_set_prefsrc(struct rt_route_newroute_req *req, const void *prefsrc, size_t len) { free(req->prefsrc); - req->_present.prefsrc_len = len; - req->prefsrc = malloc(req->_present.prefsrc_len); - memcpy(req->prefsrc, prefsrc, req->_present.prefsrc_len); + req->_len.prefsrc = len; + req->prefsrc = malloc(req->_len.prefsrc); + memcpy(req->prefsrc, prefsrc, req->_len.prefsrc); } static inline void rt_route_newroute_req_set_metrics_lock(struct rt_route_newroute_req *req, @@ -531,10 +539,10 @@ rt_route_newroute_req_set_metrics_cc_algo(struct rt_route_newroute_req *req, { req->_present.metrics = 1; free(req->metrics.cc_algo); - req->metrics._present.cc_algo_len = strlen(cc_algo); - req->metrics.cc_algo = malloc(req->metrics._present.cc_algo_len + 1); - memcpy(req->metrics.cc_algo, cc_algo, req->metrics._present.cc_algo_len); - req->metrics.cc_algo[req->metrics._present.cc_algo_len] = 0; + req->metrics._len.cc_algo = strlen(cc_algo); + req->metrics.cc_algo = malloc(req->metrics._len.cc_algo + 1); + memcpy(req->metrics.cc_algo, cc_algo, req->metrics._len.cc_algo); + req->metrics.cc_algo[req->metrics._len.cc_algo] = 0; } static inline void rt_route_newroute_req_set_metrics_fastopen_no_cookie(struct rt_route_newroute_req *req, @@ -549,9 +557,9 @@ rt_route_newroute_req_set_multipath(struct rt_route_newroute_req *req, const void *multipath, size_t len) { free(req->multipath); - req->_present.multipath_len = len; - req->multipath = malloc(req->_present.multipath_len); - memcpy(req->multipath, multipath, req->_present.multipath_len); + req->_len.multipath = len; + req->multipath = malloc(req->_len.multipath); + memcpy(req->multipath, multipath, req->_len.multipath); } static inline void rt_route_newroute_req_set_flow(struct rt_route_newroute_req *req, __u32 flow) @@ -564,9 +572,9 @@ rt_route_newroute_req_set_cacheinfo(struct rt_route_newroute_req *req, const void *cacheinfo, size_t len) { free(req->cacheinfo); - req->_present.cacheinfo_len = len; - req->cacheinfo = malloc(req->_present.cacheinfo_len); - memcpy(req->cacheinfo, cacheinfo, req->_present.cacheinfo_len); + req->_len.cacheinfo = len; + req->cacheinfo = malloc(req->_len.cacheinfo); + memcpy(req->cacheinfo, cacheinfo, req->_len.cacheinfo); } static inline void rt_route_newroute_req_set_table(struct rt_route_newroute_req *req, __u32 table) @@ -585,27 +593,27 @@ rt_route_newroute_req_set_mfc_stats(struct rt_route_newroute_req *req, const void *mfc_stats, size_t len) { free(req->mfc_stats); - req->_present.mfc_stats_len = len; - req->mfc_stats = malloc(req->_present.mfc_stats_len); - memcpy(req->mfc_stats, mfc_stats, req->_present.mfc_stats_len); + req->_len.mfc_stats = len; + req->mfc_stats = malloc(req->_len.mfc_stats); + memcpy(req->mfc_stats, mfc_stats, req->_len.mfc_stats); } static inline void rt_route_newroute_req_set_via(struct rt_route_newroute_req *req, const void *via, size_t len) { free(req->via); - req->_present.via_len = len; - req->via = malloc(req->_present.via_len); - memcpy(req->via, via, req->_present.via_len); + req->_len.via = len; + req->via = malloc(req->_len.via); + memcpy(req->via, via, req->_len.via); } static inline void rt_route_newroute_req_set_newdst(struct rt_route_newroute_req *req, const void *newdst, size_t len) { free(req->newdst); - req->_present.newdst_len = len; - req->newdst = malloc(req->_present.newdst_len); - memcpy(req->newdst, newdst, req->_present.newdst_len); + req->_len.newdst = len; + req->newdst = malloc(req->_len.newdst); + memcpy(req->newdst, newdst, req->_len.newdst); } static inline void rt_route_newroute_req_set_pref(struct rt_route_newroute_req *req, __u8 pref) @@ -625,9 +633,9 @@ rt_route_newroute_req_set_encap(struct rt_route_newroute_req *req, const void *encap, size_t len) { free(req->encap); - req->_present.encap_len = len; - req->encap = malloc(req->_present.encap_len); - memcpy(req->encap, encap, req->_present.encap_len); + req->_len.encap = len; + req->encap = malloc(req->_len.encap); + memcpy(req->encap, encap, req->_len.encap); } static inline void rt_route_newroute_req_set_expires(struct rt_route_newroute_req *req, @@ -641,9 +649,9 @@ rt_route_newroute_req_set_pad(struct rt_route_newroute_req *req, const void *pad, size_t len) { free(req->pad); - req->_present.pad_len = len; - req->pad = malloc(req->_present.pad_len); - memcpy(req->pad, pad, req->_present.pad_len); + req->_len.pad = len; + req->pad = malloc(req->_len.pad); + memcpy(req->pad, pad, req->_len.pad); } static inline void rt_route_newroute_req_set_uid(struct rt_route_newroute_req *req, __u32 uid) @@ -704,27 +712,16 @@ struct rt_route_delroute_req { struct rtmsg _hdr; struct { - __u32 dst_len; - __u32 src_len; __u32 iif:1; __u32 oif:1; - __u32 gateway_len; __u32 priority:1; - __u32 prefsrc_len; __u32 metrics:1; - __u32 multipath_len; __u32 flow:1; - __u32 cacheinfo_len; __u32 table:1; __u32 mark:1; - __u32 mfc_stats_len; - __u32 via_len; - __u32 newdst_len; __u32 pref:1; __u32 encap_type:1; - __u32 encap_len; __u32 expires:1; - __u32 pad_len; __u32 uid:1; __u32 ttl_propagate:1; __u32 ip_proto:1; @@ -733,6 +730,19 @@ struct rt_route_delroute_req { __u32 nh_id:1; __u32 flowlabel:1; } _present; + struct { + __u32 dst; + __u32 src; + __u32 gateway; + __u32 prefsrc; + __u32 multipath; + __u32 cacheinfo; + __u32 mfc_stats; + __u32 via; + __u32 newdst; + __u32 encap; + __u32 pad; + } _len; void *dst; void *src; @@ -782,18 +792,18 @@ rt_route_delroute_req_set_dst(struct rt_route_delroute_req *req, const void *dst, size_t len) { free(req->dst); - req->_present.dst_len = len; - req->dst = malloc(req->_present.dst_len); - memcpy(req->dst, dst, req->_present.dst_len); + req->_len.dst = len; + req->dst = malloc(req->_len.dst); + memcpy(req->dst, dst, req->_len.dst); } static inline void rt_route_delroute_req_set_src(struct rt_route_delroute_req *req, const void *src, size_t len) { free(req->src); - req->_present.src_len = len; - req->src = malloc(req->_present.src_len); - memcpy(req->src, src, req->_present.src_len); + req->_len.src = len; + req->src = malloc(req->_len.src); + memcpy(req->src, src, req->_len.src); } static inline void rt_route_delroute_req_set_iif(struct rt_route_delroute_req *req, __u32 iif) @@ -812,9 +822,9 @@ rt_route_delroute_req_set_gateway(struct rt_route_delroute_req *req, const void *gateway, size_t len) { free(req->gateway); - req->_present.gateway_len = len; - req->gateway = malloc(req->_present.gateway_len); - memcpy(req->gateway, gateway, req->_present.gateway_len); + req->_len.gateway = len; + req->gateway = malloc(req->_len.gateway); + memcpy(req->gateway, gateway, req->_len.gateway); } static inline void rt_route_delroute_req_set_priority(struct rt_route_delroute_req *req, @@ -828,9 +838,9 @@ rt_route_delroute_req_set_prefsrc(struct rt_route_delroute_req *req, const void *prefsrc, size_t len) { free(req->prefsrc); - req->_present.prefsrc_len = len; - req->prefsrc = malloc(req->_present.prefsrc_len); - memcpy(req->prefsrc, prefsrc, req->_present.prefsrc_len); + req->_len.prefsrc = len; + req->prefsrc = malloc(req->_len.prefsrc); + memcpy(req->prefsrc, prefsrc, req->_len.prefsrc); } static inline void rt_route_delroute_req_set_metrics_lock(struct rt_route_delroute_req *req, @@ -958,10 +968,10 @@ rt_route_delroute_req_set_metrics_cc_algo(struct rt_route_delroute_req *req, { req->_present.metrics = 1; free(req->metrics.cc_algo); - req->metrics._present.cc_algo_len = strlen(cc_algo); - req->metrics.cc_algo = malloc(req->metrics._present.cc_algo_len + 1); - memcpy(req->metrics.cc_algo, cc_algo, req->metrics._present.cc_algo_len); - req->metrics.cc_algo[req->metrics._present.cc_algo_len] = 0; + req->metrics._len.cc_algo = strlen(cc_algo); + req->metrics.cc_algo = malloc(req->metrics._len.cc_algo + 1); + memcpy(req->metrics.cc_algo, cc_algo, req->metrics._len.cc_algo); + req->metrics.cc_algo[req->metrics._len.cc_algo] = 0; } static inline void rt_route_delroute_req_set_metrics_fastopen_no_cookie(struct rt_route_delroute_req *req, @@ -976,9 +986,9 @@ rt_route_delroute_req_set_multipath(struct rt_route_delroute_req *req, const void *multipath, size_t len) { free(req->multipath); - req->_present.multipath_len = len; - req->multipath = malloc(req->_present.multipath_len); - memcpy(req->multipath, multipath, req->_present.multipath_len); + req->_len.multipath = len; + req->multipath = malloc(req->_len.multipath); + memcpy(req->multipath, multipath, req->_len.multipath); } static inline void rt_route_delroute_req_set_flow(struct rt_route_delroute_req *req, __u32 flow) @@ -991,9 +1001,9 @@ rt_route_delroute_req_set_cacheinfo(struct rt_route_delroute_req *req, const void *cacheinfo, size_t len) { free(req->cacheinfo); - req->_present.cacheinfo_len = len; - req->cacheinfo = malloc(req->_present.cacheinfo_len); - memcpy(req->cacheinfo, cacheinfo, req->_present.cacheinfo_len); + req->_len.cacheinfo = len; + req->cacheinfo = malloc(req->_len.cacheinfo); + memcpy(req->cacheinfo, cacheinfo, req->_len.cacheinfo); } static inline void rt_route_delroute_req_set_table(struct rt_route_delroute_req *req, __u32 table) @@ -1012,27 +1022,27 @@ rt_route_delroute_req_set_mfc_stats(struct rt_route_delroute_req *req, const void *mfc_stats, size_t len) { free(req->mfc_stats); - req->_present.mfc_stats_len = len; - req->mfc_stats = malloc(req->_present.mfc_stats_len); - memcpy(req->mfc_stats, mfc_stats, req->_present.mfc_stats_len); + req->_len.mfc_stats = len; + req->mfc_stats = malloc(req->_len.mfc_stats); + memcpy(req->mfc_stats, mfc_stats, req->_len.mfc_stats); } static inline void rt_route_delroute_req_set_via(struct rt_route_delroute_req *req, const void *via, size_t len) { free(req->via); - req->_present.via_len = len; - req->via = malloc(req->_present.via_len); - memcpy(req->via, via, req->_present.via_len); + req->_len.via = len; + req->via = malloc(req->_len.via); + memcpy(req->via, via, req->_len.via); } static inline void rt_route_delroute_req_set_newdst(struct rt_route_delroute_req *req, const void *newdst, size_t len) { free(req->newdst); - req->_present.newdst_len = len; - req->newdst = malloc(req->_present.newdst_len); - memcpy(req->newdst, newdst, req->_present.newdst_len); + req->_len.newdst = len; + req->newdst = malloc(req->_len.newdst); + memcpy(req->newdst, newdst, req->_len.newdst); } static inline void rt_route_delroute_req_set_pref(struct rt_route_delroute_req *req, __u8 pref) @@ -1052,9 +1062,9 @@ rt_route_delroute_req_set_encap(struct rt_route_delroute_req *req, const void *encap, size_t len) { free(req->encap); - req->_present.encap_len = len; - req->encap = malloc(req->_present.encap_len); - memcpy(req->encap, encap, req->_present.encap_len); + req->_len.encap = len; + req->encap = malloc(req->_len.encap); + memcpy(req->encap, encap, req->_len.encap); } static inline void rt_route_delroute_req_set_expires(struct rt_route_delroute_req *req, @@ -1068,9 +1078,9 @@ rt_route_delroute_req_set_pad(struct rt_route_delroute_req *req, const void *pad, size_t len) { free(req->pad); - req->_present.pad_len = len; - req->pad = malloc(req->_present.pad_len); - memcpy(req->pad, pad, req->_present.pad_len); + req->_len.pad = len; + req->pad = malloc(req->_len.pad); + memcpy(req->pad, pad, req->_len.pad); } static inline void rt_route_delroute_req_set_uid(struct rt_route_delroute_req *req, __u32 uid) diff --git a/home/nipa/nipa_out/959697/ynl/old-code/tcp_metrics-user.c b/home/nipa/nipa_out/959697/ynl/new-code/tcp_metrics-user.c index dbe314c8ac27..857f96220f4f 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/tcp_metrics-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/tcp_metrics-user.c @@ -159,7 +159,7 @@ int tcp_metrics_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.addr_ipv6_len = len; + dst->_len.addr_ipv6 = len; dst->addr_ipv6 = malloc(len); memcpy(dst->addr_ipv6, ynl_attr_data(attr), len); } else if (type == TCP_METRICS_ATTR_SADDR_IPV4) { @@ -174,7 +174,7 @@ int tcp_metrics_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.saddr_ipv6_len = len; + dst->_len.saddr_ipv6 = len; dst->saddr_ipv6 = malloc(len); memcpy(dst->saddr_ipv6, ynl_attr_data(attr), len); } else if (type == TCP_METRICS_ATTR_AGE) { @@ -213,7 +213,7 @@ int tcp_metrics_get_rsp_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.fopen_cookie_len = len; + dst->_len.fopen_cookie = len; dst->fopen_cookie = malloc(len); memcpy(dst->fopen_cookie, ynl_attr_data(attr), len); } @@ -237,12 +237,12 @@ tcp_metrics_get(struct ynl_sock *ys, struct tcp_metrics_get_req *req) if (req->_present.addr_ipv4) ynl_attr_put_u32(nlh, TCP_METRICS_ATTR_ADDR_IPV4, req->addr_ipv4); - if (req->_present.addr_ipv6_len) - ynl_attr_put(nlh, TCP_METRICS_ATTR_ADDR_IPV6, req->addr_ipv6, req->_present.addr_ipv6_len); + if (req->_len.addr_ipv6) + ynl_attr_put(nlh, TCP_METRICS_ATTR_ADDR_IPV6, req->addr_ipv6, req->_len.addr_ipv6); if (req->_present.saddr_ipv4) ynl_attr_put_u32(nlh, TCP_METRICS_ATTR_SADDR_IPV4, req->saddr_ipv4); - if (req->_present.saddr_ipv6_len) - ynl_attr_put(nlh, TCP_METRICS_ATTR_SADDR_IPV6, req->saddr_ipv6, req->_present.saddr_ipv6_len); + if (req->_len.saddr_ipv6) + ynl_attr_put(nlh, TCP_METRICS_ATTR_SADDR_IPV6, req->saddr_ipv6, req->_len.saddr_ipv6); rsp = calloc(1, sizeof(*rsp)); yrs.yarg.data = rsp; @@ -324,12 +324,12 @@ int tcp_metrics_del(struct ynl_sock *ys, struct tcp_metrics_del_req *req) if (req->_present.addr_ipv4) ynl_attr_put_u32(nlh, TCP_METRICS_ATTR_ADDR_IPV4, req->addr_ipv4); - if (req->_present.addr_ipv6_len) - ynl_attr_put(nlh, TCP_METRICS_ATTR_ADDR_IPV6, req->addr_ipv6, req->_present.addr_ipv6_len); + if (req->_len.addr_ipv6) + ynl_attr_put(nlh, TCP_METRICS_ATTR_ADDR_IPV6, req->addr_ipv6, req->_len.addr_ipv6); if (req->_present.saddr_ipv4) ynl_attr_put_u32(nlh, TCP_METRICS_ATTR_SADDR_IPV4, req->saddr_ipv4); - if (req->_present.saddr_ipv6_len) - ynl_attr_put(nlh, TCP_METRICS_ATTR_SADDR_IPV6, req->saddr_ipv6, req->_present.saddr_ipv6_len); + if (req->_len.saddr_ipv6) + ynl_attr_put(nlh, TCP_METRICS_ATTR_SADDR_IPV6, req->saddr_ipv6, req->_len.saddr_ipv6); err = ynl_exec(ys, nlh, &yrs); if (err < 0) diff --git a/home/nipa/nipa_out/959697/ynl/old-code/tcp_metrics-user.h b/home/nipa/nipa_out/959697/ynl/new-code/tcp_metrics-user.h index c77b567ced56..525627f116f7 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/tcp_metrics-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/tcp_metrics-user.h @@ -44,10 +44,12 @@ struct tcp_metrics_metrics { struct tcp_metrics_get_req { struct { __u32 addr_ipv4:1; - __u32 addr_ipv6_len; __u32 saddr_ipv4:1; - __u32 saddr_ipv6_len; } _present; + struct { + __u32 addr_ipv6; + __u32 saddr_ipv6; + } _len; __u32 addr_ipv4 /* big-endian */; void *addr_ipv6; @@ -73,9 +75,9 @@ tcp_metrics_get_req_set_addr_ipv6(struct tcp_metrics_get_req *req, const void *addr_ipv6, size_t len) { free(req->addr_ipv6); - req->_present.addr_ipv6_len = len; - req->addr_ipv6 = malloc(req->_present.addr_ipv6_len); - memcpy(req->addr_ipv6, addr_ipv6, req->_present.addr_ipv6_len); + req->_len.addr_ipv6 = len; + req->addr_ipv6 = malloc(req->_len.addr_ipv6); + memcpy(req->addr_ipv6, addr_ipv6, req->_len.addr_ipv6); } static inline void tcp_metrics_get_req_set_saddr_ipv4(struct tcp_metrics_get_req *req, @@ -89,24 +91,26 @@ tcp_metrics_get_req_set_saddr_ipv6(struct tcp_metrics_get_req *req, const void *saddr_ipv6, size_t len) { free(req->saddr_ipv6); - req->_present.saddr_ipv6_len = len; - req->saddr_ipv6 = malloc(req->_present.saddr_ipv6_len); - memcpy(req->saddr_ipv6, saddr_ipv6, req->_present.saddr_ipv6_len); + req->_len.saddr_ipv6 = len; + req->saddr_ipv6 = malloc(req->_len.saddr_ipv6); + memcpy(req->saddr_ipv6, saddr_ipv6, req->_len.saddr_ipv6); } struct tcp_metrics_get_rsp { struct { __u32 addr_ipv4:1; - __u32 addr_ipv6_len; __u32 saddr_ipv4:1; - __u32 saddr_ipv6_len; __u32 age:1; __u32 vals:1; __u32 fopen_mss:1; __u32 fopen_syn_drops:1; __u32 fopen_syn_drop_ts:1; - __u32 fopen_cookie_len; } _present; + struct { + __u32 addr_ipv6; + __u32 saddr_ipv6; + __u32 fopen_cookie; + } _len; __u32 addr_ipv4 /* big-endian */; void *addr_ipv6; @@ -143,10 +147,12 @@ struct tcp_metrics_get_list *tcp_metrics_get_dump(struct ynl_sock *ys); struct tcp_metrics_del_req { struct { __u32 addr_ipv4:1; - __u32 addr_ipv6_len; __u32 saddr_ipv4:1; - __u32 saddr_ipv6_len; } _present; + struct { + __u32 addr_ipv6; + __u32 saddr_ipv6; + } _len; __u32 addr_ipv4 /* big-endian */; void *addr_ipv6; @@ -172,9 +178,9 @@ tcp_metrics_del_req_set_addr_ipv6(struct tcp_metrics_del_req *req, const void *addr_ipv6, size_t len) { free(req->addr_ipv6); - req->_present.addr_ipv6_len = len; - req->addr_ipv6 = malloc(req->_present.addr_ipv6_len); - memcpy(req->addr_ipv6, addr_ipv6, req->_present.addr_ipv6_len); + req->_len.addr_ipv6 = len; + req->addr_ipv6 = malloc(req->_len.addr_ipv6); + memcpy(req->addr_ipv6, addr_ipv6, req->_len.addr_ipv6); } static inline void tcp_metrics_del_req_set_saddr_ipv4(struct tcp_metrics_del_req *req, @@ -188,9 +194,9 @@ tcp_metrics_del_req_set_saddr_ipv6(struct tcp_metrics_del_req *req, const void *saddr_ipv6, size_t len) { free(req->saddr_ipv6); - req->_present.saddr_ipv6_len = len; - req->saddr_ipv6 = malloc(req->_present.saddr_ipv6_len); - memcpy(req->saddr_ipv6, saddr_ipv6, req->_present.saddr_ipv6_len); + req->_len.saddr_ipv6 = len; + req->saddr_ipv6 = malloc(req->_len.saddr_ipv6); + memcpy(req->saddr_ipv6, saddr_ipv6, req->_len.saddr_ipv6); } /* diff --git a/home/nipa/nipa_out/959697/ynl/old-code/team-user.c b/home/nipa/nipa_out/959697/ynl/new-code/team-user.c index 93d6a4b04192..9d79584ae3a1 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/team-user.c +++ b/home/nipa/nipa_out/959697/ynl/new-code/team-user.c @@ -102,14 +102,14 @@ int team_attr_option_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj->_present.name_len) + if (obj->_len.name) ynl_attr_put_str(nlh, TEAM_ATTR_OPTION_NAME, obj->name); if (obj->_present.changed) ynl_attr_put(nlh, TEAM_ATTR_OPTION_CHANGED, NULL, 0); if (obj->_present.type) ynl_attr_put_u8(nlh, TEAM_ATTR_OPTION_TYPE, obj->type); - if (obj->_present.data_len) - ynl_attr_put(nlh, TEAM_ATTR_OPTION_DATA, obj->data, obj->_present.data_len); + if (obj->_len.data) + ynl_attr_put(nlh, TEAM_ATTR_OPTION_DATA, obj->data, obj->_len.data); if (obj->_present.removed) ynl_attr_put(nlh, TEAM_ATTR_OPTION_REMOVED, NULL, 0); if (obj->_present.port_ifindex) @@ -137,7 +137,7 @@ int team_attr_option_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = strnlen(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); - dst->_present.name_len = len; + dst->_len.name = len; dst->name = malloc(len + 1); memcpy(dst->name, ynl_attr_get_str(attr), len); dst->name[len] = 0; @@ -157,7 +157,7 @@ int team_attr_option_parse(struct ynl_parse_arg *yarg, return YNL_PARSE_CB_ERROR; len = ynl_attr_data_len(attr); - dst->_present.data_len = len; + dst->_len.data = len; dst->data = malloc(len); memcpy(dst->data, ynl_attr_data(attr), len); } else if (type == TEAM_ATTR_OPTION_REMOVED) { diff --git a/home/nipa/nipa_out/959697/ynl/old-code/team-user.h b/home/nipa/nipa_out/959697/ynl/new-code/team-user.h index 125efca83e5f..c73fd4f9119e 100644 --- a/home/nipa/nipa_out/959697/ynl/old-code/team-user.h +++ b/home/nipa/nipa_out/959697/ynl/new-code/team-user.h @@ -21,14 +21,16 @@ const char *team_op_str(int op); /* Common nested types */ struct team_attr_option { struct { - __u32 name_len; __u32 changed:1; __u32 type:1; - __u32 data_len; __u32 removed:1; __u32 port_ifindex:1; __u32 array_index:1; } _present; + struct { + __u32 name; + __u32 data; + } _len; char *name; __u8 type; @@ -118,10 +120,10 @@ team_options_set_req_set_list_option_option_name(struct team_options_set_req *re req->_present.list_option = 1; req->list_option._present.option = 1; free(req->list_option.option.name); - req->list_option.option._present.name_len = strlen(name); - req->list_option.option.name = malloc(req->list_option.option._present.name_len + 1); - memcpy(req->list_option.option.name, name, req->list_option.option._present.name_len); - req->list_option.option.name[req->list_option.option._present.name_len] = 0; + req->list_option.option._len.name = strlen(name); + req->list_option.option.name = malloc(req->list_option.option._len.name + 1); + memcpy(req->list_option.option.name, name, req->list_option.option._len.name); + req->list_option.option.name[req->list_option.option._len.name] = 0; } static inline void team_options_set_req_set_list_option_option_changed(struct team_options_set_req *req) @@ -146,9 +148,9 @@ team_options_set_req_set_list_option_option_data(struct team_options_set_req *re req->_present.list_option = 1; req->list_option._present.option = 1; free(req->list_option.option.data); - req->list_option.option._present.data_len = len; - req->list_option.option.data = malloc(req->list_option.option._present.data_len); - memcpy(req->list_option.option.data, data, req->list_option.option._present.data_len); + req->list_option.option._len.data = len; + req->list_option.option.data = malloc(req->list_option.option._len.data); + memcpy(req->list_option.option.data, data, req->list_option.option._len.data); } static inline void team_options_set_req_set_list_option_option_removed(struct team_options_set_req *req)