public class Segments extends Object
Assumption: When requesting CORE segments (inter-ISD or intra-ISD), the path service will
return at least one segment for every AS in the src-ISD to connecting to every AS in the dst-ISD.
Intra-ISD this is ensured by mutual registration, inter-ISD this is ensured by sending PCB to all
other core-AS.
Source: ...
3.2. Core Path-Segment Registration
The core beaconing process creates path segments from core AS to core AS. These core-segments are
then added to the control service path database of the core AS that created the segment, so that
local and remote endpoints can obtain and use these core-segments. In contrast to the intra-ISD
registration procedure, there is no need to register core-segments with other core ASes (as each
core AS will receive PCBs originated from every other core AS).
| Modifier and Type | Method and Description |
|---|---|
static List<Daemon.Path> |
getPaths(SegmentLookupServiceGrpc.SegmentLookupServiceBlockingStub service,
ScionBootstrapper bootstrapper,
long srcIsdAs,
long dstIsdAs,
boolean minimizeLookups)
Lookup segments, construct paths, and return paths.
|
public static List<Daemon.Path> getPaths(SegmentLookupServiceGrpc.SegmentLookupServiceBlockingStub service, ScionBootstrapper bootstrapper, long srcIsdAs, long dstIsdAs, boolean minimizeLookups)
Implementation notes. The sequence diagrams Fig. 43. and 4.4 in the book (edition 2022) seems to suggest to always request UP, CORE and DOWN, even if paths without CORE are possible. The reference implementation (scionproto) optimizes this a bit by not requesting CORE iff there is only one CORE. Scionproto also uses prior knowledge of whether AS are CORE or not to determine which segments to request.
Here, we do things a bit differently because we may not have prior knowledge whether the destination is CORE or not.
service - Segment lookup servicebootstrapper - BootstrappersrcIsdAs - source ISD/ASdstIsdAs - destination ISD/ASminimizeLookups - If 'true', this attempts to reduce the number of segment request when
constructing a paths. This comes at the cost of having less path variety to chose from,
however, the shortest paths should always be available (unless there is a path with a CORE
segment that is shorter than a pure UP and/or DOWN path). This is similar, but not equal
to, depth-first search as proposed in the Scion book 2022, page 82.Copyright © 2024. All rights reserved.