mlx5dv_reserved_qpn_dealloc(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | ARGUMENTS | RETURN VALUE | AUTHOR | COLOPHON

mlx5dv_r.../ dealloc(3)  mlx5 Programmer’s Manual mlx5dv_r.../ dealloc(3)

NAME         top

       mlx5dv_reserved_qpn_alloc - Allocate a reserved QP number from
       device

       mlx5dv_reserved_qpn_dealloc - Release the reserved QP number

SYNOPSIS         top

              #include <infiniband/mlx5dv.h>

              int mlx5dv_reserved_qpn_alloc(struct ibv_context *ctx, uint32_t *qpn);

              int mlx5dv_reserved_qpn_dealloc(struct ibv_context *ctx, uint32_t qpn);

DESCRIPTION         top

       When work with RDMA_CM RDMA_TCP_PS + external QP support, a client
       node needs GUID level unique QP numbers to comply with the CM’s
       timewait logic.

       If a real unique QP is not allocated, a device global QPN value is
       required and can be allocated via this interface.

       The mlx5 DCI QP is such an example, which could connect to the
       remote DCT’s multiple times as long as the application provides
       unique QPN for each new RDMA_CM connection.

       These 2 APIs provide the allocation/deallocation of a unique QP
       number from/to device.  This qpn can be used with DC QPN in
       RDMA_CM connection establishment, which will comply with the CM
       timewait kernel logic.

ARGUMENTS         top

       ctx    The device context to issue the action on.

       qpn    The allocated QP number (for alloc API), or the QP number
              to be deallocated (for dealloc API).

RETURN VALUE         top

       0 on success; EOPNOTSUPP if not supported, or other errno value on
       other failures.

AUTHOR         top

       Mark Zhang ⟨markzhang@nvidia.com⟩

       Alex Rosenbaum ⟨alexr@nvidia.com⟩

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 ⟨https://github.com/linux-rdma/rdma-core⟩.  If you have a bug
       report for this manual page, send it to
       linux-rdma@vger.kernel.org.  This page was obtained from the
       project's upstream Git repository
       ⟨https://github.com/linux-rdma/rdma-core.git⟩ on 2025-08-11.  (At
       that time, the date of the most recent commit that was found in
       the repository was 2025-08-04.)  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
       man-pages@man7.org

mlx5                            2020-12-29        mlx5dv_r.../ dealloc(3)