Jan Kiszka <jan.kis...@siemens.com> writes: > On 2011-05-23 15:14, Markus Armbruster wrote: >> Jan Kiszka <jan.kis...@siemens.com> writes: >> >>> On 2011-05-23 11:28, Markus Armbruster wrote: >>>> Jan Kiszka <jan.kis...@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: 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.kis...@siemens.com> >>>>> --- >>>>> >>>>> Changes in v2: >>>>> - format type as "type=name" >>>>> - use standard type names >>>>> - factor out print_net_client >>>>> >>>>> net.c | 25 ++++++++++++++++++++++--- >>>>> 1 files changed, 22 insertions(+), 3 deletions(-) >>>>> >>>>> diff --git a/net.c b/net.c >>>>> index 606ce70..6d06eb7 100644 >>>>> --- a/net.c >>>>> +++ b/net.c >>>>> @@ -1221,6 +1221,22 @@ int do_netdev_del(Monitor *mon, const QDict >>>>> *qdict, QObject **ret_data) >>>>> return 0; >>>>> } >>>>> >>>>> +static void print_net_client(Monitor *mon, VLANClientState *vc) >>>>> +{ >>>>> + static const char *typename[] = { >>>>> + [NET_CLIENT_TYPE_NONE] = "none", >>>>> + [NET_CLIENT_TYPE_NIC] = "nic", >>>>> + [NET_CLIENT_TYPE_SLIRP] = "user", >>>>> + [NET_CLIENT_TYPE_TAP] = "tap", >>>>> + [NET_CLIENT_TYPE_SOCKET] = "socket", >>>>> + [NET_CLIENT_TYPE_VDE] = "vde", >>>>> + [NET_CLIENT_TYPE_DUMP] = "dump", >>>>> + }; >>>>> + >>>>> + monitor_printf(mon, "%s: type=%s,%s\n", vc->name, >>>>> + typename[vc->info->type], vc->info_str); >>>>> +} >>>> >>>> Any particular reason for using typename[vc->info->type] instead of >>>> net_client[types[vc->info->type].type? >>> >>> Uncertainty about the sorting of that array. Is it supposed to be >>> aligned to NET_CLIENT_TYPE_* definitions? >> >> Hmm, you're right: it happens to be in order, but it's not explicit, so >> you can't rely on it. I'd be tempted to make the order explicit, but >> it's your call. > > Checked again: net_client is terminated by a NULL entry. If we put > certain entries on fixed slots, that would created premature list > termination if some features is missing (e.g. VDE is configured out). So > we actually need a separate name array.
Fixable; there's just one user. But again: it's your call.