This patch series introduces a new QMP command "query-netdev" to get information about currently attached backend network devices (netdevs). Also, since the "info_str" field of "NetClientState" is now deprecated, we no longer use it for netdevs, only for NIC/hubports. The HMP command "info network" now also uses the new QMP command inside.
Usage example: -> { "execute": "query-netdev" } <- { "return": [ { "listen": "127.0.0.1:90", "type": "socket", "peer-id": "hub0port1", "id": "__org.qemu.net1" }, { "script": "/etc/qemu-ifup", "downscript": "/etc/qemu-ifdown", "ifname": "tap0", "type": "tap", "peer-id": "net5", "vnet_hdr": true, "id": "tap0" }, { "ipv6": true, "ipv4": true, "host": "10.0.2.2", "ipv6-dns": "fec0::3", "ipv6-prefix": "fec0::", "net": "10.0.2.0/255.255.255.0", "ipv6-host": "fec0::2", "type": "user", "peer-id": "net0", "dns": "10.0.2.3", "hostfwd": [ { "str": "tcp::20004-:22" } ], "ipv6-prefixlen": 64, "id": "netdev0", "restrict": false } ] } v3->v4: - Rename "query-netdevs" to "query-netdev". - Copy netdev drivers to new QAPI enum "NetBackend". v2->v3: - Remove NIC and hubports from query-netdevs. - Remove several fields from NetdevInfo since they are unnecessary. - Rename field @peer to @peer-id. - Add support of vhost-vdpa. - Keep "info_str" for NIC/hubports, but remove it for netdevs. v1->v2: - Rewrite HMP "info network" to get information from results of QMP command. - Remove obsolete field "info_str" from "NetClientState". Alexey Kirillov (4): qapi: net: Add query-netdev command tests: Add tests for query-netdev command hmp: Use QMP query-netdev in hmp_info_network net: Do not use legacy info_str for backends include/net/net.h | 4 +- net/clients.h | 1 + net/hub.c | 4 +- net/hub.h | 2 +- net/l2tpv3.c | 21 +++- net/net.c | 213 +++++++++++++++++++++++++++++++- net/netmap.c | 13 ++ net/slirp.c | 128 ++++++++++++++++++- net/socket.c | 91 ++++++++++---- net/tap-win32.c | 10 +- net/tap.c | 107 ++++++++++++++-- net/vde.c | 39 +++++- net/vhost-user.c | 20 ++- net/vhost-vdpa.c | 15 ++- qapi/net.json | 80 ++++++++++++ tests/qtest/meson.build | 3 + tests/qtest/test-query-netdev.c | 115 +++++++++++++++++ 17 files changed, 807 insertions(+), 59 deletions(-) create mode 100644 tests/qtest/test-query-netdev.c -- 2.25.1