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] [OASIS Issue Tracker] Created: (VIRTIO-26) Use feature number 32 to indicate compliance with 1.0 standard


OASIS Issues Tracker <workgroup_mailer@lists.oasis-open.org> writes:

> Use feature number 32 to indicate compliance with 1.0 standard
> --------------------------------------------------------------
>
>                  Key: VIRTIO-26
>                  URL: http://tools.oasis-open.org/issues/browse/VIRTIO-26
>              Project: OASIS Virtual I/O Device (VIRTIO) TC
>           Issue Type: Bug
>             Reporter: Rusty Russell
>             Assignee: Rusty Russell
>
>
> Virtio PCI will probably have a different layout to indicate v1.0 compliance, but other transports might not.  Stealing an idea from MST, let's separate it into its own suggestion.

This is what I ended up with.  A bit of wording tweak, and I gave it a
name:

commit 0362577143d2037e7a943a28701bad6e6896e03a
Author: Rusty Russell <rusty@au1.ibm.com>
Date:   Mon Sep 9 16:40:53 2013 +0930

    VIRTIO_F_VERSION_1: indentifying legacy devices.
    
    Most of this text is taken directly from Michael Tsirkin's proposal,
    separated from the PCI-specific parts, and given an explicit feature name.
    
    Signed-off-by: Rusty Russell <rusty@au1.ibm.com>

diff --git a/virtio-v1.0-wd01-part1-specification.txt b/virtio-v1.0-wd01-part1-specification.txt
index 0531125..9b0bbca 100644
--- a/virtio-v1.0-wd01-part1-specification.txt
+++ b/virtio-v1.0-wd01-part1-specification.txt
@@ -135,9 +135,11 @@ Feature bits are allocated as follows:
 
   0 to 23: Feature bits for the specific device type
 
-  24 to 31: Feature bits reserved for extensions to the queue and
+  24 to 32: Feature bits reserved for extensions to the queue and
   feature negotiation mechanisms
 
+  33 and above: Feature bits resered for future extensions.
+
 For example, feature bit 0 for a network device (i.e. Subsystem
 Device ID 1) indicates that the device supports checksumming of
 packets.
@@ -146,6 +148,54 @@ In particular, new fields in the device configuration space are
 indicated by offering a feature bit, so the guest can check
 before accessing that part of the configuration space.
 
+2.1.2.1 Legacy Interface: A Note on transitions from earlier drafts
+--------------------------------------
+
+Earlier drafts of this specification (up to 0.9.X) defined a similar, but
+different interface between the hypervisor and the guest.
+Since these are widely deployed, this specification
+accomodates optional features to simplify transition
+from these earlier draft interfaces. Specifically:
+
+Legacy Interface
+	is an interface specified by an earlier draft of this specification
+        (up to 0.9.X)
+Legacy Device
+	is a device implemented before this specification was released,
+        and implementing a legacy interface on the host side
+Legacy Driver
+	is a driver implemented before this specification was released,
+        and implementing a legacy interface on the guest side
+
+Legacy devices and legacy drivers are not compliant with this
+specification.
+
+To simplify transition from these earlier draft interfaces,
+it is possible to implement:
+
+Transitional Device
+	a device supporting both drivers conforming to this
+        specification, and allowing legacy drivers.
+
+Transitional Driver
+	a driver supporting both devices conforming to this
+	specification, and legacy devices.
+
+Transitional devices and transitional drivers can be compliant with
+this specification (ie. when not operating in legacy mode).
+
+Devices or drivers with no legacy compatibility are referred to as
+non-transitional devices and drivers, respectively.
+
+Transitional Drivers can detect Legacy Devices by detecting that
+the feature bit VIRTIO_F_VERSION_1 is not offered.
+Transitional devices can detect Legacy drivers by detecting that
+VIRTIO_F_VERSION_1 has not been acknowledged by the driver.
+
+To make them easier to locate, specification sections documenting
+these transitional features are explicitly marked with 'Legacy
+Interface' in the section title.
+
 2.1.3. Configuration Space
 -------------------------
 
@@ -2518,7 +2568,7 @@ contents of the event field. The following events are defined:
 2.5. Reserved Feature Bits
 =========================
 
-Currently there are four device-independent feature bits defined:
+Currently there are five device-independent feature bits defined:
 
   VIRTIO_F_NOTIFY_ON_EMPTY (24) Negotiating this feature
   indicates that the driver wants an interrupt if the device runs
@@ -2549,6 +2599,9 @@ Currently there are four device-independent feature bits defined:
   driver should ignore the used_event field; the device should
   ignore the avail_event field; the flags field is used
 
+  VIRTIO_F_VERSION_1(32) This feature must be offered by any device
+  compliant with this specification, and acknowledged by all device
+  drivers.
 
 In addition, bit 30 is used by qemu's implementation to check for experimental
 early versions of virtio which did not perform correct feature negotiation,



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