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§
Sourcefn endpoint_type(&self) -> &'static str
fn endpoint_type(&self) -> &'static str
Returns an informational endpoint type.
Sourcefn 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 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.
Provided Methods§
Sourcefn is_ordered(&self) -> bool
fn is_ordered(&self) -> bool
Specifies whether packets are always completed in order.
Sourcefn tx_offload_support(&self) -> TxOffloadSupport
fn tx_offload_support(&self) -> TxOffloadSupport
Specifies the supported set of transmit offloads.
Sourcefn multiqueue_support(&self) -> MultiQueueSupport
fn multiqueue_support(&self) -> MultiQueueSupport
Specifies parameters related to supporting multiple queues.
Sourcefn tx_fast_completions(&self) -> bool
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.
Sourcefn 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 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.
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,
Sourcefn 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 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.
Sourcefn link_speed(&self) -> u64
fn link_speed(&self) -> u64
Link speed in bps.