NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
DOCA Device Emulation - Virtio Devices
Collaboration diagram for DOCA Device Emulation - Virtio Devices:

Modules

 DOCA Device Emulation - Virtio IO Context
 
 DOCA Device Emulation - Virtio Device Types
 

Typedefs

typedef void(* doca_devemu_virtio_dev_event_reset_handler_cb_t) (struct doca_devemu_virtio_dev *virtio_dev, union doca_data event_user_data)
 Function to be executed on Virtio device reset. The event handler will enable users to quiesce, flush and reset the necessary resources associated with the emulated Virtio device. Upon event, all PCI I/O transactions to/from the host memory are disabled. Additionally, the user should flush all the outstanding resources associated with the emulated Virtio device, which were initially owned by the Virtio device and moved the the ownership of the user. After flushing all the outstanding resources, the user should call doca_devemu_virtio_dev_reset_complete(). More...
 
typedef void(* doca_devemu_virtio_queue_stats_list_populate_done_cb_t) (struct doca_devemu_virtio_queue_stats **stats_list, union doca_data user_data, doca_error_t err)
 Function to be executed upon finishing asynchronous population of Virtio queue statistics list. More...
 

Functions

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_device_features_63_0 (const struct doca_devemu_virtio_dev *virtio_dev, uint64_t *features)
 Get the Virtio device_feature bits (0-63) according to Virtio specification. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_device_features_63_0 (struct doca_devemu_virtio_dev *virtio_dev, uint64_t features)
 Set the Virtio device_feature bits (0-63) according to Virtio specification. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_driver_features_63_0 (const struct doca_devemu_virtio_dev *virtio_dev, uint64_t *features)
 Get the Virtio driver_feature bits (0-63) according to Virtio specification. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_config_msix_vector (const struct doca_devemu_virtio_dev *virtio_dev, uint16_t *config_msix_vector)
 Get the Virtio config_msix_vector register according to Virtio specification. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_num_queues (const struct doca_devemu_virtio_dev *virtio_dev, uint16_t *num_queues)
 Get the Virtio device num_queues register from common configuration structure according to Virtio specification. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_num_queues (struct doca_devemu_virtio_dev *virtio_dev, uint16_t num_queues)
 Set the Virtio device num_queues register in common configuration structure according to Virtio specification. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_num_enabled_queues (const struct doca_devemu_virtio_dev *virtio_dev, uint16_t *num_queues)
 Get the number of enabled Virtio device queues by the driver. The driver enables a queue by setting the corresponding queue index to the queue_select register and setting the queue_enable register to 1. The return value of num_queues is valid only if DRIVER_OK status bit was set by the driver. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_device_status (const struct doca_devemu_virtio_dev *virtio_dev, uint8_t *device_status)
 Get the Virtio device_status register from common configuration structure according to Virtio specification. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_config_generation (const struct doca_devemu_virtio_dev *virtio_dev, uint8_t *config_generation)
 Get the Virtio config_generation register from common configuration structure according to Virtio specification. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_queue_size (const struct doca_devemu_virtio_dev *virtio_dev, uint16_t *queue_size)
 Get the Virtio max queue size for all Virtio queues. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_queue_size (struct doca_devemu_virtio_dev *virtio_dev, uint16_t queue_size)
 Set the Virtio max queue size for all Virtio queues. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_num_required_running_virtio_io_ctxs (const struct doca_devemu_virtio_dev *virtio_dev, uint32_t *num_virtio_io)
 Get the number of required running Virtio io context's to be bounded to the Virtio device context. The Virtio device context will not move to a "running" state before having this amount of running Virtio IO context's bounded to it. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_num_required_running_virtio_io_ctxs (struct doca_devemu_virtio_dev *virtio_dev, uint32_t num_virtio_io)
 Set the number of required running Virtio IO context's to be bounded to the Virtio device context. The Virtio device context will not move to a "running" state before having this amount of running Virtio IO context's bounded to it. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_reset_complete (struct doca_devemu_virtio_dev *virtio_dev)
 Complete the Virtio device reset handling. Prior to calling this function, the user must ensure that all the resources associated with the Virtio device are flushed back to the ownership of the device. More...
 
DOCA_EXPERIMENTAL struct doca_ctx * doca_devemu_virtio_dev_as_ctx (struct doca_devemu_virtio_dev *virtio_dev)
 Convert DOCA Virtio device instance into DOCA context. More...
 
DOCA_EXPERIMENTAL struct doca_devemu_pci_dev * doca_devemu_virtio_dev_as_pci_dev (struct doca_devemu_virtio_dev *virtio_dev)
 Convert DOCA Virtio device instance into DOCA devemu PCI device. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_event_reset_register (struct doca_devemu_virtio_dev *virtio_dev, doca_devemu_virtio_dev_event_reset_handler_cb_t handler, union doca_data user_data)
 Register to Virtio device reset event. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_create_list (struct doca_devemu_virtio_dev *virtio_dev, struct doca_devemu_virtio_queue_stats ***stats_list, uint32_t *num_stats)
 Create an empty list of statistics for Virtio device queues. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_destroy_list (struct doca_devemu_virtio_queue_stats **stats_list)
 Destroy a list of Virtio queue statistics structures. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_populate_list (struct doca_devemu_virtio_queue_stats **stats_list, doca_devemu_virtio_queue_stats_list_populate_done_cb_t done, union doca_data user_data)
 Issue an asynchronous population of a list of Virtio queue statistics structures. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_id (struct doca_devemu_virtio_queue_stats *stats, uint16_t *id)
 Retrieve the Virtio queue index from its statistics structure. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_size (struct doca_devemu_virtio_queue_stats *stats, uint16_t *size)
 Retrieve the Virtio queue size (depth) from its statistics structure. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_inflights (struct doca_devemu_virtio_queue_stats *stats, uint16_t *inflights)
 Retrieve the number of in-flight requests for a Virtio queue from its statistics structure. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_hw_avail_idx (struct doca_devemu_virtio_queue_stats *stats, uint16_t *idx)
 Retrieve the available index of a Virtio queue as seen by the device from its statistics structure. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_driver_avail_idx (struct doca_devemu_virtio_queue_stats *stats, uint16_t *idx)
 Retrieve the available index of a Virtio queue as seen by the driver from its statistics structure. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_hw_used_idx (struct doca_devemu_virtio_queue_stats *stats, uint16_t *idx)
 Retrieve the used index of a Virtio queue as seen by the device from its statistics structure. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_driver_used_idx (struct doca_devemu_virtio_queue_stats *stats, uint16_t *idx)
 Retrieve the used index of a Virtio queue as seen by the driver from its statistics structure. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_enabled (struct doca_devemu_virtio_queue_stats *stats, uint8_t *enabled)
 Retrieve the enabled status of a Virtio queue from its statistics structure. More...
 

Detailed Description

DOCA library for emulated virtio devices logic

Typedef Documentation

◆ doca_devemu_virtio_dev_event_reset_handler_cb_t

typedef void(* doca_devemu_virtio_dev_event_reset_handler_cb_t) (struct doca_devemu_virtio_dev *virtio_dev, union doca_data event_user_data)

Function to be executed on Virtio device reset. The event handler will enable users to quiesce, flush and reset the necessary resources associated with the emulated Virtio device. Upon event, all PCI I/O transactions to/from the host memory are disabled. Additionally, the user should flush all the outstanding resources associated with the emulated Virtio device, which were initially owned by the Virtio device and moved the the ownership of the user. After flushing all the outstanding resources, the user should call doca_devemu_virtio_dev_reset_complete().

Parameters
[in]virtio_devDOCA Virtio device instance.
[in]event_user_dataSame user data that was provided in doca_devemu_virtio_dev_event_reset_register().

Definition at line 336 of file doca_devemu_virtio.h.

◆ doca_devemu_virtio_queue_stats_list_populate_done_cb_t

typedef void(* doca_devemu_virtio_queue_stats_list_populate_done_cb_t) (struct doca_devemu_virtio_queue_stats **stats_list, union doca_data user_data, doca_error_t err)

Function to be executed upon finishing asynchronous population of Virtio queue statistics list.

Parameters
[in]stats_listPopulated list of Virtio queue statistics structures.
[in]user_dataSame user data that was provided in doca_devemu_virtio_queue_stats_populate_list().
[in]errDOCA_SUCCESS - in case of successful population. Error code - in case of failure.

Definition at line 415 of file doca_devemu_virtio.h.

Function Documentation

◆ doca_devemu_virtio_dev_as_ctx()

DOCA_EXPERIMENTAL struct doca_ctx* doca_devemu_virtio_dev_as_ctx ( struct doca_devemu_virtio_dev *  virtio_dev)

Convert DOCA Virtio device instance into DOCA context.

Parameters
[in]virtio_devDOCA Virtio device instance. This must remain valid until after the DOCA context is no longer required.
Returns
doca ctx upon success, NULL otherwise.

◆ doca_devemu_virtio_dev_as_pci_dev()

DOCA_EXPERIMENTAL struct doca_devemu_pci_dev* doca_devemu_virtio_dev_as_pci_dev ( struct doca_devemu_virtio_dev *  virtio_dev)

Convert DOCA Virtio device instance into DOCA devemu PCI device.

Parameters
[in]virtio_devDOCA Virtio device instance. This must remain valid until after the DOCA devemu PCI device is no longer required.
Returns
DOCA devemu pci device upon success, NULL otherwise.

◆ doca_devemu_virtio_dev_event_reset_register()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_event_reset_register ( struct doca_devemu_virtio_dev *  virtio_dev,
doca_devemu_virtio_dev_event_reset_handler_cb_t  handler,
union doca_data  user_data 
)

Register to Virtio device reset event.

Registration can be done only if the Virtio device ctx is idle. If called multiple times then only the last call will take effect.

Parameters
[in]virtio_devThe DOCA Virtio dev context to be associated to the event. Must be idle.
[in]handlerMethod that is invoked once event is triggered.
[in]user_dataUser data that will be provided to the handler once invoked.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - 'virtio_dev' or 'handler' are NULL
  • DOCA_ERROR_BAD_STATE - virtio_dev context is not idle

◆ doca_devemu_virtio_dev_get_config_generation()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_config_generation ( const struct doca_devemu_virtio_dev *  virtio_dev,
uint8_t *  config_generation 
)

Get the Virtio config_generation register from common configuration structure according to Virtio specification.

Parameters
[in]virtio_devThe DOCA Virtio device instance to query.
[out]config_generationThe value of the config_generation register.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_get_config_msix_vector()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_config_msix_vector ( const struct doca_devemu_virtio_dev *  virtio_dev,
uint16_t *  config_msix_vector 
)

Get the Virtio config_msix_vector register according to Virtio specification.

Parameters
[in]virtio_devThe DOCA Virtio device instance to query.
[out]config_msix_vectorThe value of the config_msix_vector register according to Virtio specification.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_get_device_features_63_0()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_device_features_63_0 ( const struct doca_devemu_virtio_dev *  virtio_dev,
uint64_t *  features 
)

Get the Virtio device_feature bits (0-63) according to Virtio specification.

Parameters
[in]virtio_devThe DOCA Virtio device instance to query.
[out]featuresThe device_feature (bits 0-63) according to Virtio specification.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_get_device_status()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_device_status ( const struct doca_devemu_virtio_dev *  virtio_dev,
uint8_t *  device_status 
)

Get the Virtio device_status register from common configuration structure according to Virtio specification.

Parameters
[in]virtio_devThe DOCA Virtio device instance to query.
[out]device_statusThe value of the device_status register.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_get_driver_features_63_0()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_driver_features_63_0 ( const struct doca_devemu_virtio_dev *  virtio_dev,
uint64_t *  features 
)

Get the Virtio driver_feature bits (0-63) according to Virtio specification.

Parameters
[in]virtio_devThe DOCA Virtio device instance to query.
[out]featuresThe driver_feature (bits 0-63) according to Virtio specification.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_get_num_enabled_queues()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_num_enabled_queues ( const struct doca_devemu_virtio_dev *  virtio_dev,
uint16_t *  num_queues 
)

Get the number of enabled Virtio device queues by the driver. The driver enables a queue by setting the corresponding queue index to the queue_select register and setting the queue_enable register to 1. The return value of num_queues is valid only if DRIVER_OK status bit was set by the driver.

Parameters
[in]virtio_devThe DOCA Virtio device instance to query.
[out]num_queuesThe number of enable Virtio queues for the virtio device.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_get_num_queues()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_num_queues ( const struct doca_devemu_virtio_dev *  virtio_dev,
uint16_t *  num_queues 
)

Get the Virtio device num_queues register from common configuration structure according to Virtio specification.

Parameters
[in]virtio_devThe DOCA Virtio device instance to query.
[out]num_queuesThe value of the num_queues register.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_get_num_required_running_virtio_io_ctxs()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_num_required_running_virtio_io_ctxs ( const struct doca_devemu_virtio_dev *  virtio_dev,
uint32_t *  num_virtio_io 
)

Get the number of required running Virtio io context's to be bounded to the Virtio device context. The Virtio device context will not move to a "running" state before having this amount of running Virtio IO context's bounded to it.

Parameters
[in]virtio_devThe DOCA Virtio device instance to query.
[out]num_virtio_ioThe number of required running Virtio IO ctx's to be bounded to the device.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_get_queue_size()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_queue_size ( const struct doca_devemu_virtio_dev *  virtio_dev,
uint16_t *  queue_size 
)

Get the Virtio max queue size for all Virtio queues.

Parameters
[in]virtio_devThe DOCA Virtio device instance to query.
[out]queue_sizeThe maximal queue size for all Virtio queues.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_reset_complete()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_reset_complete ( struct doca_devemu_virtio_dev *  virtio_dev)

Complete the Virtio device reset handling. Prior to calling this function, the user must ensure that all the resources associated with the Virtio device are flushed back to the ownership of the device.

Parameters
[in]virtio_devDOCA Virtio device instance.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_set_device_features_63_0()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_device_features_63_0 ( struct doca_devemu_virtio_dev *  virtio_dev,
uint64_t  features 
)

Set the Virtio device_feature bits (0-63) according to Virtio specification.

Parameters
[in]virtio_devThe DOCA Virtio device instance to modify.
[in]featuresThe device_feature (bits 0-63) according to Virtio specification.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_set_num_queues()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_num_queues ( struct doca_devemu_virtio_dev *  virtio_dev,
uint16_t  num_queues 
)

Set the Virtio device num_queues register in common configuration structure according to Virtio specification.

Parameters
[in]virtio_devThe DOCA Virtio device instance to modify.
[in]num_queuesThe device common num_queues register.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_set_num_required_running_virtio_io_ctxs()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_num_required_running_virtio_io_ctxs ( struct doca_devemu_virtio_dev *  virtio_dev,
uint32_t  num_virtio_io 
)

Set the number of required running Virtio IO context's to be bounded to the Virtio device context. The Virtio device context will not move to a "running" state before having this amount of running Virtio IO context's bounded to it.

Parameters
[in]virtio_devThe DOCA Virtio device instance to modify.
[in]num_virtio_ioThe number of required running Virtio IO ctx's to be bounded.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_dev_set_queue_size()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_queue_size ( struct doca_devemu_virtio_dev *  virtio_dev,
uint16_t  queue_size 
)

Set the Virtio max queue size for all Virtio queues.

Parameters
[in]virtio_devThe DOCA Virtio device instance to query.
[in]queue_sizeThe maximal queue size for all Virtio queues.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_queue_stats_create_list()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_create_list ( struct doca_devemu_virtio_dev *  virtio_dev,
struct doca_devemu_virtio_queue_stats ***  stats_list,
uint32_t *  num_stats 
)

Create an empty list of statistics for Virtio device queues.

Allocates an unpopulated list (array) of queue statistics structures for the queues of a Virtio device.

Parameters
[in]virtio_devThe DOCA devemu Virtio device. Must be started.
[out]stats_listThe newly created list of DOCA devemu Virtio queue statistics structures. After a successful call, the list can be accessed as (*stats_list)[idx], where idx ranges from 0 to (*num_stats) - 1.
[out]num_statsThe length of the stats_list.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.
Note
The returned stats_list should be populated using doca_devemu_virtio_queue_stats_populate_list(). The returned stats_list must be deallocated using doca_devemu_virtio_queue_stats_destroy_list() to prevent memory leaks.

◆ doca_devemu_virtio_queue_stats_destroy_list()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_destroy_list ( struct doca_devemu_virtio_queue_stats **  stats_list)

Destroy a list of Virtio queue statistics structures.

Deallocates the memory associated with a list of Virtio queue statistics structures.

Parameters
[in]stats_listList to be destroyed.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.

◆ doca_devemu_virtio_queue_stats_get_driver_avail_idx()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_driver_avail_idx ( struct doca_devemu_virtio_queue_stats *  stats,
uint16_t *  idx 
)

Retrieve the available index of a Virtio queue as seen by the driver from its statistics structure.

Parameters
[in]statsThe DOCA devemu Virtio queue statistics instance to query. It must have been previously successfully populated.
[out]idxThe available index of a Virtio queue as seen by the driver.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - 'stats' or 'idx' is NULL
  • DOCA_ERROR_BAD_STATE - 'stats' is not populated successfully

◆ doca_devemu_virtio_queue_stats_get_driver_used_idx()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_driver_used_idx ( struct doca_devemu_virtio_queue_stats *  stats,
uint16_t *  idx 
)

Retrieve the used index of a Virtio queue as seen by the driver from its statistics structure.

Parameters
[in]statsThe DOCA devemu Virtio queue statistics instance to query. It must have been previously successfully populated.
[out]idxThe used index of a Virtio queue as seen by the driver.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - 'stats' or 'idx' is NULL
  • DOCA_ERROR_BAD_STATE - 'stats' is not populated successfully

◆ doca_devemu_virtio_queue_stats_get_enabled()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_enabled ( struct doca_devemu_virtio_queue_stats *  stats,
uint8_t *  enabled 
)

Retrieve the enabled status of a Virtio queue from its statistics structure.

Parameters
[in]statsThe DOCA devemu Virtio queue statistics instance to query. It must have been previously successfully populated.
[out]enabled1 if the Virtio queue is enabled, 0 otherwise.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - 'stats' or 'enabled' is NULL
  • DOCA_ERROR_BAD_STATE - 'stats' is not populated successfully

◆ doca_devemu_virtio_queue_stats_get_hw_avail_idx()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_hw_avail_idx ( struct doca_devemu_virtio_queue_stats *  stats,
uint16_t *  idx 
)

Retrieve the available index of a Virtio queue as seen by the device from its statistics structure.

Parameters
[in]statsThe DOCA devemu Virtio queue statistics instance to query. It must have been previously successfully populated.
[out]idxThe available index of a Virtio queue as seen by the device.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - 'stats' or 'idx' is NULL
  • DOCA_ERROR_BAD_STATE - 'stats' is not populated successfully

◆ doca_devemu_virtio_queue_stats_get_hw_used_idx()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_hw_used_idx ( struct doca_devemu_virtio_queue_stats *  stats,
uint16_t *  idx 
)

Retrieve the used index of a Virtio queue as seen by the device from its statistics structure.

Parameters
[in]statsThe DOCA devemu Virtio queue statistics instance to query. It must have been previously successfully populated.
[out]idxThe used index of a Virtio queue as seen by the device.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - 'stats' or 'idx' is NULL
  • DOCA_ERROR_BAD_STATE - 'stats' is not populated successfully

◆ doca_devemu_virtio_queue_stats_get_id()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_id ( struct doca_devemu_virtio_queue_stats *  stats,
uint16_t *  id 
)

Retrieve the Virtio queue index from its statistics structure.

Parameters
[in]statsThe DOCA devemu Virtio queue statistics instance to query. It must have been previously successfully populated.
[out]idThe index of the Virtio queue.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - 'stats' or 'id' is NULL
  • DOCA_ERROR_BAD_STATE - 'stats' is not populated successfully

◆ doca_devemu_virtio_queue_stats_get_inflights()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_inflights ( struct doca_devemu_virtio_queue_stats *  stats,
uint16_t *  inflights 
)

Retrieve the number of in-flight requests for a Virtio queue from its statistics structure.

Parameters
[in]statsThe DOCA devemu Virtio queue statistics instance to query. It must have been previously successfully populated.
[out]inflightsThe amount of in-flight requests associated with Virtio queue.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - 'stats' or 'inflights' is NULL
  • DOCA_ERROR_BAD_STATE - 'stats' is not populated successfully

◆ doca_devemu_virtio_queue_stats_get_size()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_size ( struct doca_devemu_virtio_queue_stats *  stats,
uint16_t *  size 
)

Retrieve the Virtio queue size (depth) from its statistics structure.

Parameters
[in]statsThe DOCA devemu Virtio queue statistics instance to query. It must have been previously successfully populated.
[out]sizeThe size of the Virtio queue.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure:
  • DOCA_ERROR_INVALID_VALUE - 'stats' or 'size' is NULL
  • DOCA_ERROR_BAD_STATE - 'stats' is not populated successfully

◆ doca_devemu_virtio_queue_stats_populate_list()

DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_populate_list ( struct doca_devemu_virtio_queue_stats **  stats_list,
doca_devemu_virtio_queue_stats_list_populate_done_cb_t  done,
union doca_data  user_data 
)

Issue an asynchronous population of a list of Virtio queue statistics structures.

Initiates the asynchronous population of a list of Virtio queue statistics structures. Only one population operation can be in progress at any given time for the associated DOCA devemu Virtio device, which must be started.

Parameters
[in]stats_listThe list to be populated.
[in]doneThe callback to be invoked upon finishing population of Virtio queue statistics list. This callback will only be called if the return value of this function is DOCA_SUCCESS.
[in]user_dataUser data that will be provided to the done callback once invoked.
Returns
DOCA_SUCCESS - in case of success. Error code - in case of failure. see doca_error_t.