vmm/devices/virtio/net/
mod.rs1use std::io;
7
8pub const NET_QUEUE_MAX_SIZE: u16 = 256;
10pub const MAX_BUFFER_SIZE: usize = 65562;
12pub const NET_NUM_QUEUES: usize = 2;
14pub const NET_QUEUE_SIZES: [u16; NET_NUM_QUEUES] = [NET_QUEUE_MAX_SIZE; NET_NUM_QUEUES];
15pub const RX_INDEX: usize = 0;
17pub const TX_INDEX: usize = 1;
19
20pub mod device;
21mod event_handler;
22pub mod metrics;
23pub mod persist;
24mod tap;
25pub mod test_utils;
26
27mod generated;
28
29pub use tap::{Tap, TapError};
30use vm_memory::VolatileMemoryError;
31
32pub use self::device::Net;
33use super::iovec::IoVecError;
34use crate::devices::virtio::queue::{InvalidAvailIdx, QueueError};
35
36#[derive(Debug)]
38pub enum NetQueue {
39 Rx,
41 Tx,
43}
44
45#[derive(Debug, thiserror::Error, displaydoc::Display)]
47pub enum NetError {
48 TapOpen(TapError),
50 TapSetVnetHdrSize(TapError),
52 EventFd(io::Error),
54 IO(io::Error),
56 GuestMemoryError(#[from] VolatileMemoryError),
58 VnetHeaderMissing,
60 IoVecError(#[from] IoVecError),
62 QueueError(#[from] QueueError),
64 InvalidAvailIdx(#[from] InvalidAvailIdx),
66}