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

BR for Hummingbird #162

Open
wants to merge 101 commits into
base: scionlab
Choose a base branch
from
Open

Conversation

juagargi
Copy link
Member

@juagargi juagargi commented Mar 12, 2024

Hummingbird Border Router.

Library additions also integrated in this PR, original from julesmba#1

TODO:

  • Fix integration not passing for wide and default topologies.
  • Rebase

This change is Reviewable

julesmba and others added 30 commits October 26, 2023 09:57
added functions computing ak, vk
added 16 bytes comparison with time measurements
removed inefficient functions
added comparing vk with measurements
fixed mac and mac test correctness
changed dstIA to addr.IA type
fixed padding in deriveAuthKey, added a deriveAuthKey version using preinitialized block, added measurement for mac
added tests for comparing vk while ignoring padding
rewrote mac computation (except aes encryption) by hand
added function that does not make a cbcEncrypter
added copy-paste of cipher aes implementation to not perform make
added separate measurements tests for the different function versions
renamed mac function to FlyoverMac and added a 256bits version of the auth key computation
added some comments
now uses assembly functions (copy/pasted from go libs) for flyover mac
removed obsolete functions, look at previous commits to look at them
shortened computation of K2
added copy paste of  ppc64 aes assembly implementation
amd64 assembly not doing decryption keys expansion anymore, hopefully arm64 not either
removed dec key expansion from arm and ppc64 assembly code, removed dummy array used for storing these
added comment concerning removal of dec in expandKeyAsm
fixed hopfield SerializeTo too short error message
changed ak computation to take resId, bw, start- and endtime as values input rather than bytes
removed error as possibly function output for ak and vk computations
updated ak and vk computation to new standard, updated tests to compare to library cmac and cbc implementations, updated runtime measurements to use go Benchmarking
moved humminbird to pkg/slayers/path/hummingbird. Removed unused aes_const.go file
Extend the benchmarks with a manual computation of Ak.
added flyoverHopField
added support for hummingbird pathmetahdr. Kinda ugly but should work
updated compare vk to compare 6 bytes of data
added decoded and raw handling hummingbird data. added tests for hummingbird
added basic forwarding in dataplane and tests
fixed hummingbird path reversal
added decoded reverse test for hummingbird in decoded_test
fixed path reversal correctness, wrote test to verify flyover suppression in final result
added mac deaggregation not happening on AStransit ingress. Fixed relevant tests
Fix BAZEL build files.
moved most hbird code into separate files
reintroduced p.cachedMAC for usage by EPIC
replaced segmentChange by effectiveXover in hbird functions
fixed all tests
fixed buffers for mac computation
fixed other compilation issues
… as it necessites deaggregated mac, added additional log output for mac verification failure
…r, integration test no longer fails beacause of that missing. Flags for integration test now functional
…g flyovers to other hop on crossover. Adapted tests accordingly
…licate of the ones in the hummingbird package
…ines and HopLines hummingbird variables wherever possible
The assignment of the flyover is equivalent.
Removed unnecessary fields from Hop and Reservation.
The new integration test uses sciond, the scion daemon.
Nil messages in gRPC are deserialized as default-constructed vars,
not nils.
Extend tests.
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.

2 participants