• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Upcoming
2
3# v0.14.0
4
5## Changed
6
7- Updated vm-memory from 0.15.0 to 0.16.0
8- Updated virtio-bindings from 0.2.3 to 0.2.4.
9
10# v0.13.0
11
12## Changed
13
14- Updated vm-memory from 0.14.0 to 0.15.0
15- Updated virtio-bindings from 0.2.2 to 0.2.3.
16
17# v0.12.0
18
19## Added
20- `Reader`/`Writer` classes to iterate over descriptors
21
22# v0.11.0
23
24## Changed
25- Updated vm-memory from 0.13.1 to 0.14.0
26- Updated vmm-sys-util from 0.11.0 to 0.12.1
27
28# v0.10.0
29
30Identical to v0.9.1, which was incorrectly published as minor release.
31
32# v0.9.1 - yanked
33
34This version got yanked. It should have been a major release. The vm-memory
35dependency - which received a major bump - is part of the public interface.
36
37## Changed
38- Updated vm-memory from 0.12.0 to 0.13.1.
39- Updated dev-dependencies:
40  - criterion (0.3.0 -> 0.5.1)
41  - memoffset (0.7.1 -> 0.9.0)
42
43# v0.9.0
44
45## Changed
46- Updated vm-memory from 0.11.0 to 0.12.0.
47
48# v0.8.0
49
50## Changed
51- Terminate iterating descriptor chains that are longer than 2^32 bytes.
52- Updated vm-memory from 0.10.0 to 0.11.0.
53- Updated virtio-bindings from 0.1.0 to 0.2.0.
54
55# v0.7.1
56
57## Fixed
58- Skip indirect descriptor address alignment check, the virtio spec has
59  no alignment requirement on this, see `2.6.5.3 Indirect Descriptors`
60  and `2.7.7 Indirect Flag: Scatter-Gather Support` in virtio 1.0.
61- Update the `add_desc_chains` mock function such that it works on big endian
62  hosts as well.
63- Check that the queue is ready for processing requests when calling the
64  iterator functions. For now the checks are limited to the avail address and
65  the ready fields, but should be extended in the future to account for other
66  fields that could signal an invalid queue. This behavior can be triggered
67  by doing a `reset` followed by a `pop_descriptor_chain`.
68
69# v0.7.0
70
71## Changed
72
73- Updated vmm-sys-util from 0.10.0 to 0.11.0.
74- Updated vm-memory from 0.9.0 to 0.10.0.
75
76# v0.6.1
77
78## Fixed
79- Return an error if the number of available descriptor chains exposed by the
80  driver exceeds the queue size. This way we avoid potential hanging and
81  Denial-of-Service in the VMM, that was possible before by iterating multiple
82  times over the same chains.
83
84# v0.6.0
85
86## Added
87- Derive `Eq` for structures that derive `PartialEq`.
88
89## Changed
90- Use `add_desc_chains` in tests
91- Update dependencies: `vm-memory` from `0.8.0` to `0.9.0` and `log` from `0.4.6` to `0.4.17`.
92- Upgrade to Rust 2021 edition.
93
94# v0.5.0
95
96## Added
97- Added getters and setters for the Virtio Queue fields.
98- Added the `state` method for retrieving the `QueueState` of a `Queue`.
99
100## Fixed
101- Validate the state of the Virtio Queue when restoring from state and return errors on invalid
102  input.
103
104## Removed
105- Removed the wrapper over the Virtio Queue that was wrapping the Guest Memory. VMMs can define
106  this wrapper if needed, but this is no longer provided as part of virtio-queue crate so that the
107  naming scheme can be simplified. As a consequence, a couple of functions now receive the
108  memory as a parameter (more details in the Changed section).
109- Removed `num_added` field from the `QueueState` because this is an implementation detail of
110  the notification suppression feature and thus should not be part of the state.
111- Removed `QueueGuard` and `lock_with_memory`.
112
113## Changed
114- `QueueState` is now renamed to `Queue`.
115- `QueueStateSync` is now renamed to `QueueSync`.
116- The `QueueState` structure now represents the state of the `Queue` without any implementation
117  details. This can be used for implementing save/restore.
118- Initializing a `Queue` now returns an error in case the `max_size` is invalid.
119- The `Queue` fields are now private and can be updated only through the dedicated setters.
120- The following Queue methods now receive the memory as a parameter: `iter`, `is_valid`,
121  `add_used`, `needs_notification`, `enable_notification`, `disable_notification`, `avail_idx`,
122  `used_idx`.
123- Use the constant definition from the `virtio-queue` crate.
124
125# v0.4.0
126
127## Fixed
128- [[#173]](https://github.com/rust-vmm/vm-virtio/pull/173) Fix potential division by zero in
129  iterator when the queue size is 0.
130
131## Changed
132- [[#162]](https://github.com/rust-vmm/vm-virtio/pull/162) Added error handling in the mock
133  interface and the ability to create multiple descriptor chains for testing in order to
134  support running fuzzing.
135- [[#174]](https://github.com/rust-vmm/vm-virtio/pull/174) Updated the `avail_idx` and `used_idx`
136  documentation to specify when these functions panic.
137
138
139# v0.3.0
140
141## Added
142- [[#148]](https://github.com/rust-vmm/vm-virtio/pull/148): `QueueStateOwnedT` trait that stands
143  for queue objects which are exclusively owned and accessed by a single thread of execution.
144- [[#148]](https://github.com/rust-vmm/vm-virtio/pull/148): Added the `pop_descriptor_chain`
145  method, which can be used to consume descriptor chains from the available ring without
146  using an iterator, to `QueueStateT` and `QueueGuard`. Also added `go_to_previous_position()`
147  to `QueueGuard`, which enables decrementing the next available index by one position, which
148  effectively undoes the consumption of a descriptor chain in some use cases.
149- [[#151]](https://github.com/rust-vmm/vm-virtio/pull/151): Added `MockSplitQueue::add_desc_chain()`,
150  which places a descriptor chain at the specified offset in the descriptor table.
151- [[#153]](https://github.com/rust-vmm/vm-virtio/pull/153): Added `QueueStateT::size()` to return
152  the size of the queue.
153
154## Changed
155- The minimum version of the `vm-memory` dependency is now `v0.8.0`
156- [[#161]](https://github.com/rust-vmm/vm-virtio/pull/161): Improve the efficiency of `needs_notification`
157
158## Removed
159- [[#153]](https://github.com/rust-vmm/vm-virtio/pull/153): `#[derive(Clone)]` for `QueueState`
160
161# v0.2.0
162
163## Added
164
165- *Testing Interface*: Added the possibility to initialize a mock descriptor
166  chain from a list of descriptors.
167- Added setters and getters for the queue fields required for extending the
168  `Queue` in VMMs.
169
170## Fixed
171
172- Apply the appropriate endianness conversion on `used_idx`.
173
174# v0.1.0
175
176This is the first release of the crate.
177