/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
/* Do not edit directly, auto-generated from: */
/* Documentation/netlink/specs/devlink.yaml */
/* YNL-GEN user header */
#ifndef _LINUX_DEVLINK_GEN_H
#define _LINUX_DEVLINK_GEN_H
#include <stdlib.h>
#include <string.h>
#include <linux/types.h>
#include <linux/netlink.h>
#include <linux/devlink.h>
struct ynl_sock;
extern const struct ynl_family ynl_devlink_family;
/* Enums */
const char *devlink_op_str(int op);
const char *devlink_sb_pool_type_str(enum devlink_sb_pool_type value);
const char *devlink_port_type_str(enum devlink_port_type value);
const char *devlink_port_flavour_str(enum devlink_port_flavour value);
const char *devlink_port_fn_state_str(enum devlink_port_fn_state value);
const char *devlink_port_fn_opstate_str(enum devlink_port_fn_opstate value);
const char *devlink_port_fn_attr_cap_str(enum devlink_port_fn_attr_cap value);
const char *
devlink_sb_threshold_type_str(enum devlink_sb_threshold_type value);
const char *devlink_eswitch_mode_str(enum devlink_eswitch_mode value);
const char *
devlink_eswitch_inline_mode_str(enum devlink_eswitch_inline_mode value);
const char *
devlink_eswitch_encap_mode_str(enum devlink_eswitch_encap_mode value);
const char *devlink_dpipe_match_type_str(enum devlink_dpipe_match_type value);
const char *
devlink_dpipe_action_type_str(enum devlink_dpipe_action_type value);
const char *
devlink_dpipe_field_mapping_type_str(enum devlink_dpipe_field_mapping_type value);
const char *devlink_resource_unit_str(enum devlink_resource_unit value);
const char *devlink_reload_action_str(enum devlink_reload_action value);
const char *devlink_param_cmode_str(enum devlink_param_cmode value);
const char *devlink_flash_overwrite_str(enum devlink_flash_overwrite value);
const char *devlink_trap_action_str(enum devlink_trap_action value);
/* Common nested types */
struct devlink_dl_dpipe_match {
struct {
__u32 dpipe_match_type:1;
__u32 dpipe_header_id:1;
__u32 dpipe_header_global:1;
__u32 dpipe_header_index:1;
__u32 dpipe_field_id:1;
} _present;
enum devlink_dpipe_match_type dpipe_match_type;
__u32 dpipe_header_id;
__u8 dpipe_header_global;
__u32 dpipe_header_index;
__u32 dpipe_field_id;
};
struct devlink_dl_dpipe_match_value {
struct {
__u32 dpipe_value_len;
__u32 dpipe_value_mask_len;
__u32 dpipe_value_mapping:1;
} _present;
unsigned int n_dpipe_match;
struct devlink_dl_dpipe_match *dpipe_match;
void *dpipe_value;
void *dpipe_value_mask;
__u32 dpipe_value_mapping;
};
struct devlink_dl_dpipe_action {
struct {
__u32 dpipe_action_type:1;
__u32 dpipe_header_id:1;
__u32 dpipe_header_global:1;
__u32 dpipe_header_index:1;
__u32 dpipe_field_id:1;
} _present;
enum devlink_dpipe_action_type dpipe_action_type;
__u32 dpipe_header_id;
__u8 dpipe_header_global;
__u32 dpipe_header_index;
__u32 dpipe_field_id;
};
struct devlink_dl_dpipe_action_value {
struct {
__u32 dpipe_value_len;
__u32 dpipe_value_mask_len;
__u32 dpipe_value_mapping:1;
} _present;
unsigned int n_dpipe_action;
struct devlink_dl_dpipe_action *dpipe_action;
void *dpipe_value;
void *dpipe_value_mask;
__u32 dpipe_value_mapping;
};
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;
char *dpipe_field_name;
__u32 dpipe_field_id;
__u32 dpipe_field_bitwidth;
enum devlink_dpipe_field_mapping_type dpipe_field_mapping_type;
};
struct devlink_dl_resource {
struct {
__u32 resource_name_len;
__u32 resource_id:1;
__u32 resource_size:1;
__u32 resource_size_new:1;
__u32 resource_size_valid:1;
__u32 resource_size_min:1;
__u32 resource_size_max:1;
__u32 resource_size_gran:1;
__u32 resource_unit:1;
__u32 resource_occ:1;
} _present;
char *resource_name;
__u64 resource_id;
__u64 resource_size;
__u64 resource_size_new;
__u8 resource_size_valid;
__u64 resource_size_min;
__u64 resource_size_max;
__u64 resource_size_gran;
enum devlink_resource_unit resource_unit;
__u64 resource_occ;
};
struct devlink_dl_info_version {
struct {
__u32 info_version_name_len;
__u32 info_version_value_len;
} _present;
char *info_version_name;
char *info_version_value;
};
struct devlink_dl_fmsg {
struct {
__u32 fmsg_obj_nest_start:1;
__u32 fmsg_pair_nest_start:1;
__u32 fmsg_arr_nest_start:1;
__u32 fmsg_nest_end:1;
__u32 fmsg_obj_name_len;
} _present;
char *fmsg_obj_name;
};
struct devlink_dl_port_function {
struct {
__u32 hw_addr_len;
__u32 state:1;
__u32 opstate:1;
__u32 caps:1;
} _present;
void *hw_addr;
enum devlink_port_fn_state state;
enum devlink_port_fn_opstate opstate;
struct nla_bitfield32 caps;
};
struct devlink_dl_reload_stats_entry {
struct {
__u32 reload_stats_limit:1;
__u32 reload_stats_value:1;
} _present;
__u8 reload_stats_limit;
__u32 reload_stats_value;
};
struct devlink_dl_reload_act_stats {
unsigned int n_reload_stats_entry;
struct devlink_dl_reload_stats_entry *reload_stats_entry;
};
struct devlink_dl_selftest_id {
struct {
__u32 flash:1;
} _present;
};
struct devlink_dl_dpipe_table_matches {
unsigned int n_dpipe_match;
struct devlink_dl_dpipe_match *dpipe_match;
};
struct devlink_dl_dpipe_table_actions {
unsigned int n_dpipe_action;
struct devlink_dl_dpipe_action *dpipe_action;
};
struct devlink_dl_dpipe_entry_match_values {
unsigned int n_dpipe_match_value;
struct devlink_dl_dpipe_match_value *dpipe_match_value;
};
struct devlink_dl_dpipe_entry_action_values {
unsigned int n_dpipe_action_value;
struct devlink_dl_dpipe_action_value *dpipe_action_value;
};
struct devlink_dl_dpipe_header_fields {
unsigned int n_dpipe_field;
struct devlink_dl_dpipe_field *dpipe_field;
};
struct devlink_dl_resource_list {
unsigned int n_resource;
struct devlink_dl_resource *resource;
};
struct devlink_dl_reload_act_info {
struct {
__u32 reload_action:1;
} _present;
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;
__u32 dpipe_table_counters_enabled:1;
__u32 dpipe_table_resource_id:1;
__u32 dpipe_table_resource_units:1;
} _present;
char *dpipe_table_name;
__u64 dpipe_table_size;
struct devlink_dl_dpipe_table_matches dpipe_table_matches;
struct devlink_dl_dpipe_table_actions dpipe_table_actions;
__u8 dpipe_table_counters_enabled;
__u64 dpipe_table_resource_id;
__u64 dpipe_table_resource_units;
};
struct devlink_dl_dpipe_entry {
struct {
__u32 dpipe_entry_index:1;
__u32 dpipe_entry_match_values:1;
__u32 dpipe_entry_action_values:1;
__u32 dpipe_entry_counter:1;
} _present;
__u64 dpipe_entry_index;
struct devlink_dl_dpipe_entry_match_values dpipe_entry_match_values;
struct devlink_dl_dpipe_entry_action_values dpipe_entry_action_values;
__u64 dpipe_entry_counter;
};
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;
char *dpipe_header_name;
__u32 dpipe_header_id;
__u8 dpipe_header_global;
struct devlink_dl_dpipe_header_fields dpipe_header_fields;
};
struct devlink_dl_reload_stats {
unsigned int n_reload_action_info;
struct devlink_dl_reload_act_info *reload_action_info;
};
struct devlink_dl_dpipe_tables {
unsigned int n_dpipe_table;
struct devlink_dl_dpipe_table *dpipe_table;
};
struct devlink_dl_dpipe_entries {
unsigned int n_dpipe_entry;
struct devlink_dl_dpipe_entry *dpipe_entry;
};
struct devlink_dl_dpipe_headers {
unsigned int n_dpipe_header;
struct devlink_dl_dpipe_header *dpipe_header;
};
struct devlink_dl_dev_stats {
struct {
__u32 reload_stats:1;
__u32 remote_reload_stats:1;
} _present;
struct devlink_dl_reload_stats reload_stats;
struct devlink_dl_reload_stats remote_reload_stats;
};
/* ============== DEVLINK_CMD_GET ============== */
/* DEVLINK_CMD_GET - do */
struct devlink_get_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
} _present;
char *bus_name;
char *dev_name;
};
static inline struct devlink_get_req *devlink_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_get_req));
}
void devlink_get_req_free(struct devlink_get_req *req);
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;
}
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;
}
struct devlink_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 reload_failed:1;
__u32 dev_stats:1;
} _present;
char *bus_name;
char *dev_name;
__u8 reload_failed;
struct devlink_dl_dev_stats dev_stats;
};
void devlink_get_rsp_free(struct devlink_get_rsp *rsp);
/*
* Get devlink instances.
*/
struct devlink_get_rsp *
devlink_get(struct ynl_sock *ys, struct devlink_get_req *req);
/* DEVLINK_CMD_GET - dump */
struct devlink_get_list {
struct devlink_get_list *next;
struct devlink_get_rsp obj __attribute__((aligned(8)));
};
void devlink_get_list_free(struct devlink_get_list *rsp);
struct devlink_get_list *devlink_get_dump(struct ynl_sock *ys);
/* ============== DEVLINK_CMD_PORT_GET ============== */
/* DEVLINK_CMD_PORT_GET - do */
struct devlink_port_get_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
};
static inline struct devlink_port_get_req *devlink_port_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_port_get_req));
}
void devlink_port_get_req_free(struct devlink_port_get_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_port_get_req_set_port_index(struct devlink_port_get_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
struct devlink_port_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
};
void devlink_port_get_rsp_free(struct devlink_port_get_rsp *rsp);
/*
* Get devlink port instances.
*/
struct devlink_port_get_rsp *
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;
char *bus_name;
char *dev_name;
};
static inline struct devlink_port_get_req_dump *
devlink_port_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_port_get_req_dump));
}
void devlink_port_get_req_dump_free(struct devlink_port_get_req_dump *req);
static inline void
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;
}
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;
}
struct devlink_port_get_rsp_dump {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
};
struct devlink_port_get_rsp_list {
struct devlink_port_get_rsp_list *next;
struct devlink_port_get_rsp_dump obj __attribute__((aligned(8)));
};
void devlink_port_get_rsp_list_free(struct devlink_port_get_rsp_list *rsp);
struct devlink_port_get_rsp_list *
devlink_port_get_dump(struct ynl_sock *ys,
struct devlink_port_get_req_dump *req);
/* ============== DEVLINK_CMD_PORT_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
enum devlink_port_type port_type;
struct devlink_dl_port_function port_function;
};
static inline struct devlink_port_set_req *devlink_port_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_port_set_req));
}
void devlink_port_set_req_free(struct devlink_port_set_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_port_set_req_set_port_index(struct devlink_port_set_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_port_set_req_set_port_type(struct devlink_port_set_req *req,
enum devlink_port_type port_type)
{
req->_present.port_type = 1;
req->port_type = port_type;
}
static inline void
devlink_port_set_req_set_port_function_hw_addr(struct devlink_port_set_req *req,
const void *hw_addr, size_t len)
{
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);
}
static inline void
devlink_port_set_req_set_port_function_state(struct devlink_port_set_req *req,
enum devlink_port_fn_state state)
{
req->_present.port_function = 1;
req->port_function._present.state = 1;
req->port_function.state = state;
}
static inline void
devlink_port_set_req_set_port_function_opstate(struct devlink_port_set_req *req,
enum devlink_port_fn_opstate opstate)
{
req->_present.port_function = 1;
req->port_function._present.opstate = 1;
req->port_function.opstate = opstate;
}
static inline void
devlink_port_set_req_set_port_function_caps(struct devlink_port_set_req *req,
struct nla_bitfield32 *caps)
{
req->_present.port_function = 1;
req->port_function._present.caps = 1;
memcpy(&req->port_function.caps, caps, sizeof(struct nla_bitfield32));
}
/*
* Set devlink port instances.
*/
int devlink_port_set(struct ynl_sock *ys, struct devlink_port_set_req *req);
/* ============== DEVLINK_CMD_PORT_NEW ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
enum devlink_port_flavour port_flavour;
__u16 port_pci_pf_number;
__u32 port_pci_sf_number;
__u32 port_controller_number;
};
static inline struct devlink_port_new_req *devlink_port_new_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_port_new_req));
}
void devlink_port_new_req_free(struct devlink_port_new_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_port_new_req_set_port_index(struct devlink_port_new_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_port_new_req_set_port_flavour(struct devlink_port_new_req *req,
enum devlink_port_flavour port_flavour)
{
req->_present.port_flavour = 1;
req->port_flavour = port_flavour;
}
static inline void
devlink_port_new_req_set_port_pci_pf_number(struct devlink_port_new_req *req,
__u16 port_pci_pf_number)
{
req->_present.port_pci_pf_number = 1;
req->port_pci_pf_number = port_pci_pf_number;
}
static inline void
devlink_port_new_req_set_port_pci_sf_number(struct devlink_port_new_req *req,
__u32 port_pci_sf_number)
{
req->_present.port_pci_sf_number = 1;
req->port_pci_sf_number = port_pci_sf_number;
}
static inline void
devlink_port_new_req_set_port_controller_number(struct devlink_port_new_req *req,
__u32 port_controller_number)
{
req->_present.port_controller_number = 1;
req->port_controller_number = port_controller_number;
}
struct devlink_port_new_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
};
void devlink_port_new_rsp_free(struct devlink_port_new_rsp *rsp);
/*
* Create devlink port instances.
*/
struct devlink_port_new_rsp *
devlink_port_new(struct ynl_sock *ys, struct devlink_port_new_req *req);
/* ============== DEVLINK_CMD_PORT_DEL ============== */
/* DEVLINK_CMD_PORT_DEL - do */
struct devlink_port_del_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
};
static inline struct devlink_port_del_req *devlink_port_del_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_port_del_req));
}
void devlink_port_del_req_free(struct devlink_port_del_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_port_del_req_set_port_index(struct devlink_port_del_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
/*
* Delete devlink port instances.
*/
int devlink_port_del(struct ynl_sock *ys, struct devlink_port_del_req *req);
/* ============== DEVLINK_CMD_PORT_SPLIT ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
__u32 port_split_count;
};
static inline struct devlink_port_split_req *devlink_port_split_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_port_split_req));
}
void devlink_port_split_req_free(struct devlink_port_split_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_port_split_req_set_port_index(struct devlink_port_split_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_port_split_req_set_port_split_count(struct devlink_port_split_req *req,
__u32 port_split_count)
{
req->_present.port_split_count = 1;
req->port_split_count = port_split_count;
}
/*
* Split devlink port instances.
*/
int devlink_port_split(struct ynl_sock *ys, struct devlink_port_split_req *req);
/* ============== DEVLINK_CMD_PORT_UNSPLIT ============== */
/* DEVLINK_CMD_PORT_UNSPLIT - do */
struct devlink_port_unsplit_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
};
static inline struct devlink_port_unsplit_req *
devlink_port_unsplit_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_port_unsplit_req));
}
void devlink_port_unsplit_req_free(struct devlink_port_unsplit_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_port_unsplit_req_set_port_index(struct devlink_port_unsplit_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
/*
* Unplit devlink port instances.
*/
int devlink_port_unsplit(struct ynl_sock *ys,
struct devlink_port_unsplit_req *req);
/* ============== DEVLINK_CMD_SB_GET ============== */
/* DEVLINK_CMD_SB_GET - do */
struct devlink_sb_get_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 sb_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 sb_index;
};
static inline struct devlink_sb_get_req *devlink_sb_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_get_req));
}
void devlink_sb_get_req_free(struct devlink_sb_get_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_sb_get_req_set_sb_index(struct devlink_sb_get_req *req, __u32 sb_index)
{
req->_present.sb_index = 1;
req->sb_index = sb_index;
}
struct devlink_sb_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 sb_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 sb_index;
};
void devlink_sb_get_rsp_free(struct devlink_sb_get_rsp *rsp);
/*
* Get shared buffer instances.
*/
struct devlink_sb_get_rsp *
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;
char *bus_name;
char *dev_name;
};
static inline struct devlink_sb_get_req_dump *
devlink_sb_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_get_req_dump));
}
void devlink_sb_get_req_dump_free(struct devlink_sb_get_req_dump *req);
static inline void
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;
}
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;
}
struct devlink_sb_get_list {
struct devlink_sb_get_list *next;
struct devlink_sb_get_rsp obj __attribute__((aligned(8)));
};
void devlink_sb_get_list_free(struct devlink_sb_get_list *rsp);
struct devlink_sb_get_list *
devlink_sb_get_dump(struct ynl_sock *ys, struct devlink_sb_get_req_dump *req);
/* ============== DEVLINK_CMD_SB_POOL_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 sb_index;
__u16 sb_pool_index;
};
static inline struct devlink_sb_pool_get_req *
devlink_sb_pool_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_pool_get_req));
}
void devlink_sb_pool_get_req_free(struct devlink_sb_pool_get_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_sb_pool_get_req_set_sb_index(struct devlink_sb_pool_get_req *req,
__u32 sb_index)
{
req->_present.sb_index = 1;
req->sb_index = sb_index;
}
static inline void
devlink_sb_pool_get_req_set_sb_pool_index(struct devlink_sb_pool_get_req *req,
__u16 sb_pool_index)
{
req->_present.sb_pool_index = 1;
req->sb_pool_index = sb_pool_index;
}
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;
char *bus_name;
char *dev_name;
__u32 sb_index;
__u16 sb_pool_index;
};
void devlink_sb_pool_get_rsp_free(struct devlink_sb_pool_get_rsp *rsp);
/*
* Get shared buffer pool instances.
*/
struct devlink_sb_pool_get_rsp *
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;
char *bus_name;
char *dev_name;
};
static inline struct devlink_sb_pool_get_req_dump *
devlink_sb_pool_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_pool_get_req_dump));
}
void
devlink_sb_pool_get_req_dump_free(struct devlink_sb_pool_get_req_dump *req);
static inline void
devlink_sb_pool_get_req_dump_set_bus_name(struct devlink_sb_pool_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;
}
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;
}
struct devlink_sb_pool_get_list {
struct devlink_sb_pool_get_list *next;
struct devlink_sb_pool_get_rsp obj __attribute__((aligned(8)));
};
void devlink_sb_pool_get_list_free(struct devlink_sb_pool_get_list *rsp);
struct devlink_sb_pool_get_list *
devlink_sb_pool_get_dump(struct ynl_sock *ys,
struct devlink_sb_pool_get_req_dump *req);
/* ============== DEVLINK_CMD_SB_POOL_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 sb_index;
__u16 sb_pool_index;
enum devlink_sb_threshold_type sb_pool_threshold_type;
__u32 sb_pool_size;
};
static inline struct devlink_sb_pool_set_req *
devlink_sb_pool_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_pool_set_req));
}
void devlink_sb_pool_set_req_free(struct devlink_sb_pool_set_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_sb_pool_set_req_set_sb_index(struct devlink_sb_pool_set_req *req,
__u32 sb_index)
{
req->_present.sb_index = 1;
req->sb_index = sb_index;
}
static inline void
devlink_sb_pool_set_req_set_sb_pool_index(struct devlink_sb_pool_set_req *req,
__u16 sb_pool_index)
{
req->_present.sb_pool_index = 1;
req->sb_pool_index = sb_pool_index;
}
static inline void
devlink_sb_pool_set_req_set_sb_pool_threshold_type(struct devlink_sb_pool_set_req *req,
enum devlink_sb_threshold_type sb_pool_threshold_type)
{
req->_present.sb_pool_threshold_type = 1;
req->sb_pool_threshold_type = sb_pool_threshold_type;
}
static inline void
devlink_sb_pool_set_req_set_sb_pool_size(struct devlink_sb_pool_set_req *req,
__u32 sb_pool_size)
{
req->_present.sb_pool_size = 1;
req->sb_pool_size = sb_pool_size;
}
/*
* Set shared buffer pool instances.
*/
int devlink_sb_pool_set(struct ynl_sock *ys,
struct devlink_sb_pool_set_req *req);
/* ============== DEVLINK_CMD_SB_PORT_POOL_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
__u32 sb_index;
__u16 sb_pool_index;
};
static inline struct devlink_sb_port_pool_get_req *
devlink_sb_port_pool_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_port_pool_get_req));
}
void
devlink_sb_port_pool_get_req_free(struct devlink_sb_port_pool_get_req *req);
static inline void
devlink_sb_port_pool_get_req_set_bus_name(struct devlink_sb_port_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;
}
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;
}
static inline void
devlink_sb_port_pool_get_req_set_port_index(struct devlink_sb_port_pool_get_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_sb_port_pool_get_req_set_sb_index(struct devlink_sb_port_pool_get_req *req,
__u32 sb_index)
{
req->_present.sb_index = 1;
req->sb_index = sb_index;
}
static inline void
devlink_sb_port_pool_get_req_set_sb_pool_index(struct devlink_sb_port_pool_get_req *req,
__u16 sb_pool_index)
{
req->_present.sb_pool_index = 1;
req->sb_pool_index = sb_pool_index;
}
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;
char *bus_name;
char *dev_name;
__u32 port_index;
__u32 sb_index;
__u16 sb_pool_index;
};
void
devlink_sb_port_pool_get_rsp_free(struct devlink_sb_port_pool_get_rsp *rsp);
/*
* Get shared buffer port-pool combinations and threshold.
*/
struct devlink_sb_port_pool_get_rsp *
devlink_sb_port_pool_get(struct ynl_sock *ys,
struct devlink_sb_port_pool_get_req *req);
/* 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;
char *bus_name;
char *dev_name;
};
static inline struct devlink_sb_port_pool_get_req_dump *
devlink_sb_port_pool_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_port_pool_get_req_dump));
}
void
devlink_sb_port_pool_get_req_dump_free(struct devlink_sb_port_pool_get_req_dump *req);
static inline void
devlink_sb_port_pool_get_req_dump_set_bus_name(struct devlink_sb_port_pool_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;
}
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;
}
struct devlink_sb_port_pool_get_list {
struct devlink_sb_port_pool_get_list *next;
struct devlink_sb_port_pool_get_rsp obj __attribute__((aligned(8)));
};
void
devlink_sb_port_pool_get_list_free(struct devlink_sb_port_pool_get_list *rsp);
struct devlink_sb_port_pool_get_list *
devlink_sb_port_pool_get_dump(struct ynl_sock *ys,
struct devlink_sb_port_pool_get_req_dump *req);
/* ============== DEVLINK_CMD_SB_PORT_POOL_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
__u32 sb_index;
__u16 sb_pool_index;
__u32 sb_threshold;
};
static inline struct devlink_sb_port_pool_set_req *
devlink_sb_port_pool_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_port_pool_set_req));
}
void
devlink_sb_port_pool_set_req_free(struct devlink_sb_port_pool_set_req *req);
static inline void
devlink_sb_port_pool_set_req_set_bus_name(struct devlink_sb_port_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;
}
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;
}
static inline void
devlink_sb_port_pool_set_req_set_port_index(struct devlink_sb_port_pool_set_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_sb_port_pool_set_req_set_sb_index(struct devlink_sb_port_pool_set_req *req,
__u32 sb_index)
{
req->_present.sb_index = 1;
req->sb_index = sb_index;
}
static inline void
devlink_sb_port_pool_set_req_set_sb_pool_index(struct devlink_sb_port_pool_set_req *req,
__u16 sb_pool_index)
{
req->_present.sb_pool_index = 1;
req->sb_pool_index = sb_pool_index;
}
static inline void
devlink_sb_port_pool_set_req_set_sb_threshold(struct devlink_sb_port_pool_set_req *req,
__u32 sb_threshold)
{
req->_present.sb_threshold = 1;
req->sb_threshold = sb_threshold;
}
/*
* Set shared buffer port-pool combinations and threshold.
*/
int devlink_sb_port_pool_set(struct ynl_sock *ys,
struct devlink_sb_port_pool_set_req *req);
/* ============== DEVLINK_CMD_SB_TC_POOL_BIND_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
__u32 sb_index;
enum devlink_sb_pool_type sb_pool_type;
__u16 sb_tc_index;
};
static inline struct devlink_sb_tc_pool_bind_get_req *
devlink_sb_tc_pool_bind_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_tc_pool_bind_get_req));
}
void
devlink_sb_tc_pool_bind_get_req_free(struct devlink_sb_tc_pool_bind_get_req *req);
static inline void
devlink_sb_tc_pool_bind_get_req_set_bus_name(struct devlink_sb_tc_pool_bind_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;
}
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;
}
static inline void
devlink_sb_tc_pool_bind_get_req_set_port_index(struct devlink_sb_tc_pool_bind_get_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_sb_tc_pool_bind_get_req_set_sb_index(struct devlink_sb_tc_pool_bind_get_req *req,
__u32 sb_index)
{
req->_present.sb_index = 1;
req->sb_index = sb_index;
}
static inline void
devlink_sb_tc_pool_bind_get_req_set_sb_pool_type(struct devlink_sb_tc_pool_bind_get_req *req,
enum devlink_sb_pool_type sb_pool_type)
{
req->_present.sb_pool_type = 1;
req->sb_pool_type = sb_pool_type;
}
static inline void
devlink_sb_tc_pool_bind_get_req_set_sb_tc_index(struct devlink_sb_tc_pool_bind_get_req *req,
__u16 sb_tc_index)
{
req->_present.sb_tc_index = 1;
req->sb_tc_index = sb_tc_index;
}
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;
char *bus_name;
char *dev_name;
__u32 port_index;
__u32 sb_index;
enum devlink_sb_pool_type sb_pool_type;
__u16 sb_tc_index;
};
void
devlink_sb_tc_pool_bind_get_rsp_free(struct devlink_sb_tc_pool_bind_get_rsp *rsp);
/*
* Get shared buffer port-TC to pool bindings and threshold.
*/
struct devlink_sb_tc_pool_bind_get_rsp *
devlink_sb_tc_pool_bind_get(struct ynl_sock *ys,
struct devlink_sb_tc_pool_bind_get_req *req);
/* 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;
char *bus_name;
char *dev_name;
};
static inline struct devlink_sb_tc_pool_bind_get_req_dump *
devlink_sb_tc_pool_bind_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_tc_pool_bind_get_req_dump));
}
void
devlink_sb_tc_pool_bind_get_req_dump_free(struct devlink_sb_tc_pool_bind_get_req_dump *req);
static inline void
devlink_sb_tc_pool_bind_get_req_dump_set_bus_name(struct devlink_sb_tc_pool_bind_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;
}
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;
}
struct devlink_sb_tc_pool_bind_get_list {
struct devlink_sb_tc_pool_bind_get_list *next;
struct devlink_sb_tc_pool_bind_get_rsp obj __attribute__((aligned(8)));
};
void
devlink_sb_tc_pool_bind_get_list_free(struct devlink_sb_tc_pool_bind_get_list *rsp);
struct devlink_sb_tc_pool_bind_get_list *
devlink_sb_tc_pool_bind_get_dump(struct ynl_sock *ys,
struct devlink_sb_tc_pool_bind_get_req_dump *req);
/* ============== DEVLINK_CMD_SB_TC_POOL_BIND_SET ============== */
/* 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;
__u32 sb_pool_type:1;
__u32 sb_tc_index:1;
__u32 sb_threshold:1;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
__u32 sb_index;
__u16 sb_pool_index;
enum devlink_sb_pool_type sb_pool_type;
__u16 sb_tc_index;
__u32 sb_threshold;
};
static inline struct devlink_sb_tc_pool_bind_set_req *
devlink_sb_tc_pool_bind_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_tc_pool_bind_set_req));
}
void
devlink_sb_tc_pool_bind_set_req_free(struct devlink_sb_tc_pool_bind_set_req *req);
static inline void
devlink_sb_tc_pool_bind_set_req_set_bus_name(struct devlink_sb_tc_pool_bind_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;
}
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;
}
static inline void
devlink_sb_tc_pool_bind_set_req_set_port_index(struct devlink_sb_tc_pool_bind_set_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_sb_tc_pool_bind_set_req_set_sb_index(struct devlink_sb_tc_pool_bind_set_req *req,
__u32 sb_index)
{
req->_present.sb_index = 1;
req->sb_index = sb_index;
}
static inline void
devlink_sb_tc_pool_bind_set_req_set_sb_pool_index(struct devlink_sb_tc_pool_bind_set_req *req,
__u16 sb_pool_index)
{
req->_present.sb_pool_index = 1;
req->sb_pool_index = sb_pool_index;
}
static inline void
devlink_sb_tc_pool_bind_set_req_set_sb_pool_type(struct devlink_sb_tc_pool_bind_set_req *req,
enum devlink_sb_pool_type sb_pool_type)
{
req->_present.sb_pool_type = 1;
req->sb_pool_type = sb_pool_type;
}
static inline void
devlink_sb_tc_pool_bind_set_req_set_sb_tc_index(struct devlink_sb_tc_pool_bind_set_req *req,
__u16 sb_tc_index)
{
req->_present.sb_tc_index = 1;
req->sb_tc_index = sb_tc_index;
}
static inline void
devlink_sb_tc_pool_bind_set_req_set_sb_threshold(struct devlink_sb_tc_pool_bind_set_req *req,
__u32 sb_threshold)
{
req->_present.sb_threshold = 1;
req->sb_threshold = sb_threshold;
}
/*
* Set shared buffer port-TC to pool bindings and threshold.
*/
int devlink_sb_tc_pool_bind_set(struct ynl_sock *ys,
struct devlink_sb_tc_pool_bind_set_req *req);
/* ============== DEVLINK_CMD_SB_OCC_SNAPSHOT ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 sb_index;
};
static inline struct devlink_sb_occ_snapshot_req *
devlink_sb_occ_snapshot_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_occ_snapshot_req));
}
void devlink_sb_occ_snapshot_req_free(struct devlink_sb_occ_snapshot_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_sb_occ_snapshot_req_set_sb_index(struct devlink_sb_occ_snapshot_req *req,
__u32 sb_index)
{
req->_present.sb_index = 1;
req->sb_index = sb_index;
}
/*
* Take occupancy snapshot of shared buffer.
*/
int devlink_sb_occ_snapshot(struct ynl_sock *ys,
struct devlink_sb_occ_snapshot_req *req);
/* ============== DEVLINK_CMD_SB_OCC_MAX_CLEAR ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 sb_index;
};
static inline struct devlink_sb_occ_max_clear_req *
devlink_sb_occ_max_clear_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_sb_occ_max_clear_req));
}
void
devlink_sb_occ_max_clear_req_free(struct devlink_sb_occ_max_clear_req *req);
static inline void
devlink_sb_occ_max_clear_req_set_bus_name(struct devlink_sb_occ_max_clear_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;
}
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;
}
static inline void
devlink_sb_occ_max_clear_req_set_sb_index(struct devlink_sb_occ_max_clear_req *req,
__u32 sb_index)
{
req->_present.sb_index = 1;
req->sb_index = sb_index;
}
/*
* Clear occupancy watermarks of shared buffer.
*/
int devlink_sb_occ_max_clear(struct ynl_sock *ys,
struct devlink_sb_occ_max_clear_req *req);
/* ============== DEVLINK_CMD_ESWITCH_GET ============== */
/* DEVLINK_CMD_ESWITCH_GET - do */
struct devlink_eswitch_get_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
} _present;
char *bus_name;
char *dev_name;
};
static inline struct devlink_eswitch_get_req *
devlink_eswitch_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_eswitch_get_req));
}
void devlink_eswitch_get_req_free(struct devlink_eswitch_get_req *req);
static inline void
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;
}
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;
}
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;
char *bus_name;
char *dev_name;
enum devlink_eswitch_mode eswitch_mode;
enum devlink_eswitch_inline_mode eswitch_inline_mode;
enum devlink_eswitch_encap_mode eswitch_encap_mode;
};
void devlink_eswitch_get_rsp_free(struct devlink_eswitch_get_rsp *rsp);
/*
* Get eswitch attributes.
*/
struct devlink_eswitch_get_rsp *
devlink_eswitch_get(struct ynl_sock *ys, struct devlink_eswitch_get_req *req);
/* ============== DEVLINK_CMD_ESWITCH_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
enum devlink_eswitch_mode eswitch_mode;
enum devlink_eswitch_inline_mode eswitch_inline_mode;
enum devlink_eswitch_encap_mode eswitch_encap_mode;
};
static inline struct devlink_eswitch_set_req *
devlink_eswitch_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_eswitch_set_req));
}
void devlink_eswitch_set_req_free(struct devlink_eswitch_set_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_eswitch_set_req_set_eswitch_mode(struct devlink_eswitch_set_req *req,
enum devlink_eswitch_mode eswitch_mode)
{
req->_present.eswitch_mode = 1;
req->eswitch_mode = eswitch_mode;
}
static inline void
devlink_eswitch_set_req_set_eswitch_inline_mode(struct devlink_eswitch_set_req *req,
enum devlink_eswitch_inline_mode eswitch_inline_mode)
{
req->_present.eswitch_inline_mode = 1;
req->eswitch_inline_mode = eswitch_inline_mode;
}
static inline void
devlink_eswitch_set_req_set_eswitch_encap_mode(struct devlink_eswitch_set_req *req,
enum devlink_eswitch_encap_mode eswitch_encap_mode)
{
req->_present.eswitch_encap_mode = 1;
req->eswitch_encap_mode = eswitch_encap_mode;
}
/*
* Set eswitch attributes.
*/
int devlink_eswitch_set(struct ynl_sock *ys,
struct devlink_eswitch_set_req *req);
/* ============== DEVLINK_CMD_DPIPE_TABLE_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
char *dpipe_table_name;
};
static inline struct devlink_dpipe_table_get_req *
devlink_dpipe_table_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_dpipe_table_get_req));
}
void devlink_dpipe_table_get_req_free(struct devlink_dpipe_table_get_req *req);
static inline void
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;
}
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;
}
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;
}
struct devlink_dpipe_table_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 dpipe_tables:1;
} _present;
char *bus_name;
char *dev_name;
struct devlink_dl_dpipe_tables dpipe_tables;
};
void devlink_dpipe_table_get_rsp_free(struct devlink_dpipe_table_get_rsp *rsp);
/*
* Get dpipe table attributes.
*/
struct devlink_dpipe_table_get_rsp *
devlink_dpipe_table_get(struct ynl_sock *ys,
struct devlink_dpipe_table_get_req *req);
/* ============== DEVLINK_CMD_DPIPE_ENTRIES_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
char *dpipe_table_name;
};
static inline struct devlink_dpipe_entries_get_req *
devlink_dpipe_entries_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_dpipe_entries_get_req));
}
void
devlink_dpipe_entries_get_req_free(struct devlink_dpipe_entries_get_req *req);
static inline void
devlink_dpipe_entries_get_req_set_bus_name(struct devlink_dpipe_entries_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;
}
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;
}
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;
}
struct devlink_dpipe_entries_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 dpipe_entries:1;
} _present;
char *bus_name;
char *dev_name;
struct devlink_dl_dpipe_entries dpipe_entries;
};
void
devlink_dpipe_entries_get_rsp_free(struct devlink_dpipe_entries_get_rsp *rsp);
/*
* Get dpipe entries attributes.
*/
struct devlink_dpipe_entries_get_rsp *
devlink_dpipe_entries_get(struct ynl_sock *ys,
struct devlink_dpipe_entries_get_req *req);
/* ============== DEVLINK_CMD_DPIPE_HEADERS_GET ============== */
/* DEVLINK_CMD_DPIPE_HEADERS_GET - do */
struct devlink_dpipe_headers_get_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
} _present;
char *bus_name;
char *dev_name;
};
static inline struct devlink_dpipe_headers_get_req *
devlink_dpipe_headers_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_dpipe_headers_get_req));
}
void
devlink_dpipe_headers_get_req_free(struct devlink_dpipe_headers_get_req *req);
static inline void
devlink_dpipe_headers_get_req_set_bus_name(struct devlink_dpipe_headers_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;
}
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;
}
struct devlink_dpipe_headers_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 dpipe_headers:1;
} _present;
char *bus_name;
char *dev_name;
struct devlink_dl_dpipe_headers dpipe_headers;
};
void
devlink_dpipe_headers_get_rsp_free(struct devlink_dpipe_headers_get_rsp *rsp);
/*
* Get dpipe headers attributes.
*/
struct devlink_dpipe_headers_get_rsp *
devlink_dpipe_headers_get(struct ynl_sock *ys,
struct devlink_dpipe_headers_get_req *req);
/* ============== DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
char *dpipe_table_name;
__u8 dpipe_table_counters_enabled;
};
static inline struct devlink_dpipe_table_counters_set_req *
devlink_dpipe_table_counters_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_dpipe_table_counters_set_req));
}
void
devlink_dpipe_table_counters_set_req_free(struct devlink_dpipe_table_counters_set_req *req);
static inline void
devlink_dpipe_table_counters_set_req_set_bus_name(struct devlink_dpipe_table_counters_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;
}
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;
}
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;
}
static inline void
devlink_dpipe_table_counters_set_req_set_dpipe_table_counters_enabled(struct devlink_dpipe_table_counters_set_req *req,
__u8 dpipe_table_counters_enabled)
{
req->_present.dpipe_table_counters_enabled = 1;
req->dpipe_table_counters_enabled = dpipe_table_counters_enabled;
}
/*
* Set dpipe counter attributes.
*/
int devlink_dpipe_table_counters_set(struct ynl_sock *ys,
struct devlink_dpipe_table_counters_set_req *req);
/* ============== DEVLINK_CMD_RESOURCE_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u64 resource_id;
__u64 resource_size;
};
static inline struct devlink_resource_set_req *
devlink_resource_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_resource_set_req));
}
void devlink_resource_set_req_free(struct devlink_resource_set_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_resource_set_req_set_resource_id(struct devlink_resource_set_req *req,
__u64 resource_id)
{
req->_present.resource_id = 1;
req->resource_id = resource_id;
}
static inline void
devlink_resource_set_req_set_resource_size(struct devlink_resource_set_req *req,
__u64 resource_size)
{
req->_present.resource_size = 1;
req->resource_size = resource_size;
}
/*
* Set resource attributes.
*/
int devlink_resource_set(struct ynl_sock *ys,
struct devlink_resource_set_req *req);
/* ============== DEVLINK_CMD_RESOURCE_DUMP ============== */
/* DEVLINK_CMD_RESOURCE_DUMP - do */
struct devlink_resource_dump_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
} _present;
char *bus_name;
char *dev_name;
};
static inline struct devlink_resource_dump_req *
devlink_resource_dump_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_resource_dump_req));
}
void devlink_resource_dump_req_free(struct devlink_resource_dump_req *req);
static inline void
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;
}
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;
}
struct devlink_resource_dump_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 resource_list:1;
} _present;
char *bus_name;
char *dev_name;
struct devlink_dl_resource_list resource_list;
};
void devlink_resource_dump_rsp_free(struct devlink_resource_dump_rsp *rsp);
/*
* Get resource attributes.
*/
struct devlink_resource_dump_rsp *
devlink_resource_dump(struct ynl_sock *ys,
struct devlink_resource_dump_req *req);
/* ============== DEVLINK_CMD_RELOAD ============== */
/* 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;
char *bus_name;
char *dev_name;
enum devlink_reload_action reload_action;
struct nla_bitfield32 reload_limits;
__u32 netns_pid;
__u32 netns_fd;
__u32 netns_id;
};
static inline struct devlink_reload_req *devlink_reload_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_reload_req));
}
void devlink_reload_req_free(struct devlink_reload_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_reload_req_set_reload_action(struct devlink_reload_req *req,
enum devlink_reload_action reload_action)
{
req->_present.reload_action = 1;
req->reload_action = reload_action;
}
static inline void
devlink_reload_req_set_reload_limits(struct devlink_reload_req *req,
struct nla_bitfield32 *reload_limits)
{
req->_present.reload_limits = 1;
memcpy(&req->reload_limits, reload_limits, sizeof(struct nla_bitfield32));
}
static inline void
devlink_reload_req_set_netns_pid(struct devlink_reload_req *req,
__u32 netns_pid)
{
req->_present.netns_pid = 1;
req->netns_pid = netns_pid;
}
static inline void
devlink_reload_req_set_netns_fd(struct devlink_reload_req *req, __u32 netns_fd)
{
req->_present.netns_fd = 1;
req->netns_fd = netns_fd;
}
static inline void
devlink_reload_req_set_netns_id(struct devlink_reload_req *req, __u32 netns_id)
{
req->_present.netns_id = 1;
req->netns_id = netns_id;
}
struct devlink_reload_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 reload_actions_performed:1;
} _present;
char *bus_name;
char *dev_name;
struct nla_bitfield32 reload_actions_performed;
};
void devlink_reload_rsp_free(struct devlink_reload_rsp *rsp);
/*
* Reload devlink.
*/
struct devlink_reload_rsp *
devlink_reload(struct ynl_sock *ys, struct devlink_reload_req *req);
/* ============== DEVLINK_CMD_PARAM_GET ============== */
/* DEVLINK_CMD_PARAM_GET - do */
struct devlink_param_get_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 param_name_len;
} _present;
char *bus_name;
char *dev_name;
char *param_name;
};
static inline struct devlink_param_get_req *devlink_param_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_param_get_req));
}
void devlink_param_get_req_free(struct devlink_param_get_req *req);
static inline void
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;
}
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;
}
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;
}
struct devlink_param_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 param_name_len;
} _present;
char *bus_name;
char *dev_name;
char *param_name;
};
void devlink_param_get_rsp_free(struct devlink_param_get_rsp *rsp);
/*
* Get param instances.
*/
struct devlink_param_get_rsp *
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;
char *bus_name;
char *dev_name;
};
static inline struct devlink_param_get_req_dump *
devlink_param_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_param_get_req_dump));
}
void devlink_param_get_req_dump_free(struct devlink_param_get_req_dump *req);
static inline void
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;
}
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;
}
struct devlink_param_get_list {
struct devlink_param_get_list *next;
struct devlink_param_get_rsp obj __attribute__((aligned(8)));
};
void devlink_param_get_list_free(struct devlink_param_get_list *rsp);
struct devlink_param_get_list *
devlink_param_get_dump(struct ynl_sock *ys,
struct devlink_param_get_req_dump *req);
/* ============== DEVLINK_CMD_PARAM_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
char *param_name;
__u8 param_type;
enum devlink_param_cmode param_value_cmode;
};
static inline struct devlink_param_set_req *devlink_param_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_param_set_req));
}
void devlink_param_set_req_free(struct devlink_param_set_req *req);
static inline void
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;
}
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;
}
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;
}
static inline void
devlink_param_set_req_set_param_type(struct devlink_param_set_req *req,
__u8 param_type)
{
req->_present.param_type = 1;
req->param_type = param_type;
}
static inline void
devlink_param_set_req_set_param_value_cmode(struct devlink_param_set_req *req,
enum devlink_param_cmode param_value_cmode)
{
req->_present.param_value_cmode = 1;
req->param_value_cmode = param_value_cmode;
}
/*
* Set param instances.
*/
int devlink_param_set(struct ynl_sock *ys, struct devlink_param_set_req *req);
/* ============== DEVLINK_CMD_REGION_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *region_name;
};
static inline struct devlink_region_get_req *devlink_region_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_region_get_req));
}
void devlink_region_get_req_free(struct devlink_region_get_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_region_get_req_set_port_index(struct devlink_region_get_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
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;
}
struct devlink_region_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
__u32 region_name_len;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
char *region_name;
};
void devlink_region_get_rsp_free(struct devlink_region_get_rsp *rsp);
/*
* Get region instances.
*/
struct devlink_region_get_rsp *
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;
char *bus_name;
char *dev_name;
};
static inline struct devlink_region_get_req_dump *
devlink_region_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_region_get_req_dump));
}
void devlink_region_get_req_dump_free(struct devlink_region_get_req_dump *req);
static inline void
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;
}
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;
}
struct devlink_region_get_list {
struct devlink_region_get_list *next;
struct devlink_region_get_rsp obj __attribute__((aligned(8)));
};
void devlink_region_get_list_free(struct devlink_region_get_list *rsp);
struct devlink_region_get_list *
devlink_region_get_dump(struct ynl_sock *ys,
struct devlink_region_get_req_dump *req);
/* ============== DEVLINK_CMD_REGION_NEW ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *region_name;
__u32 region_snapshot_id;
};
static inline struct devlink_region_new_req *devlink_region_new_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_region_new_req));
}
void devlink_region_new_req_free(struct devlink_region_new_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_region_new_req_set_port_index(struct devlink_region_new_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
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;
}
static inline void
devlink_region_new_req_set_region_snapshot_id(struct devlink_region_new_req *req,
__u32 region_snapshot_id)
{
req->_present.region_snapshot_id = 1;
req->region_snapshot_id = region_snapshot_id;
}
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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *region_name;
__u32 region_snapshot_id;
};
void devlink_region_new_rsp_free(struct devlink_region_new_rsp *rsp);
/*
* Create region snapshot.
*/
struct devlink_region_new_rsp *
devlink_region_new(struct ynl_sock *ys, struct devlink_region_new_req *req);
/* ============== DEVLINK_CMD_REGION_DEL ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *region_name;
__u32 region_snapshot_id;
};
static inline struct devlink_region_del_req *devlink_region_del_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_region_del_req));
}
void devlink_region_del_req_free(struct devlink_region_del_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_region_del_req_set_port_index(struct devlink_region_del_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
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;
}
static inline void
devlink_region_del_req_set_region_snapshot_id(struct devlink_region_del_req *req,
__u32 region_snapshot_id)
{
req->_present.region_snapshot_id = 1;
req->region_snapshot_id = region_snapshot_id;
}
/*
* Delete region snapshot.
*/
int devlink_region_del(struct ynl_sock *ys, struct devlink_region_del_req *req);
/* ============== DEVLINK_CMD_REGION_READ ============== */
/* DEVLINK_CMD_REGION_READ - dump */
struct devlink_region_read_req_dump {
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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *region_name;
__u32 region_snapshot_id;
__u64 region_chunk_addr;
__u64 region_chunk_len;
};
static inline struct devlink_region_read_req_dump *
devlink_region_read_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_region_read_req_dump));
}
void
devlink_region_read_req_dump_free(struct devlink_region_read_req_dump *req);
static inline void
devlink_region_read_req_dump_set_bus_name(struct devlink_region_read_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;
}
static inline void
devlink_region_read_req_dump_set_dev_name(struct devlink_region_read_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;
}
static inline void
devlink_region_read_req_dump_set_port_index(struct devlink_region_read_req_dump *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_region_read_req_dump_set_region_name(struct devlink_region_read_req_dump *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;
}
static inline void
devlink_region_read_req_dump_set_region_snapshot_id(struct devlink_region_read_req_dump *req,
__u32 region_snapshot_id)
{
req->_present.region_snapshot_id = 1;
req->region_snapshot_id = region_snapshot_id;
}
static inline void
devlink_region_read_req_dump_set_region_direct(struct devlink_region_read_req_dump *req)
{
req->_present.region_direct = 1;
}
static inline void
devlink_region_read_req_dump_set_region_chunk_addr(struct devlink_region_read_req_dump *req,
__u64 region_chunk_addr)
{
req->_present.region_chunk_addr = 1;
req->region_chunk_addr = region_chunk_addr;
}
static inline void
devlink_region_read_req_dump_set_region_chunk_len(struct devlink_region_read_req_dump *req,
__u64 region_chunk_len)
{
req->_present.region_chunk_len = 1;
req->region_chunk_len = region_chunk_len;
}
struct devlink_region_read_rsp_dump {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
__u32 region_name_len;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
char *region_name;
};
struct devlink_region_read_rsp_list {
struct devlink_region_read_rsp_list *next;
struct devlink_region_read_rsp_dump obj __attribute__((aligned(8)));
};
void
devlink_region_read_rsp_list_free(struct devlink_region_read_rsp_list *rsp);
struct devlink_region_read_rsp_list *
devlink_region_read_dump(struct ynl_sock *ys,
struct devlink_region_read_req_dump *req);
/* ============== DEVLINK_CMD_PORT_PARAM_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
};
static inline struct devlink_port_param_get_req *
devlink_port_param_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_port_param_get_req));
}
void devlink_port_param_get_req_free(struct devlink_port_param_get_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_port_param_get_req_set_port_index(struct devlink_port_param_get_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
struct devlink_port_param_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
};
void devlink_port_param_get_rsp_free(struct devlink_port_param_get_rsp *rsp);
/*
* Get port param instances.
*/
struct devlink_port_param_get_rsp *
devlink_port_param_get(struct ynl_sock *ys,
struct devlink_port_param_get_req *req);
/* DEVLINK_CMD_PORT_PARAM_GET - dump */
struct devlink_port_param_get_list {
struct devlink_port_param_get_list *next;
struct devlink_port_param_get_rsp obj __attribute__((aligned(8)));
};
void devlink_port_param_get_list_free(struct devlink_port_param_get_list *rsp);
struct devlink_port_param_get_list *
devlink_port_param_get_dump(struct ynl_sock *ys);
/* ============== DEVLINK_CMD_PORT_PARAM_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
};
static inline struct devlink_port_param_set_req *
devlink_port_param_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_port_param_set_req));
}
void devlink_port_param_set_req_free(struct devlink_port_param_set_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_port_param_set_req_set_port_index(struct devlink_port_param_set_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
/*
* Set port param instances.
*/
int devlink_port_param_set(struct ynl_sock *ys,
struct devlink_port_param_set_req *req);
/* ============== DEVLINK_CMD_INFO_GET ============== */
/* DEVLINK_CMD_INFO_GET - do */
struct devlink_info_get_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
} _present;
char *bus_name;
char *dev_name;
};
static inline struct devlink_info_get_req *devlink_info_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_info_get_req));
}
void devlink_info_get_req_free(struct devlink_info_get_req *req);
static inline void
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;
}
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;
}
struct devlink_info_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 info_driver_name_len;
__u32 info_serial_number_len;
} _present;
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;
};
void devlink_info_get_rsp_free(struct devlink_info_get_rsp *rsp);
/*
* Get device information, like driver name, hardware and firmware versions etc.
*/
struct devlink_info_get_rsp *
devlink_info_get(struct ynl_sock *ys, struct devlink_info_get_req *req);
/* DEVLINK_CMD_INFO_GET - dump */
struct devlink_info_get_list {
struct devlink_info_get_list *next;
struct devlink_info_get_rsp obj __attribute__((aligned(8)));
};
void devlink_info_get_list_free(struct devlink_info_get_list *rsp);
struct devlink_info_get_list *devlink_info_get_dump(struct ynl_sock *ys);
/* ============== DEVLINK_CMD_HEALTH_REPORTER_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *health_reporter_name;
};
static inline struct devlink_health_reporter_get_req *
devlink_health_reporter_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_health_reporter_get_req));
}
void
devlink_health_reporter_get_req_free(struct devlink_health_reporter_get_req *req);
static inline void
devlink_health_reporter_get_req_set_bus_name(struct devlink_health_reporter_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;
}
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;
}
static inline void
devlink_health_reporter_get_req_set_port_index(struct devlink_health_reporter_get_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_health_reporter_get_req_set_health_reporter_name(struct devlink_health_reporter_get_req *req,
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;
}
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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *health_reporter_name;
};
void
devlink_health_reporter_get_rsp_free(struct devlink_health_reporter_get_rsp *rsp);
/*
* Get health reporter instances.
*/
struct devlink_health_reporter_get_rsp *
devlink_health_reporter_get(struct ynl_sock *ys,
struct devlink_health_reporter_get_req *req);
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
};
static inline struct devlink_health_reporter_get_req_dump *
devlink_health_reporter_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_health_reporter_get_req_dump));
}
void
devlink_health_reporter_get_req_dump_free(struct devlink_health_reporter_get_req_dump *req);
static inline void
devlink_health_reporter_get_req_dump_set_bus_name(struct devlink_health_reporter_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;
}
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;
}
static inline void
devlink_health_reporter_get_req_dump_set_port_index(struct devlink_health_reporter_get_req_dump *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
struct devlink_health_reporter_get_list {
struct devlink_health_reporter_get_list *next;
struct devlink_health_reporter_get_rsp obj __attribute__((aligned(8)));
};
void
devlink_health_reporter_get_list_free(struct devlink_health_reporter_get_list *rsp);
struct devlink_health_reporter_get_list *
devlink_health_reporter_get_dump(struct ynl_sock *ys,
struct devlink_health_reporter_get_req_dump *req);
/* ============== DEVLINK_CMD_HEALTH_REPORTER_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *health_reporter_name;
__u64 health_reporter_graceful_period;
__u8 health_reporter_auto_recover;
__u8 health_reporter_auto_dump;
};
static inline struct devlink_health_reporter_set_req *
devlink_health_reporter_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_health_reporter_set_req));
}
void
devlink_health_reporter_set_req_free(struct devlink_health_reporter_set_req *req);
static inline void
devlink_health_reporter_set_req_set_bus_name(struct devlink_health_reporter_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;
}
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;
}
static inline void
devlink_health_reporter_set_req_set_port_index(struct devlink_health_reporter_set_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_health_reporter_set_req_set_health_reporter_name(struct devlink_health_reporter_set_req *req,
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;
}
static inline void
devlink_health_reporter_set_req_set_health_reporter_graceful_period(struct devlink_health_reporter_set_req *req,
__u64 health_reporter_graceful_period)
{
req->_present.health_reporter_graceful_period = 1;
req->health_reporter_graceful_period = health_reporter_graceful_period;
}
static inline void
devlink_health_reporter_set_req_set_health_reporter_auto_recover(struct devlink_health_reporter_set_req *req,
__u8 health_reporter_auto_recover)
{
req->_present.health_reporter_auto_recover = 1;
req->health_reporter_auto_recover = health_reporter_auto_recover;
}
static inline void
devlink_health_reporter_set_req_set_health_reporter_auto_dump(struct devlink_health_reporter_set_req *req,
__u8 health_reporter_auto_dump)
{
req->_present.health_reporter_auto_dump = 1;
req->health_reporter_auto_dump = health_reporter_auto_dump;
}
/*
* Set health reporter instances.
*/
int devlink_health_reporter_set(struct ynl_sock *ys,
struct devlink_health_reporter_set_req *req);
/* ============== DEVLINK_CMD_HEALTH_REPORTER_RECOVER ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *health_reporter_name;
};
static inline struct devlink_health_reporter_recover_req *
devlink_health_reporter_recover_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_health_reporter_recover_req));
}
void
devlink_health_reporter_recover_req_free(struct devlink_health_reporter_recover_req *req);
static inline void
devlink_health_reporter_recover_req_set_bus_name(struct devlink_health_reporter_recover_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;
}
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;
}
static inline void
devlink_health_reporter_recover_req_set_port_index(struct devlink_health_reporter_recover_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_health_reporter_recover_req_set_health_reporter_name(struct devlink_health_reporter_recover_req *req,
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;
}
/*
* Recover health reporter instances.
*/
int devlink_health_reporter_recover(struct ynl_sock *ys,
struct devlink_health_reporter_recover_req *req);
/* ============== DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *health_reporter_name;
};
static inline struct devlink_health_reporter_diagnose_req *
devlink_health_reporter_diagnose_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_health_reporter_diagnose_req));
}
void
devlink_health_reporter_diagnose_req_free(struct devlink_health_reporter_diagnose_req *req);
static inline void
devlink_health_reporter_diagnose_req_set_bus_name(struct devlink_health_reporter_diagnose_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;
}
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;
}
static inline void
devlink_health_reporter_diagnose_req_set_port_index(struct devlink_health_reporter_diagnose_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_health_reporter_diagnose_req_set_health_reporter_name(struct devlink_health_reporter_diagnose_req *req,
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;
}
/*
* Diagnose health reporter instances.
*/
int devlink_health_reporter_diagnose(struct ynl_sock *ys,
struct devlink_health_reporter_diagnose_req *req);
/* ============== DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET ============== */
/* DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET - dump */
struct devlink_health_reporter_dump_get_req_dump {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
__u32 health_reporter_name_len;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
char *health_reporter_name;
};
static inline struct devlink_health_reporter_dump_get_req_dump *
devlink_health_reporter_dump_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_health_reporter_dump_get_req_dump));
}
void
devlink_health_reporter_dump_get_req_dump_free(struct devlink_health_reporter_dump_get_req_dump *req);
static inline void
devlink_health_reporter_dump_get_req_dump_set_bus_name(struct devlink_health_reporter_dump_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;
}
static inline void
devlink_health_reporter_dump_get_req_dump_set_dev_name(struct devlink_health_reporter_dump_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;
}
static inline void
devlink_health_reporter_dump_get_req_dump_set_port_index(struct devlink_health_reporter_dump_get_req_dump *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_health_reporter_dump_get_req_dump_set_health_reporter_name(struct devlink_health_reporter_dump_get_req_dump *req,
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;
}
struct devlink_health_reporter_dump_get_rsp_dump {
struct {
__u32 fmsg:1;
} _present;
struct devlink_dl_fmsg fmsg;
};
struct devlink_health_reporter_dump_get_rsp_list {
struct devlink_health_reporter_dump_get_rsp_list *next;
struct devlink_health_reporter_dump_get_rsp_dump obj __attribute__((aligned(8)));
};
void
devlink_health_reporter_dump_get_rsp_list_free(struct devlink_health_reporter_dump_get_rsp_list *rsp);
struct devlink_health_reporter_dump_get_rsp_list *
devlink_health_reporter_dump_get_dump(struct ynl_sock *ys,
struct devlink_health_reporter_dump_get_req_dump *req);
/* ============== DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *health_reporter_name;
};
static inline struct devlink_health_reporter_dump_clear_req *
devlink_health_reporter_dump_clear_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_health_reporter_dump_clear_req));
}
void
devlink_health_reporter_dump_clear_req_free(struct devlink_health_reporter_dump_clear_req *req);
static inline void
devlink_health_reporter_dump_clear_req_set_bus_name(struct devlink_health_reporter_dump_clear_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;
}
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;
}
static inline void
devlink_health_reporter_dump_clear_req_set_port_index(struct devlink_health_reporter_dump_clear_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_health_reporter_dump_clear_req_set_health_reporter_name(struct devlink_health_reporter_dump_clear_req *req,
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;
}
/*
* Clear dump of health reporter instances.
*/
int devlink_health_reporter_dump_clear(struct ynl_sock *ys,
struct devlink_health_reporter_dump_clear_req *req);
/* ============== DEVLINK_CMD_FLASH_UPDATE ============== */
/* 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;
char *bus_name;
char *dev_name;
char *flash_update_file_name;
char *flash_update_component;
struct nla_bitfield32 flash_update_overwrite_mask;
};
static inline struct devlink_flash_update_req *
devlink_flash_update_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_flash_update_req));
}
void devlink_flash_update_req_free(struct devlink_flash_update_req *req);
static inline void
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;
}
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;
}
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;
}
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;
}
static inline void
devlink_flash_update_req_set_flash_update_overwrite_mask(struct devlink_flash_update_req *req,
struct nla_bitfield32 *flash_update_overwrite_mask)
{
req->_present.flash_update_overwrite_mask = 1;
memcpy(&req->flash_update_overwrite_mask, flash_update_overwrite_mask, sizeof(struct nla_bitfield32));
}
/*
* Flash update devlink instances.
*/
int devlink_flash_update(struct ynl_sock *ys,
struct devlink_flash_update_req *req);
/* ============== DEVLINK_CMD_TRAP_GET ============== */
/* DEVLINK_CMD_TRAP_GET - do */
struct devlink_trap_get_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 trap_name_len;
} _present;
char *bus_name;
char *dev_name;
char *trap_name;
};
static inline struct devlink_trap_get_req *devlink_trap_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_trap_get_req));
}
void devlink_trap_get_req_free(struct devlink_trap_get_req *req);
static inline void
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;
}
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;
}
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;
}
struct devlink_trap_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 trap_name_len;
} _present;
char *bus_name;
char *dev_name;
char *trap_name;
};
void devlink_trap_get_rsp_free(struct devlink_trap_get_rsp *rsp);
/*
* Get trap instances.
*/
struct devlink_trap_get_rsp *
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;
char *bus_name;
char *dev_name;
};
static inline struct devlink_trap_get_req_dump *
devlink_trap_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_trap_get_req_dump));
}
void devlink_trap_get_req_dump_free(struct devlink_trap_get_req_dump *req);
static inline void
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;
}
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;
}
struct devlink_trap_get_list {
struct devlink_trap_get_list *next;
struct devlink_trap_get_rsp obj __attribute__((aligned(8)));
};
void devlink_trap_get_list_free(struct devlink_trap_get_list *rsp);
struct devlink_trap_get_list *
devlink_trap_get_dump(struct ynl_sock *ys,
struct devlink_trap_get_req_dump *req);
/* ============== DEVLINK_CMD_TRAP_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
char *trap_name;
enum devlink_trap_action trap_action;
};
static inline struct devlink_trap_set_req *devlink_trap_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_trap_set_req));
}
void devlink_trap_set_req_free(struct devlink_trap_set_req *req);
static inline void
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;
}
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;
}
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;
}
static inline void
devlink_trap_set_req_set_trap_action(struct devlink_trap_set_req *req,
enum devlink_trap_action trap_action)
{
req->_present.trap_action = 1;
req->trap_action = trap_action;
}
/*
* Set trap instances.
*/
int devlink_trap_set(struct ynl_sock *ys, struct devlink_trap_set_req *req);
/* ============== DEVLINK_CMD_TRAP_GROUP_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
char *trap_group_name;
};
static inline struct devlink_trap_group_get_req *
devlink_trap_group_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_trap_group_get_req));
}
void devlink_trap_group_get_req_free(struct devlink_trap_group_get_req *req);
static inline void
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;
}
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;
}
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;
}
struct devlink_trap_group_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 trap_group_name_len;
} _present;
char *bus_name;
char *dev_name;
char *trap_group_name;
};
void devlink_trap_group_get_rsp_free(struct devlink_trap_group_get_rsp *rsp);
/*
* Get trap group instances.
*/
struct devlink_trap_group_get_rsp *
devlink_trap_group_get(struct ynl_sock *ys,
struct devlink_trap_group_get_req *req);
/* DEVLINK_CMD_TRAP_GROUP_GET - dump */
struct devlink_trap_group_get_req_dump {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
} _present;
char *bus_name;
char *dev_name;
};
static inline struct devlink_trap_group_get_req_dump *
devlink_trap_group_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_trap_group_get_req_dump));
}
void
devlink_trap_group_get_req_dump_free(struct devlink_trap_group_get_req_dump *req);
static inline void
devlink_trap_group_get_req_dump_set_bus_name(struct devlink_trap_group_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;
}
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;
}
struct devlink_trap_group_get_list {
struct devlink_trap_group_get_list *next;
struct devlink_trap_group_get_rsp obj __attribute__((aligned(8)));
};
void devlink_trap_group_get_list_free(struct devlink_trap_group_get_list *rsp);
struct devlink_trap_group_get_list *
devlink_trap_group_get_dump(struct ynl_sock *ys,
struct devlink_trap_group_get_req_dump *req);
/* ============== DEVLINK_CMD_TRAP_GROUP_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
char *trap_group_name;
enum devlink_trap_action trap_action;
__u32 trap_policer_id;
};
static inline struct devlink_trap_group_set_req *
devlink_trap_group_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_trap_group_set_req));
}
void devlink_trap_group_set_req_free(struct devlink_trap_group_set_req *req);
static inline void
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;
}
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;
}
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;
}
static inline void
devlink_trap_group_set_req_set_trap_action(struct devlink_trap_group_set_req *req,
enum devlink_trap_action trap_action)
{
req->_present.trap_action = 1;
req->trap_action = trap_action;
}
static inline void
devlink_trap_group_set_req_set_trap_policer_id(struct devlink_trap_group_set_req *req,
__u32 trap_policer_id)
{
req->_present.trap_policer_id = 1;
req->trap_policer_id = trap_policer_id;
}
/*
* Set trap group instances.
*/
int devlink_trap_group_set(struct ynl_sock *ys,
struct devlink_trap_group_set_req *req);
/* ============== DEVLINK_CMD_TRAP_POLICER_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 trap_policer_id;
};
static inline struct devlink_trap_policer_get_req *
devlink_trap_policer_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_trap_policer_get_req));
}
void
devlink_trap_policer_get_req_free(struct devlink_trap_policer_get_req *req);
static inline void
devlink_trap_policer_get_req_set_bus_name(struct devlink_trap_policer_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;
}
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;
}
static inline void
devlink_trap_policer_get_req_set_trap_policer_id(struct devlink_trap_policer_get_req *req,
__u32 trap_policer_id)
{
req->_present.trap_policer_id = 1;
req->trap_policer_id = trap_policer_id;
}
struct devlink_trap_policer_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 trap_policer_id:1;
} _present;
char *bus_name;
char *dev_name;
__u32 trap_policer_id;
};
void
devlink_trap_policer_get_rsp_free(struct devlink_trap_policer_get_rsp *rsp);
/*
* Get trap policer instances.
*/
struct devlink_trap_policer_get_rsp *
devlink_trap_policer_get(struct ynl_sock *ys,
struct devlink_trap_policer_get_req *req);
/* DEVLINK_CMD_TRAP_POLICER_GET - dump */
struct devlink_trap_policer_get_req_dump {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
} _present;
char *bus_name;
char *dev_name;
};
static inline struct devlink_trap_policer_get_req_dump *
devlink_trap_policer_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_trap_policer_get_req_dump));
}
void
devlink_trap_policer_get_req_dump_free(struct devlink_trap_policer_get_req_dump *req);
static inline void
devlink_trap_policer_get_req_dump_set_bus_name(struct devlink_trap_policer_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;
}
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;
}
struct devlink_trap_policer_get_list {
struct devlink_trap_policer_get_list *next;
struct devlink_trap_policer_get_rsp obj __attribute__((aligned(8)));
};
void
devlink_trap_policer_get_list_free(struct devlink_trap_policer_get_list *rsp);
struct devlink_trap_policer_get_list *
devlink_trap_policer_get_dump(struct ynl_sock *ys,
struct devlink_trap_policer_get_req_dump *req);
/* ============== DEVLINK_CMD_TRAP_POLICER_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 trap_policer_id;
__u64 trap_policer_rate;
__u64 trap_policer_burst;
};
static inline struct devlink_trap_policer_set_req *
devlink_trap_policer_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_trap_policer_set_req));
}
void
devlink_trap_policer_set_req_free(struct devlink_trap_policer_set_req *req);
static inline void
devlink_trap_policer_set_req_set_bus_name(struct devlink_trap_policer_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;
}
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;
}
static inline void
devlink_trap_policer_set_req_set_trap_policer_id(struct devlink_trap_policer_set_req *req,
__u32 trap_policer_id)
{
req->_present.trap_policer_id = 1;
req->trap_policer_id = trap_policer_id;
}
static inline void
devlink_trap_policer_set_req_set_trap_policer_rate(struct devlink_trap_policer_set_req *req,
__u64 trap_policer_rate)
{
req->_present.trap_policer_rate = 1;
req->trap_policer_rate = trap_policer_rate;
}
static inline void
devlink_trap_policer_set_req_set_trap_policer_burst(struct devlink_trap_policer_set_req *req,
__u64 trap_policer_burst)
{
req->_present.trap_policer_burst = 1;
req->trap_policer_burst = trap_policer_burst;
}
/*
* Get trap policer instances.
*/
int devlink_trap_policer_set(struct ynl_sock *ys,
struct devlink_trap_policer_set_req *req);
/* ============== DEVLINK_CMD_HEALTH_REPORTER_TEST ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *health_reporter_name;
};
static inline struct devlink_health_reporter_test_req *
devlink_health_reporter_test_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_health_reporter_test_req));
}
void
devlink_health_reporter_test_req_free(struct devlink_health_reporter_test_req *req);
static inline void
devlink_health_reporter_test_req_set_bus_name(struct devlink_health_reporter_test_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;
}
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;
}
static inline void
devlink_health_reporter_test_req_set_port_index(struct devlink_health_reporter_test_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
devlink_health_reporter_test_req_set_health_reporter_name(struct devlink_health_reporter_test_req *req,
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;
}
/*
* Test health reporter instances.
*/
int devlink_health_reporter_test(struct ynl_sock *ys,
struct devlink_health_reporter_test_req *req);
/* ============== DEVLINK_CMD_RATE_GET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 port_index;
char *rate_node_name;
};
static inline struct devlink_rate_get_req *devlink_rate_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_rate_get_req));
}
void devlink_rate_get_req_free(struct devlink_rate_get_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_rate_get_req_set_port_index(struct devlink_rate_get_req *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}
static inline void
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;
}
struct devlink_rate_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
__u32 rate_node_name_len;
} _present;
char *bus_name;
char *dev_name;
__u32 port_index;
char *rate_node_name;
};
void devlink_rate_get_rsp_free(struct devlink_rate_get_rsp *rsp);
/*
* Get rate instances.
*/
struct devlink_rate_get_rsp *
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;
char *bus_name;
char *dev_name;
};
static inline struct devlink_rate_get_req_dump *
devlink_rate_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_rate_get_req_dump));
}
void devlink_rate_get_req_dump_free(struct devlink_rate_get_req_dump *req);
static inline void
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;
}
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;
}
struct devlink_rate_get_list {
struct devlink_rate_get_list *next;
struct devlink_rate_get_rsp obj __attribute__((aligned(8)));
};
void devlink_rate_get_list_free(struct devlink_rate_get_list *rsp);
struct devlink_rate_get_list *
devlink_rate_get_dump(struct ynl_sock *ys,
struct devlink_rate_get_req_dump *req);
/* ============== DEVLINK_CMD_RATE_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
char *rate_node_name;
__u64 rate_tx_share;
__u64 rate_tx_max;
__u32 rate_tx_priority;
__u32 rate_tx_weight;
char *rate_parent_node_name;
};
static inline struct devlink_rate_set_req *devlink_rate_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_rate_set_req));
}
void devlink_rate_set_req_free(struct devlink_rate_set_req *req);
static inline void
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;
}
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;
}
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;
}
static inline void
devlink_rate_set_req_set_rate_tx_share(struct devlink_rate_set_req *req,
__u64 rate_tx_share)
{
req->_present.rate_tx_share = 1;
req->rate_tx_share = rate_tx_share;
}
static inline void
devlink_rate_set_req_set_rate_tx_max(struct devlink_rate_set_req *req,
__u64 rate_tx_max)
{
req->_present.rate_tx_max = 1;
req->rate_tx_max = rate_tx_max;
}
static inline void
devlink_rate_set_req_set_rate_tx_priority(struct devlink_rate_set_req *req,
__u32 rate_tx_priority)
{
req->_present.rate_tx_priority = 1;
req->rate_tx_priority = rate_tx_priority;
}
static inline void
devlink_rate_set_req_set_rate_tx_weight(struct devlink_rate_set_req *req,
__u32 rate_tx_weight)
{
req->_present.rate_tx_weight = 1;
req->rate_tx_weight = rate_tx_weight;
}
static inline void
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;
}
/*
* Set rate instances.
*/
int devlink_rate_set(struct ynl_sock *ys, struct devlink_rate_set_req *req);
/* ============== DEVLINK_CMD_RATE_NEW ============== */
/* 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;
char *bus_name;
char *dev_name;
char *rate_node_name;
__u64 rate_tx_share;
__u64 rate_tx_max;
__u32 rate_tx_priority;
__u32 rate_tx_weight;
char *rate_parent_node_name;
};
static inline struct devlink_rate_new_req *devlink_rate_new_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_rate_new_req));
}
void devlink_rate_new_req_free(struct devlink_rate_new_req *req);
static inline void
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;
}
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;
}
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;
}
static inline void
devlink_rate_new_req_set_rate_tx_share(struct devlink_rate_new_req *req,
__u64 rate_tx_share)
{
req->_present.rate_tx_share = 1;
req->rate_tx_share = rate_tx_share;
}
static inline void
devlink_rate_new_req_set_rate_tx_max(struct devlink_rate_new_req *req,
__u64 rate_tx_max)
{
req->_present.rate_tx_max = 1;
req->rate_tx_max = rate_tx_max;
}
static inline void
devlink_rate_new_req_set_rate_tx_priority(struct devlink_rate_new_req *req,
__u32 rate_tx_priority)
{
req->_present.rate_tx_priority = 1;
req->rate_tx_priority = rate_tx_priority;
}
static inline void
devlink_rate_new_req_set_rate_tx_weight(struct devlink_rate_new_req *req,
__u32 rate_tx_weight)
{
req->_present.rate_tx_weight = 1;
req->rate_tx_weight = rate_tx_weight;
}
static inline void
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;
}
/*
* Create rate instances.
*/
int devlink_rate_new(struct ynl_sock *ys, struct devlink_rate_new_req *req);
/* ============== DEVLINK_CMD_RATE_DEL ============== */
/* 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;
char *bus_name;
char *dev_name;
char *rate_node_name;
};
static inline struct devlink_rate_del_req *devlink_rate_del_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_rate_del_req));
}
void devlink_rate_del_req_free(struct devlink_rate_del_req *req);
static inline void
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;
}
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;
}
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;
}
/*
* Delete rate instances.
*/
int devlink_rate_del(struct ynl_sock *ys, struct devlink_rate_del_req *req);
/* ============== DEVLINK_CMD_LINECARD_GET ============== */
/* DEVLINK_CMD_LINECARD_GET - do */
struct devlink_linecard_get_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 linecard_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 linecard_index;
};
static inline struct devlink_linecard_get_req *
devlink_linecard_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_linecard_get_req));
}
void devlink_linecard_get_req_free(struct devlink_linecard_get_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_linecard_get_req_set_linecard_index(struct devlink_linecard_get_req *req,
__u32 linecard_index)
{
req->_present.linecard_index = 1;
req->linecard_index = linecard_index;
}
struct devlink_linecard_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 linecard_index:1;
} _present;
char *bus_name;
char *dev_name;
__u32 linecard_index;
};
void devlink_linecard_get_rsp_free(struct devlink_linecard_get_rsp *rsp);
/*
* Get line card instances.
*/
struct devlink_linecard_get_rsp *
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;
char *bus_name;
char *dev_name;
};
static inline struct devlink_linecard_get_req_dump *
devlink_linecard_get_req_dump_alloc(void)
{
return calloc(1, sizeof(struct devlink_linecard_get_req_dump));
}
void
devlink_linecard_get_req_dump_free(struct devlink_linecard_get_req_dump *req);
static inline void
devlink_linecard_get_req_dump_set_bus_name(struct devlink_linecard_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;
}
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;
}
struct devlink_linecard_get_list {
struct devlink_linecard_get_list *next;
struct devlink_linecard_get_rsp obj __attribute__((aligned(8)));
};
void devlink_linecard_get_list_free(struct devlink_linecard_get_list *rsp);
struct devlink_linecard_get_list *
devlink_linecard_get_dump(struct ynl_sock *ys,
struct devlink_linecard_get_req_dump *req);
/* ============== DEVLINK_CMD_LINECARD_SET ============== */
/* 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;
char *bus_name;
char *dev_name;
__u32 linecard_index;
char *linecard_type;
};
static inline struct devlink_linecard_set_req *
devlink_linecard_set_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_linecard_set_req));
}
void devlink_linecard_set_req_free(struct devlink_linecard_set_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_linecard_set_req_set_linecard_index(struct devlink_linecard_set_req *req,
__u32 linecard_index)
{
req->_present.linecard_index = 1;
req->linecard_index = linecard_index;
}
static inline void
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;
}
/*
* Set line card instances.
*/
int devlink_linecard_set(struct ynl_sock *ys,
struct devlink_linecard_set_req *req);
/* ============== DEVLINK_CMD_SELFTESTS_GET ============== */
/* DEVLINK_CMD_SELFTESTS_GET - do */
struct devlink_selftests_get_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
} _present;
char *bus_name;
char *dev_name;
};
static inline struct devlink_selftests_get_req *
devlink_selftests_get_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_selftests_get_req));
}
void devlink_selftests_get_req_free(struct devlink_selftests_get_req *req);
static inline void
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;
}
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;
}
struct devlink_selftests_get_rsp {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
} _present;
char *bus_name;
char *dev_name;
};
void devlink_selftests_get_rsp_free(struct devlink_selftests_get_rsp *rsp);
/*
* Get device selftest instances.
*/
struct devlink_selftests_get_rsp *
devlink_selftests_get(struct ynl_sock *ys,
struct devlink_selftests_get_req *req);
/* DEVLINK_CMD_SELFTESTS_GET - dump */
struct devlink_selftests_get_list {
struct devlink_selftests_get_list *next;
struct devlink_selftests_get_rsp obj __attribute__((aligned(8)));
};
void devlink_selftests_get_list_free(struct devlink_selftests_get_list *rsp);
struct devlink_selftests_get_list *
devlink_selftests_get_dump(struct ynl_sock *ys);
/* ============== DEVLINK_CMD_SELFTESTS_RUN ============== */
/* DEVLINK_CMD_SELFTESTS_RUN - do */
struct devlink_selftests_run_req {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 selftests:1;
} _present;
char *bus_name;
char *dev_name;
struct devlink_dl_selftest_id selftests;
};
static inline struct devlink_selftests_run_req *
devlink_selftests_run_req_alloc(void)
{
return calloc(1, sizeof(struct devlink_selftests_run_req));
}
void devlink_selftests_run_req_free(struct devlink_selftests_run_req *req);
static inline void
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;
}
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;
}
static inline void
devlink_selftests_run_req_set_selftests_flash(struct devlink_selftests_run_req *req)
{
req->_present.selftests = 1;
req->selftests._present.flash = 1;
}
/*
* Run device selftest instances.
*/
int devlink_selftests_run(struct ynl_sock *ys,
struct devlink_selftests_run_req *req);
#endif /* _LINUX_DEVLINK_GEN_H */