MLX5DV_QUERY_DEVICE(3)

NAME
mlx5dv_query_device - Query device capabilities specific to mlx5

SYNOPSIS
#include <infiniband/mlx5dv.h>

int mlx5dv_query_device(struct ibv_context *ctx_in,
                        struct mlx5dv_context *attrs_out);

DESCRIPTION
mlx5dv_query_device() Query HW device-specific information which is important for data-path, but isn't provided by ibv_query_device(3).

This function returns version, flags and compatibility mask. The version represents the format of the internal hardware structures that mlx5dv.h represents. Additions of new fields to the existed structures are handled by comp_mask field.

struct mlx5dv_context {
uint8_t         version;
uint64_t        flags;
uint64_t        comp_mask;
};
enum mlx5dv_context_flags {
/*
 * This flag indicates if CQE version 0 or 1 is needed.
 */
 MLX5DV_CONTEXT_FLAGS_CQE_V1 = (1 << 0),
 MLX5DV_CONTEXT_FLAGS_MPW    = (1 << 1), /* Multi packet WQE is supported or not */
};

RETURN VALUE
0 on success or the value of errno on failure (which indicates the failure reason).

NOTES
 * Compatibility mask (comp_mask) is in/out field.

SEE ALSO
mlx5dv(7), ibv_query_device(3)

AUTHORS

Leon Romanovsky <leonro@mellanox.com>