pub struct NetBackend<T: TapT + IntoAsync> {
    tap: T,
    avail_features: u64,
    acked_features: u64,
    mtu: u16,
    workers: [Option<(TaskHandle<Queue>, Sender<()>)>; 3],
}

Fields§

§tap: T§avail_features: u64§acked_features: u64§mtu: u16§workers: [Option<(TaskHandle<Queue>, Sender<()>)>; 3]

Implementations§

source§

impl<T> NetBackend<T>
where T: TapT + IntoAsync + 'static,

source

fn new_from_config(config: &TapConfig) -> Result<Self>

source

fn new_from_name(name: &str) -> Result<Self>

source

pub fn new_from_tap_fd(tap_fd: RawDescriptor) -> Result<Self>

source

pub fn new(tap: T) -> Result<Self>

source§

impl<T> NetBackend<T>
where T: TapT + IntoAsync + 'static,

Trait Implementations§

source§

impl<T> AsRawDescriptors for NetBackend<T>
where T: TapT + IntoAsync + AsRawDescriptors + 'static,

source§

fn as_raw_descriptors(&self) -> Vec<RawDescriptor>

Returns the underlying raw descriptors. Read more
source§

impl<T> VhostUserDevice for NetBackend<T>
where T: TapT + IntoAsync + 'static,

source§

fn max_queue_num(&self) -> usize

The maximum number of queues that this backend can manage.
source§

fn features(&self) -> u64

The set of feature bits that this backend supports.
source§

fn ack_features(&mut self, value: u64) -> Result<()>

Acknowledges that this set of features should be enabled. Read more
source§

fn protocol_features(&self) -> VhostUserProtocolFeatures

The set of protocol feature bits that this backend supports.
source§

fn read_config(&self, offset: u64, data: &mut [u8])

Reads this device configuration space at offset.
source§

fn reset(&mut self)

Resets the vhost-user backend.
source§

fn start_queue( &mut self, idx: usize, queue: Queue, mem: GuestMemory ) -> Result<()>

Indicates that the backend should start processing requests for virtio queue number idx. This method must not block the current thread so device backends should either spawn an async task or another thread to handle messages from the Queue.
source§

fn stop_queue(&mut self, idx: usize) -> Result<Queue>

Indicates that the backend should stop processing requests for virtio queue number idx. This method should return the queue passed to start_queue for the corresponding idx. This method will only be called for queues that were previously started by start_queue.
source§

fn enter_suspended_state(&mut self) -> Result<()>

Enter the “suspended device state” described in the vhost-user spec. See the spec for requirements. Read more
source§

fn snapshot(&mut self) -> Result<Value>

Snapshot device and return serialized state.
source§

fn restore(&mut self, data: Value) -> Result<()>

Restore device state from a snapshot.
source§

fn write_config(&self, _offset: u64, _data: &[u8])

writes data to this device’s configuration space at offset.
source§

fn get_shared_memory_region(&self) -> Option<SharedMemoryRegion>

Returns the device’s shared memory region if present.
source§

fn set_backend_req_connection(&mut self, _conn: Arc<VhostBackendReqConnection>)

Accepts VhostBackendReqConnection to conduct Vhost backend to frontend message handling. Read more
source§

impl<T> VhostUserDeviceBuilder for NetBackend<T>
where T: TapT + IntoAsync + 'static,

source§

fn build(self: Box<Self>, ex: &Executor) -> Result<Box<dyn Backend>>

Create the vhost-user device. Read more

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for NetBackend<T>

§

impl<T> Send for NetBackend<T>

§

impl<T> Sync for NetBackend<T>
where T: Sync,

§

impl<T> Unpin for NetBackend<T>
where T: Unpin,

§

impl<T> !UnwindSafe for NetBackend<T>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V