Provided by: libibverbs-dev_39.0-1_amd64 

NAME
mlx5dv_create_mkey - Creates an indirect mkey
mlx5dv_create_mkey - Destroys an indirect mkey
SYNOPSIS
#include <infiniband/mlx5dv.h>
struct mlx5dv_mkey_init_attr {
struct ibv_pd *pd;
uint32_t create_flags;
uint16_t max_entries;
};
struct mlx5dv_mkey {
uint32_t lkey;
uint32_t rkey;
};
struct mlx5dv_mkey *
mlx5dv_create_mkey(struct mlx5dv_mkey_init_attr *mkey_init_attr);
int mlx5dv_destroy_mkey(struct mlx5dv_mkey *mkey);
DESCRIPTION
Create / destroy an indirect mkey.
Create an indirect mkey to enable application uses its specific device functionality.
ARGUMENTS
##mkey_init_attr##
pd ibv protection domain.
create_flags
MLX5DV_MKEY_INIT_ATTR_FLAGS_INDIRECT: Indirect mkey is being created. MLX5DV_MKEY_INIT_AT‐
TR_FLAGS_BLOCK_SIGNATURE: Enable block signature offload support for mkey. MLX5DV_MKEY_INIT_AT‐
TR_FLAGS_CRYPTO: Enable crypto offload support for mkey. Setting this flag means that crypto op‐
erations will be done and hence, must be configured. I.e. if this flag is set and the MKey was
not configured for crypto properties using mlx5dv_wr_set_mkey_crypto(), then running traffic with
the MKey will fail, generating a CQE with error.
max_entries
Requested max number of pointed entries by this indirect mkey. The function will update the
mkey_init_attr->max_entries with the actual mkey value that was created; it will be greater than
or equal to the value requested.
RETURN VALUE
Upon success mlx5dv_create_mkey will return a new struct mlx5dv_mkey on error NULL will be returned and
errno will be set.
Upon success destroy 0 is returned or the value of errno on a failure.
Notes
To let this functionality works a DEVX context should be opened by using mlx5dv_open_device.
The created indirect mkey can`t work with scatter to CQE feature, consider mlx5dv_create_qp() with
MLX5DV_QP_CREATE_DISABLE_SCATTER_TO_CQE for small messages.
SEE ALSO
mlx5dv_open_device(3), mlx5dv_create_qp(3)
#AUTHOR
Yishai Hadas <yishaih@mellanox.com>
mlx5dv_create_mkey / mlx5dv_destroy_mkey(3)