23 #ifndef DOCA_ETH_TXQ_CPU_DATA_PATH_H_
24 #define DOCA_ETH_TXQ_CPU_DATA_PATH_H_
40 struct doca_task_batch;
50 struct doca_eth_txq_task_send;
51 struct doca_eth_txq_task_lso_send;
134 struct doca_buf **pkt_array,
168 struct doca_buf **pkt_payload_array,
196 uint32_t task_send_num);
222 uint32_t task_lso_send_num);
249 uint16_t num_task_batches,
277 struct doca_eth_txq *eth_txq,
279 uint16_t num_task_batches,
392 struct doca_buf *pkt,
394 struct doca_eth_txq_task_send **task_send);
423 struct doca_buf *pkt_payload,
426 struct doca_eth_txq_task_lso_send **task_lso_send);
459 struct doca_buf ***pkt_array,
461 struct doca_task_batch **task_batch);
496 struct doca_buf ***pkt_payload_array,
499 struct doca_task_batch **task_batch);
526 struct doca_buf *pkt_payload);
577 struct doca_buf **pkt_payload);
616 uint32_t **metadata_array);
636 uint32_t **metadata_array);
657 uint32_t **metadata_array);
678 uint32_t **metadata_array);
712 uint16_t **mss_array);
759 uint16_t **ol_flags_array);
780 uint16_t **ol_flags_array);
824 #define doca_eth_txq_task_batch_metadata_array_get_metadata(metadata_array, metadata_num, packet_index, metadata_index) \
825 metadata_array[packet_index * metadata_num + metadata_index]
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)
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
enum doca_error doca_error_t
DOCA API return codes.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_send_get_metadata_array(struct doca_eth_txq_task_send *task_send, uint32_t **metadata_array)
This method gets a pointer to internal metadata array from send task. This pointer can be used to rea...
DOCA_EXPERIMENTAL struct doca_task * doca_eth_txq_task_lso_send_as_doca_task(struct doca_eth_txq_task_lso_send *task_lso_send)
This method converts a doca_eth_txq_task_lso_send task to doca_task.
void(* doca_eth_txq_task_send_completion_cb_t)(struct doca_eth_txq_task_send *task_send, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on task completion.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_lso_send_get_metadata_array(struct doca_eth_txq_task_lso_send *task_lso_send, uint32_t **metadata_array)
This method gets a pointer to internal metadata array from LSO send task. This pointer can be used to...
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_lso_send_allocate_init(struct doca_eth_txq *eth_txq, struct doca_buf *pkt_payload, struct doca_gather_list *headers, union doca_data user_data, struct doca_eth_txq_task_lso_send **task_lso_send)
This method allocates and initializes a doca_eth_txq_task_lso_send task.
DOCA_EXPERIMENTAL struct doca_task * doca_eth_txq_task_send_as_doca_task(struct doca_eth_txq_task_send *task_send)
This method converts a doca_eth_txq_task_send task to doca_task.
DOCA_EXPERIMENTAL void doca_eth_txq_task_lso_send_set_ol_flags(struct doca_eth_txq_task_lso_send *task_lso_send, uint16_t ol_flags)
This method sets overrides the default ol_flags value set by the enabled offloads of the context.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_send_get_ol_flags_array(struct doca_task_batch *task_batch_send, uint16_t **ol_flags_array)
This method gets a pointer to internal ol_flags array from send task batch. This pointer can be used ...
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_send_num_expand(struct doca_eth_txq *eth_txq, uint32_t task_send_num)
This method expands the number of doca_eth_txq_task_send tasks.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_send_allocate_init(struct doca_eth_txq *eth_txq, struct doca_buf *pkt, union doca_data user_data, struct doca_eth_txq_task_send **task_send)
This method allocates and initializes a doca_eth_txq_task_send task.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_lso_send_get_ol_flags_array(struct doca_task_batch *task_batch_lso_send, uint16_t **ol_flags_array)
This method gets a pointer to internal ol_flags array from LSO send task batch. This pointer can be u...
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_lso_send_allocate(struct doca_eth_txq *eth_txq, uint16_t tasks_num, union doca_data task_batch_user_data, struct doca_buf ***pkt_payload_array, struct doca_gather_list ***headers_array, union doca_data **task_user_data_array, struct doca_task_batch **task_batch)
This method allocates a doca_taskbtach of doca_eth_txq_task_lso_send tasks.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_lso_send_set_conf(struct doca_eth_txq *eth_txq, enum doca_task_batch_max_tasks_number max_tasks_number, uint16_t num_task_batches, doca_eth_txq_task_batch_lso_send_completion_cb_t success_completion_cb, doca_eth_txq_task_batch_lso_send_completion_cb_t error_completion_cb)
This method sets the task_batch of LSO send tasks configuration.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_lso_send_get_mss_array(struct doca_task_batch *task_batch_lso_send, uint16_t **mss_array)
This method gets a pointer to internal MSS array from LSO send task batch. This pointer can be used t...
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_send_get_pkt(const struct doca_eth_txq_task_send *task_send, struct doca_buf **pkt)
This method gets packet buffer from doca_eth_txq_task_send task.
DOCA_EXPERIMENTAL void doca_eth_txq_task_lso_send_set_pkt_payload(struct doca_eth_txq_task_lso_send *task_lso_send, struct doca_buf *pkt_payload)
This method sets packet payload buffer to doca_eth_txq_task_lso_send task.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_send_set_conf(struct doca_eth_txq *eth_txq, enum doca_task_batch_max_tasks_number max_tasks_number, uint16_t num_task_batches, doca_eth_txq_task_batch_send_completion_cb_t success_completion_cb, doca_eth_txq_task_batch_send_completion_cb_t error_completion_cb)
This method sets the task_batch of send tasks configuration.
DOCA_EXPERIMENTAL void doca_eth_txq_task_send_set_pkt(struct doca_eth_txq_task_send *task_send, struct doca_buf *pkt)
This method sets packet buffer to doca_eth_txq_task_send task.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_lso_send_get_pkt_payload(const struct doca_eth_txq_task_lso_send *task_lso_send, struct doca_buf **pkt_payload)
This method gets payload buffer from doca_eth_txq_task_lso_send task.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_lso_send_num_expand(struct doca_eth_txq *eth_txq, uint32_t task_lso_send_num)
This method expands the number of doca_eth_txq_task_lso_send tasks.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_lso_send_get_headers(const struct doca_eth_txq_task_lso_send *task_lso_send, struct doca_gather_list **headers)
This method gets headers from doca_eth_txq_task_lso_send task.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_lso_send_set_conf(struct doca_eth_txq *eth_txq, doca_eth_txq_task_lso_send_completion_cb_t task_completion_cb, doca_eth_txq_task_lso_send_completion_cb_t task_error_cb, uint32_t task_lso_send_num)
This method sets the doca_eth_txq_task_lso_send tasks configuration.
DOCA_EXPERIMENTAL void doca_eth_txq_task_lso_send_set_mss(struct doca_eth_txq_task_lso_send *task_lso_send, uint16_t mss)
This method sets overrides the default MSS value set by "doca_eth_txq_set_mss()" to a specific LSO se...
void(* doca_eth_txq_task_batch_lso_send_completion_cb_t)(struct doca_task_batch *task_batch, uint16_t tasks_num, union doca_data ctx_user_data, union doca_data task_batch_user_data, union doca_data *task_user_data_array, struct doca_buf **pkt_payload_array, struct doca_gather_list **headers_array, doca_error_t *status_array)
Function to execute on task_batch completion.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_send_set_conf(struct doca_eth_txq *eth_txq, doca_eth_txq_task_send_completion_cb_t task_completion_cb, doca_eth_txq_task_send_completion_cb_t task_error_cb, uint32_t task_send_num)
This method sets the doca_eth_txq_task_send tasks configuration.
DOCA_EXPERIMENTAL void doca_eth_txq_task_lso_send_set_headers(struct doca_eth_txq_task_lso_send *task_lso_send, struct doca_gather_list *headers)
This method sets headers to doca_eth_txq_task_lso_send task.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_send_allocate(struct doca_eth_txq *eth_txq, uint16_t tasks_num, union doca_data task_batch_user_data, struct doca_buf ***pkt_array, union doca_data **task_user_data_array, struct doca_task_batch **task_batch)
This method allocates a doca_taskbtach of doca_eth_txq_task_send tasks.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_send_get_metadata_array(struct doca_task_batch *task_batch_send, uint32_t **metadata_array)
This method gets a pointer to internal metadata array from send task batch. This pointer can be used ...
void(* doca_eth_txq_task_lso_send_completion_cb_t)(struct doca_eth_txq_task_lso_send *task_lso_send, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on task completion.
void(* doca_eth_txq_task_batch_send_completion_cb_t)(struct doca_task_batch *task_batch, uint16_t tasks_num, union doca_data ctx_user_data, union doca_data task_batch_user_data, union doca_data *task_user_data_array, struct doca_buf **pkt_array, doca_error_t *status_array)
Function to execute on task_batch completion.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_lso_send_get_metadata_array(struct doca_task_batch *task_batch_lso_send, uint32_t **metadata_array)
This method gets a pointer to internal metadata array from LSO send task batch. This pointer can be u...
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_lso_send_num_expand(struct doca_eth_txq *eth_txq, uint16_t task_batches_num)
This method expands the number of doca_eth_txq_task_batch_lso_send tasks.
DOCA_EXPERIMENTAL void doca_eth_txq_task_send_set_ol_flags(struct doca_eth_txq_task_send *task_send, uint16_t ol_flags)
This method sets overrides the default ol_flags value set by the enabled offloads of the context.
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_task_batch_send_num_expand(struct doca_eth_txq *eth_txq, uint16_t task_batches_num)
This method expands the number of doca_eth_txq_task_batch_send tasks.
@ DOCA_ETH_TXQ_OL_FLAGS_L4_CSUM
@ DOCA_ETH_TXQ_OL_FLAGS_L3_CSUM
doca_task_batch_max_tasks_number
Struct to represent a gather list.
Convenience type for representing opaque data.