ib_device
Regular
4.4
: Absent ⚠️
4.8
: Absent ⚠️
4.10
: Absent ⚠️
4.13
: Absent ⚠️
4.15
: ✅struct ib_device {
struct device *dma_device;
char name[64];
struct list_head event_handler_list;
spinlock_t event_handler_lock;
spinlock_t client_data_lock;
struct list_head core_list;
struct list_head client_data_list;
struct ib_cache cache;
struct ib_port_immutable *port_immutable;
int num_comp_vectors;
struct ib_port_pkey_list *port_pkey_list;
struct iw_cm_verbs *iwcm;
struct rdma_hw_stats * (*alloc_hw_stats)(struct ib_device *, u8);
int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u8, int);
int (*query_device)(struct ib_device *, struct ib_device_attr *, struct ib_udata *);
int (*query_port)(struct ib_device *, u8, struct ib_port_attr *);
enum rdma_link_layer (*get_link_layer)(struct ib_device *, u8);
struct net_device * (*get_netdev)(struct ib_device *, u8);
int (*query_gid)(struct ib_device *, u8, int, union ib_gid *);
int (*add_gid)(struct ib_device *, u8, unsigned int, const union ib_gid *, const struct ib_gid_attr *, void **);
int (*del_gid)(struct ib_device *, u8, unsigned int, void **);
int (*query_pkey)(struct ib_device *, u8, u16, u16 *);
int (*modify_device)(struct ib_device *, int, struct ib_device_modify *);
int (*modify_port)(struct ib_device *, u8, int, struct ib_port_modify *);
struct ib_ucontext * (*alloc_ucontext)(struct ib_device *, struct ib_udata *);
int (*dealloc_ucontext)(struct ib_ucontext *);
int (*mmap)(struct ib_ucontext *, struct vm_area_struct *);
struct ib_pd * (*alloc_pd)(struct ib_device *, struct ib_ucontext *, struct ib_udata *);
int (*dealloc_pd)(struct ib_pd *);
struct ib_ah * (*create_ah)(struct ib_pd *, struct rdma_ah_attr *, struct ib_udata *);
int (*modify_ah)(struct ib_ah *, struct rdma_ah_attr *);
int (*query_ah)(struct ib_ah *, struct rdma_ah_attr *);
int (*destroy_ah)(struct ib_ah *);
struct ib_srq * (*create_srq)(struct ib_pd *, struct ib_srq_init_attr *, struct ib_udata *);
int (*modify_srq)(struct ib_srq *, struct ib_srq_attr *, enum ib_srq_attr_mask, struct ib_udata *);
int (*query_srq)(struct ib_srq *, struct ib_srq_attr *);
int (*destroy_srq)(struct ib_srq *);
int (*post_srq_recv)(struct ib_srq *, struct ib_recv_wr *, struct ib_recv_wr **);
struct ib_qp * (*create_qp)(struct ib_pd *, struct ib_qp_init_attr *, struct ib_udata *);
int (*modify_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_udata *);
int (*query_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_qp_init_attr *);
int (*destroy_qp)(struct ib_qp *);
int (*post_send)(struct ib_qp *, struct ib_send_wr *, struct ib_send_wr **);
int (*post_recv)(struct ib_qp *, struct ib_recv_wr *, struct ib_recv_wr **);
struct ib_cq * (*create_cq)(struct ib_device *, const struct ib_cq_init_attr *, struct ib_ucontext *, struct ib_udata *);
int (*modify_cq)(struct ib_cq *, u16, u16);
int (*destroy_cq)(struct ib_cq *);
int (*resize_cq)(struct ib_cq *, int, struct ib_udata *);
int (*poll_cq)(struct ib_cq *, int, struct ib_wc *);
int (*peek_cq)(struct ib_cq *, int);
int (*req_notify_cq)(struct ib_cq *, enum ib_cq_notify_flags);
int (*req_ncomp_notif)(struct ib_cq *, int);
struct ib_mr * (*get_dma_mr)(struct ib_pd *, int);
struct ib_mr * (*reg_user_mr)(struct ib_pd *, u64, u64, u64, int, struct ib_udata *);
int (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *);
int (*dereg_mr)(struct ib_mr *);
struct ib_mr * (*alloc_mr)(struct ib_pd *, enum ib_mr_type, u32);
int (*map_mr_sg)(struct ib_mr *, struct scatterlist *, int, unsigned int *);
struct ib_mw * (*alloc_mw)(struct ib_pd *, enum ib_mw_type, struct ib_udata *);
int (*dealloc_mw)(struct ib_mw *);
struct ib_fmr * (*alloc_fmr)(struct ib_pd *, int, struct ib_fmr_attr *);
int (*map_phys_fmr)(struct ib_fmr *, u64 *, int, u64);
int (*unmap_fmr)(struct list_head *);
int (*dealloc_fmr)(struct ib_fmr *);
int (*attach_mcast)(struct ib_qp *, union ib_gid *, u16);
int (*detach_mcast)(struct ib_qp *, union ib_gid *, u16);
int (*process_mad)(struct ib_device *, int, u8, const struct ib_wc *, const struct ib_grh *, const struct ib_mad_hdr *, size_t, struct ib_mad_hdr *, size_t *, u16 *);
struct ib_xrcd * (*alloc_xrcd)(struct ib_device *, struct ib_ucontext *, struct ib_udata *);
int (*dealloc_xrcd)(struct ib_xrcd *);
struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, int);
int (*destroy_flow)(struct ib_flow *);
int (*check_mr_status)(struct ib_mr *, u32, struct ib_mr_status *);
void (*disassociate_ucontext)(struct ib_ucontext *);
void (*drain_rq)(struct ib_qp *);
void (*drain_sq)(struct ib_qp *);
int (*set_vf_link_state)(struct ib_device *, int, u8, int);
int (*get_vf_config)(struct ib_device *, int, u8, struct ifla_vf_info *);
int (*get_vf_stats)(struct ib_device *, int, u8, struct ifla_vf_stats *);
int (*set_vf_guid)(struct ib_device *, int, u8, u64, int);
struct ib_wq * (*create_wq)(struct ib_pd *, struct ib_wq_init_attr *, struct ib_udata *);
int (*destroy_wq)(struct ib_wq *);
int (*modify_wq)(struct ib_wq *, struct ib_wq_attr *, u32, struct ib_udata *);
struct ib_rwq_ind_table * (*create_rwq_ind_table)(struct ib_device *, struct ib_rwq_ind_table_init_attr *, struct ib_udata *);
int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *);
struct net_device * (*alloc_rdma_netdev)(struct ib_device *, u8, enum rdma_netdev_t, const char *, unsigned char, void(*)(struct net_device *));
struct module *owner;
struct device dev;
struct kobject *ports_parent;
struct list_head port_list;
enum (anon) reg_state;
int uverbs_abi_ver;
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
int (*get_port_immutable)(struct ib_device *, u8, struct ib_port_immutable *);
void (*get_dev_fw_str)(struct ib_device *, char *);
const struct cpumask * (*get_vector_affinity)(struct ib_device *, int);
struct uverbs_root_spec *specs_root;
};
4.18
: ✅struct ib_device {
struct device *dma_device;
char name[64];
struct list_head event_handler_list;
spinlock_t event_handler_lock;
spinlock_t client_data_lock;
struct list_head core_list;
struct list_head client_data_list;
struct ib_cache cache;
struct ib_port_immutable *port_immutable;
int num_comp_vectors;
struct ib_port_pkey_list *port_pkey_list;
struct iw_cm_verbs *iwcm;
struct rdma_hw_stats * (*alloc_hw_stats)(struct ib_device *, u8);
int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u8, int);
int (*query_device)(struct ib_device *, struct ib_device_attr *, struct ib_udata *);
int (*query_port)(struct ib_device *, u8, struct ib_port_attr *);
enum rdma_link_layer (*get_link_layer)(struct ib_device *, u8);
struct net_device * (*get_netdev)(struct ib_device *, u8);
int (*query_gid)(struct ib_device *, u8, int, union ib_gid *);
int (*add_gid)(const union ib_gid *, const struct ib_gid_attr *, void **);
int (*del_gid)(const struct ib_gid_attr *, void **);
int (*query_pkey)(struct ib_device *, u8, u16, u16 *);
int (*modify_device)(struct ib_device *, int, struct ib_device_modify *);
int (*modify_port)(struct ib_device *, u8, int, struct ib_port_modify *);
struct ib_ucontext * (*alloc_ucontext)(struct ib_device *, struct ib_udata *);
int (*dealloc_ucontext)(struct ib_ucontext *);
int (*mmap)(struct ib_ucontext *, struct vm_area_struct *);
struct ib_pd * (*alloc_pd)(struct ib_device *, struct ib_ucontext *, struct ib_udata *);
int (*dealloc_pd)(struct ib_pd *);
struct ib_ah * (*create_ah)(struct ib_pd *, struct rdma_ah_attr *, struct ib_udata *);
int (*modify_ah)(struct ib_ah *, struct rdma_ah_attr *);
int (*query_ah)(struct ib_ah *, struct rdma_ah_attr *);
int (*destroy_ah)(struct ib_ah *);
struct ib_srq * (*create_srq)(struct ib_pd *, struct ib_srq_init_attr *, struct ib_udata *);
int (*modify_srq)(struct ib_srq *, struct ib_srq_attr *, enum ib_srq_attr_mask, struct ib_udata *);
int (*query_srq)(struct ib_srq *, struct ib_srq_attr *);
int (*destroy_srq)(struct ib_srq *);
int (*post_srq_recv)(struct ib_srq *, struct ib_recv_wr *, struct ib_recv_wr **);
struct ib_qp * (*create_qp)(struct ib_pd *, struct ib_qp_init_attr *, struct ib_udata *);
int (*modify_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_udata *);
int (*query_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_qp_init_attr *);
int (*destroy_qp)(struct ib_qp *);
int (*post_send)(struct ib_qp *, struct ib_send_wr *, struct ib_send_wr **);
int (*post_recv)(struct ib_qp *, struct ib_recv_wr *, struct ib_recv_wr **);
struct ib_cq * (*create_cq)(struct ib_device *, const struct ib_cq_init_attr *, struct ib_ucontext *, struct ib_udata *);
int (*modify_cq)(struct ib_cq *, u16, u16);
int (*destroy_cq)(struct ib_cq *);
int (*resize_cq)(struct ib_cq *, int, struct ib_udata *);
int (*poll_cq)(struct ib_cq *, int, struct ib_wc *);
int (*peek_cq)(struct ib_cq *, int);
int (*req_notify_cq)(struct ib_cq *, enum ib_cq_notify_flags);
int (*req_ncomp_notif)(struct ib_cq *, int);
struct ib_mr * (*get_dma_mr)(struct ib_pd *, int);
struct ib_mr * (*reg_user_mr)(struct ib_pd *, u64, u64, u64, int, struct ib_udata *);
int (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *);
int (*dereg_mr)(struct ib_mr *);
struct ib_mr * (*alloc_mr)(struct ib_pd *, enum ib_mr_type, u32);
int (*map_mr_sg)(struct ib_mr *, struct scatterlist *, int, unsigned int *);
struct ib_mw * (*alloc_mw)(struct ib_pd *, enum ib_mw_type, struct ib_udata *);
int (*dealloc_mw)(struct ib_mw *);
struct ib_fmr * (*alloc_fmr)(struct ib_pd *, int, struct ib_fmr_attr *);
int (*map_phys_fmr)(struct ib_fmr *, u64 *, int, u64);
int (*unmap_fmr)(struct list_head *);
int (*dealloc_fmr)(struct ib_fmr *);
int (*attach_mcast)(struct ib_qp *, union ib_gid *, u16);
int (*detach_mcast)(struct ib_qp *, union ib_gid *, u16);
int (*process_mad)(struct ib_device *, int, u8, const struct ib_wc *, const struct ib_grh *, const struct ib_mad_hdr *, size_t, struct ib_mad_hdr *, size_t *, u16 *);
struct ib_xrcd * (*alloc_xrcd)(struct ib_device *, struct ib_ucontext *, struct ib_udata *);
int (*dealloc_xrcd)(struct ib_xrcd *);
struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, int, struct ib_udata *);
int (*destroy_flow)(struct ib_flow *);
int (*check_mr_status)(struct ib_mr *, u32, struct ib_mr_status *);
void (*disassociate_ucontext)(struct ib_ucontext *);
void (*drain_rq)(struct ib_qp *);
void (*drain_sq)(struct ib_qp *);
int (*set_vf_link_state)(struct ib_device *, int, u8, int);
int (*get_vf_config)(struct ib_device *, int, u8, struct ifla_vf_info *);
int (*get_vf_stats)(struct ib_device *, int, u8, struct ifla_vf_stats *);
int (*set_vf_guid)(struct ib_device *, int, u8, u64, int);
struct ib_wq * (*create_wq)(struct ib_pd *, struct ib_wq_init_attr *, struct ib_udata *);
int (*destroy_wq)(struct ib_wq *);
int (*modify_wq)(struct ib_wq *, struct ib_wq_attr *, u32, struct ib_udata *);
struct ib_rwq_ind_table * (*create_rwq_ind_table)(struct ib_device *, struct ib_rwq_ind_table_init_attr *, struct ib_udata *);
int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *);
struct ib_flow_action * (*create_flow_action_esp)(struct ib_device *, const struct ib_flow_action_attrs_esp *, struct uverbs_attr_bundle *);
int (*destroy_flow_action)(struct ib_flow_action *);
int (*modify_flow_action_esp)(struct ib_flow_action *, const struct ib_flow_action_attrs_esp *, struct uverbs_attr_bundle *);
struct ib_dm * (*alloc_dm)(struct ib_device *, struct ib_ucontext *, struct ib_dm_alloc_attr *, struct uverbs_attr_bundle *);
int (*dealloc_dm)(struct ib_dm *);
struct ib_mr * (*reg_dm_mr)(struct ib_pd *, struct ib_dm *, struct ib_dm_mr_attr *, struct uverbs_attr_bundle *);
struct ib_counters * (*create_counters)(struct ib_device *, struct uverbs_attr_bundle *);
int (*destroy_counters)(struct ib_counters *);
int (*read_counters)(struct ib_counters *, struct ib_counters_read_attr *, struct uverbs_attr_bundle *);
struct net_device * (*alloc_rdma_netdev)(struct ib_device *, u8, enum rdma_netdev_t, const char *, unsigned char, void(*)(struct net_device *));
struct module *owner;
struct device dev;
struct kobject *ports_parent;
struct list_head port_list;
enum (anon) reg_state;
int uverbs_abi_ver;
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root res;
int (*get_port_immutable)(struct ib_device *, u8, struct ib_port_immutable *);
void (*get_dev_fw_str)(struct ib_device *, char *);
const struct cpumask * (*get_vector_affinity)(struct ib_device *, int);
struct uverbs_root_spec *specs_root;
enum rdma_driver_id driver_id;
};
5.0
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct list_head event_handler_list;
spinlock_t event_handler_lock;
rwlock_t client_data_lock;
struct list_head core_list;
struct list_head client_data_list;
struct ib_cache cache;
struct ib_port_immutable *port_immutable;
int num_comp_vectors;
struct ib_port_pkey_list *port_pkey_list;
struct iw_cm_verbs *iwcm;
struct module *owner;
struct device dev;
const struct attribute_group * groups[3];
struct kobject *ports_kobj;
struct list_head port_list;
enum (anon) reg_state;
int uverbs_abi_ver;
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root res;
const struct uapi_definition *driver_def;
enum rdma_driver_id driver_id;
refcount_t refcount;
struct completion unreg_completion;
};
5.3
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
spinlock_t event_handler_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
struct ib_cache cache;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
};
5.4
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t event_handler_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
struct ib_cache cache;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
};
5.8
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t qp_open_list_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
rwlock_t cache_lock;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
spinlock_t cq_pools_lock;
struct list_head cq_pools[3];
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
u32 lag_flags;
};
5.11
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t qp_open_list_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
rwlock_t cache_lock;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
spinlock_t cq_pools_lock;
struct list_head cq_pools[3];
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
u32 lag_flags;
};
5.13
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t qp_open_list_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
rwlock_t cache_lock;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u32 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
spinlock_t cq_pools_lock;
struct list_head cq_pools[3];
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
u32 lag_flags;
};
5.15
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t qp_open_list_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
rwlock_t cache_lock;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[4];
u64 uverbs_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u32 phys_port_cnt;
struct ib_device_attr attrs;
struct hw_stats_device_data *hw_stats_data;
struct rdmacg_device cg_device;
u32 index;
spinlock_t cq_pools_lock;
struct list_head cq_pools[3];
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
u32 lag_flags;
};
5.19
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t qp_open_list_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
rwlock_t cache_lock;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[4];
u64 uverbs_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u32 phys_port_cnt;
struct ib_device_attr attrs;
struct hw_stats_device_data *hw_stats_data;
struct rdmacg_device cg_device;
u32 index;
spinlock_t cq_pools_lock;
struct list_head cq_pools[3];
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
u32 lag_flags;
};
6.2
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t qp_open_list_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
rwlock_t cache_lock;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[4];
u64 uverbs_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u32 phys_port_cnt;
struct ib_device_attr attrs;
struct hw_stats_device_data *hw_stats_data;
struct rdmacg_device cg_device;
u32 index;
spinlock_t cq_pools_lock;
struct list_head cq_pools[3];
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
u32 lag_flags;
};
6.5
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t qp_open_list_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
rwlock_t cache_lock;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[4];
u64 uverbs_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u32 phys_port_cnt;
struct ib_device_attr attrs;
struct hw_stats_device_data *hw_stats_data;
struct rdmacg_device cg_device;
u32 index;
spinlock_t cq_pools_lock;
struct list_head cq_pools[3];
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
u32 lag_flags;
};
6.8
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t qp_open_list_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
rwlock_t cache_lock;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[4];
u64 uverbs_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u32 phys_port_cnt;
struct ib_device_attr attrs;
struct hw_stats_device_data *hw_stats_data;
struct rdmacg_device cg_device;
u32 index;
spinlock_t cq_pools_lock;
struct list_head cq_pools[3];
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
u32 lag_flags;
};
arm64
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t event_handler_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
struct ib_cache cache;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
};
armhf
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t event_handler_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
struct ib_cache cache;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
};
ppc64el
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t event_handler_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
struct ib_cache cache;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
};
riscv64
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t event_handler_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
struct ib_cache cache;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
};
aws
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t event_handler_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
struct ib_cache cache;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
};
azure
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t event_handler_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
struct ib_cache cache;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
};
gcp
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t event_handler_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
struct ib_cache cache;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
};
lowlatency
: ✅struct ib_device {
struct device *dma_device;
struct ib_device_ops ops;
char name[64];
struct callback_head callback_head;
struct list_head event_handler_list;
struct rw_semaphore event_handler_rwsem;
spinlock_t event_handler_lock;
struct rw_semaphore client_data_rwsem;
struct xarray client_data;
struct mutex unregistration_lock;
struct ib_cache cache;
struct ib_port_data *port_data;
int num_comp_vectors;
struct device dev;
struct ib_core_device coredev;
const struct attribute_group * groups[3];
u64 uverbs_cmd_mask;
u64 uverbs_ex_cmd_mask;
char node_desc[64];
__be64 node_guid;
u32 local_dma_lkey;
u16 is_switch;
u16 kverbs_provider;
u16 use_cq_dim;
u8 node_type;
u8 phys_port_cnt;
struct ib_device_attr attrs;
struct attribute_group *hw_stats_ag;
struct rdma_hw_stats *hw_stats;
struct rdmacg_device cg_device;
u32 index;
struct rdma_restrack_root *res;
const struct uapi_definition *driver_def;
refcount_t refcount;
struct completion unreg_completion;
struct work_struct unregistration_work;
const struct rdma_link_ops *link_ops;
struct mutex compat_devs_mutex;
struct xarray compat_devs;
char iw_ifname[16];
u32 iw_driver_flags;
};
Regular
4.15
and 4.18
⚠️struct ib_flow_action * (*create_flow_action_esp)(struct ib_device *, const struct ib_flow_action_attrs_esp *, struct uverbs_attr_bundle *)
int (*destroy_flow_action)(struct ib_flow_action *)
int (*modify_flow_action_esp)(struct ib_flow_action *, const struct ib_flow_action_attrs_esp *, struct uverbs_attr_bundle *)
struct ib_dm * (*alloc_dm)(struct ib_device *, struct ib_ucontext *, struct ib_dm_alloc_attr *, struct uverbs_attr_bundle *)
int (*dealloc_dm)(struct ib_dm *)
struct ib_mr * (*reg_dm_mr)(struct ib_pd *, struct ib_dm *, struct ib_dm_mr_attr *, struct uverbs_attr_bundle *)
struct ib_counters * (*create_counters)(struct ib_device *, struct uverbs_attr_bundle *)
int (*destroy_counters)(struct ib_counters *)
int (*read_counters)(struct ib_counters *, struct ib_counters_read_attr *, struct uverbs_attr_bundle *)
struct rdma_restrack_root res
enum rdma_driver_id driver_id
int (*add_gid)(struct ib_device *, u8, unsigned int, const union ib_gid *, const struct ib_gid_attr *, void **)
➡️ int (*add_gid)(const union ib_gid *, const struct ib_gid_attr *, void **)
int (*del_gid)(struct ib_device *, u8, unsigned int, void **)
➡️ int (*del_gid)(const struct ib_gid_attr *, void **)
struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, int)
➡️ struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, int, struct ib_udata *)
4.18
and 5.0
⚠️struct ib_device_ops ops
const struct attribute_group * groups[3]
struct kobject *ports_kobj
const struct uapi_definition *driver_def
refcount_t refcount
struct completion unreg_completion
struct rdma_hw_stats * (*alloc_hw_stats)(struct ib_device *, u8)
int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u8, int)
int (*query_device)(struct ib_device *, struct ib_device_attr *, struct ib_udata *)
int (*query_port)(struct ib_device *, u8, struct ib_port_attr *)
enum rdma_link_layer (*get_link_layer)(struct ib_device *, u8)
struct net_device * (*get_netdev)(struct ib_device *, u8)
int (*query_gid)(struct ib_device *, u8, int, union ib_gid *)
int (*add_gid)(const union ib_gid *, const struct ib_gid_attr *, void **)
int (*del_gid)(const struct ib_gid_attr *, void **)
int (*query_pkey)(struct ib_device *, u8, u16, u16 *)
int (*modify_device)(struct ib_device *, int, struct ib_device_modify *)
int (*modify_port)(struct ib_device *, u8, int, struct ib_port_modify *)
struct ib_ucontext * (*alloc_ucontext)(struct ib_device *, struct ib_udata *)
int (*dealloc_ucontext)(struct ib_ucontext *)
int (*mmap)(struct ib_ucontext *, struct vm_area_struct *)
struct ib_pd * (*alloc_pd)(struct ib_device *, struct ib_ucontext *, struct ib_udata *)
int (*dealloc_pd)(struct ib_pd *)
struct ib_ah * (*create_ah)(struct ib_pd *, struct rdma_ah_attr *, struct ib_udata *)
int (*modify_ah)(struct ib_ah *, struct rdma_ah_attr *)
int (*query_ah)(struct ib_ah *, struct rdma_ah_attr *)
int (*destroy_ah)(struct ib_ah *)
struct ib_srq * (*create_srq)(struct ib_pd *, struct ib_srq_init_attr *, struct ib_udata *)
int (*modify_srq)(struct ib_srq *, struct ib_srq_attr *, enum ib_srq_attr_mask, struct ib_udata *)
int (*query_srq)(struct ib_srq *, struct ib_srq_attr *)
int (*destroy_srq)(struct ib_srq *)
int (*post_srq_recv)(struct ib_srq *, struct ib_recv_wr *, struct ib_recv_wr **)
struct ib_qp * (*create_qp)(struct ib_pd *, struct ib_qp_init_attr *, struct ib_udata *)
int (*modify_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_udata *)
int (*query_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_qp_init_attr *)
int (*destroy_qp)(struct ib_qp *)
int (*post_send)(struct ib_qp *, struct ib_send_wr *, struct ib_send_wr **)
int (*post_recv)(struct ib_qp *, struct ib_recv_wr *, struct ib_recv_wr **)
struct ib_cq * (*create_cq)(struct ib_device *, const struct ib_cq_init_attr *, struct ib_ucontext *, struct ib_udata *)
int (*modify_cq)(struct ib_cq *, u16, u16)
int (*destroy_cq)(struct ib_cq *)
int (*resize_cq)(struct ib_cq *, int, struct ib_udata *)
int (*poll_cq)(struct ib_cq *, int, struct ib_wc *)
int (*peek_cq)(struct ib_cq *, int)
int (*req_notify_cq)(struct ib_cq *, enum ib_cq_notify_flags)
int (*req_ncomp_notif)(struct ib_cq *, int)
struct ib_mr * (*get_dma_mr)(struct ib_pd *, int)
struct ib_mr * (*reg_user_mr)(struct ib_pd *, u64, u64, u64, int, struct ib_udata *)
int (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *)
int (*dereg_mr)(struct ib_mr *)
struct ib_mr * (*alloc_mr)(struct ib_pd *, enum ib_mr_type, u32)
int (*map_mr_sg)(struct ib_mr *, struct scatterlist *, int, unsigned int *)
struct ib_mw * (*alloc_mw)(struct ib_pd *, enum ib_mw_type, struct ib_udata *)
int (*dealloc_mw)(struct ib_mw *)
struct ib_fmr * (*alloc_fmr)(struct ib_pd *, int, struct ib_fmr_attr *)
int (*map_phys_fmr)(struct ib_fmr *, u64 *, int, u64)
int (*unmap_fmr)(struct list_head *)
int (*dealloc_fmr)(struct ib_fmr *)
int (*attach_mcast)(struct ib_qp *, union ib_gid *, u16)
int (*detach_mcast)(struct ib_qp *, union ib_gid *, u16)
int (*process_mad)(struct ib_device *, int, u8, const struct ib_wc *, const struct ib_grh *, const struct ib_mad_hdr *, size_t, struct ib_mad_hdr *, size_t *, u16 *)
struct ib_xrcd * (*alloc_xrcd)(struct ib_device *, struct ib_ucontext *, struct ib_udata *)
int (*dealloc_xrcd)(struct ib_xrcd *)
struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, int, struct ib_udata *)
int (*destroy_flow)(struct ib_flow *)
int (*check_mr_status)(struct ib_mr *, u32, struct ib_mr_status *)
void (*disassociate_ucontext)(struct ib_ucontext *)
void (*drain_rq)(struct ib_qp *)
void (*drain_sq)(struct ib_qp *)
int (*set_vf_link_state)(struct ib_device *, int, u8, int)
int (*get_vf_config)(struct ib_device *, int, u8, struct ifla_vf_info *)
int (*get_vf_stats)(struct ib_device *, int, u8, struct ifla_vf_stats *)
int (*set_vf_guid)(struct ib_device *, int, u8, u64, int)
struct ib_wq * (*create_wq)(struct ib_pd *, struct ib_wq_init_attr *, struct ib_udata *)
int (*destroy_wq)(struct ib_wq *)
int (*modify_wq)(struct ib_wq *, struct ib_wq_attr *, u32, struct ib_udata *)
struct ib_rwq_ind_table * (*create_rwq_ind_table)(struct ib_device *, struct ib_rwq_ind_table_init_attr *, struct ib_udata *)
int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *)
struct ib_flow_action * (*create_flow_action_esp)(struct ib_device *, const struct ib_flow_action_attrs_esp *, struct uverbs_attr_bundle *)
int (*destroy_flow_action)(struct ib_flow_action *)
int (*modify_flow_action_esp)(struct ib_flow_action *, const struct ib_flow_action_attrs_esp *, struct uverbs_attr_bundle *)
struct ib_dm * (*alloc_dm)(struct ib_device *, struct ib_ucontext *, struct ib_dm_alloc_attr *, struct uverbs_attr_bundle *)
int (*dealloc_dm)(struct ib_dm *)
struct ib_mr * (*reg_dm_mr)(struct ib_pd *, struct ib_dm *, struct ib_dm_mr_attr *, struct uverbs_attr_bundle *)
struct ib_counters * (*create_counters)(struct ib_device *, struct uverbs_attr_bundle *)
int (*destroy_counters)(struct ib_counters *)
int (*read_counters)(struct ib_counters *, struct ib_counters_read_attr *, struct uverbs_attr_bundle *)
struct net_device * (*alloc_rdma_netdev)(struct ib_device *, u8, enum rdma_netdev_t, const char *, unsigned char, void(*)(struct net_device *))
struct kobject *ports_parent
int (*get_port_immutable)(struct ib_device *, u8, struct ib_port_immutable *)
void (*get_dev_fw_str)(struct ib_device *, char *)
const struct cpumask * (*get_vector_affinity)(struct ib_device *, int)
struct uverbs_root_spec *specs_root
spinlock_t client_data_lock
➡️ rwlock_t client_data_lock
5.0
and 5.3
⚠️struct callback_head callback_head
struct rw_semaphore client_data_rwsem
struct xarray client_data
struct mutex unregistration_lock
struct ib_port_data *port_data
struct ib_core_device coredev
u16 kverbs_provider
u16 use_cq_dim
struct work_struct unregistration_work
const struct rdma_link_ops *link_ops
struct mutex compat_devs_mutex
struct xarray compat_devs
char iw_ifname[16]
u32 iw_driver_flags
rwlock_t client_data_lock
struct list_head core_list
struct list_head client_data_list
struct ib_port_immutable *port_immutable
struct ib_port_pkey_list *port_pkey_list
struct iw_cm_verbs *iwcm
struct module *owner
struct kobject *ports_kobj
struct list_head port_list
enum (anon) reg_state
int uverbs_abi_ver
enum rdma_driver_id driver_id
struct rdma_restrack_root res
➡️ struct rdma_restrack_root *res
5.3
and 5.4
⚠️struct rw_semaphore event_handler_rwsem
5.4
and 5.8
⚠️spinlock_t qp_open_list_lock
rwlock_t cache_lock
spinlock_t cq_pools_lock
struct list_head cq_pools[3]
u32 lag_flags
spinlock_t event_handler_lock
struct ib_cache cache
5.8
and 5.11
⚠️u64 uverbs_ex_cmd_mask
5.11
and 5.13
⚠️u8 phys_port_cnt
➡️ u32 phys_port_cnt
5.13
and 5.15
⚠️struct hw_stats_device_data *hw_stats_data
struct attribute_group *hw_stats_ag
struct rdma_hw_stats *hw_stats
const struct attribute_group * groups[3]
➡️ const struct attribute_group * groups[4]
5.15
and 5.19
✅
5.19
and 6.2
✅
6.2
and 6.5
✅
6.5
and 6.8
✅
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅