28 #ifndef DOCA_COMCH_CONSUMER_H_
29 #define DOCA_COMCH_CONSUMER_H_
46 struct doca_dpa_thread;
49 struct doca_comch_connection;
52 struct doca_comch_consumer;
55 struct doca_comch_consumer_completion;
91 struct doca_mmap *buf_mmap,
92 struct doca_comch_consumer **consumer);
189 uint32_t *max_buf_list_len);
222 uint32_t *max_imm_data_len);
304 struct doca_dpa_thread *dpa_thread);
379 struct doca_comch_consumer_completion *consumer_comp,
396 uint32_t max_num_consumers);
412 const struct doca_comch_consumer_completion *consumer_comp,
413 uint32_t *max_num_consumers);
429 uint32_t max_num_recv);
445 uint32_t *max_num_recv);
465 uint32_t imm_data_len);
482 uint32_t *imm_data_len);
517 struct doca_comch_consumer_completion *consumer_comp,
543 struct doca_comch_consumer_task_post_recv;
582 struct doca_comch_consumer *consumer,
585 uint32_t num_post_recv_tasks);
608 struct doca_buf *buf,
609 struct doca_comch_consumer_task_post_recv **task);
static void task_error_cb(struct doca_task *se_task, union doca_data task_user_data, union doca_data ctx_user_data)
static void task_completion_cb(struct doca_task *se_task, union doca_data task_user_data, union doca_data ctx_user_data)
DOCA_STABLE doca_error_t doca_comch_consumer_set_imm_data_len(struct doca_comch_consumer *consumer, uint32_t imm_data_len)
DOCA_STABLE struct doca_buf * doca_comch_consumer_task_post_recv_get_buf(const struct doca_comch_consumer_task_post_recv *task)
void(* doca_comch_consumer_task_post_recv_completion_cb_t)(struct doca_comch_consumer_task_post_recv *task, union doca_data task_user_data, union doca_data ctx_user_data)
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_create(struct doca_comch_consumer_completion **consumer_comp)
Allocate DOCA Comch consumer completion context on DPA.
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_set_completion(struct doca_comch_consumer *consumer, struct doca_comch_consumer_completion *consumer_comp, uint32_t user_data)
Associate consumer with DPA completion context.
uint64_t doca_dpa_dev_comch_consumer_completion_t
DPA handle for DPA consumer completion context.
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_get_max_num_consumers(const struct doca_comch_consumer_completion *consumer_comp, uint32_t *max_num_consumers)
Get the maximal number of consumers that can be associated with the completion context.
DOCA_STABLE void doca_comch_consumer_task_post_recv_set_buf(struct doca_comch_consumer_task_post_recv *task, struct doca_buf *buf)
DOCA_STABLE doca_error_t doca_comch_consumer_get_id(const struct doca_comch_consumer *consumer, uint32_t *id)
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_stop(struct doca_comch_consumer_completion *consumer_comp)
Stop DOCA Comch consumer completion context.
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_set_max_num_recv(struct doca_comch_consumer_completion *consumer_comp, uint32_t max_num_recv)
Set the maximal number of receive operations across all consumers associated with the completion cont...
DOCA_STABLE doca_error_t doca_comch_consumer_create(struct doca_comch_connection *comch_connection, struct doca_mmap *buf_mmap, struct doca_comch_consumer **consumer)
uint64_t doca_dpa_dev_comch_consumer_t
DPA handle for DPA consumer.
DOCA_STABLE doca_error_t doca_comch_consumer_destroy(struct doca_comch_consumer *consumer)
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_get_dpa_handle(struct doca_comch_consumer *consumer, doca_dpa_dev_comch_consumer_t *dpa_consumer)
Retrieve the handle in the dpa memory space of a doca_comch_consumer.
DOCA_STABLE uint32_t doca_comch_consumer_task_post_recv_get_producer_id(const struct doca_comch_consumer_task_post_recv *task)
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_get_max_num_recv(const struct doca_comch_consumer_completion *consumer_comp, uint32_t *max_num_recv)
Get the maximal number of receive operations across all consumers associated with the completion cont...
DOCA_STABLE doca_error_t doca_comch_consumer_cap_get_max_consumers(const struct doca_devinfo *devinfo, uint32_t *max_consumers)
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_get_dpa_handle(struct doca_comch_consumer_completion *consumer_comp, doca_dpa_dev_comch_consumer_completion_t *consumer_comp_handle)
Get the DPA handle for the DOCA Comch consumer completion context.
DOCA_STABLE doca_error_t doca_comch_consumer_task_post_recv_set_conf(struct doca_comch_consumer *consumer, doca_comch_consumer_task_post_recv_completion_cb_t task_completion_cb, doca_comch_consumer_task_post_recv_completion_cb_t task_error_cb, uint32_t num_post_recv_tasks)
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_destroy(struct doca_comch_consumer_completion *consumer_comp)
Destroy the DOCA Comch consumer completion context.
DOCA_STABLE doca_error_t doca_comch_consumer_cap_get_max_imm_data_len(const struct doca_devinfo *devinfo, uint32_t *max_imm_data_len)
DOCA_STABLE uint32_t doca_comch_consumer_task_post_recv_get_imm_data_len(const struct doca_comch_consumer_task_post_recv *task)
DOCA_STABLE const uint8_t * doca_comch_consumer_task_post_recv_get_imm_data(const struct doca_comch_consumer_task_post_recv *task)
DOCA_STABLE doca_error_t doca_comch_consumer_get_imm_data_len(const struct doca_comch_consumer *consumer, uint32_t *imm_data_len)
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_set_max_num_consumers(struct doca_comch_consumer_completion *consumer_comp, uint32_t max_num_consumers)
Set the maximal number of consumers that can be associated with the completion context.
DOCA_STABLE doca_error_t doca_comch_consumer_cap_get_max_buf_list_len(const struct doca_devinfo *devinfo, uint32_t *max_buf_list_len)
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_get_imm_data_len(const struct doca_comch_consumer_completion *consumer_comp, uint32_t *imm_data_len)
DOCA_STABLE doca_error_t doca_comch_consumer_cap_get_max_num_tasks(const struct doca_devinfo *devinfo, uint32_t *max_num_tasks)
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_set_dev_max_num_recv(struct doca_comch_consumer *consumer, uint32_t dev_num_recv)
Set the maximal number of receive operations for a DPA consumer.
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_set_imm_data_len(struct doca_comch_consumer_completion *consumer_comp, uint32_t imm_data_len)
DOCA_STABLE doca_error_t doca_comch_consumer_task_post_recv_alloc_init(struct doca_comch_consumer *consumer, struct doca_buf *buf, struct doca_comch_consumer_task_post_recv **task)
Allocate and initialize a doca_consumer post receive task.
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_set_dpa_thread(struct doca_comch_consumer_completion *consumer_comp, struct doca_dpa_thread *dpa_thread)
Set the DOCA DPA thread of the completion context.
DOCA_STABLE doca_error_t doca_comch_consumer_cap_is_supported(const struct doca_devinfo *devinfo)
DOCA_STABLE struct doca_ctx * doca_comch_consumer_as_ctx(struct doca_comch_consumer *consumer)
DOCA_STABLE struct doca_task * doca_comch_consumer_task_post_recv_as_task(struct doca_comch_consumer_task_post_recv *task)
DOCA_EXPERIMENTAL doca_error_t doca_comch_consumer_completion_start(struct doca_comch_consumer_completion *consumer_comp)
Start DOCA Comch consumer completion context.
DOCA_STABLE doca_error_t doca_comch_consumer_cap_get_max_buf_size(const struct doca_devinfo *devinfo, uint32_t *max_buf_size)
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
#define DOCA_STABLE
To set a Symbol (or specifically a function) as stable API, i.e. it won't be changed.
enum doca_error doca_error_t
DOCA API return codes.
Convenience type for representing opaque data.