[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 2/2] net: introduce command to query mac-tabl
From: |
Amos Kong |
Subject: |
Re: [Qemu-devel] [PATCH v2 2/2] net: introduce command to query mac-table information |
Date: |
Tue, 21 May 2013 12:46:09 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, May 17, 2013 at 09:39:31AM +0200, Stefan Hajnoczi wrote:
> On Thu, May 16, 2013 at 07:07:25PM +0800, Amos Kong wrote:
Hi Stefan,
> > @@ -961,6 +961,44 @@ void print_net_client(Monitor *mon, NetClientState *nc)
> > nc->info_str);
> > }
> >
> > +MacTableInfoList *qmp_query_mac_table(bool has_name, const char *name,
> > + Error **errp)
> > +{
> > + NetClientState *nc;
> > + MacTableInfoList *table_list = NULL, *last_entry = NULL;
> > +
> > + QTAILQ_FOREACH(nc, &net_clients, next) {
> > + MacTableInfoList *entry;
> > + MacTableInfo *info;
> > +
> > + if (nc->info->type != NET_CLIENT_OPTIONS_KIND_NIC) {
> > + continue;
> > + }
> > + if (has_name && strcmp(nc->name, name) != 0) {
> > + continue;
> > + }
if (has_name && strcmp(nc->name, name) != 0) {
error_setg(errp, "invalid net client name: %s", name);
break;
}
> > +
> > + if (nc->info->query_mac_table) {
> > + info = nc->info->query_mac_table(nc);
> > + entry = g_malloc0(sizeof(*entry));
> > + entry->value = info;
> > +
> > + if (!table_list) {
> > + table_list = entry;
> > + } else {
> > + last_entry->next = entry;
> > + }
> > + last_entry = entry;
> > + }
} else if (has_name) {
error_setg(errp, "net client(%s) doesn't support mac-table
querying", name);
break;
}
> > + }
> > +
> > + if (table_list == NULL) {
> > + error_setg(errp, "invalid net client name: %s", name);
> > + }
if (table_list == NULL && !error_is_set(errp)) {
error_setg(errp, "no net client supports mac-table querying");
}
>
> Produces confusing errors:
>
> 1. If query-mac-table is used without a name argument and the guest has
> no NIC or no NICs support ->query_mac_table().
>
> 2. If the named NIC does not support ->query_mac_table().
Thanks, will fix it.
--
Amos.
- Re: [Qemu-devel] [PATCH v2 1/2] net: introduce MAC_TABLE_CHANGED event, (continued)
Re: [Qemu-devel] [PATCH v2 1/2] net: introduce MAC_TABLE_CHANGED event, Eric Blake, 2013/05/16
[Qemu-devel] [PATCH v2 2/2] net: introduce command to query mac-table information, Amos Kong, 2013/05/16
Re: [Qemu-devel] [PATCH v2 2/2] net: introduce command to query mac-table information, Jason Wang, 2013/05/29