NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
DOCA RDMA

Data Structures

struct  doca_rdma_gid
 

Typedefs

typedef uint64_t doca_dpa_dev_rdma_t
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef 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. More...
 

Enumerations

enum  doca_rdma_transport_type { DOCA_RDMA_TRANSPORT_TYPE_RC , DOCA_RDMA_TRANSPORT_TYPE_DC }
 
enum  doca_rdma_addr_type { DOCA_RDMA_ADDR_TYPE_IPv4 , DOCA_RDMA_ADDR_TYPE_IPv6 , DOCA_RDMA_ADDR_TYPE_GID }
 
enum  doca_rdma_opcode { DOCA_RDMA_OPCODE_RECV_SEND = 0 , DOCA_RDMA_OPCODE_RECV_SEND_WITH_IMM , DOCA_RDMA_OPCODE_RECV_WRITE_WITH_IMM }
 

Functions

DOCA_EXPERIMENTAL doca_error_t doca_rdma_create (struct doca_dev *dev, struct doca_rdma **rdma)
 Create a DOCA RDMA instance. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_destroy (struct doca_rdma *rdma)
 Destroy a DOCA RDMA instance. More...
 
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. More...
 
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(). Can only be called after calling doca_ctx_start(). More...
 
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 (after calling doca_ctx_start()). Once called, doca_pe_progress() should be called, in order to transition the ctx to DOCA_CTX_STATE_RUNNING state. Only after that can tasks be allocated and submitted. More...
 
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_addr(). More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_addr_destroy (struct doca_rdma_addr *addr)
 Destroy connection address object for doca_rdma. More...
 
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_CTX_STATE_RUNNING state. Once called, doca_pe_progress() should be called, in order to evaluate possible connections requests. Only after a connection is established can send tasks be allocated and submitted. More...
 
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_CTX_STATE_RUNNING state. Once called, Server just stop listening for incoming connection requests and do not disconnect any remote doca_rdma peer. More...
 
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 DOCA_CTX_STATE_RUNNING state. Only after a connection is established can send tasks be allocated and submitted. More...
 
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 DOCA_CTX_STATE_RUNNING state. More...
 
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_CTX_STATE_RUNNING state. Once called, doca_pe_progress() should be called, in order to evaluate connection response. Only after a connection is established can send tasks be allocated and submitted. More...
 
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_RUNNING state. More...
 
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. This method acts as a bridge to prepare and perform the doca connection to a connection request from an application that performs the listen process by itself. This function only prepare the DOCA connection, it is necessary to call doca_rdma_bridge_accept(), to continue the connection process. Can be called when the ctx is in DOCA_CTX_STATE_RUNNING state. More...
 
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 connection request from an application that performs the listen process by itself. Can be called when the ctx is in DOCA_CTX_STATE_RUNNING state. Only after a connection is established can send tasks be allocated and submitted. More...
 
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 ctx is in DOCA_CTX_STATE_RUNNING state. More...
 
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. More...
 
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_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 which linked list are supported (i.e. send, send_imm, read, write, write_imm). More...
 
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. More...
 
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_get_gid (const struct doca_devinfo *devinfo, uint32_t start_index, uint32_t num_entries, struct doca_rdma_gid *gid_array)
 
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. More...
 
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_size(). Queue size will be rounded to the next power of 2. can only be called before calling doca_ctx_start(). More...
 
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_size(). Queue size will be rounded to the next power of 2. More...
 
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 and in which linked list are supported (i.e. send, send_imm, read, write, write_imm). The value in use can be queried using doca_rdma_get_max_send_buf_list_len(). More...
 
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(). Can only be called before calling doca_ctx_start(). More...
 
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 calling doca_ctx_start(). More...
 
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(). Can only be called after calling doca_ctx_dev_add() and before calling doca_ctx_start(). The supported permissions are the RDMA access flags. More...
 
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(). Can only be called before calling doca_ctx_start(). More...
 
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(). Can only be called before calling doca_ctx_start(). More...
 
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(). Can only be called before calling doca_ctx_start(). More...
 
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_timeout(). More...
 
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. More...
 
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_rdma_get_max_num_connections(). More...
 
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_retry_count(). More...
 
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_rdma_context. The size returned is the actual size being used and might differ from the size set by the user, as the size may be increased. More...
 
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_rdma_context. The size returned is the actual size being used and might differ from the size set by the user, as the size may be increased. More...
 
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 and in which linked list are supported (i.e. send, send_imm, read, write, write_imm). More...
 
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_context. More...
 
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. More...
 
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_context. Can only be called after calling doca_ctx_dev_add(). More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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 related functions. The size returned is the actual size being used and might differ from the size set by the user, as the size may be increased. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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 connections set for a context. More...
 
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. More...
 
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. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_receive_is_supported (const struct doca_devinfo *devinfo)
 
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 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. More...
 
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 RDMA context the length may be increased and the value in use can be queried using doca_rdma_get_recv_buf_list_len(). More...
 
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 actual value being used and might differ from the size set by the user, as it may be increased. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_send_is_supported (const struct doca_devinfo *devinfo)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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_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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_read_is_supported (const struct doca_devinfo *devinfo)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_write_is_supported (const struct doca_devinfo *devinfo)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_write_imm_is_supported (const struct doca_devinfo *devinfo)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_atomic_cmp_swp_is_supported (const struct doca_devinfo *devinfo)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_atomic_fetch_add_is_supported (const struct doca_devinfo *devinfo)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_remote_net_sync_event_get_is_supported (const struct doca_devinfo *devinfo)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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_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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_remote_net_sync_event_notify_add_is_supported (const struct doca_devinfo *devinfo)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

Detailed Description

DOCA RDMA library. For more details please refer to the user guide on DOCA devzone.

Typedef Documentation

◆ doca_dpa_dev_rdma_t

typedef uint64_t doca_dpa_dev_rdma_t

Typedef representing a DOCA RDMA DPA handle instance.

Definition at line 84 of file doca_rdma.h.

◆ doca_rdma_connection_disconnection_cb_t

typedef 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.

This function is called by doca_pe_progress() when a connection is disconnected either by server or client. When this function is called the user (acting as a client) will receive notification of disconnection from an established connection. Inside this callback the user may decide to account for the issue to decide whether to re-try or re-evaluate. Inside this callback the user shouldn't call doca_pe_progress(). Please see doca_pe_progress() for details.

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
Note
The implementation can assume this value is not NULL.
Parameters
[in]connection_user_dataThe doca_data supplied to the connection by the application (during connection or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 1272 of file doca_rdma.h.

◆ doca_rdma_connection_established_cb_t

typedef 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.

This function is called by doca_pe_progress() when a connection successfully established with a server. When this function is called the user (acting as a client) will receive notification of a connection established. Inside this callback the user may decide to account for the established. Inside this callback the user shouldn't call doca_pe_progress(). Please see doca_pe_progress() for details.

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
Note
The implementation can assume this value is not NULL.
Parameters
[in]connection_user_dataThe doca_data supplied to the connection by the application (during connection or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 1224 of file doca_rdma.h.

◆ doca_rdma_connection_failure_cb_t

typedef 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.

This function is called by doca_pe_progress() when a connection fails to be established. When this function is called the user (acting as a client) will receive notification of a connection failure. Inside this callback the user may decide to account for the issue to decide whether to re-try or re-evaluate. Inside this callback the user shouldn't call doca_pe_progress(). Please see doca_pe_progress() for details.

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
Note
The implementation can assume this value is not NULL.
Parameters
[in]connection_user_dataThe doca_data supplied to the connection by the application (during connection or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 1248 of file doca_rdma.h.

◆ doca_rdma_connection_request_cb_t

typedef 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.

This function is called by doca_pe_progress() when a connection request is received by a server. When this function is called the user (acting as a server) will receive notification of a connection request. Inside this callback the user may decide whether to accept or reject this connection. Inside this callback the user shouldn't call doca_pe_progress(). Please see doca_pe_progress() for details.

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
Note
The implementation can assume this value is not NULL.
Parameters
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 1201 of file doca_rdma.h.

◆ doca_rdma_task_atomic_cmp_swp_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when an atomic compare and swap task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed atomic compare and swap task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 2647 of file doca_rdma.h.

◆ doca_rdma_task_atomic_fetch_add_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when an atomic fetch and add task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed atomic fetch and add task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 2908 of file doca_rdma.h.

◆ doca_rdma_task_read_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when a read task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed read task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 1987 of file doca_rdma.h.

◆ doca_rdma_task_receive_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when a receive task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed receive task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 1349 of file doca_rdma.h.

◆ doca_rdma_task_remote_net_sync_event_get_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when a remote_net_sync_event_get task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed remote_net_sync_event_get task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 3138 of file doca_rdma.h.

◆ doca_rdma_task_remote_net_sync_event_notify_add_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when a remote_net_sync_event_notify_add task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed remote_net_sync_event_notify_add task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 3564 of file doca_rdma.h.

◆ doca_rdma_task_remote_net_sync_event_notify_set_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when a remote_net_sync_event_notify_set task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed remote_net_sync_event_notify_set task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 3357 of file doca_rdma.h.

◆ doca_rdma_task_send_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when a send task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed send task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 1614 of file doca_rdma.h.

◆ doca_rdma_task_send_imm_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when a send with immediate task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed send with immediate task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 1787 of file doca_rdma.h.

◆ doca_rdma_task_write_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when a write task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed write task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 2203 of file doca_rdma.h.

◆ doca_rdma_task_write_imm_completion_cb_t

typedef 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.

This function is called by doca_pe_progress() when a write with immediate task is successfully identified as completed. When this function is called the ownership of the task object passes from DOCA back to user. Inside this callback the user may decide on the task object:

Any failure/error inside this function should be handled internally or deferred; Since this function is nested in the execution of doca_pe_progress(), this callback doesn't return an error.

Note
This callback type is utilized for both successful & failed task completions.
Parameters
[in]taskThe completed write with immediate task.
Note
The implementation can assume this value is not NULL.
Parameters
[in]task_user_dataThe doca_data supplied to the task by the application (during task allocation or by a setter).
[in]ctx_user_dataThe doca_data supplied to the doca_ctx by the application (using a setter).

Definition at line 2409 of file doca_rdma.h.

Enumeration Type Documentation

◆ doca_rdma_addr_type

DOCA RDMA addr type

Enumerator
DOCA_RDMA_ADDR_TYPE_IPv4 

IPv4 type

DOCA_RDMA_ADDR_TYPE_IPv6 

IPv6 type

DOCA_RDMA_ADDR_TYPE_GID 

GID type

Definition at line 56 of file doca_rdma.h.

◆ doca_rdma_opcode

Task receive result opcodes

Enumerator
DOCA_RDMA_OPCODE_RECV_SEND 
DOCA_RDMA_OPCODE_RECV_SEND_WITH_IMM 
DOCA_RDMA_OPCODE_RECV_WRITE_WITH_IMM 

Definition at line 1318 of file doca_rdma.h.

◆ doca_rdma_transport_type

Available transport types for RDMA

Enumerator
DOCA_RDMA_TRANSPORT_TYPE_RC 

RC transport type

DOCA_RDMA_TRANSPORT_TYPE_DC 

DC transport type, supported only in export/connect flow and CPU datapath

Definition at line 45 of file doca_rdma.h.

Function Documentation

◆ doca_rdma_addr_create()

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_addr().

Parameters
[in]addr_typeAccording to doca_rdma_addr_type enum.
[in]addressAddress to set the connection rdma_connection to.
[in]portPort to set the connection rdma_connection to.
[out]addrAddress object to use in context for connection.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NO_MEMORY - failed to allocate resources.

◆ doca_rdma_addr_destroy()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_addr_destroy ( struct doca_rdma_addr *  addr)

Destroy connection address object for doca_rdma.

Parameters
[in]addrAddress object to be destroyed use in context for connection.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if address is actively being used

◆ doca_rdma_addr_get_params()

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.

Parameters
[in]addrA pointer to the address object to retrieve the parameters from.
[out]addr_typeAddress type to retrieve from address object.
[out]addressAddress to retrieve from address object.
[out]portPort to retrieve from address object.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_as_ctx()

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.

Parameters
[in]rdmaRDMA instance. This must remain valid until after the context is no longer required.
Returns
Non NULL upon success, NULL otherwise.

◆ doca_rdma_bridge_accept()

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 connection request from an application that performs the listen process by itself. Can be called when the ctx is in DOCA_CTX_STATE_RUNNING state. Only after a connection is established can send tasks be allocated and submitted.

Parameters
[in]rdmaPointer to doca_rdma to connect.
[in]private_dataThe RDMA connection private data to be sent in RDMA CM ACCEPT.
Note
If private data is not needed then this argument should be NULL
Parameters
[in]private_data_lenThe RDMA connection size of the private data that is sent in RDMA CM ACCEPT.
Note
If private data is not needed then this argument should be 0
Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if context is in an invalid or error state.
  • DOCA_ERROR_NOT_SUPPORTED - if the current datapath is not supported.
  • DOCA_ERROR_CONNECTION_ABORTED - if connection failed.

◆ doca_rdma_bridge_established()

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 ctx is in DOCA_CTX_STATE_RUNNING state.

Parameters
[in]rdmaPointer to doca_rdma to connect.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - if the current datapath is not supported.

◆ doca_rdma_bridge_prepare_connection()

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. This method acts as a bridge to prepare and perform the doca connection to a connection request from an application that performs the listen process by itself. This function only prepare the DOCA connection, it is necessary to call doca_rdma_bridge_accept(), to continue the connection process. Can be called when the ctx is in DOCA_CTX_STATE_RUNNING state.

Parameters
[in]rdmaPointer to doca_rdma to connect.
[in]cm_idRDMA CM ID object that carries the connection details.
Note
DOCA RDMA assumes ownership over the cm_id.
Parameters
[out]rdma_connectionConnection related data required for doca_rdma to connect.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_FULL - if all connections are being used.
  • DOCA_ERROR_BAD_STATE - if context is in an invalid or error state.
  • DOCA_ERROR_NO_MEMORY - failed to allocate resources.
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - if the current datapath is not supported.
  • DOCA_ERROR_CONNECTION_ABORTED - if connection failed.

◆ doca_rdma_cap_get_gid()

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 
)

Get gids for a specific device by index and number of entries.

Parameters
[in]devinfoThe DOCA device information
[in]start_indexThe first gid index of interest
[in]num_entriesThe number of desired gid indices
[in,out]gid_arrayA 'struct doca_rdma_gid' array of size 'num_entries', that on success will hold the desired gids. Note that it is the user's responsibility to provide an array with enough entries to prevent data corruption
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_DRIVER - failed to query device capabilities.

◆ doca_rdma_cap_get_gid_table_size()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_get_gid_table_size ( const struct doca_devinfo *  devinfo,
uint32_t *  gid_table_size 
)

Get the gid table size for a specific device.

Parameters
[in]devinfoThe DOCA device information
[out]gid_table_sizeThe gid table size for the given devinfo.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_DRIVER - failed to query device capabilities.

◆ doca_rdma_cap_get_max_message_size()

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.

Parameters
[in]devinfoThe DOCA device information
[out]max_message_sizeThe maximal message size for the given devinfo.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_DRIVER - failed to query device capabilities.

◆ doca_rdma_cap_get_max_recv_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.

Note
This capability is not relevant when using RDMA SRQ.
Parameters
[in]devinfoThe DOCA device information
[out]max_recv_queue_sizeThe maximal recv queue size for the given devinfo.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_DRIVER - failed to query device capabilities.

◆ doca_rdma_cap_get_max_send_buf_list_len()

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 which linked list are supported (i.e. send, send_imm, read, write, write_imm).

Parameters
[in]devinfoThe DOCA device information
[out]max_send_buf_list_lenMaximal buffer list length to used for buffers that support linked list in relevant tasks, for the given devinfo.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_DRIVER - failed to query device capabilities.

◆ doca_rdma_cap_get_max_send_queue_size()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_get_max_send_queue_size ( const struct doca_devinfo *  devinfo,
uint32_t *  max_send_queue_size 
)

Get the maximal send queue size for a specific device.

Parameters
[in]devinfoThe DOCA device information
[out]max_send_queue_sizeThe of the maximal send queue size for the given devinfo.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_DRIVER - failed to query device capabilities.

◆ doca_rdma_cap_task_atomic_cmp_swp_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_atomic_cmp_swp_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing an atomic compare and swap task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_task_atomic_fetch_add_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_atomic_fetch_add_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing an atomic fetch and add task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_task_read_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_read_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing a read task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_task_receive_get_max_dst_buf_list_len()

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 
)

Get the maximal buffer list length for a destination buffer of a receive task, for the given devinfo and transport type.

Note
The actual limit depends on the property set for the task - either the default value or the value set using doca_rdma_task_receive_set_dst_buf_list_len() prior to doca_ctx_start().
Parameters
[in]devinfoThe DOCA device information.
[in]transport_typeThe relevant transport type.
[out]max_buf_list_lenThe maximal number of local buffers that can be chained with a destination buffer of a receive task, for the given devinfo and transport type.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_DRIVER - failed to query device capabilities.

◆ doca_rdma_cap_task_receive_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_receive_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing a receive task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_task_remote_net_sync_event_get_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_remote_net_sync_event_get_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing a remote_net_sync_event_get task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_task_remote_net_sync_event_notify_add_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_remote_net_sync_event_notify_add_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing a remote_net_sync_event_notify_add task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_task_remote_net_sync_event_notify_set_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_remote_net_sync_event_notify_set_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing a remote_net_sync_event_notify_set task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_task_send_imm_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_send_imm_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing a send with immediate task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_task_send_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_send_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing a send task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_task_write_imm_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_write_imm_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing a write with immediate task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_task_write_is_supported()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_cap_task_write_is_supported ( const struct doca_devinfo *  devinfo)

Check if a given device supports executing a write task.

Parameters
[in]devinfoThe DOCA device information that should be queried.
Returns
DOCA_SUCCESS - in case device supports the task. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the task.

◆ doca_rdma_cap_transport_type_is_supported()

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.

Parameters
[in]devinfoThe DOCA device information
[in]transport_typeTransport type to query support for.
Returns
DOCA_SUCCESS - in case the transport type is supported. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_DRIVER - failed to query device capabilities
  • DOCA_ERROR_NOT_SUPPORTED - provided devinfo does not support the given transport type.

◆ doca_rdma_connect()

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 (after calling doca_ctx_start()). Once called, doca_pe_progress() should be called, in order to transition the ctx to DOCA_CTX_STATE_RUNNING state. Only after that can tasks be allocated and submitted.

Parameters
[in]rdmaPointer to doca_rdma to connect.
[in]remote_rdma_conn_detailsExported doca_rdma_conn_details object from remote peer.
[in]remote_rdma_conn_details_sizeSize of remote doca_rdma_conn_details object.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if any of the parameters is NULL.
  • DOCA_ERROR_BAD_STATE - if context was not started or rdma instance is already connected.
  • DOCA_ERROR_CONNECTION_ABORTED - if connection failed or connection details object was corrupted.
Note
stopping and restarting an RDMA context require calling doca_rdma_export() & doca_rdma_connect() again.

◆ doca_rdma_connect_to_addr()

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_CTX_STATE_RUNNING state. Once called, doca_pe_progress() should be called, in order to evaluate connection response. Only after a connection is established can send tasks be allocated and submitted.

Parameters
[in]rdmaPointer to doca_rdma to connect.
[in]addrAddress to connect to listening for connection requests.
[in]connection_user_dataThe doca_data supplied to the connection by the application (during connection or by a setter).
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_BAD_STATE - if context is in an invalid or error state.
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - if the current datapath is not supported.
  • DOCA_ERROR_CONNECTION_ABORTED - if connection failed or connection details object was corrupted.

◆ doca_rdma_connection_accept()

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 DOCA_CTX_STATE_RUNNING state. Only after a connection is established can send tasks be allocated and submitted.

Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]private_dataThe RDMA connection private data to be sent in RDMA CM ACCEPT.
Note
If private data is not needed then this argument should be NULL
Parameters
[in]private_data_lenThe RDMA connection size of the private data that is sent in RDMA CM ACCEPT.
Note
If private data is not needed then this argument should be 0
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_CONNECTION_ABORTED - if connection failed or connection details object was corrupted.
  • DOCA_ERROR_NO_MEMORY - failed to allocate resources.

◆ doca_rdma_connection_disconnect()

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_RUNNING state.

Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_CONNECTION_ABORTED - if connection failed or connection details object was corrupted.

◆ doca_rdma_connection_get_addr()

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.

Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[out]addrA pointer to the address object used for this connection.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_connection_get_id()

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.

This method retrieves connection ID from an rdma connection object

Parameters
[in]rdma_connectionThe connection to get the property from.
[out]connection_idThe connection ID
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_connection_get_user_data()

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.

This method retrieves connection user data from a rdma connection (previously set using doca_rdma_connection_set_user_data).

Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[out]connection_user_dataConnection user data to get
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_connection_reject()

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 DOCA_CTX_STATE_RUNNING state.

Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_CONNECTION_ABORTED - if connection failed or connection details object was corrupted.

◆ doca_rdma_connection_set_user_data()

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.

This method sets a connection user data to a context. The connection user data will be returned as a parameter to connection state callbacks.

Parameters
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]connection_user_datadoca_data to attach to the connection.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_create()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_create ( struct doca_dev *  dev,
struct doca_rdma **  rdma 
)

Create a DOCA RDMA instance.

Parameters
[in]devThe device to attach to the RDMA instance.
[out]rdmaPointer to pointer to be set to point to the created doca_rdma instance.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - rdma argument is a NULL pointer.
  • DOCA_ERROR_NO_MEMORY - failed to allocate resources.
  • DOCA_ERROR_INITIALIZATION - failed to initialize rdma.

◆ doca_rdma_destroy()

DOCA_EXPERIMENTAL doca_error_t doca_rdma_destroy ( struct doca_rdma *  rdma)

Destroy a DOCA RDMA instance.

Parameters
[in]rdmaPointer to instance to be destroyed.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - rdma argument is a NULL pointer.
  • DOCA_ERROR_BAD_STATE - the associated ctx was not stopped before calling doca_rdma_destroy().

◆ doca_rdma_dpa_completion_attach()

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.

This function must be called before DOCA RDMA context is started

Note
This API is relevant only for contexts that are set on DPA datapath, using doca_ctx_set_datapath_on_dpa() before calling doca_ctx_start().
Parameters
[in]rdmadoca_rdma context
[in]dpa_compDPA completion context
Returns
DOCA_SUCCESS - in case of success doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_export()

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(). Can only be called after calling doca_ctx_start().

Note
The exported data contains sensitive information - please make sure to pass this data through a secure channel
Parameters
[in]rdmaPointer doca_rdma to export connection details for.
[out]local_rdma_conn_detailsExported doca_rdma_conn_details object.
[out]local_rdma_conn_details_sizeSize of exported doca_rdma_conn_details object.
[out]rdma_connectionConnection related data required for doca_rdma to connect.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if any of the parameters is NULL.
  • DOCA_ERROR_BAD_STATE - if called before calling ctx_start().
  • DOCA_ERROR_CONNECTION_ABORTED - if connection failed or connection details object was corrupted.
  • DOCA_ERROR_FULL - if all connections are being used.
Note
stopping and restarting an RDMA context require calling doca_rdma_export() & doca_rdma_connect() again.

◆ doca_rdma_get_connection_request_timeout()

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 related functions. The size returned is the actual size being used and might differ from the size set by the user, as the size may be increased.

Parameters
[in]rdmadoca_rdma context to set the property for.
[out]timeoutTimeout value (in milliseconds) to use in context for connection.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_get_dpa_handle()

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.

Parameters
[in]rdmadoca_rdma context to get the dpa handle from.
[out]dpa_rdmaA pointer to the handle in the dpa memory space.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if called before calling ctx_start(), or if not assigned to dpa datapath.

◆ doca_rdma_get_gid_index()

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.

Parameters
[in]rdmadoca_rdma context to get the property from.
[out]gid_indexGID index used in doca_rdma.
Returns
DOCA_SUCCESS - if property retrieved successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_get_gpu_handle()

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.

Parameters
[in]rdmadoca_rdma context to get the gpu handle from.
[out]gpu_rdmaA pointer to the handle in the gpu memory space.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if called before calling ctx_start(), or if not assigned to gpu datapath.

◆ doca_rdma_get_grh_enabled()

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.

Parameters
[in]rdmadoca_rdma context to get the property from.
[out]grh_enabled1 if GRH setting was used in doca_rdma, 0 otherwise.
Returns
DOCA_SUCCESS - if property retrieved successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_get_max_num_connections()

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 connections set for a context.

Parameters
[in]rdmadoca_rdma context to get the property from.
[out]max_num_connectionsThe maximum amount of connections allowed in this context.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_get_max_send_buf_list_len()

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 and in which linked list are supported (i.e. send, send_imm, read, write, write_imm).

Parameters
[in]rdmaThe RDMA instance to get the property from.
[out]max_send_buf_list_lenMaximum buffer list length to used for local buffer in relevant tasks.
Returns
DOCA_SUCCESS - if property retrieved successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_get_mtu()

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.

Note
If MTU wasn't set by the user explicitly (and a default value was used), it may changed upon connection.
Parameters
[in]rdmadoca_rdma context to get the property from.
[out]mtuMTU set in context.
Returns
DOCA_SUCCESS - if property retrieved successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_get_permissions()

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_context. Can only be called after calling doca_ctx_dev_add().

Parameters
[in]rdmadoca_rdma context to get the property from.
[out]permissionsBitwise combination of RDMA access flags set in context - see enum doca_access_flag
Returns
DOCA_SUCCESS - if property retrieved successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_get_recv_queue_size()

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_rdma_context. The size returned is the actual size being used and might differ from the size set by the user, as the size may be increased.

Note
This property affects only GPU data-path and DPA data-path when SRQ is used.
Parameters
[in]rdmadoca_rdma context to get the property from.
[out]recv_queue_sizeRecv queue size set in context.
Returns
DOCA_SUCCESS - if property retrieved successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - if the given RDMA was created with SRQ or on CPU data-path.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_get_rnr_retry_count()

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.

Parameters
[in]rdmadoca_rdma context to get the property from.
[out]rnr_retry_countrnr retry count used in doca_rdma.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_get_send_queue_size()

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_rdma_context. The size returned is the actual size being used and might differ from the size set by the user, as the size may be increased.

Parameters
[in]rdmadoca_rdma context to get the property from.
[out]send_queue_sizeSend queue size set in context.
Returns
DOCA_SUCCESS - if property retrieved successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_get_sl()

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.

Parameters
[in]rdmadoca_rdma context to get the property from.
[out]slSL used in doca_rdma.
Returns
DOCA_SUCCESS - if property retrieved successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_get_transport_type()

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_context.

Parameters
[in]rdmadoca_rdma context to get the property from.
[out]transport_typeTransport_type set in context.
Returns
DOCA_SUCCESS - if property retrieved successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.

◆ doca_rdma_set_connection_request_timeout()

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_timeout().

Parameters
[in]rdmadoca_rdma context to set the property for.
[in]timeoutThe timeout (in milliseconds) to be used for connection resolve related functions.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_set_connection_state_callbacks()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]doca_rdma_connect_request_cbA callback function for connection request event. This parameter can be NULL in case application is only a client
[in]doca_rdma_connect_established_cbA callback function for connection established event.
[in]doca_rdma_connect_failure_cbA callback function for connection failure event.
[in]doca_rdma_disconnect_cbA callback function for connection disconnection event.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.

◆ doca_rdma_set_gid_index()

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(). Can only be called before calling doca_ctx_start().

Parameters
[in]rdmadoca_rdma context to set the property for.
[in]gid_indexGID index to use in doca_rdma.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_set_grh_enabled()

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(). Can only be called before calling doca_ctx_start().

If using IB device: If GRH is disabled, the address will rely on LID only. If GRH is enabled, the other side must also use GRH.

If using ETH device, GRH must be enabled.

Parameters
[in]rdmadoca_rdma context to set the property for.
[in]grh_enabled1 if GRH is used in doca_rdma, 0 otherwise.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if context is already started.
  • DOCA_ERROR_NOT_SUPPORTED - if GRH setting is not supported for the device.

◆ doca_rdma_set_max_num_connections()

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_rdma_get_max_num_connections().

Parameters
[in]rdmadoca_rdma context to set the property for.
[in]max_num_connectionsThe maximum amount of connections allowed.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - provided max_num_connections is smaller than minimum value supported.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_set_max_send_buf_list_len()

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 and in which linked list are supported (i.e. send, send_imm, read, write, write_imm). The value in use can be queried using doca_rdma_get_max_send_buf_list_len().

Note
Can only be called before calling doca_ctx_start().
Parameters
[in]rdmaThe RDMA instance to set the property for.
[in]max_send_buf_list_lenMaximum buffer list length to use for local buffer in relevant tasks.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_set_mtu()

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 calling doca_ctx_start().

Parameters
[in]rdmadoca_rdma context to set the property for.
[in]mtuMTU to use in context.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - if the given MTU is not supported.
  • DOCA_ERROR_BAD_STATE - if context is already started.
  • DOCA_ERROR_UNEXPECTED - if an unexpected error has occurred.

◆ doca_rdma_set_permissions()

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(). Can only be called after calling doca_ctx_dev_add() and before calling doca_ctx_start(). The supported permissions are the RDMA access flags.

Parameters
[in]rdmadoca_rdma context to set the property for.
[in]permissionsBitwise combination of RDMA access flags - see enum doca_access_flag
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given or non-RDMA access flags were given.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_set_recv_queue_size()

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_size(). Queue size will be rounded to the next power of 2.

Note
Can only be called before calling doca_ctx_start().
This property affects only GPU data-path and DPA data-path when SRQ used.
Parameters
[in]rdmadoca_rdma context to set the property for.
[in]recv_queue_sizeRecv queue size to use in context.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - if the given size is not supported or the given RDMA was created with SRQ or on CPU data-path.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_set_rnr_retry_count()

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_retry_count().

Parameters
[in]rdmadoca_rdma context to set the property for.
[in]rnr_retry_countrnr retry count index to use in doca_rdma.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - provided max_num_connections is smaller than minimum value supported.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_set_send_queue_size()

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_size(). Queue size will be rounded to the next power of 2. can only be called before calling doca_ctx_start().

Parameters
[in]rdmadoca_rdma context to set the property for.
[in]send_queue_sizeSend queue size to use in context.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - if the given size is not supported.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_set_sl()

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(). Can only be called before calling doca_ctx_start().

Parameters
[in]rdmadoca_rdma context to set the property for.
[in]slSL to use in doca_rdma.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_set_transport_type()

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(). Can only be called before calling doca_ctx_start().

Parameters
[in]rdmadoca_rdma context to set the property for.
[in]transport_typeTransport type to use in context.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - if the given transport type is not supported.
  • DOCA_ERROR_BAD_STATE - if context is already started.

◆ doca_rdma_start_listen_to_port()

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_CTX_STATE_RUNNING state. Once called, doca_pe_progress() should be called, in order to evaluate possible connections requests. Only after a connection is established can send tasks be allocated and submitted.

Parameters
[in]rdmaPointer to doca_rdma to connect.
[in]portPort to listen to for connection requests.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if context is in an invalid or error state.
  • DOCA_ERROR_NOT_SUPPORTED - if the current datapath is not supported.
  • DOCA_ERROR_CONNECTION_ABORTED - if connection failed or connection details object was corrupted.

◆ doca_rdma_stop_listen_to_port()

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_CTX_STATE_RUNNING state. Once called, Server just stop listening for incoming connection requests and do not disconnect any remote doca_rdma peer.

Parameters
[in]rdmaPointer to doca_rdma to connect.
[in]portPort to stop listening to for connection requests.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_NOT_SUPPORTED - if the current datapath is not supported.
  • DOCA_ERROR_CONNECTION_ABORTED - if connection failed or connection details object was corrupted.

◆ doca_rdma_task_atomic_cmp_swp_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]dst_bufRemote destination buffer, on which the atomic 8-byte operation will be executed.
Note
buffer lists are not supported for dst_buf, only the first 8-bytes of data in the head buffer will be considered for this task.
Parameters
[in]result_bufLocal buffer, to which the original remote 8-byte value (before the swap, if occurred) will be written.
Note
buffer lists are not supported for result_buf, only the head will be considered for this task.
Parameters
[in]cmp_dataAn 8-byte value that will be compared to the remote 8-byte value.
[in]swap_dataAn 8-byte value that will be written to dst_buf, overwriting it's previous data, in case cmp_data is equal to the original remote 8-byte value.
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized an atomic compare and swap task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_atomic_cmp_swp_as_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.

Parameters
[in]taskThe task that should be converted.
Returns
The atomic compare and swap task converted to doca_task.

◆ doca_rdma_task_atomic_cmp_swp_get_cmp_data()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's cmp_data.

◆ doca_rdma_task_atomic_cmp_swp_get_dst_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's dst_buf.

◆ doca_rdma_task_atomic_cmp_swp_get_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.

◆ doca_rdma_task_atomic_cmp_swp_get_result_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's result_buf.

◆ doca_rdma_task_atomic_cmp_swp_get_swap_data()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's swap_data.

◆ doca_rdma_task_atomic_cmp_swp_set_cmp_data()

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.

Parameters
[in]taskThe task to set.
[in]cmp_dataAn 8-byte value that will be compared to the remote 8-byte value.

◆ doca_rdma_task_atomic_cmp_swp_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for atomic compare and swap tasks that were completed successfully.
[in]error_task_completion_cbA callback function for atomic compare and swap tasks that were completed with an error.
[in]num_tasksNumber of atomic compare and swap tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_atomic_cmp_swp_set_dst_buf()

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.

Parameters
[in]taskThe task to set.
[in]dst_bufRemote destination buffer, on which the atomic 8-byte operation will be executed.
Note
buffer lists are not supported for dst_buf, only the first 8-bytes of data in the head buffer will be considered for this task.

◆ doca_rdma_task_atomic_cmp_swp_set_rdma_connection()

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.

Parameters
[in]taskThe task to set.
[in]rdma_connectionRDMA Connection to use on this task

◆ doca_rdma_task_atomic_cmp_swp_set_result_buf()

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.

Parameters
[in]taskThe task to set.
[in]result_bufLocal buffer, to which the original remote 8-byte value (before the swap, if occurred) will be written.
Note
buffer lists are not supported for result_buf, only the head will be considered for this task.

◆ doca_rdma_task_atomic_cmp_swp_set_swap_data()

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.

Parameters
[in]taskThe task to set.
[in]swap_dataAn 8-byte value that will be written to dst_buf, overwriting it's previous data, in case cmp_data is equal to the original remote 8-byte value.

◆ doca_rdma_task_atomic_fetch_add_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]dst_bufRemote destination buffer, on which the atomic 8-byte operation will be executed.
Note
buffer lists are not supported for dst_buf, only the first 8-bytes of data in the head buffer will be considered for this task.
Parameters
[in]result_bufLocal buffer, to which the original remote 8-byte value (before the addition) will be written.
Note
buffer lists are not supported for result_buf, only the head will be considered for this task.
Parameters
[in]add_dataAn 8-byte value that will be added to the remote 8-byte value in dst_buf.
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized an atomic fetch and add task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_atomic_fetch_add_as_task()

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.

Parameters
[in]taskThe task that should be converted.
Returns
The atomic fetch and add task converted to doca_task.

◆ doca_rdma_task_atomic_fetch_add_get_add_data()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's add_data.

◆ doca_rdma_task_atomic_fetch_add_get_dst_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's dst_buf.

◆ doca_rdma_task_atomic_fetch_add_get_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.

◆ doca_rdma_task_atomic_fetch_add_get_result_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's result_buf.

◆ doca_rdma_task_atomic_fetch_add_set_add_data()

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.

Parameters
[in]taskThe task to set.
[in]add_dataAn 8-byte value that will be added to the remote 8-byte value in dst_buf.

◆ doca_rdma_task_atomic_fetch_add_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for atomic fetch and add tasks that were completed successfully.
[in]error_task_completion_cbA callback function for atomic fetch and add tasks that were completed with an error.
[in]num_tasksNumber of atomic fetch and add tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_atomic_fetch_add_set_dst_buf()

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.

Parameters
[in]taskThe task to set.
[in]dst_bufRemote destination buffer, on which the atomic 8-byte operation will be executed.
Note
buffer lists are not supported for dst_buf, only the first 8-bytes of data in the head buffer will be considered for this task.

◆ doca_rdma_task_atomic_fetch_add_set_rdma_connection()

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.

Parameters
[in]taskThe task to set.
[in]rdma_connectionRDMA Connection to use on this task

◆ doca_rdma_task_atomic_fetch_add_set_result_buf()

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.

Parameters
[in]taskThe task to set.
[in]result_bufLocal buffer, to which the original remote 8-byte value (before the addition) will be written.
Note
buffer lists are not supported for result_buf, only the head will be considered for this task.

◆ doca_rdma_task_read_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]src_bufRemote source buffer, holding the data that should be read. May be NULL when wishing to read no data.
Note
buffer lists are not supported for src_buf, only the head will be considered for this task.
Parameters
[in]dst_bufLocal destination buffer, to which the read data will be written. May be NULL when src_buf is NULL.
Note
dst_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.
Parameters
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized a read task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_read_as_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.

Parameters
[in]taskThe task that should be converted.
Returns
The read task converted to doca_task.

◆ doca_rdma_task_read_get_dst_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's dst_buf.

◆ doca_rdma_task_read_get_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.

◆ doca_rdma_task_read_get_result_len()

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.

Parameters
[in]taskThe task that should be queried.
Returns
Total length of read data in case of completion.
Note
Valid only on successful completion of the task. Otherwise, undefined behavior.

◆ doca_rdma_task_read_get_src_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's src_buf.

◆ doca_rdma_task_read_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for read tasks that were completed successfully.
[in]error_task_completion_cbA callback function for read tasks that were completed with an error.
[in]num_tasksNumber of read tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_read_set_dst_buf()

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.

Parameters
[in]taskThe task to set.
[in]dst_bufLocal destination buffer, to which the read data will be written. May be NULL when src_buf is NULL. If the destination buffer is not set by the user, it will have a default value - NULL.
Note
dst_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.

◆ doca_rdma_task_read_set_rdma_connection()

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.

Parameters
[in]taskThe task to set.
[in]rdma_connectionRDMA Connection to use on this task

◆ doca_rdma_task_read_set_src_buf()

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.

Parameters
[in]taskThe task to set.
[in]src_bufLocal source buffer, with the data to be sent. May be NULL when wishing to send an empty message (without data). If the source buffer is not set by the user, it will have a default value - NULL.
Note
buffer lists are not supported for src_buf, only the head will be considered for this task.

◆ doca_rdma_task_receive_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]dst_bufLocal destination buffer, for the received data. May be NULL when receiving an empty message (without data), with or without immediate.
Note
dst_buf may be linked to other buffers, with a limit according to doca_rdma_cap_task_receive_get_max_dst_buf_list_len().
Parameters
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized a receive task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_receive_as_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.

Parameters
[in]taskThe task that should be converted.
Returns
The receive task converted to doca_task.

◆ doca_rdma_task_receive_get_dst_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's dst_buf.

◆ doca_rdma_task_receive_get_dst_buf_list_len()

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 actual value being used and might differ from the size set by the user, as it may be increased.

Parameters
[in]rdmaThe RDMA instance to get the property from.
[out]buf_list_lenbuf_list_len used in doca_rdma.
Returns
DOCA_SUCCESS - if property retrieved successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if the given RDMA was created with SRQ.

◆ doca_rdma_task_receive_get_result_immediate_data()

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.

Parameters
[in]taskThe task that should be queried.
Returns
A 32-bit immediate data value, in Big-Endian, received OOB from the peer along with the message.
Note
Valid only on successful completion of the task and when the result opcode is DOCA_RDMA_OPCODE_RECV_SEND_WITH_IMM or DOCA_RDMA_OPCODE_RECV_WRITE_WITH_IMM (retrieved using doca_rdma_task_receive_get_result_opcode()). Otherwise, undefined behavior.

◆ doca_rdma_task_receive_get_result_len()

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.

Parameters
[in]taskThe task that should be queried.
Returns
Total length of received data in case of completion.
Note
Valid only on successful completion of the task. Otherwise, undefined behavior.

◆ doca_rdma_task_receive_get_result_opcode()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The operation executed by the peer and received.
Note
Valid only on after completion of the task. Otherwise, undefined behavior.

◆ doca_rdma_task_receive_get_result_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.
Note
Valid only in the doca_rdma_task_receive successful completion callback.

◆ doca_rdma_task_receive_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for receive tasks that were completed successfully.
[in]error_task_completion_cbA callback function for receive tasks that were completed with an error.
[in]num_tasksNumber of receive tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_receive_set_dst_buf()

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.

Parameters
[in]taskThe task to set.
[in]dst_bufLocal destination buffer, for the received data. May be NULL when receiving an empty message (without data), with or without immediate. If the destination buffer is not set by the user, it will have a default value - NULL.
Note
dst_buf may be linked to other buffers, with a limit according to doca_rdma_cap_task_receive_get_max_dst_buf_list_len().

◆ doca_rdma_task_receive_set_dst_buf_list_len()

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 RDMA context the length may be increased and the value in use can be queried using doca_rdma_get_recv_buf_list_len().

Note
Can only be called before calling doca_ctx_start().
Cannot exceed the value returned from doca_rdma_cap_task_receive_get_max_dst_buf_list_len().
Parameters
[in]rdmaThe RDMA instance to set the property for.
[in]buf_list_lenbuf_list_len to use in doca_rdma.
Returns
DOCA_SUCCESS - if property set successfully. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - if an invalid parameter was given.
  • DOCA_ERROR_BAD_STATE - if context is already started or if the given RDMA was created with SRQ.

◆ doca_rdma_task_remote_net_sync_event_get_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]eventRemote net sync event to read its value.
[in]dst_bufLocal destination buffer, to which the read data will be written.
Note
dst_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.
Parameters
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized a remote_net_sync_event_get task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_remote_net_sync_event_get_as_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.

Parameters
[in]taskThe task that should be converted.
Returns
The remote_net_sync_event_get task converted to doca_task.

◆ doca_rdma_task_remote_net_sync_event_get_get_dst_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's dst_buf.

◆ doca_rdma_task_remote_net_sync_event_get_get_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.

◆ doca_rdma_task_remote_net_sync_event_get_get_result_len()

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.

Parameters
[in]taskThe task that should be queried.
Returns
Total length of read data in case of completion.
Note
Valid only on successful completion of the task. Otherwise, undefined behavior.

◆ doca_rdma_task_remote_net_sync_event_get_get_sync_event()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's sync_event.

◆ doca_rdma_task_remote_net_sync_event_get_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for remote_net_sync_event_get tasks that were completed successfully.
[in]error_task_completion_cbA callback function for remote_net_sync_event_get tasks that were completed with an error.
[in]num_tasksNumber of remote_net_sync_event_get tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_remote_net_sync_event_get_set_dst_buf()

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.

Parameters
[in]taskThe task to set.
[in]dst_bufLocal destination buffer, to which the remote_net_sync_event_get data will be written.
Note
dst_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.

◆ doca_rdma_task_remote_net_sync_event_get_set_rdma_connection()

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.

Parameters
[in]taskThe task to set.
[in]rdma_connectionRDMA Connection to use on this task

◆ doca_rdma_task_remote_net_sync_event_get_set_sync_event()

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.

Parameters
[in]taskThe task to set.
[in]eventRemote net sync event to read its value.

◆ doca_rdma_task_remote_net_sync_event_notify_add_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]eventRemote sync event to atomically increment by a given value.
[in]result_bufLocal buffer, to which the original remote sync event value (before the addition) will be written.
Note
buffer lists are not supported for result_buf, only the head will be considered for this task.
Parameters
[in]add_dataAn 8-byte value that will be added to the remote sync event value.
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized a remote_net_sync_event_notify_add task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_remote_net_sync_event_notify_add_as_task()

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.

Parameters
[in]taskThe task that should be converted.
Returns
The remote_net_sync_event_notify_add task converted to doca_task.

◆ doca_rdma_task_remote_net_sync_event_notify_add_get_add_data()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's add_data.

◆ doca_rdma_task_remote_net_sync_event_notify_add_get_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.

◆ doca_rdma_task_remote_net_sync_event_notify_add_get_result_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's result_buf.

◆ doca_rdma_task_remote_net_sync_event_notify_add_get_sync_event()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's sync event.

◆ doca_rdma_task_remote_net_sync_event_notify_add_set_add_data()

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.

Parameters
[in]taskThe task to set.
[in]add_dataAn 8-byte value that will be atomically added to the remote sync event.

◆ doca_rdma_task_remote_net_sync_event_notify_add_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for remote_net_sync_event_notify_add tasks that were completed successfully.
[in]error_task_completion_cbA callback function for remote_net_sync_event_notify_add tasks that were completed with an error.
[in]num_tasksNumber of remote_net_sync_event_notify_add tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_remote_net_sync_event_notify_add_set_rdma_connection()

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.

Parameters
[in]taskThe task to set.
[in]rdma_connectionRDMA Connection to use on this task

◆ doca_rdma_task_remote_net_sync_event_notify_add_set_result_buf()

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.

Parameters
[in]taskThe task to set.
[in]result_bufLocal buffer, to which the original remote sync event value (before the addition) will be written.
Note
buffer lists are not supported for result_buf, only the head will be considered for this task.

◆ doca_rdma_task_remote_net_sync_event_notify_add_set_sync_event()

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.

Parameters
[in]taskThe task to set.
[in]eventThe remote sync event to increment atomically.

◆ doca_rdma_task_remote_net_sync_event_notify_set_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]eventThe remote sync event to set.
[in]src_bufLocal source buffer, holding the value to set the remote net sync event to.
Note
src_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.
Parameters
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized a remote_net_sync_event_notify_set task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_remote_net_sync_event_notify_set_as_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.

Parameters
[in]taskThe task that should be converted.
Returns
The remote_net_sync_event_notify_set task converted to doca_task.

◆ doca_rdma_task_remote_net_sync_event_notify_set_get_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.

◆ doca_rdma_task_remote_net_sync_event_notify_set_get_src_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's src_buf.

◆ doca_rdma_task_remote_net_sync_event_notify_set_get_sync_event()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's remote net sync event.

◆ doca_rdma_task_remote_net_sync_event_notify_set_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for remote_net_sync_event_notify_set tasks that were completed successfully.
[in]error_task_completion_cbA callback function for remote_net_sync_event_notify_set tasks that were completed with an error.
[in]num_tasksNumber of remote_net_sync_event_notify_set tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_remote_net_sync_event_notify_set_set_rdma_connection()

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.

Parameters
[in]taskThe task to set.
[in]rdma_connectionRDMA Connection to use on this task

◆ doca_rdma_task_remote_net_sync_event_notify_set_set_src_buf()

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.

Parameters
[in]taskThe task to set.
[in]src_bufLocal source buffer, holding the value to set the remote net sync event to.

◆ doca_rdma_task_remote_net_sync_event_notify_set_set_sync_event()

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.

Parameters
[in]taskThe task to set.
[in]eventThe remote net sync event to set.

◆ doca_rdma_task_send_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]src_bufLocal source buffer, with the data to be sent. May be NULL when wishing to send an empty message (without data).
Note
src_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.
Parameters
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized a send task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_send_as_task()

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.

Parameters
[in]taskThe task that should be converted.
Returns
The send task converted to doca_task.

◆ doca_rdma_task_send_get_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.

◆ doca_rdma_task_send_get_src_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's src_buf.

◆ doca_rdma_task_send_imm_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]src_bufLocal source buffer, with the data to be sent. May be NULL when wishing to send an empty message (without data).
Note
src_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.
Parameters
[in]immediate_dataA 32-bit value, in Big-Endian, to be sent OOB to the peer along with the message.
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized a send with immediate task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_send_imm_as_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.

Parameters
[in]taskThe task that should be converted.
Returns
The send with immediate task converted to doca_task.

◆ doca_rdma_task_send_imm_get_immediate_data()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's immediate_data.

◆ doca_rdma_task_send_imm_get_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.

◆ doca_rdma_task_send_imm_get_src_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's src_buf.

◆ doca_rdma_task_send_imm_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for send with immediate tasks that were completed successfully.
[in]error_task_completion_cbA callback function for send with immediate tasks that were completed with an error.
[in]num_tasksNumber of send with immediate tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_send_imm_set_immediate_data()

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.

Parameters
[in]taskThe task to set.
[in]immediate_dataA 32-bit value, in Big-Endian, to be sent OOB to the peer along with the message.

◆ doca_rdma_task_send_imm_set_rdma_connection()

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.

Parameters
[in]taskThe task to set.
[in]rdma_connectionRDMA Connection to use on this task

◆ doca_rdma_task_send_imm_set_src_buf()

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.

Parameters
[in]taskThe task to set.
[in]src_bufLocal source buffer, with the data to be sent. May be NULL when wishing to send an empty message (without data). If the source buffer is not set by the user, it will have a default value - NULL.
Note
src_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.

◆ doca_rdma_task_send_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for send tasks that were completed successfully.
[in]error_task_completion_cbA callback function for send tasks that were completed with an error.
[in]num_tasksNumber of send tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_send_set_rdma_connection()

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.

Parameters
[in]taskThe task to set.
[in]rdma_connectionRDMA Connection to use on this task

◆ doca_rdma_task_send_set_src_buf()

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.

Parameters
[in]taskThe task to set.
[in]src_bufLocal source buffer, with the data to be sent. May be NULL when wishing to send an empty message (without data). If the source buffer is not set by the user, it will have a default value - NULL.
Note
src_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.

◆ doca_rdma_task_write_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]src_bufLocal source buffer, holding the data that should be written to the remote memory. May be NULL when wishing to write no data.
Note
src_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.
Parameters
[in]dst_bufRemote destination buffer, to which the data will be written. May be NULL when src_buf is NULL.
Note
buffer lists are not supported for dst_buf, only the head will be considered for this task.
Parameters
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized a write task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_write_as_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.

Parameters
[in]taskThe task that should be converted.
Returns
The write task converted to doca_task.

◆ doca_rdma_task_write_get_dst_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's dst_buf.

◆ doca_rdma_task_write_get_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.

◆ doca_rdma_task_write_get_src_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's src_buf.

◆ doca_rdma_task_write_imm_allocate_init()

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.

Parameters
[in]rdmaThe RDMA instance to allocate the task for.
[in]rdma_connectionConnection related data required for doca_rdma to connect.
[in]src_bufLocal source buffer, holding the data that should be written to the remote memory. May be NULL when wishing to write no data.
Note
src_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.
Parameters
[in]dst_bufRemote destination buffer, to which the data will be written. May be NULL when src_buf is NULL.
Note
buffer lists are not supported for dst_buf, only the head will be considered for this task.
Parameters
[in]immediate_dataA 32-bit value, in Big-Endian, to be sent OOB to the peer along with the write data.
[in]user_datadoca_data to attach to the task.
[out]taskOn success, an allocated and initialized a write with immediate task.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_NO_MEMORY - no more tasks to allocate.

◆ doca_rdma_task_write_imm_as_task()

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.

Parameters
[in]taskThe task that should be converted.
Returns
The write with immediate task converted to doca_task.

◆ doca_rdma_task_write_imm_get_dst_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's dst_buf.

◆ doca_rdma_task_write_imm_get_immediate_data()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's immediate_data.

◆ doca_rdma_task_write_imm_get_rdma_connection()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's rdma connection.

◆ doca_rdma_task_write_imm_get_src_buf()

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.

Parameters
[in]taskThe task that should be queried.
Returns
The task's src_buf.

◆ doca_rdma_task_write_imm_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for write with immediate tasks that were completed successfully.
[in]error_task_completion_cbA callback function for write with immediate tasks that were completed with an error.
[in]num_tasksNumber of write with immediate tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_write_imm_set_dst_buf()

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.

Parameters
[in]taskThe task to set.
[in]dst_bufRemote destination buffer, to which the data will be written. May be NULL when src_buf is NULL. If the destination buffer is not set by the user, it will have a default value - NULL.
Note
buffer lists are not supported for dst_buf, only the head will be considered for this task.

◆ doca_rdma_task_write_imm_set_immediate_data()

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.

Parameters
[in]taskThe task to set.
[in]immediate_dataA 32-bit value, in Big-Endian, to be sent OOB to the peer along with the write data.

◆ doca_rdma_task_write_imm_set_rdma_connection()

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.

Parameters
[in]taskThe task to set.
[in]rdma_connectionRDMA Connection to use on this task

◆ doca_rdma_task_write_imm_set_src_buf()

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.

Parameters
[in]taskThe task to set.
[in]src_bufLocal source buffer, holding the data that should be written to the remote memory. May be NULL when wishing to write no data. If the source buffer is not set by the user, it will have a default value - NULL.
Note
src_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.

◆ doca_rdma_task_write_set_conf()

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.

Parameters
[in]rdmaThe RDMA instance to config.
[in]successful_task_completion_cbA callback function for write tasks that were completed successfully.
[in]error_task_completion_cbA callback function for write tasks that were completed with an error.
[in]num_tasksNumber of write tasks.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - received invalid input.
  • DOCA_ERROR_BAD_STATE - the RDMA instance is not idle.

◆ doca_rdma_task_write_set_dst_buf()

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.

Parameters
[in]taskThe task to set.
[in]dst_bufRemote destination buffer, to which the data will be written. May be NULL when src_buf is NULL. If the destination buffer is not set by the user, it will have a default value - NULL.
Note
buffer lists are not supported for dst_buf, only the head will be considered for this task.

◆ doca_rdma_task_write_set_rdma_connection()

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.

Parameters
[in]taskThe task to set.
[in]rdma_connectionRDMA Connection to use on this task

◆ doca_rdma_task_write_set_src_buf()

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.

Parameters
[in]taskThe task to set.
[in]src_bufLocal source buffer, holding the data that should be written to the remote memory. May be NULL when wishing to write no data. If the source buffer is not set by the user, it will have a default value - NULL.
Note
src_buf may be linked to other buffers, with a limit according to the max_send_buf_list_len property that can be set or queried using doca_rdma_set_max_send_buf_list_len() \ doca_rdma_get_max_send_buf_list_len() respectfully.