26 #ifndef RDMA_COMMON_H_
27 #define RDMA_COMMON_H_
46 #define MEM_RANGE_LEN (4096)
47 #define INVENTORY_NUM_INITIAL_ELEMENTS (16)
48 #define MAX_USER_ARG_SIZE (256)
49 #define MAX_ARG_SIZE (MAX_USER_ARG_SIZE + 1)
50 #define DEFAULT_STRING "Hi DOCA RDMA!"
52 #define DEFAULT_LOCAL_CONNECTION_DESC_PATH "/tmp/local_connection_desc_path.txt"
54 #define DEFAULT_REMOTE_CONNECTION_DESC_PATH "/tmp/remote_connection_desc_path.txt"
56 #define DEFAULT_REMOTE_RESOURCE_CONNECTION_DESC_PATH "/tmp/remote_resource_desc_path.txt"
57 #define NUM_RDMA_TASKS (1)
58 #define SLEEP_IN_NANOS (10 * 1000)
59 #define MAX(a, b) (((a) > (b)) ? (a) : (b))
61 #define SERVER_ADDR_LEN (128)
62 #define SERVER_ADDR_TYPE_LEN (6)
63 #define NUM_NEGOTIATION_RDMA_TASKS (1)
64 #define SERVER_NAME "Server"
65 #define CLIENT_NAME "Client"
66 #define DEFAULT_RDMA_CM_PORT (13579)
67 #define MAX_NUM_CONNECTIONS (8)
120 struct doca_rdma *
rdma;
137 struct doca_rdma_addr *
cm_addr;
167 const uint32_t mmap_permissions,
168 const uint32_t rdma_permissions,
273 struct doca_rdma_connection *rdma_connection,
274 struct doca_mmap *
mmap,
275 struct doca_buf_inventory *buf_inv,
292 struct doca_mmap *
mmap,
293 struct doca_buf_inventory *buf_inv,
402 const uint32_t mmap_permissions,
404 size_t data_buffer_size,
405 struct doca_dev *dev);
417 bool need_recv_task);
doca_error_t destroy_rdma_resources(struct rdma_resources *resources)
doca_error_t(* prepare_and_submit_task_fn)(struct rdma_resources *)
#define MAX_NUM_CONNECTIONS
void wait_for_enter(void)
doca_error_t register_rdma_num_connections_param(void)
void rdma_cm_connect_established_cb(struct doca_rdma_connection *connection, union doca_data connection_user_data, union doca_data ctx_user_data)
void rdma_cm_disconnect_cb(struct doca_rdma_connection *connection, union doca_data connection_user_data, union doca_data ctx_user_data)
doca_error_t rdma_responder_send_data_to_rdma_requester(struct rdma_resources *resources)
doca_error_t delete_file(const char *file_path)
void receive_task_error_cb(struct doca_rdma_task_receive *task, union doca_data task_user_data, union doca_data ctx_user_data)
doca_error_t write_file(const char *file_path, const char *string, size_t string_len)
doca_error_t rdma_cm_connect(struct rdma_resources *resources)
doca_error_t allocate_rdma_resources(struct rdma_config *cfg, const uint32_t mmap_permissions, const uint32_t rdma_permissions, task_check func, struct rdma_resources *resources)
void receive_task_completion_cb(struct doca_rdma_task_receive *task, union doca_data task_user_data, union doca_data ctx_user_data)
doca_error_t send_msg(struct doca_rdma *rdma, struct doca_rdma_connection *rdma_connection, struct doca_mmap *mmap, struct doca_buf_inventory *buf_inv, void *msg, uint32_t msg_len, void *user_data)
doca_error_t(* task_check)(const struct doca_devinfo *)
doca_error_t config_rdma_cm_callback_and_negotiation_task(struct rdma_resources *resources, bool need_send_task, bool need_recv_task)
doca_error_t register_rdma_write_string_param(void)
doca_error_t recv_msg(struct doca_rdma *rdma, struct doca_mmap *mmap, struct doca_buf_inventory *buf_inv, void *msg, uint32_t msg_len, void *user_data)
void rdma_cm_connect_failure_cb(struct doca_rdma_connection *connection, union doca_data connection_user_data, union doca_data ctx_user_data)
doca_error_t register_rdma_read_string_param(void)
doca_error_t rdma_cm_disconnect(struct rdma_resources *resources)
doca_error_t rdma_requester_recv_data_from_rdma_responder(struct rdma_resources *resources)
void send_task_completion_cb(struct doca_rdma_task_send *task, union doca_data task_user_data, union doca_data ctx_user_data)
doca_error_t register_rdma_send_string_param(void)
void rdma_cm_connect_request_cb(struct doca_rdma_connection *connection, union doca_data ctx_user_data)
doca_error_t read_file(const char *file_path, char **string, size_t *string_len)
doca_error_t set_default_config_value(struct rdma_config *cfg)
doca_error_t create_local_mmap(struct doca_mmap **mmap, const uint32_t mmap_permissions, void *data_buffer, size_t data_buffer_size, struct doca_dev *dev)
void send_task_error_cb(struct doca_rdma_task_send *task, union doca_data task_user_data, union doca_data ctx_user_data)
doca_error_t register_rdma_common_params(void)
struct rdma_resources resources
#define DOCA_DEVINFO_IBDEV_NAME_SIZE
Buffer size to hold Infiniband/RoCE device name. Including a null terminator.
enum doca_error doca_error_t
DOCA API return codes.
const struct ip_frag_config * cfg
enum doca_rdma_addr_type cm_addr_type
enum doca_rdma_transport_type transport_type
char device_name[DOCA_DEVINFO_IBDEV_NAME_SIZE]
char send_string[MAX_ARG_SIZE]
char cm_addr[SERVER_ADDR_LEN+1]
char remote_resource_desc_path[MAX_ARG_SIZE]
char local_connection_desc_path[MAX_ARG_SIZE]
char read_string[MAX_ARG_SIZE]
char remote_connection_desc_path[MAX_ARG_SIZE]
char write_string[MAX_ARG_SIZE]
struct doca_sync_event * sync_event
size_t remote_rdma_conn_descriptor_size
doca_error_t first_encountered_error
struct doca_ctx * rdma_ctx
struct doca_mmap * remote_mmap
uint32_t num_connection_established
size_t sync_event_descriptor_size
const void * mmap_descriptor
size_t num_remaining_tasks
prepare_and_submit_task_fn task_fn
const void * rdma_conn_descriptor
bool recv_sync_event_desc
struct doca_mmap * mmap_descriptor_mmap
size_t remote_mmap_descriptor_size
void * remote_mmap_descriptor
struct doca_sync_event_remote_net * remote_se
void * remote_rdma_conn_descriptor
struct doca_rdma_connection * connections[MAX_NUM_CONNECTIONS]
struct doca_buf * dst_buf
struct doca_rdma_addr * cm_addr
size_t mmap_descriptor_size
struct doca_mmap * sync_event_descriptor_mmap
struct doca_mmap * remote_mmap_descriptor_mmap
struct doca_dev * doca_device
struct doca_buf * src_buf
struct doca_buf_inventory * buf_inventory
size_t rdma_conn_descriptor_size
void * sync_event_descriptor
bool connection_established
Convenience type for representing opaque data.