diff options
author | Dr. David Alan Gilbert <dgilbert@redhat.com> | 2019-06-20 19:47:04 +0100 |
---|---|---|
committer | Jason Wang <jasowang@redhat.com> | 2019-07-02 10:21:06 +0800 |
commit | 944458b659fb348834cebbc15b9ad772be28f284 (patch) | |
tree | 30ac8aaa464221ba9d0ef11407388c0c643b7b09 /include/net | |
parent | 08528271152ee76cf860168b41109e2a661e6260 (diff) |
net/announce: Add optional ID
Previously there was a single instance of the timer used by
monitor triggered announces, that's OK, but when combined with the
previous change that lets you have announces for subsets of interfaces
it's a bit restrictive if you want to do different things to different
interfaces.
Add an 'id' field to the announce, and maintain a list of the
timers based on id.
This allows you to for example:
a) Start an announce going on interface eth0 for a long time
b) Start an announce going on interface eth1 for a long time
c) Kill the announce on eth0 while leaving eth1 going.
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/announce.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/net/announce.h b/include/net/announce.h index 773470428b..3d90c83c23 100644 --- a/include/net/announce.h +++ b/include/net/announce.h @@ -22,8 +22,12 @@ struct AnnounceTimer { /* Returns: update the timer to the next time point */ int64_t qemu_announce_timer_step(AnnounceTimer *timer); -/* Delete the underlying timer and other data */ -void qemu_announce_timer_del(AnnounceTimer *timer); +/* + * Delete the underlying timer and other data + * If 'free_named' true and the timer is a named timer, then remove + * it from the list of named timers and free the AnnounceTimer itself. + */ +void qemu_announce_timer_del(AnnounceTimer *timer, bool free_named); /* * Under BQL/main thread |