mirror of
https://passt.top/passt
synced 2025-06-02 14:15:37 +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
21
conf.c
21
conf.c
|
@ -45,6 +45,7 @@
|
|||
#include "lineread.h"
|
||||
#include "isolation.h"
|
||||
#include "log.h"
|
||||
#include "vhost_user.h"
|
||||
|
||||
#define NETNS_RUN_DIR "/run/netns"
|
||||
|
||||
|
@ -769,9 +770,14 @@ static void usage(const char *name, FILE *f, int status)
|
|||
" default: same interface name as external one\n");
|
||||
} else {
|
||||
FPRINTF(f,
|
||||
" -s, --socket PATH UNIX domain socket path\n"
|
||||
" -s, --socket, --socket-path PATH UNIX domain socket path\n"
|
||||
" default: probe free path starting from "
|
||||
UNIX_SOCK_PATH "\n", 1);
|
||||
FPRINTF(f,
|
||||
" --vhost-user Enable vhost-user mode\n"
|
||||
" UNIX domain socket is provided by -s option\n"
|
||||
" --print-capabilities print back-end capabilities in JSON format,\n"
|
||||
" only meaningful for vhost-user mode\n");
|
||||
}
|
||||
|
||||
FPRINTF(f,
|
||||
|
@ -1305,6 +1311,10 @@ void conf(struct ctx *c, int argc, char **argv)
|
|||
{"map-guest-addr", required_argument, NULL, 22 },
|
||||
{"host-lo-to-ns-lo", no_argument, NULL, 23 },
|
||||
{"dns-host", required_argument, NULL, 24 },
|
||||
{"vhost-user", no_argument, NULL, 25 },
|
||||
/* vhost-user backend program convention */
|
||||
{"print-capabilities", no_argument, NULL, 26 },
|
||||
{"socket-path", required_argument, NULL, 's' },
|
||||
{ 0 },
|
||||
};
|
||||
const char *logname = (c->mode == MODE_PASTA) ? "pasta" : "passt";
|
||||
|
@ -1498,6 +1508,15 @@ void conf(struct ctx *c, int argc, char **argv)
|
|||
break;
|
||||
|
||||
die("Invalid host nameserver address: %s", optarg);
|
||||
case 25:
|
||||
if (c->mode == MODE_PASTA) {
|
||||
err("--vhost-user is for passt mode only");
|
||||
usage(argv[0], stdout, EXIT_SUCCESS);
|
||||
}
|
||||
c->mode = MODE_VU;
|
||||
break;
|
||||
case 26:
|
||||
vu_print_capabilities();
|
||||
break;
|
||||
case 'd':
|
||||
c->debug = 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue