| rte_vhost.h(3) | Library Functions Manual | rte_vhost.h(3) |
rte_vhost.h
#include <stdbool.h>
#include <stdint.h>
#include <sys/eventfd.h>
#include <rte_compat.h>
#include <rte_memory.h>
#include <rte_mempool.h>
#include <linux/vhost.h>
#include <linux/virtio_ring.h>
#include <linux/virtio_net.h>
struct rte_vhost_mem_region
struct rte_vhost_memory
struct rte_vhost_user_extern_ops
struct rte_vhost_device_ops
struct rte_vhost_power_monitor_cond
struct rte_vhost_stat
struct rte_vhost_stat_name
#define VHOST_USER_PROTOCOL_F_MQ 0
#define VHOST_USER_F_PROTOCOL_FEATURES 30
#define RTE_VHOST_STATS_NAME_SIZE 64
typedef enum rte_vhost_msg_result(*
rte_vhost_msg_handle) (int vid, void *msg)
enum rte_vhost_msg_result
static __rte_always_inline uint64_t
rte_vhost_va_from_guest_pa (struct rte_vhost_memory *mem,
uint64_t gpa, uint64_t *len)
void rte_vhost_log_write (int vid, uint64_t addr, uint64_t len)
void rte_vhost_log_used_vring (int vid, uint16_t vring_idx, uint64_t
offset, uint64_t len)
__rte_experimental void rte_vhost_notify_guest (int vid, uint16_t
queue_id)
int rte_vhost_driver_register (const char *path, uint64_t flags)
int rte_vhost_driver_attach_vdpa_device (const char *path, struct
rte_vdpa_device *dev)
int rte_vhost_driver_detach_vdpa_device (const char *path)
struct rte_vdpa_device * rte_vhost_driver_get_vdpa_device (const char
*path)
int rte_vhost_driver_get_vdpa_dev_type (const char *path, uint32_t
*type)
int rte_vhost_driver_set_features (const char *path, uint64_t features)
int rte_vhost_driver_enable_features (const char *path, uint64_t
features)
int rte_vhost_driver_disable_features (const char *path, uint64_t
features)
int rte_vhost_driver_get_features (const char *path, uint64_t
*features)
int rte_vhost_driver_set_protocol_features (const char *path, uint64_t
protocol_features)
int rte_vhost_driver_get_protocol_features (const char *path, uint64_t
*protocol_features)
int rte_vhost_driver_get_queue_num (const char *path, uint32_t
*queue_num)
int rte_vhost_driver_set_max_queue_num (const char *path, uint32_t
max_queue_pairs)
int rte_vhost_get_negotiated_features (int vid, uint64_t *features)
int rte_vhost_get_negotiated_protocol_features (int vid, uint64_t
*protocol_features)
int rte_vhost_driver_start (const char *path)
int rte_vhost_get_mtu (int vid, uint16_t *mtu)
int rte_vhost_get_numa_node (int vid)
uint16_t rte_vhost_get_vring_num (int vid)
int rte_vhost_get_ifname (int vid, char *buf, size_t len)
uint16_t rte_vhost_avail_entries (int vid, uint16_t queue_id)
uint16_t rte_vhost_enqueue_burst (int vid, uint16_t queue_id, struct
rte_mbuf **pkts, uint16_t count)
uint16_t rte_vhost_dequeue_burst (int vid, uint16_t queue_id, struct
rte_mempool *mbuf_pool, struct rte_mbuf **pkts, uint16_t
count)
int rte_vhost_get_mem_table (int vid, struct rte_vhost_memory
**mem)
int rte_vhost_get_vhost_vring (int vid, uint16_t vring_idx, struct
rte_vhost_vring *vring)
int rte_vhost_get_vhost_ring_inflight (int vid, uint16_t vring_idx,
struct rte_vhost_ring_inflight *vring)
int rte_vhost_set_inflight_desc_split (int vid, uint16_t vring_idx,
uint16_t idx)
int rte_vhost_set_inflight_desc_packed (int vid, uint16_t vring_idx,
uint16_t head, uint16_t last, uint16_t *inflight_entry)
int rte_vhost_set_last_inflight_io_split (int vid, uint16_t vring_idx,
uint16_t idx)
int rte_vhost_set_last_inflight_io_packed (int vid, uint16_t vring_idx,
uint16_t head)
int rte_vhost_clr_inflight_desc_split (int vid, uint16_t vring_idx,
uint16_t last_used_idx, uint16_t idx)
int rte_vhost_clr_inflight_desc_packed (int vid, uint16_t vring_idx,
uint16_t head)
int rte_vhost_vring_call (int vid, uint16_t vring_idx)
int rte_vhost_vring_call_nonblock (int vid, uint16_t vring_idx)
uint32_t rte_vhost_rx_queue_count (int vid, uint16_t qid)
int rte_vhost_get_monitor_addr (int vid, uint16_t queue_id, struct
rte_vhost_power_monitor_cond *pmc)
int rte_vhost_get_log_base (int vid, uint64_t *log_base, uint64_t
*log_size)
int rte_vhost_get_vring_base (int vid, uint16_t queue_id, uint16_t
*last_avail_idx, uint16_t *last_used_idx)
int rte_vhost_get_vring_base_from_inflight (int vid, uint16_t queue_id,
uint16_t *last_avail_idx, uint16_t *last_used_idx)
int rte_vhost_set_vring_base (int vid, uint16_t queue_id, uint16_t
last_avail_idx, uint16_t last_used_idx)
int rte_vhost_extern_callback_register (int vid, struct
rte_vhost_user_extern_ops const *const ops, void *ctx)
struct rte_vdpa_device * rte_vhost_get_vdpa_device (int vid)
int rte_vhost_backend_config_change (int vid, bool need_reply)
int rte_vhost_vring_stats_get_names (int vid, uint16_t queue_id, struct
rte_vhost_stat_name *name, unsigned int size)
int rte_vhost_vring_stats_get (int vid, uint16_t queue_id, struct
rte_vhost_stat *stats, unsigned int n)
int rte_vhost_vring_stats_reset (int vid, uint16_t queue_id)
Interface to vhost-user
Definition in file rte_vhost.h.
Protocol features.
Definition at line 65 of file rte_vhost.h.
Indicate whether protocol features negotiation is supported.
Definition at line 118 of file rte_vhost.h.
Maximum name length for the statistics counters
Definition at line 337 of file rte_vhost.h.
Function prototype for the vhost backend to handle specific vhost user messages.
Parameters
Returns
Definition at line 1 of file rte_vhost.h.
Possible results of the vhost user message handling callbacks
Definition at line 237 of file rte_vhost.h.
Convert guest physical address to host virtual address
Parameters
Returns
Definition at line 375 of file rte_vhost.h.
Log the memory write start with given address.
This function only need be invoked when the live migration starts. Therefore, we won't need call it at all in the most of time. For making the performance impact be minimum, it's suggested to do a check before calling it:
if (unlikely(RTE_VHOST_NEED_LOG(features)))
rte_vhost_log_write(vid, addr, len);
Parameters
Log the used ring update start at given offset.
Same as rte_vhost_log_write, it's suggested to do a check before calling it:
if (unlikely(RTE_VHOST_NEED_LOG(features)))
rte_vhost_log_used_vring(vid, vring_idx, offset, len);
Parameters
Warning
Inject the offloaded interrupt into the vhost device's queue.
See also
Parameters
Register vhost driver. path could be different for multiple instance support.
Set the vdpa device id, enforce single connection per socket
Parameters
Returns
Unset the vdpa device id
Parameters
Returns
Get the device id
Parameters
Returns
Get the device type of the vdpa device.
Parameters
Returns
Set the feature bits the vhost-user driver supports.
Parameters
Returns
Enable vhost-user driver features.
Note that
Parameters
Returns
Disable vhost-user driver features.
The two notes at rte_vhost_driver_enable_features() also apply here.
Parameters
Returns
Get the feature bits before feature negotiation.
Parameters
Returns
Set the protocol feature bits before feature negotiation.
Parameters
Returns
Get the protocol feature bits before feature negotiation.
Parameters
Returns
Get the queue number bits before feature negotiation.
Parameters
Returns
Set the maximum number of queue pairs supported by the device. The value set is ignored for Vhost-user backends. It is only taken into account with VDUSE backends.
Parameters
Returns
Get the feature bits after negotiation
Parameters
Returns
Get the protocol feature bits after negotiation
Parameters
Returns
Start the vhost-user driver.
This function triggers the vhost-user negotiation.
Parameters
Returns
Get the MTU value of the device if set in QEMU.
Parameters
Returns
Get the numa node from which the virtio net device's memory is allocated.
Parameters
Returns
Get the number of vrings the device supports.
Parameters
Returns
Get the virtio net device's ifname, which is the vhost-user socket file path.
Parameters
Returns
Get how many avail entries are left in the queue
Parameters
Returns
This function adds buffers to the virtio devices RX virtqueue. Buffers can be received from the physical port or from another virtual device. A packet count is returned to indicate the number of packets that were successfully added to the RX queue.
Parameters
Returns
This function gets guest buffers from the virtio device TX virtqueue, construct host mbufs, copies guest buffer content to host mbufs and store them in pkts to be processed.
Parameters
Returns
Get guest mem table: a list of memory regions.
An rte_vhost_vhost_memory object will be allocated internally, to hold the guest memory regions. Application should free it at destroy_device() callback.
Parameters
Returns
Get guest vring info, including the vring address, vring size, etc.
Parameters
Returns
Get guest inflight vring info, including inflight ring and resubmit list.
Parameters
Returns
Set split inflight descriptor.
This function save descriptors that has been consumed in available ring
Parameters
Returns
Set packed inflight descriptor and get corresponding inflight entry
This function save descriptors that has been consumed
Parameters
Returns
Save the head of list that the last batch of used descriptors.
Parameters
Returns
Update the inflight free_head, used_idx and used_wrap_counter.
This function will update status first before updating descriptors to used
Parameters
Returns
Clear the split inflight status.
Parameters
Returns
Clear the packed inflight status.
Parameters
Returns
Notify the guest that used descriptors have been added to the vring. This function acts as a memory barrier.
Parameters
Returns
Notify the guest that used descriptors have been added to the vring. This function acts as a memory barrier. This function will return -EAGAIN when vq's access lock is held by other thread, user should try again later.
Parameters
Returns
Get vhost RX queue avail count.
Parameters
Returns
Get power monitor address of the vhost device
Parameters
Returns
Get log base and log size of the vhost device
Parameters
Returns
Get last_avail/used_idx of the vhost virtqueue
Parameters
Returns
Get last_avail/last_used of the vhost virtqueue
This function is designed for the reconnection and it's specific for the packed ring as we can get the two parameters from the inflight queueregion
Parameters
Returns
Set last_avail/used_idx of the vhost virtqueue
Parameters
Returns
Register external message handling callbacks
Parameters
Returns
Get vdpa device id for vhost device.
Parameters
Returns
Notify the guest that should get virtio configuration space from backend.
Parameters
Returns
Retrieve names of statistics of a Vhost virtqueue.
There is an assumption that 'stat_names' and 'stats' arrays are matched by array index: stats_names[i].name => stats[i].value
Parameters
Returns
Retrieve statistics of a Vhost virtqueue.
There is an assumption that 'stat_names' and 'stats' arrays are matched by array index: stats_names[i].name => stats[i].value
Parameters
Returns
Reset statistics of a Vhost virtqueue.
Parameters
Returns
Generated automatically by Doxygen for DPDK from the source code.
| Version 24.11.3 | DPDK |