DPDK  22.03.0
Data Structures | Macros | Functions
rte_vdpa.h File Reference
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  rte_vdpa_stat
 
struct  rte_vdpa_stat_name
 

Macros

#define RTE_VDPA_STATS_NAME_SIZE   64
 

Functions

struct rte_vdpa_device * rte_vdpa_find_device_by_name (const char *name)
 
struct rte_devicerte_vdpa_get_rte_device (struct rte_vdpa_device *vdpa_dev)
 
int rte_vdpa_get_queue_num (struct rte_vdpa_device *dev, uint32_t *queue_num)
 
int rte_vdpa_get_features (struct rte_vdpa_device *dev, uint64_t *features)
 
int rte_vdpa_get_protocol_features (struct rte_vdpa_device *dev, uint64_t *features)
 
int rte_vdpa_relay_vring_used (int vid, uint16_t qid, void *vring_m)
 
int rte_vdpa_get_stats_names (struct rte_vdpa_device *dev, struct rte_vdpa_stat_name *stats_names, unsigned int size)
 
int rte_vdpa_get_stats (struct rte_vdpa_device *dev, uint16_t qid, struct rte_vdpa_stat *stats, unsigned int n)
 
int rte_vdpa_reset_stats (struct rte_vdpa_device *dev, uint16_t qid)
 

Detailed Description

Device specific vhost lib

Definition in file rte_vdpa.h.

Macro Definition Documentation

◆ RTE_VDPA_STATS_NAME_SIZE

#define RTE_VDPA_STATS_NAME_SIZE   64

Maximum name length for statistics counters

Examples:
examples/vdpa/main.c.

Definition at line 21 of file rte_vdpa.h.

Function Documentation

◆ rte_vdpa_find_device_by_name()

struct rte_vdpa_device* rte_vdpa_find_device_by_name ( const char *  name)

Find the device id of a vdpa device from its name

Parameters
namethe vdpa device name
Returns
vDPA device pointer on success, NULL on failure
Examples:
examples/vdpa/main.c.

◆ rte_vdpa_get_rte_device()

struct rte_device* rte_vdpa_get_rte_device ( struct rte_vdpa_device *  vdpa_dev)

Get the generic device from the vdpa device

Parameters
vdpa_devthe vdpa device pointer
Returns
generic device pointer on success, NULL on failure
Examples:
examples/vdpa/main.c.

◆ rte_vdpa_get_queue_num()

int rte_vdpa_get_queue_num ( struct rte_vdpa_device *  dev,
uint32_t *  queue_num 
)

Get number of queue pairs supported by the vDPA device

Parameters
devvDP device pointer
queue_numpointer on where the number of queue is stored
Returns
0 on success, -1 on failure
Examples:
examples/vdpa/main.c.

◆ rte_vdpa_get_features()

int rte_vdpa_get_features ( struct rte_vdpa_device *  dev,
uint64_t *  features 
)

Get the Virtio features supported by the vDPA device

Parameters
devvDP device pointer
featurespointer on where the supported features are stored
Returns
0 on success, -1 on failure
Examples:
examples/vdpa/main.c.

◆ rte_vdpa_get_protocol_features()

int rte_vdpa_get_protocol_features ( struct rte_vdpa_device *  dev,
uint64_t *  features 
)

Get the Vhost-user protocol features supported by the vDPA device

Parameters
devvDP device pointer
featurespointer on where the supported protocol features are stored
Returns
0 on success, -1 on failure

◆ rte_vdpa_relay_vring_used()

int rte_vdpa_relay_vring_used ( int  vid,
uint16_t  qid,
void *  vring_m 
)

Synchronize the used ring from mediated ring to guest, log dirty page for each writeable buffer, caller should handle the used ring logging before device stop.

Parameters
vidvhost device id
qidvhost queue id
vring_mmediated virtio ring pointer
Returns
number of synced used entries on success, -1 on failure

◆ rte_vdpa_get_stats_names()

int rte_vdpa_get_stats_names ( struct rte_vdpa_device *  dev,
struct rte_vdpa_stat_name stats_names,
unsigned int  size 
)

Retrieve names of statistics of a vDPA device.

There is an assumption that 'stat_names' and 'stats' arrays are matched by array index: stats_names[i].name => stats[i].value

And the array index is same with id field of 'struct rte_vdpa_stat': stats[i].id == i

Parameters
devvDPA device pointer
stats_namesarray of at least size elements to be filled. If set to NULL, the function returns the required number of elements.
sizeThe number of elements in stats_names array.
Returns
A negative value on error, otherwise the number of entries filled in the stats name array.
Examples:
examples/vdpa/main.c.

◆ rte_vdpa_get_stats()

int rte_vdpa_get_stats ( struct rte_vdpa_device *  dev,
uint16_t  qid,
struct rte_vdpa_stat stats,
unsigned int  n 
)

Retrieve statistics of a vDPA device.

There is an assumption that 'stat_names' and 'stats' arrays are matched by array index: stats_names[i].name => stats[i].value

And the array index is same with id field of 'struct rte_vdpa_stat': stats[i].id == i

Parameters
devvDPA device pointer
qidqueue id
statsA pointer to a table of structure of type rte_vdpa_stat to be filled with device statistics ids and values.
nThe number of elements in stats array.
Returns
A negative value on error, otherwise the number of entries filled in the stats table.
Examples:
examples/vdpa/main.c.

◆ rte_vdpa_reset_stats()

int rte_vdpa_reset_stats ( struct rte_vdpa_device *  dev,
uint16_t  qid 
)

Reset statistics of a vDPA device.

Parameters
devvDPA device pointer
qidqueue id
Returns
0 on success, a negative value on error.