Provided by: libibverbs-dev_47.0-1_amd64 bug

NAME

       mlx5dv_create_mkey - Creates an indirect mkey

       mlx5dv_destroy_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_ATTR_FLAGS_BLOCK_SIGNATURE: Enable block signature offload support
              for  mkey.   MLX5DV_MKEY_INIT_ATTR_FLAGS_CRYPTO:  Enable crypto offload support for
              mkey.  Setting this flag means that crypto operations 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.
              MLX5DV_MKEY_INIT_ATTR_FLAGS_UPDATE_TAG:  Enable  update  tag  support   for   mkey.
              Setting  this  flag  allows an application to set the mkey tag post of creating the
              mkey.  If the kernel does not support updating the mkey  tag,  mkey  creation  will
              fail.   MLX5DV_MKEY_INIT_ATTR_FLAGS_REMOTE_INVALIDATE:  Enable  remote invalidation
              support for mkey.

       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)