From: "Dr. David Alan Gilbert" <dgilb...@redhat.com> Hi, This is a reworking of a few sets of patches from 2017 that were put together by myself, Germano and Vlad that make the network announce system more flexible.
Firstly, it's parameterised, so that you can change the number of packets and the gap between them; the number can be set to 0 to disable announce completely. Secondly, you can force an announce by a qmp or hmp command at any time. This is useful if you need the guest to do an announce for a different reason; for example if the management layer has just juggled some bonding configuration around. The packet creation and timing also moves to net/ from migration/ The previous set was: https://lists.gnu.org/archive/html/qemu-devel/2017-05/msg05594.html Dave v4 Two minor fixes: a) Don't typedef AnnounceParameters; qapi was also doing this for us and causing a failure on clang b) Only run the test on x86 and Power; we can make it more selective in the future, but this stops it being run on things with no appropriate NIC. v3 Fixes from Markus's review: blank lines, and json tweaks v2 Fix the qmp example Typo fixes Dr. David Alan Gilbert (9): net: Introduce announce timer migration: Add announce parameters virtio-net: Switch to using announce timer migration: Switch to using announce timer net: Add a network device specific self-announcement ability virtio-net: Allow qemu_announce_self to trigger virtio announcements qmp: Add announce-self command hmp: Add hmp_announce_self tests: Add a test for qemu self announcements hmp-commands.hx | 14 ++++ hmp.c | 33 ++++++++ hmp.h | 1 + hw/net/trace-events | 6 ++ hw/net/virtio-net.c | 69 ++++++++++++---- include/hw/virtio/virtio-net.h | 4 +- include/migration/misc.h | 12 +-- include/net/announce.h | 41 ++++++++++ include/net/net.h | 2 + include/qemu/typedefs.h | 1 + include/sysemu/sysemu.h | 2 - migration/migration.c | 103 +++++++++++++++++++++++- migration/migration.h | 4 + migration/savevm.c | 72 +---------------- migration/trace-events | 1 - net/Makefile.objs | 1 + net/announce.c | 140 +++++++++++++++++++++++++++++++++ net/trace-events | 3 + qapi/migration.json | 53 ++++++++++++- qapi/net.json | 43 ++++++++++ tests/Makefile.include | 3 + tests/test-announce-self.c | 83 +++++++++++++++++++ tests/test-hmp.c | 1 + 23 files changed, 589 insertions(+), 103 deletions(-) create mode 100644 include/net/announce.h create mode 100644 net/announce.c create mode 100644 tests/test-announce-self.c -- 2.20.1