Clarifications and changes to padding doc
The majority of the changes in this MR just adds clarification via:
- A dedicated section on how we intend to use padding
- A dedicated section for Tor-specific constraints on the use of Maybenot framework features
- Reordering and grouping constraint-related sections for better flow
- A couple typo fixes
The key functional changes I am proposing are:
- Client-side machines can only block the packaging of DATA cells
- Relay-side machines can only block their
SometimesUnboundedSinkqueue - Client machines must inspect their streams first, in replace mode (the previously commented flag sections)
Previously, the document had proposed that padding machines block at both the SometimesUnboundedSink and the stream packaging. I merely separated these for relay-side and client-side concerns, and uncommented the portions about checking the status of streams for packaging during 'replace' padding delivery. I also made some minor tweaks to the flags as clarification beyond this.
The motivation for these changes is included in the earlier constraints section.
Edited by Mike Perry