1mlx5dv_reserved_qpn_alloc /mdlexa5llPorco(g3r)ammemrl’xs5dMva_nrueaslerved_qpn_alloc / dealloc(3)
2
3
4
6 mlx5dv_reserved_qpn_alloc - Allocate a reserved QP number from device
7
8 mlx5dv_reserved_qpn_dealloc - Release the reserved QP number
9
11 #include <infiniband/mlx5dv.h>
12
13 int mlx5dv_reserved_qpn_alloc(struct ibv_context *ctx, uint32_t *qpn);
14
15 int mlx5dv_reserved_qpn_dealloc(struct ibv_context *ctx, uint32_t qpn);
16
18 When work with RDMA_CM RDMA_TCP_PS + external QP support, a client node
19 needs GUID level unique QP numbers to comply with the CM’s timewait
20 logic.
21
22 If a real unique QP is not allocated, a device global QPN value is re‐
23 quired and can be allocated via this interface.
24
25 The mlx5 DCI QP is such an example, which could connect to the remote
26 DCT’s multiple times as long as the application provides unique QPN for
27 each new RDMA_CM connection.
28
29 These 2 APIs provide the allocation/deallocation of a unique QP number
30 from/to device. This qpn can be used with DC QPN in RDMA_CM connection
31 establishment, which will comply with the CM timewait kernel logic.
32
34 ctx The device context to issue the action on.
35
36 qpn The allocated QP number (for alloc API), or the QP number to be
37 deallocated (for dealloc API).
38
40 0 on success; EOPNOTSUPP if not supported, or other errno value on oth‐
41 er failures.
42
44 Mark Zhang <markzhang@nvidia.com>
45
46 Alex Rosenbaum <alexr@nvidia.com>
47
48
49
50mlx5 2020-12m-l2x95dv_reserved_qpn_alloc / dealloc(3)