Message ID | 4DD2AAE5.1020408@siemens.com |
---|---|
State | New |
Headers | show |
On Tue, May 17, 2011 at 6:05 PM, Jan Kiszka <jan.kiszka@siemens.com> wrote: > Include the client type name into the output of 'info network'. The > result looks like this: > > (qemu) info network > VLAN 0 devices: > rtl8139.0 (NIC): model=rtl8139,macaddr=52:54:00:12:34:57 > Devices not on any VLAN: > virtio-net-pci.0 (NIC): model=virtio-net-pci,macaddr=52:54:00:12:34:56 > \ network1 (tap): fd=5 > > Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> > --- > net.c | 18 +++++++++++++++--- > 1 files changed, 15 insertions(+), 3 deletions(-) This is useful. Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Jan Kiszka <jan.kiszka@siemens.com> writes: > Include the client type name into the output of 'info network'. The > result looks like this: > > (qemu) info network > VLAN 0 devices: > rtl8139.0 (NIC): model=rtl8139,macaddr=52:54:00:12:34:57 > Devices not on any VLAN: > virtio-net-pci.0 (NIC): model=virtio-net-pci,macaddr=52:54:00:12:34:56 > \ network1 (tap): fd=5 I guess I'd prefix vc->infostr with type=WHATEVER, for consistency with the command line, like this: (qemu) info network VLAN 0 devices: rtl8139.0: type=nic,model=rtl8139,macaddr=52:54:00:12:34:57 Devices not on any VLAN: virtio-net-pci.0: type=nic,model=virtio-net-pci,macaddr=52:54:00:12:34:56 \ network1: type=tap,fd=5 > > Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> > --- > net.c | 18 +++++++++++++++--- > 1 files changed, 15 insertions(+), 3 deletions(-) > > diff --git a/net.c b/net.c > index 606ce70..a4ee6b1 100644 > --- a/net.c > +++ b/net.c > @@ -1223,6 +1223,15 @@ int do_netdev_del(Monitor *mon, const QDict *qdict, QObject **ret_data) > > void do_info_network(Monitor *mon) > { > + static const char *typename[] = { > + [NET_CLIENT_TYPE_NONE] = "none", > + [NET_CLIENT_TYPE_NIC] = "NIC", > + [NET_CLIENT_TYPE_SLIRP] = "user IPv4", > + [NET_CLIENT_TYPE_TAP] = "tap", > + [NET_CLIENT_TYPE_SOCKET] = "socket", > + [NET_CLIENT_TYPE_VDE] = "VDE", > + [NET_CLIENT_TYPE_DUMP] = "dump", > + }; Why not use the type names from net_client_types[]? Easier, and consistent with the command line. > VLANState *vlan; > VLANClientState *vc, *peer; > net_client_type type; > @@ -1231,7 +1240,8 @@ void do_info_network(Monitor *mon) > monitor_printf(mon, "VLAN %d devices:\n", vlan->id); > > QTAILQ_FOREACH(vc, &vlan->clients, next) { > - monitor_printf(mon, " %s: %s\n", vc->name, vc->info_str); > + monitor_printf(mon, " %s (%s): %s\n", vc->name, > + typename[vc->info->type], vc->info_str); > } > } > monitor_printf(mon, "Devices not on any VLAN:\n"); > @@ -1239,10 +1249,12 @@ void do_info_network(Monitor *mon) > peer = vc->peer; > type = vc->info->type; > if (!peer || type == NET_CLIENT_TYPE_NIC) { > - monitor_printf(mon, " %s: %s\n", vc->name, vc->info_str); > + monitor_printf(mon, " %s (%s): %s\n", vc->name, typename[type], > + vc->info_str); > } > if (peer && type == NET_CLIENT_TYPE_NIC) { > - monitor_printf(mon, " \\ %s: %s\n", peer->name, peer->info_str); > + monitor_printf(mon, " \\ %s (%s): %s\n", peer->name, > + typename[peer->info->type], peer->info_str); > } > } > }
On 2011-05-18 10:09, Markus Armbruster wrote: > Jan Kiszka <jan.kiszka@siemens.com> writes: > >> Include the client type name into the output of 'info network'. The >> result looks like this: >> >> (qemu) info network >> VLAN 0 devices: >> rtl8139.0 (NIC): model=rtl8139,macaddr=52:54:00:12:34:57 >> Devices not on any VLAN: >> virtio-net-pci.0 (NIC): model=virtio-net-pci,macaddr=52:54:00:12:34:56 >> \ network1 (tap): fd=5 > > I guess I'd prefix vc->infostr with type=WHATEVER, for consistency with > the command line, like this: > > (qemu) info network > VLAN 0 devices: > rtl8139.0: type=nic,model=rtl8139,macaddr=52:54:00:12:34:57 > Devices not on any VLAN: > virtio-net-pci.0: type=nic,model=virtio-net-pci,macaddr=52:54:00:12:34:56 > \ network1: type=tap,fd=5 That really only creates consistency for the 'user' client. Other clients put arbitrarily formatted strings into info_str. If it's still preferred that way, no big deal, just wanted to point it out. > >> >> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> >> --- >> net.c | 18 +++++++++++++++--- >> 1 files changed, 15 insertions(+), 3 deletions(-) >> >> diff --git a/net.c b/net.c >> index 606ce70..a4ee6b1 100644 >> --- a/net.c >> +++ b/net.c >> @@ -1223,6 +1223,15 @@ int do_netdev_del(Monitor *mon, const QDict *qdict, QObject **ret_data) >> >> void do_info_network(Monitor *mon) >> { >> + static const char *typename[] = { >> + [NET_CLIENT_TYPE_NONE] = "none", >> + [NET_CLIENT_TYPE_NIC] = "NIC", >> + [NET_CLIENT_TYPE_SLIRP] = "user IPv4", >> + [NET_CLIENT_TYPE_TAP] = "tap", >> + [NET_CLIENT_TYPE_SOCKET] = "socket", >> + [NET_CLIENT_TYPE_VDE] = "VDE", >> + [NET_CLIENT_TYPE_DUMP] = "dump", >> + }; > > Why not use the type names from net_client_types[]? Easier, and > consistent with the command line. Will do. Thanks, Jan
On 2011-05-20 18:02, Jan Kiszka wrote: > On 2011-05-18 10:09, Markus Armbruster wrote: >> Jan Kiszka <jan.kiszka@siemens.com> writes: >> >>> Include the client type name into the output of 'info network'. The >>> result looks like this: >>> >>> (qemu) info network >>> VLAN 0 devices: >>> rtl8139.0 (NIC): model=rtl8139,macaddr=52:54:00:12:34:57 >>> Devices not on any VLAN: >>> virtio-net-pci.0 (NIC): model=virtio-net-pci,macaddr=52:54:00:12:34:56 >>> \ network1 (tap): fd=5 >> >> I guess I'd prefix vc->infostr with type=WHATEVER, for consistency with >> the command line, like this: >> >> (qemu) info network >> VLAN 0 devices: >> rtl8139.0: type=nic,model=rtl8139,macaddr=52:54:00:12:34:57 >> Devices not on any VLAN: >> virtio-net-pci.0: type=nic,model=virtio-net-pci,macaddr=52:54:00:12:34:56 >> \ network1: type=tap,fd=5 > > That really only creates consistency for the 'user' client. Other > clients put arbitrarily formatted strings into info_str. If it's still > preferred that way, no big deal, just wanted to point it out. Umm, obviously nic and tap are formatting similar, just dump and (broken-again-by-someone) socket do not. So let's go for type=. Jan
diff --git a/net.c b/net.c index 606ce70..a4ee6b1 100644 --- a/net.c +++ b/net.c @@ -1223,6 +1223,15 @@ int do_netdev_del(Monitor *mon, const QDict *qdict, QObject **ret_data) void do_info_network(Monitor *mon) { + static const char *typename[] = { + [NET_CLIENT_TYPE_NONE] = "none", + [NET_CLIENT_TYPE_NIC] = "NIC", + [NET_CLIENT_TYPE_SLIRP] = "user IPv4", + [NET_CLIENT_TYPE_TAP] = "tap", + [NET_CLIENT_TYPE_SOCKET] = "socket", + [NET_CLIENT_TYPE_VDE] = "VDE", + [NET_CLIENT_TYPE_DUMP] = "dump", + }; VLANState *vlan; VLANClientState *vc, *peer; net_client_type type; @@ -1231,7 +1240,8 @@ void do_info_network(Monitor *mon) monitor_printf(mon, "VLAN %d devices:\n", vlan->id); QTAILQ_FOREACH(vc, &vlan->clients, next) { - monitor_printf(mon, " %s: %s\n", vc->name, vc->info_str); + monitor_printf(mon, " %s (%s): %s\n", vc->name, + typename[vc->info->type], vc->info_str); } } monitor_printf(mon, "Devices not on any VLAN:\n"); @@ -1239,10 +1249,12 @@ void do_info_network(Monitor *mon) peer = vc->peer; type = vc->info->type; if (!peer || type == NET_CLIENT_TYPE_NIC) { - monitor_printf(mon, " %s: %s\n", vc->name, vc->info_str); + monitor_printf(mon, " %s (%s): %s\n", vc->name, typename[type], + vc->info_str); } if (peer && type == NET_CLIENT_TYPE_NIC) { - monitor_printf(mon, " \\ %s: %s\n", peer->name, peer->info_str); + monitor_printf(mon, " \\ %s (%s): %s\n", peer->name, + typename[peer->info->type], peer->info_str); } } }
Include the client type name into the output of 'info network'. The result looks like this: (qemu) info network VLAN 0 devices: rtl8139.0 (NIC): model=rtl8139,macaddr=52:54:00:12:34:57 Devices not on any VLAN: virtio-net-pci.0 (NIC): model=virtio-net-pci,macaddr=52:54:00:12:34:56 \ network1 (tap): fd=5 Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> --- net.c | 18 +++++++++++++++--- 1 files changed, 15 insertions(+), 3 deletions(-)