NAME         top

       ibv_alloc_parent_domain(), ibv_dealloc_pd() - allocate and deallocate
       the parent domain object

SYNOPSIS         top

       #include <infiniband/verbs.h>

       struct ibv_pd *ibv_alloc_parent_domain(struct ibv_context *context", struct ibv_parent_domain_init_attr *attr);

DESCRIPTION         top

       ibv_alloc_parent_domain() allocates a parent domain object for the
       RDMA device context context.

       The parent domain object extends the normal protection domain with
       additional objects, such as a thread domain.

       A parent domain is completely interchangeable with the struct ibv_pd
       used to create it, and can be used as an input argument to any
       function accepting a struct ibv_pd.

       The behavior of each verb may be different if the verb is passed a
       parent domain struct ibv_pd that contains a struct ibv_td pointer.
       For instance the verb my choose to share resources between objects
       using the same thread domain. The exact behavior is provider

       The attr argument specifies the following:

       struct ibv_parent_domain_init_attr {
               struct ibv_pd *pd; /* referance to a protection domain, can't be NULL */
               struct ibv_td *td; /* referance to a thread domain, or NULL */
               uint32_t comp_mask;

       ibv_dealloc_pd() will deallocate the parent domain as its exposed as
       an ibv_pd pd.  All resources created with the parent domain should be
       destroyed prior to deallocating the parent domain.

RETURN VALUE         top

       ibv_alloc_parent_domain() returns a pointer to the allocated struct
       ibv_pd object, or NULL if the request fails (and sets errno to
       indicate the failure reason).

SEE ALSO         top

       ibv_alloc_parent_domain(3), ibv_dealloc_pd(3), ibv_alloc_pd(3),

AUTHORS         top

       Alex Rosenbaum <>

       Yishai Hadas <>

COLOPHON         top

       This page is part of the rdma-core (RDMA Core Userspace Libraries and
       Daemons) project.  Information about the project can be found at 
       ⟨⟩.  If you have a bug report
       for this manual page, send it to  This
       page was obtained from the project's upstream Git repository
       ⟨⟩ on 2019-09-26.  (At
       that time, the date of the most recent commit that was found in the
       repository was 2019-09-25.)  If you discover any rendering problems
       in this HTML version of the page, or you believe there is a better or
       more up-to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not part
       of the original manual page), send a mail to

libibverbs                       2017-11-06       IBV_ALLOC_PARENT_DOMAIN(3)

Pages that refer to this page: ibv_alloc_parent_domain(3)ibv_alloc_td(3)