| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
For now, we're not going to implement hop negotiation: we're still
waiting to find a set of padding machines that will be useful for
Arti. This API will help facilitate experimentation to find such
padding machines.
These APIs are under a separate feature (`circ-padding-manual`)
to avoid confusing them with the rest of the padding code:
we only want them to be exported when the researcher wants to
manually install circuit padding.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-proto,tor-cell: Begin using consensus parameters in XON/XOFF flow control
See merge request tpo/core/arti!3263
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | |_|/
| |/| | |
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
Proto, padding: Consider the channel queue for "Replace" padding sent to hop 1.
Closes #2169
See merge request tpo/core/arti!3261
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When we want to send Replace padding (that is, padding that should
only be sent if nothing else is queued) to hop 1, we can allow it to
be replaced by cells from _any_ circuit being sent over the same
channel. (Nobody but hop 1 can tell the difference.)
Closes #2169
|
| | |/ /
| | |
| | |
| | | |
We'll use this to implement `replace` for padding to the first hop.
|
| |\ \ \
| |/ /
|/| |
| | |
| | | |
tor-proto,tor-netdir: add flow control consensus parameters
See merge request tpo/core/arti!3249
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Validate incoming padding, and permit it when it is valid.
See merge request tpo/core/arti!3241
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
FMUL is usually faster than FDIV, so let's give that a try, in case
the compiler doesn't figure it out on its own.
Also, add a comment discussing an approach that might be better,
if we run into a bottleneck here.
|
| | | | |
| | | |
| | | |
| | | | |
The algorithm is simplistic, but may be useful
|
| | | | |
| | | |
| | | |
| | | | |
This will help avoid needing to acquire the lock more than once.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
This will let us reject excessive padding.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
proto: Base congestion signal on the channel.
See merge request tpo/core/arti!3242
|
| | | | | | |
|
| | |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
We're doing this rather than having it look at CircuitCellSender
under the theory that we want to infer our throughput independently
from padding-based decisions of whether to block.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Circuit padding: fix a couple of issues with the "replace" flag.
See merge request tpo/core/arti!3246
|
| | | | | |
| | | | |
| | | | | |
Co-authored-by: gabi-250 <[email protected]>
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously we would replace padding with any cell that was already
in the queue. But that doesn't make sense: If we have a cell queued
for hop 1, then we shouldn't use it as padding for hop 2, since hop
2 will never see it! Instead, we look at the target hops for the
already queued cells.
Ref:
- https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3225/diffs?commit_id=3998e0559fbcc06f8ea88968051cebca71489a52
|
| | | | | | |
|
| | |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When we replace padding with an _already queued_ cell,
we should only trigger PaddingSent on the final hop's machine.
Refs:
- https://github.com/maybenot-io/maybenot/commit/35ba39d629d1e64a1346586112837e5015c47242#r164166126
- https://github.com/maybenot-io/maybenot/pull/35/commits/715455b8dcd95a32eafe261ab500cfed9415b7f3
- https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3225/diffs?commit_id=79a3305dc226f9f1136cad034e1a36413d6595f5
|
| |\ \ \ \
| |_|_|/
|/| | |
| | | |
| | | | |
proto: Simplify/correct padding-based blocking logic.
See merge request tpo/core/arti!3252
|
| | | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
The correction: We want to report a block as bypassable only if
_every_ currently blocking hop has bypassable blocking.
The simplification: We don't need to report the first hop that's
blocking any more.
|
| |/ /
| |
| |
| |
| | |
`Release.md` gives a wildcard path of `crates/*/semver.md`, so it seems
that these files should go in the top level of each crate.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
For consistency with `WindowFlowControl`.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
For internal types, I think it becomes too much of a mess to export
everything through a single module.
|