summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | Merge branch 'xon-xoff-checker' into 'main'opara2025-09-165-48/+172
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-proto,tor-cell: Begin using consensus parameters in XON/XOFF flow control See merge request tpo/core/arti!3263
| * | | | | | tor-proto: use consensus parameter in `XonXoffFlowCtrl`Steven Engler2025-09-161-10/+4
| | | | | | |
| * | | | | | tor-proto: fix a comment after previous moveSteven Engler2025-09-161-7/+5
| | | | | | |
| * | | | | | tor-proto: change some `///` comments to `//!`Steven Engler2025-09-161-27/+27
| | | | | | |
| * | | | | | tor-proto: move some comments from `CC_XOFF_CLIENT`Steven Engler2025-09-161-15/+20
| | | | | | |
| * | | | | | tor-proto: use `CellCount` in `FlowCtrlParameters`Steven Engler2025-09-162-10/+50
| | | | | | |
| * | | | | | tor-proto: add pub `CellCount`Steven Engler2025-09-152-1/+38
| | | | | | |
| * | | | | | tor-cell: add pub `PAYLOAD_MAX_SIZE_{ALL,ANY}`Steven Engler2025-09-151-0/+50
| | | | | | |
* | | | | | | Merge branch 'padding_replace_and_channels' into 'main'Nick Mathewson2025-09-166-14/+342
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Proto, padding: Consider the channel queue for "Replace" padding sent to hop 1. Closes #2169 See merge request tpo/core/arti!3261
| * | | | | | proto: Consider the channel queue with "Replace" padding to hop 1.Nick Mathewson2025-09-163-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | | | proto: for padding, count cells on each channel queues.Nick Mathewson2025-09-162-13/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll use this to implement `replace` for padding to the first hop.
| * | | | | | tor-async-utils: New facility to count items in a channel.Nick Mathewson2025-09-162-0/+267
| | |/ / / / | |/| | | |
* | | | | | Merge branch 'prop330' into 'main'Clara Engler2025-09-167-228/+331
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-dircommon: Support proposal330 Closes #1738 See merge request tpo/core/arti!3244
| * | | | | | tor-dircommon: Add prop330 unit testsClara Engler2025-09-163-0/+80
| | | | | | |
| * | | | | | tor-dircommon: Derive default authority contactsClara Engler2025-09-161-1/+1
| | | | | | |
| * | | | | | tor-dircommon: Backwards compatibility for authsClara Engler2025-09-163-5/+133
| | | | | | |
| * | | | | | tor-dircommon: Implement proposal 330Clara Engler2025-09-166-253/+148
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | Merge branch 'onion-svc-docs' into 'main'gabi-2502025-09-161-3/+4
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | hsservice: Remove old TODOs, update docs. See merge request tpo/core/arti!3255
| * | | | | hsservice: Remove misleading OnionService note.Gabriela Moldovan2025-09-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | hsservice: Say how a RunningOnionService is constructed.Gabriela Moldovan2025-09-121-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds some extra docs to `RunningOnionService`. This also removes the TODO about #1228, because that ticket was closed in !1945.
| * | | | | hsservice: Remove an already-addressed TODO.Gabriela Moldovan2025-09-121-1/+0
| | |/ / / | |/| | | | | | | | | | | | | In #1247 we decided to stick with the current names.
* | | | | Merge branch 'xon-xoff-checker' into 'main'David Goulet2025-09-1511-8/+163
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-proto,tor-netdir: add flow control consensus parameters See merge request tpo/core/arti!3249
| * | | | | tor-proto: pass `FlowCtrlParameters` to `XonXoffFlowCtrl`Steven Engler2025-09-113-3/+30
| | | | | |
| * | | | | tor-proto: add `FlowCtrlParameters` to `CircParameters` and `HopSettings`Steven Engler2025-09-114-5/+65
| | | | | |
| * | | | | tor-proto: add struct `FlowCtrlParameters`Steven Engler2025-09-113-0/+24
| | | | | |
| * | | | | tor-units: add `BoundedInt32::get_u32`Steven Engler2025-09-101-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: add flow control parameters to `NetParameters`Steven Engler2025-09-101-0/+33
| | | | | |
* | | | | | Merge branch 'cc-alg-default' into 'main'David Goulet2025-09-151-5/+1
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | tor-netdir: Change default `cc_alg` from 0 to 2 See merge request tpo/core/arti!3248
| * | | | | tor-netdir: change default `cc_alg` from 0 to 2Steven Engler2025-09-101-5/+1
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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()`.
* | | | | proto: Fix a semantic merge conflict.Nick Mathewson2025-09-151-1/+2
| | | | |
* | | | | Merge branch 'maybenot-validate-padding' into 'main'Nick Mathewson2025-09-154-38/+188
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Validate incoming padding, and permit it when it is valid. See merge request tpo/core/arti!3241
| * | | | | proto: Missing import.Nick Mathewson2025-09-151-0/+1
| | | | | |
| * | | | | proto: Use a new error type for excess padding.Nick Mathewson2025-09-154-26/+35
| | | | | |
| * | | | | proto, padding: A different formula to check padding totalNick Mathewson2025-09-151-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | proto: Keep stats on padding, and kill circuits when too much is sent.Nick Mathewson2025-09-091-1/+113
| | | | | | | | | | | | | | | | | | | | | | | | The algorithm is simplistic, but may be useful
| * | | | | tor-proto: Move some functions from PaddingController to PaddingSharedNick Mathewson2025-09-091-30/+35
| | | | | | | | | | | | | | | | | | | | | | | | This will help avoid needing to acquire the lock more than once.
| * | | | | proto: Allow DROP command when padding is enabled.Nick Mathewson2025-09-091-0/+10
| | | | | |
| * | | | | proto: Make decrypted_padding fallible.Nick Mathewson2025-09-093-7/+15
| | | | | | | | | | | | | | | | | | | | | | | | This will let us reject excessive padding.
* | | | | | Merge branch 'padding_congestion_signal' into 'main'Nick Mathewson2025-09-153-19/+36
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | proto: Base congestion signal on the channel. See merge request tpo/core/arti!3242
| * | | | | | proto: Move congestion_signals into CircCellSender.Nick Mathewson2025-09-093-35/+22
| | | | | | |
| * | | | | | proto: Base congestion signal on the channel.Nick Mathewson2025-09-092-5/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | | Merge branch 'correct_replace_behavior' into 'main'Nick Mathewson2025-09-155-33/+58
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Circuit padding: fix a couple of issues with the "replace" flag. See merge request tpo/core/arti!3246
| * | | | | | | Apply 1 suggestion(s) to 1 file(s)Nick Mathewson2025-09-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: gabi-250 <[email protected]>
| * | | | | | | proto: Only replace padding when the target will see it.Nick Mathewson2025-09-104-6/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | | | | proto: derive Ord for HopNum.Nick Mathewson2025-09-101-1/+1
| | | | | | | |
| * | | | | | | proto: Emit the correct events on replacing paddingNick Mathewson2025-09-102-27/+29
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | | Merge branch 'maybenot-bypass-simplification' into 'main'gabi-2502025-09-151-15/+32
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | proto: Simplify/correct padding-based blocking logic. See merge request tpo/core/arti!3252
| * | | | | | proto: Simplify/correct padding-based blocking logic.Nick Mathewson2025-09-111-15/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | | Merge branch 'dircommon-fallback' into 'main'Clara Engler2025-09-1118-590/+576
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move `FallbackDir` into `tor-dircommon` See merge request tpo/core/arti!3245
| * | | | | | | Move `FallbackDir` into `tor-dircommon`Clara Engler2025-09-1118-590/+576
| | | | | | | |