* [Qemu-devel] [PATCH 2/2] net: Dump client type 'info network'
@ 2011-05-17 17:05 Jan Kiszka
2011-05-18 7:35 ` Stefan Hajnoczi
2011-05-18 8:09 ` Markus Armbruster
0 siblings, 2 replies; 12+ messages in thread
From: Jan Kiszka @ 2011-05-17 17:05 UTC (permalink / raw)
To: qemu-devel
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(-)
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);
}
}
}
--
1.7.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] net: Dump client type 'info network'
2011-05-17 17:05 [Qemu-devel] [PATCH 2/2] net: Dump client type 'info network' Jan Kiszka
@ 2011-05-18 7:35 ` Stefan Hajnoczi
2011-05-18 8:09 ` Markus Armbruster
1 sibling, 0 replies; 12+ messages in thread
From: Stefan Hajnoczi @ 2011-05-18 7:35 UTC (permalink / raw)
To: Jan Kiszka; +Cc: qemu-devel
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>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] net: Dump client type 'info network'
2011-05-17 17:05 [Qemu-devel] [PATCH 2/2] net: Dump client type 'info network' Jan Kiszka
2011-05-18 7:35 ` Stefan Hajnoczi
@ 2011-05-18 8:09 ` Markus Armbruster
2011-05-20 16:02 ` Jan Kiszka
1 sibling, 1 reply; 12+ messages in thread
From: Markus Armbruster @ 2011-05-18 8:09 UTC (permalink / raw)
To: Jan Kiszka; +Cc: qemu-devel
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);
> }
> }
> }
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] net: Dump client type 'info network'
2011-05-18 8:09 ` Markus Armbruster
@ 2011-05-20 16:02 ` Jan Kiszka
2011-05-20 16:12 ` Jan Kiszka
0 siblings, 1 reply; 12+ messages in thread
From: Jan Kiszka @ 2011-05-20 16:02 UTC (permalink / raw)
To: Markus Armbruster; +Cc: qemu-devel
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
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] net: Dump client type 'info network'
2011-05-20 16:02 ` Jan Kiszka
@ 2011-05-20 16:12 ` Jan Kiszka
2011-05-20 16:19 ` [Qemu-devel] [PATCH v2 " Jan Kiszka
0 siblings, 1 reply; 12+ messages in thread
From: Jan Kiszka @ 2011-05-20 16:12 UTC (permalink / raw)
To: Markus Armbruster; +Cc: qemu-devel
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
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 2/2] net: Dump client type 'info network'
2011-05-20 16:12 ` Jan Kiszka
@ 2011-05-20 16:19 ` Jan Kiszka
2011-05-23 9:28 ` Markus Armbruster
0 siblings, 1 reply; 12+ messages in thread
From: Jan Kiszka @ 2011-05-20 16:19 UTC (permalink / raw)
To: Markus Armbruster, qemu-devel
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.kiszka@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);
+}
+
void do_info_network(Monitor *mon)
{
VLANState *vlan;
@@ -1231,7 +1247,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, " ");
+ print_net_client(mon, vc);
}
}
monitor_printf(mon, "Devices not on any VLAN:\n");
@@ -1239,10 +1256,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, " ");
+ print_net_client(mon, vc);
}
if (peer && type == NET_CLIENT_TYPE_NIC) {
- monitor_printf(mon, " \\ %s: %s\n", peer->name, peer->info_str);
+ monitor_printf(mon, " \\ ");
+ print_net_client(mon, peer);
}
}
}
--
1.7.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] net: Dump client type 'info network'
2011-05-20 16:19 ` [Qemu-devel] [PATCH v2 " Jan Kiszka
@ 2011-05-23 9:28 ` Markus Armbruster
2011-05-23 9:32 ` Jan Kiszka
0 siblings, 1 reply; 12+ messages in thread
From: Markus Armbruster @ 2011-05-23 9:28 UTC (permalink / raw)
To: Jan Kiszka; +Cc: qemu-devel
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: 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>
> ---
>
> 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?
[...]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] net: Dump client type 'info network'
2011-05-23 9:28 ` Markus Armbruster
@ 2011-05-23 9:32 ` Jan Kiszka
2011-05-23 13:14 ` Markus Armbruster
0 siblings, 1 reply; 12+ messages in thread
From: Jan Kiszka @ 2011-05-23 9:32 UTC (permalink / raw)
To: Markus Armbruster; +Cc: qemu-devel
On 2011-05-23 11:28, 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: 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>
>> ---
>>
>> 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?
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] net: Dump client type 'info network'
2011-05-23 9:32 ` Jan Kiszka
@ 2011-05-23 13:14 ` Markus Armbruster
2011-05-23 14:18 ` Jan Kiszka
0 siblings, 1 reply; 12+ messages in thread
From: Markus Armbruster @ 2011-05-23 13:14 UTC (permalink / raw)
To: Jan Kiszka; +Cc: qemu-devel
Jan Kiszka <jan.kiszka@siemens.com> writes:
> On 2011-05-23 11:28, 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: 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>
>>> ---
>>>
>>> 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.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] net: Dump client type 'info network'
2011-05-23 13:14 ` Markus Armbruster
@ 2011-05-23 14:18 ` Jan Kiszka
2011-05-23 15:11 ` Markus Armbruster
0 siblings, 1 reply; 12+ messages in thread
From: Jan Kiszka @ 2011-05-23 14:18 UTC (permalink / raw)
To: Markus Armbruster; +Cc: qemu-devel
On 2011-05-23 15:14, Markus Armbruster wrote:
> Jan Kiszka <jan.kiszka@siemens.com> writes:
>
>> On 2011-05-23 11:28, 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: 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>
>>>> ---
>>>>
>>>> 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
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] net: Dump client type 'info network'
2011-05-23 14:18 ` Jan Kiszka
@ 2011-05-23 15:11 ` Markus Armbruster
2011-05-23 16:23 ` Jan Kiszka
0 siblings, 1 reply; 12+ messages in thread
From: Markus Armbruster @ 2011-05-23 15:11 UTC (permalink / raw)
To: Jan Kiszka; +Cc: qemu-devel
Jan Kiszka <jan.kiszka@siemens.com> writes:
> On 2011-05-23 15:14, Markus Armbruster wrote:
>> Jan Kiszka <jan.kiszka@siemens.com> writes:
>>
>>> On 2011-05-23 11:28, 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: 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>
>>>>> ---
>>>>>
>>>>> 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.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] net: Dump client type 'info network'
2011-05-23 15:11 ` Markus Armbruster
@ 2011-05-23 16:23 ` Jan Kiszka
0 siblings, 0 replies; 12+ messages in thread
From: Jan Kiszka @ 2011-05-23 16:23 UTC (permalink / raw)
To: Markus Armbruster; +Cc: qemu-devel
On 2011-05-23 17:11, Markus Armbruster wrote:
>> 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.
OK, I give up :). Will resend the whole thing with refactored
net_client_types to use them for output as well.
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-05-23 16:23 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-17 17:05 [Qemu-devel] [PATCH 2/2] net: Dump client type 'info network' Jan Kiszka
2011-05-18 7:35 ` Stefan Hajnoczi
2011-05-18 8:09 ` Markus Armbruster
2011-05-20 16:02 ` Jan Kiszka
2011-05-20 16:12 ` Jan Kiszka
2011-05-20 16:19 ` [Qemu-devel] [PATCH v2 " Jan Kiszka
2011-05-23 9:28 ` Markus Armbruster
2011-05-23 9:32 ` Jan Kiszka
2011-05-23 13:14 ` Markus Armbruster
2011-05-23 14:18 ` Jan Kiszka
2011-05-23 15:11 ` Markus Armbruster
2011-05-23 16:23 ` Jan Kiszka
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.