This patch series introduces the launch security type s390-pv. Specifying s390-pv as launch security type in an s390 domain prepares for running the guest in protected virtualization secure mode, also known as IBM Secure Execution. diff to v3: - moved virDomainSEVDef into a union - improved XML formating for launchSecurity - use a shared id on the qemu cmd line for confidential-guest-support - added check for s390-pv host support into XML validation - changed from ignoring to failing if launchSecuroty child elements are provided for s390-pv - reduced test to a single failing test - add availability of s390-pv in domain capabilities diff to v2: - Broke up previous patch one into three patches diff to v1: - Rebased to current master - Added verification check for confidential-guest-support capability Boris Fiuczynski (8): schemas: Make SEV policy on launch security optional conf: rework SEV XML parse and format methods qemu: make KVMSupportsSecureGuest capability available conf: refactor launch security to allow more types qemu: add s390-pv-guest capability conf: add availability of s390-pv in domain capabilities qemu: use common id lsec0 for launchSecurity docs: add s390-pv documentation docs/formatdomain.rst | 7 + docs/kbase/s390_protected_virt.rst | 55 ++++++- docs/schemas/domaincaps.rng | 9 ++ docs/schemas/domaincommon.rng | 13 +- src/conf/domain_capabilities.c | 1 + src/conf/domain_capabilities.h | 1 + src/conf/domain_conf.c | 143 +++++++++++++----- src/conf/domain_conf.h | 17 ++- src/conf/virconftypes.h | 2 + src/qemu/qemu_capabilities.c | 24 +++ src/qemu/qemu_capabilities.h | 4 + src/qemu/qemu_cgroup.c | 4 +- src/qemu/qemu_command.c | 75 +++++++-- src/qemu/qemu_driver.c | 3 +- src/qemu/qemu_firmware.c | 33 ++-- src/qemu/qemu_namespace.c | 21 ++- src/qemu/qemu_process.c | 35 ++++- src/qemu/qemu_validate.c | 32 +++- src/security/security_dac.c | 6 +- tests/domaincapsdata/qemu_2.11.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.12.0.s390x.xml | 1 + tests/domaincapsdata/qemu_3.0.0.s390x.xml | 1 + tests/domaincapsdata/qemu_4.0.0.s390x.xml | 1 + tests/domaincapsdata/qemu_4.2.0.s390x.xml | 1 + tests/domaincapsdata/qemu_5.2.0.s390x.xml | 1 + tests/domaincapsdata/qemu_6.0.0.s390x.xml | 1 + tests/domaincapsmock.c | 17 +++ .../launch-security-s390-pv.xml | 18 +++ tests/genericxml2xmltest.c | 1 + .../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 1 + ...nch-security-s390-pv-fail.s390x-latest.err | 1 + .../launch-security-s390-pv-fail.xml | 33 ++++ .../launch-security-s390-pv.s390x-latest.args | 35 +++++ .../launch-security-s390-pv.xml | 30 ++++ ...v-missing-platform-info.x86_64-2.12.0.args | 4 +- ...urity-sev-missing-policy.x86_64-2.12.0.err | 1 + .../launch-security-sev-missing-policy.xml | 34 +++++ .../launch-security-sev.x86_64-2.12.0.args | 4 +- .../launch-security-sev.x86_64-6.0.0.args | 4 +- tests/qemuxml2argvmock.c | 16 ++ tests/qemuxml2argvtest.c | 4 + 41 files changed, 588 insertions(+), 107 deletions(-) create mode 100644 tests/genericxml2xmlindata/launch-security-s390-pv.xml create mode 100644 tests/qemuxml2argvdata/launch-security-s390-pv-fail.s390x-latest.err create mode 100644 tests/qemuxml2argvdata/launch-security-s390-pv-fail.xml create mode 100644 tests/qemuxml2argvdata/launch-security-s390-pv.s390x-latest.args create mode 100644 tests/qemuxml2argvdata/launch-security-s390-pv.xml create mode 100644 tests/qemuxml2argvdata/launch-security-sev-missing-policy.x86_64-2.12.0.err create mode 100644 tests/qemuxml2argvdata/launch-security-sev-missing-policy.xml -- 2.31.1