[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 13/16] net: Make "info network" output more read
From: |
Laszlo Ersek |
Subject: |
Re: [Qemu-devel] [PATCH 13/16] net: Make "info network" output more readable info |
Date: |
Mon, 23 Jul 2012 23:54:47 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:10.0.6esrpre) Gecko/20120714 Thunderbird/10.0.6 |
On 07/20/12 14:01, Stefan Hajnoczi wrote:
> diff --git a/net.h b/net.h
> index 7e629d3..c819de4 100644
> --- a/net.h
> +++ b/net.h
> @@ -100,6 +100,7 @@ void qemu_check_nic_model(NICInfo *nd, const char *model);
> int qemu_find_nic_model(NICInfo *nd, const char * const *models,
> const char *default_model);
>
> +void print_net_client(Monitor *mon, NetClientState *vc);
> void do_info_network(Monitor *mon);
>
> /* NIC info */
The prototype should say "nc", not "vc".
> @@ -867,20 +867,24 @@ void do_info_network(Monitor *mon)
> NetClientState *nc, *peer;
> NetClientOptionsKind type;
>
> - monitor_printf(mon, "Devices not on any VLAN:\n");
> + net_hub_info(mon);
> +
> QTAILQ_FOREACH(nc, &net_clients, next) {
> peer = nc->peer;
> type = nc->info->type;
> +
> + if (net_hub_port_peer_nc(nc)) {
> + continue;
> + }
> +
OK, hub-port-peers are dealt with before the loop, so skip them in the
loop.
> +bool net_hub_port_peer_nc(NetClientState *nc)
> +{
> + NetHub *hub;
> + NetHubPort *port;
> +
> + QLIST_FOREACH(hub, &hubs, next) {
> + QLIST_FOREACH(port, &hub->ports, next) {
> + if (nc == port->nc.peer) {
> + return true;
> + }
> + }
> + }
> +
> + return false;
> +}
I think this function should
(a) be dropped, and do_info_network() should call
net_hub_id_for_client(nc, NULL) == 0
instead, just like assign_name() does starting with patch 2 ("net: Use
hubs for the vlan feature"). (BTW the comment in patch 2 shouldn't say
"on a vlan" any more, it should say "on a hub".) Or, this function
should
(b) stay, but call the updated net_hub_id_for_client(), or
(c) pick up the same update as net_hub_id_for_client().
> @@ -224,8 +243,8 @@ void net_hub_info(Monitor *mon)
> QLIST_FOREACH(hub, &hubs, next) {
> monitor_printf(mon, "hub %u\n", hub->id);
> QLIST_FOREACH(port, &hub->ports, next) {
> - monitor_printf(mon, " port %u peer %s\n", port->id,
> - port->nc.peer ? port->nc.peer->name : "<none>");
> + monitor_printf(mon, " \\ ");
> + print_net_client(mon, port->nc.peer);
> }
> }
Are we sure "port->nc.peer" can't be NULL any longer? print_net_client()
doesn't verify it.
Leastways net_hub_port_find() (called by set_vlan() from
"hw/qdev-properties.c") concerns itself with a NULL port-peer (although
set_vlan() might be restricted to a separate, prior "phase", for what I
know.)
Thanks,
Laszlo
- Re: [Qemu-devel] [PATCH 06/16] net: Convert qdev_prop_vlan to peer with hub, (continued)
- [Qemu-devel] [PATCH 11/16] net: Rename vc local variables to nc, Stefan Hajnoczi, 2012/07/20
- [Qemu-devel] [PATCH 16/16] hub: add the support for hub own flow control, Stefan Hajnoczi, 2012/07/20
- [Qemu-devel] [PATCH 02/16] net: Use hubs for the vlan feature, Stefan Hajnoczi, 2012/07/20
- [Qemu-devel] [PATCH 09/16] net: Rename non_vlan_clients to net_clients, Stefan Hajnoczi, 2012/07/20
- [Qemu-devel] [PATCH 13/16] net: Make "info network" output more readable info, Stefan Hajnoczi, 2012/07/20
- Re: [Qemu-devel] [PATCH 13/16] net: Make "info network" output more readable info,
Laszlo Ersek <=
- [Qemu-devel] [PATCH 12/16] net: Rename qemu_del_vlan_client() to qemu_del_net_client(), Stefan Hajnoczi, 2012/07/20
- [Qemu-devel] [PATCH 04/16] hub: Check that hubs are configured correctly, Stefan Hajnoczi, 2012/07/20
- [Qemu-devel] [PATCH 01/16] net: Add a hub net client, Stefan Hajnoczi, 2012/07/20