* [Qemu-devel] [PULL 0/4] Net patches
@ 2018-05-14 7:55 Jason Wang
2018-05-14 7:55 ` [Qemu-devel] [PULL 1/4] net: Fix memory leak in net_param_nic() Jason Wang
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Jason Wang @ 2018-05-14 7:55 UTC (permalink / raw)
To: qemu-devel, peter.maydell; +Cc: Jason Wang
The following changes since commit c74e62ee3e2dc2955e07d004c71badecb68a84eb:
Merge remote-tracking branch 'remotes/rth/tags/cota-target-pull-request' into staging (2018-05-11 15:41:29 +0100)
are available in the git repository at:
https://github.com/jasowang/qemu.git tags/net-pull-request
for you to fetch changes up to 0e0266c2e475b82b39a757c875fa03e64272fbe7:
net: Get rid of 'vlan' terminology and use 'hub' instead in the doc files (2018-05-14 15:47:14 +0800)
----------------------------------------------------------------
----------------------------------------------------------------
Thomas Huth (4):
net: Fix memory leak in net_param_nic()
net: Remove the deprecated "vlan" parameter
net: Get rid of 'vlan' terminology and use 'hub' instead in the source files
net: Get rid of 'vlan' terminology and use 'hub' instead in the doc files
docs/qdev-device-use.txt | 3 --
hw/core/qdev-properties-system.c | 80 ----------------------------------------
include/hw/qdev-properties.h | 3 --
include/net/net.h | 1 -
net/hub.c | 7 ++--
net/net.c | 18 ++++-----
net/slirp.c | 8 ++--
net/tap.c | 4 +-
qapi/net.json | 15 ++++----
qemu-doc.texi | 51 ++++++++++++-------------
qemu-options.hx | 29 ++++++---------
11 files changed, 58 insertions(+), 161 deletions(-)
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] [PULL 1/4] net: Fix memory leak in net_param_nic()
2018-05-14 7:55 [Qemu-devel] [PULL 0/4] Net patches Jason Wang
@ 2018-05-14 7:55 ` Jason Wang
2018-05-14 7:55 ` [Qemu-devel] [PULL 2/4] net: Remove the deprecated "vlan" parameter Jason Wang
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Jason Wang @ 2018-05-14 7:55 UTC (permalink / raw)
To: qemu-devel, peter.maydell; +Cc: Thomas Huth, Jason Wang
From: Thomas Huth <thuth@redhat.com>
The early exits in case of errors leak the memory allocated for nd_id.
Fix it by using a "goto out" to the cleanup at the end of the function
instead.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
net/net.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/net.c b/net/net.c
index 29f8398..65457b7 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1502,11 +1502,12 @@ static int net_param_nic(void *dummy, QemuOpts *opts, Error **errp)
g_free(mac);
if (ret) {
error_setg(errp, "invalid syntax for ethernet address");
- return -1;
+ goto out;
}
if (is_multicast_ether_addr(ni->macaddr.a)) {
error_setg(errp, "NIC cannot have multicast MAC address");
- return -1;
+ ret = -1;
+ goto out;
}
}
qemu_macaddr_default_if_unset(&ni->macaddr);
@@ -1518,6 +1519,7 @@ static int net_param_nic(void *dummy, QemuOpts *opts, Error **errp)
nb_nics++;
}
+out:
g_free(nd_id);
return ret;
}
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PULL 2/4] net: Remove the deprecated "vlan" parameter
2018-05-14 7:55 [Qemu-devel] [PULL 0/4] Net patches Jason Wang
2018-05-14 7:55 ` [Qemu-devel] [PULL 1/4] net: Fix memory leak in net_param_nic() Jason Wang
@ 2018-05-14 7:55 ` Jason Wang
2018-05-15 15:10 ` Eric Blake
2018-05-14 7:55 ` [Qemu-devel] [PULL 3/4] net: Get rid of 'vlan' terminology and use 'hub' instead in the source files Jason Wang
` (2 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Jason Wang @ 2018-05-14 7:55 UTC (permalink / raw)
To: qemu-devel, peter.maydell; +Cc: Thomas Huth, Jason Wang
From: Thomas Huth <thuth@redhat.com>
It's been marked as deprecated since QEMU v2.9.0, so that should have
been enough time for everybody to either just drop unnecessary "vlan=0"
parameters, to switch to the modern -device + -netdev syntax for connecting
guest NICs with host network backends, or to switch to the "hubport" netdev
in case hubs are really wanted instead.
Buglink: https://bugs.launchpad.net/qemu/+bug/658904
Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
docs/qdev-device-use.txt | 3 --
hw/core/qdev-properties-system.c | 80 ----------------------------------------
include/hw/qdev-properties.h | 3 --
include/net/net.h | 1 -
net/net.c | 12 ++----
qapi/net.json | 15 ++++----
qemu-doc.texi | 9 -----
qemu-options.hx | 29 ++++++---------
8 files changed, 22 insertions(+), 130 deletions(-)
diff --git a/docs/qdev-device-use.txt b/docs/qdev-device-use.txt
index 8f188d1..98229b3 100644
--- a/docs/qdev-device-use.txt
+++ b/docs/qdev-device-use.txt
@@ -277,9 +277,6 @@ devices and ne2k_isa are.
Some PCI devices aren't available with -net nic, e.g. i82558a.
-To connect to a VLAN instead of an ordinary host part, replace
-netdev=NET-ID by vlan=VLAN.
-
=== Graphics Devices ===
Host and guest part of graphics devices have always been separate.
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 1d3ba72..8b22fb5 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -321,86 +321,6 @@ const PropertyInfo qdev_prop_netdev = {
.set = set_netdev,
};
-/* --- vlan --- */
-
-static int print_vlan(DeviceState *dev, Property *prop, char *dest, size_t len)
-{
- NetClientState **ptr = qdev_get_prop_ptr(dev, prop);
-
- if (*ptr) {
- int id;
- if (!net_hub_id_for_client(*ptr, &id)) {
- return snprintf(dest, len, "%d", id);
- }
- }
-
- return snprintf(dest, len, "<null>");
-}
-
-static void get_vlan(Object *obj, Visitor *v, const char *name, void *opaque,
- Error **errp)
-{
- DeviceState *dev = DEVICE(obj);
- Property *prop = opaque;
- NetClientState **ptr = qdev_get_prop_ptr(dev, prop);
- int32_t id = -1;
-
- if (*ptr) {
- int hub_id;
- if (!net_hub_id_for_client(*ptr, &hub_id)) {
- id = hub_id;
- }
- }
-
- visit_type_int32(v, name, &id, errp);
-}
-
-static void set_vlan(Object *obj, Visitor *v, const char *name, void *opaque,
- Error **errp)
-{
- DeviceState *dev = DEVICE(obj);
- Property *prop = opaque;
- NICPeers *peers_ptr = qdev_get_prop_ptr(dev, prop);
- NetClientState **ptr = &peers_ptr->ncs[0];
- Error *local_err = NULL;
- int32_t id;
- NetClientState *hubport;
-
- if (dev->realized) {
- qdev_prop_set_after_realize(dev, name, errp);
- return;
- }
-
- visit_type_int32(v, name, &id, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
- return;
- }
- if (id == -1) {
- *ptr = NULL;
- return;
- }
- if (*ptr) {
- error_set_from_qdev_prop_error(errp, -EINVAL, dev, prop, name);
- return;
- }
-
- hubport = net_hub_port_find(id);
- if (!hubport) {
- error_setg(errp, QERR_INVALID_PARAMETER_VALUE,
- name, prop->info->name);
- return;
- }
- *ptr = hubport;
-}
-
-const PropertyInfo qdev_prop_vlan = {
- .name = "int32",
- .description = "Integer VLAN id to connect to",
- .print = print_vlan,
- .get = get_vlan,
- .set = set_vlan,
-};
void qdev_prop_set_drive(DeviceState *dev, const char *name,
BlockBackend *value, Error **errp)
diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h
index b2ad8e9..4f60cc8 100644
--- a/include/hw/qdev-properties.h
+++ b/include/hw/qdev-properties.h
@@ -29,7 +29,6 @@ extern const PropertyInfo qdev_prop_bios_chs_trans;
extern const PropertyInfo qdev_prop_fdc_drive_type;
extern const PropertyInfo qdev_prop_drive;
extern const PropertyInfo qdev_prop_netdev;
-extern const PropertyInfo qdev_prop_vlan;
extern const PropertyInfo qdev_prop_pci_devfn;
extern const PropertyInfo qdev_prop_blocksize;
extern const PropertyInfo qdev_prop_pci_host_devaddr;
@@ -195,8 +194,6 @@ extern const PropertyInfo qdev_prop_off_auto_pcibar;
DEFINE_PROP(_n, _s, _f, qdev_prop_string, char*)
#define DEFINE_PROP_NETDEV(_n, _s, _f) \
DEFINE_PROP(_n, _s, _f, qdev_prop_netdev, NICPeers)
-#define DEFINE_PROP_VLAN(_n, _s, _f) \
- DEFINE_PROP(_n, _s, _f, qdev_prop_vlan, NICPeers)
#define DEFINE_PROP_DRIVE(_n, _s, _f) \
DEFINE_PROP(_n, _s, _f, qdev_prop_drive, BlockBackend *)
#define DEFINE_PROP_MACADDR(_n, _s, _f) \
diff --git a/include/net/net.h b/include/net/net.h
index 1f7341e..1425960 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -37,7 +37,6 @@ typedef struct NICConf {
#define DEFINE_NIC_PROPERTIES(_state, _conf) \
DEFINE_PROP_MACADDR("mac", _state, _conf.macaddr), \
- DEFINE_PROP_VLAN("vlan", _state, _conf.peers), \
DEFINE_PROP_NETDEV("netdev", _state, _conf.peers)
diff --git a/net/net.c b/net/net.c
index 65457b7..efb9eaf 100644
--- a/net/net.c
+++ b/net/net.c
@@ -965,7 +965,6 @@ static int net_client_init1(const void *object, bool is_netdev, Error **errp)
const Netdev *netdev;
const char *name;
NetClientState *peer = NULL;
- static bool vlan_warned;
if (is_netdev) {
netdev = object;
@@ -1036,15 +1035,10 @@ static int net_client_init1(const void *object, bool is_netdev, Error **errp)
return -1;
}
- /* Do not add to a vlan if it's a nic with a netdev= parameter. */
+ /* Do not add to a hub if it's a nic with a netdev= parameter. */
if (netdev->type != NET_CLIENT_DRIVER_NIC ||
!opts->u.nic.has_netdev) {
- peer = net_hub_add_port(net->has_vlan ? net->vlan : 0, NULL, NULL);
- }
-
- if (net->has_vlan && !vlan_warned) {
- error_report("'vlan' is deprecated. Please use 'netdev' instead.");
- vlan_warned = true;
+ peer = net_hub_add_port(0, NULL, NULL);
}
}
@@ -1365,7 +1359,7 @@ void qmp_set_link(const char *name, bool up, Error **errp)
* If the peer is a HUBPORT or a backend, we do not change the
* link status.
*
- * This behavior is compatible with qemu vlans where there could be
+ * This behavior is compatible with qemu hubs where there could be
* multiple clients that can still communicate with each other in
* disconnected mode. For now maintain this compatibility.
*/
diff --git a/qapi/net.json b/qapi/net.json
index 9117c56..b4fe4b6 100644
--- a/qapi/net.json
+++ b/qapi/net.json
@@ -209,7 +209,7 @@
##
# @NetdevTapOptions:
#
-# Connect the host TAP network interface name to the VLAN.
+# Used to configure a host TAP network interface backend.
#
# @ifname: interface name
#
@@ -267,8 +267,8 @@
##
# @NetdevSocketOptions:
#
-# Connect the VLAN to a remote VLAN in another QEMU virtual machine using a TCP
-# socket connection.
+# Socket netdevs are used to establish a network connection to another
+# QEMU virtual machine via a TCP socket.
#
# @fd: file descriptor of an already opened socket
#
@@ -296,7 +296,7 @@
##
# @NetdevL2TPv3Options:
#
-# Connect the VLAN to Ethernet over L2TPv3 Static tunnel
+# Configure an Ethernet over L2TPv3 tunnel.
#
# @src: source address
#
@@ -352,7 +352,7 @@
##
# @NetdevVdeOptions:
#
-# Connect the VLAN to a vde switch running on the host.
+# Connect to a vde switch running on the host.
#
# @sock: socket path
#
@@ -490,8 +490,6 @@
#
# Captures the configuration of a network device; legacy.
#
-# @vlan: vlan number
-#
# @id: identifier for monitor commands
#
# @name: identifier for monitor commands, ignored if @id is present
@@ -499,10 +497,11 @@
# @opts: device type specific properties (legacy)
#
# Since: 1.2
+#
+# 'vlan' - removed with 2.12
##
{ 'struct': 'NetLegacy',
'data': {
- '*vlan': 'int32',
'*id': 'str',
'*name': 'str',
'opts': 'NetLegacyOptions' } }
diff --git a/qemu-doc.texi b/qemu-doc.texi
index 0ed0f19..9216848 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -2855,15 +2855,6 @@ with ``-device ...,netdev=x''), or ``-nic user,smb=/some/dir''
(for embedded NICs). The new syntax allows different settings to be
provided per NIC.
-@subsection -net vlan (since 2.9.0)
-
-The ``-net vlan=NN'' argument was mostly used to attach separate
-network backends to different virtual NICs. This is the default
-behavior for ``-netdev'' and ``-nic''. You can connect multiple
-``-netdev'' and ``-nic'' devices to the same network using the
-"hubport" network backend, created with ``-netdev hubport,hubid=NN,...''
-and ``-nic hubport,hubid=NN''.
-
@subsection -drive cyls=...,heads=...,secs=...,trans=... (since 2.10.0)
The drive geometry arguments are replaced by the the geometry arguments
diff --git a/qemu-options.hx b/qemu-options.hx
index c611766..3588b04 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -2003,7 +2003,7 @@ DEF("netdev", HAS_ARG, QEMU_OPTION_netdev,
" configure a vhost-user network, backed by a chardev 'dev'\n"
#endif
"-netdev hubport,id=str,hubid=n[,netdev=nd]\n"
- " configure a hub port on QEMU VLAN 'n'\n", QEMU_ARCH_ALL)
+ " configure a hub port on the hub with ID 'n'\n", QEMU_ARCH_ALL)
DEF("nic", HAS_ARG, QEMU_OPTION_nic,
"--nic [tap|bridge|"
#ifdef CONFIG_SLIRP
@@ -2028,10 +2028,9 @@ DEF("nic", HAS_ARG, QEMU_OPTION_nic,
" provided a 'user' network connection)\n",
QEMU_ARCH_ALL)
DEF("net", HAS_ARG, QEMU_OPTION_net,
- "-net nic[,vlan=n][,netdev=nd][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]\n"
+ "-net nic[,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]\n"
" configure or create an on-board (or machine default) NIC and\n"
- " connect it either to VLAN 'n' or the netdev 'nd' (for pluggable\n"
- " NICs please use '-device devtype,netdev=nd' instead)\n"
+ " connect it to hub 0 (please use -nic unless you need a hub)\n"
"-net ["
#ifdef CONFIG_SLIRP
"user|"
@@ -2044,7 +2043,7 @@ DEF("net", HAS_ARG, QEMU_OPTION_net,
#ifdef CONFIG_NETMAP
"netmap|"
#endif
- "socket][,vlan=n][,option][,option][,...]\n"
+ "socket][,option][,option][,...]\n"
" old way to initialize a host network interface\n"
" (use the -netdev option if possible instead)\n", QEMU_ARCH_ALL)
STEXI
@@ -2462,17 +2461,14 @@ qemu -m 512 -object memory-backend-file,id=mem,size=512M,mem-path=/hugetlbfs,sha
Create a hub port on the emulated hub with ID @var{hubid}.
The hubport netdev lets you connect a NIC to a QEMU emulated hub instead of a
-single netdev. @code{-net} and @code{-device} with the parameter @option{vlan}
-(deprecated), or @code{-nic hubport} can also be used to connect a
-network device or a NIC to a hub. Alternatively, you can also connect the
-hubport to another netdev with ID @var{nd} by using the @option{netdev=@var{nd}}
-option.
+single netdev. Alternatively, you can also connect the hubport to another
+netdev with ID @var{nd} by using the @option{netdev=@var{nd}} option.
-@item -net nic[,vlan=@var{n}][,netdev=@var{nd}][,macaddr=@var{mac}][,model=@var{type}] [,name=@var{name}][,addr=@var{addr}][,vectors=@var{v}]
+@item -net nic[,netdev=@var{nd}][,macaddr=@var{mac}][,model=@var{type}] [,name=@var{name}][,addr=@var{addr}][,vectors=@var{v}]
@findex -net
Legacy option to configure or create an on-board (or machine default) Network
-Interface Card(NIC) and connect it either to the emulated hub port ("vlan")
-with number @var{n} (@var{n} = 0 is the default), or to the netdev @var{nd}.
+Interface Card(NIC) and connect it either to the emulated hub with ID 0 (i.e.
+the default hub), or to the netdev @var{nd}.
The NIC is an e1000 by default on the PC target. Optionally, the MAC address
can be changed to @var{mac}, the device address set to @var{addr} (PCI cards
only), and a @var{name} can be assigned for use in monitor commands.
@@ -2482,11 +2478,10 @@ that the card should have; this option currently only affects virtio cards; set
NIC is created. QEMU can emulate several different models of network card.
Use @code{-net nic,model=help} for a list of available devices for your target.
-@item -net user|tap|bridge|socket|l2tpv3|vde[,...][,vlan=@var{n}][,name=@var{name}]
+@item -net user|tap|bridge|socket|l2tpv3|vde[,...][,name=@var{name}]
Configure a host network backend (with the options corresponding to the same
-@option{-netdev} option) and connect it to the emulated hub ("vlan") with the
-number @var{n} (default is number 0). Use @var{name} to specify the name of the
-hub port.
+@option{-netdev} option) and connect it to the emulated hub 0 (the default
+hub). Use @var{name} to specify the name of the hub port.
ETEXI
STEXI
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PULL 3/4] net: Get rid of 'vlan' terminology and use 'hub' instead in the source files
2018-05-14 7:55 [Qemu-devel] [PULL 0/4] Net patches Jason Wang
2018-05-14 7:55 ` [Qemu-devel] [PULL 1/4] net: Fix memory leak in net_param_nic() Jason Wang
2018-05-14 7:55 ` [Qemu-devel] [PULL 2/4] net: Remove the deprecated "vlan" parameter Jason Wang
@ 2018-05-14 7:55 ` Jason Wang
2018-05-14 7:56 ` [Qemu-devel] [PULL 4/4] net: Get rid of 'vlan' terminology and use 'hub' instead in the doc files Jason Wang
2018-05-14 16:52 ` [Qemu-devel] [PULL 0/4] Net patches Peter Maydell
4 siblings, 0 replies; 8+ messages in thread
From: Jason Wang @ 2018-05-14 7:55 UTC (permalink / raw)
To: qemu-devel, peter.maydell; +Cc: Thomas Huth, Jason Wang
From: Thomas Huth <thuth@redhat.com>
'vlan' is very confusing since it does not mean something like IEEE
802.1Q, but rather emulated hubs, so let's switch to that terminology
instead.
Buglink: https://bugs.launchpad.net/qemu/+bug/658904
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
net/hub.c | 7 +++----
net/slirp.c | 8 ++++----
net/tap.c | 4 ++--
3 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/net/hub.c b/net/hub.c
index 5e84a9a..78b671e 100644
--- a/net/hub.c
+++ b/net/hub.c
@@ -23,8 +23,7 @@
/*
* A hub broadcasts incoming packets to all its ports except the source port.
- * Hubs can be used to provide independent network segments, also confusingly
- * named the QEMU 'vlan' feature.
+ * Hubs can be used to provide independent emulated network segments.
*/
typedef struct NetHub NetHub;
@@ -345,10 +344,10 @@ void net_hub_check_clients(void)
}
}
if (has_host_dev && !has_nic) {
- warn_report("vlan %d with no nics", hub->id);
+ warn_report("hub %d with no nics", hub->id);
}
if (has_nic && !has_host_dev) {
- warn_report("vlan %d is not connected to host network", hub->id);
+ warn_report("hub %d is not connected to host network", hub->id);
}
}
}
diff --git a/net/slirp.c b/net/slirp.c
index 8991816..6922524 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -415,7 +415,7 @@ static SlirpState *slirp_lookup(Monitor *mon, const char *hub_id,
if (hub_id) {
nc = net_hub_find_client_by_name(strtol(hub_id, NULL, 0), name);
if (!nc) {
- monitor_printf(mon, "unrecognized (vlan-id, stackname) pair\n");
+ monitor_printf(mon, "unrecognized (hub-id, stackname) pair\n");
return NULL;
}
} else {
@@ -870,9 +870,9 @@ void hmp_info_usernet(Monitor *mon, const QDict *qdict)
QTAILQ_FOREACH(s, &slirp_stacks, entry) {
int id;
- bool got_vlan_id = net_hub_id_for_client(&s->nc, &id) == 0;
- monitor_printf(mon, "VLAN %d (%s):\n",
- got_vlan_id ? id : -1,
+ bool got_hub_id = net_hub_id_for_client(&s->nc, &id) == 0;
+ monitor_printf(mon, "Hub %d (%s):\n",
+ got_hub_id ? id : -1,
s->nc.name);
slirp_connection_info(s->slirp, mon);
}
diff --git a/net/tap.c b/net/tap.c
index 2b3a36f..de05f20 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -766,10 +766,10 @@ int net_init_tap(const Netdev *netdev, const char *name,
queues = tap->has_queues ? tap->queues : 1;
vhostfdname = tap->has_vhostfd ? tap->vhostfd : NULL;
- /* QEMU vlans does not support multiqueue tap, in this case peer is set.
+ /* QEMU hubs do not support multiqueue tap, in this case peer is set.
* For -netdev, peer is always NULL. */
if (peer && (tap->has_queues || tap->has_fds || tap->has_vhostfds)) {
- error_setg(errp, "Multiqueue tap cannot be used with QEMU vlans");
+ error_setg(errp, "Multiqueue tap cannot be used with hubs");
return -1;
}
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PULL 4/4] net: Get rid of 'vlan' terminology and use 'hub' instead in the doc files
2018-05-14 7:55 [Qemu-devel] [PULL 0/4] Net patches Jason Wang
` (2 preceding siblings ...)
2018-05-14 7:55 ` [Qemu-devel] [PULL 3/4] net: Get rid of 'vlan' terminology and use 'hub' instead in the source files Jason Wang
@ 2018-05-14 7:56 ` Jason Wang
2018-05-14 16:52 ` [Qemu-devel] [PULL 0/4] Net patches Peter Maydell
4 siblings, 0 replies; 8+ messages in thread
From: Jason Wang @ 2018-05-14 7:56 UTC (permalink / raw)
To: qemu-devel, peter.maydell; +Cc: Thomas Huth, Jason Wang
From: Thomas Huth <thuth@redhat.com>
'vlan' is very confusing since it does not mean something like IEEE
802.1Q, but rather emulated hubs, so let's switch to that terminology
instead. While we're at it, move the subsection about hub a little bit
downward in the documentation (it's not as important anymore as it was
before the invention of the -netdev parameter), and extend it a little
bit.
Buglink: https://bugs.launchpad.net/qemu/+bug/658904
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
qemu-doc.texi | 42 +++++++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/qemu-doc.texi b/qemu-doc.texi
index 9216848..e2acac8 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -714,20 +714,12 @@ state is not saved or restored properly (in particular USB).
@node pcsys_network
@section Network emulation
-QEMU can simulate several network cards (PCI or ISA cards on the PC
-target) and can connect them to an arbitrary number of Virtual Local
-Area Networks (VLANs). Host TAP devices can be connected to any QEMU
-VLAN. VLAN can be connected between separate instances of QEMU to
-simulate large networks. For simpler usage, a non privileged user mode
-network stack can replace the TAP device to have a basic network
-connection.
-
-@subsection VLANs
-
-QEMU simulates several VLANs. A VLAN can be symbolised as a virtual
-connection between several network devices. These devices can be for
-example QEMU virtual Ethernet cards or virtual Host ethernet devices
-(TAP devices).
+QEMU can simulate several network cards (e.g. PCI or ISA cards on the PC
+target) and can connect them to a network backend on the host or an emulated
+hub. The various host network backends can either be used to connect the NIC of
+the guest to a real network (e.g. by using a TAP devices or the non-privileged
+user mode network stack), or to other guest instances running in another QEMU
+process (e.g. by using the socket host network backend).
@subsection Using TAP network interfaces
@@ -763,7 +755,7 @@ network). The virtual network configuration is the following:
@example
- QEMU VLAN <------> Firewall/DHCP server <-----> Internet
+ guest (10.0.2.15) <------> Firewall/DHCP server <-----> Internet
| (10.0.2.2)
|
----> DNS server (10.0.2.3)
@@ -798,11 +790,23 @@ When using the @option{'-netdev user,hostfwd=...'} option, TCP or UDP
connections can be redirected from the host to the guest. It allows for
example to redirect X11, telnet or SSH connections.
-@subsection Connecting VLANs between QEMU instances
+@subsection Hubs
+
+QEMU can simulate several hubs. A hub can be thought of as a virtual connection
+between several network devices. These devices can be for example QEMU virtual
+ethernet cards or virtual Host ethernet devices (TAP devices). You can connect
+guest NICs or host network backends to such a hub using the @option{-netdev
+hubport} or @option{-nic hubport} options. The legacy @option{-net} option
+also connects the given device to the emulated hub with ID 0 (i.e. the default
+hub) unless you specify a netdev with @option{-net nic,netdev=xxx} here.
+
+@subsection Connecting emulated networks between QEMU instances
-Using the @option{-net socket} option, it is possible to make VLANs
-that span several QEMU instances. See @ref{sec_invocation} to have a
-basic example.
+Using the @option{-netdev socket} (or @option{-nic socket} or
+@option{-net socket}) option, it is possible to create emulated
+networks that span several QEMU instances.
+See the description of the @option{-netdev socket} option in the
+@ref{sec_invocation,,Invocation chapter} to have a basic example.
@node pcsys_other_devs
@section Other Devices
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PULL 0/4] Net patches
2018-05-14 7:55 [Qemu-devel] [PULL 0/4] Net patches Jason Wang
` (3 preceding siblings ...)
2018-05-14 7:56 ` [Qemu-devel] [PULL 4/4] net: Get rid of 'vlan' terminology and use 'hub' instead in the doc files Jason Wang
@ 2018-05-14 16:52 ` Peter Maydell
4 siblings, 0 replies; 8+ messages in thread
From: Peter Maydell @ 2018-05-14 16:52 UTC (permalink / raw)
To: Jason Wang; +Cc: QEMU Developers
On 14 May 2018 at 08:55, Jason Wang <jasowang@redhat.com> wrote:
> The following changes since commit c74e62ee3e2dc2955e07d004c71badecb68a84eb:
>
> Merge remote-tracking branch 'remotes/rth/tags/cota-target-pull-request' into staging (2018-05-11 15:41:29 +0100)
>
> are available in the git repository at:
>
> https://github.com/jasowang/qemu.git tags/net-pull-request
>
> for you to fetch changes up to 0e0266c2e475b82b39a757c875fa03e64272fbe7:
>
> net: Get rid of 'vlan' terminology and use 'hub' instead in the doc files (2018-05-14 15:47:14 +0800)
>
> ----------------------------------------------------------------
>
> ----------------------------------------------------------------
> Thomas Huth (4):
> net: Fix memory leak in net_param_nic()
> net: Remove the deprecated "vlan" parameter
> net: Get rid of 'vlan' terminology and use 'hub' instead in the source files
> net: Get rid of 'vlan' terminology and use 'hub' instead in the doc files
>
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PULL 2/4] net: Remove the deprecated "vlan" parameter
2018-05-14 7:55 ` [Qemu-devel] [PULL 2/4] net: Remove the deprecated "vlan" parameter Jason Wang
@ 2018-05-15 15:10 ` Eric Blake
2018-05-15 15:48 ` Thomas Huth
0 siblings, 1 reply; 8+ messages in thread
From: Eric Blake @ 2018-05-15 15:10 UTC (permalink / raw)
To: Jason Wang, qemu-devel, peter.maydell; +Cc: Thomas Huth
On 05/14/2018 02:55 AM, Jason Wang wrote:
> From: Thomas Huth <thuth@redhat.com>
>
> It's been marked as deprecated since QEMU v2.9.0, so that should have
> been enough time for everybody to either just drop unnecessary "vlan=0"
> parameters, to switch to the modern -device + -netdev syntax for connecting
> guest NICs with host network backends, or to switch to the "hubport" netdev
> in case hubs are really wanted instead.
>
> Buglink: https://bugs.launchpad.net/qemu/+bug/658904
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
> @@ -499,10 +497,11 @@
> # @opts: device type specific properties (legacy)
> #
> # Since: 1.2
> +#
> +# 'vlan' - removed with 2.12
Shouldn't this be 2.13? Also, while the phrase 'removed with XXX'
already appears for NetClientDriver::dump, it sounds awkward; better
would be matching the way we document things for BlockDeviceInfo:
NetClientDriver
2.12: dropped 'dump'
...
NetLegacy
2.13: dropped 'vlan'
or the way we do it for QKeyCode:
NetClientDriver
dump: dropped in 2.12
...
NetLegacy
vlan: dropped in 2.13
As this is already in a pull request, and as NetClientDriver also needs
a cleanup, that can be a followup patch.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PULL 2/4] net: Remove the deprecated "vlan" parameter
2018-05-15 15:10 ` Eric Blake
@ 2018-05-15 15:48 ` Thomas Huth
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Huth @ 2018-05-15 15:48 UTC (permalink / raw)
To: Eric Blake, Jason Wang, qemu-devel, peter.maydell
On 15.05.2018 17:10, Eric Blake wrote:
> On 05/14/2018 02:55 AM, Jason Wang wrote:
>> From: Thomas Huth <thuth@redhat.com>
>>
>> It's been marked as deprecated since QEMU v2.9.0, so that should have
>> been enough time for everybody to either just drop unnecessary "vlan=0"
>> parameters, to switch to the modern -device + -netdev syntax for
>> connecting
>> guest NICs with host network backends, or to switch to the "hubport"
>> netdev
>> in case hubs are really wanted instead.
>>
>> Buglink: https://bugs.launchpad.net/qemu/+bug/658904
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
>> Signed-off-by: Jason Wang <jasowang@redhat.com>
>> ---
>
>> @@ -499,10 +497,11 @@
>> # @opts: device type specific properties (legacy)
>> #
>> # Since: 1.2
>> +#
>> +# 'vlan' - removed with 2.12
>
> Shouldn't this be 2.13?
Oh man, yes, of course. Stefan already found that while reviewing my
patches (v3), but apparently I forgot to update it in the final v4 :-(
Sorry for that.
> NetClientDriver
> 2.12: dropped 'dump'
> ...
> NetLegacy
> 2.13: dropped 'vlan'
>
> or the way we do it for QKeyCode:
>
> NetClientDriver
> dump: dropped in 2.12
> ...
> NetLegacy
> vlan: dropped in 2.13
I think I slightly prefer the latter variant.
> As this is already in a pull request, and as NetClientDriver also needs
> a cleanup, that can be a followup patch.
The pull request has already been merged. I'll send a followup patch...
Thomas
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-05-15 15:48 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-14 7:55 [Qemu-devel] [PULL 0/4] Net patches Jason Wang
2018-05-14 7:55 ` [Qemu-devel] [PULL 1/4] net: Fix memory leak in net_param_nic() Jason Wang
2018-05-14 7:55 ` [Qemu-devel] [PULL 2/4] net: Remove the deprecated "vlan" parameter Jason Wang
2018-05-15 15:10 ` Eric Blake
2018-05-15 15:48 ` Thomas Huth
2018-05-14 7:55 ` [Qemu-devel] [PULL 3/4] net: Get rid of 'vlan' terminology and use 'hub' instead in the source files Jason Wang
2018-05-14 7:56 ` [Qemu-devel] [PULL 4/4] net: Get rid of 'vlan' terminology and use 'hub' instead in the doc files Jason Wang
2018-05-14 16:52 ` [Qemu-devel] [PULL 0/4] Net patches Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).