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

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [virtio-comment] Re: [tab] Re: [virtio-comment] TAB Comments on Virtual I/O Device (VIRTIO) Version 1.0


On Fri, Feb 14, 2014 at 11:56:40AM +1030, Rusty Russell wrote:
> Patrick Durusau <patrick@durusau.net> writes:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Michael,
> >
> > Just a thought, the legacy devices conform to some prior
> > specification. Yes?
> >
> > So it really isn't that transitional devices, which include legacy
> > plus the new standard conform only to the new standard but they do
> > conform to the new standard plus one or more old ones.
> >
> > One way to organize that in terms of conformance:
> >
> > 1) Non-Transition devices (here enumerate the requirements for a
> > non-transitional device and what happens if I do something optional,
> > what does someone on the other end have to accept?)
> 
> Well, all that should be nailed down in the rest of the content.  It
> says what drivers must do *and* what devices must do.  This language has
> been repeatedly tightened during the 1.0 drafting process (and
> especially from recent feedback), so hopefully it's fairly robust now.
> 
> > 2) Transitional devices - conform to all of #1, no reason to repeat,
> > and MAY conform to one or more legacy standards (include as normative
> > references) so you don't have to risk being at variance with the prior
> > work by repetition. Then your legacy material become
> > non-normative/informative, for the readers convenience and you
> > normatively cite the prior standards, to say: Go see the original if
> > you want to do X.
> >
> > Include rules in the normative text about what happens when
> > non-transitional and transitional devices meet.
> >
> > That may (or may not be) closer to what you originally intended in
> > making legacy material non-normative. That will allow old standards to
> > stand for themselves. A lot safer than way than trying to restate them.
> 
> OK, how about simply this:
> 
> diff --git a/conformance.tex b/conformance.tex
> index 0e8b321..e2dadb9 100644
> --- a/conformance.tex
> +++ b/conformance.tex
> @@ -6,3 +6,46 @@
>  An implementation conforms to this specification if it satisfies
>  all of the MUST or REQUIRED level requirements defined within
>  this specification.
> +
> +An implementation MAY choose to implement support for legacy drivers
> +or devices, by conforming to \hyperref[intro:Virtio PCI Draft]{[Virtio PCI Draft]}.
> +The sections named "Legacy Interfaces" are non-normative, but should
> +be helpful for those wishing to support legacy drivers or devices:

Fine with everything except this last sentence.
We are investing the effort anyway, let's make it possible for us to
supercede 0.9.X spec completely.


> +\begin{itemize}
> +\item Section \ref{sec:Basic Facilities of a Virtio Device / Feature Bits / Legacy Interface: A Note on transitions from earlier drafts}
> +\item Section \ref{sec:Basic Facilities of a Virtio Device / Device Configuration Space / Legacy Interface: A Note on Configuration Space endian-ness}
> +\item Section \ref{sec:Basic Facilities of a Virtio Device / Device Configuration Space / Legacy Interface: Device Configuration Space}
> +\item Section \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Legacy Interfaces: A Note on Virtqueue Layout}
> +\item Section \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Legacy Interfaces: A Note on Virtqueue Endianness}
> +\item Section \ref{sec:Basic Facilities of a Virtio Device / Virtqueues / Message Framing / Legacy Interface: Message Framing}
> +\item Section \ref{sec:General Initialization And Device Operation / Device Initialization / Legacy Interface: Device Initialization}
> +\item Section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery / Legacy Interfaces: A Note on PCI Device Discovery}
> +\item Section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Legacy Interfaces: A Note on PCI Device Layout}
> +\item Section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization / Virtio Device Configuration Layout Detection / Legacy Interface: A Note on Device Layout Detection}
> +\item Section \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization / Virtqueue Configuration / Legacy Interface: A Note on Virtqueue Configuration}
> +\item Section \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}
> +\item Section \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Initialization / Setting the Virtio Revision / Legacy Interfaces: A Note on Setting the Virtio Revision}
> +\item Section \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Initialization / Configuring a Virtqueue / Legacy Interface: A Note on Configuring a Virtqueue}
> +\item Section \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Operation / Host->Guest Notification / Legacy Interfaces: A Note on Host->Guest Notification}
> +\item Section \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Initialization / Setting Up Indicators / Legacy Interfaces: A Note on Setting Up Indicators}
> +\item Section \ref{sec:Device Types / Network Device / Feature bits / Legacy Interface: Feature bits}
> +\item Section \ref{sec:Device Types / Network Device / Device configuration layout / Legacy Interface: Device configuration layout}
> +\item Section \ref{sec:Device Types / Network Device / Device Operation / Legacy Interface: Device Operation}
> +\item Section \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Setting MAC Address Filtering / Legacy Interface: Setting MAC Address Filtering}
> +\item Section \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / VLAN Filtering / Legacy Interface: VLAN Filtering}
> +\item Section \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Automatic receive steering in multiqueue mode / Legacy Interface: Automatic receive steering in multiqueue mode}
> +\item Section \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Offloads State Configuration / Setting Offloads State / Legacy Interface: Setting Offloads State}
> +\item Section \ref{sec:Device Types / Block Device / Feature bits / Legacy Interface: Feature bits}
> +\item Section \ref{sec:Device Types / Block Device / Feature bits / Device configuration layout / Legacy Interface: Device configuration layout}
> +\item Section \ref{sec:Device Types / Block Device / Device Initialization / Legacy Interface: Device Initialization}
> +\item Section \ref{sec:Device Types / Block Device / Device Operation / Legacy Interface: Device Operation}
> +\item Section \ref{sec:Device Types / Console Device / Device configuration layout / Legacy Interface: Device configuration layout}
> +\item Section \ref{sec:Device Types / Console Device / Device Operation / Legacy Interface: Device Operation}
> +\item Section \ref{sec:Device Types / Memory Balloon Device / Device configuration layout / Legacy Interface: Device configuration layout}
> +\item Section \ref{sec:Device Types / Memory Balloon Device / Device Operation / Memory Statistics / Legacy Interface: Memory Statistics}
> +\item Section \ref{sec:Device Types / SCSI Host Device / Device configuration layout / Legacy Interface: Device configuration layout}
> +\item Section \ref{sec:Device Types / SCSI Host Device / Device Operation / Device Operation: Request Queues / Legacy Interface: Device Operation: Request Queues}
> +\item Section \ref{sec:Device Types / SCSI Host Device / Device Operation / Device Operation: controlq / Legacy Interface: Device Operation: controlq}
> +\item Section \ref{sec:Device Types / SCSI Host Device / Device Operation / Device Operation: eventq / Legacy Interface: Device Operation: eventq}
> +\item Section \ref{sec:Reserved Feature Bits / Legacy Interface: Reserved Feature Bits}
> +\end{itemize}
> diff --git a/content.tex b/content.tex
> index a47ce6c..0e6c963 100644
> --- a/content.tex
> +++ b/content.tex
> @@ -1288,6 +1288,20 @@ As a prerequisite to device initialization, the driver scans the
>  PCI capability list, detecting virtio configuration layout using Virtio
>  Structure PCI capabilities.
>  
> +\paragraph{Non-transitional Device With Legacy Driver}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization / Non-transitional Device With Legacy Driver}
> +
> +Non-transitional devices, on a platform where a legacy driver for
> +a legacy device with the same ID might have previously existed,
> +MUST take the following steps to fail gracefully when a legacy
> +driver attempts to drive them:
> +
> +\begin{enumerate}
> +\item Present an I/O BAR in BAR0, and
> +\item Respond to a single-byte zero write to offset 18
> +   (corresponding to Device Status register in the legacy layout)
> +   of BAR0 by presenting zeroes on every BAR and ignoring writes.
> +\end{enumerate}
> +
>  \subparagraph{Legacy Interface: A Note on Device Layout Detection}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization / Virtio Device Configuration Layout Detection / Legacy Interface: A Note on Device Layout Detection}
>  
>  Legacy drivers skipped the Device Layout Detection step, assuming legacy
> @@ -1310,18 +1324,6 @@ Capabilities on the capability list.
>  If these are not present, driver should assume a legacy device,
>  and fail gracefully.
>  
> -Non-transitional devices, on a platform where a legacy driver for
> -a legacy device with the same ID might have previously existed,
> -MUST take the following steps to fail gracefully when a legacy
> -driver attempts to drive them:
> -
> -\begin{enumerate}
> -\item Present an I/O BAR in BAR0, and
> -\item Respond to a single-byte zero write to offset 18
> -   (corresponding to Device Status register in the legacy layout)
> -   of BAR0 by presenting zeroes on every BAR and ignoring writes.
> -\end{enumerate}
> -
>  \paragraph{MSI-X Vector Configuration}\label{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization / MSI-X Vector Configuration}
>  
>  When MSI-X capability is present and enabled in the device
> diff --git a/introduction.tex b/introduction.tex
> index a1b4239..f0b6aee 100644
> --- a/introduction.tex
> +++ b/introduction.tex
> @@ -51,6 +51,9 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S
>  	PCI Express Specifications
>  	\newline\url{http://www.pcisig.com/specifications/pciexpress/},
>  	PCI-SIG\\
> +	\phantomsection\label{intro:Virtio PCI Draft}\textbf{[Virtio PCI Draft]} &
> +	Virtio PCI Draft Specification
> +	\newline\url{http://ozlabs.org/~rusty/virtio-spec/virtio-0.9.5.pdf}\\
>  \end{longtable}
>  
>  \section{Structure Specifications}
> 
> 
> This publicly archived list offers a means to provide input to the
> OASIS Virtual I/O Device (VIRTIO) TC.
> 
> In order to verify user consent to the Feedback License terms and
> to minimize spam in the list archive, subscription is required
> before posting.
> 
> Subscribe: virtio-comment-subscribe@lists.oasis-open.org
> Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org
> List help: virtio-comment-help@lists.oasis-open.org
> List archive: https://lists.oasis-open.org/archives/virtio-comment/
> Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf
> List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists
> Committee: https://www.oasis-open.org/committees/virtio/
> Join OASIS: https://www.oasis-open.org/join/


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]