From: "Dr. David Alan Gilbert" <dgilbert@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