Skip to content

Commit 08a4690

Browse files
net: added helper functions for queue manipulation.
Signed-off-by: Cihodaru Alexandru <[email protected]>
1 parent 531db02 commit 08a4690

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/devices/src/virtio/net/test_utils.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,25 @@ pub(crate) fn inject_tap_tx_frame(net: &Net, len: usize) -> Vec<u8> {
252252
frame
253253
}
254254

255+
pub fn write_element_in_queue(net: &Net, idx: usize, val: u64) -> result::Result<(), DeviceError> {
256+
if idx > net.queue_evts.len() {
257+
return Err(DeviceError::QueueError(QueueError::DescIndexOutOfBounds(
258+
idx as u16,
259+
)));
260+
}
261+
net.queue_evts[idx].write(val).unwrap();
262+
Ok(())
263+
}
264+
265+
pub fn get_element_from_queue(net: &Net, idx: usize) -> result::Result<u64, DeviceError> {
266+
if idx > net.queue_evts.len() {
267+
return Err(DeviceError::QueueError(QueueError::DescIndexOutOfBounds(
268+
idx as u16,
269+
)));
270+
}
271+
Ok(net.queue_evts[idx].as_raw_fd() as u64)
272+
}
273+
255274
pub fn default_guest_mac() -> MacAddr {
256275
MacAddr::parse_str("11:22:33:44:55:66").unwrap()
257276
}
@@ -274,6 +293,7 @@ pub fn assign_queues(net: &mut Net, rxq: Queue, txq: Queue) {
274293

275294
#[cfg(test)]
276295
pub mod test {
296+
use crate::check_metric_after_block;
277297
use crate::virtio::net::device::vnet_hdr_len;
278298
use crate::virtio::net::test_utils::{
279299
assign_queues, check_used_queue_signal, default_net, inject_tap_tx_frame, NetEvent,
@@ -294,7 +314,6 @@ pub mod test {
294314
use std::sync::{Arc, Mutex, MutexGuard};
295315
use utils::epoll::{EpollEvent, EventSet};
296316
use vm_memory::{Address, Bytes, GuestAddress, GuestMemoryMmap};
297-
use crate::check_metric_after_block;
298317

299318
pub struct TestHelper<'a> {
300319
pub event_manager: EventManager,

0 commit comments

Comments
 (0)