Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
IBV_QUERY_DEVICE(3)	Libibverbs Programmer's	Manual	   IBV_QUERY_DEVICE(3)

       ibv_query_device	- query	an RDMA	device's attributes

       #include	<infiniband/verbs.h>

       int ibv_query_device(struct ibv_context *context,
			    struct ibv_device_attr *device_attr);

       ibv_query_device()  returns  the	 attributes of the device with context
       context.	 The argument device_attr is a pointer to  an  ibv_device_attr
       struct, as defined in <infiniband/verbs.h>.

       struct ibv_device_attr {
	       char		       fw_ver[64];	       /* FW version */
	       uint64_t		       node_guid;	       /* Node GUID (in	network	byte order) */
	       uint64_t		       sys_image_guid;	       /* System image GUID (in	network	byte order) */
	       uint64_t		       max_mr_size;	       /* Largest contiguous block that	can be registered */
	       uint64_t		       page_size_cap;	       /* Supported memory shift sizes */
	       uint32_t		       vendor_id;	       /* Vendor ID, per IEEE */
	       uint32_t		       vendor_part_id;	       /* Vendor supplied part ID */
	       uint32_t		       hw_ver;		       /* Hardware version */
	       int		       max_qp;		       /* Maximum number of supported QPs */
	       int		       max_qp_wr;	       /* Maximum number of outstanding	WR on any work queue */
	       int		       device_cap_flags;       /* HCA capabilities mask	*/
	       int		       max_sge;		       /* Maximum number of s/g	per WR for SQ &	RQ of QP for non RDMA Read operations */
	       int		       max_sge_rd;	       /* Maximum number of s/g	per WR for RDMA	Read operations	*/
	       int		       max_cq;		       /* Maximum number of supported CQs */
	       int		       max_cqe;		       /* Maximum number of CQE	capacity per CQ	*/
	       int		       max_mr;		       /* Maximum number of supported MRs */
	       int		       max_pd;		       /* Maximum number of supported PDs */
	       int		       max_qp_rd_atom;	       /* Maximum number of RDMA Read &	Atomic operations that can be outstanding per QP */
	       int		       max_ee_rd_atom;	       /* Maximum number of RDMA Read &	Atomic operations that can be outstanding per EEC */
	       int		       max_res_rd_atom;	       /* Maximum number of resources used for RDMA Read & Atomic operations by	this HCA as the	Target */
	       int		       max_qp_init_rd_atom;    /* Maximum depth	per QP for initiation of RDMA Read & Atomic operations */
	       int		       max_ee_init_rd_atom;    /* Maximum depth	per EEC	for initiation of RDMA Read & Atomic operations	*/
	       enum ibv_atomic_cap     atomic_cap;	       /* Atomic operations support level */
	       int		       max_ee;		       /* Maximum number of supported EE contexts */
	       int		       max_rdd;		       /* Maximum number of supported RD domains */
	       int		       max_mw;		       /* Maximum number of supported MWs */
	       int		       max_raw_ipv6_qp;	       /* Maximum number of supported raw IPv6 datagram	QPs */
	       int		       max_raw_ethy_qp;	       /* Maximum number of supported Ethertype	datagram QPs */
	       int		       max_mcast_grp;	       /* Maximum number of supported multicast	groups */
	       int		       max_mcast_qp_attach;    /* Maximum number of QPs	per multicast group which can be attached */
	       int		       max_total_mcast_qp_attach;/* Maximum number of QPs which	can be attached	to multicast groups */
	       int		       max_ah;		       /* Maximum number of supported address handles */
	       int		       max_fmr;		       /* Maximum number of supported FMRs */
	       int		       max_map_per_fmr;	       /* Maximum number of (re)maps per FMR before an unmap operation in required */
	       int		       max_srq;		       /* Maximum number of supported SRQs */
	       int		       max_srq_wr;	       /* Maximum number of WRs	per SRQ	*/
	       int		       max_srq_sge;	       /* Maximum number of s/g	per SRQ	*/
	       uint16_t		       max_pkeys;	       /* Maximum number of partitions */
	       uint8_t		       local_ca_ack_delay;     /* Local	CA ack delay */
	       uint8_t		       phys_port_cnt;	       /* Number of physical ports */

       ibv_query_device() returns 0 on success,	or the value of	errno on fail-
       ure (which indicates the	failure	reason).

       The maximum values returned by this function are	the  upper  limits  of
       supported  resources by the device.  However, it	may not	be possible to
       use these maximum values, since the actual number of any	resource  that
       can  be created may be limited by the machine configuration, the	amount
       of host memory, user permissions, and the amount	of  resources  already
       in use by other users/processes.

       ibv_open_device(3),	  ibv_query_port(3),	    ibv_query_pkey(3),

       Dotan Barak <>

libibverbs			  2006-10-31		   IBV_QUERY_DEVICE(3)


Want to link to this manual page? Use this URL:

home | help