dwww Home | Manual pages | Find package

IBV_QUERY_QP(3)         Libibverbs Programmer's Manual         IBV_QUERY_QP(3)

NAME
       ibv_query_qp - get the attributes of a queue pair (QP)

SYNOPSIS
       #include <infiniband/verbs.h>

       int ibv_query_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
                        int attr_mask,
                        struct ibv_qp_init_attr *init_attr);

DESCRIPTION
       ibv_query_qp() gets the attributes specified in attr_mask for the QP qp
       and returns them through the pointers attr and init_attr.  The argument
       attr is an ibv_qp_attr struct, as defined in <infiniband/verbs.h>.

       struct ibv_qp_attr {
               enum ibv_qp_state       qp_state;            /* Current QP state */
               enum ibv_qp_state       cur_qp_state;        /* Current QP state - irrelevant for ibv_query_qp */
               enum ibv_mtu            path_mtu;            /* Path MTU (valid only for RC/UC QPs) */
               enum ibv_mig_state      path_mig_state;      /* Path migration state (valid if HCA supports APM) */
               uint32_t                qkey;                /* Q_Key of the QP (valid only for UD QPs) */
               uint32_t                rq_psn;              /* PSN for receive queue (valid only for RC/UC QPs) */
               uint32_t                sq_psn;              /* PSN for send queue */
               uint32_t                dest_qp_num;         /* Destination QP number (valid only for RC/UC QPs) */
               unsigned int            qp_access_flags;     /* Mask of enabled remote access operations (valid only for RC/UC QPs) */
               struct ibv_qp_cap       cap;                 /* QP capabilities */
               struct ibv_ah_attr      ah_attr;             /* Primary path address vector (valid only for RC/UC QPs) */
               struct ibv_ah_attr      alt_ah_attr;         /* Alternate path address vector (valid only for RC/UC QPs) */
               uint16_t                pkey_index;          /* Primary P_Key index */
               uint16_t                alt_pkey_index;      /* Alternate P_Key index */
               uint8_t                 en_sqd_async_notify; /* Enable SQD.drained async notification - irrelevant for ibv_query_qp */
               uint8_t                 sq_draining;         /* Is the QP draining? (Valid only if qp_state is SQD) */
               uint8_t                 max_rd_atomic;       /* Number of outstanding RDMA reads & atomic operations on the destination QP (valid only for RC QPs) */
               uint8_t                 max_dest_rd_atomic;  /* Number of responder resources for handling incoming RDMA reads & atomic operations (valid only for RC QPs) */
               uint8_t                 min_rnr_timer;       /* Minimum RNR NAK timer (valid only for RC QPs) */
               uint8_t                 port_num;            /* Primary port number */
               uint8_t                 timeout;             /* Local ack timeout for primary path (valid only for RC QPs) */
               uint8_t                 retry_cnt;           /* Retry count (valid only for RC QPs) */
               uint8_t                 rnr_retry;           /* RNR retry (valid only for RC QPs) */
               uint8_t                 alt_port_num;        /* Alternate port number */
               uint8_t                 alt_timeout;         /* Local ack timeout for alternate path (valid only for RC QPs) */
       };

       For  details  on  struct  ibv_qp_cap  see  the  description of ibv_cre-
       ate_qp().  For details on struct ibv_ah_attr  see  the  description  of
       ibv_create_ah().

RETURN VALUE
       ibv_query_qp()  returns  0 on success, or the value of errno on failure
       (which indicates the failure reason).

NOTES
       The argument attr_mask is a hint that specifies the minimum list of at-
       tributes  to  retrieve.   Some RDMA devices may return extra attributes
       not requested, for example if the value can be returned  cheaply.  This
       has the same form as in ibv_modify_qp().

       Attribute values are valid if they have been set using ibv_modify_qp().
       The exact list of valid attributes depends on the QP state.

       Multiple calls to ibv_query_qp() may yield some differences in the val-
       ues  returned  for  the following attributes: qp_state, path_mig_state,
       sq_draining, ah_attr (if APM is enabled).

SEE ALSO
       ibv_create_qp(3), ibv_destroy_qp(3), ibv_modify_qp(3), ibv_create_ah(3)

AUTHORS
       Dotan Barak <dotanba@gmail.com>

libibverbs                        2006-10-31                   IBV_QUERY_QP(3)

Generated by dwww version 1.14 on Fri Jan 24 09:35:57 CET 2025.