aboutsummaryrefslogtreecommitdiff
path: root/qapi
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2019-03-05 09:33:20 +0000
committerPeter Maydell <peter.maydell@linaro.org>2019-03-05 09:33:20 +0000
commit0984a157c1c053394adbf64ed7de97f1aebe6a2d (patch)
tree8c750c38d4bd328a10e3965e7cb39d27cfc6b8b8 /qapi
parentb6179aaff961627fcb59d7b234297966b81ac726 (diff)
parent4b9b70000218640a42c3ea908a12665e5840b6cd (diff)
downloadqemu-0984a157c1c053394adbf64ed7de97f1aebe6a2d.zip
qemu-0984a157c1c053394adbf64ed7de97f1aebe6a2d.tar.gz
qemu-0984a157c1c053394adbf64ed7de97f1aebe6a2d.tar.bz2
Merge remote-tracking branch 'remotes/jasowang/tags/net-pull-request' into staging
# gpg: Signature made Tue 05 Mar 2019 07:06:28 GMT # gpg: using RSA key EF04965B398D6211 # gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211 * remotes/jasowang/tags/net-pull-request: tests: Add a test for qemu self announcements hmp: Add hmp_announce_self qmp: Add announce-self command virtio-net: Allow qemu_announce_self to trigger virtio announcements net: Add a network device specific self-announcement ability migration: Switch to using announce timer virtio-net: Switch to using announce timer migration: Add announce parameters net: Introduce announce timer net: netmap: improve netmap_receive_iov() net: netmap: simplify netmap_receive() net: netmap: small improvements netmap_send() net/colo-compare.c: Remove duplicated code Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qapi')
-rw-r--r--qapi/migration.json53
-rw-r--r--qapi/net.json43
2 files changed, 93 insertions, 3 deletions
diff --git a/qapi/migration.json b/qapi/migration.json
index 7a795ec..1fd7bbe 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -480,6 +480,18 @@
#
# Migration parameters enumeration
#
+# @announce-initial: Initial delay (in milliseconds) before sending the first
+# announce (Since 4.0)
+#
+# @announce-max: Maximum delay (in milliseconds) between packets in the
+# announcement (Since 4.0)
+#
+# @announce-rounds: Number of self-announce packets sent after migration
+# (Since 4.0)
+#
+# @announce-step: Increase in delay (in milliseconds) between subsequent
+# packets in the announcement (Since 4.0)
+#
# @compress-level: Set the compression level to be used in live migration,
# the compression level is an integer between 0 and 9, where 0 means
# no compression, 1 means the best compression speed, and 9 means best
@@ -557,10 +569,13 @@
#
# @max-cpu-throttle: maximum cpu throttle percentage.
# Defaults to 99. (Since 3.1)
+#
# Since: 2.4
##
{ 'enum': 'MigrationParameter',
- 'data': ['compress-level', 'compress-threads', 'decompress-threads',
+ 'data': ['announce-initial', 'announce-max',
+ 'announce-rounds', 'announce-step',
+ 'compress-level', 'compress-threads', 'decompress-threads',
'compress-wait-thread',
'cpu-throttle-initial', 'cpu-throttle-increment',
'tls-creds', 'tls-hostname', 'max-bandwidth',
@@ -572,6 +587,18 @@
##
# @MigrateSetParameters:
#
+# @announce-initial: Initial delay (in milliseconds) before sending the first
+# announce (Since 4.0)
+#
+# @announce-max: Maximum delay (in milliseconds) between packets in the
+# announcement (Since 4.0)
+#
+# @announce-rounds: Number of self-announce packets sent after migration
+# (Since 4.0)
+#
+# @announce-step: Increase in delay (in milliseconds) between subsequent
+# packets in the announcement (Since 4.0)
+#
# @compress-level: compression level
#
# @compress-threads: compression thread count
@@ -653,7 +680,11 @@
# TODO either fuse back into MigrationParameters, or make
# MigrationParameters members mandatory
{ 'struct': 'MigrateSetParameters',
- 'data': { '*compress-level': 'int',
+ 'data': { '*announce-initial': 'size',
+ '*announce-max': 'size',
+ '*announce-rounds': 'size',
+ '*announce-step': 'size',
+ '*compress-level': 'int',
'*compress-threads': 'int',
'*compress-wait-thread': 'bool',
'*decompress-threads': 'int',
@@ -692,6 +723,18 @@
#
# The optional members aren't actually optional.
#
+# @announce-initial: Initial delay (in milliseconds) before sending the
+# first announce (Since 4.0)
+#
+# @announce-max: Maximum delay (in milliseconds) between packets in the
+# announcement (Since 4.0)
+#
+# @announce-rounds: Number of self-announce packets sent after migration
+# (Since 4.0)
+#
+# @announce-step: Increase in delay (in milliseconds) between subsequent
+# packets in the announcement (Since 4.0)
+#
# @compress-level: compression level
#
# @compress-threads: compression thread count
@@ -769,7 +812,11 @@
# Since: 2.4
##
{ 'struct': 'MigrationParameters',
- 'data': { '*compress-level': 'uint8',
+ 'data': { '*announce-initial': 'size',
+ '*announce-max': 'size',
+ '*announce-rounds': 'size',
+ '*announce-step': 'size',
+ '*compress-level': 'uint8',
'*compress-threads': 'uint8',
'*compress-wait-thread': 'bool',
'*decompress-threads': 'uint8',
diff --git a/qapi/net.json b/qapi/net.json
index a1a0f39..5f7bff1 100644
--- a/qapi/net.json
+++ b/qapi/net.json
@@ -684,3 +684,46 @@
##
{ 'event': 'NIC_RX_FILTER_CHANGED',
'data': { '*name': 'str', 'path': 'str' } }
+
+##
+# @AnnounceParameters:
+#
+# Parameters for self-announce timers
+#
+# @initial: Initial delay (in ms) before sending the first GARP/RARP
+# announcement
+#
+# @max: Maximum delay (in ms) between GARP/RARP announcement packets
+#
+# @rounds: Number of self-announcement attempts
+#
+# @step: Delay increase (in ms) after each self-announcement attempt
+#
+# Since: 4.0
+##
+
+{ 'struct': 'AnnounceParameters',
+ 'data': { 'initial': 'int',
+ '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'}