aboutsummaryrefslogtreecommitdiffstats
path: root/conformance.tex
Commit message (Collapse)AuthorAgeFilesLines
* virtio-snd: add virtio sound device specificationsound-v4Anton Yakovlev2020-01-081-0/+24
| | | | | | | | | This patch proposes virtio specification for a new virtio sound device, that may be useful in case when having audio is required but a device passthrough or emulation is not an option. Signed-off-by: Anton Yakovlev <Anton.Yakovlev@opensynergy.com> Message-Id: <20200107125049.99728-1-Anton.Yakovlev@opensynergy.com>
* Add virtio rpmb device specificationHuang Yang2019-11-271-1/+23
| | | | | | | | | | | Add virtio RPMB (Replay Protected Memory Block) device documentation to spec. Signed-off-by: Yang Huang <yang.huang@intel.com> Reviewed-by: Bing Zhu <bing.zhu@intel.com> Reviewed-by: Tomas Winkler <tomas.winkler@intel.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/53 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* shared memory: Define PCI capabilityDr. David Alan Gilbert2019-07-251-0/+1
| | | | | | | | | Define the PCI capability used for enumerating shared memory regions. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/40 Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com>
* shared memory: Define shared memory regionsDr. David Alan Gilbert2019-07-251-0/+1
| | | | | | | | | | Define the requirements and idea behind shared memory regions. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/40 Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* editorial: add labelsMichael S. Tsirkin2019-03-241-1/+1
| | | | Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* conformance: fix confusion about legacy interfaceMichael S. Tsirkin2019-03-211-5/+1
| | | | | | | | | | | | | | | | | | The text describing the legacy interface also obliquely refers to a non-transitional implementation. This seems to cause confusion and there's no good reason to do it here: this section is about legacy interface and transitional devices, it add not value at all. Just drop it. Note: the spec does not make it clear whether description of the legacy interface is normative or not, and in particular, this section is not linked to from any conformance targets. Resolving that is left for later. Fixes: https://issues.oasis-open.org/browse/VIRTIO-167 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Acked-by: Halil Pasic <pasic@linux.ibm.com>
* conformance: tweak to match OASIS requirementsMichael S. Tsirkin2019-03-211-34/+33
| | | | | | | | | | | Number clauses as required by OASIS. Also reference the transitional clause. Fixes: https://issues.oasis-open.org/browse/VIRTIO-168 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com>
* conformance: add links to crypto and input devicesMichael S. Tsirkin2019-03-211-2/+2
| | | | | | Fixes: https://issues.oasis-open.org/browse/VIRTIO-174 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* vsock: add vsock deviceStefan Hajnoczi2018-12-121-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The virtio vsock device is a zero-configuration socket communications device. It is designed as a guest<->host management channel suitable for communicating with guest agents. vsock is designed with the sockets API in mind and the driver is typically implemented as an address family (at the same level as AF_INET). Applications written for the sockets API can be ported with minimal changes (similar amount of effort as adding IPv6 support to an IPv4 application). Unlike the existing console device, which is also used for guest<->host communication, multiple clients can connect to a server at the same time over vsock. This limitation requires console-based users to arbitrate access through a single client. In vsock they can connect directly and do not have to synchronize with each other. Unlike network devices, no configuration is necessary because the device comes with its address in the configuration space. The vsock device was prototyped by Gerd Hoffmann and Asias He. I picked the code and design up from them. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/27 Cc: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* Add virtio input device specification.Gerd Hoffmann2018-11-301-0/+18
| | | | | | | | | | Support has been added to the linux kernel version 4.1 and to qemu version 2.4. Signed-off-by: Ladi Prosek <lprosek@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/23
* crypto: fix label name typosMichael S. Tsirkin2018-10-191-6/+6
| | | | fixes undefined reference errors
* virtio-crypto: Add conformance clausesLongpeng(Mike)2018-10-191-0/+29
| | | | | | | | | | | Add the conformance targets and clauses for virtio-crypto device. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/19 Signed-off-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Zhoujian <jianjay.zhou@huawei.com> Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* pci: map common notifications terminology to PCIHalil Pasic2018-10-191-1/+1
| | | | | | | | | | | | | | | The various notifications are introduced and specified in the common (i.e. transport agnostic) portion of this specification. How notifications are realised for a given transport is something each transport has to specify. Let's make the relationship between the PCI terms and the common terms more obvious. Signed-off-by: Halil Pasic <pasic@linux.ibm.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* notifications: unify notifications wording in coreHalil Pasic2018-10-191-4/+4
| | | | | | | | | | | | | | | | | | | | Let us unify the wording when talking about notifications. This change establishes the terms available buffer notification for what was usually simply called notification or virtqueue notification in v1.0 and used buffer notification for what was usually called interrupt. The term configuration change notification in kept where called so and consolidated where it's called configuration change interrupt or similar. The changes done here are limited to the core part, and don't conceptually involve neither the transports nor the devices (references are updated though). Future changes should address these parts. Signed-off-by: Halil Pasic <pasic@linux.ibm.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* split-ring: generalize textMichael S. Tsirkin2018-03-201-0/+1
| | | | | | | | | | | Update generic text to talk about available/used buffers, not rings. Move some split-ring specific text to the correct section. Update conformance section with link to the new conformance clause. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Approved-by: https://www.oasis-open.org/apps/org/workgroup/virtio/ballot.php?id=3177 Fixes: https://github.com/oasis-tcs/virtio-spec/issues/3
* content: move virtqueue operation descriptionMichael S. Tsirkin2018-03-201-2/+2
| | | | | | | | | | | virtqueue operation description is specific to the virtqueue format. Move it out to split-ring.tex and update all references. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Approved-by: https://www.oasis-open.org/apps/org/workgroup/virtio/ballot.php?id=3177 Fixes: https://github.com/oasis-tcs/virtio-spec/issues/3
* virtio-blk: restore VIRTIO_BLK_F_FLUSH and VIRTIO_BLK_F_CONFIG_WCEmstsirkin2015-10-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VIRTIO_BLK_F_CONFIG_WCE is important in order to achieve good performance (up to 2x, though more realistically +30-40%) in latency-bound workloads. However, it was removed by mistake together with VIRTIO_BLK_F_FLUSH. In addition, even removing VIRTIO_BLK_F_FLUSH was probably not a great idea, because it simplifies simple drivers (e.g. firmware) that are okay with a writethrough cache but still need data to persist after power loss. What really should have been removed is just the possibility that devices not propose VIRTIO_BLK_F_FLUSH, but even that only deserves a "SHOULD" in the new world of conformance statements. Restore these, with the following changes: * clarify and use conformance statements in order to define writeback and writethrough caching according to what is commonly done by high-end storage. * clarify (with conformance statements) the influence of the VIRTIO_BLK_F_FLUSH feature on caching and how to proceed if only one of VIRTIO_BLK_F_FLUSH and VIRTIO_BLK_F_CONFIG_WCE is negotiated. * strengthen the requirement for persisting writes to MUST after a VIRTIO_BLK_T_FLUSH request (and in other cases too involving the new features). The suggested behavior upon feature negotiation is okay for the Linux implementation of virtio1, even after the implementation is modified to support the two new features. This fixes VIRTIO-144. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Accepted by electronic ballot: https://www.oasis-open.org/apps/org/workgroup/virtio/ballot.php?id=2864 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio/branches/v1.0@546 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* conformance: link in new conformance statementsmstsirkin2015-05-211-0/+2
| | | | | | | | | Link new conformance statements added by commit network device: document VIRTIO_NET_F_CTRL_RX_EXTRA Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio/branches/v1.0@530 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* network device: xmit/receive cleanupmstsirkin2015-05-181-1/+3
| | | | | | | | | | | | | | | | Fix up multiple issues in xmit/receive sections: - drop MAY/MUST/SHOULD outside normative statements - spell out conformance requirements for both drivers and devices, for xmit and receive paths - document the missing VIRTIO_NET_HDR_F_DATA_VALID - document handling of unrecognized flag bits so we can extend flags in the future, similar to VIRTIO_NET_HDR_F_DATA_VALID VIRTIO-123 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio/branches/v1.0@528 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* balloon: transitional device supportmstsirkin2015-05-181-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Virtio 1.0 cs02 doesn't include a modern balloon device. At some point we'll likely define an incompatible interface with a different ID and different semantics. But for now, it's not a big effort to support a transitional balloon device: this has the advantage of supporting existing drivers, transparently, as well as transports that don't allow mixing virtio 0 and virtio 1 devices. And balloon is an easy device to test, so it's also useful for people to test virtio core handling of transitional devices. Three issues with legacy hypervisors have been identified: 1. Actual value is actually used, and is necessary for management to work. Luckily 4 byte config space writes are now atomic. When using old guests, hypervisors can detect access to the last byte. When using old hypervisors, drivers can use atomic 4-byte accesses. 2. Hypervisors actually didn't ignore the stats from the first buffer supplied. This means the values there would be incorrect until hypervisor resends the request. Add a note suggesting hypervisors ignore the 1st buffer. 3. QEMU simply over-writes stats from each buffer it gets. Thus if driver supplies a different subset of stats on each request, stale values will be there. Require drivers to supply the same subset on each request. This also gives us a simple way to figure out which stats are supported. VIRTIO-143 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio/branches/v1.0@526 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* conformance: add missing linksmstsirkin2015-04-291-0/+2
| | | | | | | | | | | previous commit "used ring: specify legacy behaviour for len field" to resolve VIRTIO-141 added new sections with normative statements for legacy balloon and scsi devices. Link them from the conformance section. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio/branches/v1.0@524 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* conformance: add VIRTIO-137 to statementsmstsirkin2015-04-221-0/+2
| | | | | | | | | Add links to new conformance statements added to resolve VIRTIO-137 (describing used ring entry len usage). Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio/branches/v1.0@510 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* pci: missing documentation for dealing with 64 bit config fieldsmstsirkin2015-04-221-0/+1
| | | | | | | | | | | | | | | | | pci spec says what width access to use for 32, 16 and 8 bit fields, but does not explicitly say what to do for 32 bit fields. As we have text that says driver must treat 64 bit accesses as non-atomic, this seems to imply driver should always do two 32 bit wide accesses. Let's make this an explicit requirement, and require devices to support this. VIRTIO-139 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio/branches/v1.0@508 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* Change 4.1.5.1.2.1 to device requirementmstsirkin2015-03-251-1/+1
| | | | | | | | | | | | 4.1.5.1.2.1 is incorrectly labelled as a driver requirement; it's self-evidently referring to the device. VIRTIO-133 Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio/branches/v1.0@488 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* ccw: allow WRITE_STATUS to failmstsirkin2015-03-151-0/+2
| | | | | | | | | | | | | | | | | We want to be able to fail setting a status on the device (e.g. FEATURES_OK if the device can't work with the features negotiated). The easiest way to do that is to allow the device to fail the WRITE_STATUS command by posting a command reject. VIRTIO-116 Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Approved unanimously: https://www.oasis-open.org/apps/org/workgroup/virtio/ballot.php?id=2762 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio/branches/v1.0@479 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* block: fixup section levelsmstsirkin2014-12-221-1/+1
| | | | | | | | | | | | | | | | | The specification for the configuration layout for block devices should be its own subsection as for all other devices and not be hidden beneath "Feature bits". The normative sections for device operation should appear under the device operation section. VIRTIO-125 Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio/branches/v1.0@449 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* VIRTIO-107: Clarify net mac commands.rusty2014-05-121-0/+1
| | | | | | | | | As passed at meeting 2014-05-06: https://lists.oasis-open.org/archives/virtio/201405/msg00016.html Signed-off-by: Rusty Russell <rusty@au1.ibm.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@368 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* net: fix device conformance sectionscornelia.huck2014-05-071-0/+2
| | | | | | | | | | | | | | | | | | For the network device, we had two device normative sections both called "setting up receive buffers", neither of which was referenced in the conformance section. Let's rename the second one to "processing of packets" which seems to better match the actual contents and reference both of them from the conformance statement for network devices. Resolves VIRTIO-97. Agreed on the 2014/05/06 TC meeting. Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@362 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* conformance.tex: fix references to mmiomstsirkin2014-04-071-2/+2
| | | | | | | | | | | Both device and driver conformance referred to ccw twice; let's add the correct mmio references. Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> (cherry picked from commit feeca2541850c2e1e03ed5ec3b98a5e75ccb4053) git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@361 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* Revert "conformance.tex: fix references to mmio"mstsirkin2014-04-071-2/+2
| | | | | | | | This reverts commit feeca2541850c2e1e03ed5ec3b98a5e75ccb4053. Revert temporarily so we are back to text matching WD02. git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@334 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* conformance.tex: fix references to mmiocornelia.huck2014-03-171-2/+2
| | | | | | | | | Both device and driver conformance referred to ccw twice; let's add the correct mmio references. Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@333 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* VIRTIO-60: avoid vring and VIRTIO_RING.rusty2014-03-131-1/+1
| | | | | | | | | | | | These are never introduced, so use simpler names: virtq* for structures and VIRTIO_ for features. I added two notes about the old names, for helping people coming from the old spec. Signed-off-by: Rusty Russell <rusty@au1.ibm.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@327 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* VIRTIO-62: Explicit and specific.rusty2014-03-131-1/+1
| | | | | | | | | | | Avoid these words where they are redundant. This also lead me to notice that we were not consistent in the use of the term "device-specific configuration" in the PCI section, so cleaned that up too. Signed-off-by: Rusty Russell <rusty@au1.ibm.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@323 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* VIRTIO-72: SHOULD/shouldrusty2014-03-131-1/+3
| | | | | | Signed-off-by: Rusty Russell <rusty@au1.ibm.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@321 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* VIRTIO-81: MUST vs mustrusty2014-03-131-0/+1
| | | | | | | | | | Clean up the remaining lowercase "musts". We actually introduce a new normative section in the balloon; for the rest we clarify them one way or another. Signed-off-by: Rusty Russell <rusty@au1.ibm.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@318 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* legacy interface: move to terminologymstsirkin2014-03-021-4/+4
| | | | | | | | | | | | Change accepted on VIRTIO TC Meeting, 3 December 2013 VIRTIO-64 Cc: Patrick Durusau <patrick@durusau.net Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@303 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* conformance: document two types of devicesmstsirkin2014-03-021-0/+59
| | | | | | | | | | Change accepted on VIRTIO TC Meeting, 3 December 2013 document that there are two conformance levels Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@300 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* Feedback: VIRTIO-77 Conformance clause.rusty2014-02-261-3/+227
| | | | | | | | | Now we have grouped all the normative statements, the conformance clauses for drivers and devices can simply reference them. Signed-off-by: Rusty Russell <rusty@au1.ibm.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@278 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* conformance.txt: minimal placeholdermstsirkin2013-11-281-1/+3
| | | | | | | | | We should make it clearer later, for now this should be enough for the CSD 1. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@131 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
* virtio: add latex templates from CMISmstsirkin2013-11-251-0/+6
I imported latex templates from the CMIS specifications and changed s/CMIS/VIRTIO/ everywhere. The result is very close to one produced by exporting from the ODF we were supplied, with the exception of the TOC formatting, where section numbers are in blue instead of black, and major sections don't have dots leading to page numbers. I'm guessing this isn't very important, someone with more latex knowledge can try to figure this out. Generating html doesn't actually work for me. It doesn't work for me for CMIS either, so it's probably just an issue with my local latex setup. I'm not sure we need html output at all. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@103 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652