NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_eth_rxq_cpu_data_path.h File Reference
#include <doca_compat.h>
#include <doca_error.h>
#include <doca_pe.h>
#include <doca_types.h>
Include dependency graph for doca_eth_rxq_cpu_data_path.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define doca_eth_rxq_event_batch_managed_recv_metadata_array_get_metadata(metadata_array, metadata_num, packet_index, metadata_index)    metadata_array[packet_index * metadata_num + metadata_index]
 This MACRO is used to get a specific metadata of a specific packet from metadata_array from managed receive event batch. More...
 

Typedefs

typedef void(* doca_eth_rxq_task_recv_completion_cb_t) (struct doca_eth_rxq_task_recv *task_recv, union doca_data task_user_data, union doca_data ctx_user_data)
 Function to execute on task completion. More...
 
typedef void(* doca_eth_rxq_event_managed_recv_handler_cb_t) (struct doca_eth_rxq_event_managed_recv *event_managed_recv, struct doca_buf *pkt, union doca_data event_user_data)
 Function to be executed on managed receive event occurrence. More...
 
typedef void(* doca_eth_rxq_event_batch_managed_recv_handler_cb_t) (struct doca_eth_rxq_event_batch_managed_recv *event_batch_managed_recv, uint16_t events_number, union doca_data event_batch_user_data, doca_error_t status, struct doca_buf **pkt_array)
 Function to be executed on managed receive event batch occurrence. More...
 

Functions

DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_task_recv_set_conf (struct doca_eth_rxq *eth_rxq, doca_eth_rxq_task_recv_completion_cb_t task_completion_cb, doca_eth_rxq_task_recv_completion_cb_t task_error_cb, uint32_t task_recv_num)
 This method sets the doca_eth_rxq_task_recv tasks configuration. can only be called before calling doca_ctx_start(). More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_managed_recv_register (struct doca_eth_rxq *eth_rxq, union doca_data user_data, doca_eth_rxq_event_managed_recv_handler_cb_t success_event_handler, doca_eth_rxq_event_managed_recv_handler_cb_t error_event_handler)
 This method registers a doca_eth_rxq_event_managed_recv event. can only be called before calling doca_ctx_start(). More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_batch_managed_recv_register (struct doca_eth_rxq *eth_rxq, enum doca_event_batch_events_number events_number_max, enum doca_event_batch_events_number events_number_min, union doca_data user_data, doca_eth_rxq_event_batch_managed_recv_handler_cb_t success_event_batch_handler, doca_eth_rxq_event_batch_managed_recv_handler_cb_t error_event_batch_handler)
 This method registers a doca_eth_rxq_event_managed_recv event batch. Allows user to get multiple event completions with one callback. can only be called before calling doca_ctx_start(). More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_task_recv_allocate_init (struct doca_eth_rxq *eth_rxq, struct doca_buf *pkt, union doca_data user_data, struct doca_eth_rxq_task_recv **task_recv)
 This method allocates and initializes a doca_eth_rxq_task_recv task. More...
 
DOCA_EXPERIMENTAL void doca_eth_rxq_task_recv_set_pkt (struct doca_eth_rxq_task_recv *task_recv, struct doca_buf *pkt)
 This method sets packet buffer to doca_eth_rxq_task_recv task. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_task_recv_get_pkt (const struct doca_eth_rxq_task_recv *task_recv, struct doca_buf **pkt)
 This method gets packet buffer from doca_eth_rxq_task_recv task. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_task_recv_get_l3_ok (const struct doca_eth_rxq_task_recv *task_recv, uint8_t *l3_ok)
 This method checks if L3 checksum of finished doca_eth_rxq_task_recv task is ok. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_managed_recv_get_l3_ok (const struct doca_eth_rxq_event_managed_recv *event_managed_recv, uint8_t *l3_ok)
 This method checks if L3 checksum of finished doca_eth_rxq_event_managed_recv event is ok. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_batch_managed_recv_get_l3_ok_array (const struct doca_eth_rxq_event_batch_managed_recv *event_batch_managed_recv, const uint8_t **l3_ok_array)
 This method checks if L3 checksums of received packets in managed receive event batch are ok. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_task_recv_get_l4_ok (const struct doca_eth_rxq_task_recv *task_recv, uint8_t *l4_ok)
 This method checks if L4 checksum of finished doca_eth_rxq_task_recv task is ok. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_managed_recv_get_l4_ok (const struct doca_eth_rxq_event_managed_recv *event_managed_recv, uint8_t *l4_ok)
 This method checks if L4 checksum of finished doca_eth_rxq_event_managed_recv event is ok. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_batch_managed_recv_get_l4_ok_array (const struct doca_eth_rxq_event_batch_managed_recv *event_batch_managed_recv, const uint8_t **l4_ok_array)
 This method checks if L4 checksums of received packets in managed receive event batch are ok. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_task_recv_get_metadata_array (const struct doca_eth_rxq_task_recv *task_recv, const uint32_t **metadata_array)
 This method gets metadata array for the packet received by receive task. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_managed_recv_get_metadata_array (const struct doca_eth_rxq_event_managed_recv *event_managed_recv, const uint32_t **metadata_array)
 This method gets metadata array for the packet received by managed receive event. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_batch_managed_recv_get_metadata_array (const struct doca_eth_rxq_event_batch_managed_recv *event_batch_managed_recv, const uint32_t **metadata_array)
 This method gets metadata array for the packet received by managed receive event batch. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_task_recv_get_flow_tag (const struct doca_eth_rxq_task_recv *task_recv, uint32_t *flow_tag)
 This method gets the flow tag of a finished receive task. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_managed_recv_get_flow_tag (const struct doca_eth_rxq_event_managed_recv *event_managed_recv, uint32_t *flow_tag)
 This method gets the flow tag of a managed receive event. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_batch_managed_recv_get_flow_tag_array (const struct doca_eth_rxq_event_batch_managed_recv *event_batch_managed_recv, const uint32_t **flow_tag_array)
 This method gets the flow tag array of a managed receive event batch. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_task_recv_get_rx_hash (const struct doca_eth_rxq_task_recv *task_recv, uint32_t *rx_hash)
 This method gets the RX hash of a finished receive task. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_managed_recv_get_rx_hash (const struct doca_eth_rxq_event_managed_recv *event_managed_recv, uint32_t *rx_hash)
 This method gets the RX hash of a managed receive event. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_batch_managed_recv_get_rx_hash_array (const struct doca_eth_rxq_event_batch_managed_recv *event_batch_managed_recv, const uint32_t **rx_hash_array)
 This method gets the RX hash array of a managed receive event batch. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_task_recv_get_timestamp (const struct doca_eth_rxq_task_recv *task_recv, uint64_t *timestamp)
 This method gets the timestamp of a finished receive task. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_managed_recv_get_timestamp (const struct doca_eth_rxq_event_managed_recv *event_managed_recv, uint64_t *timestamp)
 This method gets the timestamp of a managed receive event. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_batch_managed_recv_get_timestamp_array (const struct doca_eth_rxq_event_batch_managed_recv *event_batch_managed_recv, const uint64_t **timestamp_array)
 This method gets the timestamp array of a managed receive event batch. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_rxq_event_managed_recv_get_status (const struct doca_eth_rxq_event_managed_recv *event_managed_recv)
 This method gets status of finished doca_eth_rxq_event_managed_recv event. More...
 
DOCA_EXPERIMENTAL void doca_eth_rxq_event_batch_managed_recv_pkt_array_free (struct doca_buf **pkt_array)
 This method frees the packet array acquired using managed receive event batch and returns it to the ownership of the library. This function is an optimized approach of freeing packets returned from a single managed receive event batch. User should free the packets returned from a single event batch either by calling doca_buf_dec_refcount() per packet or calling this function with the original pkt_array returned in the CB. User can't mix both approaches per event batch (but can on different event batches). More...
 
DOCA_EXPERIMENTAL struct doca_ctx * doca_eth_rxq_event_managed_recv_get_ctx (const struct doca_eth_rxq_event_managed_recv *event_managed_recv)
 This method gets context of finished doca_eth_rxq_event_managed_recv event. More...
 
DOCA_EXPERIMENTAL struct doca_ctx * doca_eth_rxq_event_batch_managed_recv_get_ctx (const struct doca_eth_rxq_event_batch_managed_recv *event_batch_managed_recv)
 This method gets context of finished doca_eth_rxq_event_batch_managed_recv event. More...
 
DOCA_EXPERIMENTAL struct doca_task * doca_eth_rxq_task_recv_as_doca_task (struct doca_eth_rxq_task_recv *task_recv)
 This method converts a doca_eth_rxq_task_recv task to doca_task. More...