ibv_import_pd - Man Page


ibv_import_pd — import a PD from a given ibv_context

ibv_unimport_pd — unimport a PD


#include <infiniband/verbs.h>

struct ibv_pd *ibv_import_pd(struct ibv_context *context, uint32_t pd_handle);
void ibv_unimport_pd(struct ibv_pd *pd)


ibv_import_pd() returns a protection domain (PD) that is associated with the given pd_handle in the given context.

The input pd_handle value must be a valid kernel handle for a PD object in the given context. It can be achieved from the original PD by getting its ibv_pd->handle member value.

The returned ibv_pd can be used in all verbs that get a protection domain.

ibv_unimport_pd() unimport the PD. Once the PD usage has been ended ibv_dealloc_pd() or ibv_unimport_pd() should be called. The first one will go to the kernel to destroy the object once the second one way cleanup what ever is needed/opposite of the import without calling the kernel.

This is the responsibility of the application to coordinate between all ibv_context(s) that use this PD. Once destroy is done no other process can touch the object except for unimport. All users of the context must collaborate to ensure this.

Return Value

ibv_import_pd() returns a pointer to the allocated PD, or NULL if the request fails.

See Also

ibv_alloc_pd(3), ibv_dealloc_pd(3),


Yishai Hadas <yishaih@mellanox.com>

Referenced By

The man page ibv_unimport_pd(3) is an alias of ibv_import_pd(3).

2020-5-3 Libibverbs Programmer’s Manual