Message ID | 20210303095910.78277-1-lekiravi@yandex-team.ru (mailing list archive) |
---|---|
Headers | show |
Series | Introducing QMP query-netdev command | expand |
ping Patchew page: https://patchew.org/QEMU/20210303095910.78277-1-lekiravi@yandex-team.ru 03.03.2021, 13:01, "Alexey Kirillov" <lekiravi@yandex-team.ru>: > 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 QAPI structure 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 > } > ] > } > > v6->v7: > - Use macroses QAPI_LIST_PREPEND and QAPI_LIST_APPEND for lists. > - Reorder NetBackend entries in alphabetical order. > > v5->v6: > - Add QAPI visitor to generate info_str replacement directly from NetdevInfo. > - Make info_str dynamically allocated. > - Make commit messages more meaningful. > > v4->v5: > - Enable qtest of query-netdevs for AVR and RX archs. > - Bump "Since" version in QAPI to 6.0. > > 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 (5): > qapi: net: Add query-netdev command > tests: Add tests for query-netdev command > net: Move NetClientState.info_str to dynamic allocations > hmp: Use QAPI NetdevInfo in hmp_info_network > net: Do not fill legacy info_str for backends > > hw/net/xen_nic.c | 5 +- > include/net/net.h | 5 +- > include/qapi/hmp-output-visitor.h | 30 +++++ > net/l2tpv3.c | 8 +- > net/net.c | 73 +++++++++-- > net/netmap.c | 7 ++ > net/slirp.c | 124 ++++++++++++++++++- > net/socket.c | 92 ++++++++++---- > net/tap-win32.c | 10 +- > net/tap.c | 107 +++++++++++++++-- > net/vde.c | 25 +++- > net/vhost-user.c | 20 +++- > net/vhost-vdpa.c | 15 ++- > qapi/hmp-output-visitor.c | 193 ++++++++++++++++++++++++++++++ > qapi/meson.build | 1 + > qapi/net.json | 80 +++++++++++++ > tests/qtest/meson.build | 3 + > tests/qtest/test-query-netdev.c | 120 +++++++++++++++++++ > 18 files changed, 856 insertions(+), 62 deletions(-) > create mode 100644 include/qapi/hmp-output-visitor.h > create mode 100644 qapi/hmp-output-visitor.c > create mode 100644 tests/qtest/test-query-netdev.c > > -- > 2.25.1 -- Alexey Kirillov Yandex.Cloud
在 2021/3/12 下午6:29, Alexey Kirillov 写道: > ping > > Patchew page: https://patchew.org/QEMU/20210303095910.78277-1-lekiravi@yandex-team.ru Applied. Thanks > > 03.03.2021, 13:01, "Alexey Kirillov" <lekiravi@yandex-team.ru>: >> 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 QAPI structure 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 >> } >> ] >> } >> >> v6->v7: >> - Use macroses QAPI_LIST_PREPEND and QAPI_LIST_APPEND for lists. >> - Reorder NetBackend entries in alphabetical order. >> >> v5->v6: >> - Add QAPI visitor to generate info_str replacement directly from NetdevInfo. >> - Make info_str dynamically allocated. >> - Make commit messages more meaningful. >> >> v4->v5: >> - Enable qtest of query-netdevs for AVR and RX archs. >> - Bump "Since" version in QAPI to 6.0. >> >> 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 (5): >> qapi: net: Add query-netdev command >> tests: Add tests for query-netdev command >> net: Move NetClientState.info_str to dynamic allocations >> hmp: Use QAPI NetdevInfo in hmp_info_network >> net: Do not fill legacy info_str for backends >> >> hw/net/xen_nic.c | 5 +- >> include/net/net.h | 5 +- >> include/qapi/hmp-output-visitor.h | 30 +++++ >> net/l2tpv3.c | 8 +- >> net/net.c | 73 +++++++++-- >> net/netmap.c | 7 ++ >> net/slirp.c | 124 ++++++++++++++++++- >> net/socket.c | 92 ++++++++++---- >> net/tap-win32.c | 10 +- >> net/tap.c | 107 +++++++++++++++-- >> net/vde.c | 25 +++- >> net/vhost-user.c | 20 +++- >> net/vhost-vdpa.c | 15 ++- >> qapi/hmp-output-visitor.c | 193 ++++++++++++++++++++++++++++++ >> qapi/meson.build | 1 + >> qapi/net.json | 80 +++++++++++++ >> tests/qtest/meson.build | 3 + >> tests/qtest/test-query-netdev.c | 120 +++++++++++++++++++ >> 18 files changed, 856 insertions(+), 62 deletions(-) >> create mode 100644 include/qapi/hmp-output-visitor.h >> create mode 100644 qapi/hmp-output-visitor.c >> create mode 100644 tests/qtest/test-query-netdev.c >> >> -- >> 2.25.1 > > -- > Alexey Kirillov > Yandex.Cloud > >