Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PS/SD: Change lookup strategy #2454

Closed
lukedirtwalker opened this issue Feb 13, 2019 · 1 comment · Fixed by #2997
Closed

PS/SD: Change lookup strategy #2454

lukedirtwalker opened this issue Feb 13, 2019 · 1 comment · Fixed by #2997
Assignees
Labels
Milestone

Comments

@lukedirtwalker
Copy link
Collaborator

When trying to limit the amount of segments a PS returns (#2452 ) we came to the conclusion that in the current state the PS basically needs to do pathcombination. We feel that the PS should not contain that logic.

Instead the PS should only ever return one type of segment (up, core, or down).
Sciond will still query the local PS, but it might need to do so multiple times depending on the destination.
With this the amount of returned queries can be regulated very easily in the PS, also it will be possible to create more paths in sciond because we can have max segments (or even more see example) for each type of segment instead of only max segments for the whole path.

Lookup example non-core A to remote non-core B:

  1. sciond queries the local PS with dst B
  2. PS returns down segments C -> B and D-> B
  3. sciond queries the local PS for core segments to C
  4. PS returns core seg C -> E
  5. sciond queries the local PS for core segments to D
  6. PS returns core seg D -> F
  7. sciond has up segments to E cached so no need to query the PS
  8. sciond queries the local PS for up segments to F
  9. sciond combines all the segments and returns the resulting paths.
@lukedirtwalker
Copy link
Collaborator Author

Actually we should probably get up and down segments in parallel and after that fetch the needed core segments to connect up and down (optimally this should be a single request).

@lukedirtwalker lukedirtwalker added this to the Q3S1 milestone Jul 9, 2019
@lukedirtwalker lukedirtwalker self-assigned this Jul 9, 2019
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Jul 24, 2019
This is the first part of the new path lookup strategy.
It splits up a request into up, core, and down parts.

Contributes scionproto#2454
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Jul 24, 2019
This is the first part of the new path lookup strategy.
It splits up a request into up, core, and down parts.

Contributes scionproto#2454
lukedirtwalker added a commit that referenced this issue Jul 24, 2019
This is the first part of the new path lookup strategy.
It splits up a request into up, core, and down parts.

Contributes #2454
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Jul 25, 2019
Resolver locally looks up segments it finds and returns a full or partial result of segments.

Contributes scionproto#2454
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Jul 25, 2019
Resolver locally looks up segments it finds and returns a full or partial result of segments.

Contributes scionproto#2454
lukedirtwalker added a commit that referenced this issue Jul 25, 2019
Resolver locally looks up segments it finds and returns a full or partial result of segments.

Contributes #2454
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Jul 25, 2019
Adds a requester component that fetches segments from a remote server.

Contributes scionproto#2454
lukedirtwalker added a commit that referenced this issue Jul 26, 2019
Adds a requester component that fetches segments from a remote server.

Contributes #2454
@scrye scrye modified the milestones: Q3S1, Q3S2 Jul 31, 2019
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Aug 6, 2019
For scionproto#2454 we need to include src in the NextQuery table.
For policies in path lookups we need policy.

Note that existing deployments need to update the database, this is best done by nuking the NextQuery table and create it fresh.

Migration instructions:
Upgrade sqlite DB:
`sqlite3 gen-cache/sd1-ff00_0_111.path.db < go/lib/pathdb/sqlite/migrate_7_8.up.sql`

Contributes scionproto#2454
lukedirtwalker added a commit that referenced this issue Aug 6, 2019
For #2454 we need to include src in the NextQuery table.
For policies in path lookups we need policy.

Note that existing deployments need to update the database, this is best done by nuking the NextQuery table and create it fresh.

Migration instructions:
Upgrade sqlite DB:
`sqlite3 gen-cache/sd1-ff00_0_111.path.db < go/lib/pathdb/sqlite/migrate_7_8.up.sql`

Contributes #2454
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Aug 7, 2019
This commit finalizes the segfetcher module so that it can be integrated into SD&PS as a next step.

Contributes scionproto#2454
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Aug 8, 2019
This commit finalizes the segfetcher module so that it can be integrated into SD&PS as a next step.

Contributes scionproto#2454
lukedirtwalker added a commit that referenced this issue Aug 8, 2019
This commit finalizes the segfetcher module so that it can be integrated into SD&PS as a next step.

Contributes #2454
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Aug 9, 2019
Add all the bits needed to use the new lookup logic via the segfetcher module in the PS.

Contributes scionproto#2454
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Aug 9, 2019
Add all the bits needed to use the new lookup logic via the segfetcher module in the PS.

Contributes scionproto#2454
lukedirtwalker added a commit that referenced this issue Aug 9, 2019
Add all the bits needed to use the new lookup logic via the segfetcher module in the PS.

Contributes #2454
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Aug 13, 2019
This is needed for the new path lookup strategy and for the policy integration in path lookup.

Contributes scionproto#2454
lukedirtwalker added a commit that referenced this issue Aug 13, 2019
This is needed for the new path lookup strategy and for the policy integration in path lookup.

Contributes #2454
lukedirtwalker added a commit that referenced this issue Aug 27, 2019
This makes it possible to easily refetch segments for revoked links.
Also for sciond we need to delete next query entries for the refresh flag.

Contributes #2454
lukedirtwalker added a commit to lukedirtwalker/scion that referenced this issue Aug 27, 2019
Integrates the new path lookup strategy into sciond and PS.

This is a breaking change, the PS and sciond have completely different semantics for path lookups.

Fixes scionproto#2834
Fixes scionproto#2835
Fixes scionproto#2454
lukedirtwalker added a commit that referenced this issue Aug 27, 2019
Integrates the new path lookup strategy into sciond and PS.

This is a breaking change, the PS and sciond have completely different semantics for path lookups.

Fixes #2834
Fixes #2835
Fixes #2454
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants