aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-proto/src/client
Commit message (Collapse)AuthorAgeFilesLines
...
| * | tor-proto: rename `take_capacity_to_send` to `about_to_send`Steven Engler2025-09-186-27/+21
| | | | | | | | | | | | | | | | | | XON/XOFF flow control doesn't have the idea of taking "capacity". But it does need to know the messages we're about to send so that it can count the number of stream bytes that we've sent.
| * | tor-proto: add checks for receiving XON/XOFF before data sentSteven Engler2025-09-171-0/+14
| | |
| * | tor-proto: share the `FlowCtrlParameters` across streamsSteven Engler2025-09-173-11/+12
| | | | | | | | | | | | | | | Streams at the same circuit hop will now share a single `Arc<FlowCtrlParameters>`.
* | | Merge branch 'simple_circpad_todos' into 'main'gabi-2502025-09-183-32/+45
|\ \ \ | |/ / |/| | | | | | | | Resolve blocking padding-related TODOs See merge request tpo/core/arti!3271
| * | proto: Use a VecDeque for padding events; avoid reversing.Nick Mathewson2025-09-171-11/+7
| | |
| * | proto: Rename PaddingEventVec => PaddingEventQueueNick Mathewson2025-09-171-5/+5
| | |
| * | proto: Fix a pair of padding setup TODOs.Nick Mathewson2025-09-171-22/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | When we install a new padder, we should check whether we have become unblocked, and we should wake up the PaddingEventStream in case the new padder has something to say. This has required us to move a couple of fields around, but not in a very complicated way.
| * | proto: resolve/edit trivial "TODO circpad" instances.Nick Mathewson2025-09-173-6/+8
| | |
* | | Merge branch 'xon-xoff-checker-2' into 'main'opara2025-09-186-42/+353
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-proto: Add dropmark sidechannel mitigations for XON/XOFF flow control Closes #2129 See merge request tpo/core/arti!3266
| * | | tor-proto: improved the `SidechannelMitigation` testsSteven Engler2025-09-171-67/+67
| | | |
| * | | tor-proto: enabled some tests for `SidechannelMitigation`Steven Engler2025-09-171-12/+9
| | | |
| * | | tor-proto: update some comments for `SidechannelMitigation`Steven Engler2025-09-171-3/+41
| | | |
| * | | tor-proto: add some tests for XON/XOFF `SidechannelMitigation`Steven Engler2025-09-161-0/+81
| | | |
| * | | tor-proto: rename `FlowCtrlMethods` to `FlowCtrlHooks`Steven Engler2025-09-165-10/+8
| | | |
| * | | tor-proto: move check for consecutive XOFF messagesSteven Engler2025-09-161-13/+8
| | | |
| * | | tor-proto: add `SidechannelMitigation` to `XonXoffFlowCtrl`Steven Engler2025-09-163-4/+54
| | | |
| * | | tor-proto: add `SidechannelMitigation` for XON/XOFF flow controlSteven Engler2025-09-162-1/+154
| | | | | | | | | | | | | | | | This is not used anywhere yet.
| * | | tor-proto: rename `LastSentXonXoff` to `XonXoffMsg`Steven Engler2025-09-161-10/+7
| | | |
| * | | tor-proto: change `take_capacity_to_send` to take `AnyRelayMsg`Steven Engler2025-09-165-9/+11
| | | |
* | | | proto: Resolve a warning when building without flowctl-cc.Nick Mathewson2025-09-171-0/+2
| |/ / |/| | | | | | | | | | | Rust was complaining that we were taking these arguments by value but not consuming.
* | | Merge branch 'maybenot-manual' into 'main'Nick Mathewson2025-09-167-37/+285
|\ \ \ | |/ / |/| | | | | | | | proto: Experimental API to install a circuit padder at a hop. See merge request tpo/core/arti!3262
| * | Fix several rustdoc links.Nick Mathewson2025-09-164-15/+12
| | |
| * | Fix check_doc_features warning.Nick Mathewson2025-09-161-9/+1
| | |
| * | proto: Remove/narrow circ-padding allow(dead_code) exception.Nick Mathewson2025-09-153-19/+17
| | | | | | | | | | | | | | | We still have dead code when circ-padding but not circ-padding-manual is provided.
| * | proto: Experimental API to install a circuit padder at a hop.Nick Mathewson2025-09-157-18/+279
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge branch 'xon-xoff-checker' into 'main'opara2025-09-162-43/+117
|\ \ \ | | | | | | | | | | | | | | | | 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-161-6/+46
| | | |
| * | | tor-proto: add pub `CellCount`Steven Engler2025-09-151-0/+37
| | |/ | |/|
* | | Merge branch 'padding_replace_and_channels' into 'main'Nick Mathewson2025-09-161-1/+10
|\ \ \ | |/ / |/| | | | | | | | | | | | | | 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-161-1/+10
| |/ | | | | | | | | | | | | | | | | 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
* | Merge branch 'xon-xoff-checker' into 'main'David Goulet2025-09-156-7/+108
|\ \ | |/ |/| | | | | 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-112-4/+55
| |
| * tor-proto: add struct `FlowCtrlParameters`Steven Engler2025-09-112-0/+23
| |
* | proto: Fix a semantic merge conflict.Nick Mathewson2025-09-151-1/+2
| |
* | Merge branch 'maybenot-validate-padding' into 'main'Nick Mathewson2025-09-153-37/+168
|\ \ | | | | | | | | | | | | 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-153-25/+15
| | |
| * | 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.