qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 2/2] net: Dump client type 'info network'


From: Jan Kiszka
Subject: Re: [Qemu-devel] [PATCH v2 2/2] net: Dump client type 'info network'
Date: Mon, 23 May 2011 16:18:17 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

On 2011-05-23 15:14, Markus Armbruster wrote:
> Jan Kiszka <address@hidden> writes:
> 
>> On 2011-05-23 11:28, Markus Armbruster wrote:
>>> Jan Kiszka <address@hidden> 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 <address@hidden>
>>>> ---
>>>>
>>>> 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.

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux



reply via email to

[Prev in Thread] Current Thread [Next in Thread]