#include <stdint.h>
#include <linux/vhost.h>
#include <linux/virtio_ring.h>
#include <linux/virtio_net.h>
#include <sys/eventfd.h>
#include <sys/socket.h>
#include <linux/if.h>
#include <rte_memory.h>
#include <rte_mempool.h>
#include <rte_ether.h>
Go to the source code of this file.
Functions |
int | rte_vhost_feature_disable (uint64_t feature_mask) |
int | rte_vhost_feature_enable (uint64_t feature_mask) |
int | rte_vhost_driver_register (const char *path, uint64_t flags) |
int | rte_vhost_get_numa_node (int vid) |
uint32_t | rte_vhost_get_queue_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) |
Detailed Description
Interface to vhost net
Definition in file rte_virtio_net.h.
Function Documentation
int rte_vhost_feature_disable |
( |
uint64_t |
feature_mask | ) |
|
int rte_vhost_feature_enable |
( |
uint64_t |
feature_mask | ) |
|
int rte_vhost_driver_register |
( |
const char * |
path, |
|
|
uint64_t |
flags |
|
) |
| |
int rte_vhost_get_numa_node |
( |
int |
vid | ) |
|
Get the numa node from which the virtio net device's memory is allocated.
- Parameters
-
- Returns
- The numa node, -1 on failure
uint32_t rte_vhost_get_queue_num |
( |
int |
vid | ) |
|
Get the number of queues the device supports.
- Parameters
-
- Returns
- The number of queues, 0 on failure
int rte_vhost_get_ifname |
( |
int |
vid, |
|
|
char * |
buf, |
|
|
size_t |
len |
|
) |
| |
Get the virtio net device's ifname, which is the vhost-user socket file path.
- Parameters
-
vid | virtio-net device ID |
buf | The buffer to stored the queried ifname |
len | The length of buf |
- Returns
- 0 on success, -1 on failure
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 |
|
) |
| |
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 succesfully added to the RX queue.
- Parameters
-
vid | virtio-net device ID |
queue_id | virtio queue index in mq case |
pkts | array to contain packets to be enqueued |
count | packets num to be enqueued |
- Returns
- num of packets enqueued
- Examples:
- examples/tep_termination/vxlan_setup.c, and examples/vhost/main.c.
uint16_t rte_vhost_dequeue_burst |
( |
int |
vid, |
|
|
uint16_t |
queue_id, |
|
|
struct rte_mempool * |
mbuf_pool, |
|
|
struct rte_mbuf ** |
pkts, |
|
|
uint16_t |
count |
|
) |
| |
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
-
vid | virtio-net device |
queue_id | virtio queue index in mq case |
mbuf_pool | mbuf_pool where host mbuf is allocated. |
pkts | array to contain packets to be dequeued |
count | packets num to be dequeued |
- Returns
- num of packets dequeued
- Examples:
- examples/tep_termination/main.c, and examples/vhost/main.c.