On Thu, Mar 17, 2016 at 04:07:25PM +0000, Daniel P. Berrange wrote:
On Thu, Mar 17, 2016 at 04:05:18PM +0000, Daniel P. Berrange wrote:
> On Thu, Mar 17, 2016 at 04:51:06PM +0100, Martin Kletzander wrote:
> > If we expose this information, which is one byte in every PCI config
> > file, we let all mgmt apps know whether the device itself is an endpoint
> > or not so it's easier for them to decide whether such device can be
> > passed through into a VM (endpoint) or not (*-bridge).
> >
> > Resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=1317531
> >
> > Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
> > ---
> > docs/schemas/nodedev.rng | 12 ++++++++
> > src/conf/node_device_conf.c | 24 ++++++++++++++++
> > src/conf/node_device_conf.h | 1 +
> > src/libvirt_private.syms | 3 ++
> > src/node_device/node_device_udev.c | 3 ++
> > src/util/virpci.c | 33 ++++++++++++++++++++++
> > src/util/virpci.h | 12 ++++++++
> > .../pci_0000_00_02_0_header_type.xml | 16 +++++++++++
> > .../pci_0000_00_1c_0_header_type.xml | 20 +++++++++++++
> > tests/nodedevxml2xmltest.c | 2 ++
> > 10 files changed, 126 insertions(+)
> > create mode 100644 tests/nodedevschemadata/pci_0000_00_02_0_header_type.xml
> > create mode 100644 tests/nodedevschemadata/pci_0000_00_1c_0_header_type.xml
> >
> > diff --git a/docs/schemas/nodedev.rng b/docs/schemas/nodedev.rng
> > index 744dccdf5fa9..33637546e48f 100644
> > --- a/docs/schemas/nodedev.rng
> > +++ b/docs/schemas/nodedev.rng
> > @@ -169,6 +169,18 @@
> > </optional>
> >
> > <optional>
> > + <element name='header'>
> > + <attribute name='type'>
> > + <choice>
> > + <value>endpoint</value>
> > + <value>pci-bridge</value>
> > + <value>cardbus-bridge</value>
> > + </choice>
> > + </attribute>
> > + </element>
> > + </optional>
>
> As before, I think we should be using a capability to express this
> not creating a new way to express capabilities without calling
> them capabilities.
Oh and I should say I don't think we need to express 'endpoint' as
a capability. It would suffice to justhave
<capability type="pci">
...
<capability type="pci-bridge"/>
...
</capability>
or
<capability type="pci">
...
<capability type="cardbus-bridge"/>
...
</capability>
Any device without one of those two would implicitly be an end point
Oh, so you meant capability *inside* the PCI one. I misunderstood that,
that makes sense. I'll send a v3 for that.
Martin