aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qemu-config.c13
-rw-r--r--qemu-config.h1
-rw-r--r--qemu-options.hx10
-rw-r--r--vl.c5
4 files changed, 29 insertions, 0 deletions
diff --git a/qemu-config.c b/qemu-config.c
index bafaea2bdb..cae92f78cf 100644
--- a/qemu-config.c
+++ b/qemu-config.c
@@ -152,6 +152,18 @@ QemuOptsList qemu_device_opts = {
},
};
+QemuOptsList qemu_netdev_opts = {
+ .name = "netdev",
+ .head = QTAILQ_HEAD_INITIALIZER(qemu_netdev_opts.head),
+ .desc = {
+ /*
+ * no elements => accept any params
+ * validation will happen later
+ */
+ { /* end of list */ }
+ },
+};
+
QemuOptsList qemu_net_opts = {
.name = "net",
.head = QTAILQ_HEAD_INITIALIZER(qemu_net_opts.head),
@@ -188,6 +200,7 @@ static QemuOptsList *lists[] = {
&qemu_drive_opts,
&qemu_chardev_opts,
&qemu_device_opts,
+ &qemu_netdev_opts,
&qemu_net_opts,
&qemu_rtc_opts,
NULL,
diff --git a/qemu-config.h b/qemu-config.h
index cdad5ac583..3cc88644e2 100644
--- a/qemu-config.h
+++ b/qemu-config.h
@@ -4,6 +4,7 @@
extern QemuOptsList qemu_drive_opts;
extern QemuOptsList qemu_chardev_opts;
extern QemuOptsList qemu_device_opts;
+extern QemuOptsList qemu_netdev_opts;
extern QemuOptsList qemu_net_opts;
extern QemuOptsList qemu_rtc_opts;
diff --git a/qemu-options.hx b/qemu-options.hx
index 3dd76b34bf..d4cac04aca 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -839,6 +839,16 @@ DEF("net", HAS_ARG, QEMU_OPTION_net,
" dump traffic on vlan 'n' to file 'f' (max n bytes per packet)\n"
"-net none use it alone to have zero network devices; if no -net option\n"
" is provided, the default is '-net nic -net user'\n")
+DEF("netdev", HAS_ARG, QEMU_OPTION_netdev,
+ "-netdev ["
+#ifdef CONFIG_SLIRP
+ "user|"
+#endif
+ "tap|"
+#ifdef CONFIG_VDE
+ "vde|"
+#endif
+ "socket],id=str[,option][,option][,...]\n")
STEXI
@item -net nic[,vlan=@var{n}][,macaddr=@var{mac}][,model=@var{type}][,name=@var{name}][,addr=@var{addr}][,vectors=@var{v}]
Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
diff --git a/vl.c b/vl.c
index a4f7edfbb4..534a63e821 100644
--- a/vl.c
+++ b/vl.c
@@ -5087,6 +5087,11 @@ int main(int argc, char **argv, char **envp)
fd_bootchk = 0;
break;
#endif
+ case QEMU_OPTION_netdev:
+ if (net_client_parse(&qemu_netdev_opts, optarg) == -1) {
+ exit(1);
+ }
+ break;
case QEMU_OPTION_net:
if (net_client_parse(&qemu_net_opts, optarg) == -1) {
exit(1);