mirror of
https://passt.top/passt
synced 2025-05-28 12:25:34 +02:00
vhost-user: add vhost-user
add virtio and vhost-user functions to connect with QEMU. $ ./passt --vhost-user and # qemu-system-x86_64 ... -m 4G \ -object memory-backend-memfd,id=memfd0,share=on,size=4G \ -numa node,memdev=memfd0 \ -chardev socket,id=chr0,path=/tmp/passt_1.socket \ -netdev vhost-user,id=netdev0,chardev=chr0 \ -device virtio-net,mac=9a:2b:2c:2d:2e:2f,netdev=netdev0 \ ... Signed-off-by: Laurent Vivier <lvivier@redhat.com>
This commit is contained in:
parent
007af94bb9
commit
92fe7e967a
24 changed files with 1412 additions and 54 deletions
7
passt.h
7
passt.h
|
@ -25,6 +25,7 @@ union epoll_ref;
|
|||
#include "fwd.h"
|
||||
#include "tcp.h"
|
||||
#include "udp.h"
|
||||
#include "vhost_user.h"
|
||||
|
||||
/* Default address for our end on the tap interface. Bit 0 of byte 0 must be 0
|
||||
* (unicast) and bit 1 of byte 1 must be 1 (locally administered). Otherwise
|
||||
|
@ -43,6 +44,7 @@ union epoll_ref;
|
|||
* @icmp: ICMP-specific reference part
|
||||
* @data: Data handled by protocol handlers
|
||||
* @nsdir_fd: netns dirfd for fallback timer checking if namespace is gone
|
||||
* @queue: vhost-user queue index for this fd
|
||||
* @u64: Opaque reference for epoll_ctl() and epoll_wait()
|
||||
*/
|
||||
union epoll_ref {
|
||||
|
@ -58,6 +60,7 @@ union epoll_ref {
|
|||
union udp_listen_epoll_ref udp;
|
||||
uint32_t data;
|
||||
int nsdir_fd;
|
||||
int queue;
|
||||
};
|
||||
};
|
||||
uint64_t u64;
|
||||
|
@ -94,6 +97,7 @@ struct fqdn {
|
|||
enum passt_modes {
|
||||
MODE_PASST,
|
||||
MODE_PASTA,
|
||||
MODE_VU,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -229,6 +233,7 @@ struct ip6_ctx {
|
|||
* @freebind: Allow binding of non-local addresses for forwarding
|
||||
* @low_wmem: Low probed net.core.wmem_max
|
||||
* @low_rmem: Low probed net.core.rmem_max
|
||||
* @vdev: vhost-user device
|
||||
*/
|
||||
struct ctx {
|
||||
enum passt_modes mode;
|
||||
|
@ -291,6 +296,8 @@ struct ctx {
|
|||
|
||||
int low_wmem;
|
||||
int low_rmem;
|
||||
|
||||
struct vu_dev *vdev;
|
||||
};
|
||||
|
||||
void proto_update_l2_buf(const unsigned char *eth_d,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue