OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio message

[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]