pub trait DeviceOps {
Show 27 methods
// Required methods
fn wlan_softmac_query_response(
&mut self,
) -> impl Future<Output = Result<WlanSoftmacQueryResponse, Status>>;
fn discovery_support(
&mut self,
) -> impl Future<Output = Result<DiscoverySupport, Status>>;
fn mac_sublayer_support(
&mut self,
) -> impl Future<Output = Result<MacSublayerSupport, Status>>;
fn security_support(
&mut self,
) -> impl Future<Output = Result<SecuritySupport, Status>>;
fn spectrum_management_support(
&mut self,
) -> impl Future<Output = Result<SpectrumManagementSupport, Status>>;
fn start(
&mut self,
ifc_bridge: ClientEnd<WlanSoftmacIfcBridgeMarker>,
ethernet_tx: EthernetTx,
wlan_rx: WlanRx,
) -> impl Future<Output = Result<Channel, Status>>;
fn deliver_eth_frame(&mut self, packet: &[u8]) -> Result<(), Status>;
fn send_wlan_frame(
&mut self,
buffer: ArenaStaticBox<[u8]>,
tx_flags: WlanTxInfoFlags,
async_id: Option<TraceId>,
) -> Result<(), Status>;
fn set_ethernet_status(
&mut self,
status: LinkStatus,
) -> impl Future<Output = Result<(), Status>>;
fn set_channel(
&mut self,
channel: WlanChannel,
) -> impl Future<Output = Result<(), Status>>;
fn start_passive_scan(
&mut self,
request: &WlanSoftmacBaseStartPassiveScanRequest,
) -> impl Future<Output = Result<WlanSoftmacBaseStartPassiveScanResponse, Status>>;
fn start_active_scan(
&mut self,
request: &WlanSoftmacStartActiveScanRequest,
) -> impl Future<Output = Result<WlanSoftmacBaseStartActiveScanResponse, Status>>;
fn cancel_scan(
&mut self,
request: &WlanSoftmacBaseCancelScanRequest,
) -> impl Future<Output = Result<(), Status>>;
fn join_bss(
&mut self,
request: &JoinBssRequest,
) -> impl Future<Output = Result<(), Status>>;
fn enable_beaconing(
&mut self,
request: WlanSoftmacBaseEnableBeaconingRequest,
) -> impl Future<Output = Result<(), Status>>;
fn disable_beaconing(&mut self) -> impl Future<Output = Result<(), Status>>;
fn install_key(
&mut self,
key_configuration: &WlanKeyConfiguration,
) -> impl Future<Output = Result<(), Status>>;
fn notify_association_complete(
&mut self,
assoc_cfg: WlanAssociationConfig,
) -> impl Future<Output = Result<(), Status>>;
fn clear_association(
&mut self,
request: &WlanSoftmacBaseClearAssociationRequest,
) -> impl Future<Output = Result<(), Status>>;
fn update_wmm_parameters(
&mut self,
request: &WlanSoftmacBaseUpdateWmmParametersRequest,
) -> impl Future<Output = Result<(), Status>>;
fn take_mlme_event_stream(&mut self) -> Option<UnboundedReceiver<MlmeEvent>>;
fn send_mlme_event(&mut self, event: MlmeEvent) -> Result<(), Error>;
fn set_minstrel(
&mut self,
minstrel: Arc<Mutex<MinstrelRateSelector<MinstrelTimer>>>,
);
fn minstrel(
&mut self,
) -> Option<Arc<Mutex<MinstrelRateSelector<MinstrelTimer>>>>;
// Provided methods
fn set_ethernet_up(&mut self) -> impl Future<Output = Result<(), Status>> { ... }
fn set_ethernet_down(&mut self) -> impl Future<Output = Result<(), Status>> { ... }
fn tx_vector_idx(
&mut self,
frame_control: &FrameControl,
peer_addr: &MacAddr,
flags: WlanTxInfoFlags,
) -> TxVecIdx { ... }
}
Expand description
This trait abstracts operations performed by the vendor driver and ethernet device.
Required Methods§
fn wlan_softmac_query_response( &mut self, ) -> impl Future<Output = Result<WlanSoftmacQueryResponse, Status>>
fn discovery_support( &mut self, ) -> impl Future<Output = Result<DiscoverySupport, Status>>
fn mac_sublayer_support( &mut self, ) -> impl Future<Output = Result<MacSublayerSupport, Status>>
fn security_support( &mut self, ) -> impl Future<Output = Result<SecuritySupport, Status>>
fn spectrum_management_support( &mut self, ) -> impl Future<Output = Result<SpectrumManagementSupport, Status>>
fn start( &mut self, ifc_bridge: ClientEnd<WlanSoftmacIfcBridgeMarker>, ethernet_tx: EthernetTx, wlan_rx: WlanRx, ) -> impl Future<Output = Result<Channel, Status>>
fn deliver_eth_frame(&mut self, packet: &[u8]) -> Result<(), Status>
Sourcefn send_wlan_frame(
&mut self,
buffer: ArenaStaticBox<[u8]>,
tx_flags: WlanTxInfoFlags,
async_id: Option<TraceId>,
) -> Result<(), Status>
fn send_wlan_frame( &mut self, buffer: ArenaStaticBox<[u8]>, tx_flags: WlanTxInfoFlags, async_id: Option<TraceId>, ) -> Result<(), Status>
Sends the slice corresponding to |buffer| as a frame over the air. If the caller does not pass an |async_id| to this function, then this function will generate its own |async_id| and end the trace if an error occurs.
fn set_ethernet_status( &mut self, status: LinkStatus, ) -> impl Future<Output = Result<(), Status>>
fn set_channel( &mut self, channel: WlanChannel, ) -> impl Future<Output = Result<(), Status>>
fn start_passive_scan( &mut self, request: &WlanSoftmacBaseStartPassiveScanRequest, ) -> impl Future<Output = Result<WlanSoftmacBaseStartPassiveScanResponse, Status>>
fn start_active_scan( &mut self, request: &WlanSoftmacStartActiveScanRequest, ) -> impl Future<Output = Result<WlanSoftmacBaseStartActiveScanResponse, Status>>
fn cancel_scan( &mut self, request: &WlanSoftmacBaseCancelScanRequest, ) -> impl Future<Output = Result<(), Status>>
fn join_bss( &mut self, request: &JoinBssRequest, ) -> impl Future<Output = Result<(), Status>>
fn enable_beaconing( &mut self, request: WlanSoftmacBaseEnableBeaconingRequest, ) -> impl Future<Output = Result<(), Status>>
fn disable_beaconing(&mut self) -> impl Future<Output = Result<(), Status>>
fn install_key( &mut self, key_configuration: &WlanKeyConfiguration, ) -> impl Future<Output = Result<(), Status>>
fn notify_association_complete( &mut self, assoc_cfg: WlanAssociationConfig, ) -> impl Future<Output = Result<(), Status>>
fn clear_association( &mut self, request: &WlanSoftmacBaseClearAssociationRequest, ) -> impl Future<Output = Result<(), Status>>
fn update_wmm_parameters( &mut self, request: &WlanSoftmacBaseUpdateWmmParametersRequest, ) -> impl Future<Output = Result<(), Status>>
fn take_mlme_event_stream(&mut self) -> Option<UnboundedReceiver<MlmeEvent>>
fn send_mlme_event(&mut self, event: MlmeEvent) -> Result<(), Error>
fn set_minstrel( &mut self, minstrel: Arc<Mutex<MinstrelRateSelector<MinstrelTimer>>>, )
fn minstrel( &mut self, ) -> Option<Arc<Mutex<MinstrelRateSelector<MinstrelTimer>>>>
Provided Methods§
fn set_ethernet_up(&mut self) -> impl Future<Output = Result<(), Status>>
fn set_ethernet_down(&mut self) -> impl Future<Output = Result<(), Status>>
fn tx_vector_idx( &mut self, frame_control: &FrameControl, peer_addr: &MacAddr, flags: WlanTxInfoFlags, ) -> TxVecIdx
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.