Files
qemu/qapi/compat.json
Daniel P. Berrangé 34fff50e56 qapi: add 'insecure-types' option for -compat argument
This introduces a new 'insecure-types' option for the 'compat'
argument that accepts three values

 * accept: Allow any usage
 * reject: Reject with an error reported
 * warn: Allow any usage, with a warning reported

For historical compatibility it defaults to 'accept'.

The 'reject' and 'warn' values will take effect for any type
that has been explicitly marked insecure, or is lacking an
explicit declaration of its security status.

This new command line option is currently a no-op, but will
become functional as following patches enable the checks.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2026-09-17 17:00:44 +01:00

93 lines
2.1 KiB
Python

# -*- Mode: Python -*-
# vim: filetype=python
##
# ********************
# Compatibility policy
# ********************
##
##
# @CompatPolicyInput:
#
# Policy for handling "funny" input.
#
# @accept: Accept silently
#
# @reject: Reject with an error
#
# @crash: abort() the process
#
# Since: 6.0
##
{ 'enum': 'CompatPolicyInput',
'data': [ 'accept', 'reject', 'crash' ] }
##
# @CompatPolicyOutput:
#
# Policy for handling "funny" output.
#
# @accept: Pass on unchanged
#
# @hide: Filter out
#
# Since: 6.0
##
{ 'enum': 'CompatPolicyOutput',
'data': [ 'accept', 'hide' ] }
##
# @CompatPolicySecurity:
#
# Policy for handling any devices or backends which do not provide a
# security boundary to protect against untrusted environments
#
# @accept: Allow any usage
#
# @reject: Reject with an error reported
#
# @warn: Allow any usage, with a warning reported
#
# Since: 11.2
##
{ 'enum': 'CompatPolicySecurity',
'data': [ 'accept', 'reject', 'warn' ] }
##
# @CompatPolicy:
#
# Policy for handling deprecated management interfaces.
#
# This is intended for testing users of the management interfaces.
#
# Limitation: covers only syntactic aspects of QMP, i.e. stuff tagged
# with feature 'deprecated' or 'unstable'. We may want to extend it
# to cover semantic aspects and CLI.
#
# Limitation: deprecated-output policy @hide is not implemented for
# enumeration values. They behave the same as with policy @accept.
#
# @deprecated-input: how to handle deprecated input (default 'accept')
#
# @deprecated-output: how to handle deprecated output (default
# 'accept')
#
# @unstable-input: how to handle unstable input (default 'accept')
# (since 6.2)
#
# @unstable-output: how to handle unstable output (default 'accept')
# (since 6.2)
#
# @insecure-types: how to handle types that are not declared secure
# (default 'accept') (since 11.2)
#
# Since: 6.0
##
{ 'struct': 'CompatPolicy',
'data': { '*deprecated-input': 'CompatPolicyInput',
'*deprecated-output': 'CompatPolicyOutput',
'*unstable-input': 'CompatPolicyInput',
'*unstable-output': 'CompatPolicyOutput',
'*insecure-types': 'CompatPolicySecurity' } }