On Tue, May 29, 2018 at 10:26:20AM +0200, Peter Krempa wrote:
> On Thu, May 24, 2018 at 12:39:11 +0200, Ján Tomko wrote:
> > Add a new 'vsock' element for the vsock device.
> > The 'model' attribute is optional.
> > A <source cid> subelement should be used to specify the guest cid,
> > or <source auto='yes'/> should be used.
> >
> >
https://bugzilla.redhat.com/show_bug.cgi?id=1291851
> > ---
> > docs/formatdomain.html.in | 20 +++
> > docs/schemas/domaincommon.rng | 29 ++++
> > src/conf/domain_conf.c | 195
+++++++++++++++++++++++++-
> > src/conf/domain_conf.h | 17 +++
> > src/qemu/qemu_domain.c | 1 +
> > src/qemu/qemu_domain_address.c | 11 ++
> > src/qemu/qemu_driver.c | 6 +
> > src/qemu/qemu_hotplug.c | 1 +
> > tests/qemuxml2argvdata/vhost-vsock-auto.xml | 35 +++++
> > tests/qemuxml2argvdata/vhost-vsock.xml | 36 +++++
> > tests/qemuxml2xmloutdata/vhost-vsock-auto.xml | 36 +++++
> > tests/qemuxml2xmloutdata/vhost-vsock.xml | 1 +
> > tests/qemuxml2xmltest.c | 3 +
> > 13 files changed, 390 insertions(+), 1 deletion(-)
> > create mode 100644 tests/qemuxml2argvdata/vhost-vsock-auto.xml
> > create mode 100644 tests/qemuxml2argvdata/vhost-vsock.xml
> > create mode 100644 tests/qemuxml2xmloutdata/vhost-vsock-auto.xml
> > create mode 120000 tests/qemuxml2xmloutdata/vhost-vsock.xml
>
> > diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
> > index 71ac3d079c..3ea5c91773 100644
> > --- a/docs/schemas/domaincommon.rng
> > +++ b/docs/schemas/domaincommon.rng
> > @@ -4140,6 +4140,32 @@
> > </optional>
> > </define>
> >
> > + <define name="vsock">
> > + <element name="vsock">
> > + <optional>
> > + <attribute name="model">
> > + <value>virtio</value>
> > + </attribute>
> > + </optional>
> > + <interleave>
> > + <element name="source">
>
> So, source is mandatory? It should be noted in the docs ...
>
> > + <optional>
> > + <attribute name="auto">
> > + <ref name="virYesNo"/>
> > + </attribute>
> > + </optional>
> > + <optional>
> > + <attribute name="cid">
> > + <ref name="unsignedInt"/>
> > + </attribute>
> > + </optional>
>
> Also both attributes are optional which is kind of weird if <source> is
> mandatory.
>
> > + </element>
> > + <optional>
> > + <ref name="address"/>
> > + </optional>
> > + </interleave>
> > + </element>
> > + </define>
>
> [...]
>
[...]
> > diff --git a/tests/qemuxml2argvdata/vhost-vsock-auto.xml
b/tests/qemuxml2argvdata/vhost-vsock-auto.xml
> > new file mode 100644
> > index 0000000000..729d58bea4
> > --- /dev/null
> > +++ b/tests/qemuxml2argvdata/vhost-vsock-auto.xml
> > @@ -0,0 +1,35 @@
> > +<domain type='qemu'>
> > + <name>test</name>
> > + <uuid>bba65c0e-c049-934f-b6aa-4e2c0582acdf</uuid>
> > + <memory unit='KiB'>1048576</memory>
> > + <currentMemory unit='KiB'>1048576</currentMemory>
> > + <vcpu placement='static'>1</vcpu>
> > + <os>
> > + <type arch='x86_64'
machine='pc-0.13'>hvm</type>
>
> Our XMLs are living in the past.
>
> > + <boot dev='hd'/>
> > + <bootmenu enable='yes'/>
>
> For an ACK please state how you plan to deal with the schema issues I've
> pointed out. All other necessary changes were pointed out.
The idea is to transform <vsock> -> <vsock model='virtio'/> in the
QEMU
driver.
<source> and both of its attributes will be optional in the schema
and in case 'auto' is missing, we'll tune it up in PostParse:
if (vsock->auto_cid == VIR_TRISTATE_BOOL_ABSENT) {
if (vsock->guest_cid != 0)
vsock->auto_cid = VIR_TRISTATE_BOOL_NO;
else
vsock->auto_cid = VIR_TRISTATE_BOOL_YES;
}
Okay. ACK if you make <source> optional and add this code.