Expand description
§Path manager
A PathManager provides applications with SCION paths. The method PathManager::path_wait is an async implementation that possibly awaits asynchronous, external path requests before returning. The sync-equivalent is SyncPathManager::try_cached_path which returns immediately in all cases.
The main implementation provided in this module is the CachingPathManager
which is an active component: CachingPathManager::start will start an
asynchronous background task (via tokio::spawn) that fetches requested
paths using the provided PathFetcher.
Constraints on the used path, like e.g. not using certain ASes, or preferring paths with low latency, can be expressed using PathPolicies and PathRankings.
PathPolicies are used to filter out unwanted paths. PathRankings are used to rank paths based on their characteristics.
Structs§
- Caching
Path Manager - Active path manager that runs as a background task
- Connect
RpcSegment Fetcher - Connect RPC segment fetcher.
- Path
Fetcher Impl - Path fetcher.
- Segments
- Path segments.
Enums§
- Path
Fetch Error - Path fetch errors.
- Path
ToError - Path fetch errors.
- Path
Wait Error - Path wait errors.
Traits§
- Path
Fetcher - Path fetcher trait.
- Path
Manager - Trait for active path management with async interface.
- Path
Prefetcher - Trait for prefetching paths in the path manager.
- Segment
Fetcher - Segment fetcher trait.
- Sync
Path Manager - Trait for active path management with sync interface. Implementors of this trait should be able to be used in sync and async context. The functions must not block.
Type Aliases§
- Segment
Fetch Error - Segment fetch error.