[PATCH 00/14] VIRTIO-71: conformance clauses for legacy interface

From
Rusty Russell <>
Date
2014-02-25T02:38:00+00:00
ID
Thread
[PATCH 00/14] VIRTIO-71: conformance clauses for legacy interface
"Michael S. Tsirkin" <> writes:
> ---
>  content.tex | 15 ++++++++++

-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/content.tex b/content.tex
> index 2de0644..58402f3 100644
> --- a/content.tex
> +++ b/content.tex
> @@ -4352,20 +4352,25 @@ and should not be used.
>
>  \section{Legacy Interface: Reserved Feature Bits}\label{sec:Reserved Feature Bits / Legacy Interface: Reserved Feature Bits}
>
> -Legacy or transitional devices may offer the following:
> -
> +Transitional devices MAY offer the following:
>  \begin{description}
> -\item[VIRTIO_F_NOTIFY_ON_EMPTY (24)] Negotiating this feature
> -  indicates that the driver wants an interrupt if the device runs
> +\item[VIRTIO_F_NOTIFY_ON_EMPTY (24)] If this feature
> +  has been negotiated by driver, the device MUST issue
> +  an interrupt if the device runs
>
out of available descriptors on a virtqueue, even though
>
interrupts are suppressed using the VRING_AVAIL_F_NO_INTERRUPT
> -  flag or the \field{used_event} field. An example of this is the
> +  flag or the \field{used_event} field. An example of a driver
> +  using this feature is the legacy
>
networking driver: it doesn't need to know every time a packet
>
is transmitted, but it does need to free the transmitted
>
packets a finite time after they are transmitted. It can avoid
>
using a timer if the device interrupts it when all the packets
>
are transmitted.
> +\end{description}

Move the example into a \note{} so it's clearly separated from
the normative section.  Actually, move the normative requirements into
their own section, so this has to be split.

> +Transitional devices MUST offer, and if offered by the device
> +traditional drivers MUST negotiate the following:
> +\begin{description}
>  \item[VIRTIO_F_ANY_LAYOUT (27)] This feature indicates that the device
>
accepts arbitrary descriptor layouts, as described in Section
>
\ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Message Framing / Legacy Interface: Message Framing}~\nameref{sec:Basic Facilities of a Virtio Device / Virtqueues / Message Framing / Legacy Interface: Message Framing}.

s/traditional/transitional/

s/if offered by the device traditional drivers MUST negotiate/
transitional drivers MUST accept/ ?

This requirement seems like a SHOULD, not a MUST to me though.

Cheers,
Rusty.