-
Notifications
You must be signed in to change notification settings - Fork 0
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
Colibri.header.doc #22
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewable status: 0 of 5 files reviewed, 2 unresolved discussions
doc/ColibriDesign.rst, line 81 at r3 (raw file):
An E2E reservation has a maximum set of 16 versions. Reservation ID
(from existing PR by @mawyss: )
Here some concrete questions whose answers I think are missing in the document:
- Why do we need versions?
- When is a version updated?
- The reservation ID uniquely identifies the reservation, but does it also uniquely identify (one direction of) the path? --> Can there be multiple reservations (different reservation IDs) for the same path?
doc/ColibriDesign.rst, line 381 at r3 (raw file):
appropriate MAC value. TODO Question: we want to have reliable communication between services. This means using
Some things to review:
- Not only reliability, but we also need to transport arbitrarily big content (bigger than just one packet). We need a protocol for this.
- I am not aware of any lost packet recovery mechanism in COLIBRI. We assume packets never get lost.
- We would ideally use gRPC to talk between COLIBRI services. I believe that it uses QUIC when in between ASes.
f29ff43
to
a9eeb6f
Compare
Static MAC when C=1. Per packet MAC HVF when C=0.
We have one path per reservation, but many reservations per path.
Some rewording. Clarified the rationale behind the suffixes sizes. Clarified that the monitoring applies only to E2E.
189b240
to
585e80e
Compare
8a6bfd8
to
925cd4a
Compare
Add ingress, egress to inputdata.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed 3 of 5 files at r1, 1 of 2 files at r4, 2 of 2 files at r11.
Reviewable status: complete! all files reviewed, all discussions resolved (waiting on @juagargi)
* WIP COLIBRI design * replace COS with COLIBRI service * rename fig colibri directory * reformat, line length * more design details * tracing forwarding a packet * trace renewal for down segment rsv * Minor (mostly cosmetic) edits in COLIBRI design document. (#17) * WIP per packet MACs * changes from review * two flavors of MACs. Static MAC when C=1. Per packet MAC HVF when C=0. * one path per reservation ID. We have one path per reservation, but many reservations per path. * no more segment IDs in COLIBRI header * other minor changes from review * adapt header doc to COLIBRI design * clean up some TODOs * clarifications asked in review * no ASID in reservation id in header * clarify special case of e2e setup down-segment * reservation index is now reservation version * changes from review. Some rewording. Clarified the rationale behind the suffixes sizes. Clarified that the monitoring applies only to E2E. * Changes from Marc's review * down-segment operations with a trigger (delegate) * clarified a bit who in C=1 computes MAC * cleanup not relevant TODOs * initial version and layout. Still remaining to document several processes. * clarify segment ID computation * changes from review * more findings from review * add TODOs and questions * forwarding process * added PacketTimestamp from EPIC. Also removed spaces before newline. * fix issue in SegLen_0 when S=1 * MAC computation * fix InfoField diagram. Fix definition of the masked SegLen in MAC computation. * notes on the control plane and improvements. Also added more questions to the TODO list. * more fixes from review * forwarding additional checks * changes from discussion. No tail chopping. No onioning in MAC computation. * tracing forwarding a packet * WIP per packet MACs * adapt header doc to COLIBRI design * clean up some TODOs * no ASID in reservation id in header * Change timestamps. (#18) * linting * small corrections * reservation index is now reservation version * explicitly say the header is fixed size. Modulo the variable number of hop fields. * forwarding has one branching on C * place COLIBRI at the bottom of the file * static MAC uses also src + dst addresses * Remove the reservation path type. The reservation path type no longer appears in the header. * clarify InputData * sigma_b modified. Sigma_B is the key to compute the per-packet-MAC. It now includes the source and destination host addresses. * remove reservation path type from header * clarify TS always exists * fix reservation ID reconstruction * Fix note about R=1 reversing hopfields * not yet decided which secret for MAC * clarify/fix MAC computation in header * Fix small typo * details InputData for MAC computation * R changes src/dst AS * hop fields in forwarding order * clarify some sentences * Add SL, DL, ST and DT to MAC computation * fix MAC computation in header spec. Add ingress, egress to inputdata. * Change order of fields in InputData * Change order of DT, DL, ST, and SL in the input to the Sigma Mac. Co-authored-by: Markus Legner <mlegner@users.noreply.github.com> Co-authored-by: Marc <mawyss@student.ethz.ch>
* WIP COLIBRI design * replace COS with COLIBRI service * rename fig colibri directory * reformat, line length * more design details * tracing forwarding a packet * trace renewal for down segment rsv * Minor (mostly cosmetic) edits in COLIBRI design document. (#17) * WIP per packet MACs * changes from review * two flavors of MACs. Static MAC when C=1. Per packet MAC HVF when C=0. * one path per reservation ID. We have one path per reservation, but many reservations per path. * no more segment IDs in COLIBRI header * other minor changes from review * adapt header doc to COLIBRI design * clean up some TODOs * clarifications asked in review * no ASID in reservation id in header * clarify special case of e2e setup down-segment * reservation index is now reservation version * changes from review. Some rewording. Clarified the rationale behind the suffixes sizes. Clarified that the monitoring applies only to E2E. * Changes from Marc's review * down-segment operations with a trigger (delegate) * clarified a bit who in C=1 computes MAC * cleanup not relevant TODOs * initial version and layout. Still remaining to document several processes. * clarify segment ID computation * changes from review * more findings from review * add TODOs and questions * forwarding process * added PacketTimestamp from EPIC. Also removed spaces before newline. * fix issue in SegLen_0 when S=1 * MAC computation * fix InfoField diagram. Fix definition of the masked SegLen in MAC computation. * notes on the control plane and improvements. Also added more questions to the TODO list. * more fixes from review * forwarding additional checks * changes from discussion. No tail chopping. No onioning in MAC computation. * tracing forwarding a packet * WIP per packet MACs * adapt header doc to COLIBRI design * clean up some TODOs * no ASID in reservation id in header * Change timestamps. (#18) * linting * small corrections * reservation index is now reservation version * explicitly say the header is fixed size. Modulo the variable number of hop fields. * forwarding has one branching on C * place COLIBRI at the bottom of the file * static MAC uses also src + dst addresses * Remove the reservation path type. The reservation path type no longer appears in the header. * clarify InputData * sigma_b modified. Sigma_B is the key to compute the per-packet-MAC. It now includes the source and destination host addresses. * remove reservation path type from header * clarify TS always exists * fix reservation ID reconstruction * Fix note about R=1 reversing hopfields * not yet decided which secret for MAC * clarify/fix MAC computation in header * Fix small typo * details InputData for MAC computation * R changes src/dst AS * hop fields in forwarding order * clarify some sentences * Add SL, DL, ST and DT to MAC computation * fix MAC computation in header spec. Add ingress, egress to inputdata. * Change order of fields in InputData * Change order of DT, DL, ST, and SL in the input to the Sigma Mac. Co-authored-by: Markus Legner <mlegner@users.noreply.github.com> Co-authored-by: Marc <mawyss@student.ethz.ch>
Add 'Original Payload Length' to Info Field. Correct flag consistency checks. colibri border router (#24) simplify parsing. (#25) Colibri.experiments (#27) Performance changes, fixes and tests added for the NSDI paper. Per-packet MAC: replace payload size input with total packet size input. Static and sigma MAC InputData: Remove HFCount input. Fix warnings in Colibri doc. (#26) gRPC with COLIBRI primer (#28) Colibri initiator (#29) gRPC for COLIBRI (#30) Replace ColibriService.md with ColibriDesign.rst Resolve failing /go/pkg/gateway/control/fake:go_default_test Fix linter errors. Colibri.topology entry (#31) Colibri.e2e.basic api (#33) Colibri.move to co (#34) Colibri.fix data plane (#35) fix e2e mac computation, simplify. (#37) For now use the static MAC computation also for E2E. Add tests. Colibri.extended api (#38) Colibri.refactor (#39) changes from review. changes from review. changes from review. missing build file in go/co Colibri.extended api (#40) Colibri.cleanup (#41) Colibri.review (#43) Colibri.review (#44)
Colibri.header.doc (#22) Add 'Original Payload Length' to Info Field. Correct flag consistency checks. colibri border router (#24) simplify parsing. (#25) Colibri.experiments (#27) Performance changes, fixes and tests added for the NSDI paper. Per-packet MAC: replace payload size input with total packet size input. Static and sigma MAC InputData: Remove HFCount input. Fix warnings in Colibri doc. (#26) gRPC with COLIBRI primer (#28) Colibri initiator (#29) gRPC for COLIBRI (#30) Replace ColibriService.md with ColibriDesign.rst Resolve failing /go/pkg/gateway/control/fake:go_default_test Fix linter errors. Colibri.topology entry (#31) Colibri.e2e.basic api (#33) Colibri.move to co (#34) Colibri.fix data plane (#35) fix e2e mac computation, simplify. (#37) For now use the static MAC computation also for E2E. Add tests. Colibri.extended api (#38) Colibri.refactor (#39) changes from review. changes from review. changes from review. missing build file in go/co Colibri.extended api (#40) Colibri.cleanup (#41) Colibri.review (#43) Colibri.review (#44)
Colibri.header.doc (#22) Add 'Original Payload Length' to Info Field. Correct flag consistency checks. colibri border router (#24) simplify parsing. (#25) Colibri.experiments (#27) Performance changes, fixes and tests added for the NSDI paper. Per-packet MAC: replace payload size input with total packet size input. Static and sigma MAC InputData: Remove HFCount input. Fix warnings in Colibri doc. (#26) gRPC with COLIBRI primer (#28) Colibri initiator (#29) gRPC for COLIBRI (#30) Replace ColibriService.md with ColibriDesign.rst Resolve failing /go/pkg/gateway/control/fake:go_default_test Fix linter errors. Colibri.topology entry (#31) Colibri.e2e.basic api (#33) Colibri.move to co (#34) Colibri.fix data plane (#35) fix e2e mac computation, simplify. (#37) For now use the static MAC computation also for E2E. Add tests. Colibri.extended api (#38) Colibri.refactor (#39) changes from review. changes from review. changes from review. missing build file in go/co Colibri.extended api (#40) Colibri.cleanup (#41) Colibri.review (#43) Colibri.review (#44)
Colibri.header.doc (#22) Add 'Original Payload Length' to Info Field. Correct flag consistency checks. colibri border router (#24) simplify parsing. (#25) Colibri.experiments (#27) Performance changes, fixes and tests added for the NSDI paper. Per-packet MAC: replace payload size input with total packet size input. Static and sigma MAC InputData: Remove HFCount input. Fix warnings in Colibri doc. (#26) gRPC with COLIBRI primer (#28) Colibri initiator (#29) gRPC for COLIBRI (#30) Replace ColibriService.md with ColibriDesign.rst Resolve failing /go/pkg/gateway/control/fake:go_default_test Fix linter errors. Colibri.topology entry (#31) Colibri.e2e.basic api (#33) Colibri.move to co (#34) Colibri.fix data plane (#35) fix e2e mac computation, simplify. (#37) For now use the static MAC computation also for E2E. Add tests. Colibri.extended api (#38) Colibri.refactor (#39) changes from review. changes from review. changes from review. missing build file in go/co Colibri.extended api (#40) Colibri.cleanup (#41) Colibri.review (#43) Colibri.review (#44) use a auto-freshen cache for the colibri listings in sciond (#45) several fixes. Colibri.remove todos (#46) Colibri.admission list (#47) Colibri.remove tod os (#48) Colibri.integration test (#49) remove stray deleteme fixes. local topos with 1Gbps capacity for colibry purposes remove last deleteme.
* Colibri feature squashed. Colibri.header.doc (#22) Add 'Original Payload Length' to Info Field. Correct flag consistency checks. colibri border router (#24) simplify parsing. (#25) Colibri.experiments (#27) Performance changes, fixes and tests added for the NSDI paper. Per-packet MAC: replace payload size input with total packet size input. Static and sigma MAC InputData: Remove HFCount input. Fix warnings in Colibri doc. (#26) gRPC with COLIBRI primer (#28) Colibri initiator (#29) gRPC for COLIBRI (#30) Replace ColibriService.md with ColibriDesign.rst Resolve failing /go/pkg/gateway/control/fake:go_default_test Fix linter errors. Colibri.topology entry (#31) Colibri.e2e.basic api (#33) Colibri.move to co (#34) Colibri.fix data plane (#35) fix e2e mac computation, simplify. (#37) For now use the static MAC computation also for E2E. Add tests. Colibri.extended api (#38) Colibri.refactor (#39) changes from review. changes from review. changes from review. missing build file in go/co Colibri.extended api (#40) Colibri.cleanup (#41) Colibri.review (#43) Colibri.review (#44) use a auto-freshen cache for the colibri listings in sciond (#45) several fixes. Colibri.remove todos (#46) Colibri.admission list (#47) Colibri.remove tod os (#48) Colibri.integration test (#49) colibri command. (#50) Colibri.adapt end2end integration (#51) use end2end_integration to run colibri. remove colibri_integration . * extend validity check of colibri packet.
Documentation on the COLIBRI Path Type header.
Original: scionproto#3871
Pending:
The PR including the header is merged into this one as well. The original came from scionproto#3887
The first commit here from that changeset is
7efc59a36
"WIP COLIBRI design".This change is