qmp: Add announce-self command
Add a qmp command that can trigger guest announcements.
It uses its own announce-timer instance, and parameters
passed to it explicitly in the command.
Like most qmp commands, it's in the main thread/bql, so
there's no racing with any outstanding timer.
Based on work of Germano Veit Michel <germano@redhat.com> and
                 Vladislav Yasevich <vyasevic@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									b2c929f02b
								
							
						
					
					
						commit
						a06cd488d8
					
				| @ -12,6 +12,7 @@ | ||||
| #include "net/net.h" | ||||
| #include "qapi/clone-visitor.h" | ||||
| #include "qapi/qapi-visit-net.h" | ||||
| #include "qapi/qapi-commands-net.h" | ||||
| #include "trace.h" | ||||
| 
 | ||||
| int64_t qemu_announce_timer_step(AnnounceTimer *timer) | ||||
| @ -131,3 +132,9 @@ void qemu_announce_self(AnnounceTimer *timer, AnnounceParameters *params) | ||||
|         qemu_announce_timer_del(timer); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void qmp_announce_self(AnnounceParameters *params, Error **errp) | ||||
| { | ||||
|     static AnnounceTimer announce_timer; | ||||
|     qemu_announce_self(&announce_timer, params); | ||||
| } | ||||
|  | ||||
| @ -707,3 +707,23 @@ | ||||
|             'max': 'int', | ||||
|             'rounds': 'int', | ||||
|             'step': 'int' } } | ||||
| 
 | ||||
| ## | ||||
| # @announce-self: | ||||
| # | ||||
| # Trigger generation of broadcast RARP frames to update network switches. | ||||
| # This can be useful when network bonds fail-over the active slave. | ||||
| # | ||||
| # @params: AnnounceParameters giving timing and repetition count of announce | ||||
| # | ||||
| # Example: | ||||
| # | ||||
| # -> { "execute": "announce-self" | ||||
| #      "arguments": { | ||||
| #          "initial": 50, "max": 550, "rounds": 10, "step": 50 } } | ||||
| # <- { "return": {} } | ||||
| # | ||||
| # Since: 4.0 | ||||
| ## | ||||
| { 'command': 'announce-self', 'boxed': true, | ||||
|   'data' : 'AnnounceParameters'} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dr. David Alan Gilbert
						Dr. David Alan Gilbert