So far, it is not possible to use the network dump interface with the "-netdev" option yet, it only works with the legacy "-net" option. To be able to use it with "-netdev", too, this patch now enables the "vlan" packet distribution for the "-netdev" option, too, so that you can now dump network packets like this:
qemu... -device e1000,netdev=myhub -netdev hubport,hubid=1,id=myhub \ -netdev user,id=n1,vlan=1,tftp=/tmp/tftp,bootfile=zImage \ -netdev dump,id=n2,vlan=1,file=/tmp/dump.dat Signed-off-by: Thomas Huth <th...@redhat.com> --- net/net.c | 3 +++ qapi-schema.json | 1 + 2 files changed, 4 insertions(+) [Note: I'm quite new to this area of the code, please review carefully whether this approach makes sense or whether it should be done differently] diff --git a/net/net.c b/net/net.c index 7427f6a..3595910 100644 --- a/net/net.c +++ b/net/net.c @@ -872,6 +872,7 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp) #ifdef CONFIG_L2TPV3 case NET_CLIENT_OPTIONS_KIND_L2TPV3: #endif + case NET_CLIENT_OPTIONS_KIND_DUMP: break; default: @@ -895,6 +896,8 @@ static int net_client_init1(const void *object, int is_netdev, Error **errp) (opts->kind != NET_CLIENT_OPTIONS_KIND_NIC || !opts->nic->has_netdev)) { peer = net_hub_add_port(u.net->has_vlan ? u.net->vlan : 0, NULL); + } else if (is_netdev && u.netdev->has_vlan) { + peer = net_hub_add_port(u.netdev->vlan, NULL); } if (net_client_init_fun[opts->kind](opts, name, peer) < 0) { diff --git a/qapi-schema.json b/qapi-schema.json index f97ffa1..adb0722 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -2512,6 +2512,7 @@ { 'struct': 'Netdev', 'data': { 'id': 'str', + '*vlan': 'int32', 'opts': 'NetClientOptions' } } ## -- 1.8.3.1