Module manager

Module manager 

Source
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§

CachingPathManager
Active path manager that runs as a background task
ConnectRpcSegmentFetcher
Connect RPC segment fetcher.
PathFetcherImpl
Path fetcher.
Segments
Path segments.

Enums§

PathFetchError
Path fetch errors.
PathToError
Path fetch errors.
PathWaitError
Path wait errors.

Traits§

PathFetcher
Path fetcher trait.
PathManager
Trait for active path management with async interface.
PathPrefetcher
Trait for prefetching paths in the path manager.
SegmentFetcher
Segment fetcher trait.
SyncPathManager
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§

SegmentFetchError
Segment fetch error.