aboutsummaryrefslogtreecommitdiffstats
path: root/content.tex
Commit message (Collapse)AuthorAgeFilesLines
* virtio_pci_cap64: bar/BAR cleanupsMichael S. Tsirkin2020-01-201-4/+4
| | | | | | | | | | | | | | When we mean PCI register we should say BAR. When we mean a virtio config register we should say \field{cap.bar}. Finally, offset_hi/length_hi are not within the cap structure. Tweak wording slightly: "A,B,C" are fields, there's no need to say that. Reported-by: Christophe de Dinechin <cdupontd@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com>
* content: add vendor specific cfg typeMichael S. Tsirkin2020-01-201-0/+76
| | | | | | | | | | | Vendors might want to add their own capability in the PCI capability list. However, Virtio already uses the vendor specific capability ID (0x09) for its own purposes. Provide a structure for vendor specific extensions. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/62 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* Revert "content: add vendor specific cfg type"Michael S. Tsirkin2019-11-271-76/+0
| | | | This reverts commit 111d65c69c47090525eaa1ce43831e20657cbef3.
* Reserve device id 28 for virtio RPMB deviceHuang Yang2019-11-271-0/+2
| | | | | | | Signed-off-by: Huang Yang <yang.huang@intel.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/58
* Add virtio rpmb device specificationHuang Yang2019-11-271-0/+1
| | | | | | | | | | | 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>
* Revert "pci: strengthen requirement of the correct subsystem id"Michael S. Tsirkin2019-11-241-1/+1
| | | | | This reverts commit bc2cf84cc7b29349b6f7effdb955b83afaf298f7. Pushed by mistake.
* Revert "content: document speed, duplex"Michael S. Tsirkin2019-11-241-33/+0
| | | | | This reverts commit 72a801b9a53a4aeca759458c50be67cc32914a71. Pushed by mistake.
* Revert "virtio-rng: fix device/driver confusion"Michael S. Tsirkin2019-11-241-1/+1
| | | | | This reverts commit 3ea1af6afb4cccb9a12c59c27e9df74505e5289e. Pushed by mistake.
* virtio-rng: fix device/driver confusionMichael S. Tsirkin2019-11-241-1/+1
| | | | | | | | | | The point of rng is to give data to driver so of course all buffers are driver readable. What shouldn't be there is device readable buffers - this matches our terminology elsewhere too (read/write-ability is from POV of device). Fixes: https://github.com/oasis-tcs/virtio-spec/issues/55 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* content: document speed, duplexMichael S. Tsirkin2019-11-241-0/+33
| | | | | | | Document as used by Linux. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/59 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* pci: strengthen requirement of the correct subsystem idMichael S. Tsirkin2019-11-241-1/+1
| | | | | | | | | | | | | If a hardware implementation of virtio does not have the correct subsystem id, then drivers can't report ir properly, or detect and work around bugs. Change the requirement from MAY to SHOULD. We can't make it a MUST since we did not require this historically. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/61 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* content: add vendor specific cfg typeMichael S. Tsirkin2019-11-241-0/+76
| | | | | | | | | | | Vendors might want to add their own capability in the PCI capability list. However, Virtio already uses the vendor specific capability ID (0x09) for its own purposes. Provide a structure for vendor specific extensions. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/62 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* virtio-net: add missing articles for new hdr_len featureCornelia Huck2019-11-241-3/+3
| | | | | | | | And tweak a sentence slightly. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* virtio-net: Add support for correct hdr_len field.Vitaly Mireyno2019-11-241-10/+46
| | | | | | | | Includes device implementation note for using hdr_len Signed-off-by: Vitaly Mireyno <vmireyno@marvell.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/57
* Reserve id for virtio-audio devicePaolo Bonzini2019-11-241-0/+2
| | | | | | | | | | Project ACRN has a virtio-audio device. Unfortunately, the id they are using is already reserved in the virtio specification, but it is nevertheless useful to have one. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/42 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* Fix typoStefan Fritsch2019-11-241-1/+1
| | | | | | | | It's balloon, not ballon. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Stefan Fritsch <sf@sfritsch.de> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* virtio-mmio: Rename remaining QueueAvail/Used referencesJan Kiszka2019-11-241-5/+5
| | | | | | | | | These have been changed in ae98c6bc21bc. Convert the rest. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/52
* Balloon: Fix Memory Statistics structure sizePhilipp Hahn2019-10-271-1/+1
| | | | | | | | | | | | | | | | | | | | 5.5.6.3 Memory Statistics: 6 -> 10 byte > Within the buffer, statistics are an array of 6-byte entries. ^ > Each statistic consists of a 16 bit tag and a 64 bit value. ... > struct virtio_balloon_stat { ... > le16 tag; > le64 val; > } __attribute__((packed)); If my calculation is right that is a (16 + 64) = 80 bits which is a 10-byte sized entry - not 6-byte. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/45 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* virtio-blk: typo: Capitalization in Device Initialization itemEugenio Pérez2019-10-271-1/+1
| | | | | | | Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/51 Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* virtio_pci_common_cfg: fix field namePaolo Bonzini2019-10-271-1/+1
| | | | | | | | | The field is named config_msix_vector in the rest of the document, use the same name in the struct. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/41 Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* Console Device: Add a missing wordJan Kiszka2019-10-271-1/+1
| | | | Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
* block: Add multiqueueEugenio Pérez2019-10-271-4/+19
| | | | | | | | | | | | The spec miss that field. Add the field, some description around. I've followed the network device's multiqueue mentions, and copied / adapted when needed. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/50 Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* Lift "Driver Notifications" to section levelJan Kiszka2019-10-121-1/+1
| | | | | | | | | | Currently, it slips under the Packed Virtqueues section while it is not specific to this format. At this chance, capitalize "Notifications". Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* content: add virtio file system deviceStefan Hajnoczi2019-09-251-0/+1
| | | | | | | | | | | | | | | | | | The virtio file system device transports Linux FUSE requests between a FUSE daemon running on the host and the FUSE driver inside the guest. The actual FUSE request definitions are not duplicated in the virtio specification, similar to how virtio-scsi does not document SCSI command details. FUSE request definitions are available here: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/fuse.h This patch documents the core virtio file system device, which is functional but lacks the DAX feature introduced in the next patch. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/49
* content: explicitly document the VLAN filtering as best-effortTiwei Bie2019-09-081-0/+5
| | | | | | | | | | | | | Similar to the MAC address based filtering, the VLAN filtering is also best-effort in implementations, but it's not quite clear in the spec. So document this behaviour explicitly to reflect the way implementations behave. Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/47
* content: fix typo in feature bit nameTiwei Bie2019-09-081-1/+1
| | | | | | | Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/46 Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* shared memory: Typo fixDr. David Alan Gilbert2019-09-081-2/+2
| | | | | | | | | Fix double hex in SHM*High defs. 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> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* content: fix typoNikos Dragazis2019-09-081-1/+1
| | | | | | Signed-off-by: Nikos Dragazis <ndragazis@arrikto.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com>
* shared memory: Define mmio registersDr. David Alan Gilbert2019-07-251-0/+30
| | | | | | | | | | | Define an MMIO interface to discover and map 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>
* shared memory: Define PCI capabilityDr. David Alan Gilbert2019-07-251-0/+22
| | | | | | | | | 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>
* pci: Define virtio_pci_cap64Dr. David Alan Gilbert2019-07-251-0/+17
| | | | | | | | | | | | Define 'virtio_pci_cap64' to allow capabilities to describe memory regions larger than, or with an offset larger than 4GiB. This will be used by the shared memory region capability. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/40 Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* pci: Define id fieldDr. David Alan Gilbert2019-07-251-2/+10
| | | | | | | | | | For the virtio-fs device we require multiple large shared memory regions. Differentiate these by an 'id' field in the base capability. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/40 Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* shared memory: Define shared memory regionsDr. David Alan Gilbert2019-07-251-0/+2
| | | | | | | | | | 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>
* content: reserve device ID for virtio-pmem devicesPankaj Gupta2019-06-201-0/+2
| | | | | | | | | | | | | We need a device ID for virtio-pmem devices. As 25 is requested by audio device and 26 is requested by virtio-fs, so requesting next available(27). Also, updated the previously requested github issue[1] for voting. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/38 Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Pankaj Gupta <pagupta@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* content: reserve virtio device ID for file system devicesStefan Hajnoczi2019-06-201-0/+2
| | | | | | | | Reserve device ID 26 for virtio-fs devices. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/31 Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* editorial: add labelsMichael S. Tsirkin2019-03-241-2/+1
| | | | Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* block: drop duplicate textMichael S. Tsirkin2019-03-211-3/+1
| | | | | | | | | | | | | | | | | | | | | | In version 1.1 draft 01 - Section 5.2.6.4 - second bullet: Duplicated text "errors, data_len, sense_len and residual MUST reside in a single, separate device-writable descriptor" appears +both in the beginning and at the end of the 2nd sentence. The original text: For SCSI commands there are additional constraints. errors, data_len, sense_len and residual MUST reside in a single, separate device-writable descriptor, sense MUST reside in a single separate device-writable descriptor of size 96 bytes, and errors, data_len, sense_len and residual MUST reside a single separate device-writable descriptor. I suggest to delete the 1st one, so in the end result, fields are described in same order as appear in struct virtio_scsi_pc_req. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/39 Reported-by: Gil Savir <gil.savir@intel.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* editorial: explain each structure before useMichael S. Tsirkin2019-03-211-0/+3
| | | | | | | | | | | Several structures are listed before they are introduced in some way. Add a sentence before each one so they don't appear prior to any prose. Fixes: https://issues.oasis-open.org/browse/VIRTIO-166 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com>
* signal start and end of structures consistentlyMichael S. Tsirkin2019-03-211-6/+5
| | | | | | | | | | | | | Make sure all structs have the format: struct X { ... }; Fixes: https://issues.oasis-open.org/browse/VIRTIO-170 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com>
* format: replace "- i.e." with ", i.e.,"Michael S. Tsirkin2019-03-211-6/+6
| | | | | | | | | This seems to be preferred by native speakers, and seems just as effective as a sentence device. Fixes: https://issues.oasis-open.org/browse/VIRTIO-171 Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* virtio-blk: clarify semantics of multi-segment discard/write zeroes commandsStefan Hajnoczi2019-03-071-2/+21
| | | | | | | | | Describe the failure case and maximum number of segments in a multi-segment discard/write zeroes command. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/34 Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* virtio-blk: avoid inconsistent "DISCARD" termStefan Hajnoczi2019-03-071-1/+1
| | | | | | | | | "discard" (lowercase) is used throughout the text. Remove a lone instance of "DISCARD" (uppercase). Suggested-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* virtio-blk: describe write zeroes unmap semanticsStefan Hajnoczi2019-03-071-1/+3
| | | | | | | | | | Explain the meaning of the unmap flag. The details are already covered in the device normative section but mentioning it here makes the text easier to understand. Suggested-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* virtio-blk: move virtio_blk_discard_write_zeroes definitionStefan Hajnoczi2019-03-071-13/+16
| | | | | | | | | | struct virtio_blk_discard_write_zeroes is defined alongside struct virtio_blk_req but only discussed later in the text. Move it to where it belongs. Suggested-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* virtio-blk: document data[] size constraintsStefan Hajnoczi2019-03-071-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | The struct virtio_blk_req->data[] field is a multiple of 512 bytes long for read and write requests. Flush requests don't use data[] at all. The new discard and write zeroes requests being introduced in VIRTIO 1.1 put struct virtio_blk_discard_write_zeroes elements into data[], so it must be a multiple of the struct size. The uint8_t data[][512] pseudo-code makes it look like discard and write zeroes requests must pad to 512 bytes. This wastes memory since struct virtio_blk_discard_write_data is only 16 bytes long. Furthermore, all known implementations wishing to take advantage of this upcoming VIRTIO 1.1 feature do not use 512-byte padding (Linux virtio_blk.ko, QEMU virtio-blk device emulation, the SPDK virtio-blk driver, and the SPDK vhost-user-blk device backend). This patch documents the data[] size constraints clearly in the driver normative section. This is clearer than the current pseudo-code. Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Changpeng Liu <changpeng.liu@intel.com> Cc: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* ccw: be more precise about the semantic of revision 1Halil Pasic2019-02-271-1/+1
| | | | | | | | | | | | | | | | Revision 1 of the CCW transport is currently defined as virtio 1.0. This could become confusing when we bump the version of the virtio specification to 1.1, in a sense that it could be interpreted like one can not use any features not part of the 1.0 specification. So let us try to avoid confusion regarding the semantic of virtio-ccw revision 1. VIRTIO-163 Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* edit: drop obsolete commands related to cs02Michael S. Tsirkin2019-01-111-4/+1
| | | | Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* virtio-net: changing VIRTIO_NET_F_RSC_EXT from 38 to 61Yuri Benditovich2018-12-121-1/+1
| | | | | | | | Changing feature bit per TC request. Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Cornelia Huck <cohuck@redhat.com>
* content: RSC extension support for virtio-netYuri Benditovich2018-12-121-9/+29
| | | | | | | | | | | | | Allocates feature bit for extended RSC (receive side coalescing) support. If the device supports this feature, it is able to process duplicated ACKs and report number of coalesced TCP segments amd number of received duplicated ACKs. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/20 Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* packed-ring: fix queue size for pciMichael S. Tsirkin2018-12-121-2/+9
| | | | | | | | | | | | | PCI is the only transport that has text enforcing a power of two size for VQs. There's no real reason for it to do it, so document that it does not apply with the packed rings. Accordingly, drop the text "unless enforced by a transport" from packed ring description. Fixes: https://github.com/oasis-tcs/virtio-spec/issues/28 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>