[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [virtio-dev] [PATCH v3] conformance: clarify transitional/non-transitional
On Mon, 11 Mar 2019 12:00:46 -0400 "Michael S. Tsirkin" <mst@redhat.com> wrote: > Clarify that: > - non-transitional just satisfy 3 main clauses > - transitional also has a legacy interface: > however note that it's not an optional component > *for transitional devices* so MAY is inappropriate > - legacy device descriptions are non-normative. > In fact virtio 0.9 is non-normative as a whole > and always was by design: it was early days and > spec evolved to document bugs in implementations. > > VIRTIO-167 > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > --- > > Changes from v1: > address remaining comments by Cornelia > Changes from v1: > address comments by Cornelia > > conformance.tex | 26 ++++++++++++++++++-------- > 1 file changed, 18 insertions(+), 8 deletions(-) > > diff --git a/conformance.tex b/conformance.tex > index 1577c0c..c0df2a2 100644 > --- a/conformance.tex > +++ b/conformance.tex > @@ -344,16 +344,26 @@ Interface: Terminology}. > > A non-transitional implementation conforms to this specification > if it satisfies all of the MUST or REQUIRED level requirements > -defined above. > +defined in section \ref{sec:Conformance / Conformance Targets} above. I think 'above' is superfluous. > > -An implementation MAY choose to implement OPTIONAL support for the > -legacy interface, including support for legacy drivers > -or devices, by additionally conforming to all of the MUST or > -REQUIRED level requirements for the legacy interface > -for the transitional devices and drivers. > +A transitional implementation conforms to this specification > +if it satisfies all of the MUST or REQUIRED level requirements > +defined in section \ref{sec:Conformance / Conformance Targets} above I would prefer 'above' dropped, but no biggie. > +and additionally implements the legacy interface > +for devices and drivers, described in > +\hyperref[intro:Virtio PCI Draft]{[Virtio PCI Draft]}. > > -The requirements for the legacy interface for transitional implementations > -are located in sections named ``Legacy Interface'' listed below: > +\begin{note} > +No normative specification for the legacy interface exists, > +instead the ability of the device or the driver to inter-operate > +with the existing body of devices and drivers is a quality of > +implementation issue. > +\end{note} I don't like 'existing body of devices and drivers' because IMHO this is only about legacy devices and drivers. I.e. an implementation that conforms to this specification (or a previous version of this specification) is guaranteed to be inter-operable. > + > +To facilitate creating transitional implementations, as well as > +to assist in converting legacy interfaces to conforming ones, > +the requirements for the legacy interface for transitional implementations > +are located in non-normative sections named ``Legacy Interface'' listed below: I have a hard time to tell if this change makes transitional vs non-transitional clearer or not. I think there is a dissonance between 'no normative specification for the legacy interface exists' and 'transitional implementation conforms to this specification if ...'. The latter suggests that based on this specification and the referenced draft together do provide, what is necessary to decide if a given implementation is a transitional implementation that conforms to this specification. The former suggests that only the non-transitional, i.e. virtio conforming, part of the transitional device is actually well specified. Please note that the non-normative sections do contain constructs that are normally reserved for normative statements (e.g. MUST). AFAIU a transitional implementation is any implementation that is conforming to this specification and aims to provide some inter-operability with some legacy implementations that do not conform this specification. A non-transitional implementation is an implementation that is conforms to this specification and does not care about inter-operability with implementation that don not conform to this specification. I think people familiar with virtio already have a good understanding of transitional and non-transitional. Because of this I'm going to abstain on this. Regards, Halil
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]