On Fri, 03 Jul 2015 13:28:45 +0200 Markus Armbruster <arm...@redhat.com> wrote:
> Thomas Huth <th...@redhat.com> writes: > > > So far it is not possible to dump network traffic with the "-netdev" > > option yet - this is only possible with the "-net" option and an > > internal "hub". > > This patch now fixes this ugliness by adding a proper, generic > > dumpfile parameter to the "-netdev" option. > > > > Signed-off-by: Thomas Huth <th...@redhat.com> > > --- > > include/net/net.h | 1 + > > net/net.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ > > qapi-schema.json | 12 ++++++++++-- > > 3 files changed, 59 insertions(+), 2 deletions(-) > > > > diff --git a/include/net/net.h b/include/net/net.h > > index b265047..62abc98 100644 > > --- a/include/net/net.h > > +++ b/include/net/net.h ... > > @@ -877,6 +889,36 @@ static int net_init_nic(const NetClientOptions *opts, > > const char *name, > > return idx; > > } > > > > +static int netdev_init_dumpfile(const Netdev *netdev, const char *name, > > + Error **errp) > > +{ > > + NetClientState *nc; > > + int dumplen = 65536; > > + int rc; > > + > > + if (netdev->opts->kind == NET_CLIENT_OPTIONS_KIND_TAP > > + && netdev->opts->tap->has_vhost && netdev->opts->tap->vhost) { > > + error_setg(errp, "dumping does not work with vhost enabled"); > > + return -1; > > + } > > + > > + if (netdev->has_dumplen) { > > + dumplen = netdev->dumplen; > > I keep reading "dumpling" for some reason... %-) Were you hungry while reading the patch? :-) > > + } > > + > > + nc = qemu_find_netdev(name); > > + if (!nc) { > > + error_setg(errp, "failed to lookup netdev for dump"); > > + return -1; > > Can this happen? > > Hmm, see below. ... > net_client_init_fun() creates a netdev with this name. Since it doesn't > return it, we have to look it up with qemu_find_netdev(). So the answer > to "can this happen?" appears to be no. assert(!rc)? I agree, an assert() should be enough here! Thomas