On 2/24/21 7:52 AM, Kevin Wolf wrote:
> This adds a QAPI schema for the properties of the colo-compare object.
>
> Signed-off-by: Kevin Wolf
> ---
> qapi/qom.json | 49 +
> 1 file changed, 49 insertions(+)
>
> diff --git a/qapi/qom.json b/qapi/qom.json
> index 4b1cd4b8dc..8e4414f843 100644
> --- a/qapi/qom.json
> +++ b/qapi/qom.json
> @@ -222,6 +222,53 @@
>'data': { 'if': 'str',
> 'canbus': 'str' } }
>
> +##
> +# @ColoCompareProperties:
> +#
> +# Properties for colo-compare objects.
> +#
> +# @primary_in: name of the character device backend to use for the primary
> +# input (incoming packets are redirected to @outdev)
> +#
> +# @secondary_in: name of the character device backend to use for secondary
> +#input (incoming packets are only compared to the input on
> +#@primary_in and then dropped)
> +#
Idea for future improvement: use aliases to shift over to 'primary-in',
'secondary-in', and so on as our preferred name. But not for this
patch, which is a mechanical conversion of what exists.
> +# @outdev: name of the character device backend to use for output
> +#
> +# @iothread: name of the iothread to run in
> +#
> +# @notify_dev: name of the character device backend to be used to communicate
> +# with the remote colo-frame (only for Xen COLO)
> +#
> +# @compare_timeout: the maximum time to hold a packet from @primary_in for
> +# comparison with an incoming packet on @secondary_in in
> +# milliseconds (default: 3000)
> +#
> +# @expired_scan_cycle: the interval at which colo-compare checks whether
> +# packets from @primary have timed out, in milliseconds
> +# (default: 3000)
> +#
> +# @max_queue_size: the maximum number of packets to keep in the queue for
> +# comparing with incoming packets from @secondary_in. If
> the
> +# queue is full and addtional packets are received, the
> +# addtional packets are dropped. (default: 1024)
> +#
> +# @vnet_hdr_support: if true, vnet header support is enabled (default: false)
> +#
> +# Since: 2.8
> +##
> +{ 'struct': 'ColoCompareProperties',
> + 'data': { 'primary_in': 'str',
> +'secondary_in': 'str',
> +'outdev': 'str',
> +'iothread': 'str',
> +'*notify_dev': 'str',
> +'*compare_timeout': 'uint64',
> +'*expired_scan_cycle': 'uint32',
> +'*max_queue_size': 'uint32',
> +'*vnet_hdr_support': 'bool' } }
Matches net/colo-compare.c:colo_compare_init().
> +
> ##
> # @CryptodevBackendProperties:
> #
> @@ -456,6 +503,7 @@
> 'authz-simple',
> 'can-bus',
> 'can-host-socketcan',
> +'colo-compare',
> 'cryptodev-backend',
> 'cryptodev-backend-builtin',
> 'cryptodev-vhost-user',
> @@ -497,6 +545,7 @@
>'authz-pam': 'AuthZPAMProperties',
>'authz-simple': 'AuthZSimpleProperties',
>'can-host-socketcan': 'CanHostSocketcanProperties',
> + 'colo-compare': 'ColoCompareProperties',
>'cryptodev-backend': 'CryptodevBackendProperties',
>'cryptodev-backend-builtin': 'CryptodevBackendProperties',
>'cryptodev-vhost-user': 'CryptodevVhostUserProperties',
Reviewed-by: Eric Blake
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org