ibv_create_ah, ibv_destroy_ah — create or destroy an address handle (AH)


#include <infiniband/verbs.h>

struct ibv_ah *ibv_create_ah(struct ibv_pd *pd,
                             struct ibv_ah_attr *attr);

int ibv_destroy_ah(struct ibv_ah *ah);


ibv_create_ah() creates an address handle (AH) associated with the protection domain pd. The argument attr is an ibv_ah_attr struct, as defined in <infiniband/verbs.h>.

struct ibv_ah_attr {
struct ibv_global_route grh;            /* Global Routing Header (GRH) attributes */
uint16_t                dlid;           /* Destination LID */
uint8_t                 sl;             /* Service Level */
uint8_t                 src_path_bits;  /* Source path bits */
uint8_t                 static_rate;    /* Maximum static rate */
uint8_t                 is_global;      /* GRH attributes are valid */
uint8_t                 port_num;       /* Physical port number */

struct ibv_global_route {
union ibv_gid           dgid;           /* Destination GID or MGID */
uint32_t                flow_label;     /* Flow label */
uint8_t                 sgid_index;     /* Source GID index */
uint8_t                 hop_limit;      /* Hop limit */
uint8_t                 traffic_class;  /* Traffic class */

ibv_destroy_ah() destroys the AH ah.

Return Value

ibv_create_ah() returns a pointer to the created AH, or NULL if the request fails.


If port flag IBV_QPF_GRH_REQUIRED is set then ibv_create_ah() must be created with definition of 'struct ibv_ah_attr { .is_global = 1; .grh = {...}; }'.

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

See Also

ibv_alloc_pd(3), ibv_init_ah_from_wc(3), ibv_create_ah_from_wc(3)


Dotan Barak <dotanba@gmail.com>

Referenced By

ibv_alloc_pd(3), ibv_create_ah_from_wc(3), ibv_modify_qp(3), ibv_post_send(3), ibv_query_port(3), ibv_query_qp(3).

The man page ibv_destroy_ah(3) is an alias of ibv_create_ah(3).

2006-10-31 Libibverbs Programmer's Manual