Skip to main content

DeviceTxToken

Struct DeviceTxToken 

Source
pub struct DeviceTxToken<'a> { /* private fields */ }
Expand description

TX token representing one outgoing frame from smoltcp.

The token borrows the device so it can enqueue the produced frame when smoltcp finishes writing into the provided buffer.

Trait Implementations§

Source§

impl<'a> TxToken for DeviceTxToken<'a>

Source§

fn consume<R, F>(self, len: usize, f: F) -> R
where F: FnOnce(&mut [u8]) -> R,

Let smoltcp build one Ethernet frame and enqueue it for libkrun.

Flow:

smoltcp fills provided buffer
  -> adapter enqueues frame into host_to_guest
  -> sets frames_emitted
  -> poll loop later wakes the Unix-stream writer

The queue push is the handoff point. After that, this adapter no longer owns the frame bytes; the frame writer thread eventually serializes them onto the libkrun Unix stream.

Source§

fn set_meta(&mut self, meta: PacketMeta)

The Packet ID to be associated with the frame to be transmitted by this TxToken.

Auto Trait Implementations§

§

impl<'a> !UnwindSafe for DeviceTxToken<'a>

§

impl<'a> Freeze for DeviceTxToken<'a>

§

impl<'a> RefUnwindSafe for DeviceTxToken<'a>

§

impl<'a> Send for DeviceTxToken<'a>

§

impl<'a> Sync for DeviceTxToken<'a>

§

impl<'a> Unpin for DeviceTxToken<'a>

§

impl<'a> UnsafeUnpin for DeviceTxToken<'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,

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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>,

Source§

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

Source§

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more