<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/congestion, branch arti-v1.7.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.7.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.7.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-09-16T14:10:33Z</updated>
<entry>
<title>proto: Add an accessor for the max observed circ RTT.</title>
<updated>2025-09-16T14:10:33Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-09-10T15:57:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=dc1ebe51e1de3476c037c1c0e46de466ff4edbd9'/>
<id>urn:sha1:dc1ebe51e1de3476c037c1c0e46de466ff4edbd9</id>
<content type='text'>
We will need this to calculate the END ack timeout.
</content>
</entry>
<entry>
<title>proto: Pass owned CongestionWindowParams to CongestionControl::new.</title>
<updated>2025-09-04T09:11:57Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-08-26T10:41:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=def4aca14b010f9fdb3063a97824737547b8d83b'/>
<id>urn:sha1:def4aca14b010f9fdb3063a97824737547b8d83b</id>
<content type='text'>
We no longer need to clone `CongestionWindowParams` now that it
implements `Copy`.

Resolves a clippy warning.
</content>
</entry>
<entry>
<title>proto: Derive Copy for CongestionWindowParams.</title>
<updated>2025-09-04T09:11:56Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-08-22T10:27:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1630ad4355cac5a81bbe61f8f6504c63ae02d3b1'/>
<id>urn:sha1:1630ad4355cac5a81bbe61f8f6504c63ae02d3b1</id>
<content type='text'>
These will likely always just be a collection of integers (lightweight
to copy).
</content>
</entry>
<entry>
<title>clippy: fix `clippy::duplicated_attributes` warnings</title>
<updated>2025-08-11T15:22:24Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-08-11T15:22:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=327f6a31c0fed9ff0b17ac2257157274fbe6d4cb'/>
<id>urn:sha1:327f6a31c0fed9ff0b17ac2257157274fbe6d4cb</id>
<content type='text'>
```text
warning: duplicated attribute
   --&gt; crates/tor-hsservice/src/timeout_track.rs:630:14
    |
630 |     #![allow(clippy::needless_pass_by_value)] // TODO hoist into standard lint block
    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
</content>
</entry>
<entry>
<title>Switch Cargo.toml files to edition 2024.</title>
<updated>2025-08-07T15:28:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-08-06T01:19:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=77b0de43b8c67cdb81befe0680a3df43b6ad37bc'/>
<id>urn:sha1:77b0de43b8c67cdb81befe0680a3df43b6ad37bc</id>
<content type='text'>
First, run

```
git grep -l "^edition =" |
    xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;'
```

Second, manually verify that all Cargo.toml files have changed,
and nothing else has changed.

Third, run cargo fmt again.
</content>
</entry>
<entry>
<title>Rename and invert the sense of requires_stream_level_sendmes.</title>
<updated>2025-07-23T14:59:51Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-07-14T15:37:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d4025dff2f2fecb717099a56bacb2a9b497b110d'/>
<id>urn:sha1:d4025dff2f2fecb717099a56bacb2a9b497b110d</id>
<content type='text'>
Instead call it compatible_with_cgo, which is what we actually
care about in this context.
</content>
</entry>
<entry>
<title>proto: Send extensions as appropriate to negotiate CGO.</title>
<updated>2025-07-23T14:59:51Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-06-11T12:19:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3591c05e34336a210fcae8cb4c69e149c3f88e42'/>
<id>urn:sha1:3591c05e34336a210fcae8cb4c69e149c3f88e42</id>
<content type='text'>
Let's see if it works!
</content>
</entry>
<entry>
<title>tor-proto: add `CongestionControl::uses_xon_xoff()`</title>
<updated>2025-07-16T17:36:43Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-07-15T04:39:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=54ea2fc30d7cef2d4b313827451d5f7bf399cc2f'/>
<id>urn:sha1:54ea2fc30d7cef2d4b313827451d5f7bf399cc2f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Make RttEstimator::{ewma,min}_rtt_usec() return `Option`.</title>
<updated>2025-06-27T14:16:16Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-06-25T18:58:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1e4a9161e78b78aadbe777cd5e4991a2582c8918'/>
<id>urn:sha1:1e4a9161e78b78aadbe777cd5e4991a2582c8918</id>
<content type='text'>
A `None` value signals to the conflux code to know to fall back on the
initial RTT of the circuit.

Without this change, the conflux switching logic is broken as we end up
staying on the leg with the best initial RTT forever (the other leg is
never picked, because its `ewma_rtt()` is stuck on `u32::MAX`, and never
updated as we never send on it).
</content>
</entry>
<entry>
<title>proto: Rewrite can_crosscheck_with_current_estimate for clarity.</title>
<updated>2025-06-25T16:21:46Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-06-25T16:04:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=65d565ccfe7880ab0e3b6ba70c1f822ace224246'/>
<id>urn:sha1:65d565ccfe7880ab0e3b6ba70c1f822ace224246</id>
<content type='text'>
The expanded expression makes it easier to see that
`can_crosscheck_with_current_estimate()` can never return `true` if
`self.ewma_rtt` is `None`, and that the `expect()` from
`is_clock_stalled()` cannot panic.
</content>
</entry>
</feed>
