efadv_query_device - Query device capabilities
#include <infiniband/efadv.h> int efadv_query_device(struct ibv_context *ibvctx, struct efadv_device_attr *attr, uint32_t inlen);
efadv_query_device() Queries EFA device specific attributes.
Compatibility is handled using the comp_mask and inlen fields.
struct efadv_device_attr { uint64_t comp_mask; uint32_t max_sq_wr; uint32_t max_rq_wr; uint16_t max_sq_sge; uint16_t max_rq_sge; uint16_t inline_buf_size; uint8_t reserved[2]; uint32_t device_caps; uint32_t max_rdma_size; };
inlen : In: Size of struct efadv_device_attr.
comp_mask : Compatibility mask.
max_sq_wr : Maximum Send Queue (SQ) Work Requests (WRs).
max_rq_wr : Maximum Receive Queue (RQ) Work Requests (WRs).
max_sq_sge : Maximum Send Queue (SQ) Scatter Gather Elements (SGEs).
max_rq_sge : Maximum Receive Queue (RQ) Scatter Gather Elements (SGEs).
inline_buf_size : Maximum inline buffer size.
device_caps : Bitmask of device capabilities:
EFADV_DEVICE_ATTR_CAPS_RDMA_READ: RDMA read is supported. EFADV_DEVICE_ATTR_CAPS_RNR_RETRY: RNR retry is supported for SRD QPs. EFADV_DEVICE_ATTR_CAPS_CQ_WITH_SGID: Reading source address (SGID) from receive completion descriptors is supported. Valid only for unknown AH. EFADV_DEVICE_ATTR_CAPS_RDMA_WRITE: RDMA write is supported
max_rdma_size : Maximum RDMA transfer size in bytes.
efadv_query_device() returns 0 on success, or the value of errno on failure (which indicates the failure reason).
efadv(7)
Gal Pressman galpress@amazon.com