Main index | Section 3 | Options |
#include <infiniband/verbs.h>int ibv_query_device_ex(struct ibv_context *context, struct ibv_device_attr_ex *attr);
struct ibv_device_attr_ex { struct ibv_device_attr orig_attr; uint32_t comp_mask; /* Compatibility mask that defines which of the following variables are valid */ struct ibv_odp_caps odp_caps; /* On-Demand Paging capabilities */ uint64_t completion_timestamp_mask; /* Completion timestamp mask (0 = unsupported) */ uint64_t hca_core_clock; /* The frequency (in kHZ) of the HCA (0 = unsupported) */ uint64_t device_cap_flags_ex; /* Extended device capability flags */ struct ibv_tso_caps tso_caps; /* TCP segmentation offload capabilities */ struct ibv_rss_caps rss_caps; /* RSS capabilities */ uint32_t max_wq_type_rq; /* Max Work Queue from type RQ */ struct ibv_packet_pacing_caps packet_pacing_caps; /* Packet pacing capabilities */ uint32_t raw_packet_caps; /* Raw packet capabilities, use enum ibv_raw_packet_caps */ };struct ibv_odp_caps { uint64_t general_odp_caps; /* Mask with enum ibv_odp_general_cap_bits */ struct { uint32_t rc_odp_caps; /* Mask with enum ibv_odp_tranport_cap_bits to know which operations are supported. */ uint32_t uc_odp_caps; /* Mask with enum ibv_odp_tranport_cap_bits to know which operations are supported. */ uint32_t ud_odp_caps; /* Mask with enum ibv_odp_tranport_cap_bits to know which operations are supported. */ } per_transport_caps; };
enum ibv_odp_general_cap_bits { IBV_ODP_SUPPORT = 1 << 0, /* On demand paging is supported */ };
enum ibv_odp_transport_cap_bits { IBV_ODP_SUPPORT_SEND = 1 << 0, /* Send operations support on-demand paging */ IBV_ODP_SUPPORT_RECV = 1 << 1, /* Receive operations support on-demand paging */ IBV_ODP_SUPPORT_WRITE = 1 << 2, /* RDMA-Write operations support on-demand paging */ IBV_ODP_SUPPORT_READ = 1 << 3, /* RDMA-Read operations support on-demand paging */ IBV_ODP_SUPPORT_ATOMIC = 1 << 4, /* RDMA-Atomic operations support on-demand paging */ };
struct ibv_tso_caps { uint32_t max_tso; /* Maximum payload size in bytes supported for segmentation by TSO engine.*/ uint32_t supported_qpts; /* Bitmap showing which QP types are supported by TSO operation. */ };
struct ibv_rss_caps { uint32_t supported_qpts; /* Bitmap showing which QP types are supported RSS */ uint32_t max_rwq_indirection_tables; /* Max receive work queue indirection tables */ uint32_t max_rwq_indirection_table_size; /* Max receive work queue indirection table size */ uint64_t rx_hash_fields_mask; /* Mask with enum ibv_rx_hash_fields to know which incoming packet's field can participates in the RX hash */ uint8_t rx_hash_function; /* Mask with enum ibv_rx_hash_function_flags to know which hash functions are supported */ };
struct ibv_packet_pacing_caps { uint32_t qp_rate_limit_min; /* Minimum rate limit in kbps */ uint32_t qp_rate_limit_max; /* Maximum rate limit in kbps */ uint32_t supported_qpts; /* Bitmap showing which QP types are supported. */ };
enum ibv_raw_packet_caps { IBV_RAW_PACKET_CAP_CVLAN_STRIPPING = 1 << 0, /* CVLAN stripping is supported */ IBV_RAW_PACKET_CAP_SCATTER_FCS = 1 << 1, /* FCS scattering is supported */ IBV_RAW_PACKET_CAP_IP_CSUM = 1 << 2, /* IP CSUM offload is supported */ };
2014-12-17 | IBV_QUERY_DEVICE_EX (3) | libibverbs |
Main index | Section 3 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.