[libvirt PATCH 3/4] qemu: add external backend for tpm

Michal Prívozník mprivozn at redhat.com
Fri Oct 21 12:43:38 UTC 2022


On 10/17/22 16:27, Ján Tomko wrote:
> Introduce a new backend type 'external' for connecting to a swtpm daemon
> not managed by libvirtd.
> 
> Mostly in one commit, thanks to -Wswitch and the way we generate
> capabilities.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=2063723
> 
> Signed-off-by: Ján Tomko <jtomko at redhat.com>
> ---


> diff --git a/tests/qemuxml2argvdata/tpm-external.xml b/tests/qemuxml2argvdata/tpm-external.xml
> new file mode 100644
> index 0000000000..fe47f1e963
> --- /dev/null
> +++ b/tests/qemuxml2argvdata/tpm-external.xml
> @@ -0,0 +1,40 @@
> +<domain type='qemu'>
> +  <name>TPM-VM</name>
> +  <uuid>11d7cd22-da89-3094-6212-079a48a309a1</uuid>
> +  <memory unit='KiB'>2097152</memory>
> +  <currentMemory unit='KiB'>512288</currentMemory>
> +  <vcpu placement='static'>1</vcpu>
> +  <os>
> +    <type arch='x86_64' machine='pc-i440fx-2.12'>hvm</type>
> +    <boot dev='hd'/>
> +    <bootmenu enable='yes'/>
> +  </os>
> +  <features>
> +    <acpi/>
> +  </features>
> +  <cpu mode='custom' match='exact' check='none'>
> +    <model fallback='forbid'>qemu64</model>
> +  </cpu>
> +  <clock offset='utc'/>
> +  <on_poweroff>destroy</on_poweroff>
> +  <on_reboot>restart</on_reboot>
> +  <on_crash>destroy</on_crash>
> +  <devices>
> +    <emulator>/usr/bin/qemu-system-x86_64</emulator>
> +    <controller type='usb' index='0' model='piix3-uhci'>
> +      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
> +    </controller>
> +    <controller type='pci' index='0' model='pci-root'/>
> +    <input type='mouse' bus='ps2'/>
> +    <input type='keyboard' bus='ps2'/>_
> +    <tpm model='tpm-tis'>
> +      <backend type='external'>
> +        <source path='/tmp/path.sock'/>

Here, I'd suggest being more future proof and go with:

  <source type='unix' path='/tmp/path.sock' mode='client'/>

This allows us to support other types (that swtpm supports even now):
TCP/IP socket, chardev, cuse; should somebody need them.

Michal



More information about the libvir-list mailing list