net_backend

Trait Endpoint

Source
pub trait Endpoint:
    Send
    + Sync
    + InspectMut {
    // Required methods
    fn endpoint_type(&self) -> &'static str;
    fn get_queues<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
        &'life0 mut self,
        config: Vec<QueueConfig<'life1>>,
        rss: Option<&'life2 RssConfig<'life3>>,
        queues: &'life4 mut Vec<Box<dyn Queue>>,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             'life3: 'async_trait,
             'life4: 'async_trait;
    fn stop<'life0, 'async_trait>(
        &'life0 mut self,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;

    // Provided methods
    fn is_ordered(&self) -> bool { ... }
    fn tx_offload_support(&self) -> TxOffloadSupport { ... }
    fn multiqueue_support(&self) -> MultiQueueSupport { ... }
    fn tx_fast_completions(&self) -> bool { ... }
    fn set_data_path_to_guest_vf<'life0, 'async_trait>(
        &'life0 self,
        _use_vf: bool,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait { ... }
    fn get_data_path_to_guest_vf<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait { ... }
    fn wait_for_endpoint_action<'life0, 'async_trait>(
        &'life0 mut self,
    ) -> Pin<Box<dyn Future<Output = EndpointAction> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait { ... }
    fn link_speed(&self) -> u64 { ... }
}
Expand description

A network endpoint.

Required Methods§

Source

fn endpoint_type(&self) -> &'static str

Returns an informational endpoint type.

Source

fn get_queues<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 mut self, config: Vec<QueueConfig<'life1>>, rss: Option<&'life2 RssConfig<'life3>>, queues: &'life4 mut Vec<Box<dyn Queue>>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Initializes the queues associated with the endpoint.

initial_rx contains the initial set of receives buffers that are available.

Source

fn stop<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Stops the endpoint.

All queues returned via get_queues must have been dropped.

Provided Methods§

Source

fn is_ordered(&self) -> bool

Specifies whether packets are always completed in order.

Source

fn tx_offload_support(&self) -> TxOffloadSupport

Specifies the supported set of transmit offloads.

Source

fn multiqueue_support(&self) -> MultiQueueSupport

Specifies parameters related to supporting multiple queues.

Source

fn tx_fast_completions(&self) -> bool

If true, transmits are guaranteed to complete quickly. This is used to allow eliding tx notifications from the guest when there are already some tx packets in flight.

Source

fn set_data_path_to_guest_vf<'life0, 'async_trait>( &'life0 self, _use_vf: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Sets the current data path for packet flow (e.g. via vmbus synthnic or through virtual function). This is only supported for endpoints that pair with an accelerated device.

Source

fn get_data_path_to_guest_vf<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn wait_for_endpoint_action<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = EndpointAction> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

On completion, the return value indicates the specific endpoint action to take.

Link speed in bps.

Implementors§