| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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-dircommon: Support proposal330
Closes #1738
See merge request tpo/core/arti!3244
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | |/ / / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit implements proposal 330 in the context of `tor-dircommon`,
by replacing the single `Authority` structure used in a list context by
a single structure called `AuthorityContacts` which contains all
v3idents, upload, download, and vote endpoints in one central place.
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | |
| | | | | |
| | | | | | |
hsservice: Remove old TODOs, update docs.
See merge request tpo/core/arti!3255
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
An `OnionService` represents a not-yet-running service. To launch it,
you have to call `OnionService::launch()`, which consumes the
`OnionService` and returns `RunningOnionService`, so the part of the
docs saying that an `OnionService` "may or may not be running" was
somewhat misleading.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This adds some extra docs to `RunningOnionService`.
This also removes the TODO about #1228, because that ticket was closed
in !1945.
|
| | | |/ / /
| |/| | |
| | | | |
| | | | | |
In #1247 we decided to stick with the current names.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
tor-proto,tor-netdir: add flow control consensus parameters
See merge request tpo/core/arti!3249
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
While the API is a little awkward, I think this is better than the
common practice elsewhere in arti using `BoundedInt32::get() as u32`.
|
| | | | | | | |
|
| |\ \ \ \ \ \
| |_|_|/ / /
|/| | | | |
| | | | | |
| | | | | | |
tor-netdir: Change default `cc_alg` from 0 to 2
See merge request tpo/core/arti!3248
|
| | |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is fine because we still default to non-cc circuits unless the
"flowctl-cc" feature is enabled. See `exit_circparams_from_netparams`
and `onion_circparams_from_netparams` from `tor_circmgr::build`, where
both will only call `build_cc_vegas()` if `cfg(feature = "flowctl-cc")`,
and otherwise call `build_cc_fixedwindow()`.
|
| | | | | | |
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
|
| |\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Move `FallbackDir` into `tor-dircommon`
See merge request tpo/core/arti!3245
|
| | | | | | | | | |
|