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

FABRID base version #170

Merged
merged 26 commits into from
Sep 20, 2024

Conversation

jeltevanbommel
Copy link

@jeltevanbommel jeltevanbommel commented Sep 20, 2024

Control plane features:

  • Definition of FABRID policies and connection points on which they are available
  • CS loads policies and appends maps for policy indices and connection points as detachable extensions to PCBs
  • Remote CSes cache FABRID maps
  • SD fetches detached extensions on request

Data plane features:

  • Fabrid and Identifier HBH extensions for sending FABRID traffic
  • WithFabrid option for choosing paths based on the fabrid query
  • Fabrid dataplane path which sets HBH extensions
  • BR fetches DRKey secret values and fabrid config on startup
  • BR validates and updates FABRID HVFs

Tools:

  • topology: --fabrid flag enables DRKey and fabrid for local topology
  • ping: select fabrid policies with --fabridquery flag
  • end2end: run integration test with --fabrid to test path validation

Demo:

  1. ./scion.sh topology --fabrid (docker: ./scion.sh topology -d --endhosts --fabrid)
  2. ./scion.sh run
  3. ./bin/end2end_integration --fabrid (docker: ./bin/end2end_integration -d --fabrid)
  4. ./scion.sh stop

Upstream changes:


This change is Reviewable

Marc Odermatt and others added 26 commits September 20, 2024 12:28
- FABRID policies are defined with description, identifier, and a set of supported connection points
- CSes load policies and validate them
- CS appends maps for policy indices and supported connections to beacons
- Remote CSes cache policy information from beacons
- passes linter
- SD adds FABRID policies to paths
- SD uses correct local address for fetching DRKeys
- FabridKeys function fetches required ASHost keys and the HostHost key
Also fixed linting error
SetExtensions method on dataplane paths is called during serialization, setting the HBH and E2E extension headers
- Fabrid and Identifier HBH extensions for sending FABRID traffic
- Fabrid crypto library for computing HVFs and the path validator
Passing the WithFabrid option when choosing a path, selects an appropriate path based on the fabrid query and creates a fabrid dataplane path.
- BR fetches DRKey secret values and fabrid config on startup
- BR validates and updates FABRID HVFs
- ping: select fabrid policies with --fabridquery flag
- end2end: run integration test with --fabrid to test path validation
@jeltevanbommel jeltevanbommel merged commit 40e047e into netsec-ethz:scionlab Sep 20, 2024
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants