| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This type will help produce better logs (logging just the circuit ID
would make it impossible to correlate said circuit with the tunnel it
belongs to).
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The plan is to reuse this identifier for the future tunnel reactor
updates channel (a channel for sending tunnel status updates to a
central consumer).
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This changes the `tor-proto` logs to not be prefixed with a
channel/circuit/stream ID, but rather to have these IDs attached to the
log as structured fields.
This change is in preparation for the switch to using `TunnelId`s in the
tunnel reactor instead of circuit `UniqId`s. The reason for the change
to use structured fields is because future logs will likely need to log
the `UniqId`s of the circuits in a tunnel, which will need to either be
formatted somehow in the logs, or logged as a structured field (the
latter seems like the better option, hence this preparatory change).
IMO we should favor structured fields over formatted strings in the
logs in general, but that is a bigger project, so I am only doing a
spot fix for now.
|
| |/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently, a tunnel is uniquely identified by the `UniqId` of the first
circuit added to the tunnel. This works, but the double-meaning of the
`UniqId` is bound to cause confusion in the future (because it blurs the
distinction between tunnels and circuits).
This introduces a new `TunnelId` type which will replace `UniqId` in the
tunnel reactor.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
arti: Add keys list and keys list-keystores
See merge request tpo/core/arti!3023
|
| |/ / / / |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-proto: Validate cc algorithm of the join point
See merge request tpo/core/arti!3046
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We're about to add a test that involves circuits built using non-vegas
`CircParams`.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is about to become slightly more complex (we need to add a check
for the cc algorithm of the last hop). This refactoring is in
preparation for that.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflux is only supported when prop324 congestion control is enabled, so
we need an accessor for the cc algorithm of a given circuit hop in order
for the conflux code to be able to check *which* cc algorithm is in use.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This doesn't really change anything, but removing the `.clone()` makes
it a bit more obvious that copying the `*Params` is a lightweight
operation.
|
| | | | | | |
|
| |/ / / / |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-proto: Address a handful of conflux TODOs
See merge request tpo/core/arti!3045
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We don't plan to implement resumption any time soon, so let's just
remove the TODO for now.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
As mentioned in #2002, we don't yet support conflux for onion services.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It is the responsibility of the caller to wait until at least one of the
legs completes the handshake.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This will be covered by #2031 (we'll implement prop349 as part of the
p112 work).
|
| | |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
All of this is not needed, the actual test is in the loop below.
(I accidentally left this in after refactoring the test in my last MR)
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
Bump rusqlite dependency to 0.36.0
See merge request tpo/core/arti!3041
|
| | | | | |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-netdir: decrease minimum hsdir_interval from 30 to 5
See merge request tpo/core/arti!3042
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This matches the spec change:
<https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/406>
Progress on:
<https://gitlab.torproject.org/tpo/core/chutney/-/issues/40038>
|
| |\ \ \ \ \
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Upgrade dependency to hickory-proto 0.25.2
Closes #1982
See merge request tpo/core/arti!3038
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Closes #1982.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
tor-proto: Write conflux tests, fix bugs, address TODOs
Closes #2011
See merge request tpo/core/arti!3034
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
For conflux, we need to test against vegas.
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
I think this is going to be more of a tuning matter, so it's probably
best tackled after we have a working conflux implementation.
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Instead of only shutting down the leg on which the protocol violation
occurred, it seems better to shut down the entire tunnel (because the
other endpoint, i.e. the exit, is the cause of the violation, so we
should probably avoid using it entirely).
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
The `UniqId` matters for multipath tunnels.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This preserves the existing behavior of `newcirc()` (which creates
3-hop circuits, where each hop has the same `HopDetail`).
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
For the conflux tests, we need to be able to create circuits with fake
hops that have different peer_ids.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fixes a bug causing the conflux handshake to always fail with
`ConfluxHandshakeError::Timeout`.
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This was addressed a while ago, in
09a601aed9aac9effa230701b02ba865b5754469
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
If we reach this point and the join point is `None`, it means the
conflux set has so far consisted of a single leg. This means we need to
assign the last hop of the (only) leg to the join point. This initial
leg is in `self.circuits`, not in `legs` (`legs` is the list of *new*
legs that are being added to the set).
|
| | | | | | | |
|