NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
DOCA ETH TXQ GPU Data Path
Collaboration diagram for DOCA ETH TXQ GPU Data Path:

Typedefs

typedef void(* doca_eth_txq_gpu_event_error_send_packet_cb_t) (struct doca_eth_txq_gpu_event_error_send_packet *event_error, union doca_data event_user_data)
 Function to be executed on send packet error event occurrence. More...
 
typedef void(* doca_eth_txq_gpu_event_notify_send_packet_cb_t) (struct doca_eth_txq_gpu_event_notify_send_packet *event_notify, union doca_data event_user_data)
 Function to be executed on send packet notify event occurrence. More...
 

Functions

DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_event_error_send_packet_register (struct doca_eth_txq *eth_txq, doca_eth_txq_gpu_event_error_send_packet_cb_t event_error_send_packet_cb, union doca_data event_user_data)
 This method registers a doca_eth_txq_gpu_event_error_send_packet event. can only be called before calling doca_ctx_start(). More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_event_notify_send_packet_register (struct doca_eth_txq *eth_txq, doca_eth_txq_gpu_event_notify_send_packet_cb_t event_notify_send_packet_cb, union doca_data event_user_data)
 This method registers a doca_eth_txq_gpu_event_notify_send_packet event. can only be called before calling doca_ctx_start(). More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_event_error_send_packet_get_position (const struct doca_eth_txq_gpu_event_error_send_packet *event_error, uint16_t *packet_index)
 This method returns the index in the send queue of the packet which caused the error. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_event_notify_send_packet_get_position (const struct doca_eth_txq_gpu_event_notify_send_packet *event_notify, uint16_t *packet_index)
 This method returns the index in the send queue of the packet which reported the notify info. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_event_notify_send_packet_get_timestamp (const struct doca_eth_txq_gpu_event_notify_send_packet *event_notify, uint64_t *packet_timestamp)
 This method returns the timestamp at which the packet in the send queue was actually sent (fired over the network). More...
 
DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_set_completion_on_gpu (struct doca_eth_txq *eth_txq)
 By default, the Eth Txq completion can be checked on th CPU. With this method set the Eth Txq completion on the GPU. This way CUDA GPUNetIO functions can be used to check the completion of a send. More...
 

Detailed Description

DOCA ETH TXQ library.

Typedef Documentation

◆ doca_eth_txq_gpu_event_error_send_packet_cb_t

typedef void(* doca_eth_txq_gpu_event_error_send_packet_cb_t) (struct doca_eth_txq_gpu_event_error_send_packet *event_error, union doca_data event_user_data)

Function to be executed on send packet error event occurrence.

DOCA ETH TXQ event for send packet notify info.

Parameters
[in]event_errorThe send packet error event. The implementation assumes this value is not NULL.
[in]event_user_datauser_data attached to the event.

Definition at line 55 of file doca_eth_txq_gpu_data_path.h.

◆ doca_eth_txq_gpu_event_notify_send_packet_cb_t

typedef void(* doca_eth_txq_gpu_event_notify_send_packet_cb_t) (struct doca_eth_txq_gpu_event_notify_send_packet *event_notify, union doca_data event_user_data)

Function to be executed on send packet notify event occurrence.

Parameters
[in]event_notifyThe send packet notify event. The implementation assumes this value is not NULL.
[in]event_user_datauser_data attached to the event.

Definition at line 68 of file doca_eth_txq_gpu_data_path.h.

Function Documentation

◆ doca_eth_txq_gpu_event_error_send_packet_get_position()

DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_event_error_send_packet_get_position ( const struct doca_eth_txq_gpu_event_error_send_packet *  event_error,
uint16_t *  packet_index 
)

This method returns the index in the send queue of the packet which caused the error.

Note
Supported for DOCA ETH TXQ instance for GPU only.
Parameters
[in]event_errorThe send packet error event. The implementation assumes this value is not NULL.
[out]packet_indexSend packet index in the send queue.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - in case one of the arguments is NULL.

◆ doca_eth_txq_gpu_event_error_send_packet_register()

DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_event_error_send_packet_register ( struct doca_eth_txq *  eth_txq,
doca_eth_txq_gpu_event_error_send_packet_cb_t  event_error_send_packet_cb,
union doca_data  event_user_data 
)

This method registers a doca_eth_txq_gpu_event_error_send_packet event. can only be called before calling doca_ctx_start().

Note
Supported for DOCA ETH TXQ instance for GPU only.
Parameters
[in]eth_txqPointer to doca_eth_txq instance.
[in]event_error_send_packet_cbMethod that is invoked once a send packet error event is triggered
[in]event_user_datauser_data attached to the event.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - in case one of the arguments is NULL.
  • DOCA_ERROR_BAD_STATE - internal error.

◆ doca_eth_txq_gpu_event_notify_send_packet_get_position()

DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_event_notify_send_packet_get_position ( const struct doca_eth_txq_gpu_event_notify_send_packet *  event_notify,
uint16_t *  packet_index 
)

This method returns the index in the send queue of the packet which reported the notify info.

Note
Supported for DOCA ETH TXQ instance for GPU only.
Parameters
[in]event_notifyThe send packet notify event. The implementation assumes this value is not NULL.
[out]packet_indexSend packet index in the send queue.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - in case one of the arguments is NULL.

◆ doca_eth_txq_gpu_event_notify_send_packet_get_timestamp()

DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_event_notify_send_packet_get_timestamp ( const struct doca_eth_txq_gpu_event_notify_send_packet *  event_notify,
uint64_t *  packet_timestamp 
)

This method returns the timestamp at which the packet in the send queue was actually sent (fired over the network).

Note
Supported for DOCA ETH TXQ instance for GPU only.
Parameters
[in]event_notifyThe send packet notify event. The implementation assumes this value is not NULL.
[out]packet_timestampSend packet event timestamp in the send queue.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - in case one of the arguments is NULL.

◆ doca_eth_txq_gpu_event_notify_send_packet_register()

DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_event_notify_send_packet_register ( struct doca_eth_txq *  eth_txq,
doca_eth_txq_gpu_event_notify_send_packet_cb_t  event_notify_send_packet_cb,
union doca_data  event_user_data 
)

This method registers a doca_eth_txq_gpu_event_notify_send_packet event. can only be called before calling doca_ctx_start().

Note
Supported for DOCA ETH TXQ instance for GPU only.
Parameters
[in]eth_txqPointer to doca_eth_txq instance.
[in]event_notify_send_packet_cbMethod that is invoked once a send packet notify event is triggered
[in]event_user_datauser_data attached to the event.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - in case one of the arguments is NULL.
  • DOCA_ERROR_BAD_STATE - internal error.

◆ doca_eth_txq_gpu_set_completion_on_gpu()

DOCA_EXPERIMENTAL doca_error_t doca_eth_txq_gpu_set_completion_on_gpu ( struct doca_eth_txq *  eth_txq)

By default, the Eth Txq completion can be checked on th CPU. With this method set the Eth Txq completion on the GPU. This way CUDA GPUNetIO functions can be used to check the completion of a send.

Note
Supported for DOCA ETH TXQ instance for GPU only.
Parameters
[in]eth_txqPointer to doca_eth_txq instance.
Returns
DOCA_SUCCESS - in case of success. doca_error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - in case one of the arguments is NULL.
  • DOCA_ERROR_BAD_STATE - internal error.