pub struct MultipathController { /* private fields */ }
Expand description
Multipath I/O controller.
Implementations§
Source§impl MultipathController
impl MultipathController
Sourcepub fn new(rpfr_config: RpfrConfig, path_selector: PathSelector) -> Self
pub fn new(rpfr_config: RpfrConfig, path_selector: PathSelector) -> Self
Create a new multipath controller.
Sourcepub fn add_path(&self, path: ControllerPath)
pub fn add_path(&self, path: ControllerPath)
Add a controller path.
Sourcepub fn select_path(
&self,
_namespace_id: u32,
timestamp: u64,
) -> Result<u32, Error>
pub fn select_path( &self, _namespace_id: u32, timestamp: u64, ) -> Result<u32, Error>
Select the best path based on configured strategy.
Sourcepub fn handle_path_failure(
&self,
path_id: u32,
timestamp: u64,
) -> Result<u32, Error>
pub fn handle_path_failure( &self, path_id: u32, timestamp: u64, ) -> Result<u32, Error>
Handle path failure with RPFR.
Sourcepub fn recover_failed_paths(&self, timestamp: u64) -> Vec<u32>
pub fn recover_failed_paths(&self, timestamp: u64) -> Vec<u32>
Attempt to recover failed paths.
Sourcepub fn update_ana_group(&self, group: AnaGroup)
pub fn update_ana_group(&self, group: AnaGroup)
Update ANA group information.
Sourcepub fn get_ana_state(
&self,
namespace_id: u32,
controller_id: u16,
) -> Option<AnaState>
pub fn get_ana_state( &self, namespace_id: u32, controller_id: u16, ) -> Option<AnaState>
Get ANA state for namespace and controller.
Sourcepub fn get_path_stats(&self, path_id: u32) -> Option<PathStats>
pub fn get_path_stats(&self, path_id: u32) -> Option<PathStats>
Get path statistics.
Sourcepub fn get_all_path_stats(&self) -> Vec<PathStats>
pub fn get_all_path_stats(&self) -> Vec<PathStats>
Get all path statistics.
Sourcepub fn get_rpfr_config(&self) -> &RpfrConfig
pub fn get_rpfr_config(&self) -> &RpfrConfig
Get RPFR configuration.
Sourcepub fn update_rpfr_config(&mut self, config: RpfrConfig)
pub fn update_rpfr_config(&mut self, config: RpfrConfig)
Update RPFR configuration.
Auto Trait Implementations§
impl !Freeze for MultipathController
impl !RefUnwindSafe for MultipathController
impl Send for MultipathController
impl Sync for MultipathController
impl Unpin for MultipathController
impl UnwindSafe for MultipathController
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more