NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_rdma.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2023-2025 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 
22 #ifndef DOCA_RDMA_H_
23 #define DOCA_RDMA_H_
24 
25 #include <stdbool.h>
26 #include <stdint.h>
27 #include <rdma/rdma_cma.h>
28 #include <doca_error.h>
29 #include <doca_types.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 /**********************************************************************************************************************
36  * DOCA core opaque types
37  *********************************************************************************************************************/
38 
39 struct doca_buf;
40 struct doca_dev;
41 struct doca_devinfo;
42 struct doca_sync_event_remote_net;
43 
48 };
49 
51 struct doca_rdma_gid {
53 };
54 
60 };
61 
62 /*********************************************************************************************************************
63  * DOCA RDMA Opaques
64  *********************************************************************************************************************/
65 
69 struct doca_rdma;
70 
74 struct doca_rdma_addr;
75 
79 struct doca_rdma_connection;
80 
84 typedef uint64_t doca_dpa_dev_rdma_t;
85 
89 struct doca_gpu_dev_rdma;
90 
91 /*********************************************************************************************************************
92  * DOCA RDMA Context
93  *********************************************************************************************************************/
94 
111 doca_error_t doca_rdma_create(struct doca_dev *dev, struct doca_rdma **rdma);
112 
126 doca_error_t doca_rdma_destroy(struct doca_rdma *rdma);
127 
138 struct doca_ctx *doca_rdma_as_ctx(struct doca_rdma *rdma);
139 
166 doca_error_t doca_rdma_export(struct doca_rdma *rdma,
167  const void **local_rdma_conn_details,
168  size_t *local_rdma_conn_details_size,
169  struct doca_rdma_connection **rdma_connection);
170 
195 doca_error_t doca_rdma_connect(struct doca_rdma *rdma,
196  const void *remote_rdma_conn_details,
197  size_t remote_rdma_conn_details_size,
198  struct doca_rdma_connection *rdma_connection);
199 
221  const char *address,
222  uint16_t port,
223  struct doca_rdma_addr **addr);
224 
238 doca_error_t doca_rdma_addr_destroy(struct doca_rdma_addr *addr);
239 
260 doca_error_t doca_rdma_start_listen_to_port(struct doca_rdma *rdma, uint16_t port);
261 
281 doca_error_t doca_rdma_stop_listen_to_port(struct doca_rdma *rdma, uint16_t port);
282 
305 doca_error_t doca_rdma_connection_accept(struct doca_rdma_connection *rdma_connection,
306  void *private_data,
307  uint8_t private_data_len);
308 
323 doca_error_t doca_rdma_connection_reject(struct doca_rdma_connection *rdma_connection);
324 
348  struct doca_rdma_addr *addr,
349  union doca_data connection_user_data);
350 
365 doca_error_t doca_rdma_connection_disconnect(struct doca_rdma_connection *rdma_connection);
366 
395  struct rdma_cm_id *cm_id,
396  struct doca_rdma_connection **rdma_connection);
397 
424 doca_error_t doca_rdma_bridge_accept(struct doca_rdma *rdma,
425  void *private_data,
426  uint8_t private_data_len,
427  struct doca_rdma_connection *rdma_connection);
428 
445 doca_error_t doca_rdma_bridge_established(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection);
446 
447 /*********************************************************************************************************************
448  * DOCA RDMA capabilities
449  *********************************************************************************************************************/
450 
467 doca_error_t doca_rdma_cap_get_max_recv_queue_size(const struct doca_devinfo *devinfo, uint32_t *max_recv_queue_size);
468 
484 doca_error_t doca_rdma_cap_get_max_send_queue_size(const struct doca_devinfo *devinfo, uint32_t *max_send_queue_size);
485 
502 doca_error_t doca_rdma_cap_get_max_send_buf_list_len(const struct doca_devinfo *devinfo,
503  uint32_t *max_send_buf_list_len);
504 
520 doca_error_t doca_rdma_cap_get_max_message_size(const struct doca_devinfo *devinfo, uint32_t *max_message_size);
521 
537 doca_error_t doca_rdma_cap_get_gid_table_size(const struct doca_devinfo *devinfo, uint32_t *gid_table_size);
538 
559 doca_error_t doca_rdma_cap_get_gid(const struct doca_devinfo *devinfo,
560  uint32_t start_index,
561  uint32_t num_entries,
562  struct doca_rdma_gid *gid_array);
563 
580 doca_error_t doca_rdma_cap_transport_type_is_supported(const struct doca_devinfo *devinfo,
581  enum doca_rdma_transport_type transport_type);
582 
583 /*********************************************************************************************************************
584  * DOCA RDMA properties
585  *********************************************************************************************************************/
586 
606 doca_error_t doca_rdma_set_send_queue_size(struct doca_rdma *rdma, uint32_t send_queue_size);
607 
629 doca_error_t doca_rdma_set_recv_queue_size(struct doca_rdma *rdma, uint32_t recv_queue_size);
630 
649 doca_error_t doca_rdma_set_max_send_buf_list_len(struct doca_rdma *rdma, uint32_t max_send_buf_list_len);
650 
669 doca_error_t doca_rdma_set_transport_type(struct doca_rdma *rdma, enum doca_rdma_transport_type transport_type);
670 
690 doca_error_t doca_rdma_set_mtu(struct doca_rdma *rdma, enum doca_mtu_size mtu);
691 
710 doca_error_t doca_rdma_set_permissions(struct doca_rdma *rdma, uint32_t permissions);
711 
736 doca_error_t doca_rdma_set_grh_enabled(struct doca_rdma *rdma, uint8_t grh_enabled);
737 
755 doca_error_t doca_rdma_set_gid_index(struct doca_rdma *rdma, uint32_t gid_index);
756 
774 doca_error_t doca_rdma_set_sl(struct doca_rdma *rdma, uint32_t sl);
775 
792 doca_error_t doca_rdma_set_connection_request_timeout(struct doca_rdma *rdma, uint16_t timeout);
793 
811 doca_error_t doca_rdma_connection_set_user_data(struct doca_rdma_connection *rdma_connection,
812  union doca_data connection_user_data);
813 
831 doca_error_t doca_rdma_set_max_num_connections(struct doca_rdma *rdma, uint16_t max_num_connections);
832 
850 doca_error_t doca_rdma_set_rnr_retry_count(struct doca_rdma *rdma, uint8_t rnr_retry_count);
851 
869 doca_error_t doca_rdma_get_send_queue_size(const struct doca_rdma *rdma, uint32_t *send_queue_size);
870 
891 doca_error_t doca_rdma_get_recv_queue_size(const struct doca_rdma *rdma, uint32_t *recv_queue_size);
892 
908 doca_error_t doca_rdma_get_max_send_buf_list_len(const struct doca_rdma *rdma, uint32_t *max_send_buf_list_len);
909 
925 doca_error_t doca_rdma_get_transport_type(const struct doca_rdma *rdma, enum doca_rdma_transport_type *transport_type);
926 
943 doca_error_t doca_rdma_get_mtu(const struct doca_rdma *rdma, enum doca_mtu_size *mtu);
944 
961 doca_error_t doca_rdma_get_permissions(struct doca_rdma *rdma, uint32_t *permissions);
962 
978 doca_error_t doca_rdma_get_grh_enabled(const struct doca_rdma *rdma, uint8_t *grh_enabled);
979 
995 doca_error_t doca_rdma_get_gid_index(const struct doca_rdma *rdma, uint32_t *gid_index);
996 
1012 doca_error_t doca_rdma_get_sl(const struct doca_rdma *rdma, uint32_t *sl);
1013 
1029 doca_error_t doca_rdma_get_dpa_handle(struct doca_rdma *rdma, doca_dpa_dev_rdma_t *dpa_rdma);
1030 
1046 doca_error_t doca_rdma_get_gpu_handle(struct doca_rdma *rdma, struct doca_gpu_dev_rdma **gpu_rdma);
1047 
1065 doca_error_t doca_rdma_get_connection_request_timeout(const struct doca_rdma *rdma, uint16_t *timeout);
1066 
1081 doca_error_t doca_rdma_connection_get_addr(const struct doca_rdma_connection *rdma_connection,
1082  struct doca_rdma_addr **addr);
1083 
1103  enum doca_rdma_addr_type *addr_type,
1104  const char **address,
1105  uint16_t *port);
1106 
1124 doca_error_t doca_rdma_connection_get_user_data(const struct doca_rdma_connection *rdma_connection,
1125  union doca_data *connection_user_data);
1126 
1143 doca_error_t doca_rdma_connection_get_id(const struct doca_rdma_connection *rdma_connection, uint32_t *connection_id);
1144 
1160 doca_error_t doca_rdma_get_max_num_connections(struct doca_rdma *rdma, uint16_t *max_num_connections);
1161 
1177 doca_error_t doca_rdma_get_rnr_retry_count(const struct doca_rdma *rdma, uint8_t *rnr_retry_count);
1178 
1179 /*********************************************************************************************************************
1180  * DOCA RDMA Connections
1181  *********************************************************************************************************************/
1182 
1201 typedef void (*doca_rdma_connection_request_cb_t)(struct doca_rdma_connection *rdma_connection,
1202  union doca_data ctx_user_data);
1203 
1224 typedef void (*doca_rdma_connection_established_cb_t)(struct doca_rdma_connection *rdma_connection,
1225  union doca_data connection_user_data,
1226  union doca_data ctx_user_data);
1227 
1248 typedef void (*doca_rdma_connection_failure_cb_t)(struct doca_rdma_connection *rdma_connection,
1249  union doca_data connection_user_data,
1250  union doca_data ctx_user_data);
1251 
1272 typedef void (*doca_rdma_connection_disconnection_cb_t)(struct doca_rdma_connection *rdma_connection,
1273  union doca_data connection_user_data,
1274  union doca_data ctx_user_data);
1275 
1298  struct doca_rdma *rdma,
1299  doca_rdma_connection_request_cb_t doca_rdma_connect_request_cb,
1300  doca_rdma_connection_established_cb_t doca_rdma_connect_established_cb,
1301  doca_rdma_connection_failure_cb_t doca_rdma_connect_failure_cb,
1302  doca_rdma_connection_disconnection_cb_t doca_rdma_disconnect_cb);
1303 
1304 /*********************************************************************************************************************
1305  * DOCA RDMA Tasks
1306  *********************************************************************************************************************/
1307 
1308 /********************************************
1309  * DOCA RDMA Task - Receive *
1310  ********************************************/
1311 
1315 struct doca_rdma_task_receive;
1316 
1322 };
1323 
1349 typedef void (*doca_rdma_task_receive_completion_cb_t)(struct doca_rdma_task_receive *task,
1350  union doca_data task_user_data,
1351  union doca_data ctx_user_data);
1352 
1366 doca_error_t doca_rdma_cap_task_receive_is_supported(const struct doca_devinfo *devinfo);
1367 
1390  enum doca_rdma_transport_type transport_type,
1391  uint32_t *max_buf_list_len);
1392 
1413  doca_rdma_task_receive_completion_cb_t successful_task_completion_cb,
1414  doca_rdma_task_receive_completion_cb_t error_task_completion_cb,
1415  uint32_t num_tasks);
1416 
1436 doca_error_t doca_rdma_task_receive_set_dst_buf_list_len(struct doca_rdma *rdma, uint32_t buf_list_len);
1437 
1455 doca_error_t doca_rdma_task_receive_get_dst_buf_list_len(const struct doca_rdma *rdma, uint32_t *buf_list_len);
1456 
1480  struct doca_buf *dst_buf,
1481  union doca_data user_data,
1482  struct doca_rdma_task_receive **task);
1483 
1494 struct doca_task *doca_rdma_task_receive_as_task(struct doca_rdma_task_receive *task);
1495 
1510 void doca_rdma_task_receive_set_dst_buf(struct doca_rdma_task_receive *task, struct doca_buf *dst_buf);
1511 
1522 struct doca_buf *doca_rdma_task_receive_get_dst_buf(const struct doca_rdma_task_receive *task);
1523 
1535 enum doca_rdma_opcode doca_rdma_task_receive_get_result_opcode(const struct doca_rdma_task_receive *task);
1536 
1548 uint32_t doca_rdma_task_receive_get_result_len(const struct doca_rdma_task_receive *task);
1549 
1564 doca_be32_t doca_rdma_task_receive_get_result_immediate_data(const struct doca_rdma_task_receive *task);
1565 
1577 const struct doca_rdma_connection *doca_rdma_task_receive_get_result_rdma_connection(
1578  const struct doca_rdma_task_receive *task);
1579 
1580 /********************************************
1581  * DOCA RDMA Task - Send *
1582  ********************************************/
1583 
1587 struct doca_rdma_task_send;
1588 
1614 typedef void (*doca_rdma_task_send_completion_cb_t)(struct doca_rdma_task_send *task,
1615  union doca_data task_user_data,
1616  union doca_data ctx_user_data);
1617 
1631 doca_error_t doca_rdma_cap_task_send_is_supported(const struct doca_devinfo *devinfo);
1632 
1653  doca_rdma_task_send_completion_cb_t successful_task_completion_cb,
1654  doca_rdma_task_send_completion_cb_t error_task_completion_cb,
1655  uint32_t num_tasks);
1656 
1682  struct doca_rdma_connection *rdma_connection,
1683  const struct doca_buf *src_buf,
1684  union doca_data user_data,
1685  struct doca_rdma_task_send **task);
1686 
1697 struct doca_task *doca_rdma_task_send_as_task(struct doca_rdma_task_send *task);
1698 
1713 void doca_rdma_task_send_set_src_buf(struct doca_rdma_task_send *task, const struct doca_buf *src_buf);
1714 
1725 const struct doca_buf *doca_rdma_task_send_get_src_buf(const struct doca_rdma_task_send *task);
1726 
1737 void doca_rdma_task_send_set_rdma_connection(struct doca_rdma_task_send *task,
1738  struct doca_rdma_connection *rdma_connection);
1739 
1750 const struct doca_rdma_connection *doca_rdma_task_send_get_rdma_connection(const struct doca_rdma_task_send *task);
1751 
1752 /********************************************
1753  * DOCA RDMA Task - Send with Immediate *
1754  ********************************************/
1755 
1759 struct doca_rdma_task_send_imm;
1760 
1787 typedef void (*doca_rdma_task_send_imm_completion_cb_t)(struct doca_rdma_task_send_imm *task,
1788  union doca_data task_user_data,
1789  union doca_data ctx_user_data);
1790 
1804 doca_error_t doca_rdma_cap_task_send_imm_is_supported(const struct doca_devinfo *devinfo);
1805 
1826  doca_rdma_task_send_imm_completion_cb_t successful_task_completion_cb,
1827  doca_rdma_task_send_imm_completion_cb_t error_task_completion_cb,
1828  uint32_t num_tasks);
1829 
1857  struct doca_rdma_connection *rdma_connection,
1858  const struct doca_buf *src_buf,
1859  doca_be32_t immediate_data,
1860  union doca_data user_data,
1861  struct doca_rdma_task_send_imm **task);
1862 
1873 struct doca_task *doca_rdma_task_send_imm_as_task(struct doca_rdma_task_send_imm *task);
1874 
1889 void doca_rdma_task_send_imm_set_src_buf(struct doca_rdma_task_send_imm *task, const struct doca_buf *src_buf);
1890 
1901 const struct doca_buf *doca_rdma_task_send_imm_get_src_buf(const struct doca_rdma_task_send_imm *task);
1902 
1913 void doca_rdma_task_send_imm_set_immediate_data(struct doca_rdma_task_send_imm *task, doca_be32_t immediate_data);
1914 
1925 doca_be32_t doca_rdma_task_send_imm_get_immediate_data(const struct doca_rdma_task_send_imm *task);
1926 
1937 void doca_rdma_task_send_imm_set_rdma_connection(struct doca_rdma_task_send_imm *task,
1938  struct doca_rdma_connection *rdma_connection);
1939 
1950 const struct doca_rdma_connection *doca_rdma_task_send_imm_get_rdma_connection(
1951  const struct doca_rdma_task_send_imm *task);
1952 
1953 /********************************************
1954  * DOCA RDMA Task - Read *
1955  ********************************************/
1956 
1960 struct doca_rdma_task_read;
1961 
1987 typedef void (*doca_rdma_task_read_completion_cb_t)(struct doca_rdma_task_read *task,
1988  union doca_data task_user_data,
1989  union doca_data ctx_user_data);
1990 
2004 doca_error_t doca_rdma_cap_task_read_is_supported(const struct doca_devinfo *devinfo);
2005 
2026  doca_rdma_task_read_completion_cb_t successful_task_completion_cb,
2027  doca_rdma_task_read_completion_cb_t error_task_completion_cb,
2028  uint32_t num_tasks);
2029 
2059  struct doca_rdma_connection *rdma_connection,
2060  const struct doca_buf *src_buf,
2061  struct doca_buf *dst_buf,
2062  union doca_data user_data,
2063  struct doca_rdma_task_read **task);
2064 
2075 struct doca_task *doca_rdma_task_read_as_task(struct doca_rdma_task_read *task);
2076 
2090 void doca_rdma_task_read_set_src_buf(struct doca_rdma_task_read *task, const struct doca_buf *src_buf);
2091 
2102 const struct doca_buf *doca_rdma_task_read_get_src_buf(const struct doca_rdma_task_read *task);
2103 
2117 void doca_rdma_task_read_set_dst_buf(struct doca_rdma_task_read *task, struct doca_buf *dst_buf);
2118 
2129 struct doca_buf *doca_rdma_task_read_get_dst_buf(const struct doca_rdma_task_read *task);
2130 
2142 uint32_t doca_rdma_task_read_get_result_len(const struct doca_rdma_task_read *task);
2143 
2154 void doca_rdma_task_read_set_rdma_connection(struct doca_rdma_task_read *task,
2155  struct doca_rdma_connection *rdma_connection);
2156 
2167 const struct doca_rdma_connection *doca_rdma_task_read_get_rdma_connection(const struct doca_rdma_task_read *task);
2168 
2169 /********************************************
2170  * DOCA RDMA Task - Write *
2171  ********************************************/
2172 
2176 struct doca_rdma_task_write;
2177 
2203 typedef void (*doca_rdma_task_write_completion_cb_t)(struct doca_rdma_task_write *task,
2204  union doca_data task_user_data,
2205  union doca_data ctx_user_data);
2206 
2220 doca_error_t doca_rdma_cap_task_write_is_supported(const struct doca_devinfo *devinfo);
2221 
2242  doca_rdma_task_write_completion_cb_t successful_task_completion_cb,
2243  doca_rdma_task_write_completion_cb_t error_task_completion_cb,
2244  uint32_t num_tasks);
2245 
2275  struct doca_rdma_connection *rdma_connection,
2276  const struct doca_buf *src_buf,
2277  struct doca_buf *dst_buf,
2278  union doca_data user_data,
2279  struct doca_rdma_task_write **task);
2280 
2291 struct doca_task *doca_rdma_task_write_as_task(struct doca_rdma_task_write *task);
2292 
2307 void doca_rdma_task_write_set_src_buf(struct doca_rdma_task_write *task, const struct doca_buf *src_buf);
2308 
2319 const struct doca_buf *doca_rdma_task_write_get_src_buf(const struct doca_rdma_task_write *task);
2320 
2334 void doca_rdma_task_write_set_dst_buf(struct doca_rdma_task_write *task, struct doca_buf *dst_buf);
2335 
2346 struct doca_buf *doca_rdma_task_write_get_dst_buf(const struct doca_rdma_task_write *task);
2347 
2358 void doca_rdma_task_write_set_rdma_connection(struct doca_rdma_task_write *task,
2359  struct doca_rdma_connection *rdma_connection);
2360 
2371 const struct doca_rdma_connection *doca_rdma_task_write_get_rdma_connection(const struct doca_rdma_task_write *task);
2372 
2373 /********************************************
2374  * DOCA RDMA Task - Write with Immediate *
2375  ********************************************/
2376 
2381 struct doca_rdma_task_write_imm;
2382 
2409 typedef void (*doca_rdma_task_write_imm_completion_cb_t)(struct doca_rdma_task_write_imm *task,
2410  union doca_data task_user_data,
2411  union doca_data ctx_user_data);
2412 
2426 doca_error_t doca_rdma_cap_task_write_imm_is_supported(const struct doca_devinfo *devinfo);
2427 
2448  doca_rdma_task_write_imm_completion_cb_t successful_task_completion_cb,
2449  doca_rdma_task_write_imm_completion_cb_t error_task_completion_cb,
2450  uint32_t num_tasks);
2451 
2483  struct doca_rdma_connection *rdma_connection,
2484  const struct doca_buf *src_buf,
2485  struct doca_buf *dst_buf,
2486  doca_be32_t immediate_data,
2487  union doca_data user_data,
2488  struct doca_rdma_task_write_imm **task);
2489 
2500 struct doca_task *doca_rdma_task_write_imm_as_task(struct doca_rdma_task_write_imm *task);
2501 
2516 void doca_rdma_task_write_imm_set_src_buf(struct doca_rdma_task_write_imm *task, const struct doca_buf *src_buf);
2517 
2528 const struct doca_buf *doca_rdma_task_write_imm_get_src_buf(const struct doca_rdma_task_write_imm *task);
2529 
2543 void doca_rdma_task_write_imm_set_dst_buf(struct doca_rdma_task_write_imm *task, struct doca_buf *dst_buf);
2544 
2555 struct doca_buf *doca_rdma_task_write_imm_get_dst_buf(const struct doca_rdma_task_write_imm *task);
2556 
2567 void doca_rdma_task_write_imm_set_immediate_data(struct doca_rdma_task_write_imm *task, doca_be32_t immediate_data);
2568 
2579 doca_be32_t doca_rdma_task_write_imm_get_immediate_data(const struct doca_rdma_task_write_imm *task);
2580 
2591 void doca_rdma_task_write_imm_set_rdma_connection(struct doca_rdma_task_write_imm *task,
2592  struct doca_rdma_connection *rdma_connection);
2593 
2604 const struct doca_rdma_connection *doca_rdma_task_write_imm_get_rdma_connection(
2605  const struct doca_rdma_task_write_imm *task);
2606 
2607 /********************************************
2608  * DOCA RDMA Task - Atomic Compare and Swap *
2609  ********************************************/
2610 
2619 struct doca_rdma_task_atomic_cmp_swp;
2620 
2647 typedef void (*doca_rdma_task_atomic_cmp_swp_completion_cb_t)(struct doca_rdma_task_atomic_cmp_swp *task,
2648  union doca_data task_user_data,
2649  union doca_data ctx_user_data);
2650 
2665 
2686  struct doca_rdma *rdma,
2687  doca_rdma_task_atomic_cmp_swp_completion_cb_t successful_task_completion_cb,
2688  doca_rdma_task_atomic_cmp_swp_completion_cb_t error_task_completion_cb,
2689  uint32_t num_tasks);
2690 
2723  struct doca_rdma_connection *rdma_connection,
2724  struct doca_buf *dst_buf,
2725  struct doca_buf *result_buf,
2726  uint64_t cmp_data,
2727  uint64_t swap_data,
2728  union doca_data user_data,
2729  struct doca_rdma_task_atomic_cmp_swp **task);
2730 
2741 struct doca_task *doca_rdma_task_atomic_cmp_swp_as_task(struct doca_rdma_task_atomic_cmp_swp *task);
2742 
2755 void doca_rdma_task_atomic_cmp_swp_set_dst_buf(struct doca_rdma_task_atomic_cmp_swp *task, struct doca_buf *dst_buf);
2756 
2767 struct doca_buf *doca_rdma_task_atomic_cmp_swp_get_dst_buf(const struct doca_rdma_task_atomic_cmp_swp *task);
2768 
2780 void doca_rdma_task_atomic_cmp_swp_set_result_buf(struct doca_rdma_task_atomic_cmp_swp *task,
2781  struct doca_buf *result_buf);
2782 
2793 struct doca_buf *doca_rdma_task_atomic_cmp_swp_get_result_buf(const struct doca_rdma_task_atomic_cmp_swp *task);
2794 
2805 void doca_rdma_task_atomic_cmp_swp_set_cmp_data(struct doca_rdma_task_atomic_cmp_swp *task, uint64_t cmp_data);
2806 
2817 uint64_t doca_rdma_task_atomic_cmp_swp_get_cmp_data(const struct doca_rdma_task_atomic_cmp_swp *task);
2818 
2830 void doca_rdma_task_atomic_cmp_swp_set_swap_data(struct doca_rdma_task_atomic_cmp_swp *task, uint64_t swap_data);
2831 
2842 uint64_t doca_rdma_task_atomic_cmp_swp_get_swap_data(const struct doca_rdma_task_atomic_cmp_swp *task);
2843 
2854 void doca_rdma_task_atomic_cmp_swp_set_rdma_connection(struct doca_rdma_task_atomic_cmp_swp *task,
2855  struct doca_rdma_connection *rdma_connection);
2856 
2867 const struct doca_rdma_connection *doca_rdma_task_atomic_cmp_swp_get_rdma_connection(
2868  const struct doca_rdma_task_atomic_cmp_swp *task);
2869 
2870 /********************************************
2871  * DOCA RDMA Task - Atomic Fetch and Add *
2872  ********************************************/
2873 
2880 struct doca_rdma_task_atomic_fetch_add;
2881 
2908 typedef void (*doca_rdma_task_atomic_fetch_add_completion_cb_t)(struct doca_rdma_task_atomic_fetch_add *task,
2909  union doca_data task_user_data,
2910  union doca_data ctx_user_data);
2911 
2926 
2947  struct doca_rdma *rdma,
2948  doca_rdma_task_atomic_fetch_add_completion_cb_t successful_task_completion_cb,
2949  doca_rdma_task_atomic_fetch_add_completion_cb_t error_task_completion_cb,
2950  uint32_t num_tasks);
2951 
2981  struct doca_rdma_connection *rdma_connection,
2982  struct doca_buf *dst_buf,
2983  struct doca_buf *result_buf,
2984  uint64_t add_data,
2985  union doca_data user_data,
2986  struct doca_rdma_task_atomic_fetch_add **task);
2987 
2998 struct doca_task *doca_rdma_task_atomic_fetch_add_as_task(struct doca_rdma_task_atomic_fetch_add *task);
2999 
3012 void doca_rdma_task_atomic_fetch_add_set_dst_buf(struct doca_rdma_task_atomic_fetch_add *task,
3013  struct doca_buf *dst_buf);
3014 
3025 struct doca_buf *doca_rdma_task_atomic_fetch_add_get_dst_buf(const struct doca_rdma_task_atomic_fetch_add *task);
3026 
3038 void doca_rdma_task_atomic_fetch_add_set_result_buf(struct doca_rdma_task_atomic_fetch_add *task,
3039  struct doca_buf *result_buf);
3040 
3051 struct doca_buf *doca_rdma_task_atomic_fetch_add_get_result_buf(const struct doca_rdma_task_atomic_fetch_add *task);
3052 
3063 void doca_rdma_task_atomic_fetch_add_set_add_data(struct doca_rdma_task_atomic_fetch_add *task, uint64_t add_data);
3064 
3075 uint64_t doca_rdma_task_atomic_fetch_add_get_add_data(const struct doca_rdma_task_atomic_fetch_add *task);
3076 
3087 void doca_rdma_task_atomic_fetch_add_set_rdma_connection(struct doca_rdma_task_atomic_fetch_add *task,
3088  struct doca_rdma_connection *rdma_connection);
3089 
3100 const struct doca_rdma_connection *doca_rdma_task_atomic_fetch_add_get_rdma_connection(
3101  const struct doca_rdma_task_atomic_fetch_add *task);
3102 
3103 /**********************************************
3104  * DOCA RDMA Task - Remote Net Sync Event Get *
3105  **********************************************/
3106 
3110 struct doca_rdma_task_remote_net_sync_event_get;
3111 
3139  struct doca_rdma_task_remote_net_sync_event_get *task,
3140  union doca_data task_user_data,
3141  union doca_data ctx_user_data);
3142 
3157 
3178  struct doca_rdma *rdma,
3179  doca_rdma_task_remote_net_sync_event_get_completion_cb_t successful_task_completion_cb,
3181  uint32_t num_tasks);
3182 
3209  struct doca_rdma *rdma,
3210  struct doca_rdma_connection *rdma_connection,
3211  const struct doca_sync_event_remote_net *event,
3212  struct doca_buf *dst_buf,
3213  union doca_data user_data,
3214  struct doca_rdma_task_remote_net_sync_event_get **task);
3215 
3227  struct doca_rdma_task_remote_net_sync_event_get *task);
3228 
3238 void doca_rdma_task_remote_net_sync_event_get_set_sync_event(struct doca_rdma_task_remote_net_sync_event_get *task,
3239  const struct doca_sync_event_remote_net *event);
3240 
3251 const struct doca_sync_event_remote_net *doca_rdma_task_remote_net_sync_event_get_get_sync_event(
3252  const struct doca_rdma_task_remote_net_sync_event_get *task);
3253 
3266 void doca_rdma_task_remote_net_sync_event_get_set_dst_buf(struct doca_rdma_task_remote_net_sync_event_get *task,
3267  struct doca_buf *dst_buf);
3268 
3280  const struct doca_rdma_task_remote_net_sync_event_get *task);
3281 
3294  const struct doca_rdma_task_remote_net_sync_event_get *task);
3295 
3306 void doca_rdma_task_remote_net_sync_event_get_set_rdma_connection(struct doca_rdma_task_remote_net_sync_event_get *task,
3307  struct doca_rdma_connection *rdma_connection);
3308 
3320  const struct doca_rdma_task_remote_net_sync_event_get *task);
3321 
3322 /********************************************************************
3323  * DOCA RDMA Task - Remote Net Sync Event Notify Set *
3324  ********************************************************************/
3325 
3329 struct doca_rdma_task_remote_net_sync_event_notify_set;
3330 
3358  struct doca_rdma_task_remote_net_sync_event_notify_set *task,
3359  union doca_data task_user_data,
3360  union doca_data ctx_user_data);
3361 
3376 
3397  struct doca_rdma *rdma,
3400  uint32_t num_tasks);
3401 
3428  struct doca_rdma *rdma,
3429  struct doca_rdma_connection *rdma_connection,
3430  struct doca_sync_event_remote_net *event,
3431  const struct doca_buf *src_buf,
3432  union doca_data user_data,
3433  struct doca_rdma_task_remote_net_sync_event_notify_set **task);
3434 
3446  struct doca_rdma_task_remote_net_sync_event_notify_set *task);
3447 
3459  struct doca_rdma_task_remote_net_sync_event_notify_set *task,
3460  struct doca_sync_event_remote_net *event);
3461 
3473  const struct doca_rdma_task_remote_net_sync_event_notify_set *task);
3474 
3486  struct doca_rdma_task_remote_net_sync_event_notify_set *task,
3487  struct doca_rdma_connection *rdma_connection);
3488 
3500  const struct doca_rdma_task_remote_net_sync_event_notify_set *task);
3501 
3512  struct doca_rdma_task_remote_net_sync_event_notify_set *task,
3513  const struct doca_buf *src_buf);
3514 
3526  const struct doca_rdma_task_remote_net_sync_event_notify_set *task);
3527 
3528 /********************************************************
3529  * DOCA RDMA Task - Remote Net Sync Event Notify Add *
3530  ********************************************************/
3531 
3536 struct doca_rdma_task_remote_net_sync_event_notify_add;
3537 
3565  struct doca_rdma_task_remote_net_sync_event_notify_add *task,
3566  union doca_data task_user_data,
3567  union doca_data ctx_user_data);
3568 
3583 
3604  struct doca_rdma *rdma,
3607  uint32_t num_tasks);
3608 
3636  struct doca_rdma *rdma,
3637  struct doca_rdma_connection *rdma_connection,
3638  struct doca_sync_event_remote_net *event,
3639  struct doca_buf *result_buf,
3640  uint64_t add_data,
3641  union doca_data user_data,
3642  struct doca_rdma_task_remote_net_sync_event_notify_add **task);
3643 
3655  struct doca_rdma_task_remote_net_sync_event_notify_add *task);
3656 
3667  struct doca_rdma_task_remote_net_sync_event_notify_add *task,
3668  struct doca_sync_event_remote_net *event);
3669 
3681  const struct doca_rdma_task_remote_net_sync_event_notify_add *task);
3682 
3695  struct doca_rdma_task_remote_net_sync_event_notify_add *task,
3696  struct doca_buf *result_buf);
3697 
3709  const struct doca_rdma_task_remote_net_sync_event_notify_add *task);
3710 
3722  struct doca_rdma_task_remote_net_sync_event_notify_add *task,
3723  uint64_t add_data);
3724 
3736  const struct doca_rdma_task_remote_net_sync_event_notify_add *task);
3737 
3749  struct doca_rdma_task_remote_net_sync_event_notify_add *task,
3750  struct doca_rdma_connection *rdma_connection);
3751 
3763  const struct doca_rdma_task_remote_net_sync_event_notify_add *task);
3764 
3765 /*********************************************************************************************************************
3766  * DOCA RDMA DPA Completion context
3767  *********************************************************************************************************************/
3768 
3772 struct doca_dpa_completion;
3773 
3794 doca_error_t doca_rdma_dpa_completion_attach(struct doca_rdma *rdma, struct doca_dpa_completion *dpa_comp);
3795 
3796 #ifdef __cplusplus
3797 } /* extern "C" */
3798 #endif
3799 
3800 #endif /* DOCA_RDMA_H_ */
3801 
uintptr_t addr
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
Definition: doca_compat.h:103
enum doca_error doca_error_t
DOCA API return codes.
DOCA_EXPERIMENTAL struct doca_buf * doca_rdma_task_receive_get_dst_buf(const struct doca_rdma_task_receive *task)
This method gets the destination buffer of a receive task.
void(* doca_rdma_task_receive_completion_cb_t)(struct doca_rdma_task_receive *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of a receive task.
Definition: doca_rdma.h:1349
DOCA_EXPERIMENTAL struct doca_buf * doca_rdma_task_write_get_dst_buf(const struct doca_rdma_task_write *task)
This method gets the destination buffer of a write task.
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_remote_net_sync_event_notify_set_as_task(struct doca_rdma_task_remote_net_sync_event_notify_set *task)
This method converts a remote_net_sync_event_notify_set task to a doca_task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_transport_type(struct doca_rdma *rdma, enum doca_rdma_transport_type transport_type)
Set transport type for doca_rdma. The value can be queried using doca_rdma_get_transport_type()....
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_remote_net_sync_event_get_set_conf(struct doca_rdma *rdma, doca_rdma_task_remote_net_sync_event_get_completion_cb_t successful_task_completion_cb, doca_rdma_task_remote_net_sync_event_get_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the remote_net_sync_event_get tasks configuration.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_gpu_handle(struct doca_rdma *rdma, struct doca_gpu_dev_rdma **gpu_rdma)
Retrieve the handle in the gpu memory space of a doca_rdma.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_atomic_cmp_swp_is_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL void doca_rdma_task_read_set_rdma_connection(struct doca_rdma_task_read *task, struct doca_rdma_connection *rdma_connection)
This method sets the rdma_connection of a read task.
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_send_imm_get_rdma_connection(const struct doca_rdma_task_send_imm *task)
This method gets the rdma connection of a send with immediate task.
void(* doca_rdma_task_atomic_cmp_swp_completion_cb_t)(struct doca_rdma_task_atomic_cmp_swp *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of an atomic compare and swap task.
Definition: doca_rdma.h:2647
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_remote_net_sync_event_notify_add_as_task(struct doca_rdma_task_remote_net_sync_event_notify_add *task)
This method converts a remote_net_sync_event_notify_add task to a doca_task.
DOCA_EXPERIMENTAL void doca_rdma_task_atomic_cmp_swp_set_swap_data(struct doca_rdma_task_atomic_cmp_swp *task, uint64_t swap_data)
This method sets the swap data of an atomic compare and swap task.
DOCA_EXPERIMENTAL void doca_rdma_task_write_imm_set_dst_buf(struct doca_rdma_task_write_imm *task, struct doca_buf *dst_buf)
This method sets the destination buffer of a write with immediate task.
DOCA_EXPERIMENTAL struct doca_sync_event_remote_net * doca_rdma_task_remote_net_sync_event_notify_set_get_sync_event(const struct doca_rdma_task_remote_net_sync_event_notify_set *task)
This method gets the remote net sync event of a remote_net_sync_event_notify_set task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_send_set_conf(struct doca_rdma *rdma, doca_rdma_task_send_completion_cb_t successful_task_completion_cb, doca_rdma_task_send_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the send tasks configuration.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_bridge_prepare_connection(struct doca_rdma *rdma, struct rdma_cm_id *cm_id, struct doca_rdma_connection **rdma_connection)
Prepare the connection and perform the doca connection to client side acting as a bridge....
void(* doca_rdma_task_atomic_fetch_add_completion_cb_t)(struct doca_rdma_task_atomic_fetch_add *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of an atomic fetch and add task.
Definition: doca_rdma.h:2908
void(* doca_rdma_task_remote_net_sync_event_notify_add_completion_cb_t)(struct doca_rdma_task_remote_net_sync_event_notify_add *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of a remote_net_sync_event_notify_add task.
Definition: doca_rdma.h:3564
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_atomic_fetch_add_allocate_init(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, struct doca_buf *dst_buf, struct doca_buf *result_buf, uint64_t add_data, union doca_data user_data, struct doca_rdma_task_atomic_fetch_add **task)
This method allocates and initializes an atomic fetch and add task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_send_imm_allocate_init(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, const struct doca_buf *src_buf, doca_be32_t immediate_data, union doca_data user_data, struct doca_rdma_task_send_imm **task)
This method allocates and initializes a send with immediate task.
DOCA_EXPERIMENTAL struct doca_buf * doca_rdma_task_atomic_cmp_swp_get_result_buf(const struct doca_rdma_task_atomic_cmp_swp *task)
This method gets the result buffer of an atomic compare and swap task.
DOCA_EXPERIMENTAL doca_be32_t doca_rdma_task_receive_get_result_immediate_data(const struct doca_rdma_task_receive *task)
This method gets the immediate data received by the task.
DOCA_EXPERIMENTAL void doca_rdma_task_write_imm_set_immediate_data(struct doca_rdma_task_write_imm *task, doca_be32_t immediate_data)
This method sets the immediate data of a write with immediate task.
DOCA_EXPERIMENTAL uint64_t doca_rdma_task_atomic_fetch_add_get_add_data(const struct doca_rdma_task_atomic_fetch_add *task)
This method gets the add data of an atomic fetch and add task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_write_imm_set_conf(struct doca_rdma *rdma, doca_rdma_task_write_imm_completion_cb_t successful_task_completion_cb, doca_rdma_task_write_imm_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the write with immediate tasks configuration.
DOCA_EXPERIMENTAL void doca_rdma_task_atomic_cmp_swp_set_cmp_data(struct doca_rdma_task_atomic_cmp_swp *task, uint64_t cmp_data)
This method sets the compare data of an atomic compare and swap task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_write_imm_allocate_init(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, const struct doca_buf *src_buf, struct doca_buf *dst_buf, doca_be32_t immediate_data, union doca_data user_data, struct doca_rdma_task_write_imm **task)
This method allocates and initializes a write with immediate task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_destroy(struct doca_rdma *rdma)
Destroy a DOCA RDMA instance.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_connect_to_addr(struct doca_rdma *rdma, struct doca_rdma_addr *addr, union doca_data connection_user_data)
Connect to a remote doca_rdma peer listening for a connection. Can be called when the ctx is in DOCA_...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_bridge_established(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection)
Notify the server side of the successful established connection with client Can be called when the ct...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_transport_type_is_supported(const struct doca_devinfo *devinfo, enum doca_rdma_transport_type transport_type)
Check if DOCA RDMA supports given transport type for a specific device.
DOCA_EXPERIMENTAL const struct doca_sync_event_remote_net * doca_rdma_task_remote_net_sync_event_get_get_sync_event(const struct doca_rdma_task_remote_net_sync_event_get *task)
This method gets the remote net sync event of a remote_net_sync_event_get task.
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_remote_net_sync_event_notify_add_get_rdma_connection(const struct doca_rdma_task_remote_net_sync_event_notify_add *task)
This method gets the rdma connection of a remote_net_sync_event_notify_add task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_dpa_completion_attach(struct doca_rdma *rdma, struct doca_dpa_completion *dpa_comp)
Attach DOCA RDMA to DPA completion context.
DOCA_EXPERIMENTAL struct doca_sync_event_remote_net * doca_rdma_task_remote_net_sync_event_notify_add_get_sync_event(const struct doca_rdma_task_remote_net_sync_event_notify_add *task)
This method gets the remote sync event of a remote_net_sync_event_notify_add task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_addr_get_params(struct doca_rdma_addr *addr, enum doca_rdma_addr_type *addr_type, const char **address, uint16_t *port)
Get address object parameters from an address object.
DOCA_EXPERIMENTAL const struct doca_buf * doca_rdma_task_write_get_src_buf(const struct doca_rdma_task_write *task)
This method gets the source buffer of a write task.
DOCA_EXPERIMENTAL struct doca_buf * doca_rdma_task_remote_net_sync_event_notify_add_get_result_buf(const struct doca_rdma_task_remote_net_sync_event_notify_add *task)
This method gets the result buffer of a remote_net_sync_event_notify_add task.
DOCA_EXPERIMENTAL uint32_t doca_rdma_task_remote_net_sync_event_get_get_result_len(const struct doca_rdma_task_remote_net_sync_event_get *task)
This method gets the length of data read by the task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_connection_get_user_data(const struct doca_rdma_connection *rdma_connection, union doca_data *connection_user_data)
Get user data included in a connection.
void(* doca_rdma_connection_request_cb_t)(struct doca_rdma_connection *rdma_connection, union doca_data ctx_user_data)
Function to execute on connection request event.
Definition: doca_rdma.h:1201
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_remote_net_sync_event_notify_add_allocate_init(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, struct doca_sync_event_remote_net *event, struct doca_buf *result_buf, uint64_t add_data, union doca_data user_data, struct doca_rdma_task_remote_net_sync_event_notify_add **task)
This method allocates and initializes a remote_net_sync_event_notify_add task.
DOCA_EXPERIMENTAL void doca_rdma_task_remote_net_sync_event_notify_add_set_result_buf(struct doca_rdma_task_remote_net_sync_event_notify_add *task, struct doca_buf *result_buf)
This method sets the result buffer of a remote_net_sync_event_notify_add task.
DOCA_EXPERIMENTAL enum doca_rdma_opcode doca_rdma_task_receive_get_result_opcode(const struct doca_rdma_task_receive *task)
This method gets the opcode of the operation executed by the peer and received by the task.
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_send_imm_as_task(struct doca_rdma_task_send_imm *task)
This method converts a send with immediate task to a doca_task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_grh_enabled(struct doca_rdma *rdma, uint8_t grh_enabled)
Set whether to use GRH in connection. The value can be queried using doca_rdma_get_grh_enabled()....
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_read_get_rdma_connection(const struct doca_rdma_task_read *task)
This method gets the rdma connection of a read task.
DOCA_EXPERIMENTAL void doca_rdma_task_remote_net_sync_event_get_set_dst_buf(struct doca_rdma_task_remote_net_sync_event_get *task, struct doca_buf *dst_buf)
This method sets the destination buffer of a remote_net_sync_event_get task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_stop_listen_to_port(struct doca_rdma *rdma, uint16_t port)
End the listen process for a connection from remote doca_rdma peers. Can be called when the ctx is in...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_addr_destroy(struct doca_rdma_addr *addr)
Destroy connection address object for doca_rdma.
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_write_imm_as_task(struct doca_rdma_task_write_imm *task)
This method converts a write with immediate task to a doca_task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_connection_get_addr(const struct doca_rdma_connection *rdma_connection, struct doca_rdma_addr **addr)
Get connection address object from a doca_rdma_connection.
doca_rdma_opcode
Definition: doca_rdma.h:1318
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_remote_net_sync_event_notify_set_is_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_get_gid(const struct doca_devinfo *devinfo, uint32_t start_index, uint32_t num_entries, struct doca_rdma_gid *gid_array)
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_send_get_rdma_connection(const struct doca_rdma_task_send *task)
This method gets the rdma connection of a send task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_receive_get_max_dst_buf_list_len(const struct doca_devinfo *devinfo, enum doca_rdma_transport_type transport_type, uint32_t *max_buf_list_len)
DOCA_EXPERIMENTAL const struct doca_buf * doca_rdma_task_send_get_src_buf(const struct doca_rdma_task_send *task)
This method gets the source buffer of a send task.
DOCA_EXPERIMENTAL const struct doca_buf * doca_rdma_task_remote_net_sync_event_notify_set_get_src_buf(const struct doca_rdma_task_remote_net_sync_event_notify_set *task)
This method gets the source buffer of a remote_net_sync_event_notify_set task.
DOCA_EXPERIMENTAL void doca_rdma_task_write_set_dst_buf(struct doca_rdma_task_write *task, struct doca_buf *dst_buf)
This method sets the destination buffer of a write task.
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_atomic_cmp_swp_as_task(struct doca_rdma_task_atomic_cmp_swp *task)
This method converts an atomic compare and swap task to a doca_task.
DOCA_EXPERIMENTAL void doca_rdma_task_remote_net_sync_event_get_set_rdma_connection(struct doca_rdma_task_remote_net_sync_event_get *task, struct doca_rdma_connection *rdma_connection)
This method sets the rdma_connection of a remote_net_sync_event_get task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_connection_state_callbacks(struct doca_rdma *rdma, doca_rdma_connection_request_cb_t doca_rdma_connect_request_cb, doca_rdma_connection_established_cb_t doca_rdma_connect_established_cb, doca_rdma_connection_failure_cb_t doca_rdma_connect_failure_cb, doca_rdma_connection_disconnection_cb_t doca_rdma_disconnect_cb)
This method set the function executed on RDMA connection events.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_bridge_accept(struct doca_rdma *rdma, void *private_data, uint8_t private_data_len, struct doca_rdma_connection *rdma_connection)
Accept the connection from client side acting as a bridge. This method acts as a bridge to accept a c...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_atomic_fetch_add_set_conf(struct doca_rdma *rdma, doca_rdma_task_atomic_fetch_add_completion_cb_t successful_task_completion_cb, doca_rdma_task_atomic_fetch_add_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the atomic fetch and add tasks configuration.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_permissions(struct doca_rdma *rdma, uint32_t permissions)
Set rdma permissions for doca_rdma. The value can be queried using doca_rdma_get_permissions()....
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_read_allocate_init(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, const struct doca_buf *src_buf, struct doca_buf *dst_buf, union doca_data user_data, struct doca_rdma_task_read **task)
This method allocates and initializes a read task.
DOCA_EXPERIMENTAL void doca_rdma_task_send_set_src_buf(struct doca_rdma_task_send *task, const struct doca_buf *src_buf)
This method sets the source buffer of a send task.
DOCA_EXPERIMENTAL void doca_rdma_task_write_set_src_buf(struct doca_rdma_task_write *task, const struct doca_buf *src_buf)
This method sets the source buffer of a write task.
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_write_as_task(struct doca_rdma_task_write *task)
This method converts a write task to a doca_task.
DOCA_EXPERIMENTAL void doca_rdma_task_atomic_fetch_add_set_rdma_connection(struct doca_rdma_task_atomic_fetch_add *task, struct doca_rdma_connection *rdma_connection)
This method sets the rdma_connection of a atomic fetch and add task.
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_receive_as_task(struct doca_rdma_task_receive *task)
This method converts a receive task to a doca_task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_connection_request_timeout(struct doca_rdma *rdma, uint16_t timeout)
Set timeout property for doca_rdma. The value can be queried using doca_rdma_get_connection_request_t...
DOCA_EXPERIMENTAL void doca_rdma_task_atomic_fetch_add_set_add_data(struct doca_rdma_task_atomic_fetch_add *task, uint64_t add_data)
This method sets the add data of an atomic fetch and add task.
void(* doca_rdma_connection_disconnection_cb_t)(struct doca_rdma_connection *rdma_connection, union doca_data connection_user_data, union doca_data ctx_user_data)
Function to execute on connection disconnection event.
Definition: doca_rdma.h:1272
DOCA_EXPERIMENTAL void doca_rdma_task_atomic_fetch_add_set_result_buf(struct doca_rdma_task_atomic_fetch_add *task, struct doca_buf *result_buf)
This method sets the result buffer of an atomic fetch and add task.
DOCA_EXPERIMENTAL struct doca_buf * doca_rdma_task_write_imm_get_dst_buf(const struct doca_rdma_task_write_imm *task)
This method gets the destination buffer of a write with immediate task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_transport_type(const struct doca_rdma *rdma, enum doca_rdma_transport_type *transport_type)
Get transport_type property from doca_rdma. Returns the current transport_type set for the doca_rdma_...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_send_imm_set_conf(struct doca_rdma *rdma, doca_rdma_task_send_imm_completion_cb_t successful_task_completion_cb, doca_rdma_task_send_imm_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the send with immediate tasks configuration.
DOCA_EXPERIMENTAL void doca_rdma_task_atomic_fetch_add_set_dst_buf(struct doca_rdma_task_atomic_fetch_add *task, struct doca_buf *dst_buf)
This method sets the destination buffer of an atomic fetch and add task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_sl(const struct doca_rdma *rdma, uint32_t *sl)
Get SL (service level) from doca_rdma. Get the current SL set for doca_rdma.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_send_queue_size(struct doca_rdma *rdma, uint32_t send_queue_size)
Set send queue size property for doca_rdma. The value can be queried using doca_rdma_get_send_queue_s...
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_receive_get_result_rdma_connection(const struct doca_rdma_task_receive *task)
This method gets the rdma connection of a receive task.
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_remote_net_sync_event_get_as_task(struct doca_rdma_task_remote_net_sync_event_get *task)
This method converts a remote_net_sync_event_get task to a doca_task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_write_set_conf(struct doca_rdma *rdma, doca_rdma_task_write_completion_cb_t successful_task_completion_cb, doca_rdma_task_write_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the write tasks configuration.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_dpa_handle(struct doca_rdma *rdma, doca_dpa_dev_rdma_t *dpa_rdma)
Retrieve the handle in the dpa memory space of a doca_rdma.
DOCA_EXPERIMENTAL doca_be32_t doca_rdma_task_send_imm_get_immediate_data(const struct doca_rdma_task_send_imm *task)
This method gets the immediate data of a send with immediate task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_connection_get_id(const struct doca_rdma_connection *rdma_connection, uint32_t *connection_id)
Get connection ID from an rdma connection.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_max_num_connections(struct doca_rdma *rdma, uint16_t *max_num_connections)
Get maximum number of connections property for doca_rdma. Returns the current maximum number of conne...
DOCA_EXPERIMENTAL void doca_rdma_task_send_imm_set_rdma_connection(struct doca_rdma_task_send_imm *task, struct doca_rdma_connection *rdma_connection)
This method sets the rdma_connection of a send with immediate task.
void(* doca_rdma_connection_failure_cb_t)(struct doca_rdma_connection *rdma_connection, union doca_data connection_user_data, union doca_data ctx_user_data)
Function to execute on connection failure event.
Definition: doca_rdma.h:1248
DOCA_EXPERIMENTAL const struct doca_buf * doca_rdma_task_write_imm_get_src_buf(const struct doca_rdma_task_write_imm *task)
This method gets the source buffer of a write with immediate task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_receive_set_conf(struct doca_rdma *rdma, doca_rdma_task_receive_completion_cb_t successful_task_completion_cb, doca_rdma_task_receive_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the receive tasks configuration.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_recv_queue_size(struct doca_rdma *rdma, uint32_t recv_queue_size)
Set recv queue size property for doca_rdma. The value can be queried using doca_rdma_get_recv_queue_s...
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_atomic_cmp_swp_get_rdma_connection(const struct doca_rdma_task_atomic_cmp_swp *task)
This method gets the rdma connection of a atomic compare and swap task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_atomic_cmp_swp_allocate_init(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, struct doca_buf *dst_buf, struct doca_buf *result_buf, uint64_t cmp_data, uint64_t swap_data, union doca_data user_data, struct doca_rdma_task_atomic_cmp_swp **task)
This method allocates and initializes an atomic compare and swap task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_mtu(struct doca_rdma *rdma, enum doca_mtu_size mtu)
Set MTU for doca_rdma. The value can be queried using doca_rdma_get_mtu(). Can only be called before ...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_sl(struct doca_rdma *rdma, uint32_t sl)
Set SL (service level) for doca_rdma. The value can be queried using doca_rdma_get_sl()....
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_gid_index(const struct doca_rdma *rdma, uint32_t *gid_index)
Get GID index from doca_rdma. Get the current GID index set for doca_rdma.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_connection_request_timeout(const struct doca_rdma *rdma, uint16_t *timeout)
Get timeout property for doca_rdma. Returns the current timeout set for the connection resolve relate...
void(* doca_rdma_task_remote_net_sync_event_notify_set_completion_cb_t)(struct doca_rdma_task_remote_net_sync_event_notify_set *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of a remote_net_sync_event_notify_set task.
Definition: doca_rdma.h:3357
void(* doca_rdma_task_send_imm_completion_cb_t)(struct doca_rdma_task_send_imm *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of a send with immediate task.
Definition: doca_rdma.h:1787
DOCA_EXPERIMENTAL void doca_rdma_task_read_set_dst_buf(struct doca_rdma_task_read *task, struct doca_buf *dst_buf)
This method sets the destination buffer of a read task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_remote_net_sync_event_notify_add_set_conf(struct doca_rdma *rdma, doca_rdma_task_remote_net_sync_event_notify_add_completion_cb_t successful_task_completion_cb, doca_rdma_task_remote_net_sync_event_notify_add_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the remote_net_sync_event_notify_add tasks configuration.
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_send_as_task(struct doca_rdma_task_send *task)
This method converts a send task to a doca_task.
void(* doca_rdma_task_send_completion_cb_t)(struct doca_rdma_task_send *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of a send task.
Definition: doca_rdma.h:1614
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_send_imm_is_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_receive_allocate_init(struct doca_rdma *rdma, struct doca_buf *dst_buf, union doca_data user_data, struct doca_rdma_task_receive **task)
This method allocates and initializes a receive task.
DOCA_EXPERIMENTAL void doca_rdma_task_remote_net_sync_event_notify_set_set_sync_event(struct doca_rdma_task_remote_net_sync_event_notify_set *task, struct doca_sync_event_remote_net *event)
This method sets the remote net sync event of a remote_net_sync_event_notify_set task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_read_set_conf(struct doca_rdma *rdma, doca_rdma_task_read_completion_cb_t successful_task_completion_cb, doca_rdma_task_read_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the read tasks configuration.
DOCA_EXPERIMENTAL void doca_rdma_task_remote_net_sync_event_get_set_sync_event(struct doca_rdma_task_remote_net_sync_event_get *task, const struct doca_sync_event_remote_net *event)
This method sets the remote net sync event of a remote_net_sync_event_get task.
DOCA_EXPERIMENTAL void doca_rdma_task_write_set_rdma_connection(struct doca_rdma_task_write *task, struct doca_rdma_connection *rdma_connection)
This method sets the rdma_connection of a write task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_grh_enabled(const struct doca_rdma *rdma, uint8_t *grh_enabled)
Get GRH setting from doca_rdma. Get the current GRH setting for doca_rdma.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_remote_net_sync_event_notify_set_set_conf(struct doca_rdma *rdma, doca_rdma_task_remote_net_sync_event_notify_set_completion_cb_t successful_task_completion_cb, doca_rdma_task_remote_net_sync_event_notify_set_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the remote_net_sync_event_notify_set tasks configuration.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_rnr_retry_count(struct doca_rdma *rdma, uint8_t rnr_retry_count)
Set the rnr retry count property for a context. The value can be queried using doca_rdma_get_rnr_retr...
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_remote_net_sync_event_get_get_rdma_connection(const struct doca_rdma_task_remote_net_sync_event_get *task)
This method gets the rdma connection of a remote_net_sync_event_get task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_write_imm_is_supported(const struct doca_devinfo *devinfo)
doca_rdma_addr_type
Definition: doca_rdma.h:56
DOCA_EXPERIMENTAL void doca_rdma_task_send_set_rdma_connection(struct doca_rdma_task_send *task, struct doca_rdma_connection *rdma_connection)
This method sets the rdma_connection of a send task.
void(* doca_rdma_task_remote_net_sync_event_get_completion_cb_t)(struct doca_rdma_task_remote_net_sync_event_get *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of a remote_net_sync_event_get task.
Definition: doca_rdma.h:3138
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_remote_net_sync_event_notify_set_get_rdma_connection(const struct doca_rdma_task_remote_net_sync_event_notify_set *task)
This method gets the rdma connection of a remote_net_sync_event_notify_set task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_atomic_cmp_swp_set_conf(struct doca_rdma *rdma, doca_rdma_task_atomic_cmp_swp_completion_cb_t successful_task_completion_cb, doca_rdma_task_atomic_cmp_swp_completion_cb_t error_task_completion_cb, uint32_t num_tasks)
This method sets the atomic compare and swap tasks configuration.
DOCA_EXPERIMENTAL void doca_rdma_task_write_imm_set_rdma_connection(struct doca_rdma_task_write_imm *task, struct doca_rdma_connection *rdma_connection)
This method sets the rdma connection of a write with immediate task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_addr_create(enum doca_rdma_addr_type addr_type, const char *address, uint16_t port, struct doca_rdma_addr **addr)
Set connection address object for doca_rdma. The object can be queried using doca_rdma_connection_get...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_max_num_connections(struct doca_rdma *rdma, uint16_t max_num_connections)
Set the maximum number of connections property for a context. The value can be queried using doca_rdm...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_remote_net_sync_event_get_is_supported(const struct doca_devinfo *devinfo)
doca_rdma_transport_type
Definition: doca_rdma.h:45
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_rnr_retry_count(const struct doca_rdma *rdma, uint8_t *rnr_retry_count)
Get rnr retry count property for doca_rdma. Returns the current rnr retry count set for a context.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_receive_set_dst_buf_list_len(struct doca_rdma *rdma, uint32_t buf_list_len)
Set the maximal destination buffer list length property for receive tasks. After starting the DOCA RD...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_get_max_send_queue_size(const struct doca_devinfo *devinfo, uint32_t *max_send_queue_size)
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_get_max_recv_queue_size(const struct doca_devinfo *devinfo, uint32_t *max_recv_queue_size)
Get the maximal recv queue size for a specific device.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_export(struct doca_rdma *rdma, const void **local_rdma_conn_details, size_t *local_rdma_conn_details_size, struct doca_rdma_connection **rdma_connection)
Export doca_rdma connection details object The doca_rdma_conn_details are used in doca_rdma_connect()...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_send_queue_size(const struct doca_rdma *rdma, uint32_t *send_queue_size)
Get send queue size property from doca_rdma. Returns the current send_queue_size set for the doca_rdm...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_start_listen_to_port(struct doca_rdma *rdma, uint16_t port)
Start listening for a connection from a remote doca_rdma peer. Can be called when the ctx is in DOCA_...
DOCA_EXPERIMENTAL const struct doca_buf * doca_rdma_task_send_imm_get_src_buf(const struct doca_rdma_task_send_imm *task)
This method gets the source buffer of a send with immediate task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_get_max_send_buf_list_len(const struct doca_devinfo *devinfo, uint32_t *max_send_buf_list_len)
Get the maximal buffer list length property for buffers of tasks that are sent to the remote and in w...
DOCA_EXPERIMENTAL void doca_rdma_task_write_imm_set_src_buf(struct doca_rdma_task_write_imm *task, const struct doca_buf *src_buf)
This method sets the source buffer of a write with immediate task.
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_read_as_task(struct doca_rdma_task_read *task)
This method converts a read task to a doca_task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_connection_disconnect(struct doca_rdma_connection *rdma_connection)
Finalize a connection with a remote doca_rdma peer. Can be called when the ctx is in DOCA_CTX_STATE_R...
DOCA_EXPERIMENTAL const struct doca_buf * doca_rdma_task_read_get_src_buf(const struct doca_rdma_task_read *task)
This method gets the source buffer of a read task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_receive_is_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_receive_get_dst_buf_list_len(const struct doca_rdma *rdma, uint32_t *buf_list_len)
Get the maximal destination buffer list length property for receive tasks. The returned value is the ...
DOCA_EXPERIMENTAL void doca_rdma_task_atomic_cmp_swp_set_result_buf(struct doca_rdma_task_atomic_cmp_swp *task, struct doca_buf *result_buf)
This method sets the result buffer of an atomic compare and swap task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_remote_net_sync_event_notify_set_allocate_init(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, struct doca_sync_event_remote_net *event, const struct doca_buf *src_buf, union doca_data user_data, struct doca_rdma_task_remote_net_sync_event_notify_set **task)
This method allocates and initializes a remote_net_sync_event_notify_set task.
DOCA_EXPERIMENTAL doca_be32_t doca_rdma_task_write_imm_get_immediate_data(const struct doca_rdma_task_write_imm *task)
This method gets the immediate data of a write with immediate task.
DOCA_EXPERIMENTAL void doca_rdma_task_remote_net_sync_event_notify_set_set_src_buf(struct doca_rdma_task_remote_net_sync_event_notify_set *task, const struct doca_buf *src_buf)
This method sets the source buffer of a remote_net_sync_event_notify_set task.
DOCA_EXPERIMENTAL void doca_rdma_task_read_set_src_buf(struct doca_rdma_task_read *task, const struct doca_buf *src_buf)
This method sets the source buffer of a read task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_gid_index(struct doca_rdma *rdma, uint32_t gid_index)
Set GID index for doca_rdma. The value can be queried using doca_rdma_get_gid_index()....
DOCA_EXPERIMENTAL struct doca_task * doca_rdma_task_atomic_fetch_add_as_task(struct doca_rdma_task_atomic_fetch_add *task)
This method converts an atomic fetch and add task to a doca_task.
void(* doca_rdma_task_read_completion_cb_t)(struct doca_rdma_task_read *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of a read task.
Definition: doca_rdma.h:1987
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_recv_queue_size(const struct doca_rdma *rdma, uint32_t *recv_queue_size)
Get recv queue size property from doca_rdma. Returns the current recv_queue_size set for the doca_rdm...
DOCA_EXPERIMENTAL struct doca_buf * doca_rdma_task_atomic_cmp_swp_get_dst_buf(const struct doca_rdma_task_atomic_cmp_swp *task)
This method gets the destination buffer of an atomic compare and swap task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_connection_reject(struct doca_rdma_connection *rdma_connection)
Reject an incoming connection request from remote doca_rdma peer. Can be called when the ctx is in DO...
DOCA_EXPERIMENTAL uint64_t doca_rdma_task_remote_net_sync_event_notify_add_get_add_data(const struct doca_rdma_task_remote_net_sync_event_notify_add *task)
This method gets the add data of a remote_net_sync_event_notify_add task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_permissions(struct doca_rdma *rdma, uint32_t *permissions)
Get permissions property from doca_rdma. Returns the current permissions set for the doca_rdma_contex...
void(* doca_rdma_connection_established_cb_t)(struct doca_rdma_connection *rdma_connection, union doca_data connection_user_data, union doca_data ctx_user_data)
Function to execute on connection established event.
Definition: doca_rdma.h:1224
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_atomic_fetch_add_is_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL void doca_rdma_task_remote_net_sync_event_notify_add_set_rdma_connection(struct doca_rdma_task_remote_net_sync_event_notify_add *task, struct doca_rdma_connection *rdma_connection)
This method sets the rdma_connection of a remote_net_sync_event_notify_add task.
DOCA_EXPERIMENTAL void doca_rdma_task_send_imm_set_src_buf(struct doca_rdma_task_send_imm *task, const struct doca_buf *src_buf)
This method sets the source buffer of a send with immediate task.
DOCA_EXPERIMENTAL void doca_rdma_task_atomic_cmp_swp_set_dst_buf(struct doca_rdma_task_atomic_cmp_swp *task, struct doca_buf *dst_buf)
This method sets the destination buffer of an atomic compare and swap task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_send_allocate_init(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, const struct doca_buf *src_buf, union doca_data user_data, struct doca_rdma_task_send **task)
This method allocates and initializes a send task.
DOCA_EXPERIMENTAL void doca_rdma_task_remote_net_sync_event_notify_set_set_rdma_connection(struct doca_rdma_task_remote_net_sync_event_notify_set *task, struct doca_rdma_connection *rdma_connection)
This method sets the rdma_connection of a remote_net_sync_event_notify_set task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_connection_accept(struct doca_rdma_connection *rdma_connection, void *private_data, uint8_t private_data_len)
Accept an incoming connection request from remote doca_rdma peer. Can be called when the ctx is in DO...
DOCA_EXPERIMENTAL struct doca_buf * doca_rdma_task_atomic_fetch_add_get_dst_buf(const struct doca_rdma_task_atomic_fetch_add *task)
This method gets the destination buffer of an atomic fetch and add task.
DOCA_EXPERIMENTAL uint64_t doca_rdma_task_atomic_cmp_swp_get_cmp_data(const struct doca_rdma_task_atomic_cmp_swp *task)
This method gets the compare data of an atomic compare and swap task.
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_atomic_fetch_add_get_rdma_connection(const struct doca_rdma_task_atomic_fetch_add *task)
This method gets the rdma connection of a atomic fetch and add task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_max_send_buf_list_len(const struct doca_rdma *rdma, uint32_t *max_send_buf_list_len)
Get the maximum buffer list length property for local buffers of tasks that are sent to the remote an...
DOCA_EXPERIMENTAL struct doca_ctx * doca_rdma_as_ctx(struct doca_rdma *rdma)
Convert doca_rdma instance into a generalized context for use with doca core objects.
uint64_t doca_dpa_dev_rdma_t
Definition: doca_rdma.h:79
DOCA_EXPERIMENTAL void doca_rdma_task_remote_net_sync_event_notify_add_set_add_data(struct doca_rdma_task_remote_net_sync_event_notify_add *task, uint64_t add_data)
This method sets the add data of a remote_net_sync_event_notify_add task.
DOCA_EXPERIMENTAL void doca_rdma_task_receive_set_dst_buf(struct doca_rdma_task_receive *task, struct doca_buf *dst_buf)
This method sets the destination buffer of a receive task.
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_write_get_rdma_connection(const struct doca_rdma_task_write *task)
This method gets the rdma connection of a write task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_get_gid_table_size(const struct doca_devinfo *devinfo, uint32_t *gid_table_size)
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_write_is_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL uint32_t doca_rdma_task_receive_get_result_len(const struct doca_rdma_task_receive *task)
This method gets the length of data received by the task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_connect(struct doca_rdma *rdma, const void *remote_rdma_conn_details, size_t remote_rdma_conn_details_size, struct doca_rdma_connection *rdma_connection)
Connect to remote doca_rdma peer. Can only be called when the ctx is in DOCA_CTX_STATE_STARTING state...
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_read_is_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL struct doca_buf * doca_rdma_task_remote_net_sync_event_get_get_dst_buf(const struct doca_rdma_task_remote_net_sync_event_get *task)
This method gets the destination buffer of a remote_net_sync_event_get task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_create(struct doca_dev *dev, struct doca_rdma **rdma)
Create a DOCA RDMA instance.
DOCA_EXPERIMENTAL void doca_rdma_task_send_imm_set_immediate_data(struct doca_rdma_task_send_imm *task, doca_be32_t immediate_data)
This method sets the immediate data of a send with immediate task.
DOCA_EXPERIMENTAL struct doca_buf * doca_rdma_task_atomic_fetch_add_get_result_buf(const struct doca_rdma_task_atomic_fetch_add *task)
This method gets the result buffer of an atomic fetch and add task.
DOCA_EXPERIMENTAL uint64_t doca_rdma_task_atomic_cmp_swp_get_swap_data(const struct doca_rdma_task_atomic_cmp_swp *task)
This method gets the swap data of an atomic compare and swap task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_send_is_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL void doca_rdma_task_remote_net_sync_event_notify_add_set_sync_event(struct doca_rdma_task_remote_net_sync_event_notify_add *task, struct doca_sync_event_remote_net *event)
This method sets the remote sync event of a remote_net_sync_event_notify_add task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_write_allocate_init(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, const struct doca_buf *src_buf, struct doca_buf *dst_buf, union doca_data user_data, struct doca_rdma_task_write **task)
This method allocates and initializes a write task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_remote_net_sync_event_notify_add_is_supported(const struct doca_devinfo *devinfo)
void(* doca_rdma_task_write_imm_completion_cb_t)(struct doca_rdma_task_write_imm *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of a write with immediate task.
Definition: doca_rdma.h:2409
DOCA_EXPERIMENTAL doca_error_t doca_rdma_connection_set_user_data(struct doca_rdma_connection *rdma_connection, union doca_data connection_user_data)
Set user data to include in each connection.
void(* doca_rdma_task_write_completion_cb_t)(struct doca_rdma_task_write *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on completion of a write task.
Definition: doca_rdma.h:2203
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_get_max_message_size(const struct doca_devinfo *devinfo, uint32_t *max_message_size)
Get the maximal message size for a specific device.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_get_mtu(const struct doca_rdma *rdma, enum doca_mtu_size *mtu)
Get the MTU property from doca_rdma. Returns the current MTU set for the doca_rdma context.
DOCA_EXPERIMENTAL void doca_rdma_task_atomic_cmp_swp_set_rdma_connection(struct doca_rdma_task_atomic_cmp_swp *task, struct doca_rdma_connection *rdma_connection)
This method sets the rdma_connection of a atomic compare and swap task.
DOCA_EXPERIMENTAL uint32_t doca_rdma_task_read_get_result_len(const struct doca_rdma_task_read *task)
This method gets the length of data read by the task.
DOCA_EXPERIMENTAL struct doca_buf * doca_rdma_task_read_get_dst_buf(const struct doca_rdma_task_read *task)
This method gets the destination buffer of a read task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_task_remote_net_sync_event_get_allocate_init(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, const struct doca_sync_event_remote_net *event, struct doca_buf *dst_buf, union doca_data user_data, struct doca_rdma_task_remote_net_sync_event_get **task)
This method allocates and initializes a remote_net_sync_event_get task.
DOCA_EXPERIMENTAL doca_error_t doca_rdma_set_max_send_buf_list_len(struct doca_rdma *rdma, uint32_t max_send_buf_list_len)
Set the maximum buffer list length property for local buffers of tasks that are sent to the remote an...
DOCA_EXPERIMENTAL const struct doca_rdma_connection * doca_rdma_task_write_imm_get_rdma_connection(const struct doca_rdma_task_write_imm *task)
This method gets the rdma connection of a write with immediate task.
@ DOCA_RDMA_OPCODE_RECV_WRITE_WITH_IMM
Definition: doca_rdma.h:1321
@ DOCA_RDMA_OPCODE_RECV_SEND
Definition: doca_rdma.h:1319
@ DOCA_RDMA_OPCODE_RECV_SEND_WITH_IMM
Definition: doca_rdma.h:1320
@ DOCA_RDMA_ADDR_TYPE_IPv6
Definition: doca_rdma.h:58
@ DOCA_RDMA_ADDR_TYPE_IPv4
Definition: doca_rdma.h:57
@ DOCA_RDMA_ADDR_TYPE_GID
Definition: doca_rdma.h:59
@ DOCA_RDMA_TRANSPORT_TYPE_RC
Definition: doca_rdma.h:46
@ DOCA_RDMA_TRANSPORT_TYPE_DC
Definition: doca_rdma.h:47
uint32_t doca_be32_t
Definition: doca_types.h:121
doca_mtu_size
MTU size in bytes.
Definition: doca_types.h:154
#define DOCA_GID_BYTE_LENGTH
Specifies the length of a GID (Global ID) in bytes.
Definition: doca_types.h:49
uint8_t raw[DOCA_GID_BYTE_LENGTH]
Definition: doca_rdma.h:52
Convenience type for representing opaque data.
Definition: doca_types.h:56