# VirtIONet in virtio_drivers - Rust
The virtio network device is a virtual ethernet card.
Keywords: rust, rustlang, rust-lang, VirtIONet

# Struct virtio_drivers::VirtIONet

source · [−]

    pub struct VirtIONet<'a> { /* private fields */ }

Expand description

The virtio network device is a virtual ethernet card.

It has enhanced rapidly and demonstrates clearly how support for new features are added to an existing device. Empty buffers are placed in one virtqueue for receiving packets, and outgoing packets are enqueued into another for transmission in that order. A third command queue is used to control advanced filtering features.

## Implementations

source

### impl VirtIONet<'_>

source

#### pub fn new(header: &'static mut VirtIOHeader) -> Result<Self>

Create a new VirtIO-Net driver.

source

#### pub fn ack_interrupt(&mut self) -> bool

Acknowledge interrupt.

source

#### pub fn mac(&self) -> [ u8 ; 6]

Get MAC address.

source

#### pub fn can_send(&self) -> bool

Whether can send packet.

source

#### pub fn can_recv(&self) -> bool

Whether can receive packet.

source

#### pub fn recv(&mut self, buf: &mut [ u8 ]) -> Result<usize>

Receive a packet.

source

#### pub fn send(&mut self, buf: &[ u8 ]) -> Result

Send a packet.

## Auto Trait Implementations

### impl<'a> RefUnwindSafe for VirtIONet<'a>

### impl<'a> Send for VirtIONet<'a>

### impl<'a> Sync for VirtIONet<'a>

### impl<'a> Unpin for VirtIONet<'a>

### impl<'a> !UnwindSafe for VirtIONet<'a>

## 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,

const: unstable · source

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

source

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

const: unstable · source

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

Mutably borrows from an owned value. Read more

source

### impl<T> From<T> for T

const: unstable · source

#### fn from(t: T) -> T

Returns the argument unchanged.

source

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

const: unstable · 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.

const: unstable · 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.

const: unstable · source

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

Performs the conversion.