NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_dpa_dev_rdma.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES, ALL RIGHTS RESERVED.
3  *
4  * This software product is a proprietary product of NVIDIA CORPORATION &
5  * AFFILIATES (the "Company") and all right, title, and interest in and to the
6  * software product, including all associated intellectual property rights, are
7  * and shall remain exclusively with the Company.
8  *
9  * This software product is governed by the End User License Agreement
10  * provided with the software product.
11  *
12  */
13 
23 #ifndef DOCA_DPA_DEV_RDMA_H_
24 #define DOCA_DPA_DEV_RDMA_H_
25 
26 #include <doca_dpa_dev.h>
27 #include <doca_dpa_dev_buf.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
38 
53  uint32_t connection_id,
54  doca_dpa_dev_mmap_t dst_mmap_handle,
55  uint64_t dst_addr,
56  doca_dpa_dev_mmap_t src_mmap_handle,
57  uint64_t src_addr,
58  size_t length,
59  uint32_t flags);
60 
72  uint32_t connection_id,
73  doca_dpa_dev_buf_t dst_buf_handle,
74  doca_dpa_dev_buf_t src_buf_handle,
75  uint32_t flags);
76 
91  uint32_t connection_id,
92  doca_dpa_dev_mmap_t dst_mmap_handle,
93  uint64_t dst_addr,
94  doca_dpa_dev_mmap_t src_mmap_handle,
95  uint64_t src_addr,
96  size_t length,
97  uint32_t flags);
98 
110  uint32_t connection_id,
111  doca_dpa_dev_buf_t dst_buf_handle,
112  doca_dpa_dev_buf_t src_buf_handle,
113  uint32_t flags);
114 
130  uint32_t connection_id,
131  doca_dpa_dev_mmap_t dst_mmap_handle,
132  uint64_t dst_addr,
133  doca_dpa_dev_mmap_t src_mmap_handle,
134  uint64_t src_addr,
135  size_t length,
136  uint32_t immediate,
137  uint32_t flags);
138 
151  uint32_t connection_id,
152  doca_dpa_dev_buf_t dst_buf_handle,
153  doca_dpa_dev_buf_t src_buf_handle,
154  uint32_t immediate,
155  uint32_t flags);
156 
169  uint32_t connection_id,
170  doca_dpa_dev_mmap_t mmap_handle,
171  uint64_t addr,
172  size_t length,
173  uint32_t flags);
174 
185  uint32_t connection_id,
186  doca_dpa_dev_buf_t send_buf_handle,
187  uint32_t flags);
188 
202  uint32_t connection_id,
203  doca_dpa_dev_mmap_t mmap_handle,
204  uint64_t addr,
205  size_t length,
206  uint32_t immediate,
207  uint32_t flags);
208 
220  uint32_t connection_id,
221  doca_dpa_dev_buf_t send_buf_handle,
222  uint32_t immediate,
223  uint32_t flags);
224 
235  doca_dpa_dev_mmap_t mmap_handle,
236  uint64_t addr,
237  size_t length);
238 
247 
255 void doca_dpa_dev_rdma_receive_ack(doca_dpa_dev_rdma_t rdma, uint32_t num_acked);
256 
264 
277  uint32_t connection_id,
278  doca_dpa_dev_mmap_t dst_mmap_handle,
279  uint64_t dst_addr,
280  uint64_t value,
281  uint32_t flags);
282 
294  uint32_t connection_id,
295  doca_dpa_dev_buf_t dst_buf_handle,
296  uint64_t value,
297  uint32_t flags);
298 
309  uint32_t connection_id,
310  doca_dpa_dev_sync_event_remote_net_t remote_sync_event,
311  uint64_t count);
312 
323  uint32_t connection_id,
324  doca_dpa_dev_sync_event_remote_net_t remote_sync_event,
325  uint64_t count);
326 
327 #ifdef __cplusplus
328 }
329 #endif
330 
333 #endif /* DOCA_DPA_DEV_RDMA_H_ */
uintptr_t addr
struct dpa_thread_arg __dpa_global__
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
Definition: doca_compat.h:103
__dpa_global__ typedef uint64_t doca_dpa_dev_buf_t
DPA buffer handle type definition.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_buf_send_imm(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_buf_t send_buf_handle, uint32_t immediate, uint32_t flags)
Post an RDMA send with immediate operation.
__dpa_global__ typedef uint64_t doca_dpa_dev_rdma_t
DPA RDMA handle type definition.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_buf_atomic_fetch_add(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_buf_t dst_buf_handle, uint64_t value, uint32_t flags)
Post an RDMA atomic fetch and add operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_buf_send(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_buf_t send_buf_handle, uint32_t flags)
Post an RDMA send operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_receive_ack(doca_dpa_dev_rdma_t rdma, uint32_t num_acked)
Ack an RDMA receive operations to enable reposting the buffers.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_signal_set(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_sync_event_remote_net_t remote_sync_event, uint64_t count)
Signal to set a remote sync event count.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_atomic_fetch_add(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_mmap_t dst_mmap_handle, uint64_t dst_addr, uint64_t value, uint32_t flags)
Post an RDMA atomic fetch and add operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_write_imm(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_mmap_t dst_mmap_handle, uint64_t dst_addr, doca_dpa_dev_mmap_t src_mmap_handle, uint64_t src_addr, size_t length, uint32_t immediate, uint32_t flags)
Post an RDMA write with immediate operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_send_imm(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_mmap_t mmap_handle, uint64_t addr, size_t length, uint32_t immediate, uint32_t flags)
Post an RDMA send with immediate operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_buf_write_imm(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_buf_t dst_buf_handle, doca_dpa_dev_buf_t src_buf_handle, uint32_t immediate, uint32_t flags)
Post an RDMA write with immediate operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_receive(doca_dpa_dev_rdma_t rdma, doca_dpa_dev_mmap_t mmap_handle, uint64_t addr, size_t length)
Post an RDMA receive operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_send(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_mmap_t mmap_handle, uint64_t addr, size_t length, uint32_t flags)
Post an RDMA send operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_buf_receive(doca_dpa_dev_rdma_t rdma, doca_dpa_dev_buf_t receive_buf_handle)
Post an RDMA receive operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_read(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_mmap_t dst_mmap_handle, uint64_t dst_addr, doca_dpa_dev_mmap_t src_mmap_handle, uint64_t src_addr, size_t length, uint32_t flags)
Send an RDMA read operation.
DOCA_EXPERIMENTAL uint32_t doca_dpa_dev_rdma_completion_get_wr_index(doca_dpa_dev_completion_element_t comp_element)
Get completion work request index.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_buf_write(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_buf_t dst_buf_handle, doca_dpa_dev_buf_t src_buf_handle, uint32_t flags)
Post an RDMA write operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_buf_read(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_buf_t dst_buf_handle, doca_dpa_dev_buf_t src_buf_handle, uint32_t flags)
Post an RDMA read operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_post_write(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_mmap_t dst_mmap_handle, uint64_t dst_addr, doca_dpa_dev_mmap_t src_mmap_handle, uint64_t src_addr, size_t length, uint32_t flags)
Post an RDMA write operation.
DOCA_EXPERIMENTAL void doca_dpa_dev_rdma_signal_add(doca_dpa_dev_rdma_t rdma, uint32_t connection_id, doca_dpa_dev_sync_event_remote_net_t remote_sync_event, uint64_t count)
Signal to atomically add to a remote sync event count.
__dpa_global__ typedef uint64_t doca_dpa_dev_completion_element_t
DPA completion element handle type definition.
Definition: doca_dpa_dev.h:77
uint32_t doca_dpa_dev_mmap_t
Handle on the DPA for a doca_mmap instance.
Definition: doca_mmap.h:74
uint64_t doca_dpa_dev_rdma_t
Definition: doca_rdma.h:79
uint64_t doca_dpa_dev_sync_event_remote_net_t
DOCA Sync Event remote DPA handle.
type value
uint32_t src_addr
Definition: packets.h:8
uint32_t dst_addr
Definition: packets.h:9